совершенный код стив макконнелл читать

Стив Макконнелл

совершенный код стив макконнелл читатьВ прошлый раз мы познакомились с выдающимся человеком Пол Грэмом, который написал одни из лучших статей о стартапах, программировании и бизнесе. Сегодня я хочу рассказать вам о такой выдающейся личности, как Стив Макконнелл.

Интересно, что в далеком 1998 году читатели журнала «Software Development» признали Стива одним из трех наиболее влиятельных людей в отрасли разработки ПО наряду с Биллом Гейтсом и Линусом Торвальдсом.

Если говорить коротко, то Steven C. McConnell — программист и автор книг по разработке ПО.

Он написал книги «Rapid Development» (1996), «Software Project Survival Guide» (1998), «Professional Software Development» (2004). Журнал «Software Development», кстати, дважды удостоил его книги премии Jolt Excellence как лучшие книги года о разработке ПО.

Кстати, вы наверняка слышали фразу «Пишите код так, как будто сопровождать его будет склонный к насилию психопат, который знает, где вы живете». Так вот, эту фразу приписывают именно Стиву.

Совершенный код

Книга Стива Макконнелла, которую вам крайне желательно прочитать хотя бы раз в своей жизни. Чрезвычайно полезный для реальной практики материал, которая пропагандирует исключительно грамотные принципы при разработке ПО.

совершенный код стив макконнелл читать

Вот описание данной книги, взятое с интернет-магазина OZON:

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

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

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

Профессиональная разработка программного обеспечения

Данную книгу я уже рекомендовать к обязательному чтению не буду. По большей части она представляет из себя мемуары и много размышлений автора. (говорят, похожа на «Дизайн и эволюция С++» Страуструпа)

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

совершенный код стив макконнелл читать

Для удобства также привожу описание книги:

Стив Макконнелл, автор бестселлера «Совершенный код», других книг и многочисленных статей о разработке ПО, убедительно показывает, что разработка ПО может быть стабильно успешной, если сделать совершеннее саму профессию разработчика ПО.

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

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

10 смертных грехов в оценке трудоёмкости разработки ПО

На ХабраХабре относительно недавно появилась отличная статья, о которой я просто не могу не упомянуть. А именно короткий и ясный пересказ (и перевод) часового вебинара от Стива Макконелла, который проходил в июне 2009 года.

совершенный код стив макконнелл читать

Настоятельно рекомендую к ознакомлению. Очень верно подметил один из комментаторов этой статьи:

Большинство (или даже все) из приведенных «смертных грехов» так или инчае понимает любой адекватный разработчик, но иметь такой вот список очень полезно — можно лишний раз просмотреть его перед началом нового проекта и уберечь себя от ненужных ошибок. В избранное!

P.S. Так получилось (я уже писал об этом в твиттере), что за свою жизнь я столкнулся с двумя Макконеллами: Стивом и Кэмпбеллом. Не путайте их. Это два совершенно разных профессионала. Один — в экономике, другой — в разработке ПО.

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

Я уже упоминал потрясающую книгу Вы, конечно, шутите, мистер Фейнман! в одной из прошлых своих статей.

Так вот: оказывается, существует еще и продолжение этой замечательной книги: Какое тебе дело до того, что думают другие! Если у Вас есть свободное время и вы любите читать истории других людей (очень близкие нам, программистам) — однозначно рекомендую!

Источник

Читать онлайн «Совершенный код»

Автор Стив Макконнелл

С. Макконнелл
совершенный код
ПРАКТИЧЕСКОЕ РУКОВОДСТВО ПО РАЗРАБОТКЕ
ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ

«Великолепное руководство по стилю программирования и конструированию ПО».
Мартин Фаулер, автор книги «Refactoring»
«Книга Стива Макконнелла. это быстрый путь к мудрому программированию. Его книги
увлекательны, и вы никогда не забудете то, что он рассказывает, опираясь на свой с тру-
трудом полученный опыт».
Джон Бентли, автор книги «Programming Pearls, 2d ed»
«Это просто самая лучшая книга по конструированию ПО из всех, что когда-либо попада-
попадались мне в руки. Каждый разработчик должен иметь ее и перечитывать от корки до корки
каждый год. Я ежегодно перечитываю ее на протяжении вот уже девяти лет и все еще уз-
узнаю много нового!»
Джон Роббинс, автор книги «Debugging Applications
for Microsoft NET and Microsoft Windows»
«Современное ПО должно быть надежным и гибким, а создание защищенного кода начи-
начинается с дисциплинированного конструирования программы. За десять лет так и не по-
появилось лучшего руководства по этой теме, чем эта книга.
Майкл Ховард, специалист по защите ПО, корпорация Microsoft;
один из авторов книги «Writing Secure Code»
«Это исчерпывающее исследование тактических аспектов создания хорошо спроектиро-
спроектированных программ. Книга Макконнелла охватывает такие разные темы, как архитектура,
стандарты кодирования, тестирование, интеграция и суть разработки ПО».
Гради Буч, автор книги «Object Solutions»
«Авторитетная энциклопедия для разработчиков ПО — вот что такое „Совершенный код».
Подзаголовок „Практическое руководство по конструированию ПО» характеризует эту 850-
страничную книгу абсолютно точно. Как утверждает автор, она призвана сократить раз-
разрыв между знаниями „гуру и лучших специалистов отрасли» (например, Йордона и Прес-
смана) и общепринятыми методиками разработки коммерческого ПО, а также „помочь
создавать более качественные программы за меньшее время с меньшей головной болью».
Эту книгу следует иметь каждому разработчику. Ее стиль и содержание в высшей степени
практичны».
Крис Лузли, автор книги «High-Performance Client/Sewer»
«Полная плодотворных идей книга Макконнелла „Совершенный код» — это одна из са-
самых понятных работ, посвященных подробному обсуждению методик разработки ПО. »
Эрик Бетке, автор книги «Game Development and Production»
«Кладезь полезной информации и рекомендаций по общим вопросам проектирования и
разработки хорошего ПО».
Джон Демпстер, автор книги «The Laboratory Computer:
A Practical Guide for Physiologists and Neuroscientists»
«Если вы действительно хотите улучшить навыки программирования, обязательно прочтите
книгу „Совершенный код» Стива Макконнелла».
Джин Дж. Лаброссе, автор книги «Embedded Systems Building Blocks:
Complete and Ready-To-Use Modules in C»
«Стив Макконнелл написал одну из лучших книг по разработке ПО, не привязанных к
конкретной среде. »
Кеннет Розен, один из авторов книги «Unix: The Complete Reference»

«Пару раз в поколение или около того появляются книги, обобщающие накопленный опыт
и избавляющие вас от многих лет мучений. Не могу найти слов, чтобы адекватно опи-
описать все великолепие этой книги. „Совершенный код» — довольно жалкое название для
такой превосходной работы».
Джефф Дантеманн, журнал «PC Techniques»
«Издательство Microsoft Press опубликовало то, что я считаю самой лучшей книгой по конст-
конструированию ПО. Эта книга должна занять место на книжной полке каждого программиста».
Уоррен Кеуффелъ, журнал «Software Development»
«Эту выдающуюся книгу следует прочесть каждому программисту».
Т. Л. (Фрэнк) Паппас, журнал «Computer»
«Если вы собираетесь стать профессиональным программистом, покупка этой книги, по-
пожалуй, станет самым мудрым вложением средств. Можете не читать этот обзор дальше —
просто идите в магазин и купите ее. Как пишет сам Макконнелл, его целью было сокра-
сокращение разрыва между знаниями гуру и общепринятыми методиками разработки коммер-
коммерческого ПО. Удивительно, но ему это удалось».
Ричард Матеосян, журнал «IEEE Micro»
«„Совершенный код» — обязательное чтение для всех. кто имеет отношение к разработ-
разработке ПО».
Томми Ашер, журнал «С Users Journal»
«Я вынужден сделать чуть более категоричное заявление, чем обычно, и рекомендовать
книгу Стива Макконнелла „Совершенный код» всем разработчикам без всяких оговорок.
Если раньше во время работы я держал ближе всего к клавиатуре руководства по API, то
теперь их место заняла книга Макконнелла».
Джим Кайл, журнал «Windows Tech Journal»
«Это лучшая книга по разработке ПО из всех, что я читал».
Эдвард Кенворт, журнал «ЕХЕ»
«Эта книга заслуживает статуса классической, и ее в обязательном порядке должны про-
прочесть все разработчики и те, кто ими управляет».
Питер Райт, «Program Now»

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

Steve McConnell
CODE
COMPLETE
Second Edition
Mictosoft Press

Стив Макконнелл
Совершенный
код
МАСТЕРЖЛАСС
Н. РУССКАЯ ГЕДАКЦ
Москва * Санкт-Петербург * Нижний Новгород * Воронеж
Новосибирск * Ростов-на-Дону * Екатеринбург * Самара
Киев * Харьков * Минск
2005

Источник

Совершенный код. Практическое руководство по разработке программного обеспечения

Скачать книгу (полная версия)

О книге «Совершенный код. Практическое руководство по разработке программного обеспечения»

Книгу Стива Макконнелла «Совершенный код» стоит прочитать каждому программисту, который хочет развиваться и совершенствовать свои навыки. Автор очень подробно пишет обо всем, что касается программирования. Он рассказывает об этой теме в общем и целом, не привязывая информацию из книги к какому-то конкретному языку программирования.

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

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

На нашем сайте вы можете скачать книгу «Совершенный код. Практическое руководство по разработке программного обеспечения» Макконнелл Стив бесплатно и без регистрации в формате djvu, читать книгу онлайн или купить книгу в интернет-магазине.

Источник

Субьективная выжимка из «Совершенный код:2 издание» Стива Макконнелла

совершенный код стив макконнелл читатьСегодня я дочитал очень интересный и многообразный труд по программированию «Совершенный код: 2 издание» Стива Макконнелла. Немного посидев, я решил составить небольшую выдержку из этой книги, дабы и свою память время от времени освежать, ну и может пригодится кому-то тоже. Фрагменты из книги копировать не буду, все-таки это чужой труд. Исключение составит лишь библиографический список, приведенный в конце книги. Итак:

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

«Код пишут не для компьютера, а для человека» — тоже интересная мысль. Многие думают, что программировать, это значит давать команды компьютеру что-либо делать. По сути, это, конечно, так и есть. НО! Не стоит забывать, что текст программы должен быть понятен тому, кто его будет смотреть, править, изменять. Если рассуждать о том, что программировать — это командовать компьютером, тогда зачем нам высокоуровневые языки? Зачем нам различные фреймворки и тд? Давайте писать на ассемблере или вообще в двоичном виде, все равно же мы для компьютера пишем, а ему двоичное роднее. Тут не стоит вопрос об удобности или ускорения программирования, здесь стоит вопрос о формировании такой культуры программирования, в которой человеку в первую очередь должно быть понятно что и как делается в программе. Компьютер он и так поймет, но вот поймет ли человек, зависит от того, насколько мы будем придерживаться раскрываемого принципа.

Из этой мысли вытекают несколько других принципов: «Если это возможно, не используйте GOTO». Для понимания чего-либо человеку удобно видеть информацию в логичном, систематизированном виде. Каким бы Вы не были высокоразвитой или творческой личностью, информация легче усваивается, если она выкладывается, подчиняясь определенной логике. Программу легче понять, когда функция идет за функцией. Заканчивается одно, начинается другое. Оператор «GOTO» нарушает подобную конструкцию. Он позволяет произвольно перепрыгивать из одного места в другое. Программа выполняется, но плохо понимается. Точнее, долго понимается. Есть сторонники и противники «GOTO», ведутся дискуссии, но, думаю, для нас можно просто решить это не использовать.

Также в эту группу можно включить «Не используйте циклы, вложенность которых больше 3-х». Я сам не раз сталкивался с проблемой понимания многосложных циклов. Было ощущения, что это как-то неправильно, неудобно, хотя и работает. Для осознания этой мысли и формализации в словесную форму надо было почитать эту книгу.

«Комментируйте свой код». Думаю, это очень даже логично. Несмотря на всякие там «Хороший код не нуждается в комментировании, он самопонятен», или «Не нужно заполонять экран лишними символами», или «Хочешь объяснить код – пиши документацию отдельно» и все такое. Это все понятно. Но мне кажется, что хороший комментарий имеет право на жизнь. В книге, кстати, приводятся различные смысловые и визуальные реализации комментариев. Об этом как-то не задумываешься, но, прочитав, начинаешь это замечать и использовать.

«Начиная писать программу, составь для себя конвенцию стиля-форматирования». Думаю, эта мысль более актуальна для новичков-программистов. Несмотря на дискуссии о «правильности» того или иного форматирования (4 пробела или 2, открывающая скобка в конце строки или с начала следующей и тд.), важно избрать для себя какой-то один стиль и максимально, но без фанатизма придерживаться его. Даже если тот программист, который пишет в другом стиле, будет просматривать Ваш код, ему будет легко его читать, даже несмотря на различность стиля. Сначала Вы составите для себя правило форматирования, потом оно станет просто привычкой.

«Сначала подумай, потом пиши или семь раз отмерь, потом режь». Неплохо, прежде чем начинать писать интерфейс контроллера, подумать о программе глобально. Что она будет делать, что куда будет передаваться, что где будет храниться и кому что будет видно. Буквально недавно я начал писать для себя технические задания сам, для, так сказать, организации труда. До этого было как-то лень или я думал, что все и так понятно. Но, как оказалось, озвучивание того, что я собираюсь делать очень даже полезная вещь (Кто бы мог подумать?). Как в кувшин, сначала закидываем большие камни, потом поменьше, потом еще меньше, потом песочек и вуаля, кувшин – полон и все влезло как надо.

«Этапы формирования программы: планирование->разработка->тестирование->отладка». Думаю, логично, во время тестирования своего творения заниматься именно тестированием, а не продумывать как бы еще и чего бы добавить. Часто бывает, что во время разработки становится понятно, что что-то идет не так. Ну, неудобно как-то все. И вместо того, чтобы реализовывать приходиться опять планировать. Чтобы как можно реже это воспроизводить, предлагается доводить каждый этап до конца и в своем порядке.

«KISS, DRY, YAGNI, DIE». Всем известные принципы, которые, почему-то известны не всем. Все это американские аббревиатуры. По-русски звучат как: делай проще, не повторяйся, тебе это не понадобится и дублирование — зло.

«80% времени тратится на реализацию 20% функционала». Иными словами, большую часть времени реализации мы тратим на какие-то мелочи. Все бы ничего, но, возможно, в этих мелочах вовсе нет надобности. Нужно суметь правильно расставить приоритеты и уделять время на то, что действительно важно.

«Сначала неприятное». Думаю, что у всех разработчиков есть какие-то вещи, которые ну не очень хочется делать. Кто-то не любит базы данных, кто-то не любит возиться с AJAX или еще что-нибудь. Переносить на неопределенное время то, что неприятно неправильно. Когда, например, так делаю я, то процесс разработки несколько увеличивается. Я чувствую, что вот-вот, еще немного, и надо будет заниматься этим самым, «неприятным». И вдруг обнаруживается, что вот в этом месте можно покрасивее функцию сделать. Здесь отступов меньше, чем надо и в таком духе. Это лично у меня так.

«Образование и чтение, совершенствование и оттачивание». Ни для кого не секрет, что нужно в нашем современном мире образовываться практически без остановки. Читать, общаться с гуру, все такое. Особенно если Вы разработчик мобильных приложений (шутка). Так вот читать в неделю 35 страниц тематической литературы – это обязательно. Остановимся на этом.

«Разделения труда, разделение программ, разделяй и властвуй». Сегодня, слава богам, существуют различные методики разделения команд и труда для аккуратной, быстрой и адекватной работы(методики управления проектами). Различные SCRUM, AGILE, внутренние программы. Сегодня, слава богам, существуют различные методики разделения кода(системы контроля версий). Различные GIT, SVN, Mercurial. Так давайте все это использовать (когда удобно, конечно)!

«Говорящие фамилии». Чуть не забыл про названия. Это вытекает логичным образом из формирования своего, всем понятного стиля. Сюда относится: называние классов с большой буквы все слова, называние функций с маленькой буквы и остальные слова с большой, называние констант ВСЕ_БОЛЬШИЕ_БУКВЫ и так далее. Такие мелочи очень помогают и ускоряют понимание.

Думаю, можно закончить мою двухколесную выдержку. Общее ощущение от книги положительное. Хотя иногда возникало ощущение, что эта книга написана ни для кого. Т.е. вроде для профессионального (опытного) программиста это все и так должно быть понятно, а для начинающего много того, что, по сути, не совсем понятно. Даже самое первое «с языком, а не на языке» для начинающего, знающего только один язык, может быть не совсем ясно. Ну а для гуру многостраничные рассказы про комментарии и названия вообще могут вызвать недоумение. Если преодолеть некоторый дискомфорт, связанный с этими моментами (если он, конечно, возникнет), то читать можно. Как Чехова, не хуже.

ОЗОН прислал мне еще книги: «Мифический человеко-месяц», «Приемы объектно-ориентированного программирования: паттерны проектирования» и «Анализ алгоритмов». Если кому интересно что-то, могу прочитать и тезисно изложить. Или выделить какие-то особенно интересные для вас моменты. Также принимаю конструктивную критику и пожелания прекратить марать бумагу. Всем удачи!

Источник

Совершенный код, Мастер-класс, Макконнелл С., 2010

Совершенный код, Мастер-класс, Макконнелл С., 2010.

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

совершенный код стив макконнелл читать

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

Признавая важность улучшения разработки ПО в целом, вы можете спросить: «Почему именно конструированию в этой книге уделяется такое внимание?».
Ответы на этот вопрос приведены ниже.
Конструирование — крупная часть процесса разработки ПО В зависимости от размера проекта на конструирование обычно уходит 30-80 % общего времени работы.
Все, что занимает так много времени работы над проектом, неизбежно влияет на его успешность.

Конструирование занимает центральное место в процессе разработки ПО Требования к приложению и его архитектура разрабатываются до этапа конструирования, чтобы гарантировать его эффективность. Тестирование системы (в строгом смысле независимого тестирования) выполняется после конструирования и служит для проверки его правильности. Конструирование — центр процесса разработки ПО.

Содержание.
Предисловие.
Благодарности.
Контрольные списки.
Часть 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 Инструменты программирования.
Часть VII Мастерство программирования.
31 Форматирование и стиль.
32 Самодокументирующийся код.
33 Личность.
34 Основы мастерства.
35 Где искать дополнительную информацию.
Библиография.
Предметный указатель.
Об авторе.

Скачать pdf
Ниже можно купить эту книгу по лучшей цене со скидкой с доставкой по всей России. Купить эту книгу

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *