pavia писал(а):
Э-эээ! Ранил и убил на повал. Это разве проектирование??? Если после него всё нужно переделывать? Состав должен был быть определён на ранней стадии и оттуда уже было бы видно и как надо делать.
Проектирование, о котором ты говоришь, либо утопия, дибо маразм. Невозможно гарантированно продумать весь АПИ в деталях от начала и до конца на всю разработку. Если ты всё смог продумать, значит ты - гений. Но это утопия. К ней можно только приближаться, используя опыт (накопленный при разработке ОС) и интуицию. Рано или поздно столкнёшься, что либо что-то придумано не так, как надо, тогда это надо менять, либо чего-то не хватает. Если мы жёстко вцепимся в первоначальный план, невзирая на его недостатки, получится маразм.
Под проектированием следует понимать не план или график работ. Это совсем-совсем другое. Проектирование - это глобальная схема проекта, в которой ты чётко понимаешь:
- его состав;
- назначение и функции каждого модуля;
- интерфейс, предоставляемый каждым модулем;
- взаимодействие всех модулей друг с другом.
Проект может и должен меняться с учётом всех новых и перспективных обстоятельств, пока он не сдан в эксплуатацию. Задача грамотного проектирования заключается не столько в том, чтобы сделать законченный проект до начала кодирования, сколько в том, чтобы сделать проект,
который не пришлось бы менять на этапе эксплуатации, потому что именно такие переделки самые дорогостоящие. Самое грамотное проектирование заключается в том, чтобы заложить возможность максимально безболезненного изменения даже на этапе эксплуатации. А небольшие проекты вполне можно держать в голове и в "записках сумасшедшего". Полноценная документация нужна при работе в команде или сопровождении другими разработчиками. Частичная документация нужна, если планируются длительные перерывы в работе над проектом.