TGViewer
Лаборатория Математики и Программирования Сергея Бобровского Лаборатория Математики и Программирования Сергея Бобровского @lambda_brain · 1.41K subscribers
Post #2618 508
Продолжаю работу с ментатами 🤓

...Чуть лучше разобрался с работой вложенных лямбд в Java. Заметили в коде проекта баг, который связан с этим делом.
Код был написан исходя из неверных предположений и делал не совсем то, что от него ждали. Проблему заметил тимлид. В том коде хотели выполнять некоторую операцию в чистом контексте, операция передавалась как лямбда в метод выполнения задачи. Всё это было обёрнуто методом forEach какой-то коллекции. Но оказалось, что в чистом контексте происходило только создание лямбды, а сама же операция выполнялась в рамках основного контекста.
В общем мы попали в ситуацию, когда одна лямбда создавала другую, которая потом выполнялась в рамках forEach(), а код был написан так, будто вторая лямбда не создаётся, а сразу выполняется.
Как меня всё это запутало. Но потом стал разбираться с темами создания и работы лямбд, подключил ИИ к объяснению происходящего и вроде удалось понять что там происходит и в каком порядке вызывается. Теперь буду с особым вниманием писать код в таких местах, чтобы самому не оказаться в такой ловушке.

Как и чтобы таких ошибок избегать "по построению", будет в LPF. Сам по себе класс-обёртка "монада" с return и bind совершенно ничего не гарантирует, пайп из таких самодельных монад может развалиться по 100500 причинам.

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

...После изучения TOP, в голове так и крутится что типы это состояния, я состояния - это типы.

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

...Если подвести общий итог. Солвер — не про то, чтобы получить ответ, а про то, чтобы обнаружить, что вопрос был задан неточно. Ответ он даёт мгновенно.

...для обрастания хорошими знакомствами необходимо выстраивать сеть людей -> расширяю свою сеть в linkedin, списываюсь там с разными людьми (уже появилось полезное знакомство в зарубежную компанию), и что самое интересное - люди ко мне добавляются сами, что очень приятно; думаю в будущем необходимо делать свой личный бренд

...В РФ скудно по вакансиям. Снял розовые очки - надо давить на личный бренд и иметь запасные варианты.


...В примере 2 задал имплементацию класса статистики BonusAccountStats с реализацией plus, чего делать, конечно не надо было, так как:
теряется гибкость задания Stats (по сравнению с Max);
BonusAccountStats начинает знать про plus.
Это противоречит идее универсальности использования моноида. Оставил как напоминание себе.
В примере 3 доработал пример 2, чтобы довести моноид до группы. Пришлось избавиться от вычисления максимума в статистике, так как при откате для него нет обратимой операции.
В примере 4 моделировал движение робота как мы это делали в одном из курсов через задание смещения относительно текущего положения. Группа получилась абелевой, так как в исходную точку можно вернуться с помощью инвертированного набора исходных шагов вне зависимости от их порядка.

🔥
  • ❤ 24
  • ✍ 10
  • 👍 3
More from @lambda_brain
  1. Sep 25, 2026Гарри Поттер и Методы Математического Мышления Книга 1. Гарри Поттер и Неорганический Инте…
  2. Sep 25, 2026Свежее от ребят (и девчат). ...Так же было собеседование в Сбере, каким то чудом прошел их…
  3. Sep 24, 2026Приятный синхронизм: сразу двое ребят в один день прислали отчёты - второй курс по гомотоп…
  4. Sep 24, 2026Post #2665
  5. Sep 23, 2026Помните, летом я писал, что каждый месяц будет какая-то "новая" AI-темка (шоу должно продо…
  6. Sep 23, 2026Сейчас по сути наступил золотой век разработки программного обеспечения: - вы можете созда…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →