eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.comp.programmingzmienne globalneRe: zmienne globalne
  • Path: news-archive.icm.edu.pl!news.gazeta.pl!not-for-mail
    From: porneL <n...@p...net>
    Newsgroups: pl.comp.programming
    Subject: Re: zmienne globalne
    Date: Sat, 28 Aug 2010 15:57:26 +0100
    Organization: "Portal Gazeta.pl -> http://www.gazeta.pl"
    Lines: 57
    Message-ID: <o...@a...local>
    References: <6...@n...onet.pl>
    NNTP-Posting-Host: 96.95.187.81.in-addr.arpa
    Mime-Version: 1.0
    Content-Type: text/plain; charset=utf-8; format=flowed; delsp=yes
    Content-Transfer-Encoding: 8bit
    X-Trace: inews.gazeta.pl 1283007448 28978 81.187.95.96 (28 Aug 2010 14:57:28 GMT)
    X-Complaints-To: u...@a...pl
    NNTP-Posting-Date: Sat, 28 Aug 2010 14:57:28 +0000 (UTC)
    X-User: pornelspam
    User-Agent: Opera Mail/10.70 (MacIntel)
    Xref: news-archive.icm.edu.pl pl.comp.programming:186734
    [ ukryj nagłówki ]

    On Sat, 28 Aug 2010 15:26:33 +0100, <j...@p...onet.pl>
    wrote:

    > Nie jestem zbyt doświadczonym programistą. Mam pytanie: czy dobrą zasadą
    > w
    > programowaniu jest żeby używać zmiennych globalnych tylko w
    > ostateczności? Np.
    > zamiast:
    >
    > global error_code;
    > function something() {
    > error_code = 0;
    > ...
    > if (!success) {
    > error_code = 27;
    > }
    > return value;
    > }
    >
    > czy lepiej jest napisać:
    >
    > function something() {
    > ...
    > if (!success) {
    > return -27;
    > }
    > return value;
    > }

    Zmienne globalne to zło. Efekty uboczne to też zło. Pierwsza wersja nie
    nadaje się do wielowątkowych programów i może być upierdliwa nawet w
    jednowątkowych (musisz sprawdzić zmienną od razu zanim coś ją nadpisze).

    Druga wersja jest OK, ale wymaga od użytkownika funkcji pamiętania o
    sprawdzeniu magicznej wartości.


    Jeżeli możesz, użyj wyjątków:

    function something() {
    if (!success) throw new Exception27();
    return value;
    }

    wtedy przy użyciu funkcji nie trzeba pamiętać o sprawdzeniu magicznych
    zmiennych/wartości.

    W językach bez [nadających się do użytku] wyjątków możesz zwrócić parę
    wartości (to jest wersja preferowana w GoogleGo):

    function something() {
    return (success, value);
    }

    --
    http://pornel.net
    this.author = new Geek("porneL");

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: