функционал обеспечивается не языком или фреймворком, а бизнес-логикой самого продукта
Работать надо не головой, а компьютером
джунов не хотят брать. Не потому что знают мало. А потому что синдром Даннинга-Крюгера одного тормозит всю работу всем
Wiki Category: development
Стажёр Вася и его истории об идемпотентности API
Никогда не доверяйте ничему приходящему в вашу систему
Читать дальшеСтоимость ошибки и изменений…
хотелка бизнеса
1 строка
бизнес анализ этой хотелки
10 строк
ТЗ, спека
100 строк
Код реализации
1000 строк
Наконец то: Гвидо ван Россум намерен достигнуть двукратного увеличения производительности в CPython 3.11
Наработки проекта публикуются в отдельном репозитории faster-cpython. Один из участников проекта, ранее занимавшийся разработкой JIT-компилятора HotPy для CPython, опубликовал план, в соответствии с которым считает реалистичным поднять производительность в пять раз и добиться этого результата в выпуске Python 3.13.
Читать дальшеПро разработку програм и продуктов
Я тут может очевидное кому-то скажу, а кому-то может неочевидное.
Часто бывают программеры, которые типа “на проекте был бардак – ни четких ТЗ, ни куда гребем непонятно”. Это от непонимания, что никто никогда не знает зачем ПО вообще делают, и куда дорога вывезет. За редкими исключениями.
Давайте от противного. Вот есть, условно, MS Word. Туда никаких фичей, кроме текущих – и не надо. Да и тех что есть – можно выкосить половину. Можно ли сделать точно также? Да, думаю где-то за 100M баксов – вполне. Что копейки по сравнению с продажами. Можно ли достать 100 лямов, переписать Word – и зарабатывать как MS? Неа. Потому что срать будет всем на ваш новый Word. Чтобы стать продуктом, Office-у пришлось прожить с людьми десятилетия, делать фичи типа “радужный 3D-текст Comic Sans-ом с тенью” – потому что тогда это было модно. А потом – поддерживать эти фичи. Учить поколения людей форматировать пробелами. И так, не мытьем, но катаньем, они захватили рынок.
Сложность и сила ПО – не в текущем его наборе фич, а в возможности его постоянно менять. А талант программиста – не в том чтобы по спеке сделать с тестами. Он про то, чтобы предсказать куда дует ветер, и про вычленить те кусочки, которые скорее всего пригодятся – когда надо будет разобрать и собрать всё заново. Или понять что хер угадаешь куда вывезет, и просто писать код быстро, просто и без ошибок. А как поменялось – стирать и переписывать.
Сам код – вообще имеет отрицательную ценность – чем его больше, тем хуже, если ценность продукта постоянна.
на Джаве быстрее писать и саппортить, чем на системных языках
Go – для маленьких эффективных микросервисов, Java – для ООП-монстров, Rust – для лютого байтоёбства
Читать дальшене использовать технологию ради технологии, для красоты
безоговорочное доверие авторитетам, этот «аристократичный» синдром, наравне с «культом карго» — это одна из ключевых проблем современного IT.
Читать дальшеЧто нужно учитывать менеджеру, чтобы не переделывать проект с нуля
из-за игнорирования техдолга, рано или поздно загибается каждый третий продукт
Читать дальшеТехнический долг на проекте
Ответ кроется в самом понятии проекта. Одним из ключевых отличий проекта от других видов деятельности является уникальность конечного продукта. Там где уникальность, там и непредсказуемость, и именно она порождает изменения на проекте и вносит трудности в первоначальное проектирование системы.
Читать дальшеиз жизни в разработке “складов”: Остатки
в итоге они все уволились, да
Читать дальше65 вещей, которые я не знал, когда начинал программировать (а жаль)
58. Мастерство приходит с практикой
Повторение — мать учения, а один из самых надежных способов овладеть чем-то — настойчиво это практиковать.
7 бомб рванут если не делегировать
Ты круто все делаешь сам 💪
Круче, чем любой твой сотрудник.
Поэтому все сложное и важное всегда пилишь именно ты.
как мы решали проблему постоянных исправлений
сбор сведений и формирование требовании;
команда груммит и продумывает решение;
назначается ответственный разработчик;
разработчик описывает техническое решение;
затем это техническое решение проходит ревью у команды и остальных погруженных в предметную область;
и только после того, как согласовали решение, разработчик пишет код;
код-ревью;
тестирование.
Скрытые расходы при переходе на микросервисы
Перед стартом работы над дроблением монолита на микросервисы рекомендую пройтись по чеклисту, чтобы ничего не упустить:
Мастер-данные
Написание кода по-новому
Проектирование IT-продукта заново
Создание новой инфраструктуры
Измерение и проверка SLA
Вклад в fault tolerance на всех уровнях
Реорганизация команд
Работы по обратной совместимости
Интеграция служб поддержки
Догоняющий поток фич
Waterfall которого никогда не было
В 1970 году внесение изменений в код занимало 1 день: кодирование алгоритма, нанесение на перфокарту, проверка. А машинное время дорогое, там еще другой математик-алгоритмист хочет провериться, поэтому если ты ошибся -жди один день пока тебе дадут машинное время.
…
Таком образом весь Agile это про две цели:
– Идеальный мир для Инженера
– Сокращение затрат на поддержку ИТ-продукта.
Нет пророка в своем отечестве
… накопленный у руководителя негатив уже ничем нельзя было сдержать. Программиста хотели уволить. Собственно, это была одно из причин аудита, на который я припёрся.
Читать дальшеКак PHP превращается в Java/C#
на подходе дженерики, асинхронщина аля Node.js и JIT компиляция
Читать дальшеНикто не умеет управлять программистами — и все придумывают костыли, вместо решений
Есть компании, где процесс разработки реально работает отлично. Я скажу вам почему — они выиграли в лотерею. У них оказалось намного больше людей, которые хотят работать — с такими, как не управляй, все будет идти хорошо. Даже манагерскую мишуру с бордами они используют для дела, а их перформанс и по джировым, и по интуитивным метрикам ясно виден. И когда их менеджеры-не-разрабы приходят мешать им, у них за спиной стоит шикарный продукт, который даёт им право посылать эти говорящие головы к черту.
…
Но такая команда — фантастическая удача. А обычно происходит вот что. На десять человек у тебя два, которые хотят работать. Один из них тимлид, а второй увольняется.
Что делать, если в вашей команде появился «эффективный» менеджер?
ряд психологических лайфхаков, которые могут помочь сохранить нервы при работе с “эффективным” менеджером:
Сохраняйте доброжелательность, в данный момент они тоже часть команды.
Презентуйте и подводите “руководителей” к нужным решениям, как будто это их идеи. Покажите, что они нужны и вносят ценный вклад в развитие продукта.
Рассказывайте о достижениях, результатах работ и планах на следующий этап. Создавайте видимость, что “эффективные” менеджеры полностью контролируют процесс разработки и при желании могут на него повлиять.
Постройте канал общения с “эффективными” менеджерами — отдавайте ту информацию, которую они хотят получить, без вреда для основных процессов.
разрабы и студенты заипали
Не, я все понимаю. Такой рынок. Разработчиков нужно больше, чем их есть. И уже они устраивают собеседования работодателям, а не наоборот. И я дипломатично лавирую между интересами заказчиков и разработчиков. Ибо заказчиков не ебет. Им нужен результат, с качеством и в срок. И их даже близко не ебет, что кто-то там почему-то чего-то не сделал. При этом разработчики тоже жгут: NDA мы подписывать не хотим, эта тематика нам не нравится, тут слишком давят, там слишком не понятны перспективы проекта. Сроки, порой, вообще не про них. Съезжают с темы. И у меня уже голова пухнет. Мне отвечать перед заказчиком, а они сваливают и ищи свищи потом.
Читать дальше