Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
Good Software Practices
Search
Chris Ayers
October 20, 2018
Technology
110
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
190
Devops is more than a Title
cayers
0
440
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
SAENM ~Jupyterで残すPoCの試行錯誤、未来の自分と仲間を助ける記録!~
terapyon
0
170
【データ横丁主催】AI エージェント時代のTranslytical Data Platform
shisyu_gaku
0
220
顧客価値を追いかけたら、プライシングにたどり着いた
sansantech
PRO
2
400
アカウント統制の健康診断
kenichinakamura
1
120
Metadata - Section 2: Simple Metadata & Meta Tags
mohab1
0
110
AI駆動開発におけるハーネスエンジニアリングの勘所
tsukuboshi
1
490
「エーアイ」をバズワードにしないために RPA 導入経験と Kiro 上での Claude モデル利用経験から
kazzpapa3
0
110
ウォンテッドリーの最近のプロダクトと技術の紹介
stomk
0
330
アウトプット初心者、半年間のふりかえり
4o1sobblue
0
470
局所最適は悪ではない。壊れているのは指標です。量と質を同時に見る先行指標の設計
recruitengineers
PRO
2
270
Optunaの最新リリースv5.0について
pfn
PRO
0
140
FinOps Agentが生んだ技術負債:コスト自動調査の落とし穴と解消までの道のり
oasis1994liveforever
3
250
Featured
See All Featured
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
37
6.6k
Evolving SEO for Evolving Search Engines
ryanjones
0
330
How to audit for AI Accessibility on your Front & Back End
davetheseo
0
610
Faster Mobile Websites
deanohume
310
32k
Paper Plane
katiecoart
PRO
5
54k
Ruling the World: When Life Gets Gamed
codingconduct
0
410
Done Done
chrislema
187
17k
From π to Pie charts
rasagy
1
400
Testing 201, or: Great Expectations
jmmastey
46
8.3k
Learning to Love Humans: Emotional Interface Design
aarron
275
41k
Reality Check: Gamification 10 Years Later
codingconduct
0
2.3k
HDC tutorial
michielstock
2
970
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