Pull to refresh
75
0
Долганов Евгений @edolganov

Пользователь

Send message

"На решение этой проблемы я потратил все майские праздники."

Самая грустная строчка в статье :)

А на какой блокчейн платформе будет работать цифровой рубль?

Ethereum? Hyperledger Fabric?

Спасибо за статью! Очень пригодилась как раз для случая, когда не хочется тащить в свой проект какой-либо фреймворк в духе nestjs

У меня была доставка обычной Почтой России.

Цен уже не помню, к сожалению, но это было все равно дешевле, чем купить локально :)

Одни и те же позиции, да.

Условно на iherb баночка была 600р, а у местных магазинов - уже 3500р...

Покупал через этот сайт таблетки рыбьего жира по цене в 2-3 раза дешевле, чем просят местные онлайн магазины за этот же товар (озон и тд).

В этом плане сайт очень хороший и, конечно, не мог не раздражать местных спекулянтов своими ценами. :)

Автор статьи познает азы java web, что похвально! Конечно статья очень наивная, но все мы когда-то начинали с этого. Желаю автору удачи в своих исследованиях :)
Академически — круто:
показано, что можно прервать программу на середине, а потом восстановить выполнение, подсунув тот же стек.

Практически — пока не видно удобства:
вместо обещанного
data = readSocket();

мы получаем код, который визуально не проще работы с колбеками:
Coro coro = Coro.initSuspended((@Async({@Await(value = "yield")}) ICoroRunnable) () -> {
Coro.get().yield();
});


Спасибо автору за расширение моего кругозора, но видимо следующим шагом надо писать свой новый язык JVM, где можно использовать свои собственные ключевые слова async и await.
Да они тоже используются.
Но их не всегда хватает.
Иногда хочется просто сверстать целую страницу на другом языке. Например раздел документации.
Да, я думаю о переходе на Maven. На первых этапах отказ от него сделал процесс разработки более быстрым и гибким.
Сейчас, когда код устоялся, можно и зависимости вынести вон из проекта.
На данный момент есть только 2 языка (рус и eng).
Поэтому удобно делать такую проверку: «Если isThreadLang_EN, то показать view_en иначе view_ru».

Когда будут другие локали, то сделав поиск по вызову isThreadLang_EN будет легко заменить эту логику на более общий код (а isThreadLang_EN — выбросить). Т.о. код эволюционирует по мере необходимости.
Для себя я получил лаконичность.

Можно быстро собирать простые и скучные запросы в атомарные классы
(в тексте это CreateUser, GetAllBlockedUsers, UpdateUserById)
и потом передавать их в шаблонизатор, скрывая рутину.

Например в одном вызове скрыта вся рутина создания INSERT запроса:
universal.update(new CreateUser(user));

Этот код приятно скрыл всю реализацию, оставив только саму идею, что очень ценно на уровне бизнес-логики, где не хочется отвлекаться на особенности БД.

Тоже самое делает MyBatis (скрывает сложность), но в нем бывает занудно писать в десятый раз очередной селект по id для очередного объекта БД. Поэтому появился этот простой шаблонизатор. :)

Да, вы правы. После вашей статьи понимаю, что это очень полезная фича.
В дополнение к статье автора: недавно выложил в opensource похожую систему.
Только там уже свой сервер для обработки и хранения чатов. Может кому пригодится :)
github.com/edolganov/live-chat-engine
В Опере 12 почти не работает. Так что я не очень одобряю :)
С помощью клавиши W можно кидать массу в зеленое растение — от этого оно распухает и в какой-то момент делится. Таким образом можно делать ловушки для близких к растению соперников, разбивая их на части прилетевшим к ним новым растением.
Если я не ошибся, то сервер на одном ip содержит много игровых комнат. Потому что я подставляю один и тот же ip для всех ботов. Но ко мне попадает лишь часть. Другие крутятся с другими игроками.
В итоге в комнате играет 15-20 игроков, на сервер может и 5000.
Круто! Спасибо!
Уже есть достижения в интеллекте бота?

Information

Rating
Does not participate
Registered
Activity