Article View: pl.comp.programming
Article #217023Re: Embedded HTTP Server
From: Maciej Sobczak
Date: Tue, 09 Jun 2020 20:43
Date: Tue, 09 Jun 2020 20:43
38 lines
3525 bytes
3525 bytes
> >> Nie użycie go > >> świadczy o bardzo kiepskiej jakości kodzie > > Według jakich kryteriów? > > Programowania defensywnego na inpucie. Rzucam tezą, że ktoś z dobrą intencją ulepił koncept a cała masa ludzi ten koncept powiela, już bez zastanowienia o co autorowi chodziło. Weź sobie funkcję std::sort. Ma trzy argumenty, trzeci to właśnie callback komparatora (zwany w kręgach zbliżonych do akademickich "predykatem"). Otwórz sobie header "algorithm" ze swojego kompilatora i poszukaj tam co robi funkcja std::sort ze swoim trzecim argumentem (czyli "inputem", jak to nazywasz). Sprawdza, czy programista nie podał pustego wskaźnika/funktora/itp.? Tak więc biblioteka HTTP jest właśnie w takim towarzystwie (przynajmniej w tej konkretnej kwestii...). > > Od kiedy to biblioteki HTTP służą do weryfikacji programów? > > W każdym inpucie powinna być weryfikacja, To nie jest input, tylko część programu. Inputem jest URL z przeglądarki albo dane z formatki w POST. I *to* należy walidować. > ponieważ *ułatwia* to > debugowanie klientowi. Debugowanie ułatwia fakt, że gdybyś faktycznie spróbował zrobić taki błąd w tej bibliotece, zamiast trollować na rympał, to byś zobaczył, że std::function rzuca wtedy wyjątek, który biblioteka uczciwie wypisuje na podanym strumieniu do logowania błędów. Spróbuj. To programowanie defensywne, podobnie jak paranoja wokół unit testów, to niestety efekt braku refleksji nad własnym warsztatem. > > Targetem są świadomi inżynierowie, którzy nie oczekują od biblioteki HTTP, że im zrobi weryfikację poprawności programu... > > Chyba takich jest relatywnie mało. Sądzepo ilości assertów w poważnych > biblitekach. No to ile assertów znalazłeś w std::sort na trzecim argumencie? Ja sprawdziłem w bibliotekach standardowych z trzech różnych kompilatorów. -- Maciej Sobczak * http://www.inspirel.com
Technical Details
Message-ID:
<9bd79264-2d24-4022-8313-db838dd902ceo@googlegroups.com>Path:
mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!wsisiz.edu.pl!goblin3!goblin.stu.neva.ru!news.misty.com!border2.nntp.dca1.giganews.com!nntp.giganews.com!news-out.google.com!nntp.google.com!postnews.google.com!google-groups.googlegroups.com!not-for-mailReferences:
<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>Show Full Headers
Complete Article Headers
X-Received: by 2002:aed:2084:: with SMTP id 4mr30425551qtb.43.1591735394246; Tue, 09 Jun 2020 13:43:14 -0700 (PDT) X-Received: by 2002:a37:c45:: with SMTP id 66mr8666069qkm.51.1591735394006; Tue, 09 Jun 2020 13:43:14 -0700 (PDT) Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!wsisiz.edu.pl!goblin3!goblin.stu.neva.ru!news.misty.com!border2.nntp.dca1.giganews.com!nntp.giganews.com!news-out.google.com!nntp.google.com!postnews.google.com!google-groups.googlegroups.com!not-for-mail Newsgroups: pl.comp.programming Date: Tue, 9 Jun 2020 13:43:13 -0700 (PDT) In-Reply-To: <rbmdn3$43s$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> User-Agent: G2/1.0 MIME-Version: 1.0 Message-ID: <9bd79264-2d24-4022-8313-db838dd902ceo@googlegroups.com> Subject: Re: Embedded HTTP Server From: Maciej Sobczak <see.my.homepage@gmail.com> Injection-Date: Tue, 09 Jun 2020 20:43:14 +0000 Lines: 58 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit