совершенный код книга о чем

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Источник

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

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

Эта и ещё 2 книги за 299 ₽

Отзывы 6

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

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

Макконел на всех уровнях рассматривает методики написания надежного и расширяемого кода, который легко менять добавляя новые возможности и в котором легко исправлять ошибки – наглядно выражая это в принципе «код надо писать так, чтобы его было легко читать и понимать, даже если такой код писать дольше и сложнее». Начиная с проектирования архитектуры автор через классы спускается до отдельных методов, кусков кода вроде циклов и условных операторов, методик отладки и правильной оптимизации производительности. Примеры демонстративно идут вперемешку на C++, Java и Visual Basic

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

Источник

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Источник

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

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

Эта и ещё 2 книги за 299 ₽

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

Книга состоит из 35 глав, предметного указателя и библиографии.

Отзывы 6

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

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

Макконел на всех уровнях рассматривает методики написания надежного и расширяемого кода, который легко менять добавляя новые возможности и в котором легко исправлять ошибки – наглядно выражая это в принципе «код надо писать так, чтобы его было легко читать и понимать, даже если такой код писать дольше и сложнее». Начиная с проектирования архитектуры автор через классы спускается до отдельных методов, кусков кода вроде циклов и условных операторов, методик отладки и правильной оптимизации производительности. Примеры демонстративно идут вперемешку на C++, Java и Visual Basic

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

Источник

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

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

Руководство для программиста.

Стив Макконнелл «Совершенный код» Питер, 2010 год, 896 стр., 2-е издание (6,12 мб. pdf)

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

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

Нужную информацию в книге для себя найдет кодер любого уровня, какая бы ни была степень сложности разрабатываемого вами проекта. Не просто создать совершенный код, но стремление к вершинам мастерства заставляет настоящих профессионалов постоянно совершенствоваться. Читая книгу и применяя на практике рекомендации и методики автора вы сможете достичь изящества, простоты и элегантности при создании кода для программного обеспечения, а это в свою очередь позволит приблизиться к совершенству в профессии программиста.
ISBN 978-5-7502-0064-1

1 Добро пожаловать в мир конструирования ПО 2
1.1. Что такое конструирование ПО 2
1.2. Почему конструирование ПО так важно 5
1.3. Как читать эту книгу 6
2 Метафоры, позволяющие лучше понять разработку ПО 8
2.1. Важность метафор 8
2.2. Как использовать метафоры 10
2.3. Популярные метафоры, характеризующие разработку ПО 12

3 Семь раз отмерь, один раз отрежь: предварительные условия 21
3.1. Важность выполнения предварительных условий 22
3.2. Определите тип ПО, над которым вы работаете 28
3.3. Предварительные условия, связанные с определением проблемы 34
3.4. Предварительные условия, связанные с выработкой требований 36
3.5. Предварительные условия, связанные с разработкой архитектуры 41
3.6. Сколько времени следует посвятить выполнению предварительных условий 52

4 Основные решения, которые приходится принимать при конструировании 58
4.1. Выбор языка программирования 59
4.2. Конвенции программирования 63
4.3. Волны развития технологий 64
4.4. Выбор основных методик конструирования 66

Часть II Высококачественный код

5 Проектирование при конструировании 70
5.1. Проблемы, связанные с проектированием ПО 71
5.2. Основные концепции проектирования 74
5.3. Компоненты проектирования: эвристические принципы 84
5.4. Методики проектирования 107
5.5. Комментарии по поводу популярных методологий 115

6 Классы 121
6.1. Основы классов: абстрактные типы данных 122
6.2. Качественные интерфейсы классов 129
6.3. Вопросы проектирования и реализации 139
6.4. Разумные причины создания классов 148
6.5. Аспекты, специфические для языков 152
6.6. Следующий уровень: пакеты классов 153

7 Высококачественные методы 157
7.1. Разумные причины создания методов 160
7.2. Проектирование на уровне методов 163
7.3. Удачные имена методов 167
7.4. Насколько объемным может быть метод 169
7.5. Советы по использованию параметров методов 170
7.6. Отдельные соображения по использованию функций 177
7.7. Методы-макросы и встраиваемые методы 178

8 Защитное программирование 182
8.1. Защита программы от неправильных входных данных 183
8.2. Утверждения 184
8.3. Способы обработки ошибок 189
8.4. Исключения 193
8.5. Изоляция повреждений, вызванных ошибками 198
8.6. Отладочные средства 200
8.7. Доля защитного программирования в промышленной версии 204
8.8. Защита от защитного программирования 206

9 Процесс программирования с псевдокодом 209
9.1. Этапы создания классов и методов 210
9.2. Псевдокод для профи 211
9.3. Конструирование методов с использованием ППП 214
9.4. Альтернативы ППП 225

Часть III Переменные

10 Общие принципы использования переменных 230
10.1. Что вы знаете о данных? 231
10.2. Грамотное объявление переменных 232
10.3. Принципы инициализации переменных 233
10.4. Область видимости 238
10.5. Персистентность 245
10.6. Время связывания 246
10.7. Связь между типами данных и управляющими структурами 247
10.8. Единственность цели каждой переменной 249

11 Сила имен переменных 252
11.1. Общие принципы выбора имен переменных 253
11.2. Именование конкретных типов данных 257
11.3. Сила конвенций именования 263
11.4. Неформальные конвенции именования 264
11.5. Стандартизованные префиксы 272
11.6. Грамотное сокращение имен переменных 274
11.7. Имена, которых следует избегать 277

12 Основные типы данных 282
12.1. Числа в общем 283
12.2. Целые числа 284
12.3. Числа с плавающей запятой 286
12.4. Символы и строки 289
12.5. Логические переменные 292
12.6. Перечислимые типы 294
12.7. Именованные константы 299
12.8. Массивы 301
12.9. Создание собственных типов данных (псевдонимы) 303

13 Нестандартные типы данных 310
13.1. Структуры 310
13.2. Указатели 314
13.3. Глобальные данные 326

Часть IV Операторы

14 Организация последовательного кода 338
14.1. Операторы, следующие в определенном порядке 338
14.2. Операторы, следующие в произвольном порядке 342
15 Условные операторы 346
15.1. Операторы if 346
15.2. Операторы case 353

16 Циклы 359
16.1. Выбор типа цикла 359
16.2. Управление циклом 365
16.3. Простое создание цикла — изнутри наружу 378
16.4. Соответствие между циклами и массивами 379

17 Нестандартные управляющие структуры 382
17.1. Множественные возвраты из метода 382
17.2. Рекурсия 385
17.3. Оператор goto 389
17.4. Перспективы нестандартных управляющих структур 401

18 Табличные методы 404
18.1. Основные вопросы применения табличных методов 405
18.2. Таблицы с прямым доступом 406
18.3. Таблицы с индексированным доступом 418
18.4. Таблицы со ступенчатым доступом 419
18.5. Другие примеры табличного поиска 422

19 Общие вопросы управления 424
19.1. Логические выражения 424
19.2. Составные операторы (блоки) 436
19.3. Пустые выражения 437
19.4. Укрощение опасно глубокой вложенности 438
19.5. Основа программирования: структурное программирование 448
19.6. Управляющие структуры и сложность 450

Часть V Усовершенствование кода

20 Качество ПО 456
20.1. Характеристики качества ПО 456
20.2. Методики повышения качества ПО 459
20.3. Относительная эффективность
методик контроля качества ПО 462
20.4. Когда выполнять контроль качества ПО 466
20.5. Главный Закон Контроля Качества ПО 467
21 Совместное конструирование 471
21.1. Обзор методик совместной разработки ПО 472
21.2. Парное программирование 475
21.3. Формальные инспекции 477
21.4. Другие методики совместной разработки ПО 484
21.5. Сравнение методик совместного конструирования 487

22 Тестирование, выполняемое разработчиками 490
22.1. Тестирование, выполняемое разработчиками, и качество ПО 492
22.2. Рекомендуемый подход к тестированию, выполняемому разработчиками 494
22.3. Приемы тестирования 496
22.4. Типичные ошибки 507
22.5. Инструменты тестирования 513
22.6. Оптимизация процесса тестирования 518
22.7. Протоколы тестирования 520

23 Отладка 524
23.1. Общие вопросы отладки 524
23.2. Поиск дефекта 529
23.3. Устранение дефекта 539
23.4. Психологические аспекты отладки 543
23.5. Инструменты отладки — очевидные и не очень 545

24 Рефакторинг 551
24.1. Виды эволюции ПО 552
24.2. Введение в рефакторинг 553
24.3. Отдельные виды рефакторинга 559
24.4. Безопасный рефакторинг 566
24.5. Стратегии рефакторинга 568

25 Стратегии оптимизации кода 572
25.1. Общее обсуждение производительности ПО 573
25.2. Введение в оптимизацию кода 576
25.3. Где искать жир и патоку? 583
25.4. Оценка производительности 588
25.5. Итерация 590
25.6. Подход к оптимизации кода: резюме 591

26 Методики оптимизации кода 595
26.1. Логика 596
26.2. Циклы 602
26.3. Изменения типов данных 611
26.4. Выражения 616
26.5. Методы 625
26.6. Переписывание кода на низкоуровневом языке 626
26.7. Если что-то одно изменяется, что#то другое всегда остается постоянным 629

Часть VI Системные вопросы

27 Как размер программы влияет на конструирование 634
27.1. Взаимодействие и размер 635
27.2. Диапазон размеров проектов 636
27.3. Влияние размера проекта на возникновение ошибок 636
27.4. Влияние размера проекта на производительность 638
27.5. Влияние размера проекта на процесс разработки 639

28 Управление конструированием 645
28.1. Поощрение хорошего кодирования 646
28.2. Управление конфигурацией 649
28.3. Оценка графика конструирования 655
28.4. Измерения 661
28.5. Гуманное отношение к программистам 664
28.6. Управление менеджером 670

29 Интеграция 673
29.1. Важность выбора подхода к интеграции 673
29.2. Частота интеграции — поэтапная или инкрементная 675
29.3. Стратегии инкрементной интеграции 678
29.4. Ежедневная сборка и дымовые тесты 686

30 Инструменты программирования 694
30.1. Инструменты для проектирования 695
30.2. Инструменты для работы с исходным кодом 695
30.3. Инструменты для работы с исполняемым кодом 700
30.4. Инструменты и среды 704
30.5. Создание собственного программного инструментария 705
30.6. Волшебная страна инструментальных средств 707

Часть VII Мастерство программирования

31 Форматирование и стиль 712
31.1. Основные принципы форматирования 713
31.2. Способы форматирования 720
31.3. Стили форматирования 721

31.4. Форматирование управляющих структур 728
31.5. Форматирование отдельных операторов 736
31.6. Размещение комментариев 747
31.7. Размещение методов 750
31.8. Форматирование классов 752

32 Самодокументирующийся код 760
32.1. Внешняя документация 760
32.2. Стиль программирования как вид документации 761
32.3. Комментировать или не комментировать 764
32.4. Советы по эффективному комментированию 768
32.5. Методики комментирования 774
32.6. Стандарты IEEE 795

33 Личность 800
33.1. Причем тут характер 801
33.2. Интеллект и скромность 802
33.3. Любопытство 803
33.4. Профессиональная честность 806
33.5. Общение и сотрудничество 809
33.6. Творчество и дисциплина 809
33.7. Лень 810
33.8. Свойства, которые менее важны, чем кажется 811
33.9. Привычки 813

34 Основы мастерства 817
34.1. Боритесь со сложностью 817
34.2. Анализируйте процесс разработки 819
34.3. Пишите программы в первую очередь для людей и лишь во вторую —
для компьютеров 821
34.4. Программируйте с использованием языка, а не на языке 823
34.5. Концентрируйте внимание с помощью соглашений 824
34.6. Программируйте в терминах проблемной области 825
34.7. Опасайтесь падающих камней 827
34.8. Итерируйте, итерируйте и итерируйте 830
34.9. И да отделена будет религия от разработки ПО 831

35 Где искать дополнительную информацию 834
35.1. Информация о конструировании ПО 835
35.2. Не связанные с конструированием темы 836
35.3. Периодические издания 838
35.4. Список литературы для разработчика ПО 839
35.5. Профессиональные ассоциации 841
Библиография 842
Предметный указатель 863
Об авторе 868

Источник

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

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