OberonCore
https://forum.oberoncore.ru/

Рефакторинг
https://forum.oberoncore.ru/viewtopic.php?f=8&t=1609
Страница 1 из 2

Автор:  Info21 [ Четверг, 21 Май, 2009 18:53 ]
Заголовок сообщения:  Рефакторинг

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

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

У меня пятиклассники процедуры из кода выделяли, еще на зная циклов.

Понятно, что автоматизировать какие-то подобные трансформации может быть и полезно. Теоретически.

Но вот толстенная и дорогая книга Фаулера. И что?

Цитата:
... каждый программист с опытом работы больше трех лет доходит до 80% критериев сам. Слишком много воды с претензией на формализованность. Например, очевиднейший рефакторинг "Переименование метода", который можно сформулировать одним предложением "переименуйте метод и все ссылки на него", каким-то макаром занимает целых две страницы. ...


Очередная раздутая "парадигма"?

Автор:  Vlad [ Четверг, 21 Май, 2009 19:26 ]
Заголовок сообщения:  Re: Рефакторинг

Info21 писал(а):
Но вот толстенная и дорогая книга Фаулера. И что?


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

Автор:  Info21 [ Четверг, 21 Май, 2009 20:10 ]
Заголовок сообщения:  Re: Рефакторинг

Вы о чем.

Автор:  igor [ Пятница, 22 Май, 2009 05:41 ]
Заголовок сообщения:  Re: Рефакторинг

Info21 писал(а):
Или, чтобы программеров подразнить: опять программеры с понтами америку открыли.
Вы правы, для тех кто мыслит понятиями, а не терминами, -- ничего нового. Но есть и положительные моменты: эти понятия получили свои названия, а сами методы рефакторинга систематизированы. Для тех кто не знаком с этим -- проще изучать, для остальных -- проще общаться на эту тему. Я, например, только что использовал термин "методы рефакторинга", фраза получилась лаконичной и всем понятно о чём речь.

Автор:  igor [ Пятница, 22 Май, 2009 05:56 ]
Заголовок сообщения:  Re: Рефакторинг

Немного добавлю. Сам по себе рефакторинг, вроде, не объявляется "новой парадигмой". Это всего лишь "пунктик" в экстремальном программировании. А вот последнее действительно преподносится как парадигма. Прошу разъяснить, если я что-то напутал.

Автор:  Info21 [ Пятница, 22 Май, 2009 08:22 ]
Заголовок сообщения:  Re: Рефакторинг

igor писал(а):
... Сам по себе рефакторинг, вроде, не объявляется "новой парадигмой". Это всего лишь "пунктик" в экстремальном программировании.
Кажется, сам Фаулер подчеркивал, что рефакторинг независим от XP (но не наоборот).

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

Меня, наверное, больше интересует объем понятия рефакторинг (предположим, что некая сущность за понятием есть).
А также то, насколько полезна его поддержка, скажем, в Эклипсе -- что-то меня не впечатлило описание.
Полностью автоматизировать, вроде, не получается -- и даже опасно.
А раз так, то почему не обойтись компилятором. По крайней мере в Оберонах.

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

Автор:  igor [ Пятница, 22 Май, 2009 09:21 ]
Заголовок сообщения:  Re: Рефакторинг

Info21 писал(а):
Меня, наверное, больше интересует объем понятия рефакторинг (предположим, что некая сущность за понятием есть).
А также то, насколько полезна его поддержка, скажем, в Эклипсе -- что-то меня не впечатлило описание.
По поводу Эклипса ничего сказать не могу, а вот по поводу полезности рефакторинга есть кое-какие соображения.

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

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

Имхо, вестИ такие проекты без рефакторинга -- это всё-равно, что программировать без циклов.
Info21 писал(а):
Парадигмой он, может, и не объявляется, но книжки толстенные, признаки секты/культа в наличии, и кто-то, как всегда, делает деньги.
Соглашусь, что есть ощущение какой-то раздутости. Может авторы стараются этим рейтинги себе как-то повысить? :) Более уместной была бы бОльшая сдержаность, ведь, как отмечалось уже, по сути ничего принципиально нового, только названия мудрёные понапридумывали.
Имхо, это вообще черта американцев. Русский мужик просто скажет: "Я тут вчерась придумал как внедрять чужеродные объекты в документ". А американец тоже всё это изобретёт, затем обязательно придумает название, присвоит себе все права, а потом скажет: "Я разработал технологию OLE". Думаю, что также и с рефакторингом. Немного непривычно для нашего менталитета.

Автор:  Сергей Губанов [ Пятница, 22 Май, 2009 10:34 ]
Заголовок сообщения:  Re: Рефакторинг

Info21 писал(а):
Но вот толстенная и дорогая книга Фаулера. И что? Очередная раздутая "парадигма"?
У Фаулера есть несколько таких же толстых, дорогих, но тривиально-пустых книг.
Фаулер либо не честный писатель либо "недалёкий человек" (здесь "честный" - в смысле Р. Фейнмана).

Автор:  Валерий Лаптев [ Пятница, 22 Май, 2009 11:45 ]
Заголовок сообщения:  Re: Рефакторинг

Мое ИМХО по поводу конкретно рефакторинга.
Как я уже в форуме упоминал (не обратили внимания - жаль), заканчивается процесс развития информационных технологий специалистами других специальностей. Заканчивается период мастеров-одиночек и небольших "мануфактур", в которых частенько собственные методы "производства" разрабатывались и применялись. Начинается саморазвитие информационных технологий как инженерной дисциплины.
Обратите внимание, что начинается с классификации. Классификация паттернов проектирования, классификация рефапкторингов текста, классификация рефакторингов разработки через тестирование, классификация паттернов xUnit, паттернов архитектуры корпоративных приложений, паттернов интеграции, паттернов рефакторинга баз данных. По каждой классификации книжка есть... :)
Это необходимый процесс в начале развития любой инженерной дисциплины. По мере развития что-то отпадет, что-то просто превратится в тривиальные вещи, которые по умолчанию будут сделаны. Кто сейчас помнит слово "реентерабельность"? А ведь в свое время я изучал, как написать реентерабельную процедуру.
Если взять строительство, то например, есть классификация грунтов. Прикиньте, в начале развития строительного дела нафиг не нужна была эта классификация - строили шалаши на любом грунте. А избу построить - уже почву смотреть надо.
Но в процессе развития потребовалась детальная классификация. Ибо перешли на промышленные методы "производства" строений.
Да в любой сфере есть аналогичная классификация: автомобили, пароходы, одежда, например. Когда шкуры были - никому в голову не приходило расклассифицировать... :)

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

Автор:  TAU [ Пятница, 22 Май, 2009 11:56 ]
Заголовок сообщения:  Re: Рефакторинг

Info21 писал(а):
По поводу рефакторинга.
Впечатление наукообразной тривиальности

Цитата:
... каждый программист с опытом работы больше трех лет доходит до 80% критериев сам. Слишком много воды с претензией на формализованность. Например, очевиднейший рефакторинг "Переименование метода", который можно сформулировать одним предложением "переименуйте метод и все ссылки на него", каким-то макаром занимает целых две страницы. ...

+1!

Автор:  TAU [ Пятница, 22 Май, 2009 12:06 ]
Заголовок сообщения:  Re: Рефакторинг

Info21 писал(а):
Парадигмой он, может, и не объявляется, но книжки толстенные, признаки секты/культа в наличии, и кто-то, как всегда, делает деньги

Точно. Так называемая "корпоративная культура" (или даже не знаю, как назвать - "наукой" язык не поворачивается - то, чему на тренингах дрессируют). Уровень техникума, в лучшем случае. Тьфу...

Автор:  Валерий Лаптев [ Пятница, 22 Май, 2009 12:11 ]
Заголовок сообщения:  Re: Рефакторинг

Цитата:
... каждый программист с опытом работы больше трех лет доходит до 80% критериев сам. Слишком много воды с претензией на формализованность. Например, очевиднейший рефакторинг "Переименование метода", который можно сформулировать одним предложением "переименуйте метод и все ссылки на него", каким-то макаром занимает целых две страницы. ...


"Каждый строитель с опытом работы более ... (подставить нужное) доходит до 80% критериев (например, типов грунтов) сам".
Так и было на заре строительных технологий. Ну и что? Сейчас это учат в вузах.

Автор:  Info21 [ Пятница, 22 Май, 2009 13:27 ]
Заголовок сообщения:  Re: Рефакторинг

Валерий Лаптев писал(а):
Как я уже в форуме упоминал (не обратили внимания - жаль), заканчивается процесс развития информационных технологий специалистами других специальностей.
Oбратил 8)

Валерий Лаптев писал(а):
Обратите внимание, что начинается с классификации. ... Это необходимый процесс в начале развития любой инженерной дисциплины.
Про классификацию -- это правильно, и не только инженерной, просто хочется сухой остаток.

Валерий Лаптев писал(а):
Но шаг в развитии ИТ - важнейший
Я бы сказал, необходимый шажок :)

Автор:  Info21 [ Пятница, 22 Май, 2009 13:29 ]
Заголовок сообщения:  Re: Рефакторинг

Валерий Лаптев писал(а):
Сейчас это учат в вузах.
Так и я для спец.курса, какие минимальные слова сказать :)

Просто всплыло сейчас в связи с редактированием переводов документации.

Автор:  Валерий Лаптев [ Пятница, 22 Май, 2009 13:40 ]
Заголовок сообщения:  Re: Рефакторинг

Info21 писал(а):
Валерий Лаптев писал(а):
Сейчас это учат в вузах.
Так и я для спец.курса, какие минимальные слова сказать :)

Просто всплыло сейчас в связи с редактированием переводов документации.

Минимально, я думаю - пару страничек хватит. Обозвать термин, назвать первоисточники, привести конкретный пример двух рефакторингов: простого и посложнее. И отослать к многочисленной литературе.

Автор:  Info21 [ Пятница, 22 Май, 2009 14:32 ]
Заголовок сообщения:  Re: Рефакторинг

Валерий Лаптев писал(а):
Info21 писал(а):
Валерий Лаптев писал(а):
Сейчас это учат в вузах.
Так и я для спец.курса, какие минимальные слова сказать :)

Просто всплыло сейчас в связи с редактированием переводов документации.

Минимально, я думаю - пару страничек хватит.
Пара страниц -- многовато... разве у Фаулера поучиться и на >800 страниц курс фигачить...

Автор:  Rifat [ Пятница, 22 Май, 2009 15:58 ]
Заголовок сообщения:  Re: Рефакторинг

Меня тоже поражают книги по 800-1200 страниц. После прочтения понимаешь, что все что написано, можно было уложить в 100-200 страницах, но "не переливая из пустого в порожнее".

Как то читал книги про корпоративную культуру фирмы Toyota. Сама книжка была страниц 500, но не об этом речь. Там говорилось, что в фирме Toyota есть такое правило, что описание, какого-нибудь рац. предложения или изменения в конструкции или даже спецификации для рабочего должно умещаться на 2-х листах A4. И еще говорилось о том, что предпринимаются попытки ограничить размеры данных документов 1-м листом A4.

Вот где "краткость сестра таланта". Вот с кого пример надо брать.

Автор:  TAU [ Воскресенье, 24 Май, 2009 01:23 ]
Заголовок сообщения:  Re: Рефакторинг

Rifat писал(а):
Меня тоже поражают книги по 800-1200 страниц. После прочтения понимаешь, что все что написано, можно было уложить в 100-200 страницах, но "не переливая из пустого в порожнее"

Смотря какие книги. "Войну и мир" сокращать я бы не рекомендовал.

Кстати, есть вот еще контрпример - отличная книга "Графы в программировании" Касьянова и Евстигнеева, 1104 стр. - но ничего пустого в ней нет.

Автор:  Борис Рюмшин [ Понедельник, 25 Май, 2009 08:09 ]
Заголовок сообщения:  Re: Рефакторинг

Книжки книжкам рознь....
Но 80 % литературы по компьютерным наукам содержат в себе 80% воды.
С другой стороны писать компактно, ёмко и понятно надо уметь...

Автор:  Валерий Лаптев [ Вторник, 26 Май, 2009 07:51 ]
Заголовок сообщения:  Re: Рефакторинг

Борис Рюмшин писал(а):
Книжки книжкам рознь....
Но 80 % литературы по компьютерным наукам содержат в себе 80% воды.
С другой стороны писать компактно, ёмко и понятно надо уметь...

Компактно и емко - это программа... :)

Страница 1 из 2 Часовой пояс: UTC + 3 часа
Powered by phpBB® Forum Software © phpBB Group
https://www.phpbb.com/