Clean Architecture


Chapter 17 Boundaries: Drawing Lines



Download 6,37 Mb.
Pdf ko'rish
bet113/259
Sana26.02.2022
Hajmi6,37 Mb.
#465587
1   ...   109   110   111   112   113   114   115   116   ...   259
Bog'liq
Clean Architecture A Craftsman’s Guide to Software Structure and Design by Robert C. Martin (z-lib.org)

Chapter 17 Boundaries: Drawing Lines
172
Th e Plu g i n A r g u m e n t
Consider the relationship between ReSharper and Visual Studio. These 
components are produced by completely different development teams in 
completely different companies. Indeed, JetBrains, the maker of ReSharper, 
lives in Russia. Microsoft, of course, resides in Redmond, Washington. It’s 
hard to imagine two development teams that are more separate.
Which team can damage the other? Which team is immune to the other? 
The dependency structure tells the story (Figure 17.6). The source code of 
ReSharper depends on the source code of Visual Studio. Thus there is 
nothing that the ReSharper team can do to disturb the Visual Studio team. 
But the Visual Studio team could completely disable the ReSharper team if 
they so desired.
Figure 17.6 
ReSharper depends on Visual Studio
That’s a deeply asymmetric relationship, and it is one that we desire to have 
in our own systems. We want certain modules to be immune to others. For 
example, we don’t want the business rules to break when someone changes 
the format of a web page, or changes the schema of the database. We don’t 
www.EBooksWorld.ir


Conclusion
173
want changes in one part of the system to cause other unrelated parts of the 
system to break. We don’t want our systems to exhibit that kind of fragility.
Arranging our systems into a plugin architecture creates firewalls across 
which changes cannot propagate. If the GUI plugs in to the business rules, 
then changes in the GUI cannot affect those business rules.
Boundaries are drawn where there is an 
axis of change
. The components on 
one side of the boundary change at different rates, and for different reasons, 
than the components on the other side of the boundary.
GUIs change at different times and at different rates than business rules, 
so there should be a boundary between them. Business rules change at 
different times and for different reasons than dependency injection 
frameworks, so there should be a boundary between them.
This is simply the Single Responsibility Principle again. The SRP tells us 
where to draw our boundaries.

Download 6,37 Mb.

Do'stlaringiz bilan baham:
1   ...   109   110   111   112   113   114   115   116   ...   259




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©hozir.org 2024
ma'muriyatiga murojaat qiling

kiriting | ro'yxatdan o'tish
    Bosh sahifa
юртда тантана
Боғда битган
Бугун юртда
Эшитганлар жилманглар
Эшитмадим деманглар
битган бодомлар
Yangiariq tumani
qitish marakazi
Raqamli texnologiyalar
ilishida muhokamadan
tasdiqqa tavsiya
tavsiya etilgan
iqtisodiyot kafedrasi
steiermarkischen landesregierung
asarlaringizni yuboring
o'zingizning asarlaringizni
Iltimos faqat
faqat o'zingizning
steierm rkischen
landesregierung fachabteilung
rkischen landesregierung
hamshira loyihasi
loyihasi mavsum
faolyatining oqibatlari
asosiy adabiyotlar
fakulteti ahborot
ahborot havfsizligi
havfsizligi kafedrasi
fanidan bo’yicha
fakulteti iqtisodiyot
boshqaruv fakulteti
chiqarishda boshqaruv
ishlab chiqarishda
iqtisodiyot fakultet
multiservis tarmoqlari
fanidan asosiy
Uzbek fanidan
mavzulari potok
asosidagi multiservis
'aliyyil a'ziym
billahil 'aliyyil
illaa billahil
quvvata illaa
falah' deganida
Kompyuter savodxonligi
bo’yicha mustaqil
'alal falah'
Hayya 'alal
'alas soloh
Hayya 'alas
mavsum boyicha


yuklab olish