-
Data: 2021-11-18 19:40:28
Temat: Re: AVR po latach
Od: heby <h...@p...onet.pl> szukaj wiadomości tego autora
[ pokaż wszystkie nagłówki ]On 18/11/2021 19:19, Mateusz Viste wrote:
> 2021-11-18 o 18:38 +0100, heby napisał:
>> Zmniejszyłem je. Z wielu miejsc usunąłem.
>
> Za pomocą tego magicznego guard?
Tak. Wyeliminował wszystkie źrodła błedu "zapomniałem włączyć" teraz i w
przyszłosci, z tej funkcji.
Oczywiście można go usunąć przypadkiem. Można wiele rzeczy zrobić, to
tylko białko. Idę o zakłąd że ilosc takich przypadków będzie o rząd
wielkosci mniejsza, niż przypadków "zapomniałem gdzieś zawołać goto w 30
miejscach".
> Wmówiłeś to sobie, uprawiasz tylko
> kreatywną księgowość.
Dziwnym trafem ta "kreatywna księgowość" jest powszechnie używanym
wzorcem projektowym w całym C++, dając zaskakująco wysoki poziom
bezpieczeństwa transakcji.
Podpowiem kilka generyków: std::mutex::scoped_lock, boost::scoped_ptr,
boost::scoped_array itd.
Każdy da się napisać na goto. I wylecieć kopniakiem za drzwi, bo to nie
lata 60te.
>> Ale jest rozległy. I co teraz? Oferujesz "gapmiy się bardziej
>> wnikliwie". Ja oferuje "upewnijmy się, że to co można, da się
>> zautomatyzować".
> Ale ja przecież nie proponuję gapienia się.
Dokładnie to oferujesz. Mówisz: "ale uważaj, przed każdym wyjściem z
funkcji musisz zawołać goto". Ja tego nie mówie. Samo prawidłowo zawoła
się to, co ma się zawołać, nie muszę żyć w ciągłym strachu, mam 1
miejsce a nie 30, do popełnienia błedu.
> Objaśniam tylko, że to co
> starasz się wypromować jako "argument za C++ w embedded" wcale nie
> potrzebuje C++.
Zrobiłeś jakiś mechanizm działajacy w podobny sposob na poziomie *tego*
konkretnie przypadku. Po refaktoringu środka funkcji, ja nie muszę się
martwić i mam gwarantowane wywołanie sei(), Ty musisz się męczyć i
przeglądać kod, czy ktoś nie zapomniał zawołać goto. Innymi słowy mój
zysk to bezpieczeństwo refaktoringu tej funkcji, bezpieczeństwo jej
pisania i przejrzystośc kodu.
Wiec albo chcesz mieć szambo, jak proponujesz, albo automatyzację. I
tak, nie da się tego zrobic w C. Można tylko napisać identyczny przykład
i wymachiwać "nie ma żadnej różnicy". Ona jest, nie widzisz jej, bo nie
piszesz nic więcej niż miganie diodą i nigdy nie przyszło Ci do głowy że
ktoś będzie tą funkcję zmieniał, w czasie jej życia, 100 razy.
>> A ile płacisz?
> Czyli ta łatwość usuwania białka C++ w ramach flag wymaga założenia
> projektu i zainwestowania roboczogodzin?
Tak. Ja inwestuje raz. Kod taki (o podobnej funkcjonalnosci) napisałem
już kilka razy, komercyjnie. Za każdym razem używałem go w setkach, jak
nie tysiącach miejsc. Więc ja zapłaciłem raz, a dobrze.
Niejaki Mateusz, za każdym razem jak robi UART= płaci na nowo koszta
potencjalnych bugów, w kółko używając technik z epoki kamiennej do
podwyższania jakości kodu, czyli cichej modlitwy, że się nie pomylił.
Przykro mi, że kod nie jest za darmo. Jestem znudzony edukowaniem za
friko każdego, kto jest za wielkim ignorantem, aby zrobic to samodzielnie.
> No to ja dziękuję za taki
> postęp.
Nie pojmujesz nawet tego, że ten kod da się napisać generycznie i używać
gdzie chcesz, *zmniejszajac* koszty błedów.
Pisałeś kiedyś coś więcej, niż hello world?
> Jak ma być skomplikowanie to równie dobrze w C mogę sobie
> złożyć system do sprytnego zarządzania flagami.
To złóż i pochwal się. Ale nie zapłacę za niego z prostej przyczyny: nie
będzie mieć śladu zalet względem statycznych checków C++. Wiem to
dlatego, że widziałem ich na pęczki. Każdy gówno wart.
A najbardziej zabawne, że to dopiero początek tego, co C++ pozwala
zrobić dobrego w kodzie embedded, a Ty już nie pojmujesz gdzie zalety,
bo ci assembler przesłania.
Następne wpisy z tego wątku
- 18.11.21 19:55 Dawid Rutkowski
- 18.11.21 20:03 Piotrek
- 18.11.21 20:26 heby
- 18.11.21 20:35 Mateusz Viste
- 18.11.21 20:47 heby
- 18.11.21 20:56 J.F
- 18.11.21 21:02 heby
- 18.11.21 21:25 a...@m...uni.wroc.pl
- 18.11.21 21:43 Mirek
- 18.11.21 21:47 Mateusz Viste
- 18.11.21 22:06 heby
- 19.11.21 08:57 Mateusz Viste
- 19.11.21 09:33 Mateusz Viste
- 19.11.21 09:43 J.F
- 19.11.21 09:44 heby
Najnowsze wątki z tej grupy
- Jak shakować windę
- Sterowanie bezprzewodowe do wbudowania
- NC vs NO
- Jak dzięki mojemu pomysłowi amerykańce z Google przyspieszyli TV
- Jak dzięki mojemu pomysłowi amerykańce z Google przyspieszyli TV
- Żyrandol w wersji ze ściemnianiem.
- Napięcie w gniazdku na wszystkich żyłach po wyłączeniu bezpieczników - zgłaszać do elektrowni?
- Elektryczna łapka i szerszeń
- moduł dtmf
- 0.5V
- Odbiór SDR na mikrokontrolerach
- Taki uziom....
- Nałożnica?
- ładowanie akku
- Mikrofala
Najnowsze wątki
- 2024-09-14 Canon 550D
- 2024-09-14 Odcinkowy Pomiar Prędkości. NIELEGALNY w Polsce!!! Nie daj SIĘ!
- 2024-09-14 Warszawa => Menadżer Okręgu <=
- 2024-09-14 Łódź => Spedytor Międzynarodowy <=
- 2024-09-14 Warszawa => Kierownik Działu Spedycji Międzynarodowej <=
- 2024-09-14 Warszawa => Technical Leader (Java Background) <=
- 2024-09-14 Gdynia => Spedytor Międzynarodowy <=
- 2024-09-14 k.o.mendant
- 2024-09-12 Z cyklu POJEBANA UE: samochody elektryczne nie mogą być tanie i dobre
- 2024-09-13 dodanie karty graf zawiesza komp
- 2024-09-13 Sezon grzewczy kurła
- 2024-09-13 Warszawa => Spedytor Międzynarodowy <=
- 2024-09-13 Warszawa => Mid Account Manager <=
- 2024-09-13 Warszawa => QA Engineer <=
- 2024-09-13 Białystok => Frontend Developer (Angular area) <=