-
Data: 2012-05-09 17:30:48
Temat: Re: 'abstrakcje' a zwartosc
Od: zażółcony <r...@c...pl> szukaj wiadomości tego autora
[ pokaż wszystkie nagłówki ]W dniu 2012-05-09 16:10, f...@g...pl pisze:
> zażółcony<r...@c...pl> napisał(a):
>
>> W dniu 2012-05-09 12:49, f...@g...pl pisze:
>>> zażółcony<r...@c...pl> napisał(a):
>>>
>>>> W dniu 2012-05-09 08:33, prof fir pisze:
>>>>> czy ktos moze podac jakies przyklady abstrakcji ktore
>>>>> poprawiają zwiezlosc kodu w ten sposob ze przy uzyciu
>>>>> tych abstrakcji kod bylby znacznie mniejszy i czytelniejszy
>>>>> niz normalny (przyzwoity, ale bez tych wypracowanych abstrakcji)?
>>>>
>>>> Przykąłd masz w innym watku: "what up, programowanie aspektowe"
>>>>
>>> tam jest przyklad na podzial kodu (istotnie dosyc ciekawy,
>>> np na pion glowny i pion do logow plus pion do jeszcze czegostam)
>>> nie na osiaganie zwartosci przez jakies wysokopoziomowe techniki
>>>
>>> pewna techniką mogloby byc zwykle definiowanie operatorow np
>>> dla mnozen na wektorach i macierzach - ale to zastosowanie
>>> jest ograniczone, bo w praktyce nie ma tego duzo
>>>
>>> powinny byc byc moze jakies inne techniki nadawania kodu
>>> zwiezlosci przy pomocy abstrakcji ale nic mi jakos nie
>>> przychodzi do glowy
>>
>> Ale tworzenie abstrakcji wiąże się z podziałem/refactoringiem
>> kodu, tu nie ma sprzeczności.
>>
>> Tworzenie abstrakcji to identyfikacja jakiegoś powtarzalnego
>> zjawiska/konstrukcji/rozwiązania, jego nazwanie
>> i 'wyabstrahowanie' do takiej postaci, by np. jeden problem
>> rozwiązywać w jednym miejscu, a nie w tysiącu
>> (na zasadzie copy-paste lub ...). Albo by np. jedno wymaganie
>> użytkownika implementować w jednym miejscu (żeby przeciwdziałać
>> zjawisku rozpraszania implementacji wymagań, bo potem jest kłopot, kiedy
>> wymaganie się zmienia i trzeba poprawiać w wielu miejscach
>> kodu).
>>
>
> no tak z tym ze 'wydzielenie czegos do jednej funkcji i nie
> powtarzanie tego copy'n'pastem tylko wywolywanie ' vel
> 'wydzielenie czegos do jednej funkcji i zapodanie tego
> drugiej przez wskaznik' to są normalne raczej niskopoziomowe
> techniki - mi chodzi o jakies inne, wyzejpoziomowe ktore
> nie wystepuja przynajmniej w jakiejs w miare ladnej postaci
> w nizejpoziomowej wersji - slowem chodzi mi o techniki
> wysokopoziomowe (hll) ktore owocuja znacznie krotszymi kodami
> i najlepiej czytelniejszymi kodami (w hll w stosunku do c)
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 ...
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ć.
Tworzenie abstrakcji to zwykłe, programistyczno-projektowe
rzemiosło. Ja sie do C nie odnoszę, bo ostatnio programowałem
w c na poważnie jakieś 11 lat temu. Ale w Javie to masz to co
podałem. Dodatkowo można dodać tyle, że np. dzięki narzędziom takim
jak Spring + całe zestawy bibliotek współpracujących
wiele spraw sprowadza się do odpowiedniego pozapinania aspektów
technicznych 'na górze', ale nic nie zwalnia z tego, że
musisz usiąść i trzaskać te metody w klasach, które robią
biznes. Możesz liczyć na "coś więcej", jak wchodzisz w jakiś
wyspecjalizowany obszar, np. jak wchodzisz w temat integracji
systemów informatycznych (budowa interfejsów międzysystemowych)
to dostajesz w ręce oparty na Javie server Mule, tzw.
szynę danych, która dostarcza od razu abstrakcje ułatwiajace
implementację typowych w takich zadaniach wzorców projektowych
- i jak wiesz o co biega, to wiele ze spraw, zamiast projektować -
możesz sobie wyklikać na diagramach. Jak jesteś bardziej
po stronie implementacji wymagań biznesowych, to być może BPEL
jest tym, o co pytasz, może drools. Pod spodem jednak
zawsze siedzi ta Java (ew. .NET). Wykorzystanie abstrakcji
polega tu na ty, że ktoś zaplanował za Ciebie szablon, w którym
z góry określił, gdzie się zaczynają i kończą transakcje biznesowe i/lub
dostarczył plik konfiguracyjny, w którym np. wymieniasz nazwy
klas/funkcji/interfejsów, które maję się odpalać transakcyjnie.
Ale ideowo jest to dokładnie to samo, co Ci pokazałem.
Musisz sam zbudować funkcje/obiekty i je powiązać zależnościami :)
Np. zależnością: "jedna wywołuje drugą".
Inaczej się nie da :)
Następne wpisy z tego wątku
- 09.05.12 19:03
- 09.05.12 19:25 Piotr Chamera
- 09.05.12 19:47
- 09.05.12 21:07 R.e.m.e.K
- 09.05.12 21:30
- 09.05.12 22:21 M.M.
- 09.05.12 22:26 t.o.
- 10.05.12 00:38 R.e.m.e.K
- 10.05.12 02:13 Andrzej Jarzabek
- 10.05.12 07:40
- 10.05.12 07:51 M.M.
- 10.05.12 10:56 zażółcony
- 10.05.12 14:57 zażółcony
- 10.05.12 15:53 AK
- 10.05.12 16:04 AK
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-03-03 Pruszków => Specjalista ds. public relations <=
- 2025-03-03 Białystok => System Architect (Java background) <=
- 2025-03-03 Białystok => System Architect (background deweloperski w Java) <=
- 2025-03-03 China-Kraków => Senior PHP Symfony Developer <=
- 2025-03-03 China-Kraków => Senior PHP Symfony Developer <=
- 2025-03-03 Warszawa => Data Engineer (Tech Lead) <=
- 2025-03-03 Gliwice => Ekspert IT (obszar systemów sieciowych) <=
- 2025-03-03 Gliwice => IT Expert (Network Systems area) <=
- 2025-03-03 Mińsk Mazowiecki => Area Sales Manager OZE <=
- 2025-03-03 Warszawa => Spedytor Międzynarodowy <=
- 2025-03-03 Katowice => Regionalny Kierownik Sprzedaży (OZE) <=
- 2025-03-03 Katowice => Key Account Manager (ERP) <=
- 2025-03-02 Tusk idzie na rekord deportacji po 1989 [Będzie popyt na prawników]
- 2025-03-01 Obywatel telefonuje 112 lub 986
- 2025-03-01 detektyw (?) Rutkowski działał jako prasa