eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.comp.programmingWybrać język czy tematykeRe: Wybrać język czy tematyke
  • Path: news-archive.icm.edu.pl!news.gazeta.pl!newsfeed.pionier.net.pl!news.nask.pl!new
    s.nask.org.pl!news.onet.pl!not-for-mail
    From: Sebastian Biały <h...@p...onet.pl>
    Newsgroups: pl.comp.programming
    Subject: Re: Wybrać język czy tematyke
    Date: Mon, 18 Oct 2010 18:24:47 +0200
    Organization: http://onet.pl
    Lines: 37
    Message-ID: <i9hscn$bum$1@news.onet.pl>
    References: <i9208j$ikj$1@news.onet.pl> <i93hmu$6kb$1@polsl.pl>
    <i93q2v$hov$1@news.onet.pl> <i95als$fm4$1@news.onet.pl>
    <s...@b...pl>
    <n...@4...com>
    <s...@b...pl>
    <i9adtb$ol2$1@news.onet.pl>
    <s...@b...pl>
    <i9de07$qj0$2@news.onet.pl> <x...@j...slimaczek.pl>
    <i9errb$ogj$1@news.onet.pl> <1...@j...slimaczek.pl>
    <i9fg1q$fpn$1@news.onet.pl> <i9h2hp$lpk$1@polsl.pl>
    NNTP-Posting-Host: chello089076168083.chello.pl
    Mime-Version: 1.0
    Content-Type: text/plain; charset=ISO-8859-2; format=flowed
    Content-Transfer-Encoding: 8bit
    X-Trace: news.onet.pl 1287419095 12246 89.76.168.83 (18 Oct 2010 16:24:55 GMT)
    X-Complaints-To: n...@o...pl
    NNTP-Posting-Date: Mon, 18 Oct 2010 16:24:55 +0000 (UTC)
    User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US; rv:1.9.1.12)
    Gecko/20100914 Thunderbird/3.0.8
    In-Reply-To: <i9h2hp$lpk$1@polsl.pl>
    Xref: news-archive.icm.edu.pl pl.comp.programming:187141
    [ ukryj nagłówki ]

    On 2010-10-18 11:06, Mirosław Habarta wrote:
    >> Nie. Ale pierwsze co robie na code review to pytam autora po co. I
    >> prawie zawsze można znaleźć lepsze rozwiązanie które w przyszlości
    >> będzie łatwiejsze w utrzymaniu. A szczegolnie jak to jest dynamic_cast.

    > No ale przyznaj, że "prawie" robi jednak różnicę.

    Jezyk to nie religia. Jak sie nie da to się izoluje, opisuje i stawia
    duzo asertów i unit testów i dalej świadomie unika.

    > casty są jednakowo złowróżbne ? Piszesz o dynamic_cast jako szczególnie
    > groźnym, ale wg. mnie jest to jeszcze względnie bezpieczne - złe
    > castowanie od razu wychodzi.

    Nie wychodzi od razu. Wychodzi w runtime. To jest ta różnica. A runtime
    nie zawsze przechodzi każdą ściezką nawet jesli poświęcisz czas na
    zrobienie porządnych testów kryjących większość kodu to gdzieś coś
    przeoczysz.

    > Czasem trzeba. Nie sposób przewidzieć wszystkich możliwych funkcji
    > wirtualnych w klasie bazowej - czasem jest to niemożliwe.
    > Czasem dostajemy gotową biblioteke, w której brakuje określonych
    > funkcji wirtualnych i trzeba sobie radzić - wtedy dynamic_cast

    Widze dwa rozwiazania:

    a) wizytacje (o ile możesz zmienić klasy bazowe).

    b) pseudo-wizytacje gdzie double-disptach zamieniony jest na
    dynamic_cast ale *wyizolowane* w jednym łatwym do utrzymania miejscu w
    kodzie a reszta kodu jest chroniona kontrolą typów. Łaczy zalete
    wizytorów w sensie kontroli typów compile-time a jednocześnie nie
    ingeruje w obcy kod.

    Ogólnie 15 minut poświęcone na usuniecie gówna w postaci casta moga
    zaprocentować w postaci nie straconych 3 dni na szukaniu problemu u
    klienta w Kambodży.

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: