Catalog / Essential Development Tools & Concepts Cheatsheet
Essential Development Tools & Concepts Cheatsheet
A concise reference to key tools and concepts in modern software development, aiding in efficiency and best practices.
Version Control with Git
Basic Git Commands
|
Initializes a new Git repository. |
|
Clones a repository from a URL. |
|
Adds a file to the staging area. |
|
Commits changes with a descriptive message. |
|
Pushes local commits to a remote repository. |
|
Pulls changes from a remote repository. |
|
Shows the status of the working directory. |
|
Lists all local branches. |
|
Switches to the specified branch. |
Branching and Merging
|
Creates a new branch. |
|
Creates and switches to a new branch. |
|
Merges the specified branch into the current branch. |
|
Shows the commit history. |
|
Shows changes between commits, branches, etc. |
Undoing Changes
|
Creates a new commit that undoes the changes made in the specified commit. |
|
Unstages a file from the staging area. |
|
Discards changes in the working directory. |
Containerization with Docker
Basic Docker Commands
|
Builds a Docker image from a Dockerfile. |
|
Runs a container from an image. |
|
Lists running containers. |
|
Stops a running container. |
|
Removes a stopped container. |
|
Lists all available Docker images. |
|
Removes a Docker image. |
Docker Compose
|
Builds, (re)creates, starts, and attaches to containers defined in a |
|
Stops and removes containers, networks, volumes, and images defined in a |
|
Lists the containers managed by Docker Compose. |
Dockerfile Instructions
|
Specifies the base image for the Docker image. |
|
Executes a command during the image build process. |
|
Copies files or directories from the host to the container. |
|
Sets the working directory for subsequent instructions. |
|
Exposes a port for network traffic. |
|
Specifies the default command to run when the container starts. |
Continuous Integration/Continuous Deployment (CI/CD)
Key Concepts
Continuous Integration (CI): Automates the integration of code changes from multiple developers into a shared repository. It involves automated testing to detect integration errors early. |
Continuous Deployment (CD): Automates the release of code changes to production or staging environments. It extends CI by automatically deploying all code changes that pass the automated tests. |
Continuous Delivery: Similar to Continuous Deployment, but requires manual approval for deployment to production. Automates the steps up to the production deployment. |
Common CI/CD Tools
Jenkins |
An open-source automation server that supports building, testing, and deploying software. |
GitLab CI |
Integrated CI/CD pipeline within GitLab for automated building, testing, and deployment. |
GitHub Actions |
Automates software workflows directly in your GitHub repository. |
CircleCI |
A cloud-based CI/CD platform that automates the build, test, and deployment process. |
Travis CI |
A cloud-based CI service used for building and testing software projects hosted on GitHub and Bitbucket. |
Pipeline Stages
Typical CI/CD pipelines include stages like:
|
Code Quality and Linters
Code Quality Metrics
|
Linters and Code Analysis Tools
ESLint |
A linter for JavaScript and JSX. |
Stylelint |
A linter for CSS and SCSS. |
SonarQube |
A platform for continuous inspection of code quality. |
PMD |
A source code analyzer for Java, JavaScript, and other languages. |
Checkstyle |
A tool for checking Java code style. |
Benefits of Using Linters
|