-
Data: 2018-11-18 09:58:56
Temat: Re: Niezmienniki pętli
Od: AK <n...@n...net> szukaj wiadomości tego autora
[ pokaż wszystkie nagłówki ]On 2018-11-18 00:10, Maciej Sobczak wrote:
>> 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ę.
Np. w Pythonie do takich rzeczy (DBC) dobrze nadają sie dekoratory
funkcji/metod/klas (ich dzialanie jes o wiele szersze/bardziej
dynamiczne niz dekoratory/annotacje z innych jezykow programowania
np.Javy).
>> 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.
>
> Nie zawsze sama koncepcja programistyczna musi ją przekreślać.
> Tzn. to nie musi być wina DbC, że kod jest nieczytelny.
Racja.
> 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.
..czasem wystarczy w danym jezyku dobrze to zaiplementowac.
Np. w Pythonie "od lat" stosuję zope.interface i bardzo sobie chwalę
https://pypi.org/project/zope.interface/
https://zopeinterface.readthedocs.io/en/latest/
np.
https://zopeinterface.readthedocs.io/en/latest/READM
E.html#invariants
AK
Następne wpisy z tego wątku
- 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
- 19.11.18 22:16 fir
- 19.11.18 23:12 g...@g...com
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-29 Warszawa => Staż w dziale Sprzedaży B2B (2 miejsca) <=
- 2024-04-29 Gdańsk => Kierownik Działu Spedycji Międzynarodowej <=
- 2024-04-29 Ulm => IT Network Engineer <=
- 2024-04-29 Gdańsk => UX/UI Designer <=
- 2024-04-29 Gdańsk => AI Specialist <=
- 2024-04-29 frankowicze odcinek NNN
- 2024-04-29 Warszawa => Specjalista ds. Cyberbezpieczeństwa <=
- 2024-04-29 Kraków => MS Dynamics 365BC/NAV Developer <=
- 2024-04-29 Zielona Góra => Inżynier R&D Energoelektronik <=
- 2024-04-29 Warszawa => Google Ads Freelancer <=
- 2024-04-28 wymiana przewodu od licznika do mieszkania
- 2024-04-28 Lustra w maszynie ASML
- 2024-04-28 Elektryk przytarł podłogę
- 2024-04-27 Nowy, "szybki "komputer AsRock nie posiada modułu TPM
- 2024-04-27 Nowy, "szybki "komputer AsRock nie posiada modułu TPM