Код, который не может не работать

Практическо-философский трактат о написании программного кода

Что, простите?

Код, который не может не работать

Что это?

Это принципы и концепции, которые описывают отношение к коду в момент его написания. На что следует обращать внимание, а чего следует избегать.

Это не только про технические аспекты, но и про энергетические. Про смыслы.

Поэтому — практическая философия.

Почему это?

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

Пропустив через себя огромное количество кода, я начал замечать, как тот или иной код влияет на мое состояние и вывел некторые закономерности.

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

Зачем это?

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

Может пришло время по-новому взглянуть на разработку? Понять смыслы. Понять, «зачем я этим занимаюсь». Заботиться о себе, о коллегах, о проекте, о компании и о конечных пользователях разрабатываемого продукта.

С текущей технической базой есть время заглянуть дальше.

Где это?

Концепции и размышления можно будет найти на этом сайте в разделе статей, а также в разде книг.

Обо мне

Привет!

Меня зовут Сергей Азаров.

Я разработчик.

Делюсь мыслями о написании кода и процессах в разработке.

Пишу практическо-философский трактат — «Код, который не может не работать».

Подробнее

Написать мне

Статьи

Различные размышления на разные темы

Дорожная карта · Балансировка · Команда · Практика

Применяем 8 аспектов составления дорожной карты

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

Теперь перейдем к практике и рассмотрим задачу создания облачного графического редактора.

Дорожная карта · Балансировка · Команда

8 аспектов составления дорожной карты

Многим проектам нужна дорожная карта.

Дорожная карта помогает скоординировать работу нескольких команд, а так же дает бизнесу ориентир ожиданий от разработки.

Архитектура · Книги

Какие книги нужно прочитать, чтобы в Архитектуру уметь

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

Для тех, кто не хочет читать всю статью, отвечу кратко — никакие. В этом плане нужно пропустить через себя большое количество разных проектов, чтобы выработать ощущение подходящих решений и архитектур, а это только насмотренность. И вообще, а что значит «гибкие системы»? 🤔

Дизайн система · Практика · Видео

Привет, Сергей! — об идеях дизайн-системы. Пилотный выпуск.

Как максимально сократить время от разработки макета в Figma до рабочей фичи в проекте?

Ответ: хорошо спроектированная дизайн-система.

Абстракция · Код · Эффективность · Видео · Практика

Поговорим об абстракциях? Смыслы. Примеры. Обсуждение.

Пожалуй, абстракция — это самое непонятное, что появляется перед новичками в процессе освоение славного ремесла программирования.

В этом видео сформулируем смысл абстракции, а так же разберем на примерах, как можно с ней работать.

Смотреть все

Дизайн-система для решения задач разработки

С моим товарищем и коллегой по нескольким проектам — Сергеем Мухиным, разобрали задачу и собрали прототип в реалтайме.

Открытый авторский курс «Анатомия приложения 2.0»

Курс предназначен для формирования понимания основных элементов приложения — Анатомии приложения, усвоения процесса создания приложения, понимания сущностей и принципов построения архитектуры.

«Приложение» — часть 1 курса Анатомия приложения

В этом видео мы рассмотрим первую часть курса «Анатомия приложения» и рассмотрим составляющие части приложения.

«Запуск приложения» — часть 2 курса Анатомия приложения

В этом видео мы рассмотрим вторую часть курса «Анатомия приложения» — запуск приложения.

Разберем, какие процессы и в какой последовательности отрабатывают начиная от точки входа, заканчивая рендерингом.

«Эксплуатация страницы» — часть 3 курса Анатомия приложения

В этом видео мы рассмотрим третью часть курса «Анатомия приложения» — эксплуатация страницы.

Разберем, какие подходы в организации кода помогут создавать хорошо поддерживаемые приложения.

Смотреть все

Мои книги

В работе

Код, который не может не работать

Книга, над которой работаю сейчас. О всей концепции.

Пока написано 150 черновых страниц, переработана примерна треть концепций.

Планируется

Команда, которая не может не работать

О том, что важно в команде. Про взаимоотношения, мотивацию, потоки внутри команды.

Код — это не только для себя, но и для окружения.

Планируется

Проект, который не может не работать

Что требуется для того, чтобы ваш проект заработал? Или не заработал?

Расскажу про свой путь и опыт в созданиях проектов. Что получалось, а что нет. Как разочаровывался, как складывал руки, и как снова начинал.

Читать

Ода коду

Я люблю код.

Я никогда не рассматривал написание кода как средство зарабатывания денег. Я рассматривал написание кода как процесс созидания. Мысль о том, что при помощи самого простого текстового редактора можно создать нечто реально изменяющее жизнь людей — будоражит сознание.

Я люблю код.

Я забочусь о нем. Я старательно подбираю названия переменных, функций, классов. Я старательно выстраиваю гармоничные узоры и структуры. Для меня это литературное произведение, песня, стихи и стихия.

Я люблю код.

Я люблю подсветку синтаксиса. Мне нравится ощущать код в контексте цвета. Цвет дает дополнительную степень изящества и грации. Цвет великолепно дополняет структуру и вкладывает дополнительные смыслы. Цвет — это надстройка над структурой. А структура — это надстройка над смыслами.

Я люблю код.

Я 14 лет каждый день пишу код. Практически без остановки. Если подсчитать количество дней и умножить на 8 (количество часов в стандартном рабочем дне), то получится 40 880. Это в 4 раза больше, чем 10 000 часов. Но я пишу код так же по вечерам и на выходных.

Принято считать, чтобы стать мастером, нужно посвятить 10 000 часов чему-либо. Получается, я уже четырежды мастер. Хотя этого совсем не ощущаю.

Я люблю код.

Для меня написание кода — это то же самое, что воздух, вода и пища. Я питаюсь энергией, которая выделяется при рефакторинге кода. Это пища для меня.

Я люблю код.

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

Я люблю код.

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

Я люблю код.

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

Я люблю код.

Я получаю огромное удовольствие от того, как развивается мысль при написании кода. Как одни структуры превращаются в другие. Третьи распадаются на более мелкие. Четвертые сливаются воедино. Это химическая реакция. Это игра на музыкальном инструменте. Это маленькая вселенная, которая зарождается с первого символа и превращается в итоге в галактики и звездные скопления. Это невероятная картина, если научится ее видеть.

Я люблю код.

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

Я люблю код.

Есть код, который болеет. Его называют легаси-код. Но на самом деле — это код, который не любили. И я чувствую его грустный взгляд. Взгляд, говорящий: «я с радостью сделаю все, как вы хотите, но...» — но его недолюбили. О нем не заботились.

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

Я люблю код.

Я могу писать модули, либо большие фрагменты кода в слепую — без запуска. Я знаю, что он будет работать, я доверяю своему коду. И он работает. Хотя... пару строк поправить все таки приходится.

Я люблю код.

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

Я люблю код.

∞ © Все права защищены

Все материалы, размещённые на данном сайте, защищены авторским правом.

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

По всем вопросам обращайтесь по адресу электронной почты: om@cantfailcode.ru