-
X-Received: by 2002:a0c:cd87:: with SMTP id v7mr145753qvm.6.1542532220918; Sun, 18
Nov 2018 01:10:20 -0800 (PST)
X-Received: by 2002:a0c:cd87:: with SMTP id v7mr145753qvm.6.1542532220918; Sun, 18
Nov 2018 01:10:20 -0800 (PST)
Path: news-archive.icm.edu.pl!news.icm.edu.pl!news.nask.pl!news.nask.org.pl!news.unit
0.net!weretis.net!feeder6.news.weretis.net!feeder.usenetexpress.com!feeder-in1.
iad1.usenetexpress.com!border1.nntp.dca1.giganews.com!nntp.giganews.com!g188-v6
no2272191itg.0!news-out.google.com!t123-v6ni1625itb.0!nntp.google.com!g188-v6no
2272184itg.0!postnews.google.com!glegroupsg2000goo.googlegroups.com!not-for-mai
l
Newsgroups: pl.comp.programming
Date: Sun, 18 Nov 2018 01:10:20 -0800 (PST)
In-Reply-To: <e...@g...com>
Complaints-To: g...@g...com
Injection-Info: glegroupsg2000goo.googlegroups.com; posting-host=5.172.255.109;
posting-account=Sb6m8goAAABbWsBL7gouk3bfLsuxwMgN
NNTP-Posting-Host: 5.172.255.109
References: <8...@g...com>
<e...@g...com>
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <1...@g...com>
Subject: Re: Niezmienniki pętli
From: fir <p...@g...com>
Injection-Date: Sun, 18 Nov 2018 09:10:21 +0000
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
Lines: 71
Xref: news-archive.icm.edu.pl pl.comp.programming:212923
[ ukryj nagłówki ]W dniu piątek, 16 listopada 2018 16:48:18 UTC+1 użytkownik s...@g...com napisał:
> > Czy w związku z tym zagadnienie niezmienników jest niepotrzebne? A może nadal
jest potrzebne i coś innego je zastępuje?
>
> 1. Wiedziałem co to jest.
>
> 2. Stosuję
>
> 3. Sam też stosujesz
>
> Najprostrze zastosowanie:
> QList<int> lList = {0, 1, 2, 3, 4, 5};
> for(int i(0); i < lList.size(); ++i)
> // tu robisz coś z lList
> W tej pętli niezmiennikiem sprawdzanym przed wejściem w pętlę i po kazdej iteracji
jest:
> i < lList.size()
>
> Nieco bardziej ogólne jest:
> QList<int> lList = {0, 1, 2, 3, 4, 5};
> for(int& lItem : lList)
> // tu robisz coś z lItem
> W tym przypadku niezmiennikiem (ukrytym) jest fakt iteracji po wszystkich
elementach listy.
>
> 4. Zazwyczaj dalszych niezmienników w pętli nie sprawdzam. Głównie ze względu na 2
wady:
> 4.1. Puchnięcie i zaciemnianie kodu.
> 4.2. Spowolnienie programu.
>
> 5. Bardzo często sprawdzam parametry wejściowe funkcji (wierzę i stosuję coś w
rodzaju programowania kontraktowego).
> 5.1. Wierzę w try, throw, catch (wyjątki obowiązkowo dziedziczone po std::exception
z opisem i kodem błędu).
> 5.2. Nie wierzę w i nie cierpię Assert (to tak jak by bez ostrzeżenia uderzyć kogoś
w twarz bez dalszego komentarza).
> 5.3. Toleruję wartości zwracane (jako informacje o błędach) i brak standaryzacji w
dostępie do opisów błędów w Qt.
ostatnio odkrylem dosyc odkrywczy sposob
dilowania (tj forme kodowanie obslugi bledow) z bledami w jezykach podobnych
do c
wymaga on pewnej poprawki do jezyka,
(i jest opisany na clc, troche nie che mi sie tu opisywac bo nie lubie sie powtarzac)
jest on ogolnie ciekawy bo mz pokazuje co to jest normalne dilowanie z bledami i na
czym to normalne dilowanie z bledami normalnie polega (ma polegac)
nawiasem mowiac w swietle tego asercje
albo bledy przypadkowe (jak np zmienienie sie jakiejs komorki w rami i wyjatek typu
nielegalna instrukcja) nie sa normalnymi sposobami dilowania z bledami tylko pewnymi
case'ami nadspecjalnymi
NORMALNY i najbardziej typowy sposob z
handlowaniem z bledami w programie to zwykle zwrocenie informacji o bledzie do
funkcji w tyl - tylko ze nie powinno to byc mieszane ze zwracaniem poprawnej wartosci
w tym kanale w ktorym zwraca sie wartosci w sytuacjach niebledowych..
dzis jesli ktos zwraca blad w tyl (jak rozne api robia) to ogolnie robi dobrze,
tylko ze jesli wtyka kody bledow w wartosci zwracane to zarazem robi zle ;c
https://groups.google.com/forum/#!topic/comp.lang.c/
p1CcmgZKkV4
Następne wpisy z tego wątku
- 18.11.18 10:28 fir
- 18.11.18 17:35 Sebastian Biały
- 19.11.18 08:14 Maciej Sobczak
- 19.11.18 09:22 Roman Tyczka
- 19.11.18 10:37 Queequeg
- 19.11.18 10:45 Queequeg
- 19.11.18 17:15 g...@g...com
- 19.11.18 19:45 g...@g...com
- 19.11.18 19:49 g...@g...com
- 19.11.18 21:18 s...@g...com
- 19.11.18 21:44 Queequeg
- 19.11.18 22:10 fir
- 19.11.18 22:16 fir
- 19.11.18 23:12 g...@g...com
- 20.11.18 00:00 AK
Najnowsze wątki z tej grupy
- Bibl. Qt jest sztucznie ograniczona - jest nieprzydatna do celów komercyjnych
- Co sciaga kretynow
- AEiC 2024 - Ada-Europe conference - Deadlines Approaching
- Jakie są dobre zasady programowania programów opartych na wtyczkach?
- sprawdzanie słów kluczowych dot. zła
- Re: W czym sie teraz pisze programy??
- Re: (PDF) Surgical Pathology of Non-neoplastic Gastrointestinal Diseases by Lizhi Zhang
- CfC 28th Ada-Europe Int. Conf. Reliable Software Technologies
- Młodzi programiści i tajna policja
- Ada 2022 Language Reference Manual to be Published by Springer
- Press Release - AEiC 2023, Ada-Europe Reliable Softw. Technol.
- Ada-Europe - AEiC 2023 early registration deadline approaching
- Ada-Europe Int.Conf. Reliable Software Technologies, AEiC 2023
- Ile cykli zajmuje mnożenie liczb 64-bitowych?
- Ideologia Polskiego Programisty wer.3
Najnowsze wątki
- 2024-05-06 Fotowoltaika do c.w.u.
- 2024-05-06 Warszawa => Senior IT Recruiter <=
- 2024-05-06 Kraków => Lider Serwisu/Programista PLC z językiem niemieckim <=
- 2024-05-06 Berlin => Solution Architect (secure communication and IoT solutions)
- 2024-05-06 Czy szpital przekazuje dokumentację medyczną do Starosty powiatu?
- 2024-05-06 naprawa zamka
- 2024-05-06 Kraków => Mid/Senior QA Engineer <=
- 2024-05-06 Warszawa => Java Developer <=
- 2024-05-06 Re: Prawo móżdżek...
- 2024-05-06 Toruń => UX/UI Designer <=
- 2024-05-06 Wrocław => UX/UI Designer <=
- 2024-05-06 Warszawa => Senior PHP Developer (Symfony) <=
- 2024-05-06 Białystok => Senior Software Engineer PHP (BillPro) Kontraktor <=
- 2024-05-06 Warszawa => AI Specialist <=
- 2024-05-05 Taki dinks do drzwi