-
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
- Pytanie o transformator do dzwonka
- międzymordzie USB 3.2 jako 2.0
- elektronicy powinni pomysleć o karierze elektryka
- jak szybko plynie prad
- Płytki Milkv-Duo
- Światłowód między budynkami
- POtrzebny bufor 3.3<>5V, jedonkieruowy, trójstanowy, wąski
- retro
- Bezprzewodowe polączenie Windows z projektorem
- rozklejanie obudowy
- Prośba o identyfikację komponentu
- Smart gniazdko straciło na zasięgu wifi?
- Smart gniazdko straciło zasięg wifi?
- nurtuje mnie
- dziwna sprawa...
Najnowsze wątki
- 2024-11-08 Belka
- 2024-11-09 pierdolec na punkcie psa
- 2024-11-09 Warszawa => Sales Executive <=
- 2024-11-09 Wrocław => SAP BTP Consultant (mid/senior) <=
- 2024-11-09 Warszawa => ECM Specialist / Consultant <=
- 2024-11-09 Warszawa => Senior Frontend Developer (React + React Native) <=
- 2024-11-10 TVN donosi: Obywatelskie zatrzymanie policjanta (nie na służbie)
- 2024-11-08 Warszawa => Head of International Freight Forwarding Department <=
- 2024-11-08 Warszawa => Key Account Manager <=
- 2024-11-08 Szczecin => Key Account Manager (ERP) <=
- 2024-11-08 Białystok => Full Stack web developer (obszar .Net Core, Angular6+) <
- 2024-11-08 Wrocław => Senior PHP Symfony Developer <=
- 2024-11-08 Warszawa => QA Engineer <=
- 2024-11-08 Warszawa => QA Inżynier <=
- 2024-11-08 Warszawa => Key Account Manager <=