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

    Комментарии (16) 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, да?

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

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

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