🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: pl.comp.programming
Article #217027

Re: Embedded HTTP Server

#217027
From: Maciej Sobczak
Date: Wed, 10 Jun 2020 20:35
52 lines
3641 bytes
> > Ja sprawdziłem w bibliotekach standardowych z trzech różnych kompilatorów.
> 
> To sprawdź jeszcze resztę świata. Zacznij od Qt.

A co mi tam. Sprawdziłem. Zacząłem od Qt.

https://github.com/qt/qtbase/blob/dev/src/corelib/tools/qalgorithms.h

Konkretnie, funkcja qSort z callbackiem komparatora jest tutaj:

https://github.com/qt/qtbase/blob/dev/src/corelib/tools/qalgorithms.h#L181

i bez walidowania swoich argumentów woła qSortHelper, który jest tutaj:

https://github.com/qt/qtbase/blob/dev/src/corelib/tools/qalgorithms.h#L340

i który bez walidowania swoich argumentów wywołuje callback tutaj:

https://github.com/qt/qtbase/blob/dev/src/corelib/tools/qalgorithms.h#L351

> Spodoba Ci się

Bez szału. Tzn. walidację callbacków robią poprawnie - w sensie że nie robią. O, to w sumie podobnie jak w bibliotece standardowej. Konsensus w tej sprawie się przez to poszerzył o kolejną zgodną opinię.

Natomiast ogólne wrażenie - jak na bibliotekę, która miała rzekomo inspirować jakością, nie urywa.
Przykładowo, w jednym miejscu (w qSortHelper, 343) jest tak:

    int span = int(end - start);

a w innym (w qStableSortHelper, 452) tak:

    const int span = end - begin;

Dziwne, nie? I niekonsekwencja w nazwach iteratorów albo w użyciu const w dokładnie takim samym idiomie, to akurat najmniejszy pikuś.
Ćwiczenie: czy wartość (end - start) zawsze mieści się w int?

Co się stanie, jeśli się nie zmieści? Jak to wpłynie na następne dwie linijki:

    if (span < 2)
        return;

?

Dalej: oszczędzanie na nawiasach klamrowych, niekonsekwentne ich stosowanie, albo raz się namespace kończy komentarzem, innym razem bez komentarza. To tak na szybko.

Nie twierdze, że bardzo źle. W kategorii open-source na pewno powyżej średniej.

Ale nie o to chodzi. Chodzi o to, że strasznie jestem ciekaw, jaki argument teraz wymyślisz.

-- 
Maciej Sobczak * http://www.inspirel.com
Technical Details
Message-ID: <49c93fad-8d4d-49fb-ae06-46e56219e846o@googlegroups.com>
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!newsfeed.pionier.net.pl!3.eu.feeder.erje.net!feeder.erje.net!proxad.net!feeder1-2.proxad.net!209.85.160.216.MISMATCH!news-out.google.com!nntp.google.com!postnews.google.com!google-groups.googlegroups.com!not-for-mail
References: <d423a072-9378-441b-ba06-e0657a1fa53bo@googlegroups.com> <3e267b62-0fdf-41c2-9f9c-c316f98b85c6o@googlegroups.com> <7cd03711-5fee-4322-b02a-c803fcf43b31o@googlegroups.com> <a0edbb57-72ba-48f1-bf82-7060d1cec401o@googlegroups.com> <d95ffe9d-570f-455c-bb22-0831b8c0a0dfo@googlegroups.com> <rbm3nv$jf$1@dont-email.me> <8aa9011f-5e8a-4ed1-8fbb-47a260945fb8o@googlegroups.com> <rbmdn3$43s$1@dont-email.me> <9bd79264-2d24-4022-8313-db838dd902ceo@googlegroups.com> <rbou6c$ikv$1@dont-email.me>

Show Full Headers
Complete Article Headers
X-Received: by 2002:ad4:4851:: with SMTP id t17mr4983086qvy.160.1591821356362;        Wed, 10 Jun 2020 13:35:56 -0700 (PDT)
X-Received: by 2002:a37:4d0f:: with SMTP id a15mr4944912qkb.313.1591821356090; Wed, 10 Jun 2020 13:35:56 -0700 (PDT)
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!newsfeed.pionier.net.pl!3.eu.feeder.erje.net!feeder.erje.net!proxad.net!feeder1-2.proxad.net!209.85.160.216.MISMATCH!news-out.google.com!nntp.google.com!postnews.google.com!google-groups.googlegroups.com!not-for-mail
Newsgroups: pl.comp.programming
Date: Wed, 10 Jun 2020 13:35:55 -0700 (PDT)
In-Reply-To: <rbou6c$ikv$1@dont-email.me>
Complaints-To: groups-abuse@google.com
Injection-Info: google-groups.googlegroups.com; posting-host=213.108.152.51; posting-account=bMuEOQoAAACUUr_ghL3RBIi5neBZ5w_S
NNTP-Posting-Host: 213.108.152.51
References: <d423a072-9378-441b-ba06-e0657a1fa53bo@googlegroups.com> <3e267b62-0fdf-41c2-9f9c-c316f98b85c6o@googlegroups.com> <7cd03711-5fee-4322-b02a-c803fcf43b31o@googlegroups.com> <a0edbb57-72ba-48f1-bf82-7060d1cec401o@googlegroups.com> <d95ffe9d-570f-455c-bb22-0831b8c0a0dfo@googlegroups.com> <rbm3nv$jf$1@dont-email.me> <8aa9011f-5e8a-4ed1-8fbb-47a260945fb8o@googlegroups.com> <rbmdn3$43s$1@dont-email.me> <9bd79264-2d24-4022-8313-db838dd902ceo@googlegroups.com> <rbou6c$ikv$1@dont-email.me>
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <49c93fad-8d4d-49fb-ae06-46e56219e846o@googlegroups.com>
Subject: Re: Embedded HTTP Server
From: Maciej Sobczak <see.my.homepage@gmail.com>
Injection-Date: Wed, 10 Jun 2020 20:35:56 +0000
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit