Рефакторинг и качество кода

zerkms

TDD infected
Команда форума
jonjonson
рефакторинг получится делать на нормально написанном коде. использование паттернов в том или ином виде - "гарантия" получения рефакторабельного кода.

[холивар-коммент]
 

cDLEON

Онанист РНРСlub
использование паттернов в том или ином виде - "гарантия" получения рефакторабельного кода.
Водительские права, в том или ином виде - "гарантия" попадания автомобиля в дырку на стоянке задом.
 

Angerslave

Новичок
zerkms
Добавить "умелое" перед "использование" и никакого холивора не будет :)
 

zerkms

TDD infected
Команда форума
Angerslave
даже "умелое использование" породит: "а что, если не использовать паттерны - то нельзя будет потом рефакторить код?"
даже несмотря на то, что рефакторинг подобной лапши будет лишь номинально рефакторингом, а по факту - продолжением процесса говнокодирования :)
 

Angerslave

Новичок
zerkms
Пихание паттернов куда ни попадя - куда большее зло, имхо.
 

zerkms

TDD infected
Команда форума
Angerslave
любой устойчивый подход к решению определённого класса задач можно назвать паттерном. т.о. вменяемый программист, наработавший за N лет некоторые типичные методики, использует паттерны в 9х% кода. совершенно не обязательно, чтобы его личные паттерны совпадали с общепринятыми, но, как показывает практика, вменяемые программисты переизобретают уже известные и распространённые :)
 

HraKK

Мудак
Команда форума
zerkms
вменяемые программисты переизобретают уже известные и распространённые :)
+100.
Чтение книги Patterns вызывало у меня, в основном, одну эмоцию "Ах, ток как это называется" :))
 

zerkms

TDD infected
Команда форума
когда домой приду, приведу цитату с #phpclub года 2005 на эту же тему :)
 

jonjonson

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

Рефакторить можно код без ООП.

использование паттернов в том или ином виде - "гарантия" получения рефакторабельного кода.
Не применение паттернов не является гарантией плохой улучшаемости кода.

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

Angerslave

Новичок
jonjonson
+1

zerkms
Ну да. Но они же не заморачиваются о том, чтобы весь код был основан на паттернах. Причём общепринятых и описаных в литературе. Понятно, что основные алгоритмы закладываются ещё в школе, основные структуры и конструкции закладываются в языке и т.п., но программировать - это ведь не просто подставлять паттерны, это черпать идеи в этих паттернах. То есть использовать паттерны, а не жить ими.
 

zerkms

TDD infected
Команда форума
Другими словами - любой код улучшаем.
видишь ещё в чём дело. рефакторинг - изменение кода без изменения функционала. для того, чтобы гарантировать неизменность функционала - используются тесты, функциональные и модульные. если у тебя нет тестов - то гарантировать неизменность ты не можешь (согласен, не сможешь и с тестами - но, от апологетов рефакторинга, - эта техника без тестов существовать не должна) => то что ты делаешь рефакторингом называться не может и не должно :)
ps: да, придираюсь к словам, ну а что поделаешь :)

Рефакторить можно код без ООП.
паттерны тоже не обязывают использовать эту парадигму :) паттерны - любые устоявшиеся подходы любой парадигмы программирования.

-~{}~ 12.01.09 13:03:

но программировать - это ведь не просто подставлять паттерны, это черпать идеи в этих паттернах. То есть использовать паттерны, а не жить ими.
а паттерн и не "подставишь". паттерн это не howto и не реализация. это подход.
а по поводу "черпать идеи" - безусловно, в любой внятной книжке по паттернам проектирования это обязательно озвучивается в самом начале.
 

jonjonson

Охренеть
рефакторинг - изменение кода без изменения функционала.
Безусловно
то что ты делаешь рефакторингом называться не может и не должно
Почему же? Если для определённого кода нет тестов, но есть субъективное определение его работоспособности владельцем, то вполне возможен рефакторинг опирающийся на него. :)

Мы живём в реальном мире, а не в комнате с агил девелоперами. Приходится работать с говнокодом. Да и сложность приложений разная.
 

zerkms

TDD infected
Команда форума
Angerslave
действительно - посты в оффтопике не учитываются. поэтому или переносим в раздел, где учитываются или мир :))))))))
 
Сверху