Как KISS и другие принципы могут помочь в разработке ПО и в обычной жизни
Совсем скоро программисты всего мира будут праздновать 256-й день года. В преддверии этого праздника, который в 2016 году выпадает на 12 сентября, мы бы хотели рассказать о нашей профессии.
Все знают, что программист должен знать математику и логику, иметь аналитический склад ума и прочее, и прочее. Но многие забывают, что в промышленном программировании (а именно им является большая часть заказной разработки) огромную роль играет ещё и способность работать в команде.
«Люди считают, что программирование — это наука избранных, но в реальности все наоборот — просто много людей создают программы, которые используют чужие программы, как будто строя стену из маленьких кирпичиков.»
Дональд Кнут
Легко заниматься разработкой сайта, мобильного приложения или иной программы в одиночку. Каждая строчка кода кажется родной и знакомой без всяких комментариев. Имена переменных x1, x2, x345 удобны в использовании, а на «спагетти» из if else можно закрыть глаза, ведь всё работает и так. Но когда ты не один, а в команде, в дело вступают совсем другие принципы.
«Любой дурак может написать код, понятный компьютеру. Хороший программист пишет код, понятный человеку.»
Мартин Фаулер
В англоязычном мире вот уже полвека существует аббревиатура KISS – Keep It Short and Simple. Хотя изначально этот принцип применялся в проектировании, со временем его стали использовать и во многих других сферах деятельности, в том числе и в программировании. Альтернативная расшифровка звучит как Keep It Simple Stupid, что особо актуально для запутанного кода, который будут читать другие разработчики. В нашем мире не существует универсальных советов, однако, как правило, простое и понятное решение будет работать, а главное поддерживаться, намного лучше, чем, пусть и гениальный, но запутанный код.
«Всегда пишите код так, будто сопровождать его будет склонный к насилию психопат, который знает, где вы живете.»
Мартин Голдинг
Вообще, программисты любят хорошие шутки, особенно если кроме юмора в них содержится и глубокий смысл. В качестве примера можно привести фразу «Is your code dry enough?». Принцип DRY расшифровывается как Don’t Repeat Youself – не повторяйся. Если в коде есть повторяющиеся элементы - это повод задуматься о введении для них новой абстракции. Жаль, что принцип DRY слабо применим в реальной жизни, разве что можно посоветовать излишне болтливому другу «подсушить» его речь.
А вот принцип YAGNI – You Ain’t Gonna Need It пригодится всем. Его суть заключается в том, чтобы реализовывать только поставленные задачи, а не увлекаться «закладками» на будущий избыточный функционал. Если вы строите двухэтажный дом, вы делаете фундамент для двухэтажного дома, а не супер-платформу с перспективой надстройки небоскрёба.
Главная цель KISS, DRY, YAGNI и многих других смешных и не очень аббревиатур – обеспечить слаженную работу команды программистов, чтобы получить на выходе легко поддерживаемый, а главное работающий код. Вне всякого сомнения, программирование – это одна из наиболее требовательных к абстрактному мышлению сфер деятельности человека. Тем не менее, многие принципы, которые программисты применяют в своей работе, вполне доступны, а иногда даже полезны любому человеку.