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
620
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
Oracle Cloud Infrastructure presents managed, serverless MCP Servers for Oracle AI Database
thatjeffsmith
0
290
AWS WAFの運用を地道に改善し、自社で運用可能にするプラクティス
andpad
1
160
Every Conversation Counts
kawaguti
PRO
0
220
ServiceによるKubernetes通信制御ーClusterIPを例に
miku01
1
170
生成AI時代に信頼性をどう保ち続けるか - Policy as Code の実践
akitok_
1
300
PdM・Eng・QAで進めるAI駆動開発の現在地/aidd-with-pdm-eng-qa
shota_kusaba
0
230
Gaussian Splattingの実用化 - 映像制作への展開
gpuunite_official
0
180
"スキルファースト"で作る、AIの自走環境
subroh0508
0
110
20260513_生成AIを専属DSに_AI分析結果の検品テクニック_ハンズオン_交通事故データ
doradora09
PRO
0
220
Tachikawa.any 運営挨拶
daitasu
0
170
20260516_SecJAWS_Days
takuyay0ne
2
400
LookerとADKで作る社内AIエージェント
chanyou0311
0
200
Featured
See All Featured
KATA
mclloyd
PRO
35
15k
The agentic SEO stack - context over prompts
schlessera
0
780
Redefining SEO in the New Era of Traffic Generation
szymonslowik
1
300
Docker and Python
trallard
47
3.8k
Side Projects
sachag
455
43k
SEO for Brand Visibility & Recognition
aleyda
0
4.5k
Prompt Engineering for Job Search
mfonobong
0
300
Understanding Cognitive Biases in Performance Measurement
bluesmoon
32
2.9k
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
9
1.3k
How GitHub (no longer) Works
holman
316
150k
職位にかかわらず全員がリーダーシップを発揮するチーム作り / Building a team where everyone can demonstrate leadership regardless of position
madoxten
62
54k
The World Runs on Bad Software
bkeepers
PRO
72
12k
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