Ворчливый IT-дед
1.33K subscribers
469 photos
7 videos
1 file
103 links
Авторская колонка, в которой ворчит Дмитрий Александров (руководитель подразделения разработки в Яндекс Лавке).

По вопросам рекламы ... можете даже не писать, а то развели тут свою коммерцию, честным людям высказаться негде, все завалили рекламой
Download Telegram
Кстати, мы нанимаем!

Выбор стека разработки в компании - чертовски важная и сложная штука. Нужно, чтобы технологиям, которые выбраны для основных продуктов, можно было доверять. Чтобы они были удобными, понятными и гибкими. А еще важнее - долговечными с точки зрения поддержки.

Поэтому мы приняли решение переписать Лавку полностью на 1С. Причин тому много:

- это отечественное решение с надежной поддержкой, не привязанное к иностранным вендорам.
- максимальная гибкость и модульность фреймворка 1С - хоть тебе монолиты, хоть микросервисы.
- на рынке существует тьма готовых модулей для решения любых типовых проблем (как от вендора, так и в опен-сорсе). Особенно это актуально в тех частях продукта, где важно соотвествовать закнондательству и нормативам, которые для всех едины - интеграции с любыми госсистемами типа "честного знака", реализация налоговых расчетов и прочее.
- низкий порог входа для разработчиков (по сравнению с некоторыми другими языками и фреймворками, где ничего не понятно), наличие квалифицированных специалистов на рынке.
- в Лавке уже есть большая экспертиза по 1С, притом кажется - самая сильная в Яндексе.
- не все знают, но на 1С можно делать и мобильные приложения! Я уж молчу про веб-интерфейсы.

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

---

Ладно, это была первоапрельская шутка. Но лишь отчасти.
Во-первых, все достоинства 1С, которые я описал, имеют место быть. И в Лавке 1С используется для систем ERP, учета, коммерции.
Во-вторых, мы действительно ищем сейчас 1С-разработчика в команду ERP. Задачи разнообразные, интересные, прикладные и инновационные.
Ну и добавлю, что еще мы ищем python+go разработчика в команду Warehouse Managenent System, а также C++ разработчика в логистику.
Пишите https://t.iss.one/jkennedy или [email protected]
134😱2
Ваш продукт не нужен

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

Любой ваш продукт (система, сервис, интерфейс, услуга, информация) должен решать именно ту задачу, котора стоит перед "покупателем". Он должен "бить" в ценности заказчика и совпадать по форме с отверстиями в "сортере" потребностей клиента. Иногда, конечно, можно попробовать объяснить клиенту, что он не знает, чего хочет, и проблема на самом деле решается иначе. Но чаще - нужен не просто product market fit, но и мэтч с ожиданиями. Как минимум это проще продать.

Не делайте продукты, делайте решения.
💯731
Ελλάδα

Боги Олимпа смилостивились над нами и послали нам неделю греческой кухни. А тут еще и гости подъехали и помогли справиться с излишествами эллинского гостеприимства - сами мы столько не съедим.

Что мы знаем о Греции? Да на самом деле довольно много, из соображений общей эрудиции. А вот интересный случай нецелевого применения скиллов заключается в том, что математикам проще путешествовать по Греции, потому что все буквы, внезапно, знакомые. Вот только формула какая-то непонятная. Но хоть прочитать можно.

Греческая кухня по набору ингридиентов не слишком примечательна - основная специфика в соусах, творожном сыре и забавных названиях. На нашем столе побывали:
- греческий салат - не куда без него;
- сувлаки с соусом дзадзики - шашлычки в духовке все равно не заменят мангал, но куда деваться;
- гирос - почти та же шавуха, но в пите и со своим колоритом. Мы ее, правда, бафнули морковкой по-корейски;
- мусака - холестериновая кома, но бомбически вкусно, хвала Зевсу;
- тиропита - пирог из слоеного теста с фетой, который принесли гости, был очень даже хорош;
- авголемоно - суп из куриного бульона, пасты орзо, взбитых яиц и лимонного сока - оказался несъедобен, жена приготовила, попробовала и вылила, я даже попробовать не успел.
А в целом очень даже хорошо. В Греции надо бы еще раз как-нибудь оказаться, голодными точно не окажемся.
🔥4
Take on me, Take me on

Что такое хороший подарок? Вот когда вам дарят то, что вам в упор не нужно, это грустно. Когда дарят то, что вы и так без проблем и колебаний себе купили бы - это скучно. А вот когда дарят то, что вы правда хотели, но что-то сами не решались, или руки не доходили - это восторг. Недавно у меня был день рождения, и коллеги провели некоторую разведку через праздные разговоры. В итоге они подарили мне как раз то, над чем я думал, но долго откладывал - оригинальный аутентичный магнитофон на E30. Спасибо им большое, очень круто! Прям в сердечко!

В изначальном плане проекта мафон был. Но в какой-то момент я уже смирился, что до этого, скорее всего, не доберемся. Однако, раз уж мафон у нас чудесным образом появился - надо ставить! Разумеется, plug&play не случился. В машине стояла какая-то условно современная магнитола ну вот как вы себе представляете типичную стороннюю магнитолу из 00-х или 10-х. Даже со съемной панелькой.

Первым шагом было решено попробовать включить эту магнитолу, чтобы хотя бы убедиться в работоспособности динамиков и целостности проводки. Для этого нужно было нацепить ту самую съемную панельку. Когда при покупке бэхи мы ехали домой, эта панелька отвалилась, и я за ненадобностью ее закинул в бардачок. Но бардачок плохо закрывался, и я его закрыл посильнее... Так вот, теперь выяснилось, что больше он не открывается. Ну и ладно. Будем надеяться, что все включилось бы.

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

Конструктивно она даже подошла, хоть и имеет какой-то лютый оверкилл - воткнуть/вытащить ее трудно из-за сложной кинематики скользящего фиксатора. А сделать это, разумеется, пришлось еще раза 3. Дальше нужно было срастить проводку от авто с проводами фишки. Для этого была найдена распиновка, приступили. Один контакт, правда, пришлось перепиновать, не все совпало.

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

Главное, что в итоге музыка играет - и в машине, и на душе. А играет она с кассеты, которую я записывал еще для прошлой машины с кассетным мафоном (Chrysler New-Yorker 1989). В репертуаре у нас теперь a-ha, moby, nickelback, pain, bon jovi, reamonn, r.e.m., the offspring и другие легенды 90-х и 00-х. It's my life - #лёха_строит_бэху
🔥831
Том первый

Этот канал довольно много для меня значит. В него я вложил много сил и времени. В какой-то степени - это слепок моего сознания в сезоне 2025-2026. И в какой-то момент возникла мысль этот контент сохранить на память. Еще до момента, когда доступность телеграма стала вызывать опасения, я решил напечатать небольшим тиражом книгу. Нет, я вовсе не считаю себя писателем. Не берусь судить о ценности как мыслей, так и их подачи, но это какая-то часть меня, которая теперь есть и на бумаге.

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

Как бы то ни было, теперь у меня несть пара десятков экземпляров книги "Ворчливый IT-дед" с содержимым этого канала с 23 мая 2025 по 12 марта 2026. И частью тиража я готов поделиться с вами, если вы почему-то решили, что вам нужны эти 250 страниц "мудрости" - пишите в личку или комменты. Просто на память. А лучшая благодарность для меня - это если вы порекомендуете этот канал своим друзьям и коллегам.
🔥36👍146😱4
"Решение принято" (с)

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

А к этому добавлю следующее:

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

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

3. Перед принятием решения стоит убедиться, что у вас достаточно опций (как обычно, оптимально - 3-5). Но тут тоже есть ловушка - проверяйте инвариантность опций. Точно ли вы покрываете все пространство решений, а выбор что-то в реальности изменит? Лучше явно рассмотреть и отбросить больше опций и их последствий, чем искусственно сузить рамки. Тут еще советуют рисовать пресловутые матрицы 2х2 (загуглите, если не понимаете, о чем речь). По сути - важно соблюсти принцип Mutually Exclusive, Collectively Exhaustive.

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

5. И напоследок забавная байка. На какой-то встрече больших и умных людей в некоторой компании Х в адженде было 2 вопроса: 1) запуск новой производственной линии, 2) стоит ли сделать у офиса навес для велосипедов. В итоге 55 минут из часовой встречи состав участников обсуждал навес. Потому что это решение проще, понятней, меньше выталкивает из зоны комфорта. Мораль сами поймете.
🔥763
Garbage collecting

В школе и на первых курсах универа нас иногда выгоняли на субботник - собирать мусор и листву. Что изменилось с тех пор? Появились языки с эффективным автоматическим гарбадж-коллектингом. Например, Go. А субботники остались! Только они стали интересней.

Так что 25 апреля, в субботу (ну, субботник же) welcome на Я.Субботник по Go — митап для тех, кто строит и масштабирует сервисы на Go. Встречаемся в офисе Яндекса в Санкт-Петербурге и в онлайн-трансляции, чтобы обсудить всё, что волнует Go-сообщество: от интеграций и консистентности данных до сетевой инфраструктуры и observability в production.

В программе:
Владимир Тельбухов, руководитель группы разработки в Городских сервисах Яндекса. Расскажет про управление состояниями и консистентность в интеграциях
Иван Похабов, разработчик в Yandex Cloud. Препарирует GoBGP и виртуальные сети, чтобы разобраться в анатомии сетевых сбоев
Сергей Толмачев, разработчик в Yandex Infrastructure. Расскажет о новой функциональности Yandex Object Storage — S3 Inventory
Имран Турсунов, разработчик в Персональных сервисах Яндекса. На примере OpenTelemetry в Go покажет, как сделать наблюдаемость полезной (а не дорогой)
Все подробности и регистрация тут - https://events.yandex.ru/events/ya-subbotnik-go-25-04-2026

Про свой опыт с go я уже писал тут, и там же упоминал, что мы в Лавке как раз думаем, а не начать ли писать на го. Так вот UPD: подумали и начали! Вот только незадача - людей с промышленным опытом в голанге у нас преступно мало, мы по сути почти все - самоучки. Приходится выкручиваться, развивая ИИ-тулы, которые помогут нам меньше ошибаться, и возводя принципы AI-resisted-программирования почти в абсолют.

Но так совпало, что как раз сейчас у нас есть вакансия go+python разработчика. Так что если вы хотите на правах "самого умного" помогать нам адоптить новые технологии, менять подходы к эффективной AI-assisted-разработке и писать много нового кода - пишите мне https://t.iss.one/jkennedy или [email protected]
3111
Гамарджоба, генацвале!

На этот раз из кубышки нам выпала Грузия. Несколько фактов о грузинской кухне в призме восприятия моей семьи:
• Долгое время коронным грузинским блюдом у нас было "Жричёдали". Рецептура вариативна, но всегда вкусно.
• Моя жена любит грузинскую кухню. И была в большои предвкушении перед путешествием в Грузию. Однако, как это бывает, во время поездки выяснилось, что во многих московских грузинских ресторанах вкуснее, чем в грузинских грузинских ресторанах. И не потому, что еда как-то адаптирована, а просто вкуснее. Парадокс.
• Но встречаются и кейсы адаптации. Например, во вчерашней пачке хинкалей внезапно обнаружился special device - небольшой пластиковый захват для эффективного удержания хинкаля за ножку. Это ли не научно-технический прогресс XXI века?

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

Итого, все классно, но если вы захотите съездить в Грузию ради хорошей кухни - могу посоветовать хороший ресторан на Пролетарке...
🔥13😁5👍3