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
Good Software Practices
Search
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
Chris Ayers
October 20, 2018
Technology
93
0
Share
Good Software Practices
A discussion of good software practices across a range of topics.
Chris Ayers
October 20, 2018
More Decks by Chris Ayers
See All by Chris Ayers
DevOps and Cloud Days - DevOvs is More than Dev and Ops
cayers
0
160
Dependency Injection and Unit Testing in .Net Core
cayers
0
170
Devops is more than a Title
cayers
0
420
Automate Azure DevOps
cayers
0
400
ASP.Net Core - Shift Left and Start Out Right
cayers
0
230
Application Insights
cayers
0
220
Dependency Injection & Unit Testing
cayers
0
170
Other Decks in Technology
See All in Technology
大学生が本気でDatabricksを活用してDiscordサークルをデータ駆動させてみた
phantomjuju
1
340
「速く作る」から「正しく作る」へ ─ 生成AI時代の開発フロー改革の ロードマップと実行 ─
starfish719
0
6.2k
トークン数だけでは測れない — Claude Code 組織展開の効果検証から学んだこと
makikub
0
120
BigQuery の Cross-cloud Lakehouse への歩み
phaya72
2
540
AI活用を推進するために ファインディが下した、一つの小さな決断
starfish719
0
230
Claude Codeを組織で使いこなす— サーバサイドAIエージェント運用の実践知
techtekt
PRO
0
190
Terraformモジュールは、なぜ「魔境」化するのか
hayama17
1
180
美味しいスイスチーズを作ろう🧀🐭
taigamikami
1
230
形式手法特論:公平性制約の位相的特徴づけ #kernelvm / Kernel VM Study Kansai 12th
ytaka23
1
710
運用を見据えたAIエージェント設計実践
amacbee
1
2.4k
Platform Engineering as a Product: Criteria for Improvement and Multi-Tenant Design
kumorn5s
0
490
Gradle×GitHub_ActionsでCI時間を約50%短縮 ジョブ分割の設計と落とし穴 / Cutting CI Time by ~50% with Gradle and GitHub Actions: Job-Splitting Design and Pitfalls
takatty
0
620
Featured
See All Featured
Applied NLP in the Age of Generative AI
inesmontani
PRO
4
2.3k
The State of eCommerce SEO: How to Win in Today's Products SERPs - #SEOweek
aleyda
2
11k
Heart Work Chapter 1 - Part 1
lfama
PRO
7
36k
For a Future-Friendly Web
brad_frost
183
10k
Winning Ecommerce Organic Search in an AI Era - #searchnstuff2025
aleyda
1
2k
The Impact of AI in SEO - AI Overviews June 2024 Edition
aleyda
5
1.1k
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
194
17k
技術選定の審美眼(2025年版) / Understanding the Spiral of Technologies 2025 edition
twada
PRO
118
120k
Scaling GitHub
holman
464
140k
Site-Speed That Sticks
csswizardry
13
1.2k
What does AI have to do with Human Rights?
axbom
PRO
1
2.2k
A Soul's Torment
seathinner
6
2.9k
Transcript
Good Software Development Practices An overview of Industry Best Practices
About Me Email:
[email protected]
Twitter: @Chris_L_Ayers LinkedIn: /in/chris-l-ayers/ Blog: https://chrislayers.com/
Topics • Why? • Software Architecture • Software Development •
Testing • Deployment • Tools
Why? • Maintainability • Dependability • Efficiency • Scalability •
Usability
Why? “How does a project get to be a year
late?... One day at a time. ” -- Fred Brooks Brooks Law: "Adding manpower to a late software project makes it later!“ “No matter what the problem is, it's always a people problem.” --Gerald M. Weinberg
None
Design Patterns • Observer Pattern • Strategy Pattern • Adapter
Pattern • Builder Pattern • Singleton Pattern • Factory Pattern • Decorator Pattern
Architectures • Layered (n-tier) architecture • Event-driven architecture • Microkernel
architecture • Microservices architecture • Command and Query Responsibility Segregation • Event Sourcing
Inversion of Control & Dependency Injection • Clarity • Modularity
• Testability • Different Implementations
Cohesion • Functional • Sequential • Communicational • Temporal •
Logical • Coincidental
Coupling • Content • Common (global) • External • Control
• Stamp • Data • Uncoupled
Software Development “ If debugging is the process of removing
software bugs, then programming must be the process of putting them in. ” - Edsger Dijkstra
Source Control • Version Control System - (SVN/TFS/GIT) • Branching
/ Merging Standards • Feature Flags • Commit Message Standards • Check-in Policy • Continuous Integration
Branching Strategies Branch per Release Branch per Component
Coding
Coding Standards • Spaces vs Tabs • EditorConfig • Naming
Conventions • New Lines / Braces / Commas • Indenting • Comments • Magic Numbers
Code Reviews Does the code build? Does it run without
errors? Does it follow coding standards? Does it follow naming standards?
Testing • Frameworks • Mocks and Fakes • Unit Testing
• Integration Testing • Regression Testing • Automated UI Testing • Integration with Source Control
Continuous Integration • Automated Builds • Parameterized builds • Automated
Deploys • Repeatable deployments
Monitoring • Application Insights • Splunk • New Relic •
Retrace
Tools • Visual Studio / Eclipse / IdeaJ / Sublime
• Resharper • Linqpad / Notepad • Command Line – NodeJs / Grunt / Gulp • Browsers – Modern.IE (Microsoft VMs) • Developer Tools / Page Speed
Continuing Education • Blogs • RSS Feeds • Meetups •
Books • Articles • Training Sessions • Code Camps • Coding at home
None