Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Speaker Deck
PRO
Sign in
Sign up for free
Software Components @ RUG-B
shagemann
November 03, 2016
Technology
0
560
Software Components @ RUG-B
shagemann
November 03, 2016
Tweet
Share
More Decks by shagemann
See All by shagemann
Structural Engineering in Ruby
shagemann
0
510
Productize Your Services! @ springone 2017
shagemann
0
540
Boulder Ruby Group Beginner's Track - What to Do Next?
shagemann
0
66
GET STARTED WITH COMPONENT-BASED RAILS APPLICATIONS! @ Rocky Mountain Ruby 2015
shagemann
1
110
Get started with Component-Based Rails @ RailsConf 2015
shagemann
3
790
Refactoring towards Component-based Rails Architectures @ RailsConf 2014
shagemann
5
950
The Rich, Flowers, and Piles of Sh%#t - And What To Do About It
shagemann
0
46
Reclaim your architecture @ sbonrails
shagemann
1
82
Active Record Model Dependencies
shagemann
0
91
Other Decks in Technology
See All in Technology
CUEとKubernetesカスタムオペレータを用いた新しいネットワークコントローラをつくってみた
hrk091
0
160
プログラミング支援AI GitHub Copilot すごいの話
moyashi
0
270
2023年は何する宣言
shigeruoda
0
230
キャリアを充実させる『カギ』に!PR TIMES CTO金子達哉から学ぶアウトプット術 / output_method
catatsuy
0
210
20230117_JAWS-UG_朝会_41_LT資料
tsumita
0
290
lt53
98_justdoit
0
110
WINTICKET QA における Autify 活用
kj455
1
180
【Λ(らむだ)】いつのまにリスキリング / RPALT20230117
lambda
0
380
JAWS-UG朝会_41_NakagawaAkihiro.pptx.pdf
anakagawa
2
610
EMになって最初の失敗談 - コミュニケーション編 -
fukuiretu
1
330
Deep dive in Reserved Instance ~脳死推奨量購入からの脱却~
kzkmaeda
0
180
re:Invent re:Cap / AWS Lambda Updates
bulbulpaul
1
140
Featured
See All Featured
A Tale of Four Properties
chriscoyier
149
21k
Put a Button on it: Removing Barriers to Going Fast.
kastner
56
2.5k
Building a Modern Day E-commerce SEO Strategy
aleyda
6
4.5k
Thoughts on Productivity
jonyablonski
49
2.7k
4 Signs Your Business is Dying
shpigford
171
20k
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
32
6.7k
Three Pipe Problems
jasonvnalue
89
8.9k
The Pragmatic Product Professional
lauravandoore
21
3.4k
How To Stay Up To Date on Web Technology
chriscoyier
779
250k
Optimizing for Happiness
mojombo
365
64k
Happy Clients
brianwarren
90
5.8k
What's new in Ruby 2.0
geeforr
336
30k
Transcript
Software Components Why - How - What Stephan Hagemann -
2016-11-03 - RUG-B @shageman
WRITE BETTER SOFTW ARE @shageman
@shageman
WHAT IS A COMPONENT? @shageman
Labeled Content + Explicit Dependencies @shageman
Labeled Content + Explicit Dependencies @shageman
@shageman
Labeled Content + Explicit Dependencies @shageman
@shageman
@shageman
@shageman
@shageman
@shageman
A depends on B … A B @shageman
thus B can not depend on A A B X
@shageman
and this doesn’t work either A B X C @shageman
X and Y as the same thing @shageman Y X
Uncle Bob says … I like to draw these lines.
Architecture is the art of drawing lines. With the interesting rule that once you have drawn the lines, all the dependencies that cross that line go in the same direction… @shageman
This is why objects are typically not components… @shageman
@shageman
WHY COMPONENTS? @shageman
Growing size @shageman
Exploding complexity SIZE POSSIBLE INTERACTIONS @shageman
Effect of structure VS @shageman
SIZE POSSIBLE INTERACTIONS Reduced exploding complexity @shageman
@shageman
Communication @shageman
Collaboration @shageman
Creation @shageman
Maintenance @shageman
Comprehension @shageman
HOW TO IMPLEMENT COMPONENTS? @shageman
None
Code!! @shageman
And in other languages? Ruby/Rails: Gems + Engines Java: Modules
Go: packages Javascript: packages (in npm lingo) C: file compiling + linking @shageman
HOW TO DETERMINE WHAT SHOULD BE A COMPONENT? @shageman
SUMMARY @shageman
Components = Labeled Content + Explicit Dependencies @shageman WHAT
Components improve… communication creation collaboration maintenance comprehension complexity @shageman WHY
In Ruby and Rails… gems and engines can be used
as components @shageman HOW
@shageman
@shageman
https://leanpub.com/cbra/c/rugb @shageman Discount Code!
Further reading https://leanpub.com/cbra http://cbra.info https://github.com/shageman http://appcontinuum.io @shageman
THANKS! @shageman https://leanpub.com/cbra/c/rugb