ставить их на деятельность, которая не принесет прибыли, не повысит качества кода, не продвинет функционал, при этом создаст проблемы со сборкой системы и наверняка посадит новые баги
что это за рефакторинг, который не улучшает качество кода и порождает новые баги. мне честно говоря все равно куда снимать, откуда, и прочие детали. ибо определение выше относится к рефакторингу хз каким местом. вот мне и стало интересно - это у вас в компании так описывают внутрикорпоративный рефакторинг? или просто вы им никогда не занимались и не знаете, что это?
Ra$cal пишет:
то это за рефакторинг, который не улучшает качество кода и порождает новые баги.
Если рефакторинг проводится не полный, то иногда получается так, что при изменении одного модуля, начинают сыпаться остальные, завязанные на него. Если нет юнит тестов, то вообще жопа полная, ибо тогда единственный выход (кроме вернуть как было) это провести полный рефакторинг с перетряской архитектуры и бизнес логики.
Ra$cal пишет:
или просто вы им никогда не занимались и не знаете, что это?
Всячески от этого дела открещиваюсь и без надобности сам никому не желаю. Есть жесткие правила по рефакторингу и оттачиванию модулей. Например вот если ты программист, отвечающий допустим за модуль отправки электронных писем, переписываешь свой модуль потому что тебе не нравится как оно взаимодействует с SMTP серверами. Так вот ты не имеешь никакого права менять АПИ, что ты предоставляешь коллегам. Сразу поясню: это включает в себя имена функций, переменных, их количество и выхлоп твоего модуля в целом во внешний мир. Обычно при переписывании кусков кода с изменением названия переменных, функций и прочего внешнего стаффа, ещё версии две три тянут за собой все функции со старым функционалом и именами. Если изменяется количество входных параметров, то значит эта функция по возможности перегружается, и везде выплёвываются deprecation уведомления.
Этот пример простецкий и высосан из пальца, а в жизни оно конечно всё иначе и сложнее на порядок.
ну никто в здравом уме рефакторинг делать без юнит тестов не будет. а про опубликованные интерфейсы да - их трогать нельзя. поддерживать, пока все пользователи модуля\класса не перейдут на новый интерфейс. но я говорю не только и не столько о рефакторинге, меняющем интерфейс. это вообще по большей части роль проектровщиков задать интерфейс. я говорю о рефакторинге класса\модуля, над которым работаешь, который просто делает его работу более прозрачной и более легкой для модификации. то бишь приватные и протектед методы ты вполне можешь менять, если только они не виртуальные, и не используются другими членами команды в производных классах.
зы: линукс такой линукс... хотя думаю в сорцах вендов тоже хватает таких комментов.
Если рефакторинг проводится не полный, то иногда получается так, что при изменении одного модуля, начинают сыпаться остальные, завязанные на него. Если нет юнит тестов, то вообще жопа полная, ибо тогда единственный выход (кроме вернуть как было) это провести полный рефакторинг с перетряской архитектуры и бизнес логики.
Все так и есть. Для сверхтяжелой системы полный рефакторинг - это полный абзац. Проще распродавать канцтовары сразу. Частичный же оправдан в отдельных обоснованных случаях. К примеру, если часть модулей писались еще под DOS, для их работы под win32 используются шлюзовые приблуды, плюс за счет многократных исправлений код существенно прибавил в весе, в т.ч. за счет повторения - тут не вопрос, желательно провести рефакторинг как только руки дойдут.
Ежели код работает адекватно, устраевает клиента и саппорт по всем показателям, но написан на VB6 - делать рефакторинг для него исключительно ради "обновления" языка разработки - бред. Даже если предположить что имеется свободный человеческий ресурс (что само по себе нонсенс) - радикальные изменения модулей, связанных с другими частями системы (к примеру ресурсами, инклюдами и т.п.) могут принести только лишние проблемы и никакой радости.
Так вот ты не имеешь никакого права менять АПИ, что ты предоставляешь коллегам.
Это простейший случай, который, в принципе, не слишком затруднительный. Другое дело, скажем, твой модуль использует какие-либо шары со смежными модулями, либо несколько. Они заточены под VB6, ты перелопачиваешь под .NET. В результате ты либо а). Создаешь дубль необходимых тебе ресурсов. В резульате все последующие изменения нужно синхронизировать в обоих ветках б). Тупо изменяешь ресурс и у твоих коллег что-то с треском отваливается
Это тоже топорный пример. Но в жизни всё не так, темнее ночь, дождливей лето...
Ra$cal
Я в очередной раз рекомендую тебе не разводить дискуссию на тему о которой вы не имеете представления. Ты уже достаточно выставил себя лолом, и продолжаешь плести лулзы. Я не намерен отвечать по нескольку раз на бессмысленные вопросы, учитывая что человек попросту не понимает элементарных вещей.
User Unknown
Бонус забавный, но
1. Все же локальные правки вряд ли можно считать рефакторингом.
2. Боюсь у нас бы за такие камменты вернули бы трудовую
LamerOnLine, да с тобой никто и не дискутирует. Повидали таких уже. Сначала порют чушь, что "рефакторинг не улучшает качество кода", а потом говорят что все дураки и не понимают сакрального смысла фразы, и что я то уже столько варюсь, а вы тут меня учите. Чсв такое чсв. Список твоих довод достовляет - "вы ничего не понимаете". И так после каждого перла. О чем уж тут с тобой спорить то.
Сначала порют чушь, что "рефакторинг не улучшает качество кода", а потом говорят что все дураки
На самом деле только дураки вырывают фразы из контекста. Или те кто дураком старательно прикидывается.
Не хотим вникать в тему - дело хозяйское, но уж тогда, будьте добры, не постить всякую ахинею.
"вы ничего не понимаете"
Ну что ж тут можно поделать, ведь объясняю я максимально просто - все равно не понимаем.
Потому что читаем через строчку или через две, чтобы выдернуть фразу, привести её не в тему и прилепить пару глупостей от себя.
да с тобой никто и не дискутирует
Ну ты же сам просил уточнить про рефакторинг в крупных компаниях, разве нет?
Я и UU пытались тебе разъяснить попроще (в основном UU, ибо меня это в прошлой теме достало).
Ты все равно не понимаешь. О чем уж тут с тобой спорить то.
в который раз с удовольствием констатирую что Вы - один из немногих вменяемых
Извернулся, подобрался и лизнул!
Ну и что, что мы построили двухэтажный дом без бетонного фундамента, а потом нарастили еще десять этажей и земля стала трескаться? Клиент увидит, что мы занимаемся какой-то фигней, а его дверь до сих пор синяя, а не зеленая, и быстренько переедет в другое здание.
Я был готов поверить в какие-то большие и серьезные проекты, но полная неспособность с твоей стороны указать на какие-либо метрики кода, совершенная неквалифицированность менеджмента (с твоих слов, по крайней мере), непонимание жизненного цикла ПО и даже просто пурга вместо названия методологии, с постоянным повторением "все тут сосунки" свидетельствует о ЧСВ over 9000 и несостоятельности, как программиста. Лечение: время, умные книжки и общение с умными людьми, которые смогут тебя выносить.
Про рефакторинг будете в другом посте переписываться.
Да не, пусть, в этом топике в самый раз.
Лучше нам скажи вот что: тебе принесли компьютер из ремонта? Покажи нам лучше свой антивирус!!! Народ ждет и волнуется. Заявлена такая программа, которой все давно ждали, а ее все нет...
Я думаю компьютер был не в ремонте, а на экспертизе в отделе К.
Сам автор нам теперь вряд ли что-нибудь скажет, потому что уже валит лес где-то на территории Сибири
Комп из ремонта забрал(заменили видеокарту), антивирус пока не доделал, но скоро объязательно скину. Сегодня ваще жестокая днюха была - был экзамен по географии. Из Новороссийска в сибирские леса не убегу-далеко.