LINUX.ORG.RU
ФорумTalks

Легаси код это

 


0

1

the special problem of legacy code is that it was never designed to be testable. ... So before unit testing, you need to refactor the code to make it more testable.

However, in order to refactor safely, you must have unit tests to verify that you haven't broken anything with your changes

Итого имеем проблему курицы и яйца.

Вывод: легаси код - это тот код, который нужно выкинуть. И переписать заново. И никаких рефакторингов и юнит тестов.

Что об этом думает Физерс?

UPD: Решил не Ъшничать и пройти по ссылке, а там обсуждение книги Физерса и в цитируемом ответе:

The book teaches you how to break out of this catch by making the absolute minimal, safest changes to the code just to enable the first unit tests.

ТС, ты вбрасываешь или тупишь?

winlook38 ★★
()
Последнее исправление: winlook38 (всего исправлений: 1)

Вывод: легаси код - это тот код, который нужно выкинуть. И переписать заново.

Обычно, это практически невозможное дело.

praseodim ★★★★★
()

Эх, вот не попадались тебе железки, для которых модули под kernel 2.x писаны. Вот это жесть!

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

Или под win 3.1/ms dos, плюс математическая обработка, детальное описание которой потерялось или не существовало никогда. Переписывай заново.

Или например, где-то в 2008 кажется году были открыты исходные коды движка OCR cuneiform. Ну-ну, с нуля переписать. Переписывай. Ага :)

Почти все что смогли сделать за это время - только портировать под линукс и написать GUI к нему. При том в принципе даже книжки и статьи по OCR были выложены на сайте, теоретически по ним можно было повторить его.

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

под win 3.1/ms dos

Такое железо просто выбрасывается, ибо тупо устарело.

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

Или анально огорожено. У нас так ПО для работы с датчиком Шака-Гартманна огородили: даже USB-ключ запилили, чтобы мы куда-нибудь это ПО не сбагрили. Зато теперь у меня есть, чем заняться, если кончатся идеи: надо написать свободный аналог этой штуки. Заодно этот аналог будет делать именно то, что нам нужно, а не какую-то фигню непонятную.

При том в принципе даже книжки и статьи по OCR были выложены на сайте, теоретически по ним можно было повторить его.

У меня маленькая мечта: реализовать все операции, которые у Гонсалеса-Вудса описаны. Ведь странная штука: все давным-давно известно, а нормальной библиотеки нет (жирная openCV не в счет, т.к. ее сишный интерфейс — это издевательство над людьми!).

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

Такое железо просто выбрасывается, ибо тупо устарело.

Новое может стоить миллионы баксов, которых нет и не будет. (Интересно, что в «ужасные 90-е» они еще иногда находились на науку)

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

Тьфу-тьфу, у нас такой жести нет. И ПЗСки раз в 1-2 года покупаются, и аппаратура обновляется, даже новая постоянно создается... Правда, встречаются иногда гении, которые покупают железку, предварительно не удостоверившись, что она будет работать. А потом эти гении бегают, вопрошая, как же заставить работать железку, для которой вантузоидные дрова кончаются на хрюнделе, а линуксовые — на второядре... А мне — шабашечка ☺

Eddy_Em ☆☆☆☆☆
()

Вывод: легаси код - это тот код, который нужно выкинуть. И переписать заново. И никаких рефакторингов и юнит тестов.

Сразу видно джуниора)

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

holuiitipun
()

Аккуратно рефакторить тебе никто не мешает.

легаси код - это тот код, который нужно выкинуть. И переписать заново.

Ну-ну.

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

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

praseodim ★★★★★
()

However, in order to refactor safely

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

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

Что делать, если в легаси - монолитная лапша?

Тоже самое + страдать.

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

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

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

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

Значит QA что-то делают не так.

Ну и под затрагиваемоей частью я имею ввиду маленькие кусочки (классы и функции), а не целые модули.

holuiitipun
()
Последнее исправление: holuiitipun (всего исправлений: 1)
Ответ на: комментарий от holuiitipun

чувак, я типа участвовал в доработке проекта на поха-пе 4, написаннм немецкими ацуби в 2002-м году. Лапшекод. HTML, PHP, CSS, JS в одном файле. Партнерка. Нихрена денег не приносит. Ничего не понятно, что с ним делать.

Ну я пытался с ним что-то сделать, сначала хотя бы в функции завернуть. Ну или Smarty хотя бы. Ага щаз - пионерия с барабаном. У них стандартом является Zend, а не Smarty.

Ну короче сейчас ни сайта, ни фирмы не существует.

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

участвовал в доработке проекта на поха-пе 4, написаннм немецкими ацуби в 2002-м году. Лапшекод. HTML, PHP, CSS, JS в одном файле.

С таким лучше вообще не связываться)

holuiitipun
()

Legacy код — это код без тестов. Если ты сейчас напишешь новый код без теста, он уже будет legacy.

Интересно, как ты собираешься выкидывать и переписывать код 20-летней давности, в котором миллионы строк кода и всё это как-то работает?

eugeno ★★★★★
()

Ну в принципе правильно.

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

Ну не все же сразу выкидывать. По частям.

drull ★☆☆☆
()

Ох уж эти «rewrite all the things!». Порой 200 милионов строк неподдерживаемого legacy не так то и просто выкинуть.

FAA вон уже 20 лет пытается переписать код, которому 60 лет, а сырцы утеряны.

ref: http://www.gao.gov/products/AIMD-98-138R

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

ТС, ты вбрасываешь или тупишь?

Посмотри его предыдущие треды. Удивляюсь что ТС до сих пор кто-то может воспринимать всерьёз.

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