Наши проекты:
Вход для зарегистрированных пользователей
Регистрация нового пользователя
Моя корзина
Книг в корзине:
...
На сумму:
...  грн.
Перейти в корзину Перейти в корзину
Каталог книг Новинки Анонсы Заказы / Корзина Рассылка Оплата и Доставка Контакты
Вы находитесь в разделе каталога:
• Совершенный код, Стив Макконнелл


Совершенный код
Совершенный код
рекомендуем
Стив Макконнелл
Год выпуска: 2022
ISBN: 978-5-9909805-1-8
Переплёт: твердый
896 страниц
Цена: 967.00 грн.
Временно отсутствует     Оставить заявку

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

Изложенные в книге Стива Макконнелла "Совершенный код" методики и стратегии помогут вам:

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

 

Рецензии на книгу Стива Макконнелла "Совершенный код":

"Совершенный код"- великолепное руководство по стилю программирования и конструированию ПО
Мартин Фаулер, автор книг "Рефакторинг", "UML. Основы" и "Шаблоны корпоративных приложений"

Это просто самая лучшая книга по конструрованию ПО из всех, что когда-либо попадались мне в руки.
Каждый разработчик должен иметь её и перечитывать от корки до корки каждый год.
Я ежегодно перечитываю её на протяжении вот уже девяти лет и всё ещё узнаю много нового!
Джон роббинс, автор книги "Отладка приложений для Microsoft .NET. Мастер-класс"

Современное ПО должно быть надёжным и гибким, а создание защищённого кода начинается с дисциплинированного конструирования программы.
За десять лет так и не появилось лучшего руководства по этой теме, чем "Совершенный код".
Майк Ховард, спициалист по защите ПО, корпорация Microsoft, автор книги "Защищенный код для Windows Vista"




Содержание книги Стива Макконнелла "Совершенный код"




Предисловие .................................................................................................................... XIII

Благодарности ................................................................................................................ XIX

Контрольные списки...................................................................................................... XXI

Часть I Основы разработки ПО

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

VIII Содержание

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

Содержание IX

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

X Содержание

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

Содержание XI

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

XII Содержание

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




Отзывы о книге Стива Макконнелла "Совершенный код":

"Совершенный код" - это классика. Настоящий musthave и mustread для любого серьёзного разработчика. Эта книга отлично написана и очень практична.
Сергей

Это лучшая книга по программированию! Советую прочитать всем!!!
Макс

Книга должна быть настольной у каждого уважающего себя программиста. Структурирует навыки программирования. Жалею, что не прочитал ее раньше.
Димон (books.ru)

 

Рецензии на книгу Стива Макконнелла "Совершенный код"


"Совершенный код"- великолепное руководство по стилю программирования и конструированию ПО
Мартин Фаулер, автор книг "Рефакторинг", "UML. Основы" и "Шаблоны корпоративных приложений"

Это просто самая лучшая книга по конструрованию ПО из всех, что когда-либо попадались мне в руки.
Каждый разработчик должен иметь её и перечитывать от корки до корки каждый год.
Я ежегодно перечитываю "Совершенный код" на протяжении вот уже девяти лет и всё ещё узнаю много нового!
Джон Роббинс, автор книги "Отладка приложений для Microsoft .NET. Мастер-класс"

Современное ПО должно быть надёжным и гибким, а создание защищённого кода начинается с дисциплинированного конструирования программы.
За десять лет так и не появилось лучшего руководства по этой теме, чем "Совершенный код".
Майк Ховард, спициалист по защите ПО, корпорация Microsoft, автор книги "Защищенный код для Windows Vista"


С этой книгой чаще всего покупают:
Практика программирования

Практика программирования

рекомендуем
Брайан У. Керниган, Роб Пайк
Год выпуска: 2019
Изд-во: Диалектика-Вильямс
Временно отсутствует   Оставить заявку
 
Эффективная работа с унаследованным кодом

Эффективная работа с унаследованным кодом

Майкл Физерс
Год выпуска: 2017
Изд-во: Диалектика-Вильямс
Временно отсутствует Оставить заявку
Цена: 670.00 грн. 
 
Цена: 1100.00 грн. 
Программирование без дураков

Программирование без дураков

Катриг Пассиг, Йоханнес Яндер
Год выпуска: 2016
Временно отсутствует   Оставить заявку
 
   
Цена: 624.00 грн. 
   

Хотите оставить отзыв? У Вас возникли вопросы о книге "Совершенный код, Стив Макконнелл" ? Пишите:

* Текст сообщения:
 
  Отправить
Поиск по каталогу
 поиск в аннотациях
Искать

 

 * Подробнее об условиях доставки смотрите в разделе "Оплата и Доставка" нашего магазина.
Если у Вас возникли вопросы как подобрать и купить книги в нашем интернет-магазине звоните с 10 до 18 по будним дням: Водафон (050) 809-56-66, Киевстар (067) 408-26-36 или пишите нам

 
   
  Programming - Dmitriy Kotov & Andrey Kotov