-
X-Received: by 2002:ac8:228f:: with SMTP id f15mr37104qta.4.1542356860784; Fri, 16
Nov 2018 00:27:40 -0800 (PST)
X-Received: by 2002:ac8:228f:: with SMTP id f15mr37104qta.4.1542356860784; Fri, 16
Nov 2018 00:27:40 -0800 (PST)
Path: news-archive.icm.edu.pl!news.icm.edu.pl!newsfeed2.atman.pl!newsfeed.atman.pl!go
blin1!goblin.stu.neva.ru!g188-v6no208345itg.0!news-out.google.com!y103-v6ni248i
ta.0!nntp.google.com!g188-v6no208339itg.0!postnews.google.com!glegroupsg2000goo
.googlegroups.com!not-for-mail
Newsgroups: pl.comp.programming
Date: Fri, 16 Nov 2018 00:27:40 -0800 (PST)
Complaints-To: g...@g...com
Injection-Info: glegroupsg2000goo.googlegroups.com; posting-host=165.225.84.75;
posting-account=bMuEOQoAAACUUr_ghL3RBIi5neBZ5w_S
NNTP-Posting-Host: 165.225.84.75
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <8...@g...com>
Subject: Niezmienniki pętli
From: Maciej Sobczak <s...@g...com>
Injection-Date: Fri, 16 Nov 2018 08:27:40 +0000
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
Xref: news-archive.icm.edu.pl pl.comp.programming:212902
[ ukryj nagłówki ]Zastanawiam się, czy to jest pojęcie wyłącznie akademickie.
W tzw. "normalnym" programowaniu, które praktykuje większość programistów, nigdy nie
widziałem odwołania się do takiej koncepcji w sensie wykorzystania niezmienników w
projektowaniu kodu.
Jak programista ma do napisania pętlę, to w praktyce:
- albo już pisał podobną i napisze jeszcze raz (to jest najczęstszy przypadek),
- albo nie pisał, ale rozumie i napisze posługując się głównie intuicją (wtedy mamy
frajdę, bo coś nowego),
- albo nie rozumie i nie napisze.
Niezmienniki pozwalają jednak pętlę zaprojektować albo przeanalizować i np. dojść do
wniosku, że jest poprawna.
Nie pytam o metody formalne, tylko o powiedzmy nieco bardziej świadomą praktykę
programistyczną. Nazwijmy to ładnie "attentive engineering". Albo "mindful
engineering".
Pytanie jest takie: czy ktoś z Was spotkał się z tym pojęciem (poza szkołą) a nawet z
niego skorzystał w praktyce? Czy to jest praktyka, do której staracie się sięgać w
tym trzecim przypadku? A może bardziej regularnie?
Czy może po prostu w ogóle temat jest oderwany od tzw. rzeczywistości?
Ciekawi mnie Wasze spojrzenie na tą sprawę również wtedy, gdy piszecie w językach
nie-imperatywnych, gdzie takich klasycznych pętli jest mniej albo w ogóle ich nie ma.
Czy w związku z tym zagadnienie niezmienników jest niepotrzebne? A może nadal jest
potrzebne i coś innego je zastępuje?
Wersja dla quizowiczów:
- wiem i używam albo pamiętam, że mogę,
- słyszałem i ignoruję,
- nie rozumiem pytania[*].
[*] https://en.wikipedia.org/wiki/Loop_invariant
--
Maciej Sobczak * http://www.inspirel.com
Następne wpisy z tego wątku
- 16.11.18 16:22 Queequeg
- 16.11.18 16:48 s...@g...com
- 16.11.18 16:50 s...@g...com
- 16.11.18 17:18 AK
- 16.11.18 20:14 Queequeg
- 16.11.18 20:40 s...@g...com
- 16.11.18 20:51 g...@g...com
- 16.11.18 21:05 Queequeg
- 16.11.18 23:51 Maciej Sobczak
- 16.11.18 23:55 Maciej Sobczak
- 17.11.18 14:58 Sebastian Biały
- 17.11.18 16:59 s...@g...com
- 18.11.18 00:10 Maciej Sobczak
- 18.11.18 01:02 Queequeg
- 18.11.18 09:58 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-04-26 steve balmer o iphonie w 2007
- 2024-04-25 Wrocław => Java Developer <=
- 2024-04-25 Kraków => AI Specialist <=
- 2024-04-25 Berlin => Solution Architect (secure communication and IoT solutions)
- 2024-04-25 Gdańsk => Specjalista ds. Sprzedaży <=
- 2024-04-25 Problemy TSMC cd
- 2024-04-25 Kraków => Senior PHP Developer (Symfony) <=
- 2024-04-25 Katowice => Service Leader/PLC Programmer with German <=
- 2024-04-25 Białystok => ERP Implementer <=
- 2024-04-25 O wisienkach
- 2024-04-25 Warszawa => Interactive/Experience Designer <=
- 2024-04-25 Białystok => Wdrożeniowiec ERP <=
- 2024-04-25 Wrocław => Head of Sales (IT services/products field) <=
- 2024-04-25 Berlin => IT Systems Administrator and Customer Support Engineer <=
- 2024-04-25 Warszawa => Technical Lead ( (Java Background)) <=