-
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
- 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!!!
- Brednie w wiki - hasło Dehomag
- Perfidne ataki krakerów z KRLD na skrypciarzy JS i Pajton
- Instytut IDEAS może zacząć działać: "Ma to być unikalny w europejskiej skali ośrodek badań nad sztuczną inteligencją."
- Instytut IDEAS może zacząć działać: "Ma to być unikalny w europejskiej skali ośrodek badań nad sztuczną inteligencją."
- Instytut IDEAS może zacząć działać: "Ma to być unikalny w europejskiej skali ośrodek badań nad sztuczną inteligencją."
- U nas propagują modę na SI, a w Chinach naukowcy SI po kolei umierają w wieku 40-50lat
Najnowsze wątki
- 2025-07-23 Gdańsk => Programista Delphi <=
- 2025-07-23 Gdańsk => Programista Mainframe (z/OS, Assembler) <=
- 2025-07-23 Warszawa => Starszy inżynier DevOps (AWS) <=
- 2025-07-23 Gdańsk => Mainframe (z/OS, Assembler) Developer <=
- 2025-07-23 Kraków => Senior Fullstack Engineer (Low-Code Platform) <=
- 2025-07-23 Wrocław => Senior Key Account Manager IT <=
- 2025-07-23 Trójmiasto => Head of Social Media <=
- 2025-07-23 Rzeszów => Spedytor Międzynarodowy <=
- 2025-07-23 Lublin => ERP Implementation Consultant (AP Module) <=
- 2025-07-23 Środa Wielkopolska => SAP FI/CO Internal Consultant <=
- 2025-07-23 Warszawa => Inżynier oprogramowania .Net <=
- 2025-07-23 Kraków => Kotlin Developer <=
- 2025-07-23 Żerniki => Dyspozytor Międzynarodowy <=
- 2025-07-23 Warszawa => Java Developer <=
- 2025-07-23 Wrocław => Konsultant wdrożeniowy (systemy controlingowe) <=