-
X-Received: by 2002:a37:6357:: with SMTP id x84mr116045qkb.4.1542496213935; Sat, 17
Nov 2018 15:10:13 -0800 (PST)
X-Received: by 2002:a37:6357:: with SMTP id x84mr116045qkb.4.1542496213935; Sat, 17
Nov 2018 15:10:13 -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!feeder4.news.weretis.net!proxad.net!feeder1-2.proxad.net!209.
85.166.215.MISMATCH!z5-v6no1914919ite.0!news-out.google.com!t123-v6ni1343itb.0!
nntp.google.com!g188-v6no1920642itg.0!postnews.google.com!glegroupsg2000goo.goo
glegroups.com!not-for-mail
Newsgroups: pl.comp.programming
Date: Sat, 17 Nov 2018 15:10:13 -0800 (PST)
In-Reply-To: <psp6q7$97o$1@node2.news.atman.pl>
Complaints-To: g...@g...com
Injection-Info: glegroupsg2000goo.googlegroups.com; posting-host=213.108.152.51;
posting-account=bMuEOQoAAACUUr_ghL3RBIi5neBZ5w_S
NNTP-Posting-Host: 213.108.152.51
References: <8...@g...com>
<7...@g...com>
<d...@g...com>
<psp6q7$97o$1@node2.news.atman.pl>
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <6...@g...com>
Subject: Re: Niezmienniki pętli
From: Maciej Sobczak <s...@g...com>
Injection-Date: Sat, 17 Nov 2018 23:10:14 +0000
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
Xref: news-archive.icm.edu.pl pl.comp.programming:212920
[ ukryj nagłówki ]> Zasada jest taka że jeśli kod
> kontrolujący stan miałbym mieć więcej linijek niż goły algorytm to
> *zaciemnia* kod
Tak, to ważna obserwacja. Może da się te rzeczy rozdzielić? Tak jak rozdziela się
interfejs od implementacji? Zwłaszcza wtedy, gdy jakieś warunki faktycznie należą do
interfejsu? Akurat niezmienniki pętli należą do implementacji (i potrafią pięknie
zaciemnić kod), ale takie rzeczy jak "parametr powinien być między 0 a 20" albo
"wartość zwracana powinna być w zakresie indeksów tablicy" to intefejs. I może da się
to wtedy zapisać gdzieś w okolicy deklaracji tak, żeby użytkownik to widział (i mógł
się pod to sprawdzić)? Tak działa SPARK i przyznam, że podoba mi się.
> Po jakiś 20 latach stukania w klawisze
> widziałem kod opakowany DbC po brzegi i wymagał on niesłychanie dużo
> czasu aby zorientować się gdzie jest algorytm a gdzie checkery.
Czy czytelność kodu nie jest też kwestią umiejętności piszącego? Nie zawsze sama
koncepcja programistyczna musi ją przekreślać. Tzn. to nie musi być wina DbC, że kod
jest nieczytelny.
> Znacznie
> bardziej ufam unit testom i coverage niż ręcznie pisanym DbC.
W porządku. Testy też są potrzebne. A co jeśli część DbC można sprawdzić statycznie?
Wtedy ich wartość jest inna, niż testów. A co jeśli wtedy można by niektórych testów
w ogóle nie mieć? Unit testy to też koszt. Jeśli można tego kosztu nie mieć, to jest
to wartość dodana.
> Być może
> to jednak efekt języka, czyi w moim przypadku C++, nie wykluczam że
> można to czytelniej zapisać gdzie indziej.
A może wtedy należy odwrócić kolejność i zamiast szukać języka, gdzie to jest
czytelne (albo zamiast doklejać DbC do używanego języka), można taki język zrobić? W
sensie - zamiast rezygnować z DbC, bo jest nieczytelny, zróbmy język tak, żeby to
było czytelne.
To nie są zupełnie teoretyczne pytania.
--
Maciej Sobczak * http://www.inspirel.com
Następne wpisy z tego wątku
- 18.11.18 01:02 Queequeg
- 18.11.18 09:58 AK
- 18.11.18 10:10 fir
- 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
Najnowsze wątki z tej grupy
- Alg. kompresji LZW
- Popr. 14. Nauka i Praca Programisty C++ w III Rzeczy (pospolitej)
- Arch. Prog. Nieuprzywilejowanych w pełnej wer. na nowej s. WWW energokod.pl
- 7. Raport Totaliztyczny: Sprawa Qt Group wer. 424
- TCL - problem z escape ostatniego \ w nawiasach {}
- Nauka i Praca Programisty C++ w III Rzeczy (pospolitej)
- testy-wyd-sort - Podsumowanie
- Tworzenie Programów Nieuprzywilejowanych Opartych Na Wtyczkach
- Do czego nadaje się QDockWidget z bibl. Qt?
- 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??
Najnowsze wątki
- 2025-02-19 Lista afer
- 2025-02-19 Lista afer
- 2025-02-19 Lista afer PIS
- 2025-02-19 Ogrodzenie dla krów szkockich "Highland"
- 2025-02-19 Gdańsk => System Architect (background deweloperski w Java) <=
- 2025-02-19 Gdańsk => Solution Architect (Java background) <=
- 2025-02-19 Białystok => Data Engineer (Tech Leader) <=
- 2025-02-19 Kraków => Ekspert IT (obszar systemów sieciowych) <=
- 2025-02-19 Warszawa => Architekt rozwiązań (doświadczenie w obszarze Java, AWS
- 2025-02-19 Rzeszów => International Freight Forwarder <=
- 2025-02-19 Poznań => Konsultant wdrożeniowy Comarch XL/Optima (Księgowość i
- 2025-02-19 Chrzanów => Spedytor Międzynarodowy (handel ładunkami/prowadzenie f
- 2025-02-19 Bieruń => Regionalny Kierownik Sprzedaży (OZE) <=
- 2025-02-19 Nigdy
- 2025-02-19 Katowice => Key Account Manager (ERP) <=