‘objekt-orienteeritud’ sildiga artiklid
Peter Paul Rubensile meeldisid lopsakad naised ja ta maalis neist ilusaid pilte. Kalduvus tüsedusele ei ole tervislik nii elus eneses kui ka objekt-orienteeritud programmeerimises, mistõttu on praegune mood alakaalulisusele. Tihti näeme liideseid, kus pole ühtegi meetodit ja neid võime nimetada tähisteks või alakaalulisteks.
Vastupidine lähenemine on problemaatiline, sest liiga suured meetodi kogumid peidavad endas mitmeid võimalusi muutumiseks, mis teeb ka väljalubatud liidese kergemini purunevaks. Hea näide on .NET raamistikus MembershipProvider, mis näeb välja selline:
Järgmine objekt-orienteeritud printsiip, mida arvestada võiks on
Open/Closed Prinsiple (OCP)
Avatud laiendustele, kinni muudatustele
Seda võiks kirjeldada nii, et enamasti tuleb kirjutada uut koodi, et rakenduse võimalusi laiendada, mitte muuta vana. Paljude disaini mustritega tuleb kaasa selle printsiibi võlud. Selle suur eelis on see, et olemasolevat koodi on veidi riskantsem muuta kui uut koodi juurde kirjutada. Loe edasi »
KATEGOORIAD » Analüüs/Arhitektuur,Arendus
SILDID » .NET, Analüüs/Arhitektuur, C#, ilus kood, objekt-orienteeritud, printsiibid
LOE EDASI »Nii mõnegi programmeerija jaoks lõppeb objekt-orienteeritud disain vastava keelekonstruktsioonide kasutamisega. Mõnede jaoks on isegi partial sõna .NET raamistikus väärtuslik disainivõte (genereeritud koodi jaoks küll, kuid mitte erinevate kihtide loomiseks). Siinkohal seletangi ühte lihtsat printsiipi lahti, mis lõpetab selliste ulakuste teostamise (kui seda ka jälgida).
Single Responsibility Principle
Objektil peaks olema ainult üks põhjus muutumiseks.
Tundub küllaltki lihtsa printsiibina, kuid tihtipeale rikutakse seda liiga palju.
Objekt-orienteeritud raamatutes võib näha märksõnu nagu low coupling (madal sidestus) ja high cohesion (kõrge sidusus, kohesioon, mu arvates võiks seda nimetada tiheduseks) ning viimast neist võib viia kokku selle printsiibiga. See tähendab, et printsiip suunab fookuse objekti konkreetsusele ja tihedus näitab kui palju objekti atribuutidest (meetoditest, väljadest jne) on omavahel põimunud. Loe edasi »
Kui anekdooti rääkida esimest korda, siis arvatavasti on see naljakas, teisel korral juba on pool võlu kadunud, kolmandat korda kuuldes ei pruugi isegi muie enam näole tulla. Samamoodi on ka tarkavara arenduses – kui kolmandat korda ühte ja sama koodilõiku kirjutada, siis kaob muie näolt ja tuleb mõtlema hakata, kuidas struktuuri parandada. Seda eirates läheb kood hapuks ja anekdoodivestjast koomikut ei saa.
IT juht läheb ülemuse jutule ja ütleb: “Meil oleks vaja uut serverit.” Ülemus seepeale uudishimulikult küsib: “Millist?” IT juht teeb suured silmad ette ja vastab: “Kahe millist.”
KAIZEN FEED
Telli endale Kaizeni uudisvoog
KOMMENTAARIDE FEED
Telli endale kommentaaride voog
KAIZEN TWITTER
Lühiuudised Kaizeni autoritelt
KAIZEN FACEBOOK
Liitu Kaizeniga
MIS ON KAIZEN?
Kaizen on Saiku tarkvaraarendusealane blogi, kus kirjutame erinevatest lähenemistest meisterlikule tarkvaraarendusele.
KATEGOORIAD
- .NET (18)
- Analüüs/Arhitektuur (11)
- Arendus (66)
- Ettevalmistus (1)
- Juhtimine (2)
- Varia (23)
SILDIPILV
- .NET (41)
- ilus kood (23)
- Arendus (23)
- C# (20)
- Analüüs/Arhitektuur (14)
- Testimine (10)
- raamat (8)
- Ruby (8)
- projektijuhtimine (8)
- printsiibid (6)
- produktiivsus (5)
- ReSharper (5)
- PHP (5)
- NHibernate (4)
- objekt-orienteeritud (4)
- pidev integratsioon (4)
- Viited (4)
- agile (4)
- Java (4)
- Geekdinner (4)
- lean (4)
- raamatukogu (4)
- CI (3)
- Cruise Control.NET (3)
- Robert C. Martin (3)
- scrum (3)
- iteratsioon (3)
- suhtlus (3)
- jQuery (2)
- TechEd 2008 (2)
- Visual Studio (2)
- valideerimine (2)
- intervjuu (2)
- analüüs (1)
- ASP.NET (1)
- ümberstruktureerimine (1)
- üritus (1)
- CodeRush (1)
- dokumentatsioon (1)
- Kent Beck (1)
- LINQ (1)
- Martin Fowler (1)
- Moq (1)
- Rhino Mocks (1)
- stackoverflow (1)
- võltsitud objektid (1)
- Whiteboard Wednesday (1)
- hindamine (1)
- tarkvara kvaliteet (1)
- ajagraafikud (1)
- Saiku (1)
- koolitus (1)
- tagasivaate (1)
- koosolek (1)
- dünaamilised keeled (1)
- staatilised keeled (1)
- FluentNHibernate (1)
- facebook (1)
- aastapäev (1)
- Rake (1)
- Oredev 2008 (1)
- toyota way (1)
- raiskamine (1)
- NDepend (1)
- podcasts (1)
- väle tarkvaraarendus (1)
- raido tonts (1)
- minimal marketable feature (1)
- kasutajalugu (1)
- twitter (1)
- Joomla! (1)
- MVC (1)
- andmebaas (1)
- versioonimine (1)
- diskussioon (1)
- regulaaravaldised (1)
- motiveerimine (1)
- mõõdikud (1)
- agileestonia (1)
- riistvara (1)
- koolitused (1)
- kujundus (1)
- kodulehed (1)
- veeb (1)
