печально быть антисоциальным - Refactoring C++ to reduce dependencies

Feb. 10th, 2004

11:42 pm - Refactoring C++ to reduce dependencies

Previous Entry Add to Memories Tell A Friend Next Entry

Nesen pārlasīju ko Phil Goodwin rakstīja par atkarību samazināšanu C++ kodā. Lielākoties atbilst manai pieredzei.

Šodien pazuda kādas 400 rindiņas C++ koda no kādas klases un kādas 600 vēl palika. Kompilējās kā prieks, jo interfeiss tagad satur tikai 2 privātās metodes.

Ja labi piekopj augstākminēto, nevaru iedomāties daudz praktiskus projektus, kur būtu nepieciešamas abstraktas virsklases (sauktas arī par interfeisiem) vai leieri, leieri, leieri.

(12 comments | Leave a comment)

Comments:

[User Picture]
From:[info]misame
Date:February 11th, 2004 - 08:30 am
(Link)
bet no otras puses, vai vērts pārveidot jau strādājošu uzrakstītu kodu? paruna it kā saka "never touch a running system" :)
(Reply to this) (Thread)
[User Picture]
From:[info]smejmoon
Date:February 11th, 2004 - 08:38 am
(Link)
Man bija, ir un būs jāpievieno funkcionalitāte. Un jāuzlabo esošā.

Drošības sajūtu dod testi, C++ kompilators un tas, ka izmetot nelietoto kodu es labāk saprotu, ko atlikušais dara :-)
(Reply to this) (Parent) (Thread)
[User Picture]
From:[info]misame
Date:February 11th, 2004 - 08:44 am
(Link)
ā, tad es vienkārši mazliet nesapratos.
es bij sapratis, ka Tu tā aiz neko darīt tur ņemies ap to kodu :)
(Reply to this) (Parent)
From:[info]mulders
Date:February 11th, 2004 - 10:56 am
(Link)
a es C++ nezinu, maz ko no taa texta sapratu :(
duraks veel iru!
(Reply to this) (Thread)
[User Picture]
From:[info]smejmoon
Date:February 11th, 2004 - 11:02 am
(Link)
Nu principi jau tie paši.
- maksimāli pārredzams kods
- low coupling, high cohesion
.. it īpaši neveidojam cikliskās atkarības ārpus noslēgtām vienībām
- lietas, ko reti mainām, sakompilējam vienreiz

a pārējais valodspecifisks- pieļauju headerus var aizstāt ar interfeisiem;
(Reply to this) (Parent) (Thread)
From:[info]mulders
Date:February 11th, 2004 - 02:46 pm
(Link)
prosta ieintereseeja tas kaa var bez interfeisiem iztikt! un kaapeec tas ir lab?
(Reply to this) (Parent) (Thread)
[User Picture]
From:[info]smejmoon
Date:February 11th, 2004 - 02:49 pm
(Link)
vienkārši iemet piemēru - tad redzēs.
(Reply to this) (Parent) (Thread)
From:[info]mulders
Date:February 11th, 2004 - 02:52 pm
(Link)
kaut vai vecais labais Runnable interfeiss ieksh JAVA. tb ja kaads objekts jamo implementee, tad shamo var palaist atsevishkjaa tredaa!!

nu es saprotu, ka teorijaa var to apiet, bet kaapeec no taa jaavairaas?


vai arii - uzraxtaam interfeisus un tad kaadu layeri kas shos interfeisus izmanto... taalaak tev atliek tikai savu interfeisu implementaaciju ieshkjiebt tam freimworkam, ij shamais ruuc kaa labi ieeljots traktors!

tb uz interfeisiem var taisiit layerus bez pashu interfeisu implementaacijas!
(Reply to this) (Parent) (Thread)
[User Picture]
From:[info]smejmoon
Date:February 11th, 2004 - 03:19 pm
(Link)
Tu runā par freimworku rakstīšanu. Tas ir labi un kruti un notiek pats no sevis. Man reti. (reizi gadā). Ja Tev bieži, tad pastāsti kāda ir tā specifika.

"uz interfeisiem var taisiit layerus bez pashu interfeisu implementaacijas" ir kautkas, kam es neticu. :) Nav implementācijas - nav funkcionalitātes.
(Reply to this) (Parent) (Thread)
From:[info]mulders
Date:February 11th, 2004 - 03:44 pm
(Link)
Nu pag!
Freimworki jau paarsvaraa no vieniem interfeisiem vien sastaav!

Redz... ir taadi patterni kaa "proxy" ar shamiem "noemulee" funkcionalitaati!

Tb rezultaataa jau tev nav gala produkts, bet driizaak skeletons kuru tu piekjeezii ar to funkcionalitaati!

Taa teikt - uzraxti layoutu, bet datus tajos iebaazh cits!
(Reply to this) (Parent) (Thread)
[User Picture]
From:[info]smejmoon
Date:February 11th, 2004 - 03:50 pm
(Link)
Tas ir kruta. Vai tas Tev ir aktuāli? Moš arī ir.
Tagad došos gulēt. Būtu labi tādās debatēs iemest kādu reālu koda piemēru.
(Reply to this) (Parent) (Thread)
From:[info]mulders
Date:February 11th, 2004 - 04:51 pm
(Link)
man tas visu laiku ir aktuaali - drausmiigi churaaju kepjatoku par freimworkiem !!!

visa java uz jamiem staav!
(Reply to this) (Parent)