-
Data: 2012-05-10 10:56:05
Temat: Re: 'abstrakcje' a zwartosc
Od: zażółcony <r...@c...pl> szukaj wiadomości tego autora
[ pokaż wszystkie nagłówki ]W dniu 2012-05-10 02:13, Andrzej Jarzabek pisze:
> On 09/05/2012 16:30, zażółcony wrote:
>>
>> Imo to nie tak ...
>> Tworzenie abstrakcji to nie żadne czary-mary, które sprawiają,
>> że w jednej linijce kodu implementujesz wiele wymagań użytkownika.
>> Jest wiele wymagań - będzie dużo kodu. Chyba że ...
>
> Akurat języki się potrafić dość znacznie tym, jak zwięzły kod można w
> nich pisać, tylko że nie ma to wiele wspólnego ani z wysokopoziomowością
> języka, ani z abstrakcją w kodzie.
>
> Java na przykład jest językiem wysokopoziomowym, a jest mocno rozwlekła.
>
>> Chyba że są to wymagania 'powszechne' a nie specyficzne, zwiazane
>> n. z modą na to, by okienka wyglądały tak samo. Wtedy ktoś Ci
>> to zrobi i powie, jak masz to użyć.
>
> Ale też chyba nie jest takie rzadkie, żeby abstrakcja redukowała ilośc
> kodu przez unikanie zduplikowania. Tyle że z drugiej strony ta sama
> abstrakcja potrafi też zwiększyć ogólną ilość kodu, i według mnie
> średnio raczej zwiększa, niż zmniejsza.
Jest różnie, raz w tę, raz we wtę.
Imo autor wątku zawęził znaczenie/celów stawianych tworzeniu abstrakcji,
zafiksował się na jednym, czyli "zwięzłość kodu". A tych celów/zadań
jest znacznie więcej, wymienię tu dwa, które mi przychodzą do głowy:
1. Podział odpowiedzialności
2. Ochrona kodu przed 'czeskimi' błędami - tak by np. jak najwięcej
błędów było wychwytywanych na etapie kompilacji, a nie w runtimie.
Ad 1.
Podział odpowiedzialności pomiędzy komponenty systemu jest kluczowy
w produkcji złożonego oprogramowania, nad którym np. pracuje wiele
osób. Podział odpowiedzialności/rozdział implementowanych wymagań
pomiędzy komponenty umożliwia z kolei:
- sprawną identyfikację miejsc w kodzie, minimalizację zmian
implementacyjnych, szacowanie ryzyka, ograniczanie ryzyka - kiedy
wymagania się zmieniają (zarządzanie zmianą)
- budowę, zarządzanie, uruchamianie testów jednostkowych
- podział odpowiedzialności wśród ludzi i kontrolę - np. w wydzielonych
podsystemach technicznych maja prawo grzebać tylko niektórzy, jest to
związane z dużym ryzykiem itp itd. Reszta 'klepie' szablonowe procedury
biznesowe
- z tym ostatnim wprost powiązane jest np. zmniejszenie kosztów szkoleń
nowych pracowników, bo nie muszą wiedzieć wszystkiego
- także jest z tym związana łatwiejsza komunikacja programistów z
analitykami/użytkownikami
Ad 2.
Bardzo typowe, czeskie błędy powstają na styku różnych języków
programowania, 'oczywisty' i powszechny przykład: literówki w
zapytaniach SQL schowanych w stringach w językach wyższego poziomu.
Kompilator Javy, choćby się skichał - nie wykryje literówki
w słowie kluczowym "SELECVT". Problem ten rozwiązuje się
na wiele sposobów, np. O/R mapping (cała technologia różnych
abstrakcji), które eliminują konieczność pisania wielu prostych
zapytań i/lub techniki zapisu zapytań SQL za pomocą języka wysokiego
poziomu - patrz np. takie pomysły, jak "Jacle"
http://code.google.com/p/jacle/
Warto zauważyć, że w tym ostatnim przypadku kod wcale nie staje się
zwięźlejszy, a wrecz odwrotnie (BTW. SQL należy do czołówki pod względem
zwięzłości zapisu wymagań.
Następne wpisy z tego wątku
- 10.05.12 14:57 zażółcony
- 10.05.12 15:53 AK
- 10.05.12 16:04 AK
- 10.05.12 16:40 zażółcony
- 10.05.12 20:03 ( prof fir )
Najnowsze wątki z tej grupy
- Rosjanie chwalą się prototypem komputera kwantowego. "Najważniejszy projekt naukowy Rosji"
- A Szwajcarzy kombinują tak: FinalSpark grows human neurons from stem cells and connects them to electrode arrays
- Re: Najgorszy język programowania
- NOWY: 2025-09-29 Alg., Strukt. Danych i Tech. Prog. - komentarz.pdf
- Na grupie comp.os.linux.advocacy CrudeSausage twierdzi, że Micro$lop używa SI do szyfrowania formatu dok. XML
- Błąd w Sofcie Powodem Wymiany 3 Duńskich Fregat Typu Iver Huitfeldt
- Grok zaczął nadużywać wulgaryzmów i wprost obrażać niektóre znane osoby
- Can you activate BMW 48V 10Ah Li-Ion battery, connecting to CAN-USB laptop interface ?
- We Wrocławiu ruszyła Odra 5, pierwszy w Polsce komputer kwantowy z nadprzewodzącymi kubitami
- Ada-Europe - AEiC 2025 early registration deadline imminent
- John Carmack twierdzi, że gdyby gry były optymalizowane, to wystarczyły by stare kompy
- Ada-Europe Int.Conf. Reliable Software Technologies, AEiC 2025
- Linuks od wer. 6.15 przestanie wspierać procesory 486 i będzie wymagać min. Pentium
- ,,Polski przemysł jest w stanie agonalnym" - podkreślił dobitnie, wskazując na brak zamówień.
- Rewolucja w debugowaniu!!! SI analizuje zrzuty pamięci systemu M$ Windows!!!
Najnowsze wątki
- 2026-01-02 Szalejąca dyskryminacja obywateli USA w Maili i Burkina Faso. Czy to legalne?
- 2026-01-02 Miało być zniesienie abonamentu RTV, a jest podwyżka!!!
- 2026-01-02 Miało być zniesienie abonamentu RTV, a jest podwyżka!!!
- 2026-01-02 Kogo KE opierdoli za nieskuteczną cenzurę? [Rząd tuski doniósł]
- 2026-01-02 Gdańsk => Konsultant Microsoft Dynamics AX/365 SCM Consultant - Servi
- 2026-01-02 Gdańsk => Solution Architect (Workday) - Legal Systems <=
- 2026-01-02 Gdańsk => Microsoft Dynamics 365 Finance Consultant <=
- 2026-01-02 Microsoft, C/C++ na Rust - news
- 2026-01-01 szyby macie całe?
- 2026-01-01 Najbogatsi ludzie na świecie są jeszcze bogatsi. Bezprecedensowa skala zysków
- 2026-01-01 Najbogatsi ludzie na świecie są jeszcze bogatsi. Bezprecedensowa skala zysków
- 2026-01-01 Wszystkiego najlepszego
- 2025-12-31 Czy potrafisz wskazać różnice? [TVN v. RMF]
- 2025-12-31 I kolejny jebnięty
- 2025-12-31 Myślenice => Specjalista ds. kontrolingu <=




5 Najlepszych Programów do Księgowości w Chmurze - Ranking i Porównanie [2025]