Идеальный программист. Как стать профессионалом разработки ПО

Идеальный программист. Как стать профессионалом разработки ПО
Автор книги: id книги: 142190     Оценка: 0.0     Голосов: 0     Отзывы, комментарии: 1 449 руб.     (4,36$) Читать книгу Купить и скачать книгу Купить бумажную книгу Электронная книга Жанр: Программирование Правообладатель и/или издательство: "Издательство "Питер" Дата публикации, год издания: 2011 Дата добавления в каталог КнигаЛит: ISBN: 978-5-459-01044-2 Скачать фрагмент в формате   fb2   fb2.zip Возрастное ограничение: 12+ Оглавление Отрывок из книги

Реклама. ООО «ЛитРес», ИНН: 7719571260.

Описание книги

Всех программистов, которые добиваются успеха в мире разработки ПО, отличает один общий признак: они больше всего заботятся о качестве создаваемого программного обеспечения. Это – основа для них. Потому что они являются профессионалами своего дела. В этой книге легендарный эксперт Роберт Мартин (более известный в сообществе как «Дядюшка Боб»), автор бестселлера «Чистый код», рассказывает о том, что значит «быть профессиональным программистом», описывая методы, инструменты и подходы для разработки «идеального ПО». Книга насыщена практическими советами в отношении всех аспектов программирования: от оценки проекта и написания кода до рефакторинга и тестирования. Эта книга – больше, чем описание методов, она о профессиональном подходе к процессу разработки.

Оглавление

Роберт Мартин. Идеальный программист. Как стать профессионалом разработки ПО

Обязательное вступление (Не пропускайте, оно вам понадобится!)

От издательства

1. Профессионализм

Оборотная сторона профессионализма

Ответственность

Первое правило: не навреди

Не навреди функциональности

Контроль качества не должен ничего обнаружить

Вы должны быть уверены в том, что ваш код работает

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

Не навреди структуре

Трудовая этика

Знай свою область

Непрерывное обучение

Тренировка

Совместная работа

Наставничество

Знание предметной области

Понимание интересов работодателя/заказчика

Скромность

2. Как сказать «нет»

Антагонистические роли

Как насчет «почему»?

Высокие ставки

Умение работать в коллективе

Не пытайтесь

Пассивная агрессивность

Цена согласия

О невозможности хорошего кода

3. Как сказать «да»

Язык обещаний. Рой Ошеров

Признаки пустых обещаний

Признаки серьезных обещаний

Выполнение обещания зависит от другого человека X

Вы не уверены в том, что обещание можно выполнить

Вы не справились

Резюме

Учимся говорить «да»

Обратная сторона «попытки»

Дисциплинированное принятие обязательств

Итоги

4. Написание кода

Готовность

Ночное программирование

Программирование в расстроенных чувствах

Зона потока

Музыка

Помехи

Творческий кризис

Творческий ввод

Отладка

Время отладки

Выбор темпа

Умейте остановиться

По дороге домой

Душ

Отставание от графика

Надежда

Спешка

Сверхурочные

Ложная готовность

Определение «готовности»

Помощь

Как помогать другим

Как принимать помощь

Обучение

5. Разработка через тестирование

Вердикт вынесен

Три закона TDD

Длинный перечень преимуществ

Уверенность

Снижение плотности дефектов

Смелость

Документация

Архитектура

Выбор профессионалов

Чем TDD не является

6. Тренировка

Азы тренировки

Двадцать два нуля

Длительность рабочего цикла

Додзё программирования

Ката

Вадза

Рандори

Расширение кругозора

Проекты с открытым кодом

Этика тренировки

Заключение

7. Приемочное тестирование

Передача требований

Преждевременная точность

Принцип неопределенности

Стремление к точности оценки

Поздняя неоднозначность

Приемочные тесты

Что такое «выполнено»?

Взаимодействие сторон

Автоматизация

Дополнительная работа

Кто и когда пишет приемочные тесты?

Роль разработчика

Обсуждение тестов и пассивно-агрессивная позиция

Приемочные тесты и модульные тесты

Графические интерфейсы и другие сложности

Выбор интерфейса для тестирования

Непрерывная интеграция

Стоп-сигнал

Заключение

8. Стратегии тестирования

Контроль качества не должен находить дефекты

Служба контроля качества – часть команды

Создание спецификаций

Описание характеристик системы

Пирамида автоматизации тестирования

Модульные тесты

Компонентные тесты

Интеграционные тесты

Системные тесты

Исследовательские тесты

Заключение

9. Планирование

Встречи

Отказ от участия

Уход со встречи

Повестка дня и цель

Пятиминутка

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

Ретроспективные встречи по итерациям и демонстрации

Споры и разногласия

Мана концентрации

Сон

Кофеин

Перезарядка

Физические упражнения

Ввод и вывод

Помидоры и распределение времени

Уклонение от работы

Инверсия приоритетов

Тупики

Грязь, болота и трясины

Заключение

10. Оценки

Что такое «оценка»?

Обязательства

Оценка

Подразумеваемые обязательства

PERT

Оценка времени выполнения

Широкополосный дельфийский метод

Метод быстрого голосования

Покер планирования

Аффинная оценка

Анализ по трем переменным

Закон больших чисел

Заключение

11. Под давлением

Как избежать давления

Обязательства

Как сохранить чистоту

Дисциплина в кризисных ситуациях

Как вести себя в тяжелой ситуации

Без паники

Взаимодействие

Доверяйте своим методам

Помощь

Заключение

12. Сотрудничество

Программисты и люди

Программисты и работодатели

Программисты и программисты

Принадлежность кода

Коллективная принадлежность кода

Парное программирование

Как работать мозжечком

Заключение

13. Группы и проекты

Формирование группы

«Притертая» группа

Созревание

Что сначала – группа или проект?

Но как управлять такой группой?

Дилемма владельца проекта

Заключение

14. Наставники, ученики и мастерство

Диплом для неподготовленных

Обучение

Digi-comp I, мой первый компьютер

ECP-18 в средней школе

Нетрадиционное обучение

Горький опыт

Ученичество

Период ученичества

Мастер

Ремесленник

Ученики/интерны

Реальность

Профессионализм

Как убедить людей

Заключение

Приложение. Инструментарий

Инструменты

Управление исходным кодом

«Корпоративные» системы управления исходным кодом

Пессимистическая и оптимистическая блокировка

CVS/SVN

Разветвление

git

IDE/редактор

vi

Emacs

Eclipse/IntelliJ

TextMate

Отслеживание задач

Счетчики дефектов

Непрерывная сборка

Инструменты модульного тестирования

Инструменты компонентного тестирования

Определение

FitNesse

Другие инструменты

Инструменты интеграционного тестирования

UML/MDA

Детализация

Без изменений и надежд

Заключение

Отрывок из книги

Почему вы выбрали эту книгу? Наверное, потому что вы – программист, и вас интересует понятие профессионализма. И правильно! Профессионализм – то, чего так отчаянно не хватает в нашей профессии.

Я тоже программист. Я занимался программированием 42[1] года и за это время повидал многое. Меня увольняли. Меня превозносили до небес. Я побывал руководителем группы, начальником, рядовым работником и даже исполнительным директором. Я работал с выдающимися программистами, и я работал со слизняками.[2] Я занимался разработкой как самых передовых встроенных программных/аппаратных систем, так и корпоративных систем начисления зарплаты. Я программировал на COBOL, FORTRAN, BAL, PDP-8, PDP-11, C, C++, Java, Ruby, Smalltalk и на многих других языках. Я работал с бездарными халявщиками, и я работал с высококвалифицированными профессионалами. Именно последней классификации посвящена эта книга.

.....

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

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

.....

Добавление нового отзыва

Комментарий Поле, отмеченное звёздочкой  — обязательно к заполнению

Отзывы и комментарии читателей

  

Хорошо но мало

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

Смотреть еще отзывы на сайте ЛитРеса
Подняться наверх