0xd34df00d
11.05.2011 07:00 Azoth_primary
Господа, а как вообще обсуждать код при распределенной разработке? Увидел тут, например,
template<typename InputIterator, typename Function>
bool any (InputIterator first, InputIterator last, Function f)
{
for (; first != last; ++first)
if (f (*first))
return true;
return false;
}
и сразу захотелось написать что-то типа
// а почему бы не выразить any через std::find_if (first, last, f) != last
перед методом, но ведь такое обсуждение в комментах — это хуита.

29 comments
recommend
bookmark
subscribe
мейл-лист тебе зачем?
Я чо-та не уверен, что тот разработчик на него подписан. Да и смысл получать эту ерунду всяким мейнтейнерам?
послать ему письмо/IM/whatever лично?..
ну и по сабжу, ты, typically enough, переусложняешь.
Почему это я переусложняю?
функция работает, причём работает корректно. Мало того, она _уже написана_. Что ты улучшишь этим исправлением? Слишком низкий порог вхождения?
так перед принятием коммита сделай это
Чем меньше велосипедов, тем лучше. Собственные велосипеды надо выражать через STL'ные.
Олсо, в glibc иные велосипеды из STL вполне умеют распараллеливаться, например. Не уверен, что find_if в данном случае распараллелится, но это просто хорошая практика и rule of thumb.
аргумент выглядит слабо, фанатично.
И если уж на то пошло, то все плюсы и весь STL — велосипеды. Принципиально новых (и одновременно практичных) вещей по сравнению с сишкой там нет. Читни http://yosefk.com/c++fqa/, если ещё не.
Да, потому что это rule of thumb — стараться реюзать код и выражать собственные вещи через стандартные, а не изобретать каждый раз с нуля.
но не до такой же степени. Брутальный цикл for в абсолютно приватной реализации функции в джвадцать раз проще и понятнее, чем функциональщина с лямбдами (not exactly the case). По крайней мере в плюсах оказывается так, что циклы писать и читать умеют все, а пользоваться переусложнённым и в черезчур большей части дублирующим STL — НЕ все.
Да, и если посмотреть на велосипедизм с STL с другой стороны, то можно задать и такой вопрос: а как так вообще получилось, что такая красивая, обобщенная и всесторонне полезная функция any(Iterator, Iterator, Function) отсутствует в STL? Да они же сами склоняют программистов крутить педали! Нет, ну серьёзно, STL выглядит... странно. Странно, бесполезно, дублирующе и переусложнённо.
STL выглядит как стройный набор гов^W кирпичей для построения своих алгоритмов. Хотя, впрочем, многих полезных вещей там действительно нет искаропки. Пойду добавлю any, apply_if и так далее в utility-библиотеку личкрафтов.
дедфуд, ты, кстати, как плюсофаг, не думал попилить буст, пообсуждать C++0x?..
А насчет не до такой степени — да. Но как-то так получилось, что в личкрафтах и так не самый тривиальный код везде, и люди, неспособные это осилить, там не особо нужны.
Попилить буст хорошо, но я еще не осилил сорсы MPL/Fusion/Proto/Phoenix3, поэтому у меня БУГУРТ.
А чо там обсуждать в C++0x-то? Опять говна наворотили, концепты убрали, decltype() не qualified-id, вариадики уныловаты, с лямбдами хуита, ибо проблема фунарга не решена вообще никак, и так далее.
так блджад, смело и открыто им в щщи с вертушки же.
пиши в комментарии к code review что «reinventing teh wheel is the second root of all evil»
> комментарии к code review
А где их проводить-то ваще?
чтобы понять что делает эта функция — нужно прочитать пять строк кода, да ещё и убедиться что работает корректно. а чтобы прочитать find_if, нужно... <тут был самоповтор>.
а review board не прикручивается к гитхабу штоле?
Неа. А как?
там же вроде можно обсирать коммиты в коментах, по всем канонам.
а с review board их можно обсирать до коммита
Изменения товарища размазаны по разным коммитам, заебешься сопоставлять.
хз, я в гитхабе не силён, вот тут что-то нагуглилось: http://hookhub.appspot.com/ChipX86/hook/...
вот хомпэйдж, там что-то было вроде http://www.reviewboard.org/docs/codebase...
О, шпашибо, попробую поприкручивать.
я вообще удивлён что в гитхабе встроенного механизма ревью нет
Можно делать подстрочные комменты и обсуждать что-то в пулл-реквестах.