Роберт Сесил Мартин - Идеальный программист. Как стать профессионалом разработки ПО
Название: | Идеальный программист. Как стать профессионалом разработки ПО | |
Автор: | Роберт Сесил Мартин | |
Жанр: | Современные российские издания, Литература ХXI века (эпоха Глобализации экономики), Программирование: прочее | |
Изадано в серии: | Библиотека программиста | |
Издательство: | Питер | |
Год издания: | 2012 | |
ISBN: | 978-5-459-01044-2 | |
Отзывы: | Комментировать | |
Рейтинг: | ||
Поделись книгой с друзьями! Помощь сайту: донат на оплату сервера |
Краткое содержание книги "Идеальный программист. Как стать профессионалом разработки ПО"
Всех программистов, которые добиваются успеха в мире разработки ПО, отличает один общий признак: они больше всего заботятся о качестве создаваемого программного обеспечения. Это – основа для них. Потому что они являются профессионалами своего дела.
В этой книге легендарный эксперт Роберт Мартин (более известный в сообществе как «Дядюшка Боб»), автор бестселлера «Чистый код», рассказывает о том, что значит «быть профессиональным программистом», описывая методы, инструменты и подходы для разработки «идеального ПО». Книга насыщена практическими советами в отношении всех аспектов программирования: от оценки проекта и написания кода до рефакторинга и тестирования. Эта книга – больше, чем описание методов, она о профессиональном подходе к процессу разработки.
К этой книге применимы такие ключевые слова (теги) как: советы профессионалов,искусство программирования,профессиональные секреты,разработка программного обеспечения
Читаем онлайн "Идеальный программист. Как стать профессионалом разработки ПО" (ознакомительный отрывок). [Страница - 4]
Ответственность
Вы прочитали введение, правда? Если не прочитали – вернитесь и прочитайте сейчас; оно задает контекст для всего остального материала.Чтобы понять, почему так важно брать на себя ответственность, я на собственном опыте пережил последствия отказа от нее.
В 1979 году я работал на компанию Teradyne. Я был «ответственным инженером» за разработку программы, управляющей мини– и микрокомпьютерной системой для измерения качества телефонных линий. Центральный мини-компьютер подключался по выделенным или коммутируемым линиям на скорости 300 бод к десяткам периферийных микрокомпьютеров, управлявших измерительным оборудованием. Код был написан на ассемблере.
Нашими пользователями были администраторы по обслуживанию, работавшие в крупных телефонных компаниях. Каждый из них отвечал за 100 000 и более телефонных линий. Моя система помогала администраторам находить и исправлять неполадки и проблемы в телефонных линиях еще до того, как они будут замечены клиентами. Таким образом сокращалась частота жалоб клиентов – показатель, который измерялся комиссиями по предприятиям коммунального обслуживания и использовался для регулировки тарифов. Короче говоря, эти системы были невероятно важными.
Каждую ночь эти системы проводили «ночную проверку»: центральный мини-компьютер приказывал каждому из периферийных микрокомпьютеров протестировать все телефонные линии, находящиеся под его контролем. Каждое утро центральный компьютер получал список сбойных линий с характеристиками дефектов. По данным отчета администраторы по обслуживанию строили графики работы ремонтников, чтобы сбои исправлялись до поступления жалоб от клиентов.
Время от времени я рассылал нескольким десяткам заказчиков новую версию своей системы. «Рассылал» – самое правильное слово: я записывал программу на ленты и отправлял эти ленты своим клиентам. Клиенты загружали ленты, а затем перезапускали свои системы.
Очередная версия исправляла ряд незначительных дефектов и содержала новую функцию, которую требовали наши клиенты. Мы пообещали реализовать эту новую функцию к определенной дате. Я едва успел записать ленты в ночную смену, чтобы клиенты получили их к обещанной дате.
Через два дня мне позволил Том, наш менеджер эксплуатационного отдела. По его словам, несколько клиентов пожаловались на то, что «ночная проверка» не завершилась, и они не получили отчетов. У меня душа ушла в пятки – ведь чтобы вовремя выдать готовую версию программы, я не стал тестировать новый код. Я протестировал основную функциональность системы, но на тестирование проверки линий потребовались бы много часов, а я должен был выдать программы. Ни одна из исправленных ошибок не содержалась в коде проверки, поэтому я чувствовал себя в безопасности.
Потеря ночного отчета была серьезным делом. Она означала, что у ремонтников было меньше работы, а позднее им придется отрабатывать упущенное. Также некоторые клиенты могли заметить дефект и пожаловаться. Потери данных за целую ночь было достаточно, чтобы менеджер по обслуживанию позвонил Тому и устроил ему разнос.
Я включил тестовую систему, загрузил новую программу и запустил проверку. Программа проработала несколько часов, а затем аварийно завершилась. Код не работал. Если бы я протестировал его до поставки, то данные не были бы потеряны, а менеджеры по обслуживанию не терзали бы Тома.
Я позвонил Тому и сообщил, что мне удалось воспроизвести проблему. Оказалось, что многие другие клиенты уже обращались к нему с той же проблемой. Затем он спросил, когда я смогу исправить ошибку. Я ответил, что пока не знаю, но работаю над ней, а пока клиенты могут вернуться к старой версии программы. Том рассердился – возврат стал бы двойным ударом для клиентов: они теряют данные за целую ночь и не могут использовать обещанную функцию.
Ошибку было трудно найти, а тестирование занимало несколько часов. Первое исправление не сработало. Второе – тоже. Мне понадобилось несколько попыток (а следовательно, дней), чтобы разобраться в происходящем. Все это время Том звонил мне через каждые несколько часов и спрашивал, когда будет исправлена ошибка. Он также передавал мне все, что ему говорили клиенты и как неудобно было предлагать им поставить старые ленты.
В конце концов я нашел дефект, отправил новые ленты, и все вошло в норму. Том (который не был моим начальником) остыл, --">Книги схожие с «Идеальный программист. Как стать профессионалом разработки ПО» по жанру, серии, автору или названию:
Сергей Владимирович Маклаков - BPwin и Erwin. CASE-средства для разработки информационных систем Жанр: Программы Год издания: 2000 |
Натали Голдберг - Человек, который съел машину: Книга о том, как стать писателем Жанр: Руководства и инструкции Год издания: 2017 |
Алексей Николаевич Ардашев - Боевая подготовка пограничников. Как стать супербойцом Жанр: Военное дело Год издания: 2016 Серия: Пограничники. Герои в зеленых фуражках |
Роберт Сесил Мартин - Чистый Agile. Основы гибкости Жанр: Современные российские издания Год издания: 2020 Серия: Библиотека программиста |
Другие книги из серии «Библиотека программиста»:
Дэниел Г Грэм - Этичный хакинг практическое руководство по взлому Жанр: Хакерство Год издания: 2022 Серия: Библиотека программиста |
Роберт С. Сикорд - Эффективный С. Профессиональное программирование Жанр: Программирование: прочее Год издания: 2022 Серия: Библиотека программиста |
Грег Хорин - Управление проектами с нуля Жанр: Управление, подбор персонала Год издания: 2022 Серия: Библиотека программиста |
Владимир Силва - Разработка с использованием квантовых компьютеров Жанр: Программирование: прочее Год издания: 2020 Серия: Библиотека программиста |