1. C++ / Говнокод #23545

    0

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    23. 23
    24. 24
    25. 25
    PrefixAllocator::PrefixAllocator(
        const std::string& myNodeName,
        const KvStoreLocalCmdUrl& kvStoreLocalCmdUrl,
        const KvStoreLocalPubUrl& kvStoreLocalPubUrl,
        const PrefixManagerLocalCmdUrl& prefixManagerLocalCmdUrl,
        const MonitorSubmitUrl& monitorSubmitUrl,
        const AllocPrefixMarker& allocPrefixMarker,
        const folly::Optional<folly::CIDRNetwork> seedPrefix,
        uint32_t allocPrefixLen,
        bool setLoopbackAddress,
        bool overrideGlobalAddress,
        const std::string& loopbackIfaceName,
        std::chrono::milliseconds syncInterval,
        PersistentStoreUrl const& configStoreUrl,
        fbzmq::Context& zmqContext)
        : myNodeName_(myNodeName),
          allocPrefixMarker_(allocPrefixMarker),
          seedPrefix_(seedPrefix),
          allocPrefixLen_(allocPrefixLen),
          setLoopbackAddress_(setLoopbackAddress),
          overrideGlobalAddress_(overrideGlobalAddress),
          loopbackIfaceName_(loopbackIfaceName),
          syncInterval_(syncInterval),
          configStoreClient_(configStoreUrl, zmqContext),
          zmqMonitorClient_(zmqContext, monitorSubmitUrl) {

    Фейсбук выложил какую-то хуйню https://github.com/facebook/openr/blob/master/openr/allocators/PrefixAllocator.cpp#L61

    Запостил: g0cTb, 16 Ноября 2017

    Комментарии (28) RSS

    • Хотя им конечно далеко до функций с сорока аргументами, как у меня на работе.
      Ответить
      • привет, программист под Win32API
        Ответить
        • # функций с сорока аргументами
          # привет, программист под Win32API


          Ну и покажи, где в Win32API сорок аргументов
          Ответить
          • Вопрос мой прост и краток,
            Промолвил Носорог:
            Что лучше - сорок пяток
            Или пяток сорок?
            Ответить
          • CreateFont() - 14 аргументов, как и в гк.

            и потом есть функции которые принимают на вход специальные структурки с тучей полей. да, за аргументы функции это не считается. но писанины - и с этим связаных ошибок - не меньше.
            Ответить
            • Хороший пример, да. Если POSIX любит 20 функций с двумя аргументами, то Win32API -- одну с двадцатью, ну и структуры адские.

              Хорошо что студия умеет подсказывать их поля, особенно с Resharperом
              Ответить
              • > Хорошо что студия умеет подсказывать их поля, особенно с Resharperом

                толку от этого мало. т.к. по крайней мере у меня самая частая ошибка была что поле забыл проинициализировать.

                > Если POSIX любит 20 функций с двумя аргументами, то Win32API -- одну с двадцатью, ну и структуры адские.

                POSIX любит простые интерфейсы для простых вещей, и сложные интерфейсы для сложных. не всегда получается, но преимущественно ок.

                WinAPI делался изначально VMSниками, у которых просто сложившийся стиль был убогий: они пытались все по полочкам раскладывать с одной стороны, а с другой стороны в ж все абстрагировать. VMS уже умерла раз пять, но наследие все еще живет.

                ЗЫ https://en.wikipedia.org/wiki/OpenVMS - педрилы начали делать порт на Итаник - как раз когда интел его убил. (( самое близкое к доке что смог наколупать - https://support.hpe.com/hpsc/doc/public/display?docId=emr_na-c04621400 ))
                Ответить
                • >>ня самая частая ошибка была что поле забыл проинициализировать.
                  Или забыл сделать им memset в 0, да?

                  НУ что поделать, в си нету RAII

                  >>, а с другой стороны в ж все абстрагировать.
                  Вот да!

                  В винде очень много НЕНУЖНЫХ абстракций.
                  Даже Win32API должен был быть изначально лишь одним из многих API поверх native, но теперь другие API умерли, так что не понятно зафига есть NtCreateFile и CreateFile

                  Если бы Гейтс хайранул не VMSника а юниксоида для WinNT в 1990 году, мир мог бы быть куда более приятным местом...
                  Ответить
                  • # В винде очень много НЕНУЖНЫХ абстракций

                    И что же ты приведёшь в убийственный пример?
                    Ответить
                    • Если ты попробуешь почитать мое сообщение целиком то ты увидишь в нем пример про Win32API и NativeAPI.
                      Ответить
                      • # НЕНУЖНЫХ абстракций

                        Чем они тебе мешают?
                        Ответить
                        • Ненужные абстракции усложняю код и понимание архитектуры. Начнешь программировать -- поймешь, о чем я.
                          Ответить
                    • Win32API, NativeAPI, COM, OLE, .NET и еще куча мракобесных аббревиатур.
                      Ответить
                  • > Или забыл сделать им memset в 0, да?

                    не все дефолты нули.
                    Ответить
                  • А в крестах есть win32api с раи? (За исключением бустов и новых стандартов).. Все приходится оборачивать, занулять, подгружать динамически новые функции, велосипеды, костыли для багов апи....
                    Простите, пишу высокоуровневый код с частичкой этого говна, и это хуже легаси, который можно и переписать...
                    Ответить
                    • >>А в крестах есть win32api с раи?
                      MFC:)))))))
                      Ответить
                      • Плюсанул)
                        И правда и подъеб одновременно)

                        ATL)))
                        Ответить
                      • Что такое раи?
                        Ответить
                        • Это лучшее, что придумали крестобляди.
                          Ответить
                          • >что придумали крестобляди
                            Придумали что? Сам акроним раии?
                            Жаль здесь Тараса нет, он бы наверняка пояснил за Ada controlled types.
                            Ответить
                            • > Придумали что?
                              RAII. Deal with it.

                              Америку тоже не Америго Веспуччи первым открыл, но...
                              Ответить
                              • >RAII
                                Ну правильно, только уродский акроним РАЙИ.
                                Лишённые эстетики крестухи даже красиво не смогли обозвать. См. KISS, DRY.
                                Ответить
              • > Хорошо что студия умеет подсказывать их поля, особенно с Resharperом

                Студия вообще хорошо справляется со своей задачей - быть полным комплектом отличных столовых приборов для поедания говна
                Ответить
                • да-да, виндамастдай, линуксрулез, вот это всё
                  Ответить
                • В более менее крупном проекте они и с этим не всегда справляются, почему и существуют помидоры. Вроде и шланг прикрутили в свой интелихуенс, один хрен через раз работает. Благо текстовый поиск шустрый, иногда проще им поискать..
                  Ответить

    Добавить комментарий