-
Data: 2020-06-10 22:35:55
Temat: Re: Embedded HTTP Server
Od: Maciej Sobczak <s...@g...com> szukaj wiadomości tego autora
[ pokaż wszystkie nagłówki ]
> > 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/to
ols/qalgorithms.h
Konkretnie, funkcja qSort z callbackiem komparatora jest tutaj:
https://github.com/qt/qtbase/blob/dev/src/corelib/to
ols/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/to
ols/qalgorithms.h#L340
i który bez walidowania swoich argumentów wywołuje callback tutaj:
https://github.com/qt/qtbase/blob/dev/src/corelib/to
ols/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
Następne wpisy z tego wątku
- 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
- 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
- Tworzenie Programów Nieuprzywilejowanych Opartych Na Wtyczkach
- Do czego nadaje się QDockWidget z bibl. Qt?
- Bibl. Qt jest sztucznie ograniczona - jest nieprzydatna do celów komercyjnych
- Co sciaga kretynow
- AEiC 2024 - Ada-Europe conference - Deadlines Approaching
- Jakie są dobre zasady programowania programów opartych na wtyczkach?
- sprawdzanie słów kluczowych dot. zła
- Re: W czym sie teraz pisze programy??
- Re: (PDF) Surgical Pathology of Non-neoplastic Gastrointestinal Diseases by Lizhi Zhang
Najnowsze wątki
- 2025-01-22 Gdańsk => System Architect (Java background) <=
- 2025-01-22 Katowice => Senior Field Sales (system ERP) <=
- 2025-01-22 Warszawa => Java Developer <=
- 2025-01-22 pokolenie Z
- 2025-01-22 Wyświtlacz ramki cyfrowej
- 2025-01-22 Białystok => Architekt rozwiązań (doświadczenie w obszarze Java, A
- 2025-01-22 Chrzanów => Team Lead / Tribe Lead FrontEnd <=
- 2025-01-22 Ostrów Wielkopolski => Konsultant Wdrożeniowy Comarch XL/Optima (Ksi
- 2025-01-22 oferta na ubezpieczenie OC życie prywatne
- 2025-01-22 Bieruń => Spedytor Międzynarodowy (handel ładunkami/prowadzenie flo
- 2025-01-22 Warszawa => International Freight Forwarder <=
- 2025-01-22 Gdańsk => Specjalista ds. Sprzedaży <=
- 2025-01-21 Zgromadzenie użytkowników pojazdów :-)
- 2025-01-21 bateria na żądanie
- 2025-01-21 Warszawa => IT Business Analyst <=