Форум
Философия программирования
Тема
Как правильно задавать вопросы
B
I
abc
U
X
3
X
3
H1
H2
H3
H4
H5
H6
Asm
C/C++
C#
Erlang
Haskell
IDL
Java
Lisp
MSIL
Nemerle
ObjC
OCaml
Pascal
Perl
PHP
Prolog
Python
Ruby
Rust
SQL
VB
Здравствуйте, netch80, Вы писали: N>Здравствуйте, oldjackal, Вы писали: N>>>Вы можете предложить другой метод изменения структуры программы в нужную сторону с сохранением всей известной функциональности? O>> Переписывать. По-старинке. Аккуратно, вдумчиво, ручками, с полным осознанием ответственности за последствия. Без всяких там автоматизированных тулзов, которые разом тонны кода перелопачивают. N>Я под рефакторингом подразумеваю все варианты преобразований с сохранением функциональности, не обязательно автоматом, поэтому мне такой праведный гнев просто неуместен. Но если бы был автомат - то применил бы и автомат. А почему так сразу "тонны" кода? Обычно, мне кажется, меняются только определённые места, и не делается незапрошенных прогонок по всему коду. O>> Есть, даже два: product branches и merge. Неоднократно уже наблюдал такую картину - приходит в проект новый team lead, весь из себя с горящими глазами, баззвордами во все стороны так и швыряется. И начинает его команда рефакторить фанатично все, что под руку подвернется. Причем, работает эта команда над какой-то одной частью функциональности, а в компании еще пятьдесят других команд, и код для всех общий. И только тогда, когда строго по регламенту, через месяц, все product branch-и в trunk сливают, до несчастных доходит, что за урод этот евангелист, и куда его надо послать. N>Знаешь, есть такая поговорка: дай дураку нефритовый стебель в руки, он и его сломает:) N>Тут больша виновата команда, что не одернула его. Потому что рефакторинг допустим и нужен, но только тогда, когда не предполагается таких вот мержей втихую в одном месте без корреляции с остальными. N>А ещё больше виновата контора в целом - что не контролирует процесс. O>> Что характерно, к приходу следующего евангелиста (уже в другую команду, их много, опытом делиться не научились как следует) история повторяется. N>Так виноват ли молоток, что им закручивают винты? Может, таки с людьми надо разобраться? O>> И это в ынтырпрайзе. В open source же все еще хуже. Приползает очередной такой юный фанатик Фаулера, правдами и неправдами получивший право коммита, и начинает радостно рефакторить (ради самого рефакторинга, без каких либо к тому показаний). Потом сотни или даже тысячи людей, работающие над своими патчами и регулярно rebase-ящие свои репозитории до trunk-а этого фанатика и его матушку склоняют на десятках разных языков и с разной степентю цинизма. Хорошо это? N>Нет, не хорошо. Но см. выше. N>Вы как-то очень странно относитесь именно к средствам. Вот Вам в качестве обратного примера - sendmail. Там явно сидят Ваши сторонники - 30 лет развития без единого рефакторинга. Почитайте код, например, getrequests(), sendall(), dropenvelope(), затем залезьте в alias.c. (Приготовьте противорвотное, пригодится.) Если бы были шнобелевские премии для кодеров, давно бы уже автор этого кода имел всю грудь в орденах. Может, надо всё-таки начать думать о том, что иногда надо и менять структуру, даже если кому-то придётся адаптироваться?
Теги:
Введите теги разделенные пробелами. Обрамляйте в кавычки словосочетания с пробелами внутри, например:
"Visual Studio" .NET
Имя, пароль:
Загрузить
Нравится наш сайт?
Помогите его развитию!
Отключить смайлики
Получать ответы по e-mail
Проверить правописание
Параметры проверки …