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
60
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
130
Devops is more than a Title
cayers
0
350
Automate Azure DevOps
cayers
0
340
ASP.Net Core - Shift Left and Start Out Right
cayers
0
190
Application Insights
cayers
0
180
Dependency Injection & Unit Testing
cayers
0
130
Other Decks in Technology
See All in Technology
高速なプロダクト開発を実現、創業期から掲げるエンタープライズアーキテクチャ
kawauso
2
8.5k
AWS認定を取る中で感じたこと
siromi
1
180
赤煉瓦倉庫勉強会「Databricksを選んだ理由と、絶賛真っ只中のデータ基盤移行体験記」
ivry_presentationmaterials
2
340
AI導入の理想と現実~コストと浸透〜
oprstchn
0
190
Beyond Kaniko: Navigating Unprivileged Container Image Creation
f30
0
130
開発生産性を組織全体の「生産性」へ! 部門間連携の壁を越える実践的ステップ
sudo5in5k
2
6.4k
生成AI開発案件におけるClineの業務活用事例とTips
shinya337
0
240
モバイル界のMCPを考える
naoto33
0
430
LangChain Interrupt & LangChain Ambassadors meetingレポート
os1ma
2
290
Glacierだからってコストあきらめてない? / JAWS Meet Glacier Cost
taishin
1
160
United airlines®️ USA Contact Numbers: Complete 2025 Support Guide
unitedflyhelp
0
140
MobileActOsaka_250704.pdf
akaitadaaki
0
110
Featured
See All Featured
RailsConf 2023
tenderlove
30
1.1k
Thoughts on Productivity
jonyablonski
69
4.7k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
32
2.4k
Navigating Team Friction
lara
187
15k
Automating Front-end Workflow
addyosmani
1370
200k
Dealing with People You Can't Stand - Big Design 2015
cassininazir
367
26k
The Art of Programming - Codeland 2020
erikaheidi
54
13k
Docker and Python
trallard
44
3.5k
YesSQL, Process and Tooling at Scale
rocio
173
14k
Designing Dashboards & Data Visualisations in Web Apps
destraynor
231
53k
The Power of CSS Pseudo Elements
geoffreycrofte
77
5.8k
Bash Introduction
62gerente
613
210k
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