All streams
Search
Write a publication
Pull to refresh
27
0.1
Михаил @Flammar

Java (+Javascript) fullstack developer

Send message
Скоро по подозрению на оскорбление социальной группы «депутаты Государственной Думы» заблокируют сайты с ОС Android…
«Товарищ Сталин!
Произошла чудовищная ошибка.»…
Их искать труднее.
Я на тему разбивания уже существующего большого проекта на модули… я наблюдал и участвовал слегка… геморрой ещё тот…
Это ж Гугл, у него к каждому юзеру индивидуальный подход…
А вы сами пробовали? или хотя бы участвовали? или хотя бы наблюдали?
Кстати, если бы писали в машинных кодах для Электроники БК-0010 (процессор K1801BM1A, в котором не было команд умножения), то такая оптимизация была бы более чем уместной.
Что лучше — в два-три раза больше более «понятно написанного» кода или в два-три раза меньше кода, который делает то же самое, но менее «понятно написанного»? Вопрос.
По моему опыту, для инспектирования кода на языке Java гайдлайн номер ноль — это инспектировать в IDE. Иначе от инспектирования кода вреда будет больше, чем пользы, и лучше его вообще не делать или делать максимально быстро и формально, если уж распорядок требует. Выявить без IDE в новом коде какую-нибудь существенную ошибку, которую до этого не выловил компилятор, практически нереально.
Удобоваримый код — это прекрасно, но данную «вкусняшку» очень сложно реализовать в рыночных условиях труда, когда очень важно «урвать кусок рынка».
Рыночный сектор вообще не может существовать без постоянной подпитки из нерыночного;-) На рынке надо писать сразу быстро и хорошо. Учиться и тренировать можно в общем только вне рынка;-)
[Opdyke, William F. Refactoring Object-Oriented Frameworks. Ph.D. thesis. University of Illinois at Urbana-Champaign. — 1992] и [Opdyke, William F. Refactoring Object-Oriented Frameworks. Ph.D. thesis. University of Illinois at Urbana-Champaign. — 1992] — это, как видно даже из названия, тезисы кандидатских диссертаций;-).

[Opdyke, William F.; Johnson, Ralph E. «Refactoring: An Aid in Designing Application Frameworks and Evolving Object-Oriented Systems». Proceedings of the Symposium on Object Oriented Programming Emphasizing Practical Applications (SOOPPA). ACM. — 1990] — это, по данным того же источника, «The first known use of the term „refactoring“ in the published literature». Там же: "Martin Fowler's book Refactoring: Improving the Design of Existing Code[3] is the canonical reference."

Так что до Фаулера рефакторингом как серьёзной темой практически не занимались. «Code Complete» появился сильно раньше книги Фаулера.
Экономят память, занимаемую переменными…
Рефакторится или выкидывается и переписывается — это уже смотря по обстоятельствам…
Что лучше — в два-три раза больше более «понятного» кода или наоборот?
гораздо больше проблем с оптимизацией там, где изначально пытались «оптимизировать».
Тоже стоит запомнить и усвоить…
Кто из «великих» (в одном из недавних переводов на Хабре) говорил, что самый хороший код он видел в провалившихся стратапах?..
Будет ли это «будущее» — ещё не понятно. DRY, KISS и прочие красивые слова экономят время только тогда, когда требуют мало времени для применения, т.е. сидят уже в подкорке. Если их применение требует больших усилий, то они его больше тратят, чем экономят.

Стоит ли их применять — зависит от квалификации программистов.
Ага, шаблон дизайна «потом вернуть переменную обратно».
По-моему, тесты и «rely on compiler» — это правила не столько рефакторинга, сколько Continuous Integration и XP вообще.
Ну да, пока неудачное разделение проекта на модули в пару-тройку кликов мышкой улучшить нельзя…

Information

Rating
4,000-th
Location
Санкт-Петербург, Санкт-Петербург и область, Россия
Date of birth
Registered
Activity