-
Data: 2019-05-10 08:03:39
Temat: Re: Ada Tutorial - w Instytucie Lotnictwa
Od: Maciej Sobczak <s...@g...com> szukaj wiadomości tego autora
[ pokaż wszystkie nagłówki ]> Nie, tu padło jakieś hasło "C++ zachęca do pisania w stylu "write
> once, debug endlessly"". Problem w tym że to jest walidne w każdym
> języku a w c++ z roku na rok o dziwo coraz mniej.
Tak. Oczywiście potrzeba, żeby programiści z roku na rok też robili postępy w tym,
jak korzystają z tego języka.
> > Niezupełnie. W takich systemach może być wymaganie na pokrycie testami każdej
ścieżki.
>
> Nie. W typowym systemie nie wymaga się pokrycia *każdej* ścieżki, wymaga
> się pokrycia określonego procentu.
Co to jest "typowy system"? Bo w konteście całej ludzkiej aktywności
programistycznej, w ogóle wymaganie weryfikacji czegokolwiek jest niszowe. A jak
jesteśmy w niszach, to trudno mówić o "typowym systemie".
W niszach są standardy i procesy. Nie spotkałem wymagań w procentach pokrycia.
> Ba, wymaga się pokrycia nie tylko
> ściezki wykonywania kodu, ale np. zbioru wartości danych zmiennych.
Też w procentach?
> Jeśli masz kilkaset tyś lini kodu to nie jest mozliwe pokrycie go w 100%
No to może za dużo jest tych linii? Albo ktoś je napisał a dopiero potem zorientował
się, że warto by zrobić jakąś weryfikację. To niedobrze.
> Ludzie robiący systemy krytyczne używają specjalistycznych
> narzędzie do oceny czy dany kod spełnia warunki czy nie, często są to
> zabawki oparte o randomizacje. I prawie nigdy to nie jest 100%. 100% to
> można sobie osiągnąć w kodzie do migania diodą czy przedsionkiem serca.
Trochę się motasz. Przedsionek serca to system krytyczny. Miganie diodą też nim może
być, zależy co to za dioda. A jeśli masz system, w którym ktoś napisał kilkaset tyś.
linii a potem się zorientował, że nie może ich pokryć, to może jednak ten system od
samego początku nie był tak bardzo krytyczny i tylko ludzie sobie dodają fasonu
twierdząc, że jest.
> > Jeżeli są wyjątki, to tych ścieżek nawet nie widać
>
> Mało kto patzy na kod.
:-D
W takim razie faktycznie mówimy o różnych niszach.
> Do testowania pokrycia stosuje się automatykę.
> Ona widzi wyjątki tak samo jak logjmp.
Nie. Nie widzi.
Cytat ze standardu do F-35 (bo tam zaczęliśmy):
"
AV Rule 208:
C++ exceptions shall not be used (i.e. throw, catch and try shall not be used.)
Rationale: Tool support is not adequate at this time.
"
Problem w tym, że nadal jest "not adequate". I bardzo możliwe, że zawsze tak będzie.
> Zmartwie Cie. Zazwyczaj dostep do całego kodu nie jest potrzebny jeśli
> *formalnie* coś udowodnisz w module w środku. To że przez funkcję
> generyczną przelatują wyjąki i robią bałagan ze stanem czegośtam nie
> jest absolutnie problemem funkcji generycznej tylko kodu na zewnątrz.
Zmartwię Cię. Wymaganie pokrycia dotyczy kodu obiektowego a nie źródłowego. Na tym
poziome nie ma już wiedzy o tym, który kawałek kodu był generyczny a który nie.
> Znowu Cie zmartwie: możesz pokryć tą generyczną funkcję testami w 100% a
> i tak ktoś rzuci wyjątkiem
Nie rzuci, bo jest zakaz. Właśnie po to.
> w przemyśle
> nawet w aplikacjach do latania stosuje się śmiesze liczby w rodzaju 99%
A dlaczego nie dało się pokryć tego brakującego 1%?
> Zleceniodwaca może oczywiście chcieć 100% ale wtedy będzie czekał na
> software przez 10 lat.
F-35 próbują zrobić od 1992. 10 lat to by był megasukces. :-)
> System w którym lata milion wyjątków jest do dupy. Ale narzekanie że
> funkcja generyczna jest do dupy bo może przez nią przelecieć wyjątek
> jest absurdalne.
A kod obiektowy, w którym jest milion nieprzetestowanych rozgałęzień jest OK?
> Oczywiscie że da się obronić, w końcu skoro nie można uzywać normalnych
> technik programowania, jak wyjątki, to przeciez lepiej je koślawo
> zaemulować.
Ale ja uważam, że tam nie ma emulacji wyjątków. To jest inny mechanizm, zaaplikowany
w innym celu. Dlatego da się go obronić, chociaż oczywiście przyznaję, że
stylistycznie jest słaby.
--
Maciej Sobczak * http://www.inspirel.com
Następne wpisy z tego wątku
- 10.05.19 08:21 Maciej Sobczak
- 10.05.19 20:33 heby
- 10.05.19 21:00 heby
- 13.05.19 08:29 Maciej Sobczak
- 13.05.19 08:40 Maciej Sobczak
- 13.05.19 09:27 AK
- 13.05.19 12:05 g...@g...com
- 14.05.19 00:53 AK
- 14.05.19 08:51 g...@g...com
- 14.05.19 09:55 Maciej Sobczak
- 14.05.19 15:25 Adam M
- 15.05.19 08:09 Maciej Sobczak
- 15.05.19 21:25 AK
- 16.05.19 08:55 g...@g...com
- 04.08.19 18:11 Borneq
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-08 Warszawa => Spedytor Międzynarodowy <=
- 2025-01-08 Katowice => Regionalny Kierownik Sprzedaży (OZE) <=
- 2025-01-08 Gdańsk => Specjalista ds. Sprzedaży <=
- 2025-01-08 Katowice => Key Account Manager (ERP) <=
- 2025-01-08 Warszawa => Programista Full Stack .Net <=
- 2025-01-08 Podłączenie DMA 8257 do 8085
- 2025-01-08 Warszawa => System Architect (background deweloperski w Java) <=
- 2025-01-08 Warszawa => Solution Architect (Java background) <=
- 2025-01-08 Wrocław => Application Security Engineer <=
- 2025-01-08 Warszawa => International Freight Forwarder <=
- 2025-01-08 Mińsk Mazowiecki => Area Sales Manager OZE <=
- 2025-01-08 Lublin => Inżynier Serwisu Sprzętu Medycznego <=
- 2025-01-08 Bieruń => Spedytor Międzynarodowy (handel ładunkami/prowadzenie flo
- 2025-01-08 Gliwice => Business Development Manager - Network and Network Security
- 2025-01-08 Warszawa => Spedytor Międzynarodowy <=