-
Data: 2021-11-18 21:02:19
Temat: Re: AVR po latach
Od: heby <h...@p...onet.pl> szukaj wiadomości tego autora
[ pokaż wszystkie nagłówki ]On 18/11/2021 20:35, Mateusz Viste wrote:
>> 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.
> Masz 30 miejsc wyjścia z funkcji? No, to faktycznie przykładny kod.
Prawidłowe założenie brzmi: masz N wyjśc z funkcji. Zakładanie że "N
jest małe i sobie jakoś poradzimy" jest absurdalnie niebezpiecznie.
>> 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.
> #define return goto gameover
Wylatujesz za drzwi nie tylko z kopniakiem, ale jeszcze z wilczym
biletem na pracę w IT.
> albo
> static void func_internal() {
> [...]
> }
> void func() {
> _disable();
> func_internal();
> _enable();
> }
Wlasnie napisałeś kiepski, ale emulator RAII. I po co było bredzić o goto?
> Wskazuję tylko, że innowacja którą przedstawiasz jest bardzo dyskusyjna.
To nie jest innowacja, tylko codzienność pracy programisty C++.
> I nie jest to z mojej strony krytyka C++ (którego znam słabo)
Widzę.
>, tylko
> podanego przykładu.
Podany przykład jest uproszczony na potrzeby usenetu. Jeśli nie widzisz
abstrakcyjnie zastosowania RAII, ale widzisz przykład włączenia przerwań
jako jedyne zastosowanie, to nic nie poradzę.
> Zapytałem o jakiś poważniejszy przykład, ale
> wolałeś się obrazić.
Ja się nie obrażam, mnie w ogóle ciezko obrazić.
Poważniejszy przykład mogę podrzucić jeśli chcesz, ale czy aby na pewno
pojmiesz o co chodzi? Sprawdźmy jakiś trywialny:
char value = cast_with_range_check< char >( intValue );
W kodzie produkcyjnym nic się nie zmienia, w kodzie dla unit testów masz
tam w środku zaawansowane sprawdzanie czy wartość mieści się w zakresie
typu.
>> Wiec albo chcesz mieć szambo, jak proponujesz, albo automatyzację. I
>> tak, nie da się tego zrobic w C.
> Patrz wyżej.
Wyżej napisałes emulację RAII. I napisałeś ja w zasadzie tylko po to aby
nie użyć C++, ale użyć RAII. Troche żałosne.
Mam kolegę, głeboko wierzącego w wyższosć C nas wszystkim, w którego
kodzie napotkałem prawie kompletną emulację obiektowości, wliczając
tablice wirtualne, na C i z kupą bugów. Zapytany o to po ch... to pisać
od zera, skoro to samo ma w C++, obraził się.
Napisałeś kiepski emualtor RAII tylko po to aby nie używać RAII. Widzę
podobieństwa między tymi sytuacjami.
>> 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.
> No fajnie, ale to też nie ma nic wspólnego z C++.
Kod sprawdzający statycznie flagi przekazywane do rejestrów sprzetowych?
Ma bardzo dużo.
>> Pisałeś kiedyś coś więcej, niż hello world?
> Już któryś raz zamiast pokazać kod stosujesz argumenty ad personam.
Kodu Ci nie pokaże, bo został sprzedany i nie jest moją własnościa.
Musiałbym napisac go ponownie ale mi się najzwyczajneij nie chce,
ponieważ nigdy go nie użyjesz. A udowanianie oczywistości nie jest tego
warte.
> To
> świadczy zarówno o tobie, jak i o idei którą tak zaciekle bronisz.
Ja tu bronie jakiejś idei? Robisz gówniany kod na goto, który świadczy o
zerowej wiedzy z zakresu bezpieczeństwa kodu i to w imię "Łojezu, nie
wolno używać C++, bo przyjdzie babajaga i zje!" i to ja czegoś zaciekle
bronię? Żartujesz?
To co, piszesz to zabezpieczneie przed podaniem złej flagi do uartu, w C?
Następne wpisy z tego wątku
- 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
- 19.11.21 10:01 Mateusz Viste
- 19.11.21 10:18 heby
- 19.11.21 10:53 J.F
- 19.11.21 10:59 Mateusz Viste
- 19.11.21 11:07 Mateusz Viste
- 19.11.21 11:34 Mateusz Viste
- 19.11.21 13:37 Astralny Rębajło
Najnowsze wątki z tej grupy
- Rejestrator temperatur - termopara, siec
- Router LTE z możliwością zmian MTU
- Fajny film widziałem...
- Jaka ładowarka sieciowa do Iphona?
- Taśma izolacyjna do prac elektrycznych
- Recenzja 3.1A ;) w 6 gniazdach...
- Re: Recenzja 3.1A ;) w 6 gniazdach...
- Re: Recenzja 3.1A ;) w 6 gniazdach...
- Re: Recenzja 3.1A ;) w 6 gniazdach...
- Wkrętarki, wiertarki...
- Zasilacz impulsowy 12V 10A, coś godnego uwagi jako zamiennik akumulatora wkrętarki
- Mouser - koszt wysyłki
- [OT] Jak wycinac ksztalt w piance lub styropianie?
- FV--> ciepła woda w kranie
- Szok
Najnowsze wątki
- 2025-07-12 Warszawa => PC Hardware Expert / Specjalista PC <=
- 2025-07-12 Warszawa => Account Manager - Usługi rekrutacyjne <=
- 2025-07-12 Warszawa => Administrator IT <=
- 2025-07-12 Warszawa => IT Administrator <=
- 2025-07-12 Warszawa => Asystent/tka ds. Administracji <=
- 2025-07-12 Warszawa => Specjalista/stka ds. Organizacji <=
- 2025-07-12 Warszawa => MENA New Business Manager <=
- 2025-07-12 Gdynia => Controlling systems Consultant <=
- 2025-07-12 Warszawa => Developer Microsoft Dynamics 365 Finance & Operations (D36
- 2025-07-12 Warszawa => Programista Microsoft Dynamics 365 Finance & Operations (D
- 2025-07-12 Warszawa => Dyrektor IT <=
- 2025-07-12 Warszawa => IT Director <=
- 2025-07-12 Czy wypowiedź Kaczyńskiego o Braunie jest skarżalna? ["działa z OBCEJ inspiracji"]
- 2025-07-11 Rejestrator temperatur - termopara, siec
- 2025-07-11 DPD, przeniesienie numerów z a2mobile i z Orange