oleg_log
1.78K subscribers
1.86K photos
129 videos
9 files
2.77K links
Shelter for antisocial programmers "Oleg"

halp: @olegkovalov
web: https://olegk.dev
fov: @oleg_fov
chat: @oleg_log_blabla
podcast: @generictalks

about: https://t.me/oleg_log/3200
Download Telegram
А спонсор этого понедельника "го и почему аргументы хейтеров не передаются по ссылке".

Что-то мне за последнюю неделю надоело слышать одни и те же вещи, почему голанг плохой. Поэтому собираю все за и против и больше не участвую в спорах на эту тему. Хотелось написать подробно, но текст заметно растет. Сорян.

- "Язык простой и тупой, профессионалы на таком не пишут"
- И эта упрощенность помогает людям больше думать о продукте, чем о том, чтоже в этих 10 строках намудрено. Прощайте магические аннотации, разные способы обойти коллекцию и все эти фп-штуковины, за которыми скрыты обычные вещи.

- "Вендоринг, пакетный манагер это копипаста кода и отстой"
- Проблема вендоринга давно решена, прост многие не обновили методички. И модули неплохо набирают обороты, правда миграция на них чуток поломало экосистему, никто не безгрешен.

- "if err != nil это фейл дизайна языка"
- Но который заставляет явно обрабатывать ошибки и перекладывает ответственность на вызывающего, а не кого-то выше по стеку. Что также упрощает работу во многих потоках, с исключениями это не так очевидно. И в ближайшей версии будут упрощения работы с ними.

- "Язык без дженериков не нужен"
- Я даже больше скажу - без них можно решить больше проблем, чем вам кажется. Во-первых не во всех языках они были изначально, во-вторых, если без них ничего не написать, то почему на нем там много вещей пишется? И да, они тоже будут в ближайшее время добавлены.

- "GC нужен для школьников, а еще он тормозит"
- Трейдерские платформы пишутся на языках с гц и успешно делают деньги. Гошный гц был слаб лет 5 назад.

- "Го все так же дно, ведь нет фичи Х"
- Что упрощает работу людей и авторов, делает язык простым, а компилятор быстрым.

- "А язык Х лучше"
- Несомненно.

ʕ◔ϖ◔ʔ
Сегодня обратил внимание на жавовское Arrays.asList(...). IDEA подсказывает, что при передачи одного элемента лучше использовать Collections.singletonList(...), что вроде логично.

А теперь самое прикольное: в каждой из этих фций используется своя имплементация интерфейса List. То есть на пустом месте созидаются сущности, которые выполняют одно и тоже, не несут никакой уникальности, да еще и приватные, то есть живут только в этих фциях.

ООПГМ ass is.
Пришлось на ревью расчехлять стайлгайд для sql. Меньше всего ожидал, что это понадобится мне (прост с БД не работаю), но вот, советую иметь под рукой.

https://www.sqlstyle.guide/
Forwarded from Undefined Nation
Хм, ребятки, а закиньте меня в свои чаты около айтишные(хотя можно и простые), хочу небольшую статистику собрать, веду себя прилично, к лотку приучен, заранее спасибо.
@olegkovalov
Вспомнилась класика: эстимации задачи методом Бобука-Бацека (2008)
Какая же ламповая лекция от Отцов Юникса из AT&T, и Ритчи, и Кернига, и Томпсон, даже Ахо есть(правда его знают по алгоритму Ахо-Корасик), а также Лоринда Черри.

На самом деле Bell labs и его поглотитель AT&T дали слишком много для этого мира. Жаль рыночек порешал их.

https://www.youtube.com/watch?v=tc4ROCJYbm0
О, в гошечку вмержили новый escape analysis, теперь ждем в 1.13 меньше вещей в хипе 🎉
Заметил одну особенность во многих командах - изолированность от мира.

Возникла проблема Х с какой-то либой, никто в тиме не знает, что спровоцировало проблему и как её фиксить. На стековерфлоу тоже не то. Сидим и превознемогаем, ну и пишем манагеру или пользователям - in progress, фикс вотвот будет.

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

Не понимаю этой логики затворничества, совсем.
Не перестаю выпадать в осадок от этих спецов уже неделю без перерыва:
- ну у нас тут кафка на трех машинах, всего 420рпс, мы готовы ко всему
- ну у нас тут шардированный редис на 4 машинах, пока данных 700мб, но чуть что - все ништяк
- ну у нас тут 2я версия продукта на подходе, правда мы 1ю еще не релизнули, но ща будет миграция
- (upd) ну у нас тут кубы стоят, правда пока на одной машине, но ща мы скейлится на первомай будем

Вот честно, откуда они лезут и почему они активизировались весной?
ArtMoney as a language agnostic supervisor
Короч я зафейлил 1й собес на codility.
Не делайте собесы от балды, если не уверены в своих силах.
А еще нужно начать практиковаться, ток зачем, все равно на работе надо будешь эксель заполнить или кнопошку на 12пх пододвинуть.
Эт вам не контеншон в многопоточном спагетти уменьшать 😥
Узнал интересный инфраструктурный паттерн - работоспособность деплоя зависит от работоспособности жыры.

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

Как вы могли догадаться - деплой эт рулетка. Зато есть время для пс4/хбох. Smaaart.
LegacyAuthKeyCachedRepository - и вот что делать с этим экскопаемым?
Живет с 2017, в коммитах явно говорится, что старье, но при этом используется везде и ответственность с этого никуда не ушла.
И шо с ним делать, писать рядом новое или расширять легаси.
Расширять легаси хоть в CV бери😡
Осознал, что uncle bob это дедушка горох 🤔
Things my CS degree didn’t teach me:
- Debuggers
- Infrastructure
- Server mgmt
- Cert mgmt
- Datastores
- Secure coding

Things my CS degree DID teach me:
- Recursion

Twitter: jessica_schalz
Какое занятное чтиво с утра!

Убер 81 раз деплоил приложение, чтобы гит-бисектом найти коммит с регрессией (привет монорепе, куче коммитов и зависимости в зависимости).

В итоге они форкнули компилятор, чтобы выводить чуток больше информации о runtime.newstack (так-что заголовок чуток желтый :)

ТЛДР: пулл горутин полезен

https://eng.uber.com/optimizing-m3/