project example for the Engage Forward training program.
- Angular 1 & 2
- Webpack (manages assets and versions built)
- Ionic 2
- Node.js
- MongoDB
- Firebase
- Bootstrap & Material Design
- React.js
- RXJS
- NPM
- TypeScript
- SCSS
- HTML
- Model View Controller (MVC)
- Singletons
- Decorator
- Adapter
- Publish/Subscribe or Observer
- Classes and Abstractions
- Don't Repeat Yourself (DRY)
- aimed at reducing repetition of information of all kinds, especially useful in multi-tier architectures.
- Single Responsibility Princple
- states that every module or class should have responsibility over a single part of the functionality provided by the software, and that responsibility should be entirely encapsulated by the class.
- Separation of Concerns
- design principle for separating a computer program into distinct sections, such that each section addresses a separate concern. A concern is a set of information that affects the code of a computer program.
- Minimize Coupling
- Prevent the amount of dependencies on a module of code.
- Maximize Cohesion
- Code that has similar functionality should be found within the same component.
- Embrace Change
- Software Development is always changing and growing so keep up or be left behind.
A programming paradigm is a style or “way” of programming. Some languages make it easy to write in some paradigms but not others.
- Functional
- a style of building the structure and elements of computer programs—that treats computation as the evaluation of mathematical functions and avoids changing-state and mutable data.
- Object-Oriented
- based on the concept of "objects", which may contain data, in the form of fields, often known as attributes; and code, in the form of procedures, often known as methods.