Роберт Мартин - Идеальный программист. Как стать профессионалом разработки ПО
- Название:Идеальный программист. Как стать профессионалом разработки ПО
- Автор:
- Жанр:
- Издательство:Издательство «Питер»046ebc0b-b024-102a-94d5-07de47c81719
- Год:2012
- Город:Санкт-Петербург
- ISBN:978-5-459-01044-2
- Рейтинг:
- Избранное:Добавить в избранное
-
Отзывы:
-
Ваша оценка:
Роберт Мартин - Идеальный программист. Как стать профессионалом разработки ПО краткое содержание
Всех программистов, которые добиваются успеха в мире разработки ПО, отличает один общий признак: они больше всего заботятся о качестве создаваемого программного обеспечения. Это – основа для них. Потому что они являются профессионалами своего дела.
В этой книге легендарный эксперт Роберт Мартин (более известный в сообществе как «Дядюшка Боб»), автор бестселлера «Чистый код», рассказывает о том, что значит «быть профессиональным программистом», описывая методы, инструменты и подходы для разработки «идеального ПО». Книга насыщена практическими советами в отношении всех аспектов программирования: от оценки проекта и написания кода до рефакторинга и тестирования. Эта книга – больше, чем описание методов, она о профессиональном подходе к процессу разработки.
Идеальный программист. Как стать профессионалом разработки ПО - читать онлайн бесплатно ознакомительный отрывок
Интервал:
Закладка:
Скорость – статистическая метрика. Группа может реализовать 38 пунктов в одну неделю, 42 пункта в другую и 25 в третью. По мере накопления данных вычисляется усредненный показатель.
Руководство может задать цели для каждого проекта, Например, если средняя скорость группы равна 50 и группа работает над тремя проектами, руководство может попросить группу распределить усилия в пропорции 15/15/20.
Помимо того что над проектами работает «притертая» команда, у этой схемы есть и другое преимущество. В напряженной ситуации бизнес-сторона может сказать: «Проект B в критическом состоянии; в следующие три недели направьте на него 100 % усилий».
Столь быстрое перераспределение приоритетов практически невозможно со случайно подобранными группами, тогда как «притертая» группа, работающая над двумя или тремя проектами одновременно, легко выполняет подобные «развороты на месте».
Дилемма владельца проекта
Один из аргументов против метода, за который я выступаю, заключается в том, что он частично лишает владельцев проекта уверенности и власти. Владельцы проекта, для которого была создана специальная группа, могут рассчитывать на полную отдачу этой группы. Они знают, что формирование и роспуск группы обходится недешево, поэтому бизнес не будет отнимать у них группу по краткосрочным тактическим соображениям.
С другой стороны, если проекты даются «притертым» группам и эти группы ведут сразу несколько проектов, бизнес может менять приоритеты по своему усмотрению. Из-за этого владелец проекта менее уверен в будущем. У него могут внезапно отобрать ресурсы, на которые он рассчитывает.
Честно говоря, я предпочитаю вторую ситуацию. Руки бизнеса не должны быть связаны искусственными сложностями формирования и роспуска групп. Если бизнес решит, что один проект обладает более высоким приоритетом, он должен иметь возможность быстро перераспределить ресурсы. Владелец проекта должен сам привести веские доводы в его пользу.
Заключение
Создать хорошую группу сложнее, чем создать проект. Соответственно лучше формировать группы с постоянным составом, которые переходят от одного проекта к другому и могут заниматься несколькими проектами одновременно. При формировании группы следует дать ей достаточно времени для того, чтобы она сработалась, а затем использовать ее как инструмент для успешного выполнения многих проектов.
14
Наставники, ученики и мастерство

Уровень выпускников в области компьютерных технологий меня постоянно разочаровывает. Дело не в том, что они недостаточно умны или талантливы – просто их не учили тому, что необходимо знать настоящему программисту.
Диплом для неподготовленных
Однажды я проводил собеседование с девушкой, занятой дипломной работой в области компьютерных технологий в известном университете. Она подала документы на летнюю стажировку. Я попросил ее написать для меня решение несложной задачи, а она ответила: «Вообще-то я не пишу код».
Пожалуйста, перечитайте предыдущий абзац, а потом переходите к следую щему.
Я спросил, какие курсы по программированию она посещала во время обучения. Она ответила, что не посещала никаких.
Возможно, вам стоит прочитать главу с самого начала. Вы хотя бы убедитесь в том, что вы не попали в альтернативную Вселенную и вам не приснился страшный сон.
Вы спросите, как студент с учебной программой магистра в области компьютерных технологий мог обойтись без единого курса программирования? Я тогда задал себе тот же вопрос. И до сих пор не нахожу ответа.
Конечно, это самый выдающийся случай в серии разочарований, испытанных мной во время собеседований с выпускниками. Не все выпускники в области компьютерных технологий настолько плохи – вовсе нет! Однако я заметил у них нечто общее: почти все они изучали программирование самостоятельно до поступления в университет и продолжали изучать его, несмотря на учебу в университете.
Не поймите меня неправильно. Я считаю, что в университете можно получить отличное образование. Просто наряду с этим можно украдкой проскользнуть через систему и получить диплом… не получив ничего более.
Другая проблема: даже самые лучшие курсы по компьютерным технологиям обычно не готовят молодого выпускника к тому, с чем он столкнется в этой отрасли. И дело даже не столько в недостатках учебных программ, как в реалиях почти всех дисциплин. То, что вы узнаете во время учебы, часто очень сильно отличается от того, с чем вы сталкиваетесь на работе.
Обучение
Как мы учимся программировать? Позвольте рассказать вам одну историю о наставниках и учениках.
Digi-comp I, мой первый компьютер
В 1964 году моя мама подарила мне на 12-летие маленький механический компьютер. Он назывался Digi-Comp I [51]и состоял из трех пластиковых триггеров и шести пластиковых конъюнкторов. Выходы триггеров можно было соединять с входами конъюнкторов или наоборот – выходы конъюнкторов со входами триггеров. Короче говоря, устройство позволяло создать трехразрядный конечный автомат.
В комплект входила инструкция с несколькими программами. Чтобы запрограммировать машину, следовало протолкнуть пластиковую трубочку (короткий отрезок соломинки для коктейля) в штифт на триггере. В руководстве было точно указано, куда вставлять трубочки, но ни слова не говорилось о том, что эти трубочки делают. Знали бы вы, как это меня раздражало!
Я часами разглядывал машину и пытался понять, как она работает на самом нижнем уровне; но даже для спасения жизни я бы не смог заставить ее сделать то, что мне нужно. На последней странице руководства было сказано, что если я заплачу доллар, то мне пришлют руководство по программированию машины. [52]
Я послал доллар и стал ждать с нетерпением двенадцатилетнего подростка. Когда книга пришла, я проглотил ее за день. Это было простое изложение булевой алгебры с азами булевой логики, законов ассоциативности и дистрибутивности и теоремы де Моргана. В руководстве было показано, как выразить задачу в виде последовательности логических формул и как сократить эти формулы для 6 конъюнкторов.
Я написал свою первую программу. Я написал уравнения, сократил их и отобразил на трубки и штифты машины. И программа заработала !
Даже сейчас от воспоминаний у меня мурашки бегут по спине. Те впечатления определили судьбу 12-летнего подростка почти полвека назад. Программирование захватило меня, и моя жизнь уже никогда не будет прежней.
Читать дальшеИнтервал:
Закладка: