-
Data: 2022-07-21 15:34:32
Temat: Re: Rynek pracy STM32
Od: heby <h...@p...onet.pl> szukaj wiadomości tego autora
[ pokaż wszystkie nagłówki ]On 21/07/2022 15:01, Piotr Gałka wrote:
> To wiem. Ale mógłbyś mieć więcej tolerancji gdy ktoś się walnie i potem
> nie umie się z tym pogodzić.
Przyjmuje do wiadomości.
> Brat niedawno nie zostawiał suchej nitki na jakimś przykładowym
> programie USB dla tego Silabsa. Jak pisałeś o metodach znanych od lat
> 80-tych oddzielenia kodu od hardware'u to miałem wrażenie, że ten
> program co mu się tak bardzo nie podobał to pewnie był napisany według
> tych metod.
Zakładałeś, że mógł nie zrozumieć idei?
Codziennie muszę walczyć z takim podejściem w sobie: wydaje mi się że to
jest źle napisane. Ale jednoczesnie wiem, nie pisali tego idioci. Na sam
koniec zazwyczaj okazuje się, że nie rozumiałem i jak zrozumiałem, to
już się takie nie wydaje.
Ten pierwszy odruch "przeciez to jest źle!" należy w sobie zdusić ;)
> swój kawałek do którego przydzielone są np. 3 nogi i program pisze tak,
> jakby pozostałych nóg nie było. Pewnie użył jakąś bibliotekę gdzie ktoś
> zdefiniował jakąś abstrakcję obejmującą te 3 linie i ma w dupie co się
> dzieje naokoło - Jak można tak pisać !!
Tutaj dam ci kontrprzykład:
Taki kod: Foo = 1<<BAR;
Jaką masz pewnośc, że BAR to numer bitu a nie wartość binarna bitu? Obie
to int. Obie się skompilują.
Ktoś może powiedzieć: ale to trzeba wiedzieć!
Nie. Kiedy pisałem sporo kodu pod SAM7, programiści z Atmela mieli
bardzo swobodne metody na nazywanie wartości binarnych i numerów bitów i
*nigdy* nie było wiadomo. Czarę goryczy przelały pliki konfiguracyjne do
cpu, gdzie raz było #define BAR 16 a w innym, podobnym, #define BAR 4
(najwidoczniej ktoś poprawił).
Ten problem da się rozwiązać za pomocą C++ i szablonów. W taki sposób,
że błedne użycie NIE będzie możliwe. Kod szablonowy będzie dośc długawy,
ale na sam koniec będziesz to widział u siebie jako Foo |= BAR; lub
podobnie. Ba, nie będzie się dało pomylić rejestru, flagi będa
przypisane do konkretnego.
Czy to dobrze?
Okazuje się że nie.
Przychodzi embedowiec, widzi te wszystkie "debilizmy z templates" i
biadoli ile to kodu w CPU zjada i dlaczego nie działa z Harvardem.
A zjada 0 Flasha. Tak naprawdę, to "kod templaetowy" wykonuje się na
etapie kompilacji, jako metajęzyk.
... po czym miesiąc szuka kodu, w którym pomylił flagę.
Czasami ciezko pojąć, że ludzie wkręcają śrubki młotkiem, ale tak to
wygląda z mojej perspetkywy.
Następne wpisy z tego wątku
- 21.07.22 15:34 heby
- 21.07.22 16:25 Janusz
- 21.07.22 16:25 Piotr Gałka
- 21.07.22 16:27 Janusz
- 21.07.22 16:29 Piotr Gałka
- 21.07.22 16:33 Janusz
- 21.07.22 16:40 Janusz
- 21.07.22 16:41 heby
- 21.07.22 16:43 heby
- 21.07.22 16:46 heby
- 21.07.22 16:48 heby
- 21.07.22 17:37 Janusz
- 21.07.22 17:42 Janusz
- 21.07.22 17:49 heby
- 21.07.22 17:58 heby
Najnowsze wątki z tej grupy
- 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
- Dziwny schemat wzmacniacza m.cz.
- We Wrocławiu ruszyła Odra 5, pierwszy w Polsce komputer kwantowy z nadprzewodzącymi kubitami
- CGNAT i ewentualne problemy
- wzmacniacz mocy
Najnowsze wątki
- 2025-06-28 Upadłość i zwolnienia [w Diorze, która była pol prod. głośników - przyp. JMJ]
- 2025-06-28 Taśma izolacyjna do prac elektrycznych
- 2025-06-27 Recenzja 3.1A ;) w 6 gniazdach...
- 2025-06-27 Re: Recenzja 3.1A ;) w 6 gniazdach...
- 2025-06-27 Re: Recenzja 3.1A ;) w 6 gniazdach...
- 2025-06-27 Re: Recenzja 3.1A ;) w 6 gniazdach...
- 2025-06-28 China => Production Coordinator / Representant Product Dev <=
- 2025-06-28 Gdynia => Przedstawiciel handlowy / KAM (branża TSL) <=
- 2025-06-28 Piaseczno => Developer .NET <=
- 2025-06-28 Warszawa => Specjalista ds. Sprzętu Komputerowego <=
- 2025-06-28 Warszawa => Recruiter 360 <=
- 2025-06-28 Warszawa => Sales Assistant <=
- 2025-06-28 Warszawa => PC Hardware Expert / Specjalista PC <=
- 2025-06-27 Warszawa => Fullstack PHP Developer <=
- 2025-06-27 Gdańsk => Programista Delphi <=