eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.comp.programmingPorównanie różnych języków
Ilość wypowiedzi w tym wątku: 151

  • 61. Data: 2011-12-17 22:27:30
    Temat: Re: Porównanie różnych języków
    Od: Maciej Sobczak <s...@g...com>

    On Dec 17, 4:30 pm, Roman W <b...@g...pl> wrote:

    > Ja bym raczej powiedzial na chlopski rozum, ze dokumentacja definiuje
    > co jest bugiem, a co nie.

    Bingo.

    > Jak programista Agile ma eliminowac bugi,
    > kiedy nie wie, co jest prawidlowym zachowaniem budowanego systemu?

    No właśnie. Bo jeśli program działa niezgodnie z istniejącą
    dokumentacją, to coś należy poprawić. Ale jeżeli działa niezgodnie z
    nieistniejącą dokumentacją, to projekt jest w ciemnej d*pie. I to jest
    właśnie ta perspektywa, której się obawiam.

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


  • 62. Data: 2011-12-17 22:41:51
    Temat: Re: Porównanie różnych języków
    Od: A.L. <l...@a...com>

    On Sat, 17 Dec 2011 19:12:18 +0000, Andrzej Jarzabek
    <a...@g...com> wrote:

    >On 17/12/2011 17:00, Roman W wrote:
    >> On Dec 17, 3:58 pm, Andrzej Jarzabek<a...@g...com>
    >> wrote:
    >>
    >>>> co jest bugiem, a co nie. Jak programista Agile ma eliminowac bugi,
    >>>> kiedy nie wie, co jest prawidlowym zachowaniem budowanego systemu? "On-
    >[...]
    >>> Tak, generalnie polega to na tym, że programista rozmawia z OSCR tak
    >>> długo, żeby zrozumieć co program ma robić, a jeśli nie jest w stanie
    >>> zrozumieć czy ewentualne zachowanie jest prawidłowe, czy nie, to
    >>> rozmawia z OSCR jeszcze trochę.
    >>
    >> A co jest rezultatem tej rozmowy? Notatki pisane olowkiem na serwetce,
    >> watem mailowy w firmowym Outlooku, czy cos bardziej
    >> ustrukturyzowanego?
    >
    >Przede wszystkim rezultatem tej rozmowy jest to, że programista wie, co
    >jest prawidłowym zachowaniem budowanego systemu.

    A jezeli programistow jest 50 i owi programisci nigdy bezposrednio nie
    kontaktuja sie z faktycznym uzytkownikiem systemu?

    A.L.


  • 63. Data: 2011-12-17 22:43:39
    Temat: Re: Porównanie różnych języków
    Od: A.L. <l...@a...com>

    On Sat, 17 Dec 2011 14:27:30 -0800 (PST), Maciej Sobczak
    <s...@g...com> wrote:

    >On Dec 17, 4:30 pm, Roman W <b...@g...pl> wrote:
    >
    >> Ja bym raczej powiedzial na chlopski rozum, ze dokumentacja definiuje
    >> co jest bugiem, a co nie.
    >
    >Bingo.
    >
    >> Jak programista Agile ma eliminowac bugi,
    >> kiedy nie wie, co jest prawidlowym zachowaniem budowanego systemu?
    >
    >No właśnie. Bo jeśli program działa niezgodnie z istniejącą
    >dokumentacją, to coś należy poprawić. Ale jeżeli działa niezgodnie z
    >nieistniejącą dokumentacją, to projekt jest w ciemnej d*pie. I to jest
    >właśnie ta perspektywa, której się obawiam.

    Nie ma sie Pan co obawiac. To jest "metodologia Agile". Ponoc jedynie
    sluszna.

    Ciekawe jak "agilowcy" wyobrazaja sobie projekt w ktorym pracuje,
    powiedzmy, 50 programistow, i owi programisci nigdy nie kontaktuja sie
    z przyszlym uzytkownikiem systemu?

    A.L.


  • 64. Data: 2011-12-17 22:51:24
    Temat: Re: Porównanie różnych języków
    Od: Maciej Sobczak <s...@g...com>

    On Dec 17, 4:58 pm, Andrzej Jarzabek <a...@g...com>
    wrote:

    > Tak, generalnie polega to na tym, że programista rozmawia z OSCR tak
    > długo, żeby zrozumieć co program ma robić,

    I to jest właśnie problem tej metodologii, bo zakłada ciągłość tego
    procesu.

    Otóż ja mam taki defekt[*], że jak ktoś coś do mnie mówi, to już po
    kilku minutach nie pamiętam, o czym mówił na początku. Radzę sobię z
    krótką listą zakupów, ale dłuższe opisy mi się urywają.

    [*] Z obserwacji wynika, że nie tylko ja mam ten defekt. Akurat mamy
    weekend - stań przed jakimś kościołem i zapytaj wychodzących ludzi o
    czym było kazanie. Pamiętaj, że wszyscy słuchali tego samego, ale
    zapytaj kilka różnych osób.
    Dobre, nie?

    Pytanie: jak długa jest rozmowa z tym - jak mu tam - OSCR, żeby
    przekazać równoważnik kilkuset stron tekstu? Krócej, niż kazanie, czy
    dłużej?

    > a jeśli nie jest w stanie
    > zrozumieć czy ewentualne zachowanie jest prawidłowe, czy nie, to
    > rozmawia z OSCR jeszcze trochę.

    No właśnie.
    Otóż zaletą metodologii "dokumentacyjnych" jest to, że kiedyś,
    ostatecznie, *można się rozejść*. Bo nawet jeśli się odbiorcy się
    urwał wątek, to może sobie do niego wrócić we własnym zakresie i nie
    potrzebuje "rozmawiać z OSCR jeszcze trochę".

    Coś jak wydrukowane kazanie.

    Możliwość rozejścia się jest kluczowa dla postępu projektu. Bez tej
    możliwości albo masz zastój (znaczy: odbiorca "rozmawia jeszcze
    trochę" w nieskończoność), albo urwaną treść. Osobiście nie widzę
    siebie w rozmowie na temat czegoś, co na papierze ma kilkaset stron.

    Napisanie dokumentacji służy przekazaniu wiedzy i jest to proces,
    który może być zarówno kompletny, jak i obustronnie potwierdzony.
    Minimalizacja bugów, jeśli w ogóle występuje, jest tu procesem
    pobocznym a nie celem samym w sobie. Celem minimalizacji bugów może
    być np. zastosowanie metod formalnych. Albo unit testy. Albo voo-doo.
    Albo co tam kto umie i czemu ufa, zależnie od budżetu i lokalnej
    kultury. Jednak żadna z tych metod nie wyklucza użycia dokumentacji,
    która służy tylko (i aż!) do skompletowania procesu przekazywania
    wiedzy.
    Dlatego nie ma problemu, żeby zrobić dokumentację *oraz* unit testy
    (przykładowo).

    Problem z agile polega na tym, że przekazywanie wiedzy oparte jest na
    machaniu rękami i jest to najsłabsze ogniwo z powodów powyżej. A
    ponieważ to ogniwo jest na początku procesu, to dalej buduje się na
    gównianych fundamentach i stąd te ciągłe dema i walenie klienta po
    głowie niedokończonymi wersjami.
    Pominięcie dokumentacji *nie jest tańsze*. Tak przynajmniej wynika z
    moich obserwacji.

    Oczywiście, robiłem też projekty bez dokumentacji. Jak również takie
    bez testów. Albo nawet bez kawy. Takie bez klienta też. Wszystko
    zależnie od potrzeb.

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


  • 65. Data: 2011-12-18 01:36:16
    Temat: Re: Porównanie różnych języków
    Od: Andrzej Jarzabek <a...@g...com>

    On 17/12/2011 20:02, Roman W wrote:
    > On Dec 17, 7:12 pm, Andrzej Jarzabek<a...@g...com>
    > wrote:
    >>
    >>> A co jest rezultatem tej rozmowy? Notatki pisane olowkiem na serwetce,
    >>> watem mailowy w firmowym Outlooku, czy cos bardziej
    >>> ustrukturyzowanego?
    >>
    >> Przede wszystkim rezultatem tej rozmowy jest to, że programista wie, co
    >> jest prawidłowym zachowaniem budowanego systemu.
    >
    > Systemu jako calosci? Czyli jednak dokumentacja.

    Systemu jako całości lub danego kawałka. Wiedza to nie jest to samo, co
    dokumentacja.

    >> Jeśli chodzi o
    >> artefakty, to może to być "user story" (czy inny "change control ticket)
    >> - jeśli objaśnienie się kwalifikuje, będzie to prawdopodobnie jeden lub
    >> kilka testów (acceptance test, unit tests),
    >
    > Ale to opisuje wycinek systemu.

    Łącznie wszystkie te opisy opisują cały system. Tak samo jak z
    dokumentacją wymagań zresztą: składa się zwykle z jakichś rozdziałów,
    które opisują wycinki systemu.

    >> no i przede wszystkim będzie
    >> to działający kod, który robi właśnie to, co trzeba.
    >
    > Nie, bedzie to kod przechodzacy kilka testow. To nie to samo.

    Jednak nie tylko przechodzący kilka testów, bo jego forma się bierze
    stąd, że programista _rozumie_ co program ma robić, a nie z tego, że
    widział kod testów i dostaje zadanie napisania kodu je przechodzącego.

    To, że 100% gwarancji na poprawność kodu nie ma, to osobna sprawa -
    dokumentacja też przecież takiej gwarancji nie daje.

    >>> Czy uwazasz, ze 100% funkcjonalnosci mozna udokumentowac w formie
    >>> testu?
    >>
    >> Nawet jeśli można udokumentować 99%, to praktycznie różnica jest niewielka.
    >
    > Czyli uwazasz, ze osiagalne jest "99%" (czyli prawie kompletny opis)?
    > Tak/nie.

    Ostrożnie powiem, że to zależy od dziedziny, a ja się na wielu
    dziedzinach nie znam. Ale na ogół uważam, że tak właśnie jest - między
    odpowiednio ekspresywnie napisanymi testami a odpowiednio ekspresywnie
    napisanym kodem da się wyrazić to, co zazwyczaj się wyraża w
    dokumentacji - równie dobrze jak w dokumentacji.

    >>> Zalozmy, ze projekt zawiera biblioteke numeryczna. Czy wystarczy
    >>> "acceptance test", czy nie nalezy rowniez udokumentowac algorytmow,
    >>> ktore biblioteka ma implementowac?
    >>
    >> Nie wiem konkretnie jak jest z bibliotekami numerycznymi.
    >
    > Jest tak, ze nie wystarczy wiedziec, ze biblioteka przechodzi X
    > testow, zeby ocenic, czy design jest poprawny czy nie. Testy moga
    > sprawdzic skonczona liczbe przypadkow, ale wymagania stawiane
    > bibliotekom numerycznym jest ciezko zawrzec calkowicie w formie
    > testow.
    > Np. wymaganie moze brzmiec "procedura X ma implementowac algorytm
    > calkujacy Grubiediewa". Jak to sprawdzisz unit testem?

    Po pierwsze - tak w ogóle - testy to nie tylko unit testy.

    Po drugie w innych działkach, i przypuszczam, że tutaj tak samo, wybór
    algorytmu wynika z pewnym właściwości całkowania tym algorytmem, które
    są rzeczywistym wymaganiem. I te właściwości można jak najbardziej testować.

    Poza sprawdzeniem obserwowalnych właściwości zachowania programu,
    istotne właściwości implementacji zamiast zapisywać w dokumentacji można
    często zapisać w kodzie. Trochę żartobliwie mogę powiedzieć, że to, co
    napisałeś da się zapisać tak:

    double X (args) {
    return calkujAlgortymemGrubiediewa(args);
    }

    >> Jeśli chodzi o
    >> to, że wykorzystujesz jakieś algorytmy z literatury i chcesz
    >> udokumentować fakt, że stosujesz algorytm Kamionnego-Łomonosowa z
    >> artykułu "Zastosowanie metod numerycznych przy wykopywaniu ziemniaków"
    >> publikowanego w miesięczniku Kołchoźnik nr 8/51? No to może faktycznie
    >> należy dać przypis w komentarzu.
    >
    > A jesli algorytm nie zostal nigdzie opublikowany?

    To co napiszesz w dokumencie? Że funkcja całkuje algorytmem, który nie
    został nigdzie opublikowany? Takie coś to można napisać w komentarzu.

    Jeśli chodzi o opis działania samego algorytmu, to programiści dysponują
    znakomitym narzędziem właśnie do tego, jakim są wysokopoziomowe języki
    programowania.

    Oczywiście jeśli masz taką sytuację, że wymyślasz własny algorytm i
    musisz np. formalnie udowodnić jego poprawność, to może i najlepiej to
    zrobić w postaci dokumentu. Ale jak często zdarzają się tak naprawdę
    takie sytuacje?

    >>> A jezeli zmieni dzialanie programu w aspekcie nie objetym testami?
    >>
    >> To dobrze, że przynajmniej zdaje sobie sprawę, że zmieni.
    >
    > Skad ma zdawac sobie sprawe? Przeciez nie ma dokumentacji, moze uznac,
    > ze zmiana w kodzie nie zmieni istotnych aspektow dzialania programu,
    > bo... unit testy przechodza.

    Po pierwsze może się po prostu wziąć z analizy "jakie będą konsekwencje
    jeśli zmienię program w ten sposób". Jeśli programiście mylnie się
    wydaje, że zachowanie programu się nie zmieni, to dokumentacja w niczym
    tu nie pomoże. Jeśli programista jest w stanie stwierdzić, że zachowanie
    programu się zmieni, to powinien być też w stanie stwierdzić, że nie ma
    testów testujących aspekt który się zmieni, więc jest w stanie uruchomić
    całą procedurę "dlaczego nie ma na to testów".

    Po drugie tak w ogóle ten scenariusz nie różni się za bardzo od
    sytuacji, kiedy zmiany wprowadzone przez programistę powodują zmianę
    działania programu w aspekcie nie objętym dokumentacją.

    >> sytuacji, skoro aspekt nie jest objęty testami, to prawdopowodnie należy
    >> go objąć testami. No chyba że OSCR powie, że ten aspekt jest nieistotny,
    >> to wtedy nie ma problemu.
    >
    > Ale skad programista ma *wiedziec*, ze zmiana ktora chce wprowadzic w
    > kodzie jest istotna i powinna byc skonsultowana z OSCR, skoro nie ma
    > dokumentacji? Ma trzymac OSCR non-stop przy sobie? A jesli nad
    > projektem pracuje wiecej niz 1 programista, to ile osob ze strony
    > klienta ma je nadzorowac?

    Zakłada się, że programista ma jakąś inteligencję i powinien na
    podstawie rozmów z OSCR nabyć wiedzy i rozumienia na temat tego, jak
    program ma działać i dlaczego właśnie tak.

    Poza tym dąży się do tego, żeby zmiany funkcjonalne praktycznie zawsze
    były objęte istniejącymi testami. Jeśli coś nie jest objęte testem, a
    może być istotne, to się testy dodaje i potem one już są.


  • 66. Data: 2011-12-18 01:46:15
    Temat: Re: Porównanie różnych języków
    Od: Andrzej Jarzabek <a...@g...com>

    On 17/12/2011 22:51, Maciej Sobczak wrote:
    > On Dec 17, 4:58 pm, Andrzej Jarzabek<a...@g...com>
    > wrote:
    >
    >> Tak, generalnie polega to na tym, że programista rozmawia z OSCR tak
    >> długo, żeby zrozumieć co program ma robić,
    >
    > I to jest właśnie problem tej metodologii, bo zakłada ciągłość tego
    > procesu.
    >
    > Otóż ja mam taki defekt[*], że jak ktoś coś do mnie mówi, to już po
    > kilku minutach nie pamiętam, o czym mówił na początku. Radzę sobię z
    > krótką listą zakupów, ale dłuższe opisy mi się urywają.

    Sprzedam ci niezły patent: notatki.


  • 67. Data: 2011-12-18 02:16:39
    Temat: Re: Porównanie różnych języków
    Od: Roman W <b...@g...pl>

    On Dec 17, 10:51 pm, Maciej Sobczak <s...@g...com> wrote:
    > Napisanie dokumentacji służy przekazaniu wiedzy i jest to proces,
    > który może być zarówno kompletny, jak i obustronnie potwierdzony.

    Nie tylko przekazaniu, ale i sformalizowaniu. Wiele razy mialem tak,
    ze koncepcja ktora tlukla mi sie po glowie nabierala ostateczna forme
    dopiero kiedy przelewalem ja "na papier". Spisanie planu dzialania
    pozwala zobaczyc w nim luki i niedociagniecia, ktore w rozmowie ustnej
    albo emailowej moga umknac uwadze. Taniej i szybciej jest poprawic
    blad na papierze niz w kodzie.

    RW


  • 68. Data: 2011-12-18 02:24:20
    Temat: Re: Porównanie różnych języków
    Od: Roman W <b...@g...pl>

    On Dec 18, 1:36 am, Andrzej Jarzabek <a...@g...com>
    wrote:
    > On 17/12/2011 20:02, Roman W wrote:
    > > Systemu jako calosci? Czyli jednak dokumentacja.
    >
    > Systemu jako całości lub danego kawałka. Wiedza to nie jest to samo, co
    > dokumentacja.

    Dokumentacja to sformalizowana, usystematyzowana wiedza.

    > > Ale to opisuje wycinek systemu.
    >
    > Łącznie wszystkie te opisy opisują cały system. Tak samo jak z
    > dokumentacją wymagań zresztą: składa się zwykle z jakichś rozdziałów,
    > które opisują wycinki systemu.

    Wiesz, rownie dobrze mozna by argumentowac, ze rozsypana na podlodze
    kupka srubek i sprezynek to jest tak jak zegarek, bo i to i to sklada
    sie z jakichs srubek i sprezynek. Ale jakos jedno powie mi ktora
    godzina, a drugie nadaje sie tylko do zmiecenia szczotka.

    >
    > >> no i przede wszystkim będzie
    > >> to działający kod, który robi właśnie to, co trzeba.
    >
    > > Nie, bedzie to kod przechodzacy kilka testow. To nie to samo.
    >
    > Jednak nie tylko przechodzący kilka testów, bo jego forma się bierze
    > stąd, że programista _rozumie_ co program ma robić, a nie z tego, że
    > widział kod testów i dostaje zadanie napisania kodu  je przechodzącego.

    To co widzial? mial objawienie? czy moze cos, gasp, przeczytal?

    RW


  • 69. Data: 2011-12-18 02:25:32
    Temat: Re: Porównanie różnych języków
    Od: Roman W <b...@g...pl>

    On Dec 18, 1:46 am, Andrzej Jarzabek <a...@g...com>
    wrote:
    > On 17/12/2011 22:51, Maciej Sobczak wrote:
    >
    > > On Dec 17, 4:58 pm, Andrzej Jarzabek<a...@g...com>
    > > wrote:
    >
    > >> Tak, generalnie polega to na tym, że programista rozmawia z OSCR tak
    > >> długo, żeby zrozumieć co program ma robić,
    >
    > > I to jest właśnie problem tej metodologii, bo zakłada ciągłość tego
    > > procesu.
    >
    > > Otóż ja mam taki defekt[*], że jak ktoś coś do mnie mówi, to już po
    > > kilku minutach nie pamiętam, o czym mówił na początku. Radzę sobię z
    > > krótką listą zakupów, ale dłuższe opisy mi się urywają.
    >
    > Sprzedam ci niezły patent: notatki.

    Jezeli Koles A przelewa wiedze do glowy kolesia B, to czesto lepiej
    jest, zeby forme pisemna wiedzy nadal koles A, bo on sie w tym lepiej
    orientuje niz B. Dlatego na studiach oprocz notatek miales rowniez
    podreczniki i konspekty.

    RW


  • 70. Data: 2011-12-18 02:58:19
    Temat: Re: Porównanie różnych języków
    Od: A.L. <l...@a...com>

    On Sun, 18 Dec 2011 01:36:16 +0000, Andrzej Jarzabek
    <a...@g...com> wrote:

    >
    >
    >Jeśli chodzi o opis działania samego algorytmu, to programiści dysponują
    >znakomitym narzędziem właśnie do tego, jakim są wysokopoziomowe języki
    >programowania.


    Dupy zawracanie. Oczywiscie, latwo bedzie odcyfrowac taka rzecz jak
    "algorytm pivotingu" algorytmu Simplex przegladajac 150 tysiecy linii
    C jego implemenatcji.

    Drodzy Panowie, znow obracacie sie kolo paradygmatu "bazki danych
    szlauchow i kaloszy" i "systemow" pisanych pzrez jednego programiste w
    pare wieczorow. Jeszcze raz: w duzych projektach programista nei
    rozmawia z klientem, w ogole nie widzi go na oczy, a "klient" to nie
    pojedyncza osoba a duza na ogol organizacja. Bez odpowiedniej
    formalizacji procesu projektowania i dokumentowania wymagan dla
    programisty ow programista nei mialby zielonego pojacia co
    programowac, a projekt skutkowalby tym samym czym skutkowala proba
    bucowy Wiezy Babel

    A.L.

strony : 1 ... 6 . [ 7 ] . 8 ... 16


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: