Здравствуйте, Undying, Вы писали:
U>Т.е. рефакторинг ты не используешь? Т.к. рефакторинг как раз означает модифицирование кода с целью уменьшения имеющихся хаков (в частности "лишних" наследований) к минимуму.
Гы. ПК у нас С++-программист до мозга костей. А рефакторинг и С++ пока, что плохо совместимы. Так что плоды прогресса ему знакомы только по слухам.
Здравствуйте, VladD2, Вы писали:
U>>Т.е. рефакторинг ты не используешь? Т.к. рефакторинг как раз означает модифицирование кода с целью уменьшения имеющихся хаков (в частности "лишних" наследований) к минимуму.
VD>Гы. ПК у нас С++-программист до мозга костей. А рефакторинг и С++ пока, что плохо совместимы. Так что плоды прогресса ему знакомы только по слухам.
Может быть, ты имел в виду автоматизированный рефакторинг? Обычный рефакторинг "ручками" совместим с с любым ЯП, если, конечно, этот ЯП совместим с программированием
Здравствуйте, mihoshi, Вы писали:
M>Может быть, ты имел в виду автоматизированный рефакторинг? Обычный рефакторинг "ручками" совместим с с любым ЯП, если, конечно, этот ЯП совместим с программированием
Это закат солнца вручную. И тут вполне с ПК можно согласиться. Ручная модификация объемного кода — это верный способ зашиться и нафигачить ошибок. То ли дело в Яве или Шарпе... выделил участок кода... выбрал вариант рефакторинга и через несколько секунд пол проекта изменено без единой ошибки. Крысотыща!
... << RSDN@Home 1.1.4 beta 3 rev. 207>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
VD>То ли дело в Яве или Шарпе... выделил участок кода... выбрал вариант рефакторинга и через несколько секунд пол проекта изменено без единой ошибки. Крысотыща!
Хм, ты это о чем? Если ты о переименовании чего-либо, то с этим и в С++ проблем нет. Компилятор сам ткнет носом в каждое место, где надо поменять идентификатор. Какие тут могут быть ошибки?
А если ты о рефакторингах типа выделения метода, то я не понял, с чего это поменяется пол проекта?
Здравствуйте, VladD2, Вы писали:
VD>Здравствуйте, mihoshi, Вы писали:
M>>Может быть, ты имел в виду автоматизированный рефакторинг? Обычный рефакторинг "ручками" совместим с с любым ЯП, если, конечно, этот ЯП совместим с программированием
VD>Это закат солнца вручную. И тут вполне с ПК можно согласиться. Ручная модификация объемного кода — это верный способ зашиться и нафигачить ошибок.
А юнит-тесты на что?
VD>То ли дело в Яве или Шарпе... выделил участок кода... выбрал вариант рефакторинга и через несколько секунд пол проекта изменено без единой ошибки. Крысотыща!
Я делал рефакторинг в достаточно крупных проектах на Delphi, без каких-либо инструментов автоматизации. Было, конечно, достаточно много ручной работы, но вполне приемлемо. Так что осутствие автоматизированных средств — не повод отказываться от рефакторинга.
Здравствуйте, serg_mo, Вы писали:
VD>>Это закат солнца вручную. И тут вполне с ПК можно согласиться. Ручная модификация объемного кода — это верный способ зашиться и нафигачить ошибок.
_>А юнит-тесты на что?
Они как-то связаны с рефакторингом? Или мне нужно будет писать юнит тесты чтобы проверить качество рефакторинга?
VD>>То ли дело в Яве или Шарпе... выделил участок кода... выбрал вариант рефакторинга и через несколько секунд пол проекта изменено без единой ошибки. Крысотыща!
_>Я делал рефакторинг в достаточно крупных проектах на Delphi, без каких-либо инструментов автоматизации.
Сочувствую.
_> Было, конечно, достаточно много ручной работы, но вполне приемлемо.
Это приемлимость из серии раков на безрыбье.
_> Так что осутствие автоматизированных средств — не повод отказываться от рефакторинга.
Это повод, чтобы не рассматривать рефакторин в качестве основы творческого процесса, а рассматривать его как неотвратимое мучение.
... << RSDN@Home 1.1.4 beta 3 rev. 207>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
VladD2 -> "Re[31]: Мэйнстрим vs. Самосовершенствование "
VD>>>Это закат солнца вручную. И тут вполне с ПК можно согласиться. VD>>>Ручная модификация объемного кода — это верный способ зашиться и VD>>>нафигачить ошибок.
_>>А юнит-тесты на что?
V> Они как-то связаны с рефакторингом? Или мне нужно будет писать V> юнит тесты чтобы проверить качество рефакторинга?
Преложи еще способ достоверно убедиться, что ты не накосячил при
рефакторинге?
Здравствуйте, VladD2, Вы писали:
_>>А юнит-тесты на что?
VD>Они как-то связаны с рефакторингом? Или мне нужно будет писать юнит тесты чтобы проверить качество рефакторинга?
На мой взгляд, делать рефакторинг кода без наличия юнит-тестов довольно опасно. Да, можно сказать, что юнит-тесты проверяют качество рефакторинга — что в процессе рефакторинга не было внесено багов. Конечно, автоматизированные средства помогают проводить рефакторинг грамотно, но, во-первых, далеко не все рефакторинги автоматизированы, а во-вторых, даже самые простые из них могут быть источником ошибок.
_>> Было, конечно, достаточно много ручной работы, но вполне приемлемо.
VD>Это приемлимость из серии раков на безрыбье.
В конце концов, не все IDE имеют такие средства, а некоторые языки вообще IDE не имеют.
VD>Это повод, чтобы не рассматривать рефакторин в качестве основы творческого процесса, а рассматривать его как неотвратимое мучение.
Не знаю, у меня никогда такого ощущения не было. Наоборот, всегда было приятно видеть, как в процессе даже ручных манипуляций код становится лучше
Здравствуйте, hrg, Вы писали:
hrg>Преложи еще способ достоверно убедиться, что ты не накосячил при hrg>рефакторинге?
Провести его с помощью средств гаратнитующих это. Собственно об этом я с самого начала и говорил.
Более того. Тут уже не раз поднимался вопрос о применимости юнит-тестов для разных областей программирования и вроде как пришли к общему мнению, что юнит-тесты пригодны далеко не везде. Например, в создании компиляторов они довольно бесполезны. А вот автоматизация и обычное тестирование дает хорошие результаты.
... << RSDN@Home 1.1.4 beta 3 rev. 207>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Здравствуйте, serg_mo, Вы писали:
_>На мой взгляд, делать рефакторинг кода без наличия юнит-тестов довольно опасно.
Я вот как-то делаю.
_>В конце концов, не все IDE имеют такие средства, а некоторые языки вообще IDE не имеют.
Ну, это их проблемы. Я выбираю языки и среды в которых рефакторинг имеется. Ручной рефакторинг — это суровая необходимость нежели оправданный выбор. И лучше чтобы суровостей было по меньше.
... << RSDN@Home 1.1.4 beta 3 rev. 207>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
VladD2 -> "Re[33]: Мэйнстрим vs. Самосовершенствование "
hrg>>Преложи еще способ достоверно убедиться, что ты не накосячил при hrg>>рефакторинге?
V> Провести его с помощью средств гаратнитующих это. Собственно об этом V> я с самого начала и говорил.
т.е. ты настолько доверяешь этим средствам, что готов не проверять за нимим
код?
V> Более того. Тут уже не раз поднимался вопрос о применимости V> юнит-тестов для разных областей программирования и вроде как пришли к V> общему мнению, что юнит-тесты пригодны далеко не везде. Например, в V> создании компиляторов они довольно бесполезны. А вот автоматизация и V> обычное тестирование дает хорошие результаты.
При таком подходе тестеры ласты склеят при частом рефакторинге
Yury Kopyl aka hrg | Любой служащий должен строго выполнять свои
обязанности. А практически каждый занимается на работе чем хочет. (с)
Паркинсон
Здравствуйте, VladD2, Вы писали:
VD>Я вот как-то делаю.
Виртуоз . Но гарантий корректности работы программы после рефакторинга все равно дать не сможешь
_>>В конце концов, не все IDE имеют такие средства, а некоторые языки вообще IDE не имеют.
VD>Ну, это их проблемы. Я выбираю языки и среды в которых рефакторинг имеется. Ручной рефакторинг — это суровая необходимость нежели оправданный выбор. И лучше чтобы суровостей было по меньше.
Здравствуйте, VladD2, Вы писали:
VD>Провести его с помощью средств гаратнитующих это. Собственно об этом я с самого начала и говорил.
Ну, автоматизированы далеко не все рефакторинги, к сожалению.
VD>Более того. Тут уже не раз поднимался вопрос о применимости юнит-тестов для разных областей программирования и вроде как пришли к общему мнению, что юнит-тесты пригодны далеко не везде. Например, в создании компиляторов они довольно бесполезны. А вот автоматизация и обычное тестирование дает хорошие результаты.
Не буду спорить, компиляторы не разрабатывал. И я бы не стал полностью доверять "обычному" (т. е. ручному? ) тестированию, т. к. тестеры — это люди, и как все люди имеют право на ошибку, неточность, порой даже небрежность. Кроме того, вряд ли тестеры смогут проверить всю функциональность программы. Как уже говорилось в этой ветке — повесятся.
.
_>Не буду спорить, компиляторы не разрабатывал. И я бы не стал полностью доверять "обычному" (т. е. ручному? ) тестированию, т. к. тестеры — это люди, и как все люди имеют право на ошибку, неточность, порой даже небрежность. Кроме того, вряд ли тестеры смогут проверить всю функциональность программы. Как уже говорилось в этой ветке — повесятся.
В том то все и дело, что есть задачи где делать тесты повесишся, но можно взять готовые. Для компилятора таким тестом является компиляция больших (чужих) проектов. Тоже вроде как автоматизированный тест.
... << RSDN@Home 1.1.4 beta 3 rev. 207>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
VladD2 -> "Re[35]: Мэйнстрим vs. Самосовершенствование "
hrg>>При таком подходе тестеры ласты склеят при частом рефакторинге
V> Представь себе не клеятся. Иногда можно делать десяток мелких V> рефакторингов за день.
V> Более того. Я часто пишу код по схеме — продавливаем проблему как V> выходит, а затем причесываем код рефакторингом. Очень эффективно V> выходит.
VladD2 -> "Re[35]: Мэйнстрим vs. Самосовершенствование "
V> Здравствуйте, serg_mo, Вы писали:
_>>Виртуоз . Но гарантий корректности работы программы после _>>рефакторинга все равно дать не сможешь
V> Дык гарантии дают только в сбербанке. 98-ой понминшь?
Я конечно могу ошибаться, но если рассмотреть проблему со всех сторон, а
также принять во внимание всевозможные поправки, то с определенной долей
вероятности, учитывая все факторы, можно сделать предположение, что оппонент
увел разговор от главной темы (гонит ).
Yury Kopyl aka hrg | Любой служащий должен строго выполнять свои
обязанности. А практически каждый занимается на работе чем хочет. (с)
Паркинсон
Здравствуйте, VladD2, Вы писали:
_>>Не буду спорить, компиляторы не разрабатывал. И я бы не стал полностью доверять "обычному" (т. е. ручному? ) тестированию, т. к. тестеры — это люди, и как все люди имеют право на ошибку, неточность, порой даже небрежность. Кроме того, вряд ли тестеры смогут проверить всю функциональность программы. Как уже говорилось в этой ветке — повесятся.
VD>В том то все и дело, что есть задачи где делать тесты повесишся, но можно взять готовые. Для компилятора таким тестом является компиляция больших (чужих) проектов. Тоже вроде как автоматизированный тест.