Принципы программирования, о которых вам не рассказали

TThe Coding Koala
컴퓨터/소프트웨어경영/리더십

Transcript

00:00:00Знаете ли вы, почему некоторые люди, кажется, никогда не растут как разработчики, хотя тратят годы в
00:00:04этой сфере? Здесь задействованы разные факторы. И одна из причин — непонимание
00:00:09фундаментальных принципов программирования. Это не просто теория, которую вы учите один раз
00:00:14и забываете. Это реальные вещи, которые действительно помогут вам быстрее расти как разработчику.
00:00:19Давайте начнем с первого принципа, правила бойскаутов. Этот принцип пришел от бойскаутов Америки.
00:00:25В общем, у них есть одно простое правило: оставьте место стоянки чище, чем оно было до вас.
00:00:31Не знаю, сколько из вас знают "Дядюшку Боба", но именно он популяризировал эту концепцию
00:00:36в сообществе программистов. Она заключается в том, чтобы оставлять код чуть чище, чем вы его нашли.
00:00:41При внесении изменений в существующую кодовую базу качество кода часто снижается, что может
00:00:47увеличить технический долг. А технический долг можно сократить постоянными улучшениями,
00:00:52независимо от того, насколько они малы. Например, вам поручили внести изменение в
00:00:57значение в этой функции. Вы это сделали, но видите, что название переменной недостаточно
00:01:03понятно. Как и большинство разработчиков, вы могли бы просто проигнорировать это и закоммитить свою задачу.
00:01:08Но если следовать этому принципу, вы также измените название переменной на более
00:01:12понятное. Это просто пример. Не только названия переменных, но если вы видите что-то,
00:01:18что можно улучшить — сделайте это. Этот простой жест принесет огромную пользу кодовой базе.
00:01:24Второй принцип: избегайте преждевременной оптимизации. Это означает, что не пытайтесь сделать свой
00:01:30код быстрее, прежде чем в этом возникнет реальная необходимость. Сначала добейтесь, чтобы он работал. Только потом оптимизируйте, если нужно.
00:01:36Есть знаменитая цитата Дональда Кнута: "Преждевременная оптимизация — корень всех зол".
00:01:42Это правда, потому что программисты часто тратят большую часть времени, беспокоясь о скорости
00:01:47некритичных частей своих программ. Это из-за этой модной концепции
00:01:51оптимизации всего подряд. Этот принцип не против оптимизации вашего кода. Он о
00:01:57понимании того, что нужно оптимизировать, и, что самое важное, когда это делать. И я думаю, это
00:02:03слабость большинства разработчиков, потому что я видел, как люди используют микросервисы, хотя у них
00:02:08100 пользователей, или добавляют кэширование там, где это даже не требуется. Третий принцип:
00:02:14пишите код для сопровождающего, что просто означает: пишите код таким
00:02:19образом, чтобы будущим разработчикам, которые будут поддерживать ваш код, не пришлось мучиться,
00:02:23разбираясь в нем. Ведь код, который вы пишете сегодня, будут сопровождать другие разработчики или
00:02:29вы сами. Если вы сейчас просто сосредоточитесь на том, чтобы это работало, и не подумаете о ясности, то в будущем,
00:02:35когда вам придется вернуться к этому коду, вы с трудом поймете, что происходит. Просто посмотрите на
00:02:39этот пример. Оба работают и выполняют одну и ту же функцию. Но какой из них вы бы предпочли
00:02:45увидеть в своей кодовой базе? Так что вывод: когда бы вы ни писали или генерировали код с помощью ИИ,
00:02:50всегда убеждайтесь, что он понятен и поддерживаем, прежде чем фиксировать свою работу.
00:02:55Четвертый принцип называется YAGNI, что является сокращением от "Вам это не понадобится" (You Ain't Gonna Need It).
00:03:01Этот принцип просто означает, что не следует строить то, что вам сейчас не нужно, только потому,
00:03:06что, возможно, это понадобится в будущем. Потому что у большинства разработчиков есть привычка предугадывать, что
00:03:10им может понадобиться в будущем. Но в большинстве случаев это никогда не используется и лишь добавляет лишнюю
00:03:16сложность проекту. Всегда помните об этом. Если вы работаете над тем, что может потребоваться в
00:03:21будущем, вы не тратите время на то, что нужно прямо сейчас. Пятый принцип: делайте самое
00:03:27простое, что может работать. Это значит, что при столкновении с проблемой всегда выбирайте
00:03:32самое простое решение, которое действительно сработает. Не переусложняйте. Не занимайтесь излишним инжинирингом. Просто спросите
00:03:38себя: "Что самое простое может решить это прямо сейчас?". Эта идея пришла из экстремального
00:03:43программирования, которое велит нам сначала построить что-то простое, а затем отрефакторить это в нечто
00:03:48лучшее. Большинство разработчиков этого не понимают, но они часто пытаются создать идеальное решение с
00:03:53самого начала, что в конечном итоге переусложняет их код. С этим принципом вы получите работающий
00:03:59код быстрее, и даже если его придется потом изменить, это обычно легче, чем исправлять сложный
00:04:04дизайн, который изначально был неверным. И поверьте, как разработчику, вам важно осознавать, когда вы занимаетесь оверинжинирингом.
00:04:10Это были пять принципов программирования, которые вам следует начать
00:04:14применять прямо сейчас. Помимо них есть и другие принципы, которые я не осветил
00:04:19в этом видео. Если оно было полезным, дайте знать в комментариях, и я сделаю вторую часть.
00:04:24На сегодня всё. Обязательно поддержите видео, и увидимся с вами в следующем!

Key Takeaway

Соблюдение пяти фундаментальных принципов, таких как правило бойскаута и YAGNI, помогает разработчикам минимизировать технический долг и избегать избыточного проектирования.

Highlights

  • Правило бойскаута требует оставлять кодовую базу немного чище после каждого внесенного изменения.

  • Преждевременная оптимизация считается корнем всех зол, так как программисты часто тратят время на ускорение некритичных участков кода.

  • Код должен писаться с расчетом на будущую поддержку другим разработчиком, а не только на текущую работоспособность.

  • Принцип YAGNI (You Ain't Gonna Need It) запрещает реализацию функционала, который не требуется в настоящий момент.

  • Экстремальное программирование рекомендует создавать самое простое решение для текущей проблемы, с последующим рефакторингом при необходимости.

Timeline

Принципы поддержания чистоты и оптимизации

  • Правило бойскаута предписывает оставлять код чище, чем он был найден.
  • Преждевременная оптимизация часто приводит к неоправданному усложнению программ.

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

Принципы разработки для поддержки и простоты

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

Читаемость кода критически важна, так как его предстоит поддерживать в будущем. Использование принципа YAGNI предотвращает добавление излишней сложности в проект на основе прогнозов, которые редко сбываются. Итеративный подход, включающий создание простого решения с последующим рефакторингом, предотвращает оверинжиниринг и позволяет быстрее достичь работающего результата.

Community Posts

No posts yet. Be the first to write about this video!

Write about this video