xupypr [dot] com My Garden is well, how is yours?

7Фев/150

97 этюдов для программистов

"97 этюдов для программистов" - так называется книга которую я недавно прочитал. И да, она действительно представляет собой 97 небольших рассказов, написанных разными авторами (всего авторов более 30, некоторые статьи написаны коллективно).
97etudov

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

Да, некоторые советы выглядят немного "капитанскими", полезность некоторых советов сомнительна. Но, тем не менее, большинство советов верные и удачно выражены в форме этюда. Вот наиболее интересные из этюдов:

  • Выясните, как поступит пользователь (и вы - не пользователь). Если группа пользователей, постоянно делает одну и ту же ошибку, то скорее всего вы не угадали с "ожидаемым поведением" вашей ппрограммы. Адаптируйте вашу программу под пользователей.
  • Правило бойскаута: "Всегда сохраняй модуль в репозиторий в лучшем состоянии, чем он был, когда ты его оттуда загрузил".
  • Пишите код на языке предметной области. Если дать правильные имена переменным, методам и произвести корректное выделение объектов, то ваш код будет читаться как художественное произведение. А это больщой плюс для его понимания, и, как следствие, дальнейшего рефакторинга.
  • Код - это проектирование. Правильное проектирование - залог успешности в создании ПО. Умение мыслить вперёд, как архитектор, создаст крепкий фундамент для вашего продукта.
  • Комментируйте только то, о чем не скажет код. Комментарии нужны обязательно, но их нужно использовать с умом.
  • Развертывание приложения: ранее и регулярное. Тут я на своей шкуре испытал все тяготы отсутствия автоматизированного разворачивания сложного ПО. Пришлось около месяца потратить на то, чтобы создать автоматизированный сценарий сборки и развёртывания. Зато это время окупилось сторицей - после этого любые изменения, можно было увидеть в продуктивной среде в течение 10 минут.
  • Улучшайте код, удаляя его: я люблю говорить - "если функционал программы увеличился, при этом кода программы стало меньше - значит я ем свой хлеб не зря".
  • Интерфейсы должно быть легко использовать правильно и трудно - неправильно.
  • Правду скажет только код. Техзадание, комментарии к коду или описание API не всегда на 100% истины.
  • Шаг назад. Теперь автоматизируй, автоматизируй, автоматизируй. Нужно стараться максимально автоматизировать процессы (тестирование, сборка, развёртывание и т.п.)
  • Правильно выбирайте алгоритмы и структуры данных. По этому пункту также есть горький опыт: приходилось рефакторить код, который содержал неэффективные структуры данных (например линейный список, вместо дерева) или запутанные алгоритмы, которые можно было развернуть в явный и короткий вид.
  • Пишите код так, как будто вам предстоит сопровождать его всю оставшуюся жизнь.
Комментарии (0) Пинги (0)

Пока нет комментариев.


Leave a comment

Нет обратных ссылок на эту запись.