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
610
0
Share
Verantwortungsvoller Umgang mit Software-Paketen
Talk auf der SymfonyLive am 04.05.2018
Matthias Pigulla
May 04, 2018
Other Decks in Technology
See All in Technology
Zephyr(RTOS)でOpenPLCを実装してみた
iotengineer22
0
180
来期の評価で変えようと思っていること 〜AI時代に変わること・変わらないこと〜
estie
0
140
GitHub Actions侵害 — 相次ぐ事例を振り返り、次なる脅威に備える
flatt_security
13
7.5k
契約書からの情報抽出を行うLLMのスループットを、バッチ処理を用いて最大40%改善した話
sansantech
PRO
3
350
OPENLOGI Company Profile for engineer
hr01
1
62k
Babylon.js を使って試した色々な内容 / Various things I tried using Babylon.js / Babylon.js 勉強会 vol.5
you
PRO
0
230
パワポ作るマンをMCP Apps化してみた
iwamot
PRO
0
300
Microsoft Fabricで考える非構造データのAI活用
ryomaru0825
0
650
フルカイテン株式会社 エンジニア向け採用資料
fullkaiten
0
11k
Babylon.js Japan Activities (2026/4)
limes2018
0
170
すごいぞManaged Kubernetes
harukasakihara
1
280
機能・非機能の学びを一つに!Agent Skillsで月間レポート作成始めてみた / Unifying Bug & Infra Insights — Building Monthly Quality Reports with Agent Skills
bun913
3
2.4k
Featured
See All Featured
Data-driven link building: lessons from a $708K investment (BrightonSEO talk)
szymonslowik
1
990
Side Projects
sachag
455
43k
AI: The stuff that nobody shows you
jnunemaker
PRO
4
510
KATA
mclloyd
PRO
35
15k
A Tale of Four Properties
chriscoyier
163
24k
Balancing Empowerment & Direction
lara
5
1k
Making Projects Easy
brettharned
120
6.6k
Marketing Yourself as an Engineer | Alaka | Gurzu
gurzu
0
170
Writing Fast Ruby
sferik
630
63k
Measuring Dark Social's Impact On Conversion and Attribution
stephenakadiri
1
170
AI Search: Implications for SEO and How to Move Forward - #ShenzhenSEOConference
aleyda
1
1.2k
AI Search: Where Are We & What Can We Do About It?
aleyda
0
7.2k
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