eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.misc.elektronika[Zlecę] wykonanie interface'u Ethernetowego do architektury Z80Re: [OT] [Zlecę] wykonanie interface'u Ethernetowego do architektury Z80
  • Path: news-archive.icm.edu.pl!agh.edu.pl!news.agh.edu.pl!newsfeed2.atman.pl!newsfeed.
    atman.pl!newsfeed.neostrada.pl!unt-exc-02.news.neostrada.pl!unt-spo-a-01.news.n
    eostrada.pl!news.neostrada.pl.POSTED!not-for-mail
    Date: Thu, 03 May 2012 15:32:06 +0200
    From: mk <reverse_lp.pw@myzskm>
    User-Agent: Mozilla/5.0 (Windows NT 5.1; rv:11.0) Gecko/20120327 Thunderbird/11.0.1
    MIME-Version: 1.0
    Newsgroups: pl.misc.elektronika
    Subject: Re: [OT] [Zlecę] wykonanie interface'u Ethernetowego do architektury Z80
    References: <4f9d25af$1$1209$65785112@news.neostrada.pl>
    <jnk77t$895$1@mx1.internetia.pl> <jnk8f0$r2r$1@node2.news.atman.pl>
    <jnk9gt$64k$1@news.dialog.net.pl> <jnkd05$vuu$1@node2.news.atman.pl>
    <jnkghf$9m$1@mx1.internetia.pl> <jnkhcv$9v6$1@news.dialog.net.pl>
    <jnldta$e37$1@mx1.internetia.pl> <o...@j...jedi>
    <jnmqll$dqi$2@inews.gazeta.pl> <o...@j...jedi>
    <jnmvba$pbl$1@inews.gazeta.pl> <o...@j...jedi>
    <jnn0o5$ssr$1@inews.gazeta.pl> <o...@j...jedi>
    <jnn2ld$3ti$1@inews.gazeta.pl> <o...@j...jedi>
    <jnomqu$stm$1@inews.gazeta.pl> <o...@j...jedi>
    <jnprj1$oao$1@inews.gazeta.pl> <o...@j...jedi>
    In-Reply-To: <o...@j...jedi>
    Content-Type: text/plain; charset=UTF-8; format=flowed
    Content-Transfer-Encoding: 8bit
    Lines: 59
    Message-ID: <4fa288d2$0$26683$65785112@news.neostrada.pl>
    Organization: Telekomunikacja Polska
    NNTP-Posting-Host: 83.22.69.19
    X-Trace: 1336051922 unt-rea-a-01.news.neostrada.pl 26683 83.22.69.19:2463
    X-Complaints-To: a...@n...neostrada.pl
    Xref: news-archive.icm.edu.pl pl.misc.elektronika:630559
    [ ukryj nagłówki ]

    W dniu 2012-05-02 14:52, Andrzej Ekiert pisze:

    >> Destruktory to cecha która nie wymaga podejścia obiektowego do
    >> programowania. Najprościej:
    >>
    >> struct CriticalSection {
    >> CriticalSection{ cli(); }
    >> ~CriticalSection{ sei(); }
    >> };
    >
    > Sprytne i fajnie pokazuje, jak działa destruktor. Ale ja bym po prostu
    > napisał:
    >
    > cli();
    > .... kod krytyczny
    > sei();
    >
    > Lepiej widać w jednym miejscu co się dzieje, bez szukania definicji
    > klasy CriticalSection,

    Tak argumentując to można powiedzieć, że bez szukania definicji cli i
    sei też słabo widać co się dzieje (w szczególności: nie widać tu czy
    jest jakiś związek między funkcjami cli i sei).

    > bez zastanawiania się gdzie jej obiekt wychodzi z
    > zasięgu, no i bez ryzyka, że osoba, która nie jest autorem kodu nie
    > zauważy, że wsród paru zmiennych lokalnych jest jakiś dziwny pozornie
    > nieużywany obiekt.

    Jeśli użytkownik (programista) tak stwierdzi, to jest to wynik braku
    znajomości języka czy braku znajomości projektu w którym przyszło mu
    pracować.
    Opisany mechanizm jest jasny i prosty -- nie przekonuje mnie tutaj
    argumentacja, że mamy do czynienia z jakąś ezoteryką (włączając w to
    debugowanie). Ostatecznie można opatrzyć kod odpowiednimi komentarzami.

    >> Odwrotnie: dzieki swojemu samoczynnemu dzialaniu *ochraniają* przed
    >> wieloma subtelnymi bugami w stylu "a mi się tu zapomniało zdjąć flagę
    >> przerwania".
    >
    > Ja tam wolę widzieć przebieg programu, a nie musieć ciągle pamiętać, że
    > między ostatnią instrukcją funkcji, a '}' uruchomi się jeszcze seria
    > niewidzialnych funkcji.

    W C lub w programowaniu C podobnym: IMO jeden diabeł.
    Natomiast jeśli program jest w C++, to dochodzą wyjątki... wtedy dopiero
    jest problem, gdy właśnie trzeba pamiętać, gdzie tu jeszcze wyjątek może
    polecieć i ręcznie wywoływać odpowiednie finalizacje (pamiętając o
    odpowiedniej kolejności i czy daną akcję sprzątania rzeczywiście należy
    przeprowadzić).

    Pisząc w C, czyli nie mając do dyspozycji mechanizmu wyjątków i
    automagicznego wołania destruktorów, obsługa sytuacji nietypowych
    (różnych błędów itp.) jest czasami naprawdę upierdliwa. Wyjątki w C++ to
    IMO jedna z ważniejszych i bardziej użytecznych cech różniących ten
    język od C (tak, ma to swoją cenę).

    pzdr
    mk

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: