Заботьтесь о своем коде, как художник о своей картине

Приветик 👋 Я вернулся с очередной небольшой тирадой!

На днях я размышлял о том, что делает хороший код хорошим. Или, лучше сказать, переменные, которые делают его хорошим. Хорошим для меня, то есть.

Для меня переменными хорошего кода являются: Планирование, мастерство, последовательность, итерации/рефактор, наблюдение и, самое главное, забота. Или сокращенно PSICCO, поскольку я знаю, что индустрия любит хорошие аббревиатуры. Это не так хорошо, как KISS, но все равно 🤣.

Итак, давайте пройдемся по ним и дадим немного больше контекста!

Планирование

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

Дни кодирования могут сэкономить вам часы планирования…

Это предложение смешно, потому что оно не соответствует действительности. Планирование может сэкономить вам часы кодирования. Или, по крайней мере, часы кодирования дерьма, это не гарантирует, что вы этого не сделаете, но это может помочь.

Последовательность

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

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

Непоследовательный

У нас есть эти сущности:

- user.entity.ts
- account_entity.ts
- book.ts
Войти в полноэкранный режим Выход из полноэкранного режима

А это имитаторы:

- mock_user.entity.ts
- account_mock_entity.ts
- book_mock.ts
Вход в полноэкранный режим Выход из полноэкранного режима

тесты:

- user.entity.test.ts
- account_entity_test.ts
- test_book.ts
Войти в полноэкранный режим Выход из полноэкранного режима

Конечно, этот пример сильно преувеличен, но вы будете удивлены.

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

 Последовательный

- user.entity.ts
- account.entity.ts
- book.entity.ts
Вход в полноэкранный режим Выйти из полноэкранного режима

Вот примерные варианты:

- user.entity.mock.ts
- account.entity.mock.ts
- book.entity.mock.ts
Вход в полноэкранный режим Выход из полноэкранного режима

тесты:

- user.entity.test.ts
- account.entity.test.ts
- book.entity.test.ts
Войти в полноэкранный режим Выход из полноэкранного режима

Теперь, будучи последовательным, вы можете легко предсказать, как будет называться макет или тестовый файл для определенной сущности. Если вы хотите импортировать макет для книги, просто добавьте .mock в конец имени файла сущности, и так далее.

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

В то же время, если код непоследователен, мы не можем этого сделать.

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

Итерации

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

Я много работаю, чтобы не работать — Мой взгляд на рефакторинг

Keff ・ Aug 30 ’21 ・ 3 min read

#watercooler #healthydebate #программирование #продуктивность

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

Наблюдение

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

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

Забота

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

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


Итак, что вы думаете?

Упустил ли я какие-то важные моменты? И есть ли еще какие-нибудь моменты/переменные, которые, по вашему мнению, также важны для создания отличного кода?

Оцените статью
devanswers.ru
Добавить комментарий