minimalizálása adatok

10. minimalizálása a globális és a megosztott adatok

Megosztása képezi a vita és a széthúzás. Kerüljük az adatok megosztása, különösen a globális adatokat. A megosztott adatok megerősítik a kohézió, ami kisebb soprovozhdaemocti és gyakran teljesítményt.







megbeszélés

Ez a kijelentés általánosabb, mint a szűkebb követelmény ajánlás 18.

Kerülje adatok és a külső kapcsolódási névtérnek körét képviselő vagy egy statikus osztály tagja. Használatuk bonyolítja a logikája a program vezet koherencia a különböző (és ami még rosszabb, távoli) a program egyes részeit. A megosztott adatok azt kevésbé hatékony egység tesztelése, hiszen a helyességét a kódrészletet, amely a megosztott adatok miatt a változások történetében az adatokat, és emellett meghatározza működésének néhány, ma még ismeretlen, a kód, amely használni fogja az adatokat később.

tárgyak neveit a globális névtérben vezet a további eltömődés.

Ha nem nélkülözheti a globális tárgyak, objektumok névtérben körét vagy a statikus osztály tagjait, hogy megfelelően vannak-e inicializálni. Eljárás indítása ilyen tárgyak különböző összeállítás egység nincs meghatározva, ezért a helyes működéshez a különleges technikákra van szükség ebben az esetben (lásd. A mellékelt hivatkozások). Szabályzat inicializálási eljárás meglehetősen bonyolult, ezért a legjobb, hogy elkerüljék őket; de ha még mindig kell foglalkozni velük, akkor őket is megtanulni és használni, nagy óvatossággal.

Tárgyak, amelyek a hatálya névterekben statikus tagok vagy megosztott különböző szálak vagy folyamatok, hogy csökkenjen az a párhuzamosítás többszálú és többprocesszoros környezetek, és gyakran a szűk keresztmetszet a teljesítmény és a skálázhatóság (lásd. 7. ajánlás). Megpróbál megszabadulni az adatmegosztás; Használata helyett egy kommunikációs eszköz (például egy üzenet sorban).

Előnyösen, hogy egy alacsony koherenciáját, és hogy minimalizálják interakció osztályok.







kivételek

Ezeket az alapokat programok szintjén a cin. cout és cerr. Ezek speciális és valósulnak meg különleges módon. A gyár kell fenntartani funkciók a nyilvántartás, amelyet meg kell hívni, hogy hozza létre ezt a típusát, és hogy egy ilyen nyilvántartás általában az egész program (mégis előnyös, hogy egy belső tárgy vonatkozásában egy gyári, és nem egy átfogó, közös tárgy, lásd 11. pont). .

A kód, amely egy tárgy osztozik a különböző szálak biztosítaniuk kell serialization utalást ilyen objektumot.

11. Tájékoztatás rejtőzik

Ne hagyja, hogy a bennfentes információ off-site, amely egy absztrakció.

megbeszélés

Hogy csökkentse közötti függőségeket a hívó kód, amely együttműködik egy absztrakció, és a végrehajtása egy absztrakció, a belső adatok ilyen végrehajtás legyen rejtett. Ellenkező esetben a hívó elérheti ezt az információt (vagy ami még rosszabb, hogy változtassa meg), és ez a szivárgás célja kizárólag belső használatra információkat teszi a hívó függően belső ábrázolása absztrakció. Nyitott absztrakció kell (lehetőleg a tárgy mezőt, de legalább kap / set absztrakció), ahelyett, hogy az adatokat.

Eltitkolása tájékoztatás csökkenti a projekt költség, a fejlesztési idő és / vagy a kockázat két fő módja.

Ez megkeresi a változásokat. Eltitkolása tájékoztatás csökkenti a terület „hullám hatása” A változások, ezért annak költségeit.

Erősíti invariáns. Elrejtése információ korlátozza a kódot fenntartásáért felelős (és hiba esetén, mert sérti) invariáns programot (lásd. Ajánlás 41).

Ne engedje, hogy a „fény” adat bármely tárgy, amely egy absztrakció (lásd. Szintén 10. ajánlás). Adat - csak az egyik inkarnációja absztrakció, fogalmi állapot. Ha elsősorban a fogalom, nem pedig annak képviseletét, akkor képes lesz arra, hogy felajánl egy átgondolt felület és „nyalni” végrehajtása lehet, és később - például azáltal caching kiszámítása helyett „menet közben”, vagy az eltérő optimalizálási reprezentációk (például poláris koordináták helyett derékszögű).

Jellemző példa, hogy az adatok tag osztályok nem tehetők külsőleg elérhető egy specifikátor nyilvános (lásd. Ajánlás 41) keresztül vagy a pointerek és fogantyúk (cm. Ajánlás 42. pontja). Ez az elv azonos mértékben alkalmazható a nagyobb szervezetek - például, mint például a könyvtárak, amelyek lehetővé kell tennie hozzáférést a belső információkat kívülről. A modulok és könyvtárak biztosítania kell interfészeket, amelyek meghatározzák az absztrakció és velük dolgozni, és ezáltal nagyobb biztonságot a hívó kód és egy kisebb kapcsolat, mint a megosztott adatok.

kivételek

Tesztelés kód gyakran megköveteli a képességét, hogy fellebbezni a „belső” vizsgálati osztály vagy a modult.

Értékrend (struct C-style), ami egy egyszerű adathalmazt anélkül, hogy bármilyen absztrakciók nem igénylik a rejtőzködő az adatokat, ami ebben az esetben a felület (vö. 41. ajánlás).




Kapcsolódó cikkek