Article View: pl.comp.programming
Article #217436Re: Narzędzia do wizualizacji systemów Embedded
From: Maciej Sobczak
Date: Mon, 29 Mar 2021 16:39
Date: Mon, 29 Mar 2021 16:39
52 lines
6329 bytes
6329 bytes
> 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. A najbardziej wynika z paragrafu o dokumentacji w naszej branży: https://en.wikipedia.org/wiki/Documentation#Documentation_in_computer_science Kod źródłowy nie znajduje się na tej liście. > 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ść. 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ą. 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ą. 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. 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. 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. > 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. > 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. > 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? Serio, dokumentację robi się gdzie indziej. -- Maciej Sobczak * http://www.inspirel.com
Technical Details
Message-ID:
<4ceb82cc-54f8-49c0-82f7-2a2464ed9f3fn@googlegroups.com>Path:
mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!newsfeed.pionier.net.pl!3.eu.feeder.erje.net!feeder.erje.net!proxad.net!feeder1-2.proxad.net!209.85.160.216.MISMATCH!news-out.google.com!nntp.google.com!postnews.google.com!google-groups.googlegroups.com!not-for-mailReferences:
<d1b39f9d-b32f-415a-8054-5383d4c09dc0n@googlegroups.com> <0732d3e3-0bad-4765-8588-b272b9834378n@googlegroups.com> <6c2d0f52-2d8e-4ca6-8766-dd8e7c7ce0b4n@googlegroups.com> <a8045016-bb5b-45ba-8664-d9ad28e91b00n@googlegroups.com> <ae0e5f1f-24c1-42bd-abfa-fd896b169110n@googlegroups.com> <657950da-97f7-420a-a3d0-13597899385en@googlegroups.com> <47e3881e-b68a-4769-8e09-d2be3159de58n@googlegroups.com> <03382e3f-a8a7-429f-9ab2-d59b48ffc44cn@googlegroups.com> <e54cb8c5-3584-42cc-a75e-e4ed197f4fc8n@googlegroups.com>Show Full Headers
Complete Article Headers
X-Received: by 2002:a05:620a:1369:: with SMTP id d9mr26407990qkl.378.1617035988482; Mon, 29 Mar 2021 09:39:48 -0700 (PDT) X-Received: by 2002:a05:620a:914:: with SMTP id v20mr26668744qkv.140.1617035988159; Mon, 29 Mar 2021 09:39:48 -0700 (PDT) Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!newsfeed.pionier.net.pl!3.eu.feeder.erje.net!feeder.erje.net!proxad.net!feeder1-2.proxad.net!209.85.160.216.MISMATCH!news-out.google.com!nntp.google.com!postnews.google.com!google-groups.googlegroups.com!not-for-mail Newsgroups: pl.comp.programming Date: Mon, 29 Mar 2021 09:39:47 -0700 (PDT) In-Reply-To: <e54cb8c5-3584-42cc-a75e-e4ed197f4fc8n@googlegroups.com> Injection-Info: google-groups.googlegroups.com; posting-host=213.108.152.51; posting-account=bMuEOQoAAACUUr_ghL3RBIi5neBZ5w_S NNTP-Posting-Host: 213.108.152.51 References: <d1b39f9d-b32f-415a-8054-5383d4c09dc0n@googlegroups.com> <0732d3e3-0bad-4765-8588-b272b9834378n@googlegroups.com> <6c2d0f52-2d8e-4ca6-8766-dd8e7c7ce0b4n@googlegroups.com> <a8045016-bb5b-45ba-8664-d9ad28e91b00n@googlegroups.com> <ae0e5f1f-24c1-42bd-abfa-fd896b169110n@googlegroups.com> <657950da-97f7-420a-a3d0-13597899385en@googlegroups.com> <47e3881e-b68a-4769-8e09-d2be3159de58n@googlegroups.com> <03382e3f-a8a7-429f-9ab2-d59b48ffc44cn@googlegroups.com> <e54cb8c5-3584-42cc-a75e-e4ed197f4fc8n@googlegroups.com> User-Agent: G2/1.0 MIME-Version: 1.0 Message-ID: <4ceb82cc-54f8-49c0-82f7-2a2464ed9f3fn@googlegroups.com> Subject: Re: Narzędzia do wizualizacji systemów Embedded From: Maciej Sobczak <see.my.homepage@gmail.com> Injection-Date: Mon, 29 Mar 2021 16:39:48 +0000 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit