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
Phase06_ClaudeCode実践
overflowinc
0
2k
Phase01_AI座学_基礎
overflowinc
0
3.8k
Windows ファイル共有(SMB)を再確認する
murachiakira
PRO
0
270
RGBに陥らないために -プロダクトの価値を届けるまで-
righttouch
PRO
0
110
TUNA Camp 2026 京都Stage ヒューリスティックアルゴリズム入門
terryu16
0
340
SaaSに宿る21g
kanyamaguc
2
160
Navigation APIと見るSvelteKitのWeb標準志向
yamanoku
2
110
Datadog で実現するセキュリティ対策 ~オブザーバビリティとセキュリティを 一緒にやると何がいいのか~
a2ush
0
130
20年以上続く PHP 大規模プロダクトを Kubernetes へ ── クラウド基盤刷新プロジェクトの4年間
oogfranz
PRO
0
180
Phase05_ClaudeCode入門
overflowinc
0
2.1k
Kubernetesの「隠れメモリ消費」によるNode共倒れと、Request適正化という処方箋
g0xu
0
120
「コントロールの三分法」で考える「コト」への向き合い方 / phperkaigi2026
blue_goheimochi
0
150
Featured
See All Featured
Large-scale JavaScript Application Architecture
addyosmani
515
110k
Tips & Tricks on How to Get Your First Job In Tech
honzajavorek
0
460
Bridging the Design Gap: How Collaborative Modelling removes blockers to flow between stakeholders and teams @FastFlow conf
baasie
0
490
Imperfection Machines: The Place of Print at Facebook
scottboms
269
14k
Tell your own story through comics
letsgokoyo
1
870
B2B Lead Gen: Tactics, Traps & Triumph
marketingsoph
0
85
A better future with KSS
kneath
240
18k
Why Your Marketing Sucks and What You Can Do About It - Sophie Logan
marketingsoph
0
120
How to make the Groovebox
asonas
2
2k
Building Flexible Design Systems
yeseniaperezcruz
330
40k
Designing Experiences People Love
moore
143
24k
Digital Ethics as a Driver of Design Innovation
axbom
PRO
1
230
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