-
X-Received: by 2002:a37:c45:: with SMTP id 66mr8666069qkm.51.1591735394006; 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: news-archive.icm.edu.pl!news.icm.edu.pl!wsisiz.edu.pl!goblin3!goblin.stu.neva.r
u!news.misty.com!border2.nntp.dca1.giganews.com!nntp.giganews.com!news-out.goog
le.com!nntp.google.com!postnews.google.com!google-groups.googlegroups.com!not-f
or-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: g...@g...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: <d...@g...com>
<3...@g...com>
<7...@g...com>
<a...@g...com>
<d...@g...com>
<rbm3nv$jf$1@dont-email.me>
<8...@g...com>
<rbmdn3$43s$1@dont-email.me>
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <9...@g...com>
Subject: Re: Embedded HTTP Server
From: Maciej Sobczak <s...@g...com>
Injection-Date: Tue, 09 Jun 2020 20:43:14 +0000
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
Lines: 58
Xref: news-archive.icm.edu.pl pl.comp.programming:214974
[ ukryj nagłówki ]> >> 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
Następne wpisy z tego wątku
- 09.06.20 22:47 heby
- 09.06.20 23:14 Maciej Sobczak
- 09.06.20 23:15 heby
- 09.06.20 23:32 heby
- 10.06.20 07:50 Tomasz Kaczanowski
- 10.06.20 08:09 heby
- 10.06.20 20:57 Maciej Sobczak
- 10.06.20 21:13 Maciej Sobczak
- 10.06.20 22:35 Maciej Sobczak
- 10.06.20 22:52 heby
- 10.06.20 22:54 heby
- 10.06.20 22:55 heby
- 23.06.20 09:33 Wojciech Muła
- 23.06.20 23:13 Maciej Sobczak
Najnowsze wątki z tej grupy
- Perfidne ataki krakerów z KRLD na skrypciarzy JS i Pajton
- Instytut IDEAS może zacząć działać: "Ma to być unikalny w europejskiej skali ośrodek badań nad sztuczną inteligencją."
- Instytut IDEAS może zacząć działać: "Ma to być unikalny w europejskiej skali ośrodek badań nad sztuczną inteligencją."
- Instytut IDEAS może zacząć działać: "Ma to być unikalny w europejskiej skali ośrodek badań nad sztuczną inteligencją."
- U nas propagują modę na SI, a w Chinach naukowcy SI po kolei umierają w wieku 40-50lat
- C++. Podróż Po Języku - komentarz
- "Wuj dobra rada" z KDAB rozważa: Choosing the Right Programming Language for Your Embedded Linux Device
- Nowa ustawa o ochronie praw autorskich - opis problemu i szkic ustawy
- Alg. kompresji LZW
- Popr. 14. Nauka i Praca Programisty C++ w III Rzeczy (pospolitej)
- Arch. Prog. Nieuprzywilejowanych w pełnej wer. na nowej s. WWW energokod.pl
- 7. Raport Totaliztyczny: Sprawa Qt Group wer. 424
- TCL - problem z escape ostatniego \ w nawiasach {}
- Nauka i Praca Programisty C++ w III Rzeczy (pospolitej)
- testy-wyd-sort - Podsumowanie
Najnowsze wątki
- 2025-04-30 Szczecin => Key Account Manager IT <=
- 2025-04-30 Chiny => Koordynator Produkcji / Przedstawiciel ds. rozwoju produktu <
- 2025-04-30 Wrocław => Konsultant wdrożeniowy Comarch XL (Logistyka, WMS, Produk
- 2025-04-29 Nożownik zaatakował i zabił lekarza
- 2025-04-29 Polecam żarówki Blackout na Blackout z dużym gwintem
- 2025-04-29 Porażka kasty sędziowskiej przed Trybunałem Sprawiedliwości UE
- 2025-04-29 Kombinacja znaków A11 i B33?
- 2025-04-29 Na jakim etapie jest sprawa karna "gaśnicowego" Brauna z grudnia 2023?
- 2025-04-29 TSUE jest "przeciw a nawet za" neosędziami :-)
- 2025-04-29 Wrocław => Konsultant wdrożeniowy (systemy kontrolingowe) <=
- 2025-04-29 China => Production Coordinator / Representant Product Dev <=
- 2025-04-29 Warszawa => Specjalista rekrutacji IT <=
- 2025-04-28 Hiszpania bez pradu
- 2025-04-28 chinska stal
- 2025-04-28 QR kody