eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.comp.programming'abstrakcje' a zwartoscRe: 'abstrakcje' a zwartosc
  • Path: news-archive.icm.edu.pl!news.icm.edu.pl!news.task.gda.pl!not-for-mail
    From: zażółcony <r...@c...pl>
    Newsgroups: pl.comp.programming
    Subject: Re: 'abstrakcje' a zwartosc
    Date: Thu, 10 May 2012 10:56:05 +0200
    Organization: CI TASK http://www.task.gda.pl/
    Lines: 65
    Message-ID: <jofvr3$1bj$1@news.task.gda.pl>
    References: <jod34n$a2q$1@inews.gazeta.pl> <jod8u2$5ht$1@news.task.gda.pl>
    <jodi47$f6t$1@inews.gazeta.pl> <jodmp0$99n$1@news.task.gda.pl>
    <jodtte$fhj$1@inews.gazeta.pl> <joe2j1$62b$1@news.task.gda.pl>
    <jof187$5hv$1@inews.gazeta.pl>
    NNTP-Posting-Host: efp194.internetdsl.tpnet.pl
    Mime-Version: 1.0
    Content-Type: text/plain; charset=ISO-8859-2; format=flowed
    Content-Transfer-Encoding: 8bit
    X-Trace: news.task.gda.pl 1336640163 1395 83.14.249.194 (10 May 2012 08:56:03 GMT)
    X-Complaints-To: a...@n...task.gda.pl
    NNTP-Posting-Date: Thu, 10 May 2012 08:56:03 +0000 (UTC)
    User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:12.0) Gecko/20120428
    Thunderbird/12.0.1
    In-Reply-To: <jof187$5hv$1@inews.gazeta.pl>
    Xref: news-archive.icm.edu.pl pl.comp.programming:197173
    [ ukryj nagłówki ]

    W dniu 2012-05-10 02:13, Andrzej Jarzabek pisze:
    > On 09/05/2012 16:30, zażółcony wrote:
    >>
    >> Imo to nie tak ...
    >> Tworzenie abstrakcji to nie żadne czary-mary, które sprawiają,
    >> że w jednej linijce kodu implementujesz wiele wymagań użytkownika.
    >> Jest wiele wymagań - będzie dużo kodu. Chyba że ...
    >
    > Akurat języki się potrafić dość znacznie tym, jak zwięzły kod można w
    > nich pisać, tylko że nie ma to wiele wspólnego ani z wysokopoziomowością
    > języka, ani z abstrakcją w kodzie.
    >
    > Java na przykład jest językiem wysokopoziomowym, a jest mocno rozwlekła.
    >
    >> Chyba że są to wymagania 'powszechne' a nie specyficzne, zwiazane
    >> n. z modą na to, by okienka wyglądały tak samo. Wtedy ktoś Ci
    >> to zrobi i powie, jak masz to użyć.
    >
    > Ale też chyba nie jest takie rzadkie, żeby abstrakcja redukowała ilośc
    > kodu przez unikanie zduplikowania. Tyle że z drugiej strony ta sama
    > abstrakcja potrafi też zwiększyć ogólną ilość kodu, i według mnie
    > średnio raczej zwiększa, niż zmniejsza.

    Jest różnie, raz w tę, raz we wtę.
    Imo autor wątku zawęził znaczenie/celów stawianych tworzeniu abstrakcji,
    zafiksował się na jednym, czyli "zwięzłość kodu". A tych celów/zadań
    jest znacznie więcej, wymienię tu dwa, które mi przychodzą do głowy:

    1. Podział odpowiedzialności

    2. Ochrona kodu przed 'czeskimi' błędami - tak by np. jak najwięcej
    błędów było wychwytywanych na etapie kompilacji, a nie w runtimie.

    Ad 1.
    Podział odpowiedzialności pomiędzy komponenty systemu jest kluczowy
    w produkcji złożonego oprogramowania, nad którym np. pracuje wiele
    osób. Podział odpowiedzialności/rozdział implementowanych wymagań
    pomiędzy komponenty umożliwia z kolei:
    - sprawną identyfikację miejsc w kodzie, minimalizację zmian
    implementacyjnych, szacowanie ryzyka, ograniczanie ryzyka - kiedy
    wymagania się zmieniają (zarządzanie zmianą)
    - budowę, zarządzanie, uruchamianie testów jednostkowych
    - podział odpowiedzialności wśród ludzi i kontrolę - np. w wydzielonych
    podsystemach technicznych maja prawo grzebać tylko niektórzy, jest to
    związane z dużym ryzykiem itp itd. Reszta 'klepie' szablonowe procedury
    biznesowe
    - z tym ostatnim wprost powiązane jest np. zmniejszenie kosztów szkoleń
    nowych pracowników, bo nie muszą wiedzieć wszystkiego
    - także jest z tym związana łatwiejsza komunikacja programistów z
    analitykami/użytkownikami

    Ad 2.
    Bardzo typowe, czeskie błędy powstają na styku różnych języków
    programowania, 'oczywisty' i powszechny przykład: literówki w
    zapytaniach SQL schowanych w stringach w językach wyższego poziomu.
    Kompilator Javy, choćby się skichał - nie wykryje literówki
    w słowie kluczowym "SELECVT". Problem ten rozwiązuje się
    na wiele sposobów, np. O/R mapping (cała technologia różnych
    abstrakcji), które eliminują konieczność pisania wielu prostych
    zapytań i/lub techniki zapisu zapytań SQL za pomocą języka wysokiego
    poziomu - patrz np. takie pomysły, jak "Jacle"
    http://code.google.com/p/jacle/
    Warto zauważyć, że w tym ostatnim przypadku kod wcale nie staje się
    zwięźlejszy, a wrecz odwrotnie (BTW. SQL należy do czołówki pod względem
    zwięzłości zapisu wymagań.

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: