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
0
65
Good Software Practices
A discussion of good software practices across a range of topics.
Chris Ayers
October 20, 2018
Tweet
Share
More Decks by Chris Ayers
See All by Chris Ayers
DevOps and Cloud Days - DevOvs is More than Dev and Ops
cayers
0
120
Dependency Injection and Unit Testing in .Net Core
cayers
0
140
Devops is more than a Title
cayers
0
360
Automate Azure DevOps
cayers
0
350
ASP.Net Core - Shift Left and Start Out Right
cayers
0
200
Application Insights
cayers
0
180
Dependency Injection & Unit Testing
cayers
0
140
Other Decks in Technology
See All in Technology
Oracle Base Database Service 技術詳細
oracle4engineer
PRO
11
77k
Geospatialの世界最前線を探る [2025年版]
dayjournal
3
470
LLMアプリケーション開発におけるセキュリティリスクと対策 / LLM Application Security
flatt_security
7
1.7k
Function calling機能をPLaMo2に実装するには / PFN LLMセミナー
pfn
PRO
0
830
Azure Well-Architected Framework入門
tomokusaba
0
200
業務自動化プラットフォーム Google Agentspace に入門してみる #devio2025
maroon1st
0
180
FastAPIの魔法をgRPC/Connect RPCへ
monotaro
PRO
1
680
生成AIを活用したZennの取り組み事例
ryosukeigarashi
0
190
研究開発部メンバーの働き⽅ / Sansan R&D Profile
sansan33
PRO
3
20k
#普通の文系サラリーマンチャレンジ 自分でアプリ開発と電子工作を続けたら人生が変わった
tatsuya1970
0
920
AWSにおけるTrend Vision Oneの効果について
shimak
0
110
履歴 on Rails: Bitemporal Data Modelで実現する履歴管理/history-on-rails-with-bitemporal-data-model
hypermkt
0
2k
Featured
See All Featured
Done Done
chrislema
185
16k
Rebuilding a faster, lazier Slack
samanthasiow
84
9.2k
How STYLIGHT went responsive
nonsquared
100
5.8k
Scaling GitHub
holman
463
140k
Fantastic passwords and where to find them - at NoRuKo
philnash
52
3.4k
Gamification - CAS2011
davidbonilla
81
5.5k
Context Engineering - Making Every Token Count
addyosmani
4
170
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
127
53k
Principles of Awesome APIs and How to Build Them.
keavy
127
17k
Product Roadmaps are Hard
iamctodd
PRO
54
11k
Agile that works and the tools we love
rasmusluckow
331
21k
Building Flexible Design Systems
yeseniaperezcruz
329
39k
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