Столкнулся тут с проблемой придумать имя методу.
Есть некий метод
public string GetString(string str)
{
// Тут некое преобразование строки str.
str = str.Replace(";", ",");
// Тут еще некие манипуляции над str и возврат новой строки.
}
Дело в том, что метод используется в куче мест с 2004 года. И никто не помнит зачем сделана замена ; на ,. А сейчас понадобилось делать все тоже, что и в этом методе, но без такой замены. Решил сделать копию метода и убрать оттуда эту замену. Но вот вопрос, как назвать новый метод? По идее замена там скорее всего изначально была не нужна, но убирать в исходном месте очень опасно, так как может выстрелить в непредсказуемом месте.
PS. Пока остановился на названии GetString1
public string GetString(string str, bool needReplace)
{
// Тут некое преобразование строки str.if (needReplace)
str = str.Replace(";", ",");
// Тут еще некие манипуляции над str и возврат новой строки.
}
Здравствуйте, Spiceman, Вы писали:
S>PS. Пока остановился на названии GetString1
ИМХО тогда уже лучше GetStringEx(). Ну, а если по уму, то я бы GetString() переименовал в GetStringWithReplace(), а новый бы назвал освободившимся GetString().
[ posted via RSDN@Home 1.1.4 stable SR1 r568, accompanied by silence ]
S>Столкнулся тут с проблемой придумать имя методу. S>Есть некий метод
S>
S>public string GetString(string str)
S>{
S> // Тут некое преобразование строки str.
S> str = str.Replace(";", ",");
S> // Тут еще некие манипуляции над str и возврат новой строки.
S>}
S>
S>Дело в том, что метод используется в куче мест с 2004 года. И никто не помнит зачем сделана замена ; на ,. А сейчас понадобилось делать все тоже, что и в этом методе, но без такой замены. Решил сделать копию метода и убрать оттуда эту замену. Но вот вопрос, как назвать новый метод? По идее замена там скорее всего изначально была не нужна, но убирать в исходном месте очень опасно, так как может выстрелить в непредсказуемом месте.
Как это в непредсказуемом? Разве нельзя найти все использования этого метода?
S>PS. Пока остановился на названии GetString1
Здравствуйте, Spiceman, Вы писали:
S>Дело в том, что метод используется в куче мест с 2004 года. И никто не помнит зачем сделана замена ; на ,. А сейчас понадобилось делать все тоже, что и в этом методе, но без такой замены. Решил сделать копию метода и убрать оттуда эту замену. Но вот вопрос, как назвать новый метод?
Здравствуйте, Spiceman, Вы писали:
S>PS. Пока остановился на названии GetString1
(1) варианты GetStringForFucking, GetFuckingString (в зависимости от того, где будет использоваться строка).
(2) Если строка будет использована в нескольких местах, то лучшее ее как-то обозвать, ну и будет GetDNAString или как придумаешь
(3) Можно использовать дополнительный параметр по умолчанию (или перегрузку): GetString(string str, bool fuckingFormat), но тут надо помнить, что если fuckingFormat будет усиленно развиваться и меняться, то можно будет утонуть во всех этих флажках и условиях.
Здравствуйте, Temoto, Вы писали:
S>>По идее замена там скорее всего изначально была не нужна, но убирать в исходном месте очень опасно, так как может выстрелить в непредсказуемом месте. T>Как это в непредсказуемом? Разве нельзя найти все использования этого метода?
По месту использования ничего сказать нельзя, так как отформатированная строка возвращается наружу и используется уже в другой системе. А они могли уже зашиться, что приходить будет ",", а не ";".
S>>PS. Пока остановился на названии GetString1 T>Стиль сохранён. Хороший вариант.
Всем спасибо. Больше всего понравилось название GetFuckingString.
А вообще как вы в таких случаях поступаете? В книгах по кодированию, рефакторингу и прочих написаны достаточно тривиальные вещи, которые и так понятны. Типа название надо давать говорящее и не длинное, а если не получается, значит надо разбивать функцию на части.
А здесь legacy code который уже 6 лет на продуктиве. И единственный вариант — продублировать код.
M>Интересная практика. Пробую применить дальше и получаю набор функций
M>
M>public int GetInt(int i)
M>public double GetDouble(double d)
M>
M>Реально нравится ?
Придираетесь к словам? Каюсь, не точно написал название функции в первом сообщении. Но на суть это не влияет. Нужно было написать GetXxxString, где Xxx примерно описывает, какую именно строку нужно получить. Вопрос был в том, как назвать новую функцию, которая является точной копией первой за исключением одной строки кода.