Кстати, совершенно нормальная схема вката в айти (без иронии),и требования вполне разумные.
Только надо уточнить один малюсенький момент по поводу "... 20 000 и т.д."
"и т.д." -- значит ли приведённый пример, что моя зп 0-10-20... через год будет 120,000 рублей, через два года 240,000 рублей, через пять лет -- 600,000 рублей, и т.д.?
Какая конкретно числовая последовательность из On-Line Encyclopedia of Integer Sequences тут подразумевается?
И не будет ли это на самом деле A000005 ?
10, 20, 20, 30, 20, 40, 20, 40, 30, 40...
Или даже A000120 ?
10, 20, 10, 20, 20, 30, 10, 20...
Только надо уточнить один малюсенький момент по поводу "... 20 000 и т.д."
"и т.д." -- значит ли приведённый пример, что моя зп 0-10-20... через год будет 120,000 рублей, через два года 240,000 рублей, через пять лет -- 600,000 рублей, и т.д.?
Какая конкретно числовая последовательность из On-Line Encyclopedia of Integer Sequences тут подразумевается?
И не будет ли это на самом деле A000005 ?
10, 20, 20, 30, 20, 40, 20, 40, 30, 40...
Или даже A000120 ?
10, 20, 10, 20, 20, 30, 10, 20...
3😁64✍8🤔7🫡3🤝1
Главное в работе с дорогими моделями: вытянуть из них логику (даже работающий код не так критичен) для самой сложной части задачи, всё остальное прекрасно делегируется дешёвым/ бесплатным ллм-кам. В каком формате вытаскивать логику? В виде тестов слишком низкоуровнево, это второй уровень мышления о проекте, а нам нужен третий. В виде "свободного" словесного описания -- слишком абстрактно и практически всегда нечётко и противоречиво.
Склоняюсь к C4 или BPMI, но жпт пока рисовать диаграммы не умеет (на самом деле, уже немного умеет, скоро дам донам материал на эту тему). Но лучше чем текст, никогда ничего не было и не будет в плане КПД, картинки -- всегда лишь вторичное удобное дополнение. Тут идеально подходит BDD (курс по которому у меня в активном процессе, ~50% готово).
Но это конечно немыслимо
- не только без прокачанных архитектурных и software design-скиллов, подразумевающих, что вы по тексту задачи способны с ходу визуализировать в своей собственной голове её структуру на достаточно высоких уровнях абстракции, но с возможностью детализации (C4),
- и не только без навыка функционального проектирования ("Functional Core, Imperative Shell", потому что AI лучше всего пишет автономные чистые функции),
- но и без прокачанных скиллов постановщика/аналитика/тестировщика, для чего в контексте общения с жпт желательно уметь уверенно работать с подходом BDD (он ведь, по большому счёту, про многоуровневое в плане логики тестирование) и методологиями вроде BPMI, в формате продвинутых формализованных промптов.
По этим темкам у меня уже много материалов и готово, и ещё делается, причём теперь практически все новые материалы и курсы будут доступны не только моим курсантам, но и (почти) всем (это пока я делаю прикорм :)
С 9 января продолжим в рабочем режиме. 🚀
Склоняюсь к C4 или BPMI, но жпт пока рисовать диаграммы не умеет (на самом деле, уже немного умеет, скоро дам донам материал на эту тему). Но лучше чем текст, никогда ничего не было и не будет в плане КПД, картинки -- всегда лишь вторичное удобное дополнение. Тут идеально подходит BDD (курс по которому у меня в активном процессе, ~50% готово).
Но это конечно немыслимо
- не только без прокачанных архитектурных и software design-скиллов, подразумевающих, что вы по тексту задачи способны с ходу визуализировать в своей собственной голове её структуру на достаточно высоких уровнях абстракции, но с возможностью детализации (C4),
- и не только без навыка функционального проектирования ("Functional Core, Imperative Shell", потому что AI лучше всего пишет автономные чистые функции),
- но и без прокачанных скиллов постановщика/аналитика/тестировщика, для чего в контексте общения с жпт желательно уметь уверенно работать с подходом BDD (он ведь, по большому счёту, про многоуровневое в плане логики тестирование) и методологиями вроде BPMI, в формате продвинутых формализованных промптов.
По этим темкам у меня уже много материалов и готово, и ещё делается, причём теперь практически все новые материалы и курсы будут доступны не только моим курсантам, но и (почти) всем (это пока я делаю прикорм :)
С 9 января продолжим в рабочем режиме. 🚀
1✍48👍16🔥5👏3
На какой формат лучше всего заменить эти ваши бесконечно мучительные нетипизированные де/сереализации через жсон? 98% и не знают, что есть вот такой прекрасный "language-neutral, platform-neutral extensible mechanism for serializing structured data".
И нет, это не хмл: "think XML, but smaller, faster, and simpler. You define how you want your data to be structured once, then you can use special generated source code to easily write and read your structured data to and from a variety of data streams and using a variety of languages".
Срочно встраиваем в свои проектыProtobuf отсюда.
И нет, это не хмл: "think XML, but smaller, faster, and simpler. You define how you want your data to be structured once, then you can use special generated source code to easily write and read your structured data to and from a variety of data streams and using a variety of languages".
Срочно встраиваем в свои проекты
1👏33🤔22👍9✍7💯2
Обновлённый список наших блогеров на 08.01.25.
Существенно съёжился :) потому что с 1 января правила занятий в моей Школе стали существенно строже. Теперь в частности любое нарушение правил (например, правил ведения блога) -- просто ликвидация соответствующей возможности без какой-либо обратной связи. В правилах всё расписано максимально подробно.
Больше никого не предупреждаю, не подсказываю, не напоминаю и т.д.
Я чрезмерно вожусь с занимающимися, словно это малые дети, словно их рост нужен мне, а не им. Не хотите следовать моим рекомендациям, считаете, что блог и прочее пустая трата времени, ну ok, без проблем.
Главная задача тренера -- развивать в человеках самостоятельность, мышление чемпионов, ну и ответственность хотя бы за самого себя, за свои собственные поступки. Но в 98% случаев вижу только детский сад штаны на лямках.
/dev в vk сегодня разбираю легендарную статью "Big Ball of Mud": семь классических антипатернов разработки.
Существенно съёжился :) потому что с 1 января правила занятий в моей Школе стали существенно строже. Теперь в частности любое нарушение правил (например, правил ведения блога) -- просто ликвидация соответствующей возможности без какой-либо обратной связи. В правилах всё расписано максимально подробно.
Больше никого не предупреждаю, не подсказываю, не напоминаю и т.д.
Я чрезмерно вожусь с занимающимися, словно это малые дети, словно их рост нужен мне, а не им. Не хотите следовать моим рекомендациям, считаете, что блог и прочее пустая трата времени, ну ok, без проблем.
Главная задача тренера -- развивать в человеках самостоятельность, мышление чемпионов, ну и ответственность хотя бы за самого себя, за свои собственные поступки. Но в 98% случаев вижу только детский сад штаны на лямках.
/dev в vk сегодня разбираю легендарную статью "Big Ball of Mud": семь классических антипатернов разработки.
1❤34👍15🫡9✍4💯3
"все LLM склоняются к среднему значению" (с)
Классная статья, как пацаны пытались применять ai в реальной программистской работе (лучшим ожидаемо оказался клод 3.5)
"What we learned copying all the best code assistants"
Важно! Есть несколько техник улучшения генерируемого кода, буквально ллм-ке надо просто сказать "пиши код получше, братан!", и она реально будет стараться побольше.
Как давать промпты, которые могут ускорить код в 100 раз (пример):
"Your code is not fully optimized, and you have been fined $100. Make it more optimized."
"Can LLMs write better code if you keep asking them to "write better code"?"
И тоже лучше всего прокатывает с клодом 3.5.
/meta-learn Донам в паблике для начинающих программистов продолжаю выкладывать продвинутые материалы по продуктивному самообучению и тайм-менеджменту.
"Принцип Парето (80/20) — это мощный инструмент для анализа и оптимизации, но его применение может быть глубже и неожиданнее, чем кажется на первый взгляд. Вот четыре малоизвестные и, возможно, контр-интуитивные рекомендации, которые развивают эту идею, основываясь на свежих исследованиях и подходах..."
(через месяц материал сгорит, теперь как и многие другие)
Классная статья, как пацаны пытались применять ai в реальной программистской работе (лучшим ожидаемо оказался клод 3.5)
"What we learned copying all the best code assistants"
Важно! Есть несколько техник улучшения генерируемого кода, буквально ллм-ке надо просто сказать "пиши код получше, братан!", и она реально будет стараться побольше.
Как давать промпты, которые могут ускорить код в 100 раз (пример):
"Your code is not fully optimized, and you have been fined $100. Make it more optimized."
"Can LLMs write better code if you keep asking them to "write better code"?"
И тоже лучше всего прокатывает с клодом 3.5.
/meta-learn Донам в паблике для начинающих программистов продолжаю выкладывать продвинутые материалы по продуктивному самообучению и тайм-менеджменту.
"Принцип Парето (80/20) — это мощный инструмент для анализа и оптимизации, но его применение может быть глубже и неожиданнее, чем кажется на первый взгляд. Вот четыре малоизвестные и, возможно, контр-интуитивные рекомендации, которые развивают эту идею, основываясь на свежих исследованиях и подходах..."
(через месяц материал сгорит, теперь как и многие другие)
1⚡45👍11
Программисты, у которых нет устойчивого личного бренда в эпоху AI, уже в текущем десятилетии практически обречены на выбор новой профессии.
В лучшем случае - на униженное вымаливание среднерыночный зарплаты в офисе 24/7 среди десятков откликов от таких же безликих и никому не известных сеньоров.
В лучшем случае - на униженное вымаливание среднерыночный зарплаты в офисе 24/7 среди десятков откликов от таких же безликих и никому не известных сеньоров.
1🫡64👍12❤5🤔3😁1
Олег никак не может понять, почему его код постоянно даёт сбои, потому что он изначально не знал, почему он вообще работал. А теперь ещё и AI позволяет плохим разработчикам натворить столько дел, что вам понадобится в разы больше хороших программистов, чтобы потом это всё исправить.
Вам кажется, что разбираться в легасе-коде очень тяжело (я уж молчу о том, насколько тяжелее будет вносить в него правки)? Попробуйте-ка разобраться в объёмном коде, сгенерённом AI, а потом его ещё и посопровождать.
/ai как у меня дыхание перехватило, когда я увидел яндексовские цены на евоный жпт )))
Вам кажется, что разбираться в легасе-коде очень тяжело (я уж молчу о том, насколько тяжелее будет вносить в него правки)? Попробуйте-ка разобраться в объёмном коде, сгенерённом AI, а потом его ещё и посопровождать.
/ai как у меня дыхание перехватило, когда я увидел яндексовские цены на евоный жпт )))
1😁60✍3🤔2🤯2
У них не было проектов, невыполненных заданий, технического долга и длинного бэклога; у них не было списков фич, сюжетных сценариев и оценок продуктивности; у них не было scrum-мастеров и тренеров по гибкой работе; у них не было спринтов, итераций и временных рамок; у них не было аналитиков, тестировщиков и product owner-ов; у них не было ретроспективных обсуждений, тройных сессий amigos и критериев приемлемости; у них не было серверов сборки, стендов UAT и показателей охвата тестированием.
И тем не менее (или благодаря этому всему?) они ухитрялись выкатывать устойчивые сервисы для трейдинга не за месяцы, а за минуты...
=
У меня была идея смоделировать подобный успешный (и крайне редкий) опыт и сделать несколько материалов, а может и курсов, по теме
как выдавать (достаточно качественный) продукт БЫСТРО.
FAST!
...Но если условный миддл будет пытаться ускорить выпуск всего продукта в целом -- например тематически выступая на созвонах -- то результат в 100% случаев будет отрицательным. Все вышестоящие, совершенно независимо от его правоты, просто заклюют комментариями в духе: "лучше своей работой как следует занимайся! стратегия это не твоего ума дело! ишь ты!".
Более того, даже простейшая инженерная эвристика "повысить качество системы через ликвидацию всех предупреждений, выдаваемых линтерами", исходящая снизу, в 99,9% случаев вызовет весьма яростное подгорание и сопротивление ваших всевозможных руководителей. Просто потому, что мейнстрим накрепко прошил им кривой управленческий шаблон "всегда держать лицо".
Хотя, очевидно, такая эвристика повысит качество, возможно, и не сильно, но именно качественно, а не просто количественно, как при тупом повышении процента охвата кода тестами.
...В частности, и по таким причинам, общаться ни с кем выше синьорского уровня у меня желания нету совершенно никакого. Сейчас пропорции курсантов у меня примерно такие: 30% сеньоры, 50% миддлы, остальные джуны и начинающие с нуля, и добавлять новые типы курсантов принципиально не планирую.
Поэтому я решил, что заниматься темой FAST! не буду :)
И тем не менее (или благодаря этому всему?) они ухитрялись выкатывать устойчивые сервисы для трейдинга не за месяцы, а за минуты...
=
У меня была идея смоделировать подобный успешный (и крайне редкий) опыт и сделать несколько материалов, а может и курсов, по теме
как выдавать (достаточно качественный) продукт БЫСТРО.
FAST!
...Но если условный миддл будет пытаться ускорить выпуск всего продукта в целом -- например тематически выступая на созвонах -- то результат в 100% случаев будет отрицательным. Все вышестоящие, совершенно независимо от его правоты, просто заклюют комментариями в духе: "лучше своей работой как следует занимайся! стратегия это не твоего ума дело! ишь ты!".
Более того, даже простейшая инженерная эвристика "повысить качество системы через ликвидацию всех предупреждений, выдаваемых линтерами", исходящая снизу, в 99,9% случаев вызовет весьма яростное подгорание и сопротивление ваших всевозможных руководителей. Просто потому, что мейнстрим накрепко прошил им кривой управленческий шаблон "всегда держать лицо".
Хотя, очевидно, такая эвристика повысит качество, возможно, и не сильно, но именно качественно, а не просто количественно, как при тупом повышении процента охвата кода тестами.
...В частности, и по таким причинам, общаться ни с кем выше синьорского уровня у меня желания нету совершенно никакого. Сейчас пропорции курсантов у меня примерно такие: 30% сеньоры, 50% миддлы, остальные джуны и начинающие с нуля, и добавлять новые типы курсантов принципиально не планирую.
Поэтому я решил, что заниматься темой FAST! не буду :)
1🤔45💯17👍10🤝2😁1
...А сосредоточиться в этом году хочу на том, как - ясно и прозрачно, легко и просто, быстро и дорого - упаковывать в своей голове системы всё большего масштаба (миллионы строк кода). Такие своеобразные формальные свёртки проектных знаний с минимумом потерь. Иначе будете как Олег, который никак не мог понять, почему его код постоянно даёт сбои (а потому что он изначально не знал, почему тот вообще работал) . Ведь ковыряться в легаси-коде, в неполной документации, в кривой и противоречивой корпоративной wiki можно бесконечно и чаще всего совершенно непродуктивно. Да и пилить с нуля систему, которая уже на втором десятке тысяч строк стремительно превращается в big ball of mud, ничуть не лучше.
Для этого вам нужно ОДНО: вы должны знать и понимать прежде всего в своей собственной голове, почему весь ваш код, вся ваша система работает так, как работает сейчас, причём на всех основных уровнях абстракций (для разминки C4 в помощь например).
Первые три обязательных шага Базы (курсы по ним я сделал, будет отдельный трек):
-- Ясное Легаси
-- Ясное TDD по Кенту Беку
-- Ясное BDD
Они дадут прежде всего минимальное понимание темы, без которого что-то изучать дальше бессмысленно. Но там как раз и начинается самое интересное: как например вывернуть BDD "наизнанку", стать инди-хакером, взламывающим, как Эллиот Андерсон, дебильные организационные процессы, "организованные" бездарными и никчемными менеджерами, не сверху, а снизу, через корпоративный КОД.
=
"Цель разработки ПО -- создание фрагментов или срезов, которые умещаются в человеческом сознании. Программное обеспечение продолжает расти, но возможности человеческого мозга ограничены, поэтому, чтобы продолжать вносить изменения, мы должны продолжать фрагментировать".
-- Кент Бек
Как это сделать — фундаментальная тема программной инженерии. К счастью, есть набор эвристик, которые могут помочь. Сколько их? Я отобрал (буквально, отжал у ряда гуру computer science :) где-то около 50-ти. При том, что практически каждая из них автономна (как вышеупомянутая про устранение предупреждений линтера), и вы сможете хакать и править с их помощью кривейшие организационные процессы разработки в вашей конторе практически сразу же после изучения, при этом никак не согласовывая свою подпольно-революционную активность ни с кем, кроме адекватных понимающих сеньоров.
Для этого вам нужно ОДНО: вы должны знать и понимать прежде всего в своей собственной голове, почему весь ваш код, вся ваша система работает так, как работает сейчас, причём на всех основных уровнях абстракций (для разминки C4 в помощь например).
Первые три обязательных шага Базы (курсы по ним я сделал, будет отдельный трек):
-- Ясное Легаси
-- Ясное TDD по Кенту Беку
-- Ясное BDD
Они дадут прежде всего минимальное понимание темы, без которого что-то изучать дальше бессмысленно. Но там как раз и начинается самое интересное: как например вывернуть BDD "наизнанку", стать инди-хакером, взламывающим, как Эллиот Андерсон, дебильные организационные процессы, "организованные" бездарными и никчемными менеджерами, не сверху, а снизу, через корпоративный КОД.
=
"Цель разработки ПО -- создание фрагментов или срезов, которые умещаются в человеческом сознании. Программное обеспечение продолжает расти, но возможности человеческого мозга ограничены, поэтому, чтобы продолжать вносить изменения, мы должны продолжать фрагментировать".
-- Кент Бек
Как это сделать — фундаментальная тема программной инженерии. К счастью, есть набор эвристик, которые могут помочь. Сколько их? Я отобрал (буквально, отжал у ряда гуру computer science :) где-то около 50-ти. При том, что практически каждая из них автономна (как вышеупомянутая про устранение предупреждений линтера), и вы сможете хакать и править с их помощью кривейшие организационные процессы разработки в вашей конторе практически сразу же после изучения, при этом никак не согласовывая свою подпольно-революционную активность ни с кем, кроме адекватных понимающих сеньоров.
2👍52🔥13✍3⚡2🤝2
Курсантам на треке "Элитный программист" выложил БАЗУ: мощный материал "Дофаминовый детокс" (как обмануть свой мозг, чтобы он начал с удовольствием делать сложные вещи).
Вероятно, у вас нет проблем с компьютерными играми или постоянным просмотром соцсетей. Также нет сомнений в том, что перед экраном вы можете сидеть целый день, не теряя концентрации (например, при игре в Доту2 за боевого петуха). Но подумайте об обучении в течение хотя бы одного часа… УФ!! Это может быть тяжело. Или даже поработать над своим сайд-проектом в течение часа… Хм. Звучит не так привлекательно. Одно занятие лёгкое и не требует особых усилий , а другое сложное и требует приложения усилий. Однако некоторым людям нравится длительно заниматься сложными видами деятельности (например, мне), и не особо уставая. Как стать таким же?..
/boost Я завёл бусти 🙈 Пока исключительно в тестовых целях, хочу понять, насколько там реально продавать отдельные материалы в виде платных постов для всех. Платных подписок не планируется! Опубликовал там целиком "Дофаминовый детокс", пока 99 рублей. Ну или отнеситесь к этому просто как к донату :)
картинка — это стёб, если вдруг кто не понял.
Вероятно, у вас нет проблем с компьютерными играми или постоянным просмотром соцсетей. Также нет сомнений в том, что перед экраном вы можете сидеть целый день, не теряя концентрации (например, при игре в Доту2 за боевого петуха). Но подумайте об обучении в течение хотя бы одного часа… УФ!! Это может быть тяжело. Или даже поработать над своим сайд-проектом в течение часа… Хм. Звучит не так привлекательно. Одно занятие лёгкое и не требует особых усилий , а другое сложное и требует приложения усилий. Однако некоторым людям нравится длительно заниматься сложными видами деятельности (например, мне), и не особо уставая. Как стать таким же?..
/boost Я завёл бусти 🙈 Пока исключительно в тестовых целях, хочу понять, насколько там реально продавать отдельные материалы в виде платных постов для всех. Платных подписок не планируется! Опубликовал там целиком "Дофаминовый детокс", пока 99 рублей. Ну или отнеситесь к этому просто как к донату :)
69🔥52✍10🫡5🐳3❤2
🔥 СРОЧНО! СЛИВ ИНФОРМАЦИИ ОТ ИЗВЕСТНОГО СЕНЬОРА!
Вы до сих пор пишете async/await как джун?
Ваш код похож на спагетти из промисов?
Тимлид морщится, глядя на ваши асинхронные функции?
STOP! 🛑
Я раскрою вам СЕКРЕТНЫЕ ТЕХНИКИ, которые применяют только 1% элитных JavaScript-программистов!
В этом ЭКСКЛЮЗИВНОМ материале вы узнаете:
- 💣 Убойные паттерны работы с асинхронным кодом
- 🏃♂️ Как избежать "callback hell" раз и навсегда
- 🎯 Продвинутые техники обработки ошибок
- 🚀 Секреты оптимизации производительности
- 🧠 Мышление сеньора при работе с промисами
БОНУС!
Получите готовые шаблоны кода, которые используют в FAANG-компаниях!
Эти знания стоят $500/час консультации, но сегодня вы получите их практически БЕСПЛАТНО! Всего за 49 рублей!
Уже завтра цена сильно вырастет!
❌ НЕ ПОВТОРЯЙТЕ типичных ошибок миддлов
✅ ПИШИТЕ код как настоящий сеньор
Перестаньте писать async/await в JavaScript подобным образом! Вот как это делают сеньоры => Забирайте знания ТУТ, пока они доступны!
Время продаж ОГРАНИЧЕНО!
#javanoscript #programming #async #senior #development
(Если серьёзно, статья действительно содержит полезные практики по работе с асинхронным кодом в JavaScript и поможет существенно улучшить качество асинхронной логики).
Вы до сих пор пишете async/await как джун?
Ваш код похож на спагетти из промисов?
Тимлид морщится, глядя на ваши асинхронные функции?
STOP! 🛑
Я раскрою вам СЕКРЕТНЫЕ ТЕХНИКИ, которые применяют только 1% элитных JavaScript-программистов!
В этом ЭКСКЛЮЗИВНОМ материале вы узнаете:
- 💣 Убойные паттерны работы с асинхронным кодом
- 🏃♂️ Как избежать "callback hell" раз и навсегда
- 🎯 Продвинутые техники обработки ошибок
- 🚀 Секреты оптимизации производительности
- 🧠 Мышление сеньора при работе с промисами
БОНУС!
Получите готовые шаблоны кода, которые используют в FAANG-компаниях!
Эти знания стоят $500/час консультации, но сегодня вы получите их практически БЕСПЛАТНО! Всего за 49 рублей!
Уже завтра цена сильно вырастет!
❌ НЕ ПОВТОРЯЙТЕ типичных ошибок миддлов
✅ ПИШИТЕ код как настоящий сеньор
Перестаньте писать async/await в JavaScript подобным образом! Вот как это делают сеньоры => Забирайте знания ТУТ, пока они доступны!
Время продаж ОГРАНИЧЕНО!
#javanoscript #programming #async #senior #development
1😁56💯12❤6🐳5🫡1
СРОЧНО УХОДИМ с node.js, который всё теснее связывается с недружественной облачной коммерческой экосистемой vercel, на независимые альтернативы.
Прежде всего это
- Vite (a blazing fast frontend build tool powering the next generation of web applications)
и
- Remix (a full stack web framework that lets you focus on the user interface and work back through web standards to deliver a fast, slick, and resilient user experience. People are gonna love using your stuff).
Прежде всего это
- Vite (a blazing fast frontend build tool powering the next generation of web applications)
и
- Remix (a full stack web framework that lets you focus on the user interface and work back through web standards to deliver a fast, slick, and resilient user experience. People are gonna love using your stuff).
1🤯33✍20❤9🫡7💯3
qBittorrent -- лучший торрент-клиент, в нём нет ни рекламы, ни фишинга, ни другого мусора, говорили они...
В конце октября 2024 года разработчики выявили и устранили существовавшую более 14 лет уязвимость в системе безопасности qBittorrent, позволявшую злоумышленникам совершать MITM-атаки на пользователей.
Совершенно не удивлён, и дальше, по мере роста объёмов кода, безумно ускоряемого "с помощью" AI, будет только хуже.
В конце октября 2024 года разработчики выявили и устранили существовавшую более 14 лет уязвимость в системе безопасности qBittorrent, позволявшую злоумышленникам совершать MITM-атаки на пользователей.
Совершенно не удивлён, и дальше, по мере роста объёмов кода, безумно ускоряемого "с помощью" AI, будет только хуже.
1🤔49💯13🫡7🤝1
Есть ОДНА архитектурная тема, которую надо всегда держать в уме ПЕРВОЙ, если вы взялись за разработку системы, которая в перспективе может существенно вырасти по нагрузке. Это БАЗА System Design, чтобы вам ни говорили разные умные курсы, учебники или техдиры на собесах.
Причём из этой абстракции одной произрастает почти всё остальное: управление нагрузкой и асинхронщина, надёжность и декомпозиция, балансировка и детерминизм, и многое многое другое. Как ещё например вы сможете обеспечить low cohesion между микросервисами, если без ЭТОГО.
И это не просто один из квадратиков, который надо не забыть куда-то впихнуть в диаграммку system design, когда вас на собесе попросили "спроектировать архитектуру нетфликса". Это базовая архитектурная парадигма.
(пауза)
Конечно же это ОЧЕРЕДИ (сообщений, задач, потоковой обработки...)
Только не забывайте, что Kafka это pull, а RabbitMQ это push.
"Мелочи не играют решающей роли, они играют всё!"
-- Харви Маккей,
"Никогда не пейте в одиночку, или Копайте колодец до того, как почувствуете жажду"
"Как плавать среди акул"
(его книги очень рекомендую кстати)
Причём из этой абстракции одной произрастает почти всё остальное: управление нагрузкой и асинхронщина, надёжность и декомпозиция, балансировка и детерминизм, и многое многое другое. Как ещё например вы сможете обеспечить low cohesion между микросервисами, если без ЭТОГО.
И это не просто один из квадратиков, который надо не забыть куда-то впихнуть в диаграммку system design, когда вас на собесе попросили "спроектировать архитектуру нетфликса". Это базовая архитектурная парадигма.
(пауза)
Только не забывайте, что Kafka это pull, а RabbitMQ это push.
"Мелочи не играют решающей роли, они играют всё!"
-- Харви Маккей,
"Никогда не пейте в одиночку, или Копайте колодец до того, как почувствуете жажду"
"Как плавать среди акул"
(его книги очень рекомендую кстати)
1✍51😁11🤔6💯2
Ещё одна эвристика инди-хакеров: тайно включаем все предупреждения по максимуму, и превращаем их в ошибки, чтобы прод был идеально чистым на 100%.
roslyn\csc.exe GameEngine.cs /warn:4 /warnaserror
javac -Xlint:all -Werror GameEngine,java
С линтерами посложнее, но тоже вполне реально.
roslyn\csc.exe GameEngine.cs /warn:4 /warnaserror
javac -Xlint:all -Werror GameEngine,java
С линтерами посложнее, но тоже вполне реально.
1🤔51💯11❤🔥4❤4😁1
Я хорош настолько, насколько хорош мой последний проект. (И точка.)
Пример? Трудолюбивый китаец запилил полноценную ОС на 1,000 строк кода + подробный гайд.
А чего добился ты?
Пример? Трудолюбивый китаец запилил полноценную ОС на 1,000 строк кода + подробный гайд.
А чего добился ты?
1👍49🤯20❤6🤔5🏆4
Считается (считалось), что Java и C# -- это языки во многом схожие (и по синтаксису, и по семантике). Различаются они в основном по стандартным библиотекам, интеграцией с ОС, экосистемой и фреймворками. А что в 2024-м?
Anonymous Quiz
41%
на сегодня эти языки так и остались во многом схожими
59%
на сегодня это уже непохожие и совершенно разные языки
1🤔42🏆4👍1
Курсантам доступен 105-й материал СильныхИдей
"Как типично работает пятничный деплой"
1. Обновили прод.
2. Через 2 минуты стало ясно, что что-то пошло не так. В специально выделенный для этого канал условного шлака или чего-то другого подобного внутрикорпоративного посыпались множественные сообщения о каких-то ошибках SQL.
3. Вскоре выяснилось, что это было нарушение ограничений распределённой транзакции. Условно говоря, если топливо ракеты уже сожжено, то откатить транзакцию обратно не представляется возможным.
4. Так как мы начитались условного Сергея Бобровского, то откатиться назад и в коде уже не могли. Ведь правильная стратегия развития любой системы (без иронии):
двигаться только вперёд.
5. Через 5 минут мы выкатили обновлённый PR с хотфиксом.
6. Ошибки в проде прекратились.
7. Через час у нас был готов полный пакет обеспечения логической консистентности.
Однако мы, как почтальон Печкин, не отправили его, потому что развертывание в пятницу в 16:53 кажется слишком экстремальным даже для меня. Особенно когда все системы (вроде бы) работают, а проблема после фикса может уже подождать.
Да, но почему тесты не выявили этого??
(если конечно они у вас вообще были)
"Как типично работает пятничный деплой"
1. Обновили прод.
2. Через 2 минуты стало ясно, что что-то пошло не так. В специально выделенный для этого канал условного шлака или чего-то другого подобного внутрикорпоративного посыпались множественные сообщения о каких-то ошибках SQL.
3. Вскоре выяснилось, что это было нарушение ограничений распределённой транзакции. Условно говоря, если топливо ракеты уже сожжено, то откатить транзакцию обратно не представляется возможным.
4. Так как мы начитались условного Сергея Бобровского, то откатиться назад и в коде уже не могли. Ведь правильная стратегия развития любой системы (без иронии):
двигаться только вперёд.
5. Через 5 минут мы выкатили обновлённый PR с хотфиксом.
6. Ошибки в проде прекратились.
7. Через час у нас был готов полный пакет обеспечения логической консистентности.
Однако мы, как почтальон Печкин, не отправили его, потому что развертывание в пятницу в 16:53 кажется слишком экстремальным даже для меня. Особенно когда все системы (вроде бы) работают, а проблема после фикса может уже подождать.
Да, но почему тесты не выявили этого??
(если конечно они у вас вообще были)
1😁41👍15🤔5
Давно обещанный минималистичный mp3-плеер. Используете его as is.
Сюда прицеплять не буду, мало ли, вдруг захочу что-то подправить, Поэтому забирайте с "официальной" странички.
Там собственно никаких пояснений и не требуется: скачиваете архив, распаковываете во вневременную папку, и можете вручную задать в проводнике ассоциацию файлов mp3. Но мне неохота было возиться с реестром, мьютексы мутить, через win32 искать уже запущенный экземпляр... поэтому при щелчке на музыкальный файл текущий запущенный продолжит работать без переключения на новый файл. Может и подправлю со временем. Возможно, регулировку rate стоит сделать не через 0,1 а через 0,05.
В UI полторы кнопки "открыть файл" + play/stop, и ещё две для регулировки скорости воспроизведения. Текущие настройки сохраняются в каталоге, откуда плеер был запущен.
Ну и из самого стокового windows media player (мой плеер по сути просто враппер вокруг него), доступно стандартное контекстное меню настроек. Можете и только его поставить.
Приятного прослушивания.
Сюда прицеплять не буду, мало ли, вдруг захочу что-то подправить, Поэтому забирайте с "официальной" странички.
Там собственно никаких пояснений и не требуется: скачиваете архив, распаковываете во вневременную папку, и можете вручную задать в проводнике ассоциацию файлов mp3. Но мне неохота было возиться с реестром, мьютексы мутить, через win32 искать уже запущенный экземпляр... поэтому при щелчке на музыкальный файл текущий запущенный продолжит работать без переключения на новый файл. Может и подправлю со временем. Возможно, регулировку rate стоит сделать не через 0,1 а через 0,05.
В UI полторы кнопки "открыть файл" + play/stop, и ещё две для регулировки скорости воспроизведения. Текущие настройки сохраняются в каталоге, откуда плеер был запущен.
Ну и из самого стокового windows media player (мой плеер по сути просто враппер вокруг него), доступно стандартное контекстное меню настроек. Можете и только его поставить.
Приятного прослушивания.
1❤48🤔11✍7🏆3👏2
Ставь 🐳 если ждёшь от меня 100% рецептов, как разбогатеть с помощью программирования, при этом работать исключительно на удалёнке, и делать дневные тикеты на каждой из N параллельных работ максимум за часик,
а глубокомысленные темки вроде гомотопической теории типов совершенно по барабану 🥁
а глубокомысленные темки вроде гомотопической теории типов совершенно по барабану 🥁
1🐳127😁30🤓15🤔14⚡9