-
X-Received: by 2002:a37:708:: with SMTP id 8mr15334983qkh.273.1567583591586; Wed, 04
Sep 2019 00:53:11 -0700 (PDT)
X-Received: by 2002:a37:708:: with SMTP id 8mr15334983qkh.273.1567583591586; Wed, 04
Sep 2019 00:53:11 -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!o24no8825550q
tl.0!news-out.google.com!c11ni25qtp.0!nntp.google.com!o24no8825544qtl.0!postnew
s.google.com!glegroupsg2000goo.googlegroups.com!not-for-mail
Newsgroups: pl.comp.programming
Date: Wed, 4 Sep 2019 00:53:11 -0700 (PDT)
In-Reply-To: <1...@g...com>
Complaints-To: g...@g...com
Injection-Info: glegroupsg2000goo.googlegroups.com; posting-host=213.192.68.153;
posting-account=f7iIKQoAAAAkDKpUafc-4IXhmRAzdB5r
NNTP-Posting-Host: 213.192.68.153
References: <1ua4wui506zbf$.dlg@tyczka.com> <qkecqc$c03$1@news.icm.edu.pl>
<3...@g...com>
<qkicu0$knb$1@gioia.aioe.org>
<4...@g...com>
<qkjqqi$1b59$1@gioia.aioe.org>
<0...@g...com>
<r...@t...com>
<e...@g...com>
<1...@g...com>
<1...@g...com>
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <a...@g...com>
Subject: Re: Jak to robią w NASA
From: g...@g...com
Injection-Date: Wed, 04 Sep 2019 07:53:11 +0000
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
Lines: 81
Xref: news-archive.icm.edu.pl pl.comp.programming:213930
[ ukryj nagłówki ]W dniu środa, 4 września 2019 09:31:05 UTC+2 użytkownik Maciej Sobczak napisał:
> > > Tak. Można stwierdzić, że w ogóle nie powinno być żadnych asercji w kodzie
programu, bo w systemie krytycznym one nie pełnią tam żadnej sensownej roli.
> >
> > Co za bzdura.
> >
> > Równie dobrze mógłbyś powiedzieć, że w kodzie programu nie powinno być żadnych
komentarzy, bo w systemie krytycznym one nie pełnią tam żadnej sensownej roli.
>
> Ale nie równie dobrze, bo komentarze są pożyteczne.
Asercje też są pożyteczne.
Asercje są formą komentarza, który dodatkowo można zweryfikować.
> Natomiast asercje to tzw. dead code. Z założenia. To jest kod źródłowy, który
pozostawia ślad w kodzie maszynowym, ale którego nie da się pokryć testami.
Asercja to postawa propozycjonalna.
Możesz sobie napisać
#define assert(x) do {} while(0)
i nie masz śladu w kodzie maszynowym.
> Powtórzę dla skupienia: MISRA-C i AUTOSAR w ogóle nie poruszają tematu asercji. Co
biorąc pod uwagę ilość innych rzeczy, które poruszają, jest co najmniej interesujące.
> Otóż rozwiązanie tej zagadki jest bardzo proste: w kodzie krytycznym asercji się
nie używa. Bo one stoją w konflikcie z innymi celami, które należy osiągnąć.
>
> > Albo że funkcje i zmienne mogą być nazwane byle jak, bo w systemie krytycznym one
nie pełnią tam żadnej sensownej roli.
>
> Dryfujesz. Komentarze i nazwy są istotne dla czytelności.
Asercje też są istotne dla czytelności.
Po to, żeby programista wiedział:
"aha, ten a ten warunek jest (ma być) tutaj spełniony."
Co może być przydatne przy rozumieniu kodu, jego refaktoryzacji i debugowaniu.
> Bo jest jeszcze taka możliwość, że potraktujesz asercje jak komentarz. To bardzo
dobry pomysł, ale komentarze piszemy w komentarzach.
Co jest kiepskim pomysłem, bo błędnego komentarza nie wykryjesz za pomocą narzędzia,
a błędną asercję możesz.
> > Wygląda na to, że wśród programistów szeroko jest rozpowszechnione błędne
przekonanie, że asercja to "sprawdzenie czegoś w runtimie".
>
> Dla pewności sprawdziłem jak to opisuje standard C. Otóż właśnie dokładnie tak.
Asercja nie jest pojęciem wprowadzonym przez standard C.
> Oczywiście możesz sobie wyobrazić (albo nawet mieć) narzędzie, któro statycznie
skanuje kod i sprawdza asercje (efektywnie traktując je jako static_assert), ale
takie narzędzie potrafi też wyłuskać adnotacje z komentarzy.
?
> Więc nadal twierdzę, że te asercje nie powinny być w kodzie.
No to nie dość, że sam błędnie rozumiesz, to jeszcze próbujesz to swoje błędne
rozumienie promować.
> Natomiast ja chętnie stosuję asercje w skryptach testowych. Nie chce mi się używać
wydumanych frameworków do unit testów a w testach asercje pasują idealnie.
> Ale nie w kodzie.
A skrypty testowe to nie kod?
Następne wpisy z tego wątku
- 04.09.19 16:39 bartekltg
- 04.09.19 18:43 AK
- 04.09.19 18:52 AK
- 04.09.19 19:00 AK
- 04.09.19 19:04 AK
- 04.09.19 19:07 AK
- 04.09.19 19:10 AK
- 04.09.19 19:54 g...@g...com
- 04.09.19 21:07 AK
- 04.09.19 23:05 g...@g...com
- 04.09.19 23:49 Maciej Sobczak
- 05.09.19 09:20 M.M.
- 05.09.19 13:37 M.M.
- 06.09.19 07:31 AK
- 06.09.19 10:12 M.M.
Najnowsze wątki z tej grupy
- 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
- CfC 28th Ada-Europe Int. Conf. Reliable Software Technologies
- Młodzi programiści i tajna policja
Najnowsze wątki
- 2024-11-29 Dławik CM
- 2024-11-29 [OT] Lewe oprogramowanie
- 2024-11-29 Błonie => Sales Specialist <=
- 2024-11-29 Warszawa => IT Expert (Network Systems area) <=
- 2024-11-29 Warszawa => Ekspert IT (obszar systemów sieciowych) <=
- 2024-11-29 Warszawa => Head of International Freight Forwarding Department <=
- 2024-11-29 Białystok => Inżynier Serwisu Sprzętu Medycznego <=
- 2024-11-29 Pómpy ciepła darmo rozdajoo
- 2024-11-29 Białystok => Application Security Engineer <=
- 2024-11-29 Białystok => Programista Full Stack (.Net Core) <=
- 2024-11-29 Gdańsk => Software .Net Developer <=
- 2024-11-29 Wrocław => Key Account Manager <=
- 2024-11-29 Gdańsk => Specjalista ds. Sprzedaży <=
- 2024-11-29 Chrzanów => Specjalista ds. public relations <=
- 2024-11-27 Re: UseGalileo -- PRODUKTY I APLIKACJE UŻYWAJĄ JUŻ DZIŚ SYSTEMU GALILEO