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
600
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
2025年のデザインシステムとAI 活用を振り返る
leveragestech
0
720
Java 25に至る道
skrb
3
170
Next.js 16の新機能 Cache Components について
sutetotanuki
0
220
I tried making a solo advent calendar!
zzzzico
0
140
Digitization部 紹介資料
sansan33
PRO
1
6.4k
「駆動」って言葉、なんかカッコイイ_Mitz
comucal
PRO
0
140
技術選定、下から見るか?横から見るか?
masakiokuda
0
180
Introduction to Sansan for Engineers / エンジニア向け会社紹介
sansan33
PRO
5
60k
わが10年の叡智をぶつけたカオスなクラウドインフラが、なくなるということ。
sogaoh
PRO
1
340
モノタロウ x クリエーションラインで実現する チームトポロジーにおける プラットフォームチーム・ ストリームアラインドチームの 効果的なコラボレーション
creationline
0
540
会社紹介資料 / Sansan Company Profile
sansan33
PRO
11
390k
2025年 山梨の技術コミュニティを振り返る
yuukis
0
150
Featured
See All Featured
Documentation Writing (for coders)
carmenintech
77
5.2k
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
35
2.3k
エンジニアに許された特別な時間の終わり
watany
106
220k
Digital Ethics as a Driver of Design Innovation
axbom
PRO
0
140
Utilizing Notion as your number one productivity tool
mfonobong
2
190
Build The Right Thing And Hit Your Dates
maggiecrowley
38
3k
The Cost Of JavaScript in 2023
addyosmani
55
9.4k
Testing 201, or: Great Expectations
jmmastey
46
7.8k
B2B Lead Gen: Tactics, Traps & Triumph
marketingsoph
0
40
Building a Modern Day E-commerce SEO Strategy
aleyda
45
8.5k
Evolving SEO for Evolving Search Engines
ryanjones
0
93
Designing for humans not robots
tammielis
254
26k
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