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
43
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
100
Dependency Injection and Unit Testing in .Net Core
cayers
0
110
Devops is more than a Title
cayers
0
320
Automate Azure DevOps
cayers
0
290
ASP.Net Core - Shift Left and Start Out Right
cayers
0
170
Application Insights
cayers
0
140
Dependency Injection & Unit Testing
cayers
0
110
Other Decks in Technology
See All in Technology
Postman Vault を使った秘密情報の安全な管理
nagix
0
120
組織貢献をするフリーランスエンジニアという生き方
n_takehata
1
350
Platform Engineeringは自由のめまい
nwiizo
3
1.5k
技術負債の「予兆検知」と「状況異変」のススメ / Technology Dept
i35_267
1
950
Active Directory の保護
eurekaberry
7
3.9k
DeepSeek on AWS
hariby
1
210
Data-centric AI入門第6章:Data-centric AIの実践例
x_ttyszk
1
340
君はPostScriptなウィンドウシステム 「NeWS」をご存知か?/sunnews
koyhoge
0
710
偶然 × 行動で人生の可能性を広げよう / Serendipity × Action: Discover Your Possibilities
ar_tama
1
220
君も受託系GISエンジニアにならないか
sudataka
0
290
Developer Summit 2025 [14-D-1] Yuki Hattori
yuhattor
17
3.4k
Classmethod AI Talks(CATs) #15 司会進行スライド(2025.02.06) / classmethod-ai-talks-aka-cats_moderator-slides_vol15_2025-02-06
shinyaa31
0
160
Featured
See All Featured
Making Projects Easy
brettharned
116
6k
Git: the NoSQL Database
bkeepers
PRO
427
64k
Unsuck your backbone
ammeep
669
57k
Scaling GitHub
holman
459
140k
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
29
2.4k
Keith and Marios Guide to Fast Websites
keithpitt
410
22k
Faster Mobile Websites
deanohume
306
31k
Rebuilding a faster, lazier Slack
samanthasiow
79
8.8k
What's in a price? How to price your products and services
michaelherold
244
12k
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
330
21k
The Cost Of JavaScript in 2023
addyosmani
47
7.3k
The Myth of the Modular Monolith - Day 2 Keynote - Rails World 2024
eileencodes
20
2.4k
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