- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
template <typename T, typename = std::enable_if_t<std::is_floating_point<T>::value>>
inline void
_getAttr(const IAttributes& attrs, int idx, double& number)
{
if (attrs.has(idx))
{
const IValueString& attr = attrs.get(idx);
number = std::stod(std::string(attr.c_str(), attr.length()));
}
}
Dummy00001 03.03.2017 19:15 # 0
roman-kashitsyn 03.03.2017 19:33 # 0
В том смысле, что горе-кресто-оптимизаторы пытаются навернуть что-то умное, но на самом деле получается просто вжик?
Dummy00001 03.03.2017 19:44 # 0
подобно тому как все начинающие начинают с "какие все тупые! я ща тут замучу генерик архитектуру на плагинах на которой можно будет написасть всё! ВСЁ! и как все идиоты со стажем еще до этого не догадалить? наверное они просто все тупые." "гибкие архитектуры" и "плагины" выглядят умно и круто, а на самом деле в 90% случаев не нужны, жутко избыточны, работают криво - или вообще не работают. case in point: mirinda.
barop 03.03.2017 19:47 # 0
А с другой стороны я постоянно вижу: "тут сложно что-то генерализировать" / "всего три использования" / "код сложный" и в итоге одно и тоже написано семь раз, и везде немного по разному.
Dummy00001 03.03.2017 20:03 # 0
если код одинаковый - это еще не значит что это дупликация.
если код одинаковый и отвечает идентичным требованиям - только тогда это дупликация.
ты плюешься на семь раз тоже самое писаное. я чаще плююсь на то что народ генерик замутят, а потом начинается как в басне про рака, щуку и лебедя, потому что генерик куче требований отвечает, но ни одному требованию не отвечает полноценно. код дуплицированый удалять нааааамного проще чем удалять воркараунды/врапперы/адаптеры которыми обрастают генерик реализации.
barop 03.03.2017 20:10 # 0
Разумеется я говорю про код,который выражает одну и ту же логику.
Тобишь одно и тоже знание написано в нескольких местах несколько раз.
Но я согласен с тем что пафосный фреймворк, не отвечающий при этом твоим требованиям это в тыщу раз хуже чем тупой бойлерплейт который точно так же им не отвечает
Dummy00001 03.03.2017 20:28 # 0
> Разумеется я говорю про код,который выражает одну и ту же логику.
> Тобишь одно и тоже знание написано в нескольких местах несколько раз.
в этом и твоя ошибка.
одинаковая логика != одинакавые требование.
логика это внутрее - это просто реализация. требования они происходят из вне - это ожидания клиентов по отношению к используемой реализации.
даже если реализация в текущий момент времени случилась идентичной, это не означает что ожидания клиентов тоже стали одинаковыми.
barop 03.03.2017 20:35 # 0
Если нам известно что при оплате картой Visa надо давать скидку 20%, или что при регистрации человека в системе надо слать ему sms, или конфиги лежат в папке %FOO%/configs/, или что доступ к сервису Bar требует привилегии "админ" то очевидно что эти знания должны быть написаны один раз, а не несколько. Вот про них я и говорю.
Antervis 03.03.2017 23:04 # 0
У нас так в трех проектах использовались разные версии одного и того же кода. Один по полной отрефакторили, второй похоронили и я пишу с нуля, третий на очереди.
А вообще, имо, хороший код легко переиспользовать не меняя и расширять, не ломая.
barop 03.03.2017 23:05 # 0
Open/Closed principle)
guestinho 03.03.2017 23:16 # 0
gostinho 03.03.2017 20:27 # +1
guest 04.03.2017 11:42 # −1
guest 04.03.2017 12:02 # −1
guest 04.03.2017 15:25 # 0