X-Received: by 2002:a05:6214:f0d:: with SMTP id gw13mr26194448qvb.33.1617093682496; Tue, 30 Mar 2021 01:41:22 -0700 (PDT) X-Received: by 2002:a05:620a:16b1:: with SMTP id s17mr29032814qkj.302.1617093682325; Tue, 30 Mar 2021 01:41:22 -0700 (PDT) Path: csiph.com!newsfeed.xs4all.nl!newsfeed7.news.xs4all.nl!50.7.236.18.MISMATCH!news-out.netnews.com!news.alt.net!fdc3.netnews.com!peer04.ams1!peer.ams1.xlned.com!news.xlned.com!peer01.iad!feed-me.highwinds-media.com!news.highwinds-media.com!news-out.google.com!nntp.google.com!postnews.google.com!google-groups.googlegroups.com!not-for-mail Newsgroups: pl.comp.programming Date: Tue, 30 Mar 2021 01:41:22 -0700 (PDT) In-Reply-To: <4ceb82cc-54f8-49c0-82f7-2a2464ed9f3fn@googlegroups.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: <0732d3e3-0bad-4765-8588-b272b9834378n@googlegroups.com> <6c2d0f52-2d8e-4ca6-8766-dd8e7c7ce0b4n@googlegroups.com> <657950da-97f7-420a-a3d0-13597899385en@googlegroups.com> <47e3881e-b68a-4769-8e09-d2be3159de58n@googlegroups.com> <03382e3f-a8a7-429f-9ab2-d59b48ffc44cn@googlegroups.com> <4ceb82cc-54f8-49c0-82f7-2a2464ed9f3fn@googlegroups.com> User-Agent: G2/1.0 MIME-Version: 1.0 Message-ID: Subject: =?UTF-8?Q?Re=3A_Narz=C4=99dzia_do_wizualizacji_system=C3=B3w_Embedded?= From: Maciek Godek Injection-Date: Tue, 30 Mar 2021 08:41:22 +0000 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Received-Bytes: 10693 Xref: csiph.com pl.comp.programming:34422 poniedzia=C5=82ek, 29 marca 2021 o=C2=A018:39:49 UTC+2 Maciej Sobczak napis= a=C5=82(a): > > Nadal nie wyja=C5=9Bni=C5=82e=C5=9B dlaczego nie jest. > My=C5=9Bla=C5=82em, =C5=BCe wystarczy praca samodzielna.=20 > Ide=C4=85, ktor=C4=85 ja wyczuwam w tym artykule, jest odr=C3=B3=C5=BCnie= nie dokumentacji od dokumentowanego obiektu. Wynika to nawet bezpo=C5=9Bred= nio z podanych tam przyk=C5=82ad=C3=B3w.=20 Niestety, ja nie jestem w stanie tego nigdzie wyczyta=C4=87, a moje moce do= wyczuwania s=C4=85 najwidoczniej zbyt s=C5=82abe > A najbardziej wynika z paragrafu o dokumentacji w naszej bran=C5=BCy:=20 >=20 > https://en.wikipedia.org/wiki/Documentation#Documentation_in_computer_sci= ence=20 >=20 > Kod =C5=BAr=C3=B3d=C5=82owy nie znajduje si=C4=99 na tej li=C5=9Bcie. Aha, czyli chodzi nie o to, co jest, ale o to, czego nie ma. No, ale ju=C5=BC klikni=C4=99cie dalej mamy artyku=C5=82 https://en.wikiped= ia.org/wiki/Software_documentation, w kt=C3=B3rym jest m.in. om=C3=B3wiona = koncepcja programowania pi=C5=9Bmiennego Knutha. > > Teraz drugi raz twierdzisz, =C5=BCe je=C5=BCeli diagram pos=C5=82u=C5= =BCy do wygenerowania kodu, to nagle w jaki=C5=9B magiczny spos=C3=B3b prze= staje by=C4=87 dokumentacj=C4=85 > Tak. Subtelne, prawda? To troch=C4=99 kwestia kultury pracy i jest to mie= jsce na subiektywno=C5=9B=C4=87.=20 OK, to zamiast m=C3=B3wi=C4=87 "wykonywalny diagram nie jest dokumentacj=C4= =85", a p=C3=B3=C5=BAniej uzasadnia=C4=87 to linkiem do Wikipedii, z kt=C3= =B3rego to nie wynika, mo=C5=BCesz powiedzie=C4=87 "ja wykonywalnego diagra= mu nie uwa=C5=BCam za dokumentacj=C4=99, poniewa=C5=BC ..." > Ja to widz=C4=99 tak, =C5=BCe je=C5=BCeli co=C5=9B jest bezpo=C5=9Brednio= na =C5=9Bcie=C5=BCce albo w =C5=82a=C5=84cuchu transformacji artefakt=C3= =B3w in=C5=BCynierskich, to jest obiektem wymagaj=C4=85cym dokumentacji a n= ie dokumentacj=C4=85.=20 Jedno drugiego nie wyklucza. Co wi=C4=99cej, do dokumentacji te=C5=BC mo=C5=BCna tworzy=C4=87 dokumentac= j=C4=99. I nie ma w tym nic strasznego. > Zauwa=C5=BC (znowu, bo ju=C5=BC o tym wspomnia=C5=82em), =C5=BCe kod =C5= =BAr=C3=B3d=C5=82owy to nie jest program, cho=C4=87 zawsze tak skr=C3=B3tow= o o nim my=C5=9Blimy i m=C3=B3wimy. Kod =C5=BAr=C3=B3d=C5=82owy to jedynie = konfiguracja dla generatora kodu dla ni=C5=BCszej wartwy abstrakcji. I to n= adal nie musi by=C4=87 program, bo je=C5=9Bli kompilator generuje kod w ase= mblerze, to dalej z tego jest generowany kod obiektowy i to nadal nie jest = program, bo trzeba to zlinkowa=C4=87 i pozszywa=C4=87 symbole i to mo=C5=BC= e dopiero jest program, kt=C3=B3ry zostanie fizycznie wykonany przez komput= er. Tak, w skr=C3=B3cie m=C3=B3wimy, =C5=BCe "napisa=C5=82em program", ale = to nie jest prawda, bo program dopiero powstanie. P=C3=B3=C5=BAniej.=20 > I je=C5=BCeli teraz chcia=C5=82by=C5=9B w ten d=C5=82ugi =C5=82a=C5=84cuc= h kolejnych generacji z jednego w drugie do=C5=82o=C5=BCy=C4=87 jeszcze jed= en etap, np. model (w postaci diagramu), z kt=C3=B3rego zostanie wygenerowa= ny kod =C5=BAr=C3=B3d=C5=82owy, z kt=C3=B3rego... itd., to co=C5=9B si=C4= =99 zmieni=C5=82o w ca=C5=82ej logice? Nic si=C4=99 nie zmieni=C5=82o. I mo= =C5=BCesz dalej sobie co=C5=9B do=C5=82o=C5=BCy=C4=87, np. meta-skrypt gene= ruj=C4=85cy takie modele z zadanej konfiguracji. I co=C5=9B to zmienia? Dal= ej nic.=20 > Bo na ca=C5=82ym tym =C5=82a=C5=84cuchu masz artefakty in=C5=BCynierskie,= kt=C3=B3re automatyzuj=C4=85 proces powstania produktu ko=C5=84cowego. I *= =C5=BCaden* z tych artefakt=C3=B3w nie jest wtedy dokumentacj=C4=85.=20 Je=C5=BCeli zapoznanie si=C4=99 z kt=C3=B3rymkolwiek powodowa=C5=82oby zwi= =C4=99kszenie zrozumienia dzia=C5=82ania systemu, to w=C3=B3wczas by=C5=82b= y dokumentacj=C4=85. Tak przynajmniej twierdzi Wikipedia. Bo ona m=C3=B3wi, =C5=BCe jest to "dow= olny materia=C5=82, kt=C3=B3ry..." > Bo gdyby by=C5=82, to ka=C5=BCdy z nich te=C5=BC by by=C5=82. Ten asemble= r te=C5=BC. A to by by=C5=82o s=C5=82abe, prawda? W tym sensie, =C5=BCe s= =C5=82owo "dokumentacja" straci=C5=82oby sw=C3=B3j pierwotny sens.=20 Tak, potencjalnie ka=C5=BCdy jest dokumentacj=C4=85, bo ka=C5=BCdy zawiera = informacj=C4=99, kt=C3=B3r=C4=85 mo=C5=BCna przyswoi=C4=87. Mnie si=C4=99 zdarza studiowa=C4=87 asembler, dok=C5=82adnie w tym celu, = =C5=BCeby zrozumie=C4=87, co robi system (wtedy, kiedy to jest istotne). Jedyna kwestia jest taka, =C5=BCe nie ka=C5=BCdy artefakt w tym procesie je= st zoptymalizowany do rozumienia dzia=C5=82ania systemu na poziomie u=C5=BC= ytkowym. > Wi=C4=99c subtelne rozr=C3=B3=C5=BCnienie jest w=C5=82a=C5=9Bnie w tym, c= zy co=C5=9B jest na =C5=9Bcie=C5=BCce automatycznej generacji ostatecznego = produktu. Je=C5=9Bli jest, to nie jest to dukumentacja, bo ta jest z defini= cji obok tej =C5=9Bcie=C5=BCki.=20 Nic takiego nie znalaz=C5=82em na Wikipedii. > Tak, wiem, =C5=BCe s=C4=85 ludzie, dla kt=C3=B3rych kod =C5=BAr=C3=B3d=C5= =82owy jest jednocze=C5=9Bnie programem i dokumentacj=C4=85. I dzie=C5=82em= sztuki. Bo przecie=C5=BC powsta=C5=82o dzie=C5=82o. OK, s=C4=85 ludzie, dla kt=C3=B3rych jest, i s=C4=85 ludzie, dla kt=C3=B3ry= ch nie jest. To jest w porz=C4=85dku. S=C4=85 te=C5=BC ludzie, kt=C3=B3rzy twierdz=C4=85, =C5=BCe to, co oni uwa= =C5=BCaj=C4=85 w tej kwestii, jest ostateczn=C4=85 prawd=C4=85, a to co uwa= =C5=BCaj=C4=85 inni, to jakie=C5=9B bzdury. I to jest mniej w porz=C4=85dku= . > > co w =C5=9Bwietle definicji z Wikipedii oznacza=C5=82oby, =C5=BCe nie m= o=C5=BCe ju=C5=BC s=C5=82u=C5=BCy=C4=87 do rozumienia dzia=C5=82ania system= u > No bo nie mo=C5=BCe. To, =C5=BCe co=C5=9B pokazuje *jak* co=C5=9B dzia=C5= =82a, nie znaczy, =C5=BCe pokazuje *dlaczego*. A to jest potrzebne do rozum= ienia. *Dlaczego* jest potrzebne do zrozumienia dlaczego co=C5=9B zosta=C5=82o zro= bione. *Jak* jest potrzebne do zrozumienia, jak co=C5=9B jest zrobione. W obu przypadkach mamy do czynienia ze zrozumieniem. > > No to teraz uwa=C5=BCaj:=20 > > =C5=BCadna dokumentacja nie dokumentuje wszystkich aspekt=C3=B3w budowy= i u=C5=BCytkowania system=C3=B3w. > Bo nie musi. Natomiast kod =C5=BAr=C3=B3d=C5=82owy w og=C3=B3le niczego n= ie dokumentuje. > > https://man7.org/linux/man-pages/man3/memcpy.3.html=20 > >=20 > > Opisuje r=C3=B3=C5=BCne aspekty u=C5=BCycia funkcji `memcpy`, ale nie w= yja=C5=9Bnia, dlaczego ta funkcja powsta=C5=82a, ani w jakim celu si=C4=99 = j=C4=85 stosuje. > Bardzo dobrze opisuje. Nawet warunki poprawnego u=C5=BCycia s=C4=85 opisa= ne. Dobry kawa=C5=82 dokumentacji.=20 > A =C5=BCe jest to funkcja bardzo niskopoziomowa, to nie dowiesz si=C4=99 = z tej dokumentacji, w jakim celu si=C4=99 j=C4=85 stosuje. Innymi s=C5=82owy, dowiem si=C4=99 *jak* tego u=C5=BCy=C4=87, ale nie dowie= m si=C4=99 *dlaczego* tego u=C5=BCy=C4=87. (A teraz przeczytaj to, co napisa=C5=82e=C5=9B akapit wy=C5=BCej) > > Bo nie wiem jak Ty, ale ja swoje komentarze do kodu =C5=BAr=C3=B3d=C5= =82owego zazwyczaj trzymam w kodzie =C5=BAr=C3=B3d=C5=82owym.=20 > > One *s=C4=85 cz=C4=99=C5=9Bci=C4=85* kodu =C5=BAr=C3=B3d=C5=82owego, i = wyja=C5=9Bniaj=C4=85 rzeczy, kt=C3=B3rych w samym j=C4=99zyku programowania= nie m=C3=B3g=C5=82bym wyrazi=C4=87, albo t=C5=82umacz=C4=85, sk=C4=85d si= =C4=99 wzi=C4=99=C5=82y jakie=C5=9B nieoczywiste rozwi=C4=85zania. > No, to ju=C5=BC jeste=C5=9B powy=C5=BCej =C5=9Bredniej. Obiektywnie, bez = =C5=BCart=C3=B3w.=20 > Ale twierdzenie, =C5=BCe komentarze s=C4=85 cz=C4=99=C5=9Bci=C4=85 kodu = =C5=BAr=C3=B3d=C5=82owego, to miejsce do nadu=C5=BCy=C4=87. Bo fakt, =C5=BC= e komentarze s=C4=85 z definicji ignorowane i drugi fakt, =C5=BCe ich zwi= =C4=85zek z otoczeniem jest jedynie umow=C4=85 spo=C5=82eczn=C4=85 mi=C4=99= dzy autorem a czytelnikiem, sprawia, =C5=BCe jednak nie s=C4=85 cz=C4=99=C5= =9Bci=C4=85 kodu. Umieszczenie r=C3=B3=C5=BCnych rzeczy w tym samym pliku t= o jedynie fizyczny wyb=C3=B3r pojemnika, kt=C3=B3ry to wyb=C3=B3r nie wp=C5= =82ywa na to, czym co=C5=9B jest.=20 > I zapewniam, =C5=BCe niekt=C3=B3rzy pisz=C4=85 komentarze do kodu poza ko= dem. Robi=C5=82e=C5=9B kiedy=C5=9B review kodu w jakim=C5=9B narz=C4=99dziu= do pracy zespo=C5=82owej?=20 Tak, zdarza mi si=C4=99. I tego rodzaju komentarzy nie uznaj=C4=99 za cz=C4= =99=C5=9B=C4=87 kodu =C5=BAr=C3=B3d=C5=82owego, tylko za element konwersacj= i wok=C3=B3=C5=82 kodu =C5=BAr=C3=B3d=C5=82owego. Tak samo, jak np. narz=C4=99dzie do pisania komentarzy w Wordzie odr=C3=B3= =C5=BCnia komentarz od komentowanego tekstu. > Serio, dokumentacj=C4=99 robi si=C4=99 gdzie indziej. Zale=C5=BCy jak=C4=85. Serio. Wiele rzeczy mo=C5=BCna robi=C4=87 na wiele s= posob=C3=B3w. Prosz=C4=99, tu piosenka dla Ciebie (moim zdaniem powinna by=C4=87 hymnem i= n=C5=BCynier=C3=B3w): https://www.youtube.com/watch?v=3D6DiwN1LHfOU