-
X-Received: by 2002:ae9:c202:: with SMTP id j2mr7258257qkg.252.1557468220227; Thu, 09
May 2019 23:03:40 -0700 (PDT)
X-Received: by 2002:ae9:c202:: with SMTP id j2mr7258257qkg.252.1557468220227; Thu, 09
May 2019 23:03:40 -0700 (PDT)
Path: news-archive.icm.edu.pl!news.icm.edu.pl!newsfeed.pionier.net.pl!goblin1!goblin.
stu.neva.ru!t9no274653qtn.0!news-out.google.com!b26ni67qtp.1!nntp.google.com!t9
no274646qtn.0!postnews.google.com!glegroupsg2000goo.googlegroups.com!not-for-ma
il
Newsgroups: pl.comp.programming
Date: Thu, 9 May 2019 23:03:39 -0700 (PDT)
In-Reply-To: <qb1ju2$hsi$1@dont-email.me>
Complaints-To: g...@g...com
Injection-Info: glegroupsg2000goo.googlegroups.com; posting-host=165.225.84.71;
posting-account=bMuEOQoAAACUUr_ghL3RBIi5neBZ5w_S
NNTP-Posting-Host: 165.225.84.71
References: <c...@g...com>
<btKtE.25850$wd2.16727@fx24.fr7>
<9...@g...com>
<qasr5t$7i2$1@dont-email.me>
<b...@g...com>
<qav3qi$qv$1@dont-email.me>
<0...@g...com>
<qb1ju2$hsi$1@dont-email.me>
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <d...@g...com>
Subject: Re: Ada Tutorial - w Instytucie Lotnictwa
From: Maciej Sobczak <s...@g...com>
Injection-Date: Fri, 10 May 2019 06:03:40 +0000
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
Xref: news-archive.icm.edu.pl pl.comp.programming:213498
[ ukryj 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-12 Jak na naszych oczach odradza się cenzura :-)
- 2025-01-11 Koszty prowadzenia firmy za granicą
- 2025-01-11 19 migrantów
- 2025-01-11 300km/h
- 2025-01-11 Kongres USA uchwalił "Prawo babci Pawlakowej" na MTK [Lex Gradma Pawlak]
- 2025-01-11 Riga => Specjalista ds. public relations <=
- 2025-01-11 Przestępca wyborczy Musk nadciąga nad Tuskistan?
- 2025-01-11 Białystok => Delphi Programmer <=
- 2025-01-09 Jaka nawigacja z asystentem zmiany pasa ruchu?
- 2025-01-10 Coś dusi.
- 2025-01-09 akumulator napięcie 12.0v
- 2025-01-10 Białystok => Architekt rozwiązań (doświadczenie w obszarze Java, A
- 2025-01-10 Warszawa => Software .Net Developer <=
- 2025-01-10 Białystok => Application Security Engineer <=
- 2025-01-10 Warszawa => System Architect (Java background) <=