LINUX.ORG.RU

как вы пишите программы?


0

0

Последнее время столкнулся с такой проблемой: необходимость едва ли не каждую итерацию перепроектировать существубщую структуру программы, из-за чего приходится проделывать много рутинной(и ведущей к ошибкам) работы.
Дело не столько в подходе к построению программы, сколько в постоянно изменяющихся требованиях и тут я ничего исправить не могу. Динамический типизированный язык здесь как будто добавляет проблем.
Вот, и у меня вопрос - что может помочь в таких постоянно меняющихся условиях?

★★

Не менять требования.

Так не бывает: требования меняются, а программу переписывать не надо.

Sancho_s_rancho
()

Юниттесты и почитать что-нибудь про рефакторинг. При использовании agile процесса перепроектирование и переписывание — нормальная практика.

PS личное мнение — хорошая поддержка IDE рефакторингов экономит очень много времени и нервов.

Legioner ★★★★★
()
Ответ на: комментарий от Legioner

да на каждом шагу бывает так , что приходится все переделывать на корню
например , есть большой проект с набором либ , который от времени разрастается
и вот при добавлении очередной либы вдруг выясняется , что она не стыкуется со старым интерфейсом , т.е. вообще
и приходится управляющий интерфейс переписывать
когда архитектор не-четко представляет себе контуры проекта , это неизбежно

kto_tama ★★★★★
()
Ответ на: комментарий от kto_tama

Всё на корню это плохо.

> и вот при добавлении очередной либы вдруг выясняется , что она не стыкуется со старым интерфейсом , т.е. вообще и приходится управляющий интерфейс переписывать

http://en.wikipedia.org/wiki/Adapter_pattern

> когда архитектор не-четко представляет себе контуры проекта , это неизбежно

Значит плохо организован сбор требований или взаимодействие между членами команды.

Legioner ★★★★★
()

> Динамический типизированный язык здесь как будто добавляет проблем.

> Вот, и у меня вопрос - что может помочь в таких постоянно меняющихся условиях?

Статически типизированный язык, вестимо.

Miguel ★★★★★
()
Ответ на: комментарий от Miguel

Изменить процесс сбора требований, к сожалению, сейчас не в моих силах.

>> Вот, и у меня вопрос - что может помочь в таких постоянно меняющихся условиях?

> Статически типизированный язык, вестимо.

Я здесь полный профан. Есть мысли, что статическая типизация поможет, но практики в этом у меня нет. Может быть, посоветуете какие-нибудь success stories?

bik ★★
() автор топика
Ответ на: комментарий от Miguel

> Статически типизированный язык, вестимо.

А вот и фанбои подтянулись. Статическая типизация только затрудняет рефакторинг, и в быдлохаскеле тоже. Капча waster.

anonymous
()
Ответ на: комментарий от anonymous

дело не в этом - я как раз стараюсь следовать принципам xp и tdd-программирования. проблема в другом - необходимо минимизировать частоту рефакторинга.

bik ★★
() автор топика
Ответ на: комментарий от anonymous

>Статическая типизация только затрудняет рефакторинг,

весьма спорно

>и в быдлохаскеле тоже.

o_O мальчик, больше никому это не говори

UrbanSerj
()

Я думаю, что использование тестов должно помочь ничего не сломать при изменении программы.

php-coder ★★★★★
()

>Последнее время столкнулся с такой проблемой: необходимость едва ли не каждую итерацию перепроектировать существубщую структуру программы

Похоже - чёрный логик. Зато, дай угадаю, у твоих программ приятный интерфейс, богатый функционал и, вообще, конечный пользователь доволен :)

...

У белых логиков другая беда. Внутренняя структура программ прозрачна, легко расширяема без изменения скелета программы, может успешно применяться годами, зато интерфейс лепится по принципу «абы было», юзеры недовольны вечно не проработанными мелочами и т.п. :)

KRoN73 ★★★★★
()

>как вы пишите программы?

Плохо я их пишу.

wfrr ★★☆
()
Ответ на: комментарий от KRoN73

Тревога, сектант-соционик детектед.

anonymous
()
Ответ на: комментарий от KRoN73

Не знаю насчет черных и белых логиков. Просто я немного разочаровался в "быстрой" разработке - слишком много времени уходит на рутину. Но замены с учетом нестабильных требованиях к разработчику я не вижу

bik ★★
() автор топика

> Вот, и у меня вопрос - что может помочь в таких постоянно меняющихся условиях?

"любая программа должна быть переписана три раза" (c) закон
от себя добавлю: а иногда и больше. если она реально полезна.

// wbr

klalafuda ★☆☆
()
Ответ на: комментарий от php-coder

ты самый обычный тупой долбодятел, а программы оплетенные тестами -- слон, идущий по проволоке под куполом цирка

anonymous
()
Ответ на: комментарий от bik

>Просто я немного разочаровался в "быстрой" разработке - слишком много времени уходит на рутину.

Смотря что ты понимаешь под этим термином. Если использование готовых конструкций - то тут, как раз, и важна изначальная проработка системы в целом, позволяющая легко расширять не только функционал, но и концепции. Сейчас у меня процентов 20 времени разработки конечного продукта занимает лишь банальное описание таблиц БД в ORM («M»+«C» в MVC-терминах),процентов 70 - написание HTML-шаблонов («V»), вообще, вёрстка как таковая, включая её тестирование. Оставшиеся 10% делятся на всякие непредвиденные сложности, расширение и рефакторинг ядра (системе от рождения уже лет семь-восемь, за это время она сменила 4 языка программирования :D).

Мне страшно представить, как бы я по-чёрному вкалывал, не имея своего фреймворка в нынешней реинкарнации. Когда-то 90% времени уходило на ковыряние с кодом, а суммарный объём временных затрат был раз в 10 больше. То, что я сейчас пишу за пару-тройку часов, раньше я бы писал рабочую неделю.

KRoN73 ★★★★★
()
Ответ на: комментарий от the_moon

>А можно по подробней про черный и белый логик или ссылку почитать? Интересно.

Гуглить по слову «соционика». Нынешних ресурсов для начинающих не знаю, тем более, что много быдлопопсы на эту тему развернулось...

...

Кстати, попытался погуглить свои старые записи по этому вопросу, буквально по теме не нашёл, но, тем не менее, интересно посмотреть на споры ЧЛ-консерватора и БЛ-прогрессивиста :D - http://balancer.ru/socionics/forum/2005/12/03/topic-35772--Kontseptsii-progra...

Там же в форуме, если интересно будет, можно вопросы позадавать. Форум почти вымер, но читают его многие. Просто находится не в рамках основной линии других форумов :D

KRoN73 ★★★★★
()

Как я пишу программы? Как и все: через жопу!

anonymous
()

> Дело не столько в подходе к построению программы, сколько в постоянно изменяющихся требованиях

Следует более чётко разделить код по уровням абстракций, чтобы он вообще соответствовал постановке задачи. В таком случае понадобится менять код не в большей степени чем изменились требования.

bugmaker ★★★★☆
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.