совершенный код макконнелл pdf 2019
Совершенный код. Мастер-класс (2016)
Название книги: Совершенный код. Мастер-класс
Год: 2016
Автор: Стив Макконнелл
Страниц: 952
Язык: русский, английсикй
Формат: pdf, fb2, epub, rtf
Размер: 7.8 MB, 2 MB, 2 MB, 9 MB
Описание книги «Совершенный код. Мастер-класс»:
Моей главной целью при написании этой книги было сокращение разрыва между знаниями гуру и лучших специалистов отрасли, с одной стороны, и общепринятыми методиками разработки коммерческого ПО — с другой. Многие эффективные методики программирования годами скрываются в журналах и научных работах, прежде чем становятся доступными программистской общественности.
Хотя передовые методики разработки ПО в последние годы быстро развивались, общепринятые практически стояли на месте. Многие программы все еще полны ошибок, поставляются с опозданием и не укладываются в бюджет, а многие не отвечают требованиям пользователей. Ученые обнаружили эффективные методики, устраняющие большинство проблем, которые отравляют нашу жизнь с 1970х годов. Однако из-за того, что эти методики редко покидают страницы узкоспециализированных технических изданий, в большинстве компаний по разработке ПО они еще не используются. Установлено, что для широкого распространения исследовательских разработок обычно требуется от 5 до 15 и более лет (Raghavan and Chand, 1989; Rogers, 1995; Parnas, 1999). Данная книга призвана ускорить этот процесс и сделать важные открытия доступными средним программистам.
Кому следует прочитать эту книгу?
Исследования и опыт программирования, отраженные в этой книге, помогут вам создавать высококачественное ПО и выполнять свою работу быстрее и эффективнее. Прочитав ее, вы поймете, почему вы сталкивались с проблемами в прошлом, и узнаете, как избегать их в будущем. Описанные мной методики программирования помогут вам сохранять контроль над крупными проектами, а также успешно сопровождать и изменять ПО при изменении требований.
Часть I. Основы разработки ПО
1. Добро пожаловать в мир конструирования ПО!
2. Метафоры, позволяющие лучше понять разработку ПО
3. Семь раз отмерь, один раз отрежь: предварительные условия
4. Основные решения конструирования
Часть II. Высококачественный код
5. Проектирование при конструировании
6. Классы
7. Высококачественные методы
8. Защитное программирование
9. Процесс программирования с псевдокодом
Часть III. Переменные
10. Общие принципы использования переменных
11. Сила имен переменных
12. Основные типы данных
13. Нестандартные типы данных
Часть IV. Операторы
14. Организация последовательного кода
15. Условные операторы
16. Циклы
17. Нестандартные управляющие структуры
18. Табличные методы
19. Общие вопросы управления
Часть V. Усовершенствование кода
20. Качество ПО
21. Совместное конструирование
22. Тестирование, выполняемое разработчиками
23. Отладка
24. Рефакторинг
25. Стратегии оптимизации кода
26. Методики оптимизации кода
Часть VI. Мастерство программирования
27. Как размер программы влияет на конструирование
28. Управление конструированием
29. Интеграция
30. Инструменты программирования
Part VII. Мастерство программирования
31. Форматирование и стиль
32. Самодокументирующийся код
33. Личность
34. Основы мастерства
35. Где искать дополнительную информацию
Совершенный код. Практическое руководство по разработке программного обеспечения
Эта и ещё 2 книги за 299 ₽
Отзывы 6
Одна из лучших книг по программированию, обязательное чтение для всех программистов. Книга не привязана к какому-то конкретному языку или технологии, более того, в ней проводится четкое различие между программированием на каком-то языке и программирование с использованием конкретного языка.
Основная тема – управление сложностью – современные программные проекты становятся все больше и больше, голова человека просто не в состоянии удержать такой объем информации. Поэтому подавляющая часть времени разработчиков уходит на отладку уже существующего кода и попытки изменять его таким образом, чтобы не поломать все остальное. Многие проекты погибают от собственной сложности – изменять их становится настолько сложно, что проще переписать все с нуля.
Макконел на всех уровнях рассматривает методики написания надежного и расширяемого кода, который легко менять добавляя новые возможности и в котором легко исправлять ошибки – наглядно выражая это в принципе «код надо писать так, чтобы его было легко читать и понимать, даже если такой код писать дольше и сложнее». Начиная с проектирования архитектуры автор через классы спускается до отдельных методов, кусков кода вроде циклов и условных операторов, методик отладки и правильной оптимизации производительности. Примеры демонстративно идут вперемешку на C++, Java и Visual Basic
Книга где автор может 50 страниц детально описывать правильные методики комментирования кода и сообщать массу полезной информации.
Совершенный код. Практическое руководство по разработке программного обеспечения
Скачать книгу (полная версия)
О книге «Совершенный код. Практическое руководство по разработке программного обеспечения»
Книгу Стива Макконнелла «Совершенный код» стоит прочитать каждому программисту, который хочет развиваться и совершенствовать свои навыки. Автор очень подробно пишет обо всем, что касается программирования. Он рассказывает об этой теме в общем и целом, не привязывая информацию из книги к какому-то конкретному языку программирования.
В книге подробно рассмотрен каждый шаг программирования, при этом автор говорит о том, что само написание кода должно занимать минимум времени, а все остальное время нужно посвящать другим этапам. Интересным будет подход через написание псевдокода. В книге также рассмотрены этапы проектирования, тестирования и отладки, поиска решения проблем. Все это подробно расписано, приводятся примеры, ссылки на различные исследования.
Автор подробно рассказывает о принципах, которым нужно следовать, чтобы создать хороший и понятный код. Он говорит, как грамотно уменьшать число переменных, какие выбрать имена переменных, методов, классов, чтобы код был четким и не был слишком сложным. Этот учебник стоит всегда держать под рукой, в нем можно найти массу полезных советов, постоянно находя для себя что-то новое. И новички, и профессиональные программисты смогут получить что-то полезное из книги.
На нашем сайте вы можете скачать книгу «Совершенный код. Практическое руководство по разработке программного обеспечения» Макконнелл Стив бесплатно и без регистрации в формате djvu, читать книгу онлайн или купить книгу в интернет-магазине.
Субьективная выжимка из «Совершенный код:2 издание» Стива Макконнелла
Сегодня я дочитал очень интересный и многообразный труд по программированию «Совершенный код: 2 издание» Стива Макконнелла. Немного посидев, я решил составить небольшую выдержку из этой книги, дабы и свою память время от времени освежать, ну и может пригодится кому-то тоже. Фрагменты из книги копировать не буду, все-таки это чужой труд. Исключение составит лишь библиографический список, приведенный в конце книги. Итак:
Первая мысль, которая осталась после прочтения звучит: «Программируйте не на языке, а с помощью языка». Иными словами: не нужно зацикливаться на том языке, который Вы изучаете или знаете лучше всего. Используйте язык в зависимости от поставленной задачи. А для решения разных задач, как известно, разные языки могут быть более предпочтительными.
«Код пишут не для компьютера, а для человека» — тоже интересная мысль. Многие думают, что программировать, это значит давать команды компьютеру что-либо делать. По сути, это, конечно, так и есть. НО! Не стоит забывать, что текст программы должен быть понятен тому, кто его будет смотреть, править, изменять. Если рассуждать о том, что программировать — это командовать компьютером, тогда зачем нам высокоуровневые языки? Зачем нам различные фреймворки и тд? Давайте писать на ассемблере или вообще в двоичном виде, все равно же мы для компьютера пишем, а ему двоичное роднее. Тут не стоит вопрос об удобности или ускорения программирования, здесь стоит вопрос о формировании такой культуры программирования, в которой человеку в первую очередь должно быть понятно что и как делается в программе. Компьютер он и так поймет, но вот поймет ли человек, зависит от того, насколько мы будем придерживаться раскрываемого принципа.
Из этой мысли вытекают несколько других принципов: «Если это возможно, не используйте GOTO». Для понимания чего-либо человеку удобно видеть информацию в логичном, систематизированном виде. Каким бы Вы не были высокоразвитой или творческой личностью, информация легче усваивается, если она выкладывается, подчиняясь определенной логике. Программу легче понять, когда функция идет за функцией. Заканчивается одно, начинается другое. Оператор «GOTO» нарушает подобную конструкцию. Он позволяет произвольно перепрыгивать из одного места в другое. Программа выполняется, но плохо понимается. Точнее, долго понимается. Есть сторонники и противники «GOTO», ведутся дискуссии, но, думаю, для нас можно просто решить это не использовать.
Также в эту группу можно включить «Не используйте циклы, вложенность которых больше 3-х». Я сам не раз сталкивался с проблемой понимания многосложных циклов. Было ощущения, что это как-то неправильно, неудобно, хотя и работает. Для осознания этой мысли и формализации в словесную форму надо было почитать эту книгу.
«Комментируйте свой код». Думаю, это очень даже логично. Несмотря на всякие там «Хороший код не нуждается в комментировании, он самопонятен», или «Не нужно заполонять экран лишними символами», или «Хочешь объяснить код – пиши документацию отдельно» и все такое. Это все понятно. Но мне кажется, что хороший комментарий имеет право на жизнь. В книге, кстати, приводятся различные смысловые и визуальные реализации комментариев. Об этом как-то не задумываешься, но, прочитав, начинаешь это замечать и использовать.
«Начиная писать программу, составь для себя конвенцию стиля-форматирования». Думаю, эта мысль более актуальна для новичков-программистов. Несмотря на дискуссии о «правильности» того или иного форматирования (4 пробела или 2, открывающая скобка в конце строки или с начала следующей и тд.), важно избрать для себя какой-то один стиль и максимально, но без фанатизма придерживаться его. Даже если тот программист, который пишет в другом стиле, будет просматривать Ваш код, ему будет легко его читать, даже несмотря на различность стиля. Сначала Вы составите для себя правило форматирования, потом оно станет просто привычкой.
«Сначала подумай, потом пиши или семь раз отмерь, потом режь». Неплохо, прежде чем начинать писать интерфейс контроллера, подумать о программе глобально. Что она будет делать, что куда будет передаваться, что где будет храниться и кому что будет видно. Буквально недавно я начал писать для себя технические задания сам, для, так сказать, организации труда. До этого было как-то лень или я думал, что все и так понятно. Но, как оказалось, озвучивание того, что я собираюсь делать очень даже полезная вещь (Кто бы мог подумать?). Как в кувшин, сначала закидываем большие камни, потом поменьше, потом еще меньше, потом песочек и вуаля, кувшин – полон и все влезло как надо.
«Этапы формирования программы: планирование->разработка->тестирование->отладка». Думаю, логично, во время тестирования своего творения заниматься именно тестированием, а не продумывать как бы еще и чего бы добавить. Часто бывает, что во время разработки становится понятно, что что-то идет не так. Ну, неудобно как-то все. И вместо того, чтобы реализовывать приходиться опять планировать. Чтобы как можно реже это воспроизводить, предлагается доводить каждый этап до конца и в своем порядке.
«KISS, DRY, YAGNI, DIE». Всем известные принципы, которые, почему-то известны не всем. Все это американские аббревиатуры. По-русски звучат как: делай проще, не повторяйся, тебе это не понадобится и дублирование — зло.
«80% времени тратится на реализацию 20% функционала». Иными словами, большую часть времени реализации мы тратим на какие-то мелочи. Все бы ничего, но, возможно, в этих мелочах вовсе нет надобности. Нужно суметь правильно расставить приоритеты и уделять время на то, что действительно важно.
«Сначала неприятное». Думаю, что у всех разработчиков есть какие-то вещи, которые ну не очень хочется делать. Кто-то не любит базы данных, кто-то не любит возиться с AJAX или еще что-нибудь. Переносить на неопределенное время то, что неприятно неправильно. Когда, например, так делаю я, то процесс разработки несколько увеличивается. Я чувствую, что вот-вот, еще немного, и надо будет заниматься этим самым, «неприятным». И вдруг обнаруживается, что вот в этом месте можно покрасивее функцию сделать. Здесь отступов меньше, чем надо и в таком духе. Это лично у меня так.
«Образование и чтение, совершенствование и оттачивание». Ни для кого не секрет, что нужно в нашем современном мире образовываться практически без остановки. Читать, общаться с гуру, все такое. Особенно если Вы разработчик мобильных приложений (шутка). Так вот читать в неделю 35 страниц тематической литературы – это обязательно. Остановимся на этом.
«Разделения труда, разделение программ, разделяй и властвуй». Сегодня, слава богам, существуют различные методики разделения команд и труда для аккуратной, быстрой и адекватной работы(методики управления проектами). Различные SCRUM, AGILE, внутренние программы. Сегодня, слава богам, существуют различные методики разделения кода(системы контроля версий). Различные GIT, SVN, Mercurial. Так давайте все это использовать (когда удобно, конечно)!
«Говорящие фамилии». Чуть не забыл про названия. Это вытекает логичным образом из формирования своего, всем понятного стиля. Сюда относится: называние классов с большой буквы все слова, называние функций с маленькой буквы и остальные слова с большой, называние констант ВСЕ_БОЛЬШИЕ_БУКВЫ и так далее. Такие мелочи очень помогают и ускоряют понимание.
Думаю, можно закончить мою двухколесную выдержку. Общее ощущение от книги положительное. Хотя иногда возникало ощущение, что эта книга написана ни для кого. Т.е. вроде для профессионального (опытного) программиста это все и так должно быть понятно, а для начинающего много того, что, по сути, не совсем понятно. Даже самое первое «с языком, а не на языке» для начинающего, знающего только один язык, может быть не совсем ясно. Ну а для гуру многостраничные рассказы про комментарии и названия вообще могут вызвать недоумение. Если преодолеть некоторый дискомфорт, связанный с этими моментами (если он, конечно, возникнет), то читать можно. Как Чехова, не хуже.
ОЗОН прислал мне еще книги: «Мифический человеко-месяц», «Приемы объектно-ориентированного программирования: паттерны проектирования» и «Анализ алгоритмов». Если кому интересно что-то, могу прочитать и тезисно изложить. Или выделить какие-то особенно интересные для вас моменты. Также принимаю конструктивную критику и пожелания прекратить марать бумагу. Всем удачи!