Показать сообщение отдельно
Старый 01.02.2008, 11:52   #20  
gl00mie is offline
gl00mie
Участник
MCBMSS
Most Valuable Professional
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,684 / 5788 (200) ++++++++++
Регистрация: 28.11.2005
Адрес: Москва
Записей в блоге: 3
Цитата:
Сообщение от тов. Костомолоцкий Посмотреть сообщение
"Программист - это тот, кто пишет программы."
«Пишут» статейки для журналов, «пишут» скрипты длиной в сотню-другую строк или одноразовые утилиты, от которых требуется лишь сэкономить время и нервы на тупом ручном труде, а сколь-нибудь крупные, сложные и/или важные программы создают иначе: изучают предметную область, собирают, формализуют и анализируют исходные требования, создают высокоуровневый проект, разрабатывают архитектуру, создают детализированный проект, конструируют, тестируют, оптимизируют, сопровождают... Возможно, поэтому в английском языке используют именно термин software developer, а не programmer.
Похоже, спор про различие между "программистами" и "разработчиками" (программных продуктов) возникает из-за использования некорректных метафор и аналогий, а также следующих из них некорректных выводов. К слову, вот некоторые соображения по поводу метафор из одной очень хорошей книги:
Цитата:
Разумеется, некоторые метаформы лучше других. Хорошими метафорами можно считать те, что отличаются простотой, согласуются с другими релевантными метафорами и объясняют другие экспериментальные данные и наблюдаемые явления.
...
Самая примитивная метафора, описывающая разработку ПО, берет начало в выражении «написание кода». Согласно литературной метаформе разработка программы похожа на написание письма: вы садитесь за стол, берете бумагу, перо и пишете письмо с начала до конца. К сожалению, литературная метафора была увековечена в одной из самых популярных книг по разработке ПО - кние Фреда Брукса «Мифический человеко-месяц». Брукс пишет: «планируйте выбросить первый экземпляр программы: вам в любом случае придется это сделать». Перед глазами невольно возникает образ мусорного ведра, полного черновиков. Подобный подход может быть практичным, если вы пишете банальное письмо своей тетушке. Однако, расширение метаформы «написания» ПО вплоть до выбрасывания первого экземпляра программы - не лучший совет в мире разработки ПО, где крупная система по стоимости уже сравнялась с 10-этажным офисным зданием или океанским лайнером.
Метафора «построения» ПО полезнее, чем метафора «написания», так как согласуется с идеей аккреции ПО и предоставляет более детальное руководство. Построение ПО предполагает наличие стадий планирования, подготовки и выполнения, тип и степень выраженности которых зависит от конкретного проекта. При изучении этой метафоры вы найдете и другие параллели.
Для построения метровой башни требуется твердая рука, ровная поверхность и 10 пивных банок, для башни же в 100 раз более высокой недостаточно иметь в 100 раз больше пивных банок. Такой проект тербует совершенно иного планирования и конструирования.
Если вы строите простой объект, скажем, собачью конуру, вы можете пойти в хозяйственный магазин, купить доски, гвозди, и к вечеру у Фидо будет новый дом. Если вы забудете про лаз или допустите другую ошибку, ничего страшного: вы можете исправить ее потом или даже начать все сначала. Все, что вы при этом потеряете, - время. Такой свободных подход уместен и в небольших программных проектах. Если вы плохо спроектируете 1000 строк кода, то сможете выполнить рефакторинг или даже начать проект заново, и это не приведет к крупным потерям.
Построить дом сложнее, и плохое проектирование при этом приводит к куда более серьезным последствиям. Сначала вы должны решить, какой тип здания вы хотите построить, что аналогично определению проблемы при разработке ПО. Затем вы с архитектором должны разработать и утвердить общий план, что похоже на разработку архитектуры. Далее вы чертите подробные чертежи и нанимаете бригаду строителей - это аналогично детальному проектированию ПО. Вы готовите стройплощадку, закладываете фундамент, создаете каркас дома, обшиваете его, кроете крышу и проводите в дом все коммуникации - это похоже на конструирование ПО. Когда строительство почти завершено, в дело вступают ландшафтные дизайнеры, маляры и декораторы, делающие дом максимально удобным и привлекательным. Это напоминает оптимизацию ПО. Наконец, на протяжении всего строительства вас посещают инспекторы, проверяющие стройплощадку, фундамент, электропроводку и все, что можно проверить. При разработке ПО этому соответствуют обзоры и инспекции проекта.

Последний раз редактировалось gl00mie; 01.02.2008 в 12:20. Причина: typo