-
Data: 2019-09-04 09:53:11
Temat: Re: Jak to robią w NASA
Od: g...@g...com szukaj wiadomości tego autora
[ pokaż wszystkie 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
- Xiaomi [Chiny - przyp. JMJ] produkuje w całkowitych ciemnościach i bez ludzi
- Prezydent SZAP/USONA Trump ułaskawił prezydenta Hondurasu Hernandeza skazanego na 45 lat więzienia
- Rosjanie chwalą się prototypem komputera kwantowego. "Najważniejszy projekt naukowy Rosji"
- A Szwajcarzy kombinują tak: FinalSpark grows human neurons from stem cells and connects them to electrode arrays
- Re: Najgorszy język programowania
- NOWY: 2025-09-29 Alg., Strukt. Danych i Tech. Prog. - komentarz.pdf
- Na grupie comp.os.linux.advocacy CrudeSausage twierdzi, że Micro$lop używa SI do szyfrowania formatu dok. XML
- Błąd w Sofcie Powodem Wymiany 3 Duńskich Fregat Typu Iver Huitfeldt
- Grok zaczął nadużywać wulgaryzmów i wprost obrażać niektóre znane osoby
- Can you activate BMW 48V 10Ah Li-Ion battery, connecting to CAN-USB laptop interface ?
- We Wrocławiu ruszyła Odra 5, pierwszy w Polsce komputer kwantowy z nadprzewodzącymi kubitami
- Ada-Europe - AEiC 2025 early registration deadline imminent
- John Carmack twierdzi, że gdyby gry były optymalizowane, to wystarczyły by stare kompy
- Ada-Europe Int.Conf. Reliable Software Technologies, AEiC 2025
- Linuks od wer. 6.15 przestanie wspierać procesory 486 i będzie wymagać min. Pentium
Najnowsze wątki
- 2026-01-26 Toruń => Preseles Inżynier (background baz danych) <=
- 2026-01-26 sznurowadła kwestia prawna
- 2026-01-26 Białystok => Senior Frontend Developer React <=
- 2026-01-26 Warszawa => Consultant Microsoft Dynamics 365 Finance (F&O) <=
- 2026-01-25 Organizacja religijna i nielegalna sprzedaż
- 2026-01-25 Tego "księdza" powinni wywalić z kościołai z pracy w kościele
- 2026-01-25 Zbudowany przez studentów z Holandii samochód koncepcyjny ARIA
- 2026-01-25 Zbudowany przez studentów z Holandii samochód koncepcyjny ARIA
- 2026-01-25 "Teleportacja" polskich statków na pd. Bałtyku - rosyjska zabawa w zakłócanie GPS, Galileo, Beidou i GLONASS
- 2026-01-25 W trakcie porwania prez. Maduro wojsko USONA użyło tajnej broni masowego rażenia: Discombobulator
- 2026-01-25 rozmiar skrzyżowania
- 2026-01-24 Do czego prowadzą REGULACJE opiekuńczego państwa
- 2026-01-23 Stop na zielonym
- 2026-01-23 KSEFowy trolling
- 2026-01-23 KSEFowy trolling




Nowa era rynku nieruchomości: 9 prognoz na 2026 rok