-
211. Data: 2022-07-19 21:09:32
Temat: Re: Rynek pracy STM32
Od: heby <h...@p...onet.pl>
On 19/07/2022 20:54, Piotr Gałka wrote:
>> On 19/07/2022 20:08, Piotr Gałka wrote:
>>>> albo, co najważniejsze:
>>>> ModBusProtocol< UartMock > modbus;
>>> Nie rozumiem dlaczego napisałeś, że najważniejsze.
>> Bo testowanie własnego kodu invitro, unittestami, jest waznym etapem
>> pisania jakiegokolwiek kodu, z miganiem diodą włacznie.
> A w jaki sposób z tego co napisałeś wynika, że to dotyczy testowania
> własnego kodu.
Ze słowa "Mock" uzytego w nazwie klasy.
https://en.wikipedia.org/wiki/Mock_object
> Dla mnie to były po prostu trzy wersje użycia tego
> template dla trzech różnych klas. Co takiego szczególnego ma w sobie ta
> trzecia nazwa?
Magiczne zaklęcie znane każdemu, kto kiedykolwiek słyszał o unit
testach. Zawsze podaje taki przykład, aby każdy sobie uzmysłowił, że
*zawsze* masz co najmniej dwie klasy do takiego szablonu: rzeczywistą i
testujacą.
>> W templates "nie muszą być pochodne". Zgodnośc interfejsu badana jest
>> podczas wypełniania szablonu. Jeśli tylko jakaś klasa ma metodę foo()
>> i ktoś chce ją zawołać w momencie specjalizacji szablonem, to
>> zadziała. W dynamicznym polimorfizmie musisz dodawać wartwę interfejsu
>> z metodami wirtualnymi. W statycznym nie. Można by powiedzieć, że
>> statyczny polimorfizm bazuje na "opóźnionej kompilacji, do ostatniej
>> chwili, kiedy już wszystki wiadomo"
> Czyli to co jest wymagane to aby każda z tych klas miała te funkcje
> które zostaną użyte w template.
To nie jest takie trywialne. Powiedzmy, że mniej więcej.
> Poza tym każda może mieć dodatkowo inny zestaw funkcji - to nie robi.
Może. Tak samo w dynamicznym może.
>> Jesteś ograniczony i tak Builderem oraz bratem używającym z niechęcią C.
> Niechęć to była lata temu. Teraz już lubi C.
Można pisac w C jak w asemblerze ;) To może było złudzenie z tym
lubieniem :P
> On po prostu uważał, że ważny jest algorytm, a zapisać go już można w
> dowolnym języku.
Tak też kiedyś myślano. Obecnie mysli się inaczej: ważne jest wyrażenie,
co chcesz uzyskać, aby kompilator dobrał optymalny kod.
Tak właśnie działa C++: tam bardziej określasz co chcesz, a nie jak chcesz.
>> Wątpie, aby cokolwiek z C++11 miało jakąkolwiek wartość przed RAII czy
>> szablonami. Nie warto. No może dla "auto" warto.
> Właśnie "auto" mi się podobało i nie wiem jak się to nazywa, ale takie
> tworzenie w locie (w jednej linijce) klasy z jakąś jedną funkcją (może
> konstruktorem) co się okazało z jakiegoś powodu było często potrzebne i
> wprowadzono nowy sposób zapisu tego w kodzie źródłowym.
Lambda. Niestety lambda w embedded, w restrykcjch związanych ze stosem,
może być lekko nieciekawa, jesli użyjesz jej bezmyslnie. Choć bardzo
często kompilator usuwa lambdę i generuje kod optymalnie. Ogólnie należy
byc ostrożnym. Pod spodem dzieje się sporo dziwnych rzeczy.
>>> A statyczny polimorfizm jest w temacie embedded a tam są środowiska
>>> dostarczane przez producentów procków więc pewnie bardziej aktualne.
>> Nie widuję.
> A myślałem, że jak dostarczają środowisko to tam z definicji będzie
> można pisać w C++.
Raczej nie. C++ w embedded musi się rozpychać w lasie ignorancji.
Naprawdę dużo dobrego zrobiło Arduino, że tylnymi drzwiami wprowadzono
C++. Okaząło się że nie gryzie, działa i to na 8-bit procesorach. Magia.
A miało wybuchać.
>> Nie. Za późno. Jesli mysli asemblerem, to nie przekonasz. Nie próbuj
>> nawet. Jesli robi dobrze to, co robi, to niech robi, to co robi.
> Kiedy Ty od czasu do czasu piszesz o zabetonowanych środowiskach
> siedzących w swoim grajdołku z ubiegłego wieku.
Jesli ktoś ma warsztat który działa, to bym go nie zmieniał.
Rzecz nie w tym, aby zrobić rewolucję, rzecz w tym, aby sobie zdawać
sprawę, że można lepiej. I być może kiedyś małymi krokami dojśc do tego
"lepiej" w praktyce.
Problemem jest postrzeganie "lepiej" jako "gorzej" bo jest poza strefą
komfortu. I z tym walczę. Również u siebie.
-
212. Data: 2022-07-19 21:18:41
Temat: Re: Rynek pracy STM32
Od: Janusz <j...@o...pl>
W dniu 2022-07-19 o 20:56, heby pisze:
> Ale zadaniem tych przykładów jest, abyś odszczekał debilizmy o
> Harvardzie z problemem z metodami wirtualnymi.
Było o polimorfizmie, coś ci się mykeci w główce. Templaty to inna
historia i też przydatne w embeded jak tornia w nodze.
--
Janusz
-
213. Data: 2022-07-19 21:20:28
Temat: Re: Rynek pracy STM32
Od: Janusz <j...@o...pl>
W dniu 2022-07-19 o 20:59, heby pisze:
> On 19/07/2022 20:43, Janusz wrote:
>>> bez tego znika Ci kod, to robisz coś bardzo, bardzo źle?
>> Znowu nie masz pojęcia, tak voiltale powoduje że kod pracuje tak jak
>> ja chcę a nie jak kompilator myśli że ma pracować.
>
> vialtile używane jest tylk ow sytuacji, kiedy *coś* może zmienić
> zawartość zmiennej *nieoczekiwanie*.
>
> Takie sytuacje to:
>
> Inny wątek.
>
> Przerwanie.
>
> Rejestr sprzętowy.
>
> Tylko w jednej sytuacji z tej listy używamy volatile. W dwóch używamy
> barier. Istnieją mikroskopije architektury, w których nie ma barier, ale
> teraz nawet miganie diodami robi się na ARMach.
>
> Jeśli wyoptymalizowało Ci kod, który korzysta ze zmiennej i "naprawiłeś"
> to przez delklarację volatile, to masz naprawdę nikłe pojęcie o tym, jak
> pracuje kompilator i gdzie jest przyczyna niedziałania.
>
> Współczuję.
Mylisz się, używa się jako informację żeby kompilator nie optymalizował
tej zmiennej, widzisz wydaje ci się że wszystko wiesz a jednak nie,
trafiony, zatopiony.
--
Janusz
-
214. Data: 2022-07-19 21:22:55
Temat: Re: Rynek pracy STM32
Od: Janusz <j...@o...pl>
W dniu 2022-07-19 o 19:13, Piotr Gałka pisze:
> W dniu 2022-07-19 o 18:39, Janusz pisze:
>> W dniu 2022-07-19 o 17:45, Piotr Gałka pisze:
>>> I jeszcze chyba trochę brakuje KiCadowi do Protela 3 pochodzącego z
>>> 1997r.
>> Mi tam nic nie brakuje,a to co ostatnio zrobili z rozsuwaniem ścieszek
>> to bajka. No i za to go też cenię że jest szybki i łatwy w obsłudze,
>> protel to kobyła która jest potwornie przeładowana i trzeba wiedzieć
>> gdzie co zmienić bo jak sie nie wie to mozna długo szukać.
>>
>
> Co do Protela to wydawało mi się, że Protel3 który mamy nie był aż tak
Tego nie znam.
> przeładowany jak Protel 98 bo coś tam bardzo pozmieniali z plikami
> wtedy, ale Protela 98 praktycznie nie znam.
No to właśnie o nim pisałem, później jak wszedł DX to sobie z nimi dałem
spokój,
tym bardziej że używałem amatorsko a DX już się nie dało tak używać.
--
Janusz
-
215. Data: 2022-07-19 21:25:54
Temat: Re: Rynek pracy STM32
Od: Janusz <j...@o...pl>
W dniu 2022-07-19 o 20:21, heby pisze:
> Jak by powiedział, to od razu by się obrazili, jak Janusz.
Możesz się odstosunkować ode mnie?
--
Janusz
-
216. Data: 2022-07-19 21:27:37
Temat: Re: Rynek pracy STM32
Od: "Grzegorz Niemirowski" <g...@g...net>
Janusz <j...@o...pl> napisał(a):
> Nie przejmuj się, mnie też nie przekonał ani on ani poprzednicy, jak
> pracujesz sam nad kodem to i sam sobie panujesz nad kolejnymi wersjami.
Nie panujesz, bo po latach zapominasz dlaczego tą lub tamtą linijkę
napisałeś właśnie tak. Albo kiedy wprowadziłeś daną zmianę. Kontrola wersji
świetnie to rozwiązuje, szczególnie jeśli pisze się sensowne komentarze do
commitów. Znika też problem zmian wprowadzanych "na chwilę" i wycofywania
ich.
> Co innego praca zespołowa i chyba głównie w takiej pracy sie to uzywa, ale
> dla np mnie jest strasznie upierdliwe.
Praca zespołowa jest praktycznie niemożliwa bez systemu kontroli wersji.
Poza tym kłania się wspomniana już integracja z CI/CD.
--
Grzegorz Niemirowski
https://www.grzegorz.net/
-
217. Data: 2022-07-19 21:32:29
Temat: Re: Rynek pracy STM32
Od: Janusz <j...@o...pl>
W dniu 2022-07-19 o 21:27, Grzegorz Niemirowski pisze:
> Janusz <j...@o...pl> napisał(a):
>> Nie przejmuj się, mnie też nie przekonał ani on ani poprzednicy, jak
>> pracujesz sam nad kodem to i sam sobie panujesz nad kolejnymi wersjami.
>
> Nie panujesz, bo po latach zapominasz dlaczego tą lub tamtą linijkę
> napisałeś właśnie tak. Albo kiedy wprowadziłeś daną zmianę. Kontrola
Przecież to samo mogę napisać w komentarzu i skopiować na początek pliku
gdzie opisuję wszystkie zmiany albo mieć osobnym pliku opisowym bez
całych ceregieli z SVN-em.
--
Janusz
-
218. Data: 2022-07-19 21:38:35
Temat: Re: Rynek pracy STM32
Od: Piotr Gałka <p...@c...pl>
W dniu 2022-07-19 o 21:09, heby pisze:
> Ze słowa "Mock" uzytego w nazwie klasy.
Acha.
> Tak też kiedyś myślano. Obecnie mysli się inaczej: ważne jest wyrażenie,
> co chcesz uzyskać, aby kompilator dobrał optymalny kod.
To mi zakrawa na Lisp czy Prolog.
Assembler 8051 najpierw próbowałem napisać w Prologu :)
> Lambda. Niestety lambda w embedded, w restrykcjch związanych ze stosem,
> może być lekko nieciekawa, jesli użyjesz jej bezmyslnie.
Cały czas mieszasz to co ja chciałbym popróbować pisząc na komputer z
embedded nie związanym ze mną tylko z moim bratem.
P.G.
-
219. Data: 2022-07-19 21:47:55
Temat: Re: Rynek pracy STM32
Od: "Grzegorz Niemirowski" <g...@g...net>
Janusz <j...@o...pl> napisał(a):
> Przecież to samo mogę napisać w komentarzu i skopiować na początek pliku
> gdzie opisuję wszystkie zmiany albo mieć osobnym pliku opisowym bez
> całych ceregieli z SVN-em.
To nie jest to samo. W systemie kontroli wersji masz opis do zmiany
(commita) obejmującej różne linie w różnych plikach. Widzisz, że w zmianie z
dnia tego i tego, o komentarzu takim a takim, w pliku a.c wstawiłeś te
linijki a te zmodyfikowałeś, a w pliku b.c takie linijki skasowałeś. Każda
lininijka kodu ma opis (powiązanie ze zmianą, która jej dotknęła). Opisy w
treści pliku nijak tego nie zapewniają. Nie mówiąc już o historii linii, w
tym tych usuniętych. Piszesz jakbyś nigdy nie używał systemu kontroli
wersji.
https://docs.github.com/assets/cb-135736/images/help
/repository/git_blame.png
--
Grzegorz Niemirowski
https://www.grzegorz.net/
-
220. Data: 2022-07-19 22:04:33
Temat: Re: Rynek pracy STM32
Od: heby <h...@p...onet.pl>
On 19/07/2022 21:18, Janusz wrote:
>> Ale zadaniem tych przykładów jest, abyś odszczekał debilizmy o
>> Harvardzie z problemem z metodami wirtualnymi.
> Było o polimorfizmie
Oba przykłądy pokazują polimorfizm. Jedne dynamiczny (z metodami
wirtualnymi), drugi statyczny.
>, coś ci się mykeci w główce.
Nie, teraz się wycofujesz z debilizmów. Popkoru mam jeszcze trochę,
dawaj dalej.
> Templaty to inna
> historia i też przydatne w embeded jak tornia w nodze.
Z faktu, ze ich nie pojmujesz, nic nie wynika dla faktów.