печально быть антисоциальным - Coupling and Cohesion

Jan. 27th, 2004

04:44 pm - Coupling and Cohesion

Previous Entry Add to Memories Tell A Friend Next Entry

Virsraksts pretenciozs, bet agrāk vai vēlāk šie vārdi būs jānoformulē. Ja ir zināma latviskojumi - dodiet ziņu.

Pagājšnedēļ metu ārā funkcijas no klasēm un objektiem un dzēsu ārā nesaukto, nevajadzīgo un aizmirsto kodu. Šonedēļ rodas jauni faili un klases viens pēc otra. Ņemu lielu failu ar daudzām funkcijām un klasēm un struktūrām (C++) un viskautko un griežu gabaliņos. Zinu, ka puse netiek izmantota, bet kas tieši vēl nezinu.

Vadmotīvi ir divi: Low coupling and High cohesion.



  • Cohesion is the degree to which the responsibilities of a single component form a meaningful unit.

  • Coupling applies to any relationship between software components.

  • A first-order principle of software architecture is to reduce coupling and increase cohesion.



  • Programmas daļām jābūt ar pēc iespējas mazāku savstarpējo atkarību.

    Programmas daļām, kas ir apkopotas grupā, jābūt ar vienotu-saistītu funkcionalitāti.

    Zem vārda programmas daļa es domāju - bibliotēku, moduli, namespaci, klasi, struktūru, funkciju, vai blakusesošās koda rindiņas.

    Tie ir tādi pamatprincipi no kā izaug slikts vai labs design.

    (13 comments | Leave a comment)

    Comments:

    [User Picture]
    From:[info]misame
    Date:January 27th, 2004 - 05:06 pm
    (Link)
    jā.
    problēma ir tajā, ka mēģinot dizainēt šajā ziņā pareizu softu, bieži vien tiek uzrakstīta 1/2tonna lieka koda. :(
    (Reply to this) (Thread)
    (no subject) - [info]lupus
    [User Picture]
    From:[info]smejmoon
    Date:January 27th, 2004 - 05:18 pm

    Re:

    (Link)
    Hmm.. Tu ar lieku domā valodas sintakses prasīto, lai radītu jaunas struktūras, vai lieku kodu, kuram ir kāda funkcionalitāte.

    Lieks kods ir lieks kods. Ja viņš nav lieks, tad viņš ir jānoliek pareizajā vietā. Ato nezincik lieka rodas.

    (Piemēram 123 Ascii2Unicode metodes dažādās klasēs)
    (Reply to this) (Parent) (Thread)
    [User Picture]
    From:[info]misame
    Date:January 27th, 2004 - 11:42 pm

    Re:

    (Link)
    konkrēti es zinu, ka vienmēr aizraujos ar dabiskuma panākšanu šajos gadījumos
    jo mēģinu klases veidot tā, kā tas būtu dabā.
    līdz ar to sanāk, ka cenšos panākt, ka objekti būtu integrāli - tādi, kādi tie būtu dabā, ar uzstādītiem tiem atribūtiem, kas ir "obligāti" pēc būtības un tā.
    i rezultāts, ka sanāk rakstīt, piemēram, metodes, kas nodrošina šo integritāti.
    paldies dievam man nav bijis iespējas rakstīt pašprojektētas ssitēmas nu jau kādu laiku :)))
    (Reply to this) (Parent) (Thread)
    From:[info]mulders
    Date:January 28th, 2004 - 11:26 am

    Re:

    (Link)
    zheel... neaceros kur tieshi, bet bij veskije pretargumenti shai pieejai... tik neaceros kaadi!

    laikam probleemas radaas, kad jaasaak opereet ar objektiem kuru dabaa nav! kaut vai tas pats encodings... ij rezultaataa iisti nezini ne tikai kuraa vietaa klasee to ielikt, bet kur pashu klasi iestuukjeet!
    (Reply to this) (Parent) (Thread)
    [User Picture]
    From:[info]misame
    Date:January 28th, 2004 - 02:45 pm

    Re:

    (Link)
    problēmas rodas, ja tev vajag, piemēram, uz brīdi uzkonstruēt kaut kādu nepilnīgu objektu un tad ar read() vai kādu tādu metodi ielasīt visus atribūtus... jo tu taču visiem spēkiem cīnies par to, lai objekts tomēr būtu pilnīgs ;)
    (Reply to this) (Parent)
    [User Picture]
    From:[info]smejmoon
    Date:January 28th, 2004 - 03:30 pm

    Re:

    (Link)
    Akurāt enkodings tieši pitonā stāv string klasē ;-)
    (Reply to this) (Parent)
    [User Picture]
    From:[info]smejmoon
    Date:January 28th, 2004 - 03:34 pm

    Re:

    (Link)
    "sanāk rakstīt, piemēram, metodes, kas nodrošina šo integritāti"
    Tu par seteriem/geteriem runā?
    (Reply to this) (Parent)
    From:[info]mulders
    Date:January 28th, 2004 - 11:28 am
    (Link)
    un taa padomaajot! ja ir daudz saiknes starp klaseem, tas veel nenoziimee ka dezains slikts... jamo gan maintainot buus gruuti! bet taada tiiklveida struktuura var buut ahuuni stabila un dinamiska... tik vot taadu uzdezainot ir gruuti!
    (Reply to this) (Thread)
    [User Picture]
    From:[info]smejmoon
    Date:January 28th, 2004 - 03:31 pm

    Re:

    (Link)
    "maintainot buus gruuti" nav slikts?

    Programmas, kuras nevajag uzturēt nav jāraksta ar klasēm:)
    (Reply to this) (Parent) (Thread)
    From:[info]grrr
    Date:January 29th, 2004 - 04:18 pm

    20/20

    (Link)
    A vot šo mēs saskaņā ar Newsweek novērtēsim.
    (Reply to this) (Parent)
    [User Picture]
    From:[info]cu
    Date:February 7th, 2004 - 03:46 pm

    cohesion

    (Link)
    U. Straujums Latvijas Universitaatee saka - koheezija.
    (Reply to this) (Thread)
    [User Picture]
    From:[info]smejmoon
    Date:February 7th, 2004 - 08:46 pm

    Re: cohesion

    (Link)
    kādā kursā? būs ar viņu jāparunā.
    (Reply to this) (Parent)