🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: pl.comp.programming
Article #217424

Re: Narzędzia do wizualizacji systemów Embedded

#217424
From: Maciej Sobczak
Date: Tue, 06 Apr 2021 16:35
52 lines
6331 bytes
> > Na tej samej zasadzie co deska o długości 1.2m jest samokomentująca, bo przecież widać, że ma 1.2m.
> O, wyśmienity przykład. 
> Jeżeli masz system oznaczania desek (np. naklejasz albo wypalasz oznaczenie na elemencie), i zaprojektujesz oznaczenia w ten sposób, że masz deskę typu A, deskę typu B, itd., to będziesz potrzebował dodatkowej dokumentacji, żeby sobie przetłumaczyć "typ" deski na jej wymiar. Natomiast jeżeli zamiast "A" napiszesz na desce "120x15x2", i deska będzie miała wymiary 120cm x 15cm x 2cm, to nie będziesz potrzebował tej dodatkowej dokumentacji. 

Nadal jednak deska nie jest dokumentacją.
Nawet pomimo faktu, że patrząc na deskę odpowiednio długo, można się o niej czegoś dowiedzieć.

> W programowaniu jest podobnie, tylko że bardziej.

Bo medium może być współdzielone. Nadal jednak odróżniam te dwie rzeczy.

> Teraz zwróć uwagę, że zamiast "maxNumberOfBananas" mogłeś użyć np. nazwy "x" albo "mnb".

Mogłem. Ale w większym programie kończą mi się literki. No i mogłem też na desce napisać "deska". Albo nawet "DESKA".
Pomimo ułatwienia sobie życia przez staranne nazewnictwo, nadal nie ma tam dokumentacji.

> Rzecz jasna jest tak, że kod źródłowy może dokumentować zachowanie systemu lepiej albo gorzej

Kod nie dokumentuje działania, tylko go definiuje. Jest specyfikacją dla generatora kodu, już pisałem o tym.
Można do czegoś takiego dopisać dokumentację. Ale w wielu przypadkach się tego nie robi, bo w naszej dziedzinie reverse engineering też jest powszechnie akceptowalną metodą poznawczą.

> Wydaje mi się też, że Twoja teoria miałaby problem z wyjaśnieniem istnienia tego artykułu na osławionej Wikipedii: 
> 
> https://en.wikipedia.org/wiki/Self-documenting_code 

Ja w ogóle nie podejmuję się wyjaśniania istnienia czegokolwiek.
Również tego:

https://en.wikipedia.org/wiki/Self-documenting_code#Criticism

Self-documenting code to taka ładna nazwa na brak dokumentacji. Zdecydowanie lepiej jest powiedzieć na standupie, że się napisało self-documenting code (positive thinker, constructive attitude, involvement, engagement, etc.), niż że się nie napisało dokumentacji.
Ale jak już pisałem, reverse-engineering jest akceptowalną metodą poznawczą, więc w czym problem?

> Oczywiście nie jest tak, że sprawa nie jest w jakimś stopniu osobliwa: jak wpiszesz w wyszukiwarkę "self-documenting", to główną podpowiedzią (przynajmniej u mnie) jest właśnie "code", i wygląda na to, że -- poza kodem źródłowym -- niewiele jest innych artefaktów, które mogłyby mieć potencjał "dokumentowania siebie samych"

Słuszne spotrzeżenie, ale wyjaśnienie tego jest bardzo proste. Otóż wbrew temu, co my, jako programiści, lubimy o sobie myśleć, to nasza branża jest właśnie jedną z najbardziej dziadowskich jeśli chodzi o akceptację niskiej kultury pracy. Dlatego w innych branżach inżynierskich nie spotkasz czegoś takiego jak samo-dokumentujący się artefakt, bo z punktu widzenia każdego dojrzałego procesu produkcyjnego albo systemu kontroli jakości, jest to po prostu przypadkowy śmieć.
Spróbuj popatrzeć na branżę elektroniczną, jako tą powiedzmy najbliższą technicznie naszej (w systemach embedded z płynną granicą pomiędy nimi), i weź coś najprostszego, tak naprawdę na samym dole drabinki społecznej, czyli no nie wiem, np. najbardziej banalny rezystor 100Ohm, 1%, taki co to kosztuje poniżej jednego grosza za sztukę, np:

https://www.tme.eu/pl/details/crcw0805100rfktabc/rezystory-smd-0805/vishay/

A tak wygląda dokumentacja do tego najprostszego na świecie produktu:

https://www.tme.eu/Document/622e28308c06d160637f2b14751ba16b/Data%20Sheet%20CRCW_BCe3.pdf

Rozumiesz już?
My jesteśmy w lesie.

To co my robimy w naszej pracy to nie jest dokumentacja, tylko kpiny. I właśnie to próbuję nieśmiało tu zasygnalizować.
Oczywiście, możemy sobie dalej tkwić w wirtualnym świecie poklepujących się nawzajem po ramieniu amatorów tworzących "self-documenting code". Czy co tam. Ale możemy też pokusić się o refleksję.

-- 
Maciej Sobczak * http://www.inspirel.com
Technical Details
Message-ID: <2c6d9a96-7678-4293-9a30-40798dc822a4n@googlegroups.com>
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!newsfeed.pionier.net.pl!2.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
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> <4ceb82cc-54f8-49c0-82f7-2a2464ed9f3fn@googlegroups.com> <ef31edca-80b2-45fa-be5c-3b8a3522acedn@googlegroups.com> <3c9199cd-da3a-442a-b9e3-e016ad28b7f8n@googlegroups.com> <ba7bbd79-47e7-4df4-b906-f9642edc0a79n@googlegroups.com> <s4d9qt$blm$1@news.icm.edu.pl> <fbc62c89-79e5-48e0-8dd6-863bfd5c029an@googlegroups.com> <70c173ca-4497-4220-a8fd-8973617a292dn@googlegroups.com>

Show Full Headers
Complete Article Headers
X-Received: by 2002:ae9:f503:: with SMTP id o3mr28856955qkg.331.1617726943610;        Tue, 06 Apr 2021 09:35:43 -0700 (PDT)
X-Received: by 2002:ad4:4c8f:: with SMTP id bs15mr2165529qvb.22.1617726943408; Tue, 06 Apr 2021 09:35:43 -0700 (PDT)
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!newsfeed.pionier.net.pl!2.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: Tue, 6 Apr 2021 09:35:43 -0700 (PDT)
In-Reply-To: <70c173ca-4497-4220-a8fd-8973617a292dn@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> <4ceb82cc-54f8-49c0-82f7-2a2464ed9f3fn@googlegroups.com> <ef31edca-80b2-45fa-be5c-3b8a3522acedn@googlegroups.com> <3c9199cd-da3a-442a-b9e3-e016ad28b7f8n@googlegroups.com> <ba7bbd79-47e7-4df4-b906-f9642edc0a79n@googlegroups.com> <s4d9qt$blm$1@news.icm.edu.pl> <fbc62c89-79e5-48e0-8dd6-863bfd5c029an@googlegroups.com> <70c173ca-4497-4220-a8fd-8973617a292dn@googlegroups.com>
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <2c6d9a96-7678-4293-9a30-40798dc822a4n@googlegroups.com>
Subject: Re: Narzędzia do wizualizacji
 systemów Embedded
From: Maciej Sobczak <see.my.homepage@gmail.com>
Injection-Date: Tue, 06 Apr 2021 16:35:43 +0000
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit