Обновить
2
5.3
Виктор Латов@oeditus

пишу много кода

Отправить сообщение

Ну и отлично. Результаты поиска по «рамадан» и всяким «иншалла»/«машалла» я бы вообще кешировал.

Кстати, а вы проверяли поиск «إن شاء الله» / «رمضان»? Там-то какие цифры? (Мне любопытно просто, если честно).

Выглядит отлично, поздравляю от всей души! Для первого проекта — вообще волшебно.

Пара советов:

  1. Топорный поиск через ILIKE на таком объёме данных будет мгновенным, поэтому я бы сначала делал в лоб, и если результатов вернулось достаточно (опечаток нет) — отдавал сразу, а иначе — уже пускался во все тяжкие с GIN

  2. Когда высвободится время — попросите вашего помощника сделать приложение на Flutter, оно будет очень простым, помощник справится, зато с монетизацией будет значительно проще, особенно при наличии английского и арабского из коробки.

И еще «один синьёр с потенциально опасной точкой зрения».

Конечно, у matches! есть нюанс, он не позволяет захватывать значения из паттерна. То есть matches!(opt, Some(x)) скажет нам «да/нет», но не даст саму x. Если нужен x,то всё равно придётся использовать if let Some(x) = opt, или match.

Просто никогда, ни при каких обстоятельствах, не нужно делать два прохода (filtercount) когда можно обойтись одним (fold).

Тогда и значение можно запросто положить в аккумулятор, если надо.

объект должен быть готов к использованию сразу после завершения конструктора

А если инициализация занимает час?

Там все 98% из-за эйджизма.

Год назад — около 10 минут. Сегодня — почти пять часов. Этот показатель удваивается примерно каждые семь месяцев.

На какой планете у нас год состоит из примерно сорока месяцев?

И да, лучшая картинка, объясняющая экстраполяцию.
И да, лучшая картинка, объясняющая экстраполяцию.
  1. Не вижу разницы (и авторы имплементаций во всяких там хаскелях — тоже).

  2. Ну потому я и не написал «рефлексия», а написал «что-то типа рефлексии»; речь же про JEP, а не про наколеночную библиотеку, что мешает отрефлексировать всё компилятором-то? Например, развернуть в тот 25-строчный бойлерплейт, с которого всё началось. Я аспекты не случайно упомянул, там похожий принцип, всё в compile-time разворачивается.

Мир меняют не те, кто хорошо исполняет чужие задачи, а те, кто ставит свои.

И тут лошадь переходит в соседний колхоз, где её труд ценят, и ровно за те же задачи платят вдвое, а гениальный провидец остаётся один на один со своей блестяще поставленной задачей.

Ну и да, просто любопытно: а в чем именно изменил мир сам Джобс?

Я очень давно не работал с джавой (со времен появления AspectJ, в который я даже коммитил что-то :), но у меня возникли два вопроса:

  • Почему Lens и Traversal — это разные сущности?

  • Почему нельзя использовать что-то типа рефлекшена и писать Lens.update(department, new Path("manager", "address", "street"), String::toUpperCase)?

По данным британских ученых, более 60% людей попробовавших легкие абстракции, со временем подсаживаются на тяжелые.

Вы преуменьшаете сложность действительно качественного отпаривания брюк.

Дык это же практически «хорошо заколоченный шуруп держится гораздо крепче плохо завинченного гвоздя».

Какой стек в результате выбрали?

Анна Каренина не даст соврать.

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

Это означает, что __debug__ устанавливается в True, что при прочих равных коллекционирует стеки в любых случайных местах, тащит за собой из вызова в вызов один бог знает что, и вообще всячески засоряет карбюратор.

Информация

В рейтинге
970-й
Зарегистрирован
Активность

Специализация

Бэкенд разработчик, Архитектор программного обеспечения
Ведущий
От 120 000 €
Elixir
Ruby
Высоконагруженные системы
Проектирование архитектуры приложений
Разработка программного обеспечения
Linux
RabbitMQ