Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Software Components @ RUG-B
Search
shagemann
November 03, 2016
Technology
0
1.5k
Software Components @ RUG-B
shagemann
November 03, 2016
Tweet
Share
More Decks by shagemann
See All by shagemann
Gradually Modularizing your Monolith with Ruby Packs and Packwerk
shagemann
0
1.4k
Structural Engineering in Ruby
shagemann
0
1.4k
Productize Your Services! @ springone 2017
shagemann
0
1.5k
Boulder Ruby Group Beginner's Track - What to Do Next?
shagemann
0
97
GET STARTED WITH COMPONENT-BASED RAILS APPLICATIONS! @ Rocky Mountain Ruby 2015
shagemann
1
150
Get started with Component-Based Rails @ RailsConf 2015
shagemann
3
1.8k
Refactoring towards Component-based Rails Architectures @ RailsConf 2014
shagemann
5
2k
The Rich, Flowers, and Piles of Sh%#t - And What To Do About It
shagemann
0
92
Reclaim your architecture @ sbonrails
shagemann
1
120
Other Decks in Technology
See All in Technology
超初心者からでも大丈夫!オープンソース半導体の楽しみ方〜今こそ!オレオレチップをつくろう〜
keropiyo
0
110
Bill One 開発エンジニア 紹介資料
sansan33
PRO
5
17k
GitLab Duo Agent Platform × AGENTS.md で実現するSpec-Driven Development / GitLab Duo Agent Platform × AGENTS.md
n11sh1
0
140
CDKで始めるTypeScript開発のススメ
tsukuboshi
1
430
インフラエンジニア必見!Kubernetesを用いたクラウドネイティブ設計ポイント大全
daitak
1
360
プロポーザルに込める段取り八分
shoheimitani
1
270
Claude_CodeでSEOを最適化する_AI_Ops_Community_Vol.2__マーケティングx_AIはここまで進化した.pdf
riku_423
2
570
Embedded SREの終わりを設計する 「なんとなく」から計画的な自立支援へ
sansantech
PRO
3
2.5k
Digitization部 紹介資料
sansan33
PRO
1
6.8k
What happened to RubyGems and what can we learn?
mikemcquaid
0
300
予期せぬコストの急増を障害のように扱う――「コスト版ポストモーテム」の導入とその後の改善
muziyoshiz
1
1.9k
20260208_第66回 コンピュータビジョン勉強会
keiichiito1978
0
140
Featured
See All Featured
A Guide to Academic Writing Using Generative AI - A Workshop
ks91
PRO
0
210
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
122
21k
Optimising Largest Contentful Paint
csswizardry
37
3.6k
End of SEO as We Know It (SMX Advanced Version)
ipullrank
3
3.9k
Color Theory Basics | Prateek | Gurzu
gurzu
0
200
Documentation Writing (for coders)
carmenintech
77
5.3k
The Illustrated Children's Guide to Kubernetes
chrisshort
51
51k
Tips & Tricks on How to Get Your First Job In Tech
honzajavorek
0
440
Heart Work Chapter 1 - Part 1
lfama
PRO
5
35k
Design in an AI World
tapps
0
140
Music & Morning Musume
bryan
47
7.1k
Unlocking the hidden potential of vector embeddings in international SEO
frankvandijk
0
170
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