Здравствуйте, Dair, Вы писали:
D>Boost, насколько я с ним знаком на чужих примерах, прекрасно позволяет писать write-only код. В команде, всё же, полезно читать чужой код тоже.
На прошлой работе в проект куда я привил boost, я свободно читал то что писали другие программисты.
Конечно в этом проекте не использовалось так много библиотек из boost сколько использовал я в своих собственных, но ИМХО дело в опыте, который при частом использовании boost (также как stl например) приобретается быстро.
Здравствуйте, nen777w, Вы писали:
N>Походил тут по собеседованиям, почти везде НЕ используют boost. N>В прошлом проекте (на работе) я насильно привил boost и вроде никто не жаловался, в своих же проектах без boost никуда. N>Либе уже 1.50 скоро исполниться, а аргумент у всех один и тот же... "Если програмер который писал на boost уйдет в отпуск или уволится этот код будет сложно поддерживать другому програмеру". N>А на вопрос ну так что лучше писать свои велосипеды а потом там ловить баги, отвечают как то невнятно. N>В одной конторе спросили: "А если у вас забрать boost вы сможете писать код?", блин странные вопросы люди задают.
N>Я вот реально не понимаю, квалификации кадров не хватает что бы почитать документацию, которая кстати довольно хорошая, или просто лень?
На мой взгляд достаточно правильная позиция. Дело в том, что бустом пользуются обычно не из-за какой-то необходимости, а чтобы показать, мол, видите, какой я крутой! В результате эти крутые, как правильно вам в одном месте, самостоятельно ничего выполнить не могут. Во-вторых, там, где буст совершенно нет никакой необходимости использовать, они его испольуют, засоряя тем самым код. Я с этим неоднократно сталкивался, когда можно без всяких проблем использовать стандартные алгоритмы, а эти умники подключают заголовочные файлы буст, их билиотеки и пишут трудно-воспринимаемые на вид конструкции, так как их в стандарте нет. К тому же затем они испытывают серьезные проблемы при появлении либо новой версии компилятора, либо новой версии библиотеки буст, так как, вдруг, однаруживвают, что код перестает компилироваться.
Есть такой принцип в программировании, о котором часто забывают. Называется он KISS, и означает "делай проще, тупица"!
С>На мой взгляд достаточно правильная позиция. Дело в том, что бустом пользуются обычно не из-за какой-то необходимости, а чтобы показать, мол, видите, какой я крутой! В результате эти крутые, как правильно вам в одном месте, самостоятельно ничего выполнить не могут. Во-вторых, там, где буст совершенно нет никакой необходимости использовать, они его испольуют, засоряя тем самым код. Я с этим неоднократно сталкивался, когда можно без всяких проблем использовать стандартные алгоритмы, а эти умники подключают заголовочные файлы буст, их билиотеки и пишут трудно-воспринимаемые на вид конструкции, так как их в стандарте нет. К тому же затем они испытывают серьезные проблемы при появлении либо новой версии компилятора, либо новой версии библиотеки буст, так как, вдруг, однаруживвают, что код перестает компилироваться. С>Есть такой принцип в программировании, о котором часто забывают. Называется он KISS, и означает "делай проще, тупица"!
У меня есть проект у которого boost менялся еще с версии 1.34 и до сегодняшней 1.50 , и в котором используется много библиотеки из boost, но ни разу, вроде как, или я не помню уже (может быть один раз с boost::filesystem когда в какой то версии выкинули 1-ю), не было так что бы проект переставал компилится после обновления boost, максимум что нужно сделать это поменять единственный путь к инклюдам и статическим либам, ну и собрать новый boost.
Что я делаю не так?
Здравствуйте, Dair, Вы писали:
D>Boost, насколько я с ним знаком на чужих примерах, прекрасно позволяет писать write-only код. В команде, всё же, полезно читать чужой код тоже.
Здравствуйте, nen777w, Вы писали:
N>У меня есть проект у которого boost менялся еще с версии 1.34 и до сегодняшней 1.50 , и в котором используется много библиотеки из boost, но ни разу, вроде как, или я не помню уже (может быть один раз с boost::filesystem когда в какой то версии выкинули 1-ю), не было так что бы проект переставал компилится после обновления boost, максимум что нужно сделать это поменять единственный путь к инклюдам и статическим либам, ну и собрать новый boost.
У нас было что после обновления всё компилится, тока вот не работает нифига.
N>>У меня есть проект у которого boost менялся еще с версии 1.34 и до сегодняшней 1.50 , и в котором используется много библиотеки из boost, но ни разу, вроде как, или я не помню уже (может быть один раз с boost::filesystem когда в какой то версии выкинули 1-ю), не было так что бы проект переставал компилится после обновления boost, максимум что нужно сделать это поменять единственный путь к инклюдам и статическим либам, ну и собрать новый boost. Т>У нас было что после обновления всё компилится, тока вот не работает нифига.
Кстати, копался когда то внутрях вот такой известной онлайн игры Project Entropia (кстати на движке CryEngine2).
И судя по тому что там boost-а они используют много.
А проект прошу заметить не маленький, пользователей наверно больше мульйона это точно. И обновления довольно часто выходят.
Здравствуйте, Сыроежка, Вы писали:
С>когда можно без всяких проблем использовать стандартные алгоритмы, а эти умники подключают заголовочные файлы буст, их билиотеки и пишут трудно-воспринимаемые на вид конструкции, так как их в стандарте нет.
Особенно забавно это звучит в контексте бустовых библиотек перекочевавших в std::tr1 и C++11, а также грядущий std::tr2
C>Называется он KISS, и означает "делай проще, тупица"!
Это все хорошо, только вот понятие простоты у всех варьируется. Далеко за примером ходить не надо, даже на rsdn находятся C программисты для которых C++ сам по себе это ненужная сложность
Здравствуйте, nen777w, Вы писали:
N>Кстати, копался когда то внутрях вот такой известной онлайн игры Project Entropia (кстати на движке CryEngine2). N>И судя по тому что там boost-а они используют много. N>А проект прошу заметить не маленький, пользователей наверно больше мульйона это точно. И обновления довольно часто выходят.
А еще у смартфонов HTC, которые на стилусовой винде 6, есть оболочка Touch, которая умеет обрабатывать нажатия пальцев, типа как на айфоне. Там тоже буст в credits записан, и пользователей тоже дофига, ессно.
Здравствуйте, nen777w, Вы писали:
N>Кстати, копался когда то внутрях вот такой известной онлайн игры Project Entropia (кстати на движке CryEngine2). N>И судя по тому что там boost-а они используют много. N>А проект прошу заметить не маленький, пользователей наверно больше мульйона это точно. И обновления довольно часто выходят.
Дык на здоровье! Буст библа здоровая, одновременно 100% из неё наверное вообще никто никогда не использовал. Тем более для таких крупных либ как буст частенько используют практику фиксирования используемой версии. У нас было то же самое, но подорвались когда были вынуждены обновить, сторонняя нужная либа требовала более новую версию. В итоге сломалось вообще всё, гемору было капец.
Заметь, никто ж не выступает за запрет буста во всём мире. Народ говорит о том, что там бывают проблемы, которые порой перекрывают плюсы от использования буста.
Каждый проект решает сам для себя — надо ему буст или нет и в каком объёме.
Здравствуйте, Сыроежка, Вы писали:
С>Здравствуйте, nen777w, Вы писали: С>Есть такой принцип в программировании, о котором часто забывают. Называется он KISS, и означает "делай проще, тупица"!
Мало кто понимает истинное значение этой фразы. Обычно ею кидаются те, кто не понимает её смысл.
Здравствуйте, kaa.python, Вы писали:
KP>Здравствуйте, enji, Вы писали:
E>>У меня кросс-gdb для арма, из коробки тоже нету поддержки этой возможности. Однако планирую пересобрать gdb сам и ее включить. Для мака так сделать нельзя?
KP>Я обдумывал такую возможность, но уперся в то, что GDB на Маке довольно сильно модифицирован Эпплом. Ну а так как глубоко копать эту тему небыло ни времени ни желания, то бросил.
KP>>>С STL проблема легко решается.
E>>А как? И в чем проблема также решить ее с бустом?
KP>Для GDB я находил набор скриптов для вывода значений стандартных контейнеров. Проблема не в связке BOOST + GDB, а в boost::bind/boost::function + GDB, так как при ее использовании, пройтись по функциям отладчиком становится крайне трудно, а стеки вызовов начинают напоминать шутки про Java.
можешь пример привести?
Здравствуйте, Handie, Вы писали:
H>"Медленный код" — это любимая фраза преждевременных оптимизаторов. Мне плевать на "медленный" код, Time-To-Market куда важнее.
Есть такие сегменты упомянутого Market, что медленный код там никому не нужен при любом Time-To-Market, хоть нулевом.
Здравствуйте, Dair, Вы писали:
D>Boost, насколько я с ним знаком на чужих примерах, прекрасно позволяет писать write-only код. В команде, всё же, полезно читать чужой код тоже.
Write-only код прекрасно пишется на любом ЯП с любым набором библиотек. Просто при разработке голову нужно включать, а не на буст кивать.
ОК>>>>Абсолютно ненужные навороты.
J>>>Это ты о конкретном примере или о коллбэках вообще?
ОК>>О конкретном примере/коде.
N>пример был написан от фонаря, но решения не boost-овым путем я так и не увидел.
ОК>>Есть там удобные вещи вроде смарт пойнтеров и регулярных выражений плюс возможно что-то еще что на ум сразу не приходит. А так да, буст не нужен и подмеченно что все эти любители паттернов, Александреску и буста переусложняют код.
N>паттерны — это шаблоны (не те которые в С++), т.е. некоторые задачи вполне решаются таким подходом. Какие уж там переусложенения, скорее наоборот, бери шаблон и адаптируй под свои нужды.
Вот не видел я еще ни одной задачи где эти шаблоны были бы нужны. Зато видел кучу кода в котором эти шаблоны как корове седло, мягко говоря.