‘printsiibid’ sildiga artiklid

7

Sept

Võtame kaalust alla

Marek Tihkan Kommenteeri

PeterPaulRubensPeter 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:

Loe edasi »

  • Share/Bookmark

KATEGOORIAD » Arendus

SILDID » , , , ,

LOE EDASI »
16

Aprill

Võõrastega ei suhelda

Marek Tihkan Kommenteeri

Paljud emad hoiatavad lapsi, et võõrastega suhelda ei tohi. Eriti nendega, kes kommi pakuvad. Ka koodi kirjutamisel on kasulik seda hoiatust arvesse võtta.

Law of Demeter (Principle of Least Knowledge)
Kui objekt A viitab objekt B-le, siis võib A kutsuda B meetodeid, kuid ta peaks hoiduma kutsumast meetodeid objektidel, millele viitab B.

public class Person
{
    public Account Account { get; set; }

    public void Block()
    {
        Account.State = AccountState.Disabled;
    }
}

public class Account
{
    public AccountState State { get; set; }
}

public class AccountState
{
    public static AccountState Disabled
    {
        //...
    }
}

Loe edasi »

  • Share/Bookmark

KATEGOORIAD » Arendus

SILDID » , , ,

LOE EDASI »

Inimestele meeldib teha pigem seda, mida pole vaja. Seda illustreerib hästi ka poodlemine, kus tassitakse hunnikus asju koju ning seejärel pannakse need kappi seisma ja lagunemist ootama. Siinkohalgi tarkvara arendus väga ei erine – paljud programmeerijaid lisavad lähtekoodi hulgaliselt võimalusi, mida võib tulevikus vaja minna. Seda, kas neid ka tulevikus kasutati on vähe tõenäoline.

Kui lisada asju, mida kunagi võib vaja minna, siis peamiselt tõuseb keeruks, kuid samas võib see ka paindlikum olla. Viimane osa ei ole just tihti tõene.

You Ain’t Gonna Need It
(YAGNI)

Loe edasi »

  • Share/Bookmark

KATEGOORIAD » Arendus

SILDID » ,

LOE EDASI »

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 »

  • Share/Bookmark

KATEGOORIAD » Analüüs/Arhitektuur,Arendus

SILDID » , , , , ,

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 »

  • Share/Bookmark

KATEGOORIAD » Arendus

SILDID » , , ,

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.”

Loe edasi »

  • Share/Bookmark

KATEGOORIAD » Arendus

SILDID » , ,

LOE EDASI »