-
Data: 2021-03-30 10:41:22
Temat: Re: Narzędzia do wizualizacji systemów Embedded
Od: Maciek Godek <g...@g...com> szukaj wiadomości tego autora
[ pokaż wszystkie nagłówki ]poniedziałek, 29 marca 2021 o 18:39:49 UTC+2 Maciej Sobczak napisał(a):
> > Nadal nie wyjaśniłeś dlaczego nie jest.
> Myślałem, że wystarczy praca samodzielna.
> Ideą, ktorą ja wyczuwam w tym artykule, jest odróżnienie dokumentacji od
dokumentowanego obiektu. Wynika to nawet bezpośrednio z podanych tam przykładów.
Niestety, ja nie jestem w stanie tego nigdzie wyczytać, a moje moce do wyczuwania są
najwidoczniej zbyt słabe
> A najbardziej wynika z paragrafu o dokumentacji w naszej branży:
>
> https://en.wikipedia.org/wiki/Documentation#Document
ation_in_computer_science
>
> Kod źródłowy nie znajduje się na tej liście.
Aha, czyli chodzi nie o to, co jest, ale o to, czego nie ma.
No, ale już kliknięcie dalej mamy artykuł
https://en.wikipedia.org/wiki/Software_documentation
, w którym jest m.in. omówiona koncepcja programowania piśmiennego Knutha.
> > Teraz drugi raz twierdzisz, że jeżeli diagram posłuży do wygenerowania kodu, to
nagle w jakiś magiczny sposób przestaje być dokumentacją
> Tak. Subtelne, prawda? To trochę kwestia kultury pracy i jest to miejsce na
subiektywność.
OK, to zamiast mówić "wykonywalny diagram nie jest dokumentacją", a później
uzasadniać to linkiem do Wikipedii, z którego to nie wynika, możesz powiedzieć "ja
wykonywalnego diagramu nie uważam za dokumentację, ponieważ ..."
> Ja to widzę tak, że jeżeli coś jest bezpośrednio na ścieżce albo w łańcuchu
transformacji artefaktów inżynierskich, to jest obiektem wymagającym dokumentacji a
nie dokumentacją.
Jedno drugiego nie wyklucza.
Co więcej, do dokumentacji też można tworzyć dokumentację.
I nie ma w tym nic strasznego.
> Zauważ (znowu, bo już o tym wspomniałem), że kod źródłowy to nie jest program, choć
zawsze tak skrótowo o nim myślimy i mówimy. Kod źródłowy to jedynie konfiguracja dla
generatora kodu dla niższej wartwy abstrakcji. I to nadal nie musi być program, bo
jeśli kompilator generuje kod w asemblerze, to dalej z tego jest generowany kod
obiektowy i to nadal nie jest program, bo trzeba to zlinkować i pozszywać symbole i
to może dopiero jest program, który zostanie fizycznie wykonany przez komputer. Tak,
w skrócie mówimy, że "napisałem program", ale to nie jest prawda, bo program dopiero
powstanie. Później.
> I jeżeli teraz chciałbyś w ten długi łańcuch kolejnych generacji z jednego w drugie
dołożyć jeszcze jeden etap, np. model (w postaci diagramu), z którego zostanie
wygenerowany kod źródłowy, z którego... itd., to coś się zmieniło w całej logice? Nic
się nie zmieniło. I możesz dalej sobie coś dołożyć, np. meta-skrypt generujący takie
modele z zadanej konfiguracji. I coś to zmienia? Dalej nic.
> Bo na całym tym łańcuchu masz artefakty inżynierskie, które automatyzują proces
powstania produktu końcowego. I *żaden* z tych artefaktów nie jest wtedy
dokumentacją.
Jeżeli zapoznanie się z którymkolwiek powodowałoby zwiększenie zrozumienia działania
systemu, to wówczas byłby dokumentacją.
Tak przynajmniej twierdzi Wikipedia. Bo ona mówi, że jest to "dowolny materiał,
który..."
> Bo gdyby był, to każdy z nich też by był. Ten asembler też. A to by było słabe,
prawda? W tym sensie, że słowo "dokumentacja" straciłoby swój pierwotny sens.
Tak, potencjalnie każdy jest dokumentacją, bo każdy zawiera informację, którą można
przyswoić.
Mnie się zdarza studiować asembler, dokładnie w tym celu, żeby zrozumieć, co robi
system (wtedy, kiedy to jest istotne).
Jedyna kwestia jest taka, że nie każdy artefakt w tym procesie jest zoptymalizowany
do rozumienia działania systemu na poziomie użytkowym.
> Więc subtelne rozróżnienie jest właśnie w tym, czy coś jest na ścieżce
automatycznej generacji ostatecznego produktu. Jeśli jest, to nie jest to
dukumentacja, bo ta jest z definicji obok tej ścieżki.
Nic takiego nie znalazłem na Wikipedii.
> Tak, wiem, że są ludzie, dla których kod źródłowy jest jednocześnie programem i
dokumentacją. I dziełem sztuki. Bo przecież powstało dzieło.
OK, są ludzie, dla których jest, i są ludzie, dla których nie jest. To jest w
porządku.
Są też ludzie, którzy twierdzą, że to, co oni uważają w tej kwestii, jest ostateczną
prawdą, a to co uważają inni, to jakieś bzdury. I to jest mniej w porządku.
> > co w świetle definicji z Wikipedii oznaczałoby, że nie może już służyć do
rozumienia działania systemu
> No bo nie może. To, że coś pokazuje *jak* coś działa, nie znaczy, że pokazuje
*dlaczego*. A to jest potrzebne do rozumienia.
*Dlaczego* jest potrzebne do zrozumienia dlaczego coś zostało zrobione. *Jak* jest
potrzebne do zrozumienia, jak coś jest zrobione.
W obu przypadkach mamy do czynienia ze zrozumieniem.
> > No to teraz uważaj:
> > żadna dokumentacja nie dokumentuje wszystkich aspektów budowy i użytkowania
systemów.
> Bo nie musi. Natomiast kod źródłowy w ogóle niczego nie dokumentuje.
> > https://man7.org/linux/man-pages/man3/memcpy.3.html
> >
> > Opisuje różne aspekty użycia funkcji `memcpy`, ale nie wyjaśnia, dlaczego ta
funkcja powstała, ani w jakim celu się ją stosuje.
> Bardzo dobrze opisuje. Nawet warunki poprawnego użycia są opisane. Dobry kawał
dokumentacji.
> A że jest to funkcja bardzo niskopoziomowa, to nie dowiesz się z tej dokumentacji,
w jakim celu się ją stosuje.
Innymi słowy, dowiem się *jak* tego użyć, ale nie dowiem się *dlaczego* tego użyć.
(A teraz przeczytaj to, co napisałeś akapit wyżej)
> > Bo nie wiem jak Ty, ale ja swoje komentarze do kodu źródłowego zazwyczaj trzymam
w kodzie źródłowym.
> > One *są częścią* kodu źródłowego, i wyjaśniają rzeczy, których w samym języku
programowania nie mógłbym wyrazić, albo tłumaczą, skąd się wzięły jakieś nieoczywiste
rozwiązania.
> No, to już jesteś powyżej średniej. Obiektywnie, bez żartów.
> Ale twierdzenie, że komentarze są częścią kodu źródłowego, to miejsce do nadużyć.
Bo fakt, że komentarze są z definicji ignorowane i drugi fakt, że ich związek z
otoczeniem jest jedynie umową społeczną między autorem a czytelnikiem, sprawia, że
jednak nie są częścią kodu. Umieszczenie różnych rzeczy w tym samym pliku to jedynie
fizyczny wybór pojemnika, który to wybór nie wpływa na to, czym coś jest.
> I zapewniam, że niektórzy piszą komentarze do kodu poza kodem. Robiłeś kiedyś
review kodu w jakimś narzędziu do pracy zespołowej?
Tak, zdarza mi się. I tego rodzaju komentarzy nie uznaję za część kodu źródłowego,
tylko za element konwersacji wokół kodu źródłowego.
Tak samo, jak np. narzędzie do pisania komentarzy w Wordzie odróżnia komentarz od
komentowanego tekstu.
> Serio, dokumentację robi się gdzie indziej.
Zależy jaką. Serio. Wiele rzeczy można robić na wiele sposobów.
Proszę, tu piosenka dla Ciebie (moim zdaniem powinna być hymnem inżynierów):
https://www.youtube.com/watch?v=6DiwN1LHfOU
Następne wpisy z tego wątku
- 30.03.21 23:00 Maciej Sobczak
- 31.03.21 10:42 Maciek Godek
- 05.04.21 19:10 Maciej Sobczak
- 06.04.21 08:48 Maciek Godek
- 06.04.21 09:21 Maciek Godek
- 06.04.21 18:35 Maciej Sobczak
- 06.04.21 23:46 Maciek Godek
- 07.04.21 22:07 Maciej Sobczak
- 08.04.21 12:57 Maciek Godek
- 09.04.21 16:57 Maciej Sobczak
- 10.04.21 16:26 Maciej Sobczak
- 11.04.21 23:57 Maciek Godek
- 12.04.21 11:45 Maciek Godek
- 12.04.21 17:58 Maciej Sobczak
- 12.04.21 18:07 Maciej Sobczak
Najnowsze wątki z tej grupy
- Alg. kompresji LZW
- Popr. 14. Nauka i Praca Programisty C++ w III Rzeczy (pospolitej)
- Arch. Prog. Nieuprzywilejowanych w pełnej wer. na nowej s. WWW energokod.pl
- 7. Raport Totaliztyczny: Sprawa Qt Group wer. 424
- TCL - problem z escape ostatniego \ w nawiasach {}
- Nauka i Praca Programisty C++ w III Rzeczy (pospolitej)
- testy-wyd-sort - Podsumowanie
- Tworzenie Programów Nieuprzywilejowanych Opartych Na Wtyczkach
- Do czego nadaje się QDockWidget z bibl. Qt?
- Bibl. Qt jest sztucznie ograniczona - jest nieprzydatna do celów komercyjnych
- Co sciaga kretynow
- AEiC 2024 - Ada-Europe conference - Deadlines Approaching
- Jakie są dobre zasady programowania programów opartych na wtyczkach?
- sprawdzanie słów kluczowych dot. zła
- Re: W czym sie teraz pisze programy??
Najnowsze wątki
- 2025-02-17 Kraków => MS Dynamics 365BC/NAV Developer <=
- 2025-02-17 Chrzanów => Programista NodeJS <=
- 2025-02-17 Warszawa => Node.js / Fullstack Developer <=
- 2025-02-17 Białystok => System Architect (Java background) <=
- 2025-02-17 Białystok => Solution Architect (Java background) <=
- 2025-02-17 Gliwice => Team Lead / Tribe Lead FrontEnd <=
- 2025-02-17 Gdańsk => PHP Developer <=
- 2025-02-17 Warszawa => Senior ASP.NET Developer <=
- 2025-02-17 Gliwice => Business Development Manager - Network and Network Security
- 2025-02-17 Mińsk Mazowiecki => Area Sales Manager OZE <=
- 2025-02-17 Odśnieżanie samochodu
- 2025-02-17 Katowice => Regionalny Kierownik Sprzedaży (OZE) <=
- 2025-02-17 Dęblin => JavaScript / Node / Fullstack Developer <=
- 2025-02-17 Pompiarze...
- 2025-02-16 PV teraz