eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.comp.programmingDavid West: OOP is DeadRe: David West: OOP is Dead
  • X-Received: by 10.140.105.54 with SMTP id b51mr16049qgf.29.1392805833569; Wed, 19 Feb
    2014 02:30:33 -0800 (PST)
    X-Received: by 10.140.105.54 with SMTP id b51mr16049qgf.29.1392805833569; Wed, 19 Feb
    2014 02:30:33 -0800 (PST)
    Path: news-archive.icm.edu.pl!agh.edu.pl!news.agh.edu.pl!newsfeed2.atman.pl!newsfeed.
    atman.pl!news.nask.pl!news.nask.org.pl!newsfeed.pionier.net.pl!news.glorb.com!c
    10no31002107igq.0!news-out.google.com!dr7ni182qab.1!nntp.google.com!f11no240895
    15qae.1!postnews.google.com!glegroupsg2000goo.googlegroups.com!not-for-mail
    Newsgroups: pl.comp.programming
    Date: Wed, 19 Feb 2014 02:30:33 -0800 (PST)
    In-Reply-To: <b...@g...com>
    Complaints-To: g...@g...com
    Injection-Info: glegroupsg2000goo.googlegroups.com; posting-host=93.154.243.201;
    posting-account=Sb6m8goAAABbWsBL7gouk3bfLsuxwMgN
    NNTP-Posting-Host: 93.154.243.201
    References: <ldaa9r$3j5$1@speranza.aioe.org>
    <9...@g...com>
    <52fccceb$0$2362$65785112@news.neostrada.pl>
    <6...@g...com>
    <52fceef0$0$2140$65785112@news.neostrada.pl>
    <1...@g...com>
    <ldv7fu$3vq$1@dont-email.me>
    <6...@g...com>
    <a...@g...com>
    <ldvj3g$28c$1@dont-email.me>
    <6...@g...com>
    <ldvqkt$bnu$1@dont-email.me>
    <4...@g...com>
    <c...@g...com>
    <2...@g...com>
    <d...@g...com>
    <e...@g...com>
    <le0d01$46k$1@dont-email.me>
    <b...@g...com>
    <le1kk8$flv$1@dont-email.me>
    <4...@g...com>
    <b...@g...com>
    User-Agent: G2/1.0
    MIME-Version: 1.0
    Message-ID: <a...@g...com>
    Subject: Re: David West: OOP is Dead
    From: firr <p...@g...com>
    Injection-Date: Wed, 19 Feb 2014 10:30:33 +0000
    Content-Type: text/plain; charset=ISO-8859-2
    Content-Transfer-Encoding: quoted-printable
    Xref: news-archive.icm.edu.pl pl.comp.programming:205200
    [ ukryj nagłówki ]

    W dniu środa, 19 lutego 2014 10:58:35 UTC+1 użytkownik g...@g...com napisał:
    > W dniu środa, 19 lutego 2014 09:41:57 UTC+1 użytkownik firr napisał:
    >
    > >
    >
    > > wydaje mi sie ze mozliwosci scislej przedmiotowej
    >
    > > i konkretnej rozmowy sie tu mw wyczerpaly a w gadanie
    >
    > > na poziomie bajek o pikselach i prostokatach i 11
    >
    > > klientach z kapadocji jest troche nie dla mnie
    >
    > >
    >
    > > rozumiem tez ze nie jestes nieststy rzecznikiem
    >
    > > opu tak ze nie umialbys odpowiedziec na moja pytania
    >
    > > ktore ew komus kto by za takiegop rzecznika mogl robic
    >
    > > moglbym jeszcze zadac, a brzmialyby one tak:
    >
    > >
    >
    > > jak rozumiem sensem tego sposobu pisania jest
    >
    > > wytworzenie w programie siatki obiektów które
    >
    > > wzajemnie widza sie poprzez poustawiane jako
    >
    > > swoje pola referencje, TAK CZY NIE?
    >
    > >
    >
    > > jezeli nie to o co chodzi jesli nie o to a jezeli
    >
    > > tak, to jak rzecznik opu ustosunkowywuje sie do tego
    >
    > > ze oprócz takiego wypracowanego w koncu grafu
    >
    > > objektów (który moglbym zrozumiec) w takim oopie
    >
    > > funkcjonuje (chyba na zasadzie wysypiska na smieci)
    >
    > > drugi poziom gdzie dane obiekty nie sa zawieszone w
    >
    > > czystej prózni ale poosadzane w roznych zakamarkach
    >
    > > kodu i jeszcze do tego ich setup i konfiguracja
    >
    > > jest tez nieczysto uwikłany w cały code-flow
    >
    > >
    >
    > > innymi slowy czy ta zewnetrzna warstwa opu stanwi
    >
    > > dla wyznawcow opu jakas atrakcje sama w sobie
    >
    > > (gdzie upatruja jakichs mozliwosci robienia czegos
    >
    > > ciekawego) czy jest tylko odrzutem potrzebnym do
    >
    > > ustawienia grafu obiektów?
    >
    > >
    >
    > > moze zapytam o to na innym forum - choc nie interesuje
    >
    > > mnie to szczerze mowiac za bardzo
    >
    > >
    >
    > > jako ze to nie jest moja działka, moglbym sie
    >
    > > dowiadywac tylko z ciekawosci jak ci zwolennicy opu
    >
    > > to widzą
    >
    > >
    >
    > > albo moze uzytkownik gode by umial na to odpowiedziec?
    >
    > > (o ile uzywa opu bo juz
    >
    > > nie pamietam) - jesli rozumie co mam na mysli
    >
    > > piszac o wewnetrznej i zewnetrznej stronie opu
    >
    >
    >
    > Nie jestem pewien, czy rozumiem. Ale wydaje mi sie, ze
    >
    > celem OOP jest przede wszystkim podzial oprogramowania
    >
    > na komponenty, z ktorych kazdy posiada okreslone
    >
    > kompetencje. Ten podzial manifestuje sie zarowno w kodzie
    >
    > zrodlowym (w jezykach wspierajacych obiekty poprzez
    >
    > uzycie klas albo prototypow), jak i w samej analizie,
    >
    > tj. sposobie myslenia o problemie.
    >
    >
    >
    > W kontekscie OOP czesto mowi sie o "polimorfizmie",
    >
    > "hermetyzacji (=enkapsulacji)" i "dziedziczeniu".
    >
    >
    >
    > Zaczne od ostatniego pojecia, gdyz wydaje mi sie
    >
    > najbardziej uzyteczne. Idzie o to, ze tak jak klasy
    >
    > odpowiadaja pojeciom, a obiekty -- bytom, stwierdzenie
    >
    > "X dziedziczy po Y" mozna rozumiec jako taksonomiczne
    >
    > "X jest rodzajem Y". (W kontrascie do dziedziczenia
    >
    > mowi sie tez o agregacji, gdy w definicji klasy
    >
    > wystepuje pole majace przechowywac obiekt innej
    >
    > klasy; taka sytuacja partonomicznemu "Y sklada sie
    >
    > [m.in.] z X")
    >
    >
    >
    > Moim zdaniem dobrze jest moc wyrazac te relacje w jezyku.
    >
    >
    >
    > Jezeli idzie o pojecia hermetyzacji i polimorfizmu,
    >
    > to sa one ze soba zwiazane. Hermetyzacja to idea, ze
    >
    > szczegoly implementacyjne zwiazane z jakims zagadnieniem
    >
    > ukrywa sie za publicznym, dobrze okreslonym interfejsem.
    >
    > Polimorfizm zas, to taki pomysl, ze jezeli mamy rozne
    >
    > klasy, ktore implementuja ten sam interfejs, to mozna
    >
    > ich uzywac w takim samym kontekscie (sa ze soba zastepowalne
    >
    > -- moze nie w sensie funkcjonalnosci, ale w sensie mozliwego
    >
    > uzycia)
    >
    >
    >
    > I co do tych kwestii, to mam juz nieco wiecej zastrzezen.
    >
    > Po pierwsze, idea hermetyzacji moze byc odebrana jako
    >
    > komunikat do programisty: "masz tylko zaimplementowac
    >
    > taki-a-taki interfejs. Jezeli masz przy tym smietnik
    >
    > w swoim kodzie, nie interesuje nas to". Czyli sama hermetyzacja
    >
    > nie jest wytyczna dotyczaca tego, jak nalezy pisac kod.
    >
    >
    >
    > Po drugie, czasem bywa tak, ze koniecznosc zastosowania
    >
    > wymienionych tu mechanizmow obiektowych wynika stad, ze
    >
    > tworca programu nie udostepnia swojego kodu zrodlowego.
    >
    > W tej sytuacji, zeby dalo sie w ogole z systemem
    >
    > wspolpracowac, rzeczywiscie podstawa sa dobrze zaprojektowane
    >
    > interfejsy, ale w wielu wypadkach cena jest taka, ze
    >
    > system jest duzo bardziej zlozony, niz moglby byc.
    >
    > (A i tak zawsze bedzie mniej elastyczny niz wowczas,
    >
    > gdy po prostu udostepni sie dobrze napisany kod zrodlowy
    >
    > -- bo jego elastycznosc bedzie tylko tak duza, na ile
    >
    > pozwolila wyobraznia jego tworcow)
    >
    >
    >
    > Wydaje mi sie, ze jezeli chce sie stworzyc system bazujacy
    >
    > na jakiejs persystencji, to stosowanie analizy obiektowej
    >
    > jest jak najlepszym pomyslem. Jednak jezeli tylko mozna
    >
    > unikac stanow mutowalnych (przypisan, zmiany wartosci
    >
    > zmiennych -- you name it), to najlepiej pisac jak najwieksze
    >
    > polacie systemu czysto funkcyjnie, bo taki kod jest duzo
    >
    > prostszy w analizie, bo analizujac jego przebieg, nie trzeba
    >
    > zapamietywac wartosci zmiennych.
    >
    >
    >
    > (Mozna tez sie spotkac w srodowiskach funkcyjnych z bardziej
    >
    > radykalnymi pomyslami. Programisci Haskella, a zdaje sie, ze
    >
    > rowniez autorzy ksiazki o programowaniu gier w Rackecie
    >
    > "How to design worlds" prezentuja takie podejscie, ze sercem
    >
    > projektu gry powinna byc "czysta" funkcja, ktora pobiera biezacy
    >
    > stan swiata + sterowanie, i zwraca nowy stan swiata. Ciekawy
    >
    > wydaje sie tez pomysl "functional reactive programming", ale
    >
    > przyznam, ze jeszcze w calosci go nie zglebilem)
    >
    >
    >
    > Tak by wygladal mniej wiecej moj poglad na te kwestie.
    >
    > Inna rzecz, ze programisci czy projektanci OOP stosuja
    >
    > rozne wynalazki, ktorych nigdy nie rozumialem, albo ktore
    >
    > wydawaly mi sie zawsze niepotrzebnym komplikowaniem prostych
    >
    > rzeczy (jak np. schematy UML czy tzw. "wzorce projektowe").

    no dobra widze ze nie jestem rozumiany,
    mi chodzilo o to by jakis jaki taki znawca opu
    zrozumial to co nazywam wewnetrzna strona opu
    (na ktora skladaja sie ciała obiektów polaczonych
    wzajemnymi referencjami 'przez wskaznik')
    (ta wewnetrzna strona opu przypomina troche system
    modułowy) - i to co nazywam zewnetrzna strona opu
    (czyli ten smutny fakt ze objektowa siatka
    jest jeszcze jakos tam instancjonowana i konfigurowana - ale niewazne, zebym mogl tu
    cos
    pogadac to chyba musialbym miec wiecej konkretnych
    przykladów programow napisanych w oop i popatrzec na
    te architektury , moze kiedys popatrze, na razie nie
    mam chyba specjalnej checi

Podziel się

Poleć ten post znajomemu poleć

Wydrukuj ten post drukuj


Następne wpisy z tego wątku

Najnowsze wątki z tej grupy


Najnowsze wątki

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: