66 рекомендаций, улучшающих навыки программиста
Каждый разработчик хочет совершенствоваться, но как это сделать? Приводим список рекомендаций, которые улучшат ваши навыки программиста.
Представление кода
- Применяйте табуляцию и пробелы. Выберите для себя удобную манеру расположения скобок: на новой либо той же строке.
- Хорошее форматирование – не то, которое выглядит лучше, а то, которое упрощает просмотр и чтение кода.
- Правильное представление кода должно дать понять, как он работает, а также помочь избежать ошибок.
- Пишите код, понятный человеку.
- Выберите один стиль программирования и применяйте только его или воспользуйтесь любым общепринятым стандартом.
- Если вы работаете в файле, форматирование которого не соответствует общему соглашению остальной части проекта, следуйте соглашениям стиля в этом файле.
Именование
- Хорошее имя должно правильно и понятно описывать объект.
- Вы сможете дать объекту правильное название, если точно понимаете его смысл.
- Избегайте избыточности. Это показатель того, что вы не продумали имена в процессе проектирования.
class ItemList { public int numberOfItems () {…} } // numberOfItems неоправданно длинное. Item можно переименовать в size или length
- Применяйте соглашения об использовании заглавных букв вашего ЯП.
- Убедитесь, что выбранные имена не содержат орфографических ошибок.
Пишите меньше кода
- Много кода – залог большого количества ошибок.
- Чем больше кода, тем больше читать и сложнее уловить смысл.
- В большой программе много мест для скрытых багов, которые сложно отследить.
Избегайте ненужного кода
- Самая распространенная ошибка – это использование ненужных условных операторов и повторение логических конструкций.
// пример if (expresion) { return true; } else { return false; } // а можно написать так return expresion;
- Улучшайте навыки программиста, пишите лаконичный и чистый код. Длинные и запутанные строки кода не делают его ценнее.
- Автоматически сгенерированному коду не место в программе.
- Удаляйте код (если это безопасно), который не задействован, а если ошиблись, всегда можно восстановить из Git.
Дублирование
- Не плодите повторяющиеся куски кода. Создайте несколько методов и разбейте функционал на мелкие задачи.
- Если вы заметили дублирование – избавьтесь от него.
- Переделайте "дубляжи" в полезный код.
Мертвый код
- Мертвый код – это код, который не работает, и никогда не будет запускаться.
- Уберите неиспользуемые переменные и функции.
- Оптимизируйте параметры, передаваемые методам.
- Удалите бесполезные enums, structs, классы и интерфейсы.
- Удаляя функционал, не забудьте очистить фронтенд и бекенд от него.
Комментарии
- Хороший код зачастую не нуждается в объяснении того, как он работает.
- Убедитесь, что каждый комментарий вносит ясность.
- Не комментируйте код вместо удаления. Это сбивает читателя с толку и очень мешает.
Оглядывайтесь назад
- Время от времени просматривайте старый код. Это поможет увидеть, как изменился стиль, и какие проблемы остались.
- Пробуйте переписать прежний код используя новые знания.
Устранение ошибок
- Не игнорируйте возможные ошибки в коде и не откладывайте их обработку на потом.
- Используйте исключения и научитесь их эффективного применять.
- Программисты должны знать, какие баги могут появиться в программе, а пользователи должны знать, как правильно на них реагировать.
- Недостаточно просто логировать ошибку, надеясь, что другой добросовестный программист заметит ее и исправит.
Будьте готовы к неожиданностям
- В каждом логическом куске кода обращайте внимание на все возможные "глючные" места.
- Нашли ошибку – исправьте.
- Убедитесь, что вы применяете обработку ошибок и используете для этого соответствующие языковые механизмы.
- Не откладывайте обработку "странностей" на потом: вы все забудете, и код будет сбоить.
Охота за ошибками
- Сведите появление ошибок к минимуму.
- Убедитесь, что вы сосредоточены на одной проблеме.
- По мере разработки программного обеспечения выделяйте время на написание модульных тестов.
- Разберитесь, как использовать отладчик, и применяйте его.
- Не позволяйте багам накапливаться.
Всегда тестируйте свой код
Юнит-тесты выполняют отдельный функциональный кусок кода в изолированной среде, чтобы гарантировать, что все работает правильно.
- Чтобы улучшить разработку ПО, нужно быстро получать информацию о проблемах, как только они появляются.
- Пишите тесты по мере написания кода. Не откладывайте, иначе они не будут эффективными.
- Все тесты должны выполняться на билд-сервере как часть цепочки continuous integration.
- Глобальные переменные и синглтоны затрудняют тестирование, т. к. сложно тестировать объекты со скрытыми зависимостями.
- Проводите рефакторинг кода, чтобы сделать его "тестируемым" и "причесать".
Борьба с запутанностью
- Чтобы получить простой и понятный код, требуется масса знаний, опыта и сил.
- Запутанность – это, как правило, случайная величина, зависящая от опыта и количества программистов, работающих над кодом.
- Если у вас нет корректного ТЗ, отложите применение важных изменений в проекте до их согласования.
Практика улучшает навыки программиста
- Развивайте в себе хороший вкус и чувство эстетики, чтобы писать достойный код.
- "Хорошая разработка" программного обеспечения приходит к каждому со временем. К этому роду деятельности нужно прийти серьезно и обдуманно, а иначе ничего не выйдет.
- Работайте со смирением и примите тот факт, что вы знаете далеко не все.
Вместо точки
- Пишите понятный и очевидный для других код.
- Научитесь признавать свои ошибки и неудачные решения. Учитесь на них, чем сможете проапгрейдить навыки программиста.
- Лучше делать серию частых небольших изменений, чем одно большое: последнее обычно приводит к серьезным проблемам.
- Создавайте разделы кода. Держите его чистым и аккуратным.
- Используйте существующие библиотеки. Не изобретайте велосипед.
- При создании релиза придерживайтесь общего плана и дисциплины.
- Будьте в состоянии непрерывного обучения: всегда узнавайте что-то новое.
- Не останавливайтесь на достигнутом и принимайте новые вызовы.
- Невозможно сразу стать мастером, и если что-то не получается – это не повод опускать руки.
- Всегда дробите большую задачу на маленькие подзадачи.
- Если вы не можете сказать, когда проект будет готов, просто не беритесь за него.