Курс о том, как писать простой код, который решает сложные задачи, оставаясь понятным и поддерживаемым
Делимся общими принципами и учим распознавать тонкие места и избегать распространённые ошибки
Скоро анонс программы и тарифов
ЧЕК-ЛИСТЫ
5 недель
ПРАКТИЧЕСКИЕ УПРАЖНЕНИЯ
простой
(2) Когда программист сам за вечер для простой задачи делает простой скрипт, который выкинет уже на следующий день — проблем нет, код может быть какой угодно.
Но как только растёт масштаб — качество кода становится существенным аспектом.
(1) Курс подойдёт, если вы занимаетесь проектом, у которого увеличивается (или будет увеличиваться) масштаб.
когда подойдёт курс
Типичные сценарии,
(3) Новые фичи добавлять долго, потому что имеющаяся реализация негибкая, функции сложные, сроки разрастаются, а когда наконец выкатываем новую версию, пользователи обнаруживают много новых багов.
(4) Когда нужно решить конкретную ограниченную задачу здесь и сейчас — можно спросить у ЛЛМки и, невчитываясь, запускать код. Если надо доработать — подкрутим промт и получим целиком новый скрипт.
(5) Но если планируем развивать проект, добавлять фичи, фиксить баги, слушать пользователей и адаптировать продукт под требования рынка — качество кода становится важным, потому что довольно быстро при увеличении масштаба ЛЛМка перестаёт справляться — и тогда разбираться придётся уже нам самим.
Запускаете проект не на один вечер, а на много месяцев и лет
Масштаб ВРЕМЕНИ
(6) Когда нужно решить конкретную ограниченную задачу здесь и сейчас — можно спросить у ЛЛМки и, невчитываясь, запускать код. Если надо доработать — подкрутим промт и получим целиком новый скрипт.
(7) Но если планируем развивать проект, добавлять фичи, фиксить баги, слушать пользователей и адаптировать продукт под требования рынка — качество кода становится важным, потому что довольно быстро при увеличении масштаба ЛЛМка перестаёт справляться — и тогда разбираться придётся уже нам самим.
— Василий, расскажи, пожалуйста, что ты тут имел в виду? А как называется таблица с платежами? А в каком файле реализиован алгоритм обработки поступление платежа?… А почему так сложно-то?!
Пишем проект не в одно лицо, а командой — от двух и более человек
Масштаб команды
(8) Когда мы делаем простой тудушник, нет особой сложности понять, что как работает
(9) Когда нужно решить конкретную ограниченную задачу здесь и сейчас — можно спросить у ЛЛМки и, невчитываясь, запускать код. Если надо доработать — подкрутим промт и получим целиком новый скрипт.
(10) Но если планируем развивать проект, добавлять фичи, фиксить баги, слушать пользователей и адаптировать продукт под требования рынка — качество кода становится важным, потому что довольно быстро при увеличении масштаба ЛЛМка перестаёт справляться — и тогда разбираться придётся уже нам самим.
Мы пишем систему бронирования авиабилетов. Нужно учесть пассажиров, авиакомпании, продавцов, аэропорты, границы, визы, тарифы, чекины, отмены, переносы, стыковочные рейсы, доплата за багаж, особое питание, личные кабинеты, … — ааа, как это всё упомнить и учесть?!
Делаем проект для сложной предметной области с множеством сущностей и взаимодействий между ними
Масштаб системы
(11) В НАСА и JPL запрещено писать функции длиннее одной печатной страницы, использовать goto, рекурсию и динамическое выделение памяти. Потому что стоимость ошибки слишком высока.
(12) Мы не НАСА, но тоже хотим писать код, который будет работать no matter what.
Масштаб ответственности
(13) Разумеется, раз и навсегда не бывает: будущее невозможно предсказать, и у живого проекта всегда рано или поздно появится необходимость в переделке того, что уже было сделано.
(14) Но писать код так, чтобы не хотелось его выкинуть сразу после деплоя; так, чтобы работа с ним стала приностить удовольствие; чтобы вернулось ощущение всесильности, которое программисты обычно ощущают в начале пути — это возможно и даже не очень сложно. Достаточно развить насмотренность, замечать тонкие места и заранее устранять сложности.
Получили в наследство страшное легаси и хотим отрефакторить его раз и навсегда
Масштаб наследия
(2) Ещё не освоили основы и не участвовали в реальных проектах — ценность чистого кода будет неочевидна
(1) Вы решаете искуственные задачи с лит-кода и из олимпиад по программированию — код будет выкинут через минуту после завершения
(3) Хотите узнать 10 самых неожиданных функций JavaScript-а — мы не будем разбирать конкретные языки программирования
(4) У вас стартап на стадии «давай-давай» и вы проверяете по несколько гипотез в день — когда гипотеза «выстрелит», сможете переписать по-новой.
Курс не для вас
если
Больше всего
(1) Джуниорам+ и миддлам — вы уже изучили основные инструменты и применяете их для решения реальных задач. И теперь инструментами разработки становятся не только строки программ, но и их качество.
Тоже полезно
(2) Синьёрам и тимлидам— вы наверняка уже на опыте изучили довольно много. Курс поможет структурировать и обобщить уже известное и заполнить пробелы. Вы сможете системно улучшить качество работы вашей команды: уменьшить Time-to-Market, снизить количество багов. Сформулированные принципы помогут прокачивать подопечных и позволят не повторять одно и тоже на код-ревью.
подойдёт меньше
Джуниорам — вам ещё предстоит прокачать базу, узнать про циклы и функции, и прокачать насмотренность. Скорее всего вы ещё не сталкивались с теми проблемами, которые мы разбираем, поэтому ценность не будет сразу очевидна. Однако, вы всё равно можете пройти курс, чтобы быть готовым к будущему и не совершать ошибок новичков.
Кому подойдёт курс по уровню Мидл или джуниор
чего ждать
а чего не стоит
(2) Обсуждаем моделирование систем, наименование сущностей, общие паттерны и антипаттерны структурирования кода и данных
(1) Рассказываем общие принципы, даём универсальные инструменты
(2) Не разбираем конкретные паттерны ООП, 10 неожиданностей в JavaScript-е
(1) Не изучаем конкретные языки программирования и фреймворки
Федя бoрщёв
Независимый CTO, 14 лет руководит программистами. В курсе приземляет полёт мысли на практику и помогает держать фокус.
Анатoлий Буров
Соосновал Главред, Таймстрайп и Конспект. Работал дизайнером и технологом в Студии Лебедева, в компании Tunnel Technologies программировал, дизайнил и руководил (вырос от программиста до CIO).
Марьяна Oныськo
Специализируется на создании нового и копает образование. Ex-МИФ, Attendify и Ciklum. В курсе отвечает за образовательный трек. Делает, чтобы знания лучше прилипали, а учиться было кайфово.
Эксперты курса
Комьюнити Школы
Все выпускники собираются в чате, где помогают друг другу — от бытовых советов по релокации до советов по выбору стека. Сейчас в чате 9 топиков и более 1000 активных участников.
По окончании курса добавим вас в наше
Где работают
наши ученики