-
X-Received: by 2002:ac8:1385:: with SMTP id h5mr26588481qtj.298.1617691702055; Mon,
05 Apr 2021 23:48:22 -0700 (PDT)
X-Received: by 2002:ac8:1385:: with SMTP id h5mr26588481qtj.298.1617691702055; Mon,
05 Apr 2021 23:48:22 -0700 (PDT)
Path: news-archive.icm.edu.pl!news.icm.edu.pl!newsfeed.pionier.net.pl!2.eu.feeder.erj
e.net!feeder.erje.net!news-out.netnews.com!newsin.alt.net!fdcspool2.netnews.com
!news-out.netnews.com!news.alt.net!fdc3.netnews.com!peer04.ams1!peer.ams1.xlned
.com!news.xlned.com!peer02.iad!feed-me.highwinds-media.com!news.highwinds-media
.com!news-out.google.com!nntp.google.com!postnews.google.com!google-groups.goog
legroups.com!not-for-mail
Newsgroups: pl.comp.programming
Date: Mon, 5 Apr 2021 23:48:21 -0700 (PDT)
In-Reply-To: <f...@g...com>
Injection-Info: google-groups.googlegroups.com; posting-host=213.192.68.153;
posting-account=f7iIKQoAAAAkDKpUafc-4IXhmRAzdB5r
NNTP-Posting-Host: 213.192.68.153
References: <d...@g...com>
<0...@g...com>
<6...@g...com>
<a...@g...com>
<a...@g...com>
<6...@g...com>
<4...@g...com>
<0...@g...com>
<e...@g...com>
<4...@g...com>
<e...@g...com>
<3...@g...com>
<b...@g...com>
<s4d9qt$blm$1@news.icm.edu.pl>
<f...@g...com>
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <7...@g...com>
Subject: Re: Narzędzia do wizualizacji systemów Embedded
From: Maciek Godek <g...@g...com>
Injection-Date: Tue, 06 Apr 2021 06:48:22 +0000
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
X-Received-Bytes: 6182
Xref: news-archive.icm.edu.pl pl.comp.programming:215427
[ ukryj nagłówki ]poniedziałek, 5 kwietnia 2021 o 19:10:47 UTC+2 Maciej Sobczak napisał(a):
> > Kod źródłowy może być
> > samokomentujący,
> 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.
W programowaniu jest podobnie, tylko że bardziej. Wcześniej pisałeś tak:
> Oczywiście można zrobić tak:
>
> int maxNumberOfBananasThatTheCustomerXYZAskedForAtTheLas
tMeeting = 12345;
>
> ale chyba rozumiemy, że taka nazwa to nie jest kod, tylko niewłaściwie użyty
komentarz. Czyli dokumentacja. I się pewnie zaraz rozjedzie.
> Można też tak:
>
> int maxNumberOfBananas = 12345;
>
> ale bez (rozjeżdżającej się) dokumentacji nie wiemy, dlaczego akurat tyle. A to
może być bardzo ważne.
Teraz zwróć uwagę, że zamiast "maxNumberOfBananas" mogłeś użyć np. nazwy "x" albo
"mnb". Ale tego nie zrobiłeś, bo "x" ani "mnb" nie wyjaśniałoby roli rzeczonej
zmiennej (którą jest -- jak bym chciał wierzyć -- maksymalna liczba bananów w jakimś
kontekście) wymagałaby dodatkowego źródła. Dlatego też nazwa zmiennej (będąca
częścią kodu źródłowego, a nie tylko logistycznie współwystępującym elementem w
kodzie źródłowym -- i oczywiście o ile jest poprawnie użyta) dokumentuje rolę tej
zmiennej w systemie.
Rzecz jasna jest tak, że kod źródłowy może dokumentować zachowanie systemu lepiej
albo gorzej (podobnie jak każda inna dokumentacja może być napisana lepiej albo
gorzej), ale stąd nie wynika, że -- jak uparcie twierdzisz (mimo że nie wskazują na
to ŻADNE materiały źródłowe, na które dotychczas próbowałeś się powoływać) -- przez
sam fakt swojej potencjalnej wykonywalności (bądź bycia przetwarzalnym do jakiejś
postaci wykonywalnej) -- nie może być dokumentacją.
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
Nota bene, swego czasu popełniłem na Wikipedii artykuł, który pokazywał, jak przejść
od kodu, który dokumentuje siebie w komentarzach, do takiego, który jest
samo-dokumentujący:
https://www.quora.com/What-are-some-examples-of-bad-
code/answer/Panicz-Godek
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" (choć np. w
wielu książkach widziałem sekcję pt. "jak używać tej książki", którą poniekąd można
postrzegać jako dokumentację książki do niej samej)
Następne wpisy z tego wątku
- 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
- 13.04.21 10:32 Maciek Godek
- 13.04.21 17:50 Maciej Sobczak
- 13.04.21 22:57 Maciek Godek
- 16.04.21 11:26 Maciek Godek
Najnowsze wątki z tej grupy
- 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??
- Re: (PDF) Surgical Pathology of Non-neoplastic Gastrointestinal Diseases by Lizhi Zhang
- CfC 28th Ada-Europe Int. Conf. Reliable Software Technologies
- Młodzi programiści i tajna policja
Najnowsze wątki
- 2024-11-25 Karty przedpłacone (podarunkowe) Google Play - pytanie do korzystających
- 2024-11-26 wina Tóska
- 2024-11-26 Rewolucja/Rewelacja!
- 2024-11-25 grupa ożyła ;)
- 2024-11-24 Być jak Clint
- 2024-11-24 Rura kanalizacja konceptu Franke = problem
- 2024-11-25 Wrocław => Lead Java EE Developer <=
- 2024-11-25 Warszawa => Business Development Manager - Network and Network Securit
- 2024-11-25 Kraków => Programista Full Stack (.Net Core) <=
- 2024-11-25 Lublin => Senior PHP Developer <=
- 2024-11-25 Karlino => Konsultant wewnętrzny SAP (FI/CO) <=
- 2024-11-25 Warszawa => ECM Specialist / Consultant <=
- 2024-11-25 Katowice => Regionalny Kierownik Sprzedaży (OZE) <=
- 2024-11-25 Warszawa => Senior Frontend Developer (React + React Native) <=
- 2024-11-25 Lublin => Inżynier Serwisu Sprzętu Medycznego <=