Кресты / Говнокод #8488 Ссылка на оригинал

0

  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
  6. 6
  7. 7
  8. 8
  9. 9
  10. 10
  11. 11
/c/Qt/4.7.4/src/plugins/bearer/symbian/symbianengine.cpp:1336..1344

// Waits for 2..6 seconds.
void SymbianEngine::updateConfigurationsAfterRandomTime()
{
    int iTimeToWait = qMax(1000, (qAbs(qrand()) % 68) * 100);
#ifdef QT_BEARERMGMT_SYMBIAN_DEBUG
    qDebug("QNCM waiting random time: %d ms", iTimeToWait);
#endif
    QTimer::singleShot(iTimeToWait, this, SLOT(delayedConfigurationUpdate()));
}

68 будет в самый раз, да.

Запостил: overloop overloop, (Updated )

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

  • все таки не нравится мне куте
    вместо православного и понятного
    timer_.expires_from_now(posix_time::mill isec(time_to_wait));
    timer_.async_wait(bind(&app::on_timer, shared_from_this(), asio::placeholders::error));
    используется статический метод класса QTimer (эм...), задающий время только в миллисекундах, который должен создать на лету объект таймера (где то в глобальном массиве для ивент-лупа?), задать ему хендлер (опять эти скрипты вместо нормального С++) - объект точно не умрёт до того, как у него попытаются вызвать хендлер?
    и судя по хелпу, обрабатывать этот таймер кутэ будет только в том потоке, где живет сам объект
    а чем qMax и qAbs лучше std::max и std::abs? тем, что у них тот же блевотный кутешный горбатый стиль? почему в куте что то начинается с большой Q, а что то - с маленькой? а почему в qrand вообще больших букв нет?
    Ответить
      • значит надо скрепя сердце вычистить весь этот навоз, сделать deprecated и использовать стандарт, в чем проблема

        "...but again Stepanov and Lee met the challenge and produced a proposal that received final approval at the July 1994 ANSI/ISO committee meeting" - стл уже была в драфте стандарта с 1994 года, а кутэ была официально выпущена в 1996

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

        как всегда проблема в паскале, замечательном языке для обучения, он с детства прививает хороший стиль
        Ответить
        • > любой нормальный программист на С++ должен был пройти школу С и привить её стиль
          Не навязывайте стиль, который вам нравится. Мне, например, удобно называть функции с большой буквы и без подчеркиваний (CountMyPonies), а переменные - наоборот (number_of_ponies).
          Ответить
          • тогда вы ошиблись экосистемой
            вам туда, где ваше CountMyPonies не выглядит чужеродным - где TArray, PrOgRaM mAsSiV, Integer, TObject
            не я навязываю стиль, это делает язык
            не казалось странным, почему printf и delete вместо PrintF и Delete?
            Ответить
            • недавно работая с qt начал замечать этот идиотский термин экосистема! Маразм крепчает да? пример с qt преобразование QString -> QByteArray qt4-toAnsi, qt5-toLatin1 зачем?
              Ответить
        • >Си куча лет, любой нормальный программист на С++ должен был пройти школу С и привить её стиль
          хня. школа PHP рулит
          Ответить
        • Вы так говорите, будто стиль именования имеет какое-то значение.

          Не используйте qAbs и qMax, никто не заставляет. Стулья Код зачем ломать?

          И не забывайте, что Qt — это не только для C++.
          Ответить
          • флейм о следующем
            http://doc.qt.nokia.com/latest/qtglobal.html
            qAbs, qMin, но qrand, qgetenv, и даже qt_set_sequence_auto_mnemonic, q_check_ptr, полная каша, и qt, и q, и верблюды, и все маленькими, и с подчеркиваниями, в макросах аналогично - и Q_, и QT_
            и это всего лишь хедер, который included by most other Qt header files.
            это всё наводит на некие мысли
            как и фетишизм префикса q (Q) - в с++ для этого есть неймспейсы
            нелепо писать Qt::Q..., это как если было бы std::stdstring, std::stdvector - масло масляное
            не поленился, посмотрел биндинги
            только в QtRuby избавились от префикса:
            app = Qt::Application.new(ARGV)
            все остальные биндинги существуют в языках, позволяющих делать аналогично, но who cares
            очевидно, библиотека настаивает на том, чтобы делать глобально using namespace Qt;

            ну и чтобы набросить еще - в пятницу мне пожаловались, что парсить xml на кутэ критически медленно, человек всё переделал на libxml
            нашел вот такое сравнение (длина бара - затраченное время)
            http://xmlbench.sourceforge.net/results/benchmark200910/xmlbench200910-Draw_html_3c093df.gif
            кто может прокомментировать?

            сам проект сравнения xml-парсеров желающие могут лицезреть http://xmlbench.sourceforge.net/
            Ответить
            • Ну не было тогда ещё пространств имён. Все публичные библиотеки имели свой префикс (иначе запутались бы со своими list-ами и string-ами).

              Единственное имя на Q в пространстве имён Qt — Qt::QueuedConnection.
              Ответить
              • фанаты могут ставить минусы сколько угодно

                мне как разработчику кросс-платформенного кода (не гуй) на С++ даже интересно
                в qt заявляется поддержка асинхронной работы с сетью, через скрипты SLOT (в хелпе не раскрывается через что именно работает асинхронный io, исходники качать пока не буду, ну да ладно). Насколько я понимаю, SLOT будет работать с ивент-лупом в потоке объекта-коллбека и только в нем. В бусте я, когда надо, создаю 8-16-N потоков под это дело, коллбек, срабатывающий на accept, вызовется в одном из них, он кормит сервер свежим объектом connection для нового accept, а сам занимается в своем потоке уже чем хочет (ну как минимум делает async_read), т.е. в другом потоке уже может вызваться новый accept, таким образом я даже не заморачиваюсь балансированием нагрузки и одновременно обслуживаю N задач. Более того, в этих N потоках может работать не только один tcp-server, а и всё остальное, что угодно, равноправно. Я правильно понял, что в qt придется это всё ручками ручками?

                ну и опять насчет стандарта 99 года - значит qt несовременная библиотека, раз считает неприемлемым почистить конюшни, переводя некоторые вещи в deprecated и предлагая современные и эффективные альтернативы
                более того, их можно не окончательно удалять, а переводить в блоки #ifdef QT_USE_DEPRECATED_SHIT ... some deprecated shit #endif, тем, кому лениво переписывать старый код (очевидно, написанный тогда же, до 1999 года), и кому зачем то нужно собираться не с соответствующей qt, а современной, не обломаются поставить лишний дефайн в настройках проекта

                вот что меня может заставить брать qt для масштабного использования в рабочих проектах? особенно для тех, в которых нет GUI (90% оных). Скриптовое кодирование поверх C++? Коммерческая лицензия? Факт того, что ничего из QT не обрело жизни в новом стандарте С++?

                и да, Qt::QueuedConnection отсутствует в хелпе
                http://doc.qt.nokia.com/latest/classes.html#q
                Ответить
                • Вы пытаетесь забивать гвозди микроскопом и жалуетесь на микроскоп. Или вас кто-то заставляет использовать Qt?

                  О регулярном переписывании проекта масштаба Qt, на который завязано тысячи продуктов многомиллионной стоимости заикнитесь как-нибудь своему начальству. Кстати, из C++ тоже никто в своём уме не собирается вычищать всё неудачное наследие C 70-го года.

                  Qt::QueuedConnection — не класс.
                  Ответить
                  • я и не говорю о переписывании
                    я говорю о предоставлении единообразного стиля всем новоприбывающим в использование Qt
                    кто тянул за яйца коммиттеров, выпустивших в свет вышеописанную кашу в QtGlobal, где код ревижен? или раз условно бесплатно, то жрите что есть
                    Ответить
                    • Нет, вы предлагаете как раз кашу — чтобы побороть некоторый исторический разнобой в стилях именования ввести ещё один непохожий стиль именования. Да, так оно обычно и бывает с реформаторами.
                      Ответить
                        • Кто-то вроде выступал против верблюжьего стиля, общего префикса и замены стандартных функций?
                          Ответить
                          • ну, естесственно, в идеале надо Qt::QApplication, Qt::qrand, Qt::qDoSomething и Qt::q_check_ptr переделать в qt::application, qt::rand, qt::do_something, qt::check_ptr (что бы это ни было), но тут уже даже могила не исправит, и пытаться нечего
                            но даже горбатый стиль - тоже стиль, если он будет системным - хер с ним
                            я же обратил внимание на кашу из стилей в основном библиотечном хедере
                            я даже не специально в него полез, я полез посмотреть что за qMax и qAbs
                            и в оправдание услышал "так сложилось исторически, старичку 20 лет", что, несомненно, добавляет плюсов к библиотеке
                            Ответить
  • у?B.D)X,I?Z:H?J(V,G.O)D?V.F!S(K,X)B:U H$P"Q!T(S(KP?J,SKZ(Q)H"I,R:T$P)HW"P(T?D)P.LR"C)I,Q?W)U,W,JM,S?A.J)I,G:I)Q:B!E:P!O)Q"C!G?W,U I!B:R"C(EP?A(E,D.W:E?GZ?G$ZHW S!M:G)Y!L:R!R)Q:K?W:T X,S(M!M.J,X$L!K P.I:T$S)L.B:U:J,C.R(E,L$U"Y"L.H:J.V,Z)L)V!N I?O"B)O(L?S.Y:B$K,W)U"F)G!V$N"D,P.K.R!D,W$J(P?L"W.L"Q.G,G(Q$S.Q!PM"D(P:D I)N,Y(S M,B:YQ:A)P)P$B"R,D(R$I K$A(B)E WW$M M,E)LI$TF:S:Q!Z M"G,X:F,T)W,YF.A?K:T"Y)V?G,O)P E"T,L:AW!S,K.B.BQ?J"V"U,G,O:F:Y!E$Z(P!VU)X(V.B$A,T:I!B:L$H"B)C,Q)L,B.Z(P"Z:N!T!T!J"L,IN,H:Y?C!H?M$Y P(M.Q)S"R!L(H?S.Y M!N$G,E$A"V:W.B)R.H WW.A?G,N?NJ?H"H$A$VR"RK?B?T,L.B Z:C,K.R!O(R,A L!D$L$R,X?J K D:G$Y?L:L:T.Y,F:N(J?F(C!W?A$R$M K"ZK,U(A,C(Q H?L?T C?I(E(G.J)J"M"T$N:U$O?R)T$V"X?X:Z.N,E.T,O)C U?J.T)D?K?U)M JSE M$H)U(X"Q(Y$Y:P Z.D(T.M!H?Z$E,V)F.YZ$PЪIJNBHFGQGXUAUEGPHAVZCHVGQIMLSQVPFOSNATZLBEQJIGAPWLZBKEWJOWKNQAOKMZDPSTLCJDGQFYIHVPWOVERLOBZESUQEZWKROOBAGIPCDMPHUIDKGFFFDYEIGZQOMUVXTQQGGJUFDKEOVCAWPGSWWLXYZWMGXEYCTRSYNKSXKCUTMZRL
    Ответить

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

Помни, guest, за тобой могут следить!

    А не использовать ли нам bbcode?


    8