Loading...
direwolf avatar direwolf 13 Точки

[Useful Info] Едно интересно откритие за рефакторирането на кода

Ново откритие твърди, че рефакторирането на кода не подобрява качеството му. Какво мислите? :D

Линк към статията: http://www.itworld.com/article/2891140/study-finds-that-refactoring-doesn-t-improve-code-quality.html

0
Общи приказки 04/03/2015 23:32:42
RoYaL avatar RoYaL Trainer 6849 Точки
Best Answer

FALSE!

Истината е, че четох измежду редовете, тъй като ме изгубиха много от рано, но това което ми направи впечатление е, че "study finds" и, че "4,500 lines of C#code ... by students". 

Значи, това проучване може и да показва, че 10 маймуняка, които са написали 4500 реда код (това ми е седмичната доза код, която пиша), не им се изплатило времето за рефакторинга после. Ами, нормално! Същото като отборните ни работи по КПК. Направете играта Бикове и крави да спазва КПК и ООП принципите - еми да, стана 4к реда код и тя. Няма какво да се добави по нея повече. Абсолютно излишно е.

Виж, друго щеше да е ако "практиката" показваше, че на 150 000 реда код, не се изплаща рефакторирането. Само, че подобна статия май не съществува? :) Работил съм с много crappy codebase's и от опит мога да кажа, че всеки час рефакториране си е струвал. Рефакторирал съм дори свой код, който съм го писал ужасно, просто защото виждам, че ще стигна задънена улица с този начин или защото вече съм я стигал.

Наскоро в един проект си пренаписах около 10к реда процедурен код с последните практики, които съм научил или смятам за правилни и работата ми след това по този код се отприщи доста. И го направих не защото "яката работа, рефакторинг ООП, етц...", а защото това което трябваше да направя върху тези 10к реда код, беше почти невъзможно по начина, по който бяха написани.

P.S.: Самата статия ми изглежда като някаква закачка повече, от колкото като абсолютно сериозна :)

5
04/03/2015 21:22:16
Filkolev avatar Filkolev 4482 Точки

Препоръчвам ти да обърнеш по-голямо внимание на коментарите под статията. Самото проучване е несериозно и като обхват, и като методология. Както си пише в статията няма никакви статистически значими заключения.

0
direwolf avatar direwolf 13 Точки

Добре, явно не съм изразил правилно иронията си към статията. Все пак се радвам, че мислите така :)

1
RoYaL avatar RoYaL Trainer 6849 Точки

Трябва да се хранят такива автори просто ;-D

0
direwolf avatar direwolf 13 Точки

Ами.. В случая ако трябва да се вярва на статията - бих нахранил този, който преподава на онези студенти и "учените", които правят проучването. "Refactoring code doesn’t make it run faster" U don't say.. Единственото вярно нещо можеби от целия текст, ама напълно неоснователно 

0
04/03/2015 21:38:02
vladislav.karamfilov avatar vladislav.karamfilov 1123 Точки

@direwolf, и това не е вярно :D В много от случаите рефакторирането води до подобрения в производителността, защото имаш възможност да направиш една операция по-бърза чрез използването на по-добра хитрина. ;)

0
cherokee avatar cherokee 146 Точки

Мисля, че е достатъчно да се погледне къде е проведено проучването и да се погледне на картата коя държава е северен съсед през малко вода (то от другите страни са само рибите). Веднага се разбира, че рефакторирането не се изплаща за тази георграфска точка, защото обикновенно ще отнеме 3-4 пъти повече време от самото написване на първоначалният код.

 

0
05/03/2015 15:35:02
dsmilyanov avatar dsmilyanov 237 Точки

Мисля, че е хубаво при подобни статии, да се погледне източника. А той е съвсем legit, 15-странички PDF, в които достатъчно добре (поне според мен) е описан експеримента и заключенията.

Прочетете целия пейпър, абстрахирайте се от статията. Дори в самото заключение на проучването си пише, че резултатите биха могли да бъдат опровергани, защото sample-a, който са ползвали за самото проучване е достатъчно малък. Също така (сами са си го написали) проучването би било по-пълно, ако се повтори в индустрията, ползвайки "industry level matured source code".

Тъй че - прави са хората. В scope-а, в който е правено проучването - рефакторирането не оказва влияние върху "качеството" на кода.

TL;DR - Прочетете целия paper, после да си говорим.

0
Можем ли да използваме бисквитки?
Ние използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Можете да се съгласите с всички или част от тях.
Назад
Функционални
Използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Използваме „сесийни“ бисквитки, за да Ви идентифицираме временно. Те се пазят само по време на активната употреба на услугите ни. След излизане от приложението, затваряне на браузъра или мобилното устройство, данните се трият. Използваме бисквитки, за да предоставим опцията „Запомни Ме“, която Ви позволява да използвате нашите услуги без да предоставяте потребителско име и парола. Допълнително е възможно да използваме бисквитки за да съхраняваме различни малки настройки, като избор на езика, позиции на менюта и персонализирано съдържание. Използваме бисквитки и за измерване на маркетинговите ни усилия.
Рекламни
Използваме бисквитки, за да измерваме маркетинг ефективността ни, броене на посещения, както и за проследяването дали дадено електронно писмо е било отворено.