Russian Qt Forum
Ноябрь 26, 2024, 16:15 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Рефакторинг  (Прочитано 2594 раз)
Igors
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 11445


Просмотр профиля
« : Февраль 01, 2014, 13:01 »

Добрый день

Что-то нашло (бывает) - решил почитать книжку. Мартин Фаулер Рефакторинг Улучшение существующего кода. Вот она. Не стану врать что якобы добросовестно изучил страницу за страницей, чтение было, ну, достаточно "по диагонали"  Улыбающийся В целом книга мне понравилась, получил удовольствие узнав что вещи что я давно делаю - оказывается известны и даже одобряются. Ну и что-то новое узнал - надеюсь будет полезным.

Однако не видно большой помощи в работе (как раз сейчас очередной рефакторинг). Если терпения хватит - можете посмотреть первый пример из книги (на жабе но ясно). Возможно пример вполне хорош, НО - при этом предполагается что мы каким-то образом вникли во все подробности существующих классов/архитектуры. И вот тогда ... Возьму на себя смелость утверждать - при работе с достаточно большим чужим кодом этого не произойдет. Попросту не удастся во все вникнуть. Мы можем примерно выучить функционал, типа "этот кусок/класс делает то-то". Мы можем худо-бедно рулить старым кодом, хоть это часто противоречит рефакторингу - объем старого кода растет, а не уменьшается.

Ну и конечно, самый простой подход "Сделано через ж.., нужно переписать все с нуля!" - не катит, нет N лет для его реализации. Да, и
Цитировать
Так а в чем вопрос ?
А нет никакого вопроса  Улыбающийся- просто мне интересно это обсудить. Есть мысли/опыт - поддержите разговор

Спасибо
« Последнее редактирование: Февраль 01, 2014, 13:04 от Igors » Записан
Igors
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 11445


Просмотр профиля
« Ответ #1 : Февраль 03, 2014, 16:33 »

Вот, на мой взгляд, блестящее описание проблемы. Ссылка сейчас недоступна, поэтому цитирую
Цитировать
Г е н е р а л ь н ы й (в отдел кадров). Уволить этих бездарей! Найдите мне нормальных специалистов!

…спустя три недели новые специалисты сидят на рабочих местах и изучают проект.

J u n i o r d e v e l o p e r (про себя). Как тут все сложно… Жизни не хватит чтобы понять как все это работает… Меня наверно уволят…

S e n i o r d e v e l o p e r (громко и недовольно). Кто учил этих мудаков программировать?!! Нет, ну вы посмотрите что они тут пишут!

Г л а в н ы й а р х и т е к т о р (задумчиво). Если бы это была лошадь, я бы посоветовал ее пристрелить…

T e a m l e a d e r (нервно). Спокойно, мужики. Заказчик хочет чтобы мы просто кое-что тут дописали. Оставим все как есть, просто доделаем то, что требуется.

P r o j e c t m a n a g e r (обращаясь к разработчикам). Проект конечно тяжелый, но мы ведь справимся! Тем более мы будем вести разработку по самой лучшей методологии! Нам поможет XP! Scrum! TDD! (нужное подчеркнуть).

Г л а в н ы й а р х и т е к т о р (поймав project manager-а в курилке). Ты ведь понимаешь, что проект уже бьется в предсмертных конвульсиях. Его нужно полностью переписать.

P r o j e c t m a n a g e r (Главному архитектору). Да все я понимаю, только кто мне это позволит? Знаешь сколько уже потрачено бабла на этот проект? Попробуй объяснить генеральному, что нужно все переделать, я посмотрю насколько быстро ты отыщешь живописное местечко под названием «нах#й».

P r o j e c t m a n a g e r (Оставшись один в курилке, глядя в окно). Вот начнем мы писать проект заново. И облажаемся. Я же во всем виноват буду, с меня же шкуру спустят. Ну его нафиг. А так, если сроки и завалим, то я всегда смогу свалить все на то, что проект уже был полным говном, когда достался нам.

…спустя полгода.

Г е н е р а л ь н ы й (в отдел кадров). Уволить этих бездарей! Найдите мне нормальных специалистов!
Улыбающийся

Остроумно, но вызывает сомнения "нужно полностью переписать". Как архитектор себе это представляет? Создадим новый, чистый проект и ... что? Откуда новые программисты возьмут имеющийся ф-ционал, о котором имеют слабое понятие (если вообще имеют)? Охаять сделанное и предложить "все с нуля" много ума не надо. Хрен это с бугра, а не архитектор.

Я считаю "прогнуться" под существующий проект придется. Сначала надо научиться делать то что уже делали. Да, это часто будет уродливо, кол-во говнокода будет расти, по крайней мере некоторое время. Хорошо, допустим этот этап пройден. С чего мы начнем реальное переписывание? И как бум переписывать?
Записан
OKTA
Гость
« Ответ #2 : Февраль 07, 2014, 12:34 »

Я считаю, что если код изначально верно написан, то нет смысла его переписывать. Зачем? Тем более, целиком его не поняв, не перепишешь, а поняв целиком и переписывать не надо, только если тюнинговать))
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.261 секунд. Запросов: 22.