Следуйте правилам, или ваш код умрет в муках и муках.
Вспомните те случаи, когда вы пересматривали свой код, написанный несколько недель и месяцев назад, и говорили себе «Что за хрень!». Вы понятия не имеете, что делает ваш код или что означает эта переменная с именем «X».
Если ваша команда работает вместе над созданием продукта, и никто не заботится о написании чистого кода, вы плывете прямо в болото, в котором погружаетесь. Поддержание вашей кодовой базы по мере ее роста становится практически невозможным. Постепенно стены вашего подвала начинают трескаться, и в конечном итоге один этаж падает на другой и рушится, оставляя после себя обломки.
Поскольку ваш код будет поддерживаться другими товарищами по команде, права собственности на код меняются, написание кода, соответствующего стандарту сообщества, так же важно, как и написание работающего кода. Программист может написать код, понятный машине, но хороший программист пишет код, понятный людям.
Поскольку мы программисты-новички, стремящиеся стать звездными разработчиками, мы устанавливаем некоторые не подлежащие обсуждению основные правила, прежде чем приступить к кодированию. Наказание за нарушение — смерть вашего кода:
rm -rf my_loved_code
Ключевые правила
Ваш код должен быть максимально чистым. Нейминг должен показывать цель его существования. Избегайте сжатия и потери контекста.
- Отступы и интервалы должны быть одинаковыми для всех классов, методов и спецификаций. Используйте только пробелы для отступов.
Пример: Ruby — 2 пробела, Java — 4 пробела. - Иметь новую строку в конце каждого файла.
- Следуйте стандартам сообщества языка/фреймворка при именовании.
Пример: в Java используйте случаи верблюда, в Ruby — случаи змеи. - Следуйте стандартной структуре файла и проекта для конкретного языка.
Пример: для Java и ruby соответственно.
. ├── README.md ├── build.gradle ├── gradle │ └── wrapper │ ├── gradle-wrapper.jar │ └── gradle-wrapper.properties ├── gradlew ├── gradlew.bat ├── settings.gradle └── src ├── main │ └── java │ └── com │ └── gojek │ └── bootcamp └── test └── java └── com └── gojek └── bootcamp . ├── Gemfile ├── Gemfile.lock ├── README.md ├── lib └── spec └── spec_helper.rb
- Использовать пространства имен. C++ предоставляет пространства имен. В других языках вы можете создать класс, который состоит только из состояний (переменных) для использования в качестве пространства имен.
- Нет комментариев. Когда ваш код выразителен сам по себе, кому нужны комментарии. Мы несем ответственность за то, чтобы код обеспечивал понимание.
- Никакой неиспользуемый код не должен быть зарегистрирован. Вы пишете код только для удовлетворения требований, не более того. Преждевременная оптимизация — корень всех зол.
- Среда выполнения должна соответствовать среде IDE и CLI (интерфейсу командной строки). Потому что на производственном уровне вам нужно настраивать и запускать код в командной строке.
- ТДД. Ни один код никогда не будет написан без написанного теста и наблюдения за его провалом. Чтобы узнать, что такое TDD, здесь.
- Шаблоны Git и фиксации.
1. После создания стандартной структуры проекта выполните git init и зафиксируйте с помощью . имя автора в сообщении.
2. Напишите спецификацию, наблюдайте, как она терпит неудачу (КРАСНЫЙ), напишите код, который проходит тест (ЗЕЛЕНЫЙ), и зафиксируйте с сообщением о внедренной спецификации.
3. Рефакторинг и зафиксируйте. - Подробный файл README для каждого минимального проекта, содержащий
1. Описание проекта
2. Настройка среды разработки.
3. Инструкции по сборке.
4. Инструкции по запуску.
Любое нарушение вышеуказанных правил приведет к безжалостному rm -rf.
Делайте только то, чем вы гордитесь.
это золотое правило, которому мы следуем на буткемпе Go-Jek 003. Мы можем относиться к временам, когда мы поднимаем проект, чтобы внести свой вклад, но понимание скучных страниц длинной документации вызывает у нас раздражение.
Кодируйте так, чтобы нарисовать контекст, вам даже не нужна подробная документация, достаточно самого кода.
Хорошего дня!