- PVSM.RU - https://www.pvsm.ru -
Одним из параметров оценки кода служит его чистота. Создатель языка моделирования UML Гради Буч (Grady Booch) писал [1]:
«Чистый код прост и ясен. Чистый код читается как хорошо написанное произведение. Чистый код никогда не скрывает намерений создателя, но, напротив, полон четких абстракций и простых линий передачи управления»
Сегодня мы собрали для вас список книг и статей по этой теме, которые рекомендуют к прочтению резиденты Hacker News, Stack Exchange и других профильных платформ.
[2]/ Flickr / Robert Gourley [3] / CC [4]
Эта книга чаще всего фигурирует в разговорах [5] о чистоте кода. Ее даже называют [6] «Библией разработки ПО». Работа увидела свет в 1993 году. Книгу можно считать наиболее полным практическим руководством по проектированию благодаря акценту на дизайн и планирование кода — этим этапам разработки автор отводит самую важную роль.
Еще один популярный [7] в среде разработчиков труд, известный легкостью повествования. Например, предостерегая читателей от ошибок и неточностей в коде, авторы прибегают к теории «разбитых окон [8]». Книга охватывает различные темы — от личной ответственности и карьерного роста до архитектурных методик, придающих программам гибкость.
Форт — это язык программирования, который широко использовался в астрономии в 70-х годах прошлого века. Несмотря на узкую тематику, разработчики найдут [10] в книге основы построения кода. Даже для тех, кто не собирается изучать Форт, «фортанский» способ
Сэнди Метц (Sandi Metz) подготовила практическое руководство по объектно-ориентированному проектированию с прицелом на разработчиков, знакомых с основами, но пока не сформировавших философию кода. Автор использует понятные и приближенные к реальной жизни примеры. Сэнди — фанат экономичных тестов и разумных подходов. На её сайте сказано: «Если код вас добивает, и никакой радости не осталось, — эта книга ваше решение».
Еще один нестареющий фолиант, появившийся в конце 90-х. Список авторов «Рефакторинга» возглавляет Мартин Фаулер (Martin Fowler), который вместе с Кентом Беком (Kent Beck) стоит у основ методологии экстремального программирования. Это совершенно новый взгляд на процесс разработки, который показывает, каким должен быть код и как он должен создаваться. Книга содержит примеры рефакторинга с подробным описанием. Многие из них не потеряли своей актуальности, а часть была автоматизирована и теперь используется в современной разработке.
Название книги не зря перекликается с фундаментальной работой Дональда Кнута (Donald Knuth) 1968 года «Искусство программирования». На страницах своей книги Эрик Реймонд (Eric Raymond) пытается донести не только практические рекомендации, но и философию — понимание кода в Unix. Он делает это с помощью множества примеров. В них прослеживается уважение к плодам работы талантливых людей, трудившихся над Unix, и философия «чистого кода».
Эрик Реймонд в своем труде называл «Практику программирования» «рекомендуемым чтением для ценителей С (точнее, для всех программистов)». Поэтому книгу можно назвать классикой чистой разработки. Здесь рассмотрены принципы практического профессионального программирования, которые включают в себя проектирование и правильный выбор алгоритмов.
«Чистый код» — это взгляд на процесс разработки с позиции XXI века. Книга изобилует конкретными примерами программ. Автор Роберт не пытается сформировать философию вокруг разработки, а показывает, как код работает «в жизни».
«Это книга, которую я хотел бы прочитать, когда начинал создавать игры», — так описывает ее сам автор. На первый взгляд, «Шаблоны» — это узкоспециализированная литература для геймдева от ветерана Electronic Arts. Однако при ближайшем рассмотрении книга позволяет переосмыслить работу с кодом и сделать его чище. Кто-то из пользователей Reddit даже решил [11] изучить C++ после прочтения книги.
По словам [12] Николаса Закаса (Nicholas C. Zakas), автора работ по JavaScript, «книга погружает в процесс гигиены кода как ничто другое». В книге рассказано, как именование переменных, функций и классов помогает командам разработки. Основные акценты: структурирование кода и комментариев, балансирование между эффективностью и читаемостью.
/ Maxpixel / Code Data Programming [22] / CC [23]
P.P.S. О чем еще мы пишем в нашем блоге:
Автор: it_man
Источник [41]
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/programmirovanie/264243
Ссылки в тексте:
[1] писал: https://dzone.com/articles/what-clean-code-%E2%80%93-quotes
[2] Image: https://habrahabr.ru/company/it-grad/blog/337836/
[3] Robert Gourley: https://www.flickr.com/photos/rgourley/14056071668/
[4] CC: https://creativecommons.org/licenses/by-sa/2.0/
[5] разговорах: https://news.ycombinator.com/item?id=14841939
[6] называют: https://www.quora.com/Will-there-be-a-third-edition-of-the-book-Code-Complete-by-Steve-McConnell
[7] популярный: https://www.bgosoftware.com/blog/8-most-influential-books-on-programming-and-computer-science-of-all-time/
[8] разбитых окон: https://blog.codinghorror.com/pragmatic-programming/
[9] мышления: http://www.braintools.ru
[10] найдут: https://hackerboss.com/thinking-forth-the-unsung-classic/
[11] решил: https://www.reddit.com/r/gamedev/comments/3h0air/game_programming_patterns_awesome_book_entirely/
[12] словам: https://www.nczonline.net/blog/2012/02/13/book-review-the-art-of-readable-code/
[13] «Совершенный код»: https://www.ozon.ru/context/detail/id/138437220/
[14] «Программист-прагматик. Путь от подмастерья к мастеру»: https://www.ozon.ru/context/detail/id/3353337/
[15] «Способ мышления — Форт»: http://thinking-forth.sourceforge.net/
[16] «Ruby. Объектно-ориентированное проектирование»: https://www.ozon.ru/context/detail/id/138551500/
[17] «Рефакторинг. Улучшение существующего кода»: https://www.ozon.ru/context/detail/id/1308678/
[18] «Искусство программирования для Unix»: https://www.ozon.ru/context/detail/id/2317804/
[19] «Чистый код. Создание, анализ и рефакторинг»: https://www.ozon.ru/context/detail/id/5011068/
[20] «Шаблоны игрового программирования»: https://www.gitbook.com/book/likerrr/gameprogrammingpatterns/details
[21] «Читаемый код, или Программирование как искусство»: https://www.ozon.ru/context/detail/id/8466390/
[22] Code Data Programming: http://maxpixel.freegreatpicture.com/Code-Data-Programming-Code-Computer-Programming-944504
[23] CC: https://creativecommons.org/publicdomain/zero/1.0/deed.en
[24] «Как написать неподдерживаемый программный код»: https://www.se.rit.edu/~tabeec/RIT_441/Resources_files/How%20To%20Write%20Unmaintainable%20Code.pdf
[25] «дурной запах»: http://wiki.c2.com/?CodeSmell
[26] таблицы: http://mikamantyla.eu/BadCodeSmellsTaxonomy.html
[27] блоге: https://blog.codinghorror.com/code-smells/
[28] советуют: https://www.quora.com/What-are-the-best-books-on-writing-clean-code
[29] GitHub: https://github.com/showcases
[30] Codeplex: http://www.codeplex.com/
[31] Google Code: http://code.google.com/
[32] GitHub Code Review: https://github.com/features/code-review
[33] PC-lint: http://www.gimpel.com/html/pcl.htm
[34] SourceMonitor: http://www.campwoodsw.com/sourcemonitor.html
[35] такой: https://docs.microsoft.com/en-us/dotnet/csharp/programming-guide/inside-a-program/coding-conventions
[36] IaaS-дайджест: 30 материалов о работе с ПД, новых технологиях, ИБ и высокой производительности: https://habrahabr.ru/company/it-grad/blog/334424/
[37] 100 практических материалов по безопасности, экономике и инструментарию IaaS: https://habrahabr.ru/company/it-grad/blog/331620/
[38] Балансировка нагрузки в облаке IaaS: http://iaas-blog.it-grad.ru/funkcionalnost/balansirovka-nagruzki-v-oblake-iaas/
[39] Виртуализация приложений: как правильно настраивать виртуальные машины: http://iaas-blog.it-grad.ru/funkcionalnost/virtualizaciya-prilozhenij-kak-pravilno-nastraivat-virtualnye-mashiny/
[40] Особенности двухфакторной аутентификации: работает ли это в облаке IaaS: http://iaas-blog.it-grad.ru/bezopasnost/osobennosti-dvuxfaktornoj-autentifikacii/
[41] Источник: https://habrahabr.ru/post/337836/
Нажмите здесь для печати.