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
Verantwortungsvoller Umgang mit Software-Paketen
Search
Matthias Pigulla
May 04, 2018
Technology
0
610
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
Sansanの認証基盤を支えるアーキテクチャとその振り返り
sansantech
PRO
1
100
FASTでAIエージェントを作りまくろう!
yukiogawa
4
110
AI時代のオンプレ-クラウドキャリアチェンジ考
yuu0w0yuu
0
240
Phase03_ドキュメント管理
overflowinc
0
2.7k
スケーリングを封じられたEC2を救いたい
senseofunity129
0
100
AI時代のIssue駆動開発のススメ
moongift
PRO
0
270
AIエージェント時代に必要な オペレーションマネージャーのロールとは
kentarofujii
0
140
イベントで大活躍する電子ペーパー名札を作る(その2) 〜 M5PaperとM5PaperS3 〜 / IoTLT @ JLCPCB オープンハードカンファレンス
you
PRO
0
210
Phase12_総括_自走化
overflowinc
0
1.6k
「お金で解決」が全てではない!大規模WebアプリのCI高速化 #phperkaigi
stefafafan
5
2.3k
非同期・イベント駆動処理の分散トレーシングの繋げ方
ichikawaken
1
140
Phase06_ClaudeCode実践
overflowinc
0
2.2k
Featured
See All Featured
The Mindset for Success: Future Career Progression
greggifford
PRO
0
290
The State of eCommerce SEO: How to Win in Today's Products SERPs - #SEOweek
aleyda
2
10k
Tell your own story through comics
letsgokoyo
1
870
Have SEOs Ruined the Internet? - User Awareness of SEO in 2025
akashhashmi
0
300
Self-Hosted WebAssembly Runtime for Runtime-Neutral Checkpoint/Restore in Edge–Cloud Continuum
chikuwait
0
420
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
194
17k
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
508
140k
How to Ace a Technical Interview
jacobian
281
24k
[SF Ruby Conf 2025] Rails X
palkan
2
860
Done Done
chrislema
186
16k
Mozcon NYC 2025: Stop Losing SEO Traffic
samtorres
0
190
Agile Leadership in an Agile Organization
kimpetersen
PRO
0
120
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