Здравствуйте, snaphold, Вы писали:
J>>Вот поподдерживаешь такое "решение" лет пять, и сам потом нам расскажешь S>Если программист нормально верстал и писал вменяемый код, а главное проверял, что получилось, то в чем минусы?
Кэп: в исходном коде баг. Копипасты X+Y штук, код в каждом файле менялся неоднократно. Удачи
Как всегда, первое правило при внесении пожеланий, рацухи и т.д.: подумать о том, что будет, если оно исполнится. А то потом начинается "но идея-то была хорошая…"
Здравствуйте, snaphold, Вы писали:
S>Вот иногда нужно наклепать кучу однотипных репортов, в которых отличается только таблца с данными и немного фильтры. S>Какой смысл писать верстку страници и серверный код с нуля, если верстку чуть подправить и изменить вызов процедуры с параметрами?
Вот поподдерживаешь такое "решение" лет пять, и сам потом нам расскажешь
Здравствуйте, jazzer, Вы писали:
J>Здравствуйте, snaphold, Вы писали:
S>>Вот иногда нужно наклепать кучу однотипных репортов, в которых отличается только таблца с данными и немного фильтры. S>>Какой смысл писать верстку страници и серверный код с нуля, если верстку чуть подправить и изменить вызов процедуры с параметрами?
J>Вот поподдерживаешь такое "решение" лет пять, и сам потом нам расскажешь
Если программист нормально верстал и писал вменяемый код, а главное проверял, что получилось, то в чем минусы?
Здравствуйте, TK, Вы писали:
TK>Так надо использовать промышленные средства для copy-paste — генерация кода, шаблоны и т.п
Это не copy-paste, это обобщённое решение. А то щас и inline-функцию или разворачивание цикла в копипаст запишем
Здравствуйте, Sinix, Вы писали:
TK>>В идеале тесты еще и кто-то написать должен. И кто дает гарантию что тесты покрыли все возможные вариации? т.е. куча проблем там, где можно было просто добавить еще чуть нового кода S>Так не про юнит-тесты речь. Для отчетов достаточно сравнения с валидным образцом, несложно.
Зависит от того, как данный отчет получается. В зависимости от реализации это может быть полноценный интеграционный тест, а не банальный Assert.IsTrue
Если у Вас нет паранойи, то это еще не значит, что они за Вами не следят.
Вот иногда нужно наклепать кучу однотипных репортов, в которых отличается только таблца с данными и немного фильтры.
Какой смысл писать верстку страници и серверный код с нуля, если верстку чуть подправить и изменить вызов процедуры с параметрами?
S>Вот иногда нужно наклепать кучу однотипных репортов, в которых отличается только таблца с данными и немного фильтры. S>Какой смысл писать верстку страници и серверный код с нуля, если верстку чуть подправить и изменить вызов процедуры с параметрами?
DRY-принцип.
"Легко говорить правду. Не нужно помнить, кому, где, когда и что соврал."
У всего есть плюсы и минусы. Если сравнить копипасту с каким-то обобщённым решением:
1. Копипаста проще для понимания. Хорошо подходит для слабых программистов, которые не могут сделать грамотное обобщённое решение.
2. Копипасту быстрее написать до какого-то числа копипаст, дальше будет быстрее обобщённый код.
3. Обобщённое решение позволяет быстрее вносить изменения в общий код.
4. В обобщённом решении будет меньше багов.
Итого: если в команде сильные разработчики, если число копипаст достаточно большое, если планируются доработки этого кода, если важно отсутствие багов, лучше делать обобщённое решение. В противном случае копипаста будет оптимальней.
Здравствуйте, snaphold, Вы писали:
S>Какой смысл писать верстку страници и серверный код с нуля, если верстку чуть подправить и изменить вызов процедуры с параметрами?
Ну толсто же. Хоть бы пример похитрее придумал.
Переубедить Вас, к сожалению, мне не удастся, поэтому сразу перейду к оскорблениям.
Здравствуйте, snaphold, Вы писали:
S>Вот иногда нужно наклепать кучу однотипных репортов, в которых отличается только таблца с данными и немного фильтры. S>Какой смысл писать верстку страници и серверный код с нуля, если верстку чуть подправить и изменить вызов процедуры с параметрами?
Самый кайф при копипасте — это когда при мерже двух веток (или явном наложении диффа, что в результате то же самое) точного попадания на нужные номера строк из другой ветки не получается, а неточное выбирает другой идентичный длинный кусок кода. Искать потом концы можно оооочень долго.
Знаю одного товарища, который частично отличающиеся const-метод и не const-метод в C++ считает копипастой. А потому оставляет только const-методы, а в коде все усеяно бессмысленными const_cast<_>. Вот, так бывает.
Здравствуйте, Sinix, Вы писали:
J>>>Вот поподдерживаешь такое "решение" лет пять, и сам потом нам расскажешь S>>Если программист нормально верстал и писал вменяемый код, а главное проверял, что получилось, то в чем минусы?
S>Кэп: в исходном коде баг. Копипасты X+Y штук, код в каждом файле менялся неоднократно. Удачи
Так надо использовать промышленные средства для copy-paste — генерация кода, шаблоны и т.п
В случае копипасты: поправил баг, перегенерил отчеты. отчет поменялся — надо провести повторное тестирование, не менялся — делать ничего не надо.
В случае без коапипасты: поправил баг, код является базовым для X+Y отчетов. И какие теперь из них надо перетестировать? Удачи
Если у Вас нет паранойи, то это еще не значит, что они за Вами не следят.
Здравствуйте, TK, Вы писали:
TK>Так надо использовать промышленные средства для copy-paste — генерация кода, шаблоны и т.п
Согласен. Плюс, в идеале нужны тесты на билд-сервере, тогда и не надо будет отслеживать поменялось-нет. Благо, для отчётов дифф сделать как раз несложно.
Здравствуйте, Sinix, Вы писали:
TK>>Так надо использовать промышленные средства для copy-paste — генерация кода, шаблоны и т.п
S>Согласен. Плюс, в идеале нужны тесты на билд-сервере, тогда и не надо будет отслеживать поменялось-нет. Благо, для отчётов дифф сделать как раз несложно.
В идеале тесты еще и кто-то написать должен. И кто дает гарантию что тесты покрыли все возможные вариации? т.е. куча проблем там, где можно было просто добавить еще чуть нового кода
Если у Вас нет паранойи, то это еще не значит, что они за Вами не следят.
Здравствуйте, dsorokin, Вы писали:
D>Знаю одного товарища, который частично отличающиеся const-метод и не const-метод в C++ считает копипастой. А потому оставляет только const-методы, а в коде все усеяно бессмысленными const_cast<_>. Вот, так бывает.
Здравствуйте, TK, Вы писали:
TK>В идеале тесты еще и кто-то написать должен. И кто дает гарантию что тесты покрыли все возможные вариации? т.е. куча проблем там, где можно было просто добавить еще чуть нового кода
Так не про юнит-тесты речь. Для отчетов достаточно сравнения с валидным образцом, несложно.