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
470
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
waitany と waitall を作った話
mrkn
0
110
中規模・ミドルTier開発組織におけるDevRelの戦略と実行と成果 - DevRel Guild Conference Mini -
leveragestech
2
260
マーケットプレイス版Oracle WebCenter Content For OCI
oracle4engineer
PRO
1
160
疎通2024
sadnessojisan
4
460
なぜクラウドサービスで Web コンソールを提供するのか
shuta13
4
1.2k
SHIFTの課題と目指したい組織像 / 20240827 Rinto Ikenoue
shift_evolve
0
140
Oracle Base Database Service:サービス概要のご紹介
oracle4engineer
PRO
0
13k
LLMに日本語テキストを学習させる意義
ksaito
13
3.4k
スーパーマリオRPGのリメイク版の変更点からみるUX
nishiharatsubasa
1
110
株式会社M2X エンジニアチーム紹介資料
m2xsoftware
0
320
AWSを始めた頃に陥りがちなポイントをまとめてみた
oshanqq
0
1.5k
プロデザ! BY リクルートvol.22_様々なプロダクト経験の中で活きたPdMのスキル
recruitengineers
PRO
3
170
Featured
See All Featured
Designing for humans not robots
tammielis
248
25k
Speed Design
sergeychernyshev
18
400
Put a Button on it: Removing Barriers to Going Fast.
kastner
58
3.4k
The Invisible Customer
myddelton
119
13k
Fashionably flexible responsive web design (full day workshop)
malarkey
400
65k
Clear Off the Table
cherdarchuk
90
320k
Statistics for Hackers
jakevdp
793
220k
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
27
1.6k
KATA
mclloyd
27
13k
Design by the Numbers
sachag
277
19k
The Invisible Side of Design
smashingmag
295
50k
Building Applications with DynamoDB
mza
89
5.9k
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