Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Speaker Deck
PRO
Sign in
Sign up for free
Verantwortungsvoller Umgang mit Software-Paketen
Matthias Pigulla
May 04, 2018
Technology
0
250
Verantwortungsvoller Umgang mit Software-Paketen
Talk auf der SymfonyLive am 04.05.2018
Matthias Pigulla
May 04, 2018
Tweet
Share
Other Decks in Technology
See All in Technology
CADDi HCMC Technology Center
caddi_eng
0
230
ITエンジニアを取り巻く環境とキャリアパス / A career path for Japanese IT engineers
takatama
0
570
數據的多重宇宙 @ LINE Taiwan
line_developers_tw
PRO
0
460
プロダクトグロースと技術のベースアップを両立させるRettyのアプリ開発スタイル / Achieve Product Growth and Tech Update
imaizume
1
270
jaws-ug-asa-datasync-20220510
hiashisan
0
460
The Real MVP: Going from idea to users' hands
adavis
0
610
ISUCON で使えるツールを作った
shotakitazawa
0
350
Power BI Report Ops
hanaseleb
0
150
LINEスタンプの実例紹介 小さく始める障害検知・対応・振り返りの 改善プラクティス
line_developers
PRO
3
1.3k
20220510_簡単にできるコスト異常検出(Cost Anomaly Detection) /jaws-ug-asa-cost-anomaly-detection-20220510
emiki
2
310
Steps toward self-service operations in eureka
fukubaka0825
0
410
Embedded SRE at Mercari
tcnksm
0
790
Featured
See All Featured
Designing with Data
zakiwarfel
91
3.9k
ParisWeb 2013: Learning to Love: Crash Course in Emotional UX Design
dotmariusz
100
5.9k
A Philosophy of Restraint
colly
192
14k
Building a Scalable Design System with Sketch
lauravandoore
447
30k
4 Signs Your Business is Dying
shpigford
169
20k
Building an army of robots
kneath
299
40k
The Art of Programming - Codeland 2020
erikaheidi
31
5.8k
Gamification - CAS2011
davidbonilla
75
3.9k
Automating Front-end Workflow
addyosmani
1351
200k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
12
890
Faster Mobile Websites
deanohume
294
28k
Debugging Ruby Performance
tmm1
65
10k
Transcript
Verantwortungsvoller Umgang mit So ware-Paketen Ma hias Pigulla – webfactory.de
SymfonyLive, 4. Mai 2018
webfactory.de/uncle- bob-papers
Release/Reuse Equivalency Principle (REP) The granule of reuse is the
granule of release. Only components that are released through a tracking system can effectively be reused. This granule is the package. — Robert C. Martin
Release macht Code zum Produkt
Zeitliche Entkopplung
Schni stelle, nicht Implementierung
X.Y.Z 1.2.0, 2.17.47, ... semver.org
! . " .
@trigger_error( 'Raider heißt jetzt Twix', E_USER_DEPRECATED );
Schni stelle?
Transitive Abhängigkeiten
$client = $this->fetchAcmeApiClient(); try { $client->addToCart(...); } catch (\GuzzleHttp\Exception\GuzzleException $e)
{ ... }
Strategisches Paketdesign
Common Reuse Principle (CRP) The classes in a package are
reused together. If you reuse one of the classes in a package, you reuse them all. — Robert C. Martin
None
Common Closure Principle (CCP) The classes in a package should
be closed together against the same kinds of changes. A change that affects a package affects all classes in that package. — Robert C. Martin
None
Acyclic Dependencies Principle (ADP) The dependency structure between packages must
be a directed acyclic graph (DAG). That is, there must be no cycles in the dependency structure. — Robert C. Martin
None
None
None
Tools!
clue/graph-composer github.com/clue/graph-composer
maglnet/ComposerRequireChecker github.com/maglnet/ComposerRequireChecker
webfactory/baton github.com/webfactory/baton baton.test.webfactory.de
! "
None