Слайд 1Code style
Булатов Александр, Сергей Гречишников
Слайд 2Проблема...
http://govnokod.ru/25967
Слайд 3Проблема...
http://govnokod.ru/25966
Слайд 4Проблема...
http://govnokod.ru/25617
Слайд 6Хороший код
Spring Pet Clinic
Слайд 8Переменные
PascalCase
camelCase
snake_case
kebab-case
SCREAMING_SNAKE_CASE
VsEm_PrIFFki_v_EtOm_CodE_CaSe
Слайд 9Переменные
Именование - на АНГЛИЙСКОМ языке, без транслита
Состояния и переменные -
существительные
Методы и функции - глаголы
Составные типы, классы - PascalCase
Переменные, методы,
и функции - camelCase
Константы - SCREAMING_SNAKE_CASE
Свойства в конфигурациях - kebab-case
Индексы - малобуквенные (i, k, j, it, idx)
Глобальные переменные - как можно меньше
Область видимости - как можно меньше
Слайд 17Формат выражений
Максимальная длина строки - 80 символов
Между оператором и операндами
- пробелы
Сложные логические выражения - по скобкам
Для тела условных выражений
- всегда фигурные скобки
Меньше вложенных IF-ов
Отступы - при помощи пробелов (2 или 4 пробела)
Перенос строк - отступ в 8 пробелов
Переменные для циклов - объявление внутри переменной
Слайд 19Функции
Соблюдать чистоту функций
Чистая функция - функция, поведение которой не зависит
от внешних источников, например, глобальных переменных, а также не изменяют
входные параметры
Возвращать значения НАДО
Аргументы функций - константы, если значение аргумента не надо изменять
Методы и функции как можно меньше по строкам кода, около 40
DRY - Don’t Repeat Yourself - если какой-то фрагмент кода повторяется, то вынести его в отдельную функцию
Слайд 21Комментарии
Комментировать сложные участки кода
Если есть сложный тип - пояснить
Документировать функции,
её аргументы (JavaDoc)
Если есть задачи на будущее в коде -
писать одиночный комментарий с TODO:
Слайд 24Обработка исключений
Использовать исключения!
Проверять на null, переполнение 0 и прочее
Слайд 27Стили кода
Google Java Code Style
PEP8
Kotlin Conventions
Javascript
Слайд 28Литература
Стив Макконелл, “Совершенный код”
Роберт Мартин, “Чистая архитектура. Искусство разработки программного
обеспечения”
Роберт Мартин, “Чистый код”