-
Data: 2012-05-09 19:03:36
Temat: Re: 'abstrakcje' a zwartosc
Od: " " <f...@g...pl> szukaj wiadomości tego autora
[ pokaż wszystkie nagłówki ]zażółcony <r...@c...pl> napisał(a):
> 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 :)
wydaje mi sie ze panuje pewne przekonanie (cos w rodzaju
mitu, trudno mi okreslic na ile prawdziwego) ze programy
jakims w jezyku wysokopoziomowym moga byc krotsze niz
w jezyku niskopoziomowym jak c, cos w stylu wyobrazenia
ze jak w c chcesz narysowac okrag to musisz to rysowac
per pixel a w jezyko wysokopoziomowym wywolujesz po
prostu costam - z tym ze mozna wlasnie zauwazyc ze to
akurat nie jest zwiazane z wysokopoziomowoscia jezyka
tylko z setem bibliotek,
refleksja na te tematy wiaze sie z moim spojrzeniem na jakis
wyjatkowo nieladny kod w pythonie ktory sie skladal z
wielkiej ilosci selfow kropek try catchow i nie byl na oko
bardziej wyrazalny i zwiezly niz c a wrecz przeciwnie
z drugiej strony moga byc pewne elemanty wysokopoziomowe
ktore uczynily by kody bardziej zwiezlymi i automatycznymi
tylko ze na razie nie wiem co to takiego
--
Wysłano z serwisu Usenet w portalu Gazeta.pl -> http://www.gazeta.pl/usenet/
Następne wpisy z tego wątku
- 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
- 10.05.12 16:40 zażółcony
Najnowsze wątki z tej grupy
- 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??
- 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
Najnowsze wątki
- 2024-12-18 Poseł oszukany "na policjanta"
- 2024-12-18 znów chory psychicznie
- 2024-12-18 Katowice => Architekt rozwiązań (doświadczenie w obszarze Java, AWS
- 2024-12-18 Poznań => Dyspozytor Międzynarodowy <=
- 2024-12-18 Katowice => System Architect (background deweloperski w Java) <=
- 2024-12-18 Gdańsk => System Architect (Java background) <=
- 2024-12-18 Warszawa => Helpdesk Specialist <=
- 2024-12-18 Katowice => Kierownik Działu Zarządzania Platformą Wirtualizacji i
- 2024-12-18 Bieruń => Regionalny Kierownik Sprzedaży (OZE) <=
- 2024-12-18 Żerniki => Employer Branding Specialist <=
- 2024-12-18 Gliwice => Specjalista ds. public relations <=
- 2024-12-18 Kablówka z modułem CAM
- 2024-12-18 Warszawa => Spedytor międzynarodowy <=
- 2024-12-18 Wróblewo => Analityk finansowy <=
- 2024-12-18 Gdańsk => Specjalista ds. Sprzedaży <=