Clean Code
13.3K subscribers
2.32K photos
5 videos
2.97K links
Советы по написанию кода, обзоры распространенных ошибок и многое другое.

Ссылка: @Portal_v_IT

Сотрудничество: @oleginc, @tatiana_inc

РКН: clck.ru/3Ht6ch
加入频道
Channel created
Dependent functions

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

#cleancode
Bad Comments

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

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

#comments #bad
Ballast

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

#cleancode
Solid. Single Responsibility Principle

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

#codeprinciples #solid
Все хотят иметь дело только с понятным чистым кодом.
Но не все могут его создавать.
Версия для C#, проверь себя!

Clean Code Game

#cleancode #apps
Open-Closed Principle

Принцип открытости-закрытости
Программные сущности (классы, модули, функции) должны быть открыты для расширения, но не для модификации. Рассмотрим простой пример ниже.

При добавлении нового Animal придётся дополнять код функции AnimalSound. Если подобная архитектура используется в реальном проекте, функцию придётся постоянно расширять, добавляя в неё новые выражения if.

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

#cleancode #solid
Используйте значимые и произносимые имена переменных.

#variables
Favor functional programming over imperative programming

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

#functions
Don't ignore caught errors

Не игнорируйте обнаруженные ошибки.
Ничего не делать с обнаруженной ошибкой не дает вам возможности исправить или отреагировать на указанную ошибку. Вывод ошибки на консоль (console.log) не намного лучше, так как часто он может потеряться в море других вещей, напечатанных на консоли. Если вы добавляете какой-либо фрагмент кода в try / catch, это означает, что вы думаете, что там может произойти ошибка, и поэтому вам нужно правильно на нее отреагировать.

#errors
Readme Driven Development

RDD — это крайне простая практика.
Пишите Readme в первую очередь, вот в принципе и все. A какие приемущества это вам даст читайте в статье.

#architecture
Quality your working

WakaTime - сервис, который считает Ваше рабочее время. Большой плюс данного сервиса в том что он сам включается когда Вы начинаете писать код, и сам видит когда Вы ушли.
Он умеет логировать самую разную информацию, от количества рабочих часов над проектом, до составления графика об использовании языков программирования.

#work #quality #apps
Avoid positional markers

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

#comments