Software Development Methods & Practices - p-patel/software-engineer-knowledge-base GitHub Wiki
Common development principles
- DRY
- KISS
SOLID principles
- SOLID principles explained
- Dependency injection
- Composition root
- Stateless object graph (utility/helper classes)
- Your object graphs should be stateless, and runtime data should be passed through an existing object graph using method calls.
- https://dzone.com/articles/stateful-or-stateless-classes
- Stateless object graph (utility/helper classes)
- read 'Dependency Injection in .NET' by Mark Seemann
- Composition root
Inversion of Control (IoC) framework
- callbacks, events, dependency injection
DDD design principles
Unit & integration testing, TDD/BDD
The Joel test
Design patterns
- Creational
- ...
- Structural
- ...
- Behavioural
- ...
- Unit of Work
Code smells
Building reusable libraries/frameworks vs. an application
TDD
- read The Art of Unit Testing: with examples in C# by Roy Osherove
- Code coverage
Agile methods
- agile games
Continuous integration
- Git
- https://github.com/erlang/otp/wiki/Writing-good-commit-messages
- pull requests
- managing dependencies
- https://andrey.nering.com.br/2016/git-submodules-vs-subtrees/
- submodules
- complicates dev workflow e.g. pull request
- https://www.atlassian.com/blog/archives/git-submodules
- https://git-scm.com/book/en/v2/Git-Tools-Submodules
- https://www.atlassian.com/blog/git/git-submodules-workflows-tips
- https://codingkilledthecat.wordpress.com/2012/04/28/why-your-company-shouldnt-use-git-submodules/
- subtrees
- unchanged dev workflow
- https://gist.github.com/jorotenev/76787a53107e971a7c75bcfaee64cf15
- https://www.atlassian.com/blog/git/alternatives-to-git-submodule-git-subtree
- https://developer.atlassian.com/blog/2015/05/the-power-of-git-subtree/
- https://medium.engineering/how-we-modularized-mediums-ios-codebase-8f8f26965c76
- https://medium.com/@v/git-subtrees-a-tutorial-6ff568381844
- http://johnatten.com/2013/03/16/managing-nested-libraries-using-the-git-subtree-merge-workflow/
- nuget packages
- Bitbucket
- VS Team Services
-
https://www.appliedis.com/video-build-a-devops-cicd-pipeline-in-under-an-hour-with-vsts/
-
https://www.youtube.com/watch?v=U1yU0rt6ih0&index=3&list=PLl9PFwBth8dkUs1NYMaF_FGBlPPqeePBJ
-
build
- bower?
- sonarqube
- build docker image
- docker images - docker hub / azure container registry
- push docker image
-
release
- deploy docker image
-
- GitHub, Jenkins, Octopus Deploy, Packer, Terraform, Artifactory and Ansible, Puppet
Productivity & Quality
- sublime text editor
- code snippets (in VS.NET and Atom)
- prettify
- set up eslint config file - airbnb, prettier