An open API service indexing awesome lists of open source software.

https://github.com/selenesoftware/engineering_practices

Practices and Principles to develop software
https://github.com/selenesoftware/engineering_practices

Last synced: 3 months ago
JSON representation

Practices and Principles to develop software

Awesome Lists containing this project

README

          

# Engineering Practices
Practices and Principles to develop software

## Description
In order to develop better software, certian principles are followed for stronger and secure applications. This is a curated list of accepted principles and practices for Selene Software, and any others who wish to follow, to follow when developing new software.

## General Principles
These are to be followed for all application development.

### SOLID Principles
* Single Responsibility Principle
- An object should do just one thing, and do it well.
* Open/Closed Principle
- A class should be open for extension, but closed for modification
* Liskov Substitution Principle
- Objects in a program should be replaceable with instances of their subtypes without altering the correctness of that program
- "If it looks like a duck, quacks like a duck, but runs on batteries, it's most likely not a duck."
* Interface Segregation Principle
- Many client-specific interfaces are better than one general-purpose interface
* Dependency Inversion Principle
- Depend upon Abstractions. Do not depend upon concretions.

### DRY Practices
* Don't
* Repeat
* Yourself

### KISS
* Keep
* It
* Simple
* Stupid

### Principles of Chaos Engineering
[http://principlesofchaos.org/]

## Web Development
These are geared towards web development, with some language-spefic standards included.

### PHP-FIG Standards
* [http://php-fig.org]