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

    +924

    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
    // придерживаюсь оригинала как могу
    // код как был:
    
    static char message_buf[64000];  // must be actually 64K == 64<<10 == 65536
    
    class MessageHandler {
       // [...]
       char *header;         // point into the message_buf
       char *content;
       std::list<char *> tlvs; // pointers to the elements of the message
    };
    
    // я пожаловался - пообещали исправить в новой версии по ходу реализации новой фичи.
    
    // новый "усовершенствованый" код, с "поддержкой" многопоточности.
    
    static char message_buf[100][65000];  // 100 == max threads, buffer size now is much closer to the standard
    
    class MessageHandler {
       // [...]
       int threadId;             // index into the new message_buf[]
       char *header;          // point into the message_buf[threadId]
       char *content;
       std::vector<char *> tlvs; // same, but in std::vector because it is "faster"
    };

    вот так кодируют и совершенствуют код матерые шведские программистки.
    самое обидное что мой коллега почти все это пофиксил в оригинальной версии, но из-за важной фичи отказались мержить с новой версией и выкинули почти все его изменения.

    Запостил: Dummy00001, 26 Апреля 2010

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

    • ыыы, 64кило на стеке, жесть, а потом и еще 6.4метра, ыыы, оно вообще работает? я за 30к на стеке часто по рукам то бью, при условии, что на каждый поток если еще по 2 метра для стека выделять, то еще 200 метров, вообще оригинально.
      Ответить
      • Откуда насчитал, что 6.4мб в стеке? Тут же static стоит.
        Ответить
        • Выделять столько памяти статикой всё равно близко к моветону и половому извращению.
          Ответить
          • сегмент данных все стерпит. размер буффера тоже как бы и стандартный для этого протокола. хотя я бы все равно это в std::string засунул потому что в нашем случае редкое сообщение больше чем 2К.

            меня там больше бесит что не смотря на возможность присутствия в памяти нескольких объектов, поинтеры показывают на глобальный буффер. на этих граблях там уже не один месяц (не моей) работы был загублен.
            Ответить
            • А ты вообще в С++ то рубишь? Или не бе ни ме. Тятеля мятеля.
              Ответить
              • рублю тебе за щеку, проверь

                В бинарнике всё равно ничего не будет, там нули же. А вот в памяти будет, конечно
                Ответить
    • показать все, что скрытоЫыы. Наконец то С++.
      Ответить
      • Пора окончательно выпилить анонимусов. Бан снят совсем недавно, а во всех обсуждениях уже отметилось несколько троллей. Все, кто хотели, уже зарегистрировались.
        Ответить
        • То есть, дружок, ты считаешь, что вот все вы составляете илиту ресурса? Рыцари без страха и упрёка?
          Ты заблуждаешься.
          Ответить
          • Что б ты, сука, сдох =)
            Ответить
          • Нет, я считаю, что анонимность разбаловала таких, как ты. Если человек пишет от своего имени, он дважды подумает, прежде чем постить всякую дрянь.
            Ответить
            • Ну, не все. Я, например, и под собой могу спросить за C++:)
              Ответить
            • И? Я сейчас зарегаюсь как гвест0092, и буду так же писать кое-что про тебя и твою любимую лошадку. Не вижу принципиального отличия.
              Или думаешь, что тролли настолько жирные, что в окно регистрации не пролезут?
              Ответить
              • >тролли настолько жирные, что в окно регистрации не пролезут?
                Да.
                Ответить
                • Легче верблюду пройти в иглиное ушко!!!
                  Ответить
                  • > верблюду

                    *канату

                    Пользуйтесь Библией 1.1, Errata Edition
                    Ответить
                    • Помню-помню.
                      Но, согласитесь, "верблюду" звучит прикольнее, и ближе к троллям (не географически, ессно).
                      Ответить
        • выпилил тебе за щеку, проверь
          Ответить
    • бля, чел, я те сочувствую, я какраз сча перехожу из фирмы с охуенными процессами, контролем качества кода в фирму которую я не знаю. Мож там все бут ог, а может, как тут(ну тогда я свалю куда-нить, чего и те советую) =)
      Ответить
      • да работа у меня нормальная. в смысле платят хорошо и тим в котором я непосредственно работаю тоже нормальный.

        за нормальные деньги и в хороших рабочих условиях у меня нет проблем работать с таким кодом :)

        а раздолбаев везде хватает. главное что бы твой манаджер был не одним из них.
        Ответить
      • ну как, перешел?
        Ответить
    • >static
      удобно с глобальной хуйней наверное
      Ответить

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