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
Chris Ayers
October 20, 2018
Technology
98
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
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
170
Dependency Injection and Unit Testing in .Net Core
cayers
0
180
Devops is more than a Title
cayers
0
430
Automate Azure DevOps
cayers
0
420
ASP.Net Core - Shift Left and Start Out Right
cayers
0
240
Application Insights
cayers
0
230
Dependency Injection & Unit Testing
cayers
0
190
Other Decks in Technology
See All in Technology
Sony-DroidKaigi2026
sony
1
320
Bet AI Day 2026丨Production-Ready AI Agents — エンタープライズの実務を任せるための設計と運用
layerx
PRO
3
2.5k
KPIだけでは評価できないプロダクトが考えるべき Evalsという第二の評価系 / Beyond KPIs: Evals as a Second Evaluation Framework for Products #PdEConf
aki_iinuma
4
3.7k
いま、生成AIにKaggleをどこまで 任せられるか — ROGIIコンペでの進め方とTips
k951286
3
1.4k
Bet AI Day 2026丨バクラク Autopilot、業務システムの再設計
layerx
PRO
2
1.6k
[DroidKaigi 2026] Making UI specifications visible: Android UI development in the AI agent era supported by Compose Screenshot Testing and galleries
syarihu
0
590
DINO-EdgeQuery:Edge-First Polygon Decoding for Building Footprint Extraction from Satellite Imagery
lehupa
0
160
Bet AI Day 2026丨How We Bet AI: AIとともに働く場をつくる
layerx
PRO
2
2.7k
現場に行くだけでは足りない——プロダクトエンジニアが業務の流れを捉える観点と、その鍛え方
takumiengineering
0
310
Bet AI Day 2026丨AIを「使う」から、AIが「働く」へ ― LayerXが進める「組織AI」の社会実装
layerx
PRO
3
2.7k
Driving AI Adoption Using In-House GPUs to Serve Qwen
po3rin
2
460
その指示、Bobにしっかり伝わってる?初心者でも即実践できる プロンプト/コンテキスト設計のコツ
muehara
1
200
Featured
See All Featured
The Curious Case for Waylosing
cassininazir
1
500
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
31
3.4k
Product Roadmaps are Hard
iamctodd
55
13k
SEO Brein meetup: CTRL+C is not how to scale international SEO
lindahogenes
1
2.9k
Speed Design
sergeychernyshev
33
2.1k
We Are The Robots
honzajavorek
0
340
Navigating Team Friction
lara
192
16k
BBQ
matthewcrist
89
10k
SEO in 2025: How to Prepare for the Future of Search
ipullrank
3
3.8k
Impact Scores and Hybrid Strategies: The future of link building
tamaranovitovic
0
430
Marketing Yourself as an Engineer | Alaka | Gurzu
gurzu
0
290
Why Your Marketing Sucks and What You Can Do About It - Sophie Logan
marketingsoph
0
400
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