- Все, что нужно знать о разработке
- DRY — не повторяйся или Do not repeat yourself
- 4 причины следовать DRY
- KISS — упрощайте или keep it simple stupid
- YAGNI — вам это не понадобится или you’re not going to need it
Правила нужны, чтобы их нарушать. Но и нарушать тоже нужно с умом! Старые и проверенные законы кода стоит знать всем, кто хочет стать профессионалом в IT. Рассказываем обо всем по порядку!
Все, что нужно знать о разработке
Тренды в программировании меняются чуть ли не каждый месяц. Один язык выходит в топ, другие оседают в учебниках по информатике. Главный страх разработчика — понять, что он отстал от прогресса и давно уступил место новому поколению.
На самом деле в программировании все так же, как и в любви. Одни и те же законы действуют годами, и других не появляется. Когда вы знаете основы, вам не нужно адаптироваться к новым идеям и веяниям. Вот три основных принципа, зная которые, разработчик точно не пропадет!
DRY — не повторяйся или Do not repeat yourself
Большинству разработчиков этот принцип известен под акронимом DRY. Впервые он появился в книге «Программист-прагматик», хотя сама идея используется давно.
Допустим, разработчик получил задачу — создать с нуля серьезный организованный проект. Даже подкованным программистам управление сложными системами дается с трудом. Человеку проще придумать новое решение известной проблемы, чем довести огромный проект до конца. Лучший выбор — разбить трудоемкую задачу на мелкие части.
К примеру, вы создаете сайт. Одна сторона сайта — его программная часть или бэкенд. Он состоит из множества компонентов: взаимодействие с сервером, работа с данными. Каждый компонент делится на более мелкие фрагменты, а те, в свою очередь — на небольшие участки кода. Элемент, который уже невозможно разбить на части, будет основой всей системы. Это алгоритм — фрагмент, который отвечает за одну конкретную функцию.
Правило DRY гласит: каждый алгоритм должен встречаться в коде только один раз. Любой элемент данных должен иметь очевидное и четкое представление в проекте. Так программист может управлять сложностью системы и предупредить проблемы разработки.
4 причины следовать DRY
- Легко вносить корректировки в проект — одно изменение не отразится на всей работе.
- Качественное и простое тестирование.
- На разработку уходит меньше времени и сил.
- Качество кодовой базы выше, а сопровождаемость — лучше.
KISS — упрощайте или keep it simple stupid
Многие помнят слова Эйнштейна: «Все должно быть сделано максимально просто, но не проще». Его научная карьера доказала — это правило работает в 99% случаев.
В XIX веке физики искали ответы на вопросы: как действуют магнитное поле и гравитация? Что такое время? Ученые вывели теорию эфира — вещества, которое влияет на все силы в галактике. Придумали термин, но не дали ему четкого определения. Годы шли, но никто так и не добрался до сути проблемы.
И только в XX веке Эйнштейн предложил отказаться от этой теории, забыть про расчеты и принять время как относительное. Такое решение было самым простым — и оно же оказалось самым верным!
Идеальным примером реализации KISS в разработке считается протокол HTTP. Программисты используют его давно и еще не придумали ничего удобнее и надежнее.
Упростить систему не так сложно, как кажется. Просто найдите три лишних элемента и удалите их из проекта:
- Элемент, который сильно зависит от другого.
- Фрагмент, который стоит дорого, но приносит мало пользы.
- Элемент, который точно будет расти и усложняться.
YAGNI — вам это не понадобится или you’re not going to need it
Самое дорогое в разработке — это время программиста. Любая новая функция стоит денег. В процессе работы над проектом трудно удержаться от желания обновить функционал, добавить интересные фишки или новую фичу. При этом у каждого проекта есть бюджет, а дополнения выходят за его границы. В этом и смысл правила YAGNI — система не должна обрастать лишними деталями. То, чего не было в плане, не должно появиться и в проекте.
Работа над приложениями отлично описывает принцип YAGNI. К примеру, ваша цель — создать простое дейтинг-приложение для iOS. Можно выполнить главную задачу приложения на отлично, уложиться в сроки и не растратить деньги. А можно добавить платную функцию, которой воспользуются 5% пользователей, и потратить на нее львиную долю бюджета.
Принципы DRY, KISS и YAGNI похожи друг на друга. Все три служат одной цели — упрощают задачу, берегут время разработчика и деньги бизнеса. Только первый принцип делает это, разделяя систему на части, второй — упрощая суть вещей, а третий избавляет проект от всего лишнего.
Иногда действовать против правил полезно — без этого не бывает инноваций. Порой только неправильное решение может дать пользователю то, что ему действительно нужно. Научитесь следовать принципам и нарушать их, когда необходимо, и вы точно станете востребованным разработчиком!