eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.comp.programmingModułowość programu - założeniaRe: Modułowość programu - założenia
  • Path: news-archive.icm.edu.pl!news.icm.edu.pl!news.nask.pl!news.nask.org.pl!news.uni-
    stuttgart.de!news.stw-bonn.de!newsreader4.netcologne.de!news.netcologne.de!feed
    er.news-service.com!postnews.google.com!b10g2000vbz.googlegroups.com!not-for-ma
    il
    From: Maciej Sobczak <s...@g...com>
    Newsgroups: pl.comp.programming
    Subject: Re: Modułowość programu - założenia
    Date: Sat, 17 Sep 2011 14:40:02 -0700 (PDT)
    Organization: http://groups.google.com
    Lines: 96
    Message-ID: <4...@b...googlegroups.com>
    References: <4e71f9d2$0$2494$65785112@news.neostrada.pl>
    <8...@m...googlegroups.com>
    <j4v55p$kaa$1@news.onet.pl>
    <5...@d...googlegroups.com>
    <j52cq0$aj7$1@news.onet.pl>
    NNTP-Posting-Host: 83.3.40.82
    Mime-Version: 1.0
    Content-Type: text/plain; charset=ISO-8859-2
    Content-Transfer-Encoding: quoted-printable
    X-Trace: posting.google.com 1316295713 16348 127.0.0.1 (17 Sep 2011 21:41:53 GMT)
    X-Complaints-To: g...@g...com
    NNTP-Posting-Date: Sat, 17 Sep 2011 21:41:53 +0000 (UTC)
    Complaints-To: g...@g...com
    Injection-Info: b10g2000vbz.googlegroups.com; posting-host=83.3.40.82;
    posting-account=bMuEOQoAAACUUr_ghL3RBIi5neBZ5w_S
    User-Agent: G2/1.0
    X-Google-Web-Client: true
    X-Google-Header-Order: HUALESNKRC
    X-HTTP-UserAgent: Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.6; en-US; rv:1.9.2.13)
    Gecko/20101203 Firefox/3.6.13,gzip(gfe)
    Xref: news-archive.icm.edu.pl pl.comp.programming:192434
    [ ukryj nagłówki ]

    On Sep 17, 5:02 pm, Michoo <m...@v...pl> wrote:

    > > Co jak zamawianie pizzy
    > > - wybierasz sk adniki a pizzaiolo przy piekarniku lepi wszystko tak
    > > jak sobie wybra e . Nie widz tu problemu z linkowaniem statycznym.
    >
    > Ja te nie widz specjalnego problemu - albo pakujemy wybrane pliki .so,
    > albo gcc na wybranych plikach .a.

    Wolę wersję statyczną. Przynajmniej wiadomo, że użytkownik niczego
    ręcznie nie pomieszał.

    > > Praktykuje si r wnie inne podej cie - wszystko zlinkowa co si da i
    > > dostarczy klientowi ca y produkt, ale tylko niekt re jego modu y s
    > > aktywne, reszta jest nieaktywna i aktywuje si j p niej.
    >
    > Tylko co w sytuacji gdy nie da si tego zlinkowa bo mamy plugin X i
    > jego wersj dla firm A,B r ni ce si kilkoma szczeg ami, kt rych
    > wprowadzenie do mainline nie jest ani celowe ani korzystne?

    Nie rozumiem. Czego się nie da zlinkować? Różnych modułów? Pewnie, że
    się da.
    A to, że coś nie jest celowe, to nikogo nie obchodzi, jeśli niechciane
    części są nieaktywne.

    > > Wad jest
    > > to, e si bierze wi kszy pakiet na pocz tku ale zalet jest to, e
    > > p niejsza aktywacja modu w w og le nie musi nawet wymaga po czenia
    > > przez net. I to si praktykuje, nawet cz sto.
    >
    > Ale te aktualizacja wymaga konstruowania binarnych at albo pobierania
    > ca o ci na nowo, nie mo na wys a po prostu zmodyfikowanej jednej
    > biblioteki.

    A co za różnica?
    Jak na swoim komputerze widzę, że jest aktualizacja do jakiegoś
    programu, to mnie kompletnie nie interesuje, czy to jest łata, czy
    całość, czy 4 z 156 bibliotek. Widzę tylko, że jest aktualizacja i
    mogę wcisnąć Continue albo i nie wcisnąć.
    Użytkownika naprawdę nie interesuje w jakim formacie te aktualizacje
    przyjdą.

    > > Oczywi cie ch tnie us ysz jaki przyk adowy kontrargument, tylko
    > > praktyczny.
    >
    > Za my, e mamy aplikacj obs uguj c kilkaset da na minut . W
    > przypadku odpowiednio rozwi zanego systemu plugin w mo emy oznaczy
    > plugin jako przeznaczony do wy adowania(zostanie wy adowany gdy sko cz
    > si wszystkie po czenia), za adowa now wersj i mie aktualizacj bez
    > downtime.

    Widziałeś już coś takiego w praktyce? Nazwa produktu, please.

    BTW - co to znaczy "gdy skończą się wszystkie połączenia" i czym to
    się różni od downtime?

    BTW2 - a co jak się połączenia nie skończą, bo zawsze przyjdzie jakieś
    nowe i nigdy nie będzie ich zero? Trzeba zrobić jakiś mechanizm, który
    nie pozwoli na stworzenie nowych połączeń. I czym *to* się różni do
    downtime z punktu widzenia tego odrzuconego klienta?

    Gdybym miał zrobić taki hot-swap, to nie robiłbym programu jako zbioru
    bibliotek, bo to na 100% się kiedyś wywali na hazardach, tylko jako
    zbiór osobnych programów połączonych przez jakiś message bus w postaci
    lokalnego brokera. Albo przewidziałbym failover pomiędzy instancjami
    od samego początku. Takie coś robiłem i bez żadnego downtime'u można
    było uaktualniać nie tylko software ale i hardware. Ale ładowanie i
    wyładowywanie bibliotek w czasie działania programu? Science fiction.

    > Przyk ad:
    > w pewnej, rzadkiej sytuacji modu A u ywa foo z modu u B, foo zostaje
    > zmodyfikowana (dzia a teraz w spos b niekompatybilny) i dopiero na
    > etapie szczeg owych test w (albo dopiero w praniu) wychodzi zale no
    > A->B. Gdyby to by y pluginy to komunikowa y by si po swoich publicznych
    > interfejsach i by oby wiadomo od pocz tku, e specyfikacja foo jest jego
    > sk adow .

    Ale biblioteki dzielone kompletnie nic tu nie wnoszą. Wystarczy
    posłużyć się narzędziami dostępnymi na poziomie języka. Jeśli one nie
    wystarczają, to język jest do bani i biblioteki dzielone nadal nic tu
    nie wniosą.

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

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: