eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.comp.programming › Narzędzia do wizualizacji systemów Embedded
Ilość wypowiedzi w tym wątku: 43

  • 21. Data: 2021-03-27 17:08:21
    Temat: Re: Narzędzia do wizualizacji systemów Embedded
    Od: Maciej Sobczak <s...@g...com>

    > "Documentation is any communicable material that is used to describe, explain or
    instruct regarding some attributes of an object, system or procedure, such as its
    parts, assembly, installation, maintenance and use"
    >
    > Kod źródłowy jest komunikowalny i może być użyty do wyjaśnienia pewnych atrybutów
    systemu, więc nadal nie rozumiem.

    To jest pomysł tej samej warstwy społecznej, która wymyśliła "Working software over
    comprehensive documentation" i ogólnie tej grupy, która systematycznie nie jest w
    stanie zrobić sensownej dokumentacji, więc kombinuje jak by tu uzasadnić drobny fakt,
    że jej po prostu nie ma.

    Kod źródłowy oczywiście, że może być komunikowalny. Ale nie jest w stanie wyjaśnić
    "dlaczego" ani "w jakim celu", czyli nie jest w stanie niczego uzasadnić. Właśnie do
    tego jest dokumentacja. 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.
    Zrobienie tego samego (w obu wersjach) na diagramie, który posłuży do automatycznego
    wygenerowania takiego kodu niczego nie zmienia, tylko przenosi problem w inne miejsce
    w procesie produkcyjnym.

    Kod programu nie jest dokumentacją. Diagram może być ilustracją w dokumentacji, ale
    jeśli diagram służy do generowania kodu, to nie jest. Taki diagram nadal wymaga
    dokumentacji.

    --
    Maciej Sobczak * http://www.inspirel.com


  • 22. Data: 2021-03-28 22:40:04
    Temat: Re: Narzędzia do wizualizacji systemów Embedded
    Od: Maciek Godek <g...@g...com>

    sobota, 27 marca 2021 o 17:08:22 UTC+1 Maciej Sobczak napisał(a):
    > > "Documentation is any communicable material that is used to describe, explain or
    instruct regarding some attributes of an object, system or procedure, such as its
    parts, assembly, installation, maintenance and use"
    > >
    > > Kod źródłowy jest komunikowalny i może być użyty do wyjaśnienia pewnych atrybutów
    systemu, więc nadal nie rozumiem.
    > To jest pomysł tej samej warstwy społecznej, która wymyśliła "Working software over
    comprehensive documentation" i ogólnie tej grupy, która systematycznie nie jest w
    stanie zrobić sensownej dokumentacji, więc kombinuje jak by tu uzasadnić drobny fakt,
    że jej po prostu nie ma.
    >
    > Kod źródłowy oczywiście, że może być komunikowalny. Ale nie jest w stanie wyjaśnić
    "dlaczego" ani "w jakim celu", czyli nie jest w stanie niczego uzasadnić. Właśnie do
    tego jest dokumentacja. 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.
    > Zrobienie tego samego (w obu wersjach) na diagramie, który posłuży do
    automatycznego wygenerowania takiego kodu niczego nie zmienia, tylko przenosi problem
    w inne miejsce w procesie produkcyjnym.
    >
    > Kod programu nie jest dokumentacją. Diagram może być ilustracją w dokumentacji, ale
    jeśli diagram służy do generowania kodu, to nie jest. Taki diagram nadal wymaga
    dokumentacji.

    Nadal nie wyjaśniłeś dlaczego nie jest.
    Najpierw jak zapytałem, to wkleiłeś link do artykułu na Wikipedii, który twierdzi, że
    dokumentacją jest wszystko, co służy do wyjaśnienia działania jakiegoś systemu.
    Teraz drugi raz twierdzisz, że jeżeli diagram posłuży do wygenerowania kodu, to nagle
    w jakiś magiczny sposób przestaje być dokumentacją (co w świetle definicji z
    Wikipedii oznaczałoby, że nie może już służyć do rozumienia działania systemu, bo
    wówczas... byłby dokumentacją).

    Z tego co widzę, swoje uzasadnienie opierasz na ad hominem względem jakiejś grupy
    ludzi, która kiedyś coś twierdziła, oraz na tym, że kod źródłowy nie dokumentuje
    wszystkich aspektów budowy i użytkowania systemów. No to teraz uważaj:
    żadna dokumentacja nie dokumentuje wszystkich aspektów budowy i użytkowania systemów.

    W szczególności, można znaleźć dużo dokumentacji, która również nie wyjaśnia,
    dlaczego albo w jakim celu danego komponentu systemowego można użyć. Weźmy pierwszy z
    brzegu przykład - podręcznik do funkcji "memcpy"

    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.

    Nie zmienia to jednak faktu, że ta strona manuala jest dokumentacją. (Chyba że zaraz
    stwierdzisz, że nie jest)

    Twój przykład z "niewłaściwie użytym komentarzem" może też pokazuje gdzie może leżeć
    źrodło nieporozumienia.
    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.


  • 23. Data: 2021-03-29 18:39:47
    Temat: Re: Narzędzia do wizualizacji systemów Embedded
    Od: Maciej Sobczak <s...@g...com>

    > 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#Document
    ation_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


  • 24. Data: 2021-03-30 10:41:22
    Temat: Re: Narzędzia do wizualizacji systemów Embedded
    Od: Maciek Godek <g...@g...com>

    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


  • 25. Data: 2021-03-30 23:00:18
    Temat: Re: Narzędzia do wizualizacji systemów Embedded
    Od: Maciej Sobczak <s...@g...com>

    > > 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

    Dlatego próbuję pomóc.

    > No, ale już kliknięcie dalej mamy artykuł
    https://en.wikipedia.org/wiki/Software_documentation
    ,

    ... w którym w pierwszym zdaniu jest "that accompanies computer software", czyli
    znowu jest intencja rozdzielenia obiektu od jego dokumentacji, tudzież "or is
    embedded in the source code" jako logistyczny wybór miejsca umieszczenia, co nadal
    jednak odróżnia dokumentację od kodu źródłowego.

    > w którym jest m.in. omówiona koncepcja programowania piśmiennego Knutha.

    Wiadomo, że "Knuth wielkim poetą był", ale po pierwsze nadal ta koncepcja odróżnia
    obiekt od jego dokumentacji, a po drugie ta koncepcja nie przyjęła się w sensownej
    skali pomimo prawie 4 dekad od ogłoszenia (1984). Więc nie.

    > 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ż ..."

    Tak. Ponieważ nie tylko tak uważam, ale nawet przypadkiem zgadza się to z Wikipedią,
    którą wolę wtedy pokazać jako bardziej neutralne źródło.

    > Mnie się zdarza studiować asembler, dokładnie w tym celu, żeby zrozumieć, co robi
    system

    A co, nie było dokumentacji? :-D
    To się wtedy nazywa reverse-engineering. Ale to nie znaczy, że asembler jest
    dokumentacją. To znaczy tylko tyle, że nie było dokumentacji.

    > Jedyna kwestia jest taka, że nie każdy artefakt w tym procesie jest zoptymalizowany
    do rozumienia działania systemu na poziomie użytkowym.

    Hm... Bo nie jest dokumentacją?

    > > 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.

    Sam podałeś link. Tam, gdzie w pierwszym zdaniu jest "that accompanies computer
    software".
    "Accompanies" oznacza, że jest obok.

    > Proszę, tu piosenka dla Ciebie

    To miłe, ale nie szukam tu muzyki.

    --
    Maciej Sobczak * http://www.inspirel.com


  • 26. Data: 2021-03-31 10:42:45
    Temat: Re: Narzędzia do wizualizacji systemów Embedded
    Od: Maciek Godek <g...@g...com>

    wtorek, 30 marca 2021 o 23:00:20 UTC+2 Maciej Sobczak napisał(a):

    > > No, ale już kliknięcie dalej mamy artykuł
    https://en.wikipedia.org/wiki/Software_documentation
    ,
    > ... w którym w pierwszym zdaniu jest "that accompanies computer software", czyli
    znowu jest intencja rozdzielenia obiektu od jego dokumentacji, tudzież "or is
    embedded in the source code" jako logistyczny wybór miejsca umieszczenia, co nadal
    jednak odróżnia dokumentację od kodu źródłowego.

    Podejrzewam, że "is embedded in the source code" można rozumieć różnie --
    niekoniecznie jako odróżnienie.
    Skrzynia biegów albo silnik też jest "embedded" w samochód, i raczej byśmy
    powiedzieli, że skrzynia biegów "jest częścią" samochodu, niż czymś "odróżnionym od
    samochodu"

    > > w którym jest m.in. omówiona koncepcja programowania piśmiennego Knutha.
    > Wiadomo, że "Knuth wielkim poetą był", ale po pierwsze nadal ta koncepcja odróżnia
    obiekt od jego dokumentacji, a po drugie ta koncepcja nie przyjęła się w sensownej
    skali pomimo prawie 4 dekad od ogłoszenia (1984). Więc nie.

    Ale więc "co" "nie"?
    Jest omówiona, czyli jest omówiona.
    W artykule dotyczącym dokumentacji oprogramowania.
    Więc tak.

    > > 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ż ..."
    > Tak. Ponieważ nie tylko tak uważam, ale nawet przypadkiem zgadza się to z
    Wikipedią, którą wolę wtedy pokazać jako bardziej neutralne źródło.

    Tzn. raczej zgadza się z "Twoim odczuwaniem Wikipedii", niż z czymkolwiek, co tam
    jest napisane.

    > > Mnie się zdarza studiować asembler, dokładnie w tym celu, żeby zrozumieć, co robi
    system
    > A co, nie było dokumentacji? :-D

    Mam jeszcze raz zacytować definicję spod linku, który wkleiłeś? OK:

    "any communicable material that is used to describe, explain or instruct regarding
    some attributes of an object, system or procedure, such as its parts, assembly,
    installation, maintenance and use"

    Zobacz, "assembly" jest nawet wymienione explicite ;]

    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.
    > Sam podałeś link. Tam, gdzie w pierwszym zdaniu jest "that accompanies computer
    software".
    > "Accompanies" oznacza, że jest obok.

    "or embedded in"

    "embedded in" oznacza, że jest w środku.


  • 27. Data: 2021-04-05 19:10:45
    Temat: Re: Narzędzia do wizualizacji systemów Embedded
    Od: Maciej Sobczak <s...@g...com>

    > Dokumentacja może zawierać kod źródłowy

    Oczywiście. Nikt nie twierdził inaczej. Trzymanie dwóch rzeczy w jednym pojemniku to
    decyzja logistyczna. Czasem dobra, czasem niedobra.

    > Kod źródłowy może zawierać
    > dokumentację

    Oczywiście. Nikt nie twierdził inaczej. Trzymanie dwóch rzeczy w jednym pojemniku to
    decyzja logistyczna. Czasem dobra, czasem niedobra.

    > 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.

    > a komentarze to też dokumentacja

    Oczywiście. Nikt nie twierdził inaczej. Ale o tym, że kod może zawierać dokumentację,
    było już parę linijek wyżej.

    > Czyli w konkretnych przypadkach dokumentacja to kod źródłowy i
    > vice versa.

    A to zdanie nie wynika z żadnego z tych powyżej. I chyba na tym skrócie myślowym nam
    się wcześniej dyskusja urwała. Bo ja nadal odróżniam te dwie rzeczy.

    > Przy tym zupełnie mało interesująca są: statystyka; wierzenia
    > korpoludków; Wikipedia (Oxenfurt i Sorbowit ubogich).

    Niech będzie. To co teraz? :-D

    --
    Maciej Sobczak * http://www.inspirel.com


  • 28. Data: 2021-04-06 08:48:21
    Temat: Re: Narzędzia do wizualizacji systemów Embedded
    Od: Maciek Godek <g...@g...com>

    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)


  • 29. Data: 2021-04-06 09:21:24
    Temat: Re: Narzędzia do wizualizacji systemów Embedded
    Od: Maciek Godek <g...@g...com>


    > 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

    Errata: miało być oczywiście "na Quorze", a nie "na Wikipedii".
    (Na Wikipedii nie popełniłem nigdy żadnego)


  • 30. Data: 2021-04-06 18:35:43
    Temat: Re: Narzędzia do wizualizacji systemów Embedded
    Od: Maciej Sobczak <s...@g...com>

    > > 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/rez
    ystory-smd-0805/vishay/

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

    https://www.tme.eu/Document/622e28308c06d160637f2b14
    751ba16b/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

strony : 1 . 2 . [ 3 ] . 4 . 5


Szukaj w grupach

Szukaj w grupach

Eksperci egospodarka.pl

1 1 1

Wpisz nazwę miasta, dla którego chcesz znaleźć jednostkę ZUS.

Wzory dokumentów

Bezpłatne wzory dokumentów i formularzy.
Wyszukaj i pobierz za darmo: