logo
Фотографии покупателей
Название в оригинале Code complete
Все товары Большие книги, Топ нехудожественной литературы, Сувениры для программистов, Клиенты рекомендуют!
Издательство Русская редакция
Год издания 2019
Страниц 896
Переплет Твердый переплет
Издание Второе издание
Формат 70х100/16 (170х240 мм, увеличенный)
ISBN 978-5-9909805-1-8
Вес 1270 г
Возрастные ограничения 16+
Изготовитель ООО «Издательство «Русская Редакция». 125362, г. Москва, ул. Свободы , дом 17
Импортер ООО «Приносим радость», 220073, г. Минск, ул. Скрыганова, д. 14, каб. 36.
Доставка Самовывоз — бесплатно.
Курьером по Минску — 3,99 р., бесплатно при заказе от 100,00 р.
Срок доставки устанавливается после оформления заказа.
Подробнее о видах доставки, доступных в вашем населенном пункте,  — в разделе «Виды доставки».
Все параметры

Содержание

  • Предисловие
  • Благодарности
  • Контрольные списки
  • Часть I Основы разработки ПО
    • 1 Добро пожаловать в мир конструирования ПО!
      • 1.1. Что такое конструирование ПО?
      • 1.2. Почему конструирование ПО так важно?
      • 1.3. Как читать эту книгу
    • 2 Метафоры, позволяющие лучше понять разработку ПО
      • 2.1. Важность метафор
      • 2.2. Как использовать метафоры?
      • 2.3. Популярные метафоры, характеризующие разработку ПО
    • 3 Семь раз отмерь, один раз отрежь: предварительные условия
      • 3.1. Важность выполнения предварительных условий
      • 3.2. Определите тип ПО, над которым вы работаете
      • 3.3. Предварительные условия, связанные с определением проблемы
      • 3.4. Предварительные условия, связанные с выработкой требований
      • 3.5. Предварительные условия, связанные с разработкой архитектуры
      • 3.6. Сколько времени следует посвятить выполнению предварительных условий?
    • 4 Основные решения, которые приходится принимать при конструировании
      • 4.1. Выбор языка программирования
      • 4.2. Конвенции программирования
      • 4.3. Волны развития технологий
      • 4.4. Выбор основных методик конструирования
  • Часть II Высококачественный код
    • 5 Проектирование при конструировании
      • 5.1. Проблемы, связанные с проектированием ПО
      • 5.2. Основные концепции проектирования
      • 5.3. Компоненты проектирования: эвристические принципы
      • 5.4. Методики проектирования
      • 5.5. Комментарии по поводу популярных методологий
    • 6 Классы
      • 6.1. Основы классов: абстрактные типы данных
      • 6.2. Качественные интерфейсы классов
      • 6.3. Вопросы проектирования и реализации
      • 6.4. Разумные причины создания классов
      • 6.5. Аспекты, специфические для языков
      • 6.6. Следующий уровень: пакеты классов
    • 7 Высококачественные методы
      • 7.1. Разумные причины создания методов
      • 7.2. Проектирование на уровне методов
      • 7.3. Удачные имена методов
      • 7.4. Насколько объемным может быть метод?
      • 7.5. Советы по использованию параметров методов
      • 7.6. Отдельные соображения по использованию функций
      • 7.7. Методы-макросы и встраиваемые методы
    • 8 Защитное программирование
      • 8.1. Защита программы от неправильных входных данных
      • 8.2. Утверждения
      • 8.3. Способы обработки ошибок
      • 8.4. Исключения
      • 8.5. Изоляция повреждений, вызванных ошибками
      • 8.6. Отладочные средства
      • 8.7. Доля защитного программирования в промышленной версии
      • 8.8. Защита от защитного программирования
    • 9 Процесс программирования с псевдокодом
      • 9.1. Этапы создания классов и методов
      • 9.2. Псевдокод для профи
      • 9.3. Конструирование методов с использованием ППП
      • 9.4. Альтернативы ППП
  • Часть III Переменные
    • 10 Общие принципы использования переменных
      • 10.1. Что вы знаете о данных?
      • 10.2. Грамотное объявление переменных
      • 10.3. Принципы инициализации переменных
      • 10.4. Область видимости
      • 10.5. Персистентность
      • 10.6. Время связывания
      • 10.7. Связь между типами данных и управляющими структурами
      • 10.8. Единственность цели каждой переменной
    • 11 Сила имен переменных
      • 11.1. Общие принципы выбора имен переменных
      • 11.2. Именование конкретных типов данных
      • 11.3. Сила конвенций именования
      • 11.4. Неформальные конвенции именования
      • 11.5. Стандартизованные префиксы
      • 11.6. Грамотное сокращение имен переменных
      • 11.7. Имена, которых следует избегать
    • 12 Основные типы данных
      • 12.1. Числа в общем
      • 12.2. Целые числа
      • 12.3. Числа с плавающей запятой
      • 12.4. Символы и строки
      • 12.5. Логические переменные
      • 12.6. Перечислимые типы
      • 12.7. Именованные константы
      • 12.8. Массивы
      • 12.9. Создание собственных типов данных (псевдонимы)
    • 13 Нестандартные типы данных
      • 13.1. Структуры
      • 13.2. Указатели
      • 13.3. Глобальные данные
  • Часть IV Операторы
    • 14 Организация последовательного кода
      • 14.1. Операторы, следующие в определенном порядке
      • 14.2. Операторы, следующие в произвольном порядке
    • 15 Условные операторы
      • 15.1. Операторы if
      • 15.2. Операторы case
    • 16 Циклы
      • 16.1. Выбор типа цикла
      • 16.2. Управление циклом
      • 16.3. Простое создание цикла — изнутри наружу
      • 16.4. Соответствие между циклами и массивами
    • 17 Нестандартные управляющие структуры
      • 17.1. Множественные возвраты из метода
      • 17.2. Рекурсия
      • 17.3. Оператор goto
      • 17.4. Перспективы нестандартных управляющих структур
    • 18 Табличные методы
      • 18.1. Основные вопросы применения табличных методов
      • 18.2. Таблицы с прямым доступом
      • 18.3. Таблицы с индексированным доступом
      • 18.4. Таблицы со ступенчатым доступом
      • 18.5. Другие примеры табличного поиска
    • 19 Общие вопросы управления
      • 19.1. Логические выражения
      • 19.2. Составные операторы (блоки)
      • 19.3. Пустые выражения
      • 19.4. Укрощение опасно глубокой вложенности
      • 19.5. Основа программирования: структурное программирование
      • 19.6. Управляющие структуры и сложность
  • Часть V Усовершенствование кода
    • 20 Качество ПО
      • 20.1. Характеристики качества ПО
      • 20.2. Методики повышения качества ПО
      • 20.3. Относительная эффективность методик контроля качества ПО
      • 20.4. Когда выполнять контроль качества ПО?
      • 20.5. Главный Закон Контроля Качества ПО
    • 21 Совместное конструирование
      • 21.1. Обзор методик совместной разработки ПО
      • 21.2. Парное программирование
      • 21.3. Формальные инспекции
      • 21.4. Другие методики совместной разработки ПО
      • 21.5. Сравнение методик совместного конструирования
    • 22 Тестирование, выполняемое разработчиками
      • 22.1. Тестирование, выполняемое разработчиками, и качество ПО
      • 22.2. Рекомендуемый подход к тестированию, выполняемому разработчиками
      • 22.3. Приемы тестирования
      • 22.4. Типичные ошибки
      • 22.5. Инструменты тестирования
      • 22.6. Оптимизация процесса тестирования
      • 22.7. Протоколы тестирования
    • 23 Отладка
      • 23.1. Общие вопросы отладки
      • 23.2. Поиск дефекта
      • 23.3. Устранение дефекта
      • 23.4. Психологические аспекты отладки
      • 23.5. Инструменты отладки — очевидные и не очень
    • 24 Рефакторинг
      • 24.1. Виды эволюции ПО
      • 24.2. Введение в рефакторинг
      • 24.3. Отдельные виды рефакторинга
      • 24.4. Безопасный рефакторинг
      • 24.5. Стратегии рефакторинга
    • 25 Стратегии оптимизации кода
      • 25.1. Общее обсуждение производительности ПО
      • 25.2. Введение в оптимизацию кода
      • 25.3. Где искать жир и патоку?
      • 25.4. Оценка производительности
      • 25.5. Итерация
      • 25.6. Подход к оптимизации кода: резюме
    • 26 Методики оптимизации кода
      • 26.1. Логика
      • 26.2. Циклы
      • 26.3. Изменения типов данных
      • 26.4. Выражения
      • 26.5. Методы
      • 26.6. Переписывание кода на низкоуровневом языке
      • 26.7. Если что-то одно изменяется, что-то другое всегда остается постоянным
  • Часть VI Системные вопросы
    • 27 Как размер программы влияет на конструирование
      • 27.1. Взаимодействие и размер
      • 27.2. Диапазон размеров проектов
      • 27.3. Влияние размера проекта на возникновение ошибок
      • 27.4. Влияние размера проекта на производительность
      • 27.5. Влияние размера проекта на процесс разработки
    • 28 Управление конструированием
      • 28.1. Поощрение хорошего кодирования
      • 28.2. Управление конфигурацией
      • 28.3. Оценка графика конструирования
      • 28.4. Измерения
      • 28.5. Гуманное отношение к программистам
      • 28.6. Управление менеджером
    • 29 Интеграция
      • 29.1. Важность выбора подхода к интеграции
      • 29.2. Частота интеграции — поэтапная или инкрементная?
      • 29.3. Стратегии инкрементной интеграции
      • 29.4. Ежедневная сборка и дымовые тесты
    • 30 Инструменты программирования
      • 30.1. Инструменты для проектирования
      • 30.2. Инструменты для работы с исходным кодом
      • 30.3. Инструменты для работы с исполняемым кодом
      • 30.4. Инструменты и среды
      • 30.5. Создание собственного программного инструментария
      • 30.6. Волшебная страна инструментальных средств
  • Часть VII Мастерство программирования
    • 31 Форматирование и стиль
      • 31.1. Основные принципы форматирования
      • 31.2. Способы форматирования
      • 31.3. Стили форматирования
      • 31.4. Форматирование управляющих структур
      • 31.5. Форматирование отдельных операторов
      • 31.6. Размещение комментариев
      • 31.7. Размещение методов
      • 31.8. Форматирование классов
    • 32 Самодокументирующийся код
      • 32.1. Внешняя документация
      • 32.2. Стиль программирования как вид документации
      • 32.3. Комментировать или не комментировать?
      • 32.4. Советы по эффективному комментированию
      • 32.5. Методики комментирования
      • 32.6. Стандарты IEEE
    • 33 Личность
      • 33.1. Причем тут характер?
      • 33.2. Интеллект и скромность
      • 33.3. Любопытство
      • 33.4. Профессиональная честность
      • 33.5. Общение и сотрудничество
      • 33.6. Творчество и дисциплина
      • 33.7. Лень
      • 33.8. Свойства, которые менее важны, чем кажется
      • 33.9. Привычки
    • 34 Основы мастерства
      • 34.1. Боритесь со сложностью
      • 34.2. Анализируйте процесс разработки
      • 34.3. Пишите программы в первую очередь для людей и лишь во вторую — для компьютеров
      • 34.4. Программируйте с использованием языка, а не на языке
      • 34.5. Концентрируйте внимание с помощью соглашений
      • 34.6. Программируйте в терминах проблемной области
      • 34.7. Опасайтесь падающих камней
      • 34.8. Итерируйте, итерируйте и итерируйте
      • 34.9. И да отделена будет религия от разработки ПО
    • 35 Где искать дополнительную информацию
      • 35.1. Информация о конструировании ПО
      • 35.2. Не связанные с конструированием темы
      • 35.3. Периодические издания
      • 35.4. Список литературы для разработчика ПО
      • 35.5. Профессиональные ассоциации
  • Библиография
  • Предметный указатель
  • Об авторе
Cреди ваших покупок нет этого товара. Вы можете оставлять отзывы только к товарам, которые покупали на OZ.by
Напишите отзыв о книге или задайте вопрос
  • Оставить отзыв
  • Задать вопрос
Ваша оценка
ужасно
плохо
нормально
хорошо
отлично
Вам запрещено оставлять комментарии
C этим товаром покупают
Грокаем алгоритмы. Иллюстрированное пособие для программистов и любопытствующих
Лидер продаж
-14% Бонус 0,34
Грокаем алгоритмы. Иллюстрированное пособие для программистов и любопытствующих
Цена: 34,06 р. Старая цена: 39,60

Грокаем алгоритмы. Иллюстрированное пособие для программистов и любопытствующих

Адитья Бхаргава, 2019
Рейтинг 4,97 из 5 (по результату 34 голосов)
Как пасти котов. Наставление для программистов, руководящих другими программистами
Лидер продаж
-14% Бонус 0,35
Как пасти котов. Наставление для программистов, руководящих другими программистами
Цена: 35,45 р. Старая цена: 41,22

Как пасти котов. Наставление для программистов, руководящих другими программистами

Дж. Рейнвотер, 2019
Рейтинг 3,57 из 5 (по результату 20 голосов)
Теоретический минимум по Computer Science. Все что нужно программисту и разработчику
Лидер продаж
-14% Бонус 0,30
Теоретический минимум по Computer Science. Все что нужно программисту и разработчику
Цена: 30,45 р. Старая цена: 35,41

Теоретический минимум по Computer Science. Все что нужно программисту и разработчику

Владстон Феррейра Фило, 2022
Рейтинг 3,6 из 5 (по результату 12 голосов)
Совершенный алгоритм. Основы
-14% Бонус 0,46
Совершенный алгоритм. Основы
Цена: 45,94 р. Старая цена: 53,42

Совершенный алгоритм. Основы

Тим Рафгарден, 2022
Рейтинг 5 из 5 (по результату 2 голосов)
Карьера программиста
-14% Бонус 0,70
Карьера программиста
Цена: 70,40 р. Старая цена: 81,86

Карьера программиста

Гейл Лакман Макдауэлл, 2022
Рейтинг 5 из 5 (по результату 1 голосов)
Использование Docker
Скоро закончится
-10% Бонус 0,51
Использование Docker
Цена: 51,13 р. Старая цена: 56,81

Использование Docker

Эдриен Моуэт, 2017

Вход

В течение нескольких секунд вам придёт SMS с одноразовым кодом для входа. Если ничего не пришло — отправьте код ещё раз.
Получите доступ к персональным скидкам и акциям, ускорьте оформление заказов.
Войдите с помощью своего профиля

Регистрация

Введите номер вашего мобильного телефона:
Войдите с помощью электронной почты или номера телефона
Войдите с помощью своего профиля

Восстановление пароля

Укажите адрес электронной почты, который вы использовали при регистрации
Нужна помощь? Звоните 695-25-25 (МТС, A1, life:) или напишите нам

Восстановление пароля

Инструкции по восстановлению пароля высланы на 
Нужна помощь? Звоните 695-25-25 (МТС, A1, life:) или напишите нам

Согласие на обработку персональных данных

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

Отказываюсь