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
1k
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
830
Structural Engineering in Ruby
shagemann
0
980
Productize Your Services! @ springone 2017
shagemann
0
1k
Boulder Ruby Group Beginner's Track - What to Do Next?
shagemann
0
78
GET STARTED WITH COMPONENT-BASED RAILS APPLICATIONS! @ Rocky Mountain Ruby 2015
shagemann
1
130
Get started with Component-Based Rails @ RailsConf 2015
shagemann
3
1.3k
Refactoring towards Component-based Rails Architectures @ RailsConf 2014
shagemann
5
1.5k
The Rich, Flowers, and Piles of Sh%#t - And What To Do About It
shagemann
0
62
Reclaim your architecture @ sbonrails
shagemann
1
98
Other Decks in Technology
See All in Technology
Oracle Cloud Infrastructure IaaS 新機能アップデート 2024/6 - 2024/8
oracle4engineer
PRO
0
110
Jetpack Compose Modifier 徹底解説 / Jetpack Compose Modifier
wiroha
0
130
DuckDB雑紹介(1.1対応版)@DuckDB座談会
ktz
5
1.2k
不動産売買取引におけるAIの可能性とプロダクトでのAI活用
zabio3
0
210
React Aria で実現する次世代のアクセシビリティ
ryo_manba
4
1.2k
エンジニア視点で見る、 組織で運用されるデザインシステムにするには
shunya078
1
300
サプライチェーン攻撃に備える
ryunen344
0
150
すぐに始めるAWSコスト削減。短期でできる改善策と長期的な運用負荷軽減への取り組み方を解説
ncdc
1
550
Creative UIs with Compose: DroidKaigi 2024
chrishorner
1
210
Agile in Automotive Industry, puzzles and lights.
hiranabe
2
360
Mocking in Rust Applications
taiki45
1
380
20240906_JAWS_Yamanashi_#1_leap_beyond_the_AWS_all_certifications
tsumita
1
270
Featured
See All Featured
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
103
48k
Java REST API Framework Comparison - PWX 2021
mraible
PRO
27
7.4k
In The Pink: A Labor of Love
frogandcode
139
22k
What's new in Ruby 2.0
geeforr
340
31k
Atom: Resistance is Futile
akmur
261
25k
Stop Working from a Prison Cell
hatefulcrawdad
267
20k
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
23
1.7k
Code Review Best Practice
trishagee
62
16k
GraphQLの誤解/rethinking-graphql
sonatard
65
9.8k
Designing on Purpose - Digital PM Summit 2013
jponch
113
6.8k
What the flash - Photography Introduction
edds
67
11k
Unsuck your backbone
ammeep
667
57k
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