Paradigms

Programming paradigmarrow-up-right #article - Wikipedia. "Programming paradigms are a way to classify programming languagesarrow-up-right based on their features. Languages can be classified into multiple paradigms."

Aspect-Oriented Software Development

Aspect-oriented software developmentarrow-up-right #article - Wikipedia. "In computingarrow-up-right, aspect-oriented software development (AOSD) is a software development technologyarrow-up-right that seeks new modularizations of software systemsarrow-up-right in order to isolate secondary or supporting functions from the main program's business logicarrow-up-right. AOSD allows multiple concernsarrow-up-right to be expressed separately and automatically unified into working systems."

Cross-cutting concernarrow-up-right #article - Wikipedia. "In aspect-oriented software developmentarrow-up-right, cross-cutting concerns are aspectsarrow-up-right of a programarrow-up-right that affect other concernsarrow-up-right. These concerns often cannot be cleanly decomposedarrow-up-right from the rest of the system in both the design and implementation, and can result in either scattering (code duplicationarrow-up-right), tangling (significant dependencies between systems), or both."

Functional Programming

Functional programmingarrow-up-right #article - Wikipedia. "In computer sciencearrow-up-right, functional programming is a programming paradigmarrow-up-right—a style of building the structure and elements of computer programsarrow-up-right—that treats computationarrow-up-right as the evaluation of mathematical functionsarrow-up-right and avoids changing-statearrow-up-right and mutablearrow-up-right data. It is a declarative programmingarrow-up-right paradigm in that programming is done with expressionsarrow-up-right or declarations[1]arrow-up-right instead of statementsarrow-up-right. Functional code is idempotentarrow-up-right: a function's return value depends only on its argumentsarrow-up-right, so calling a function with the same value for an argument always produces the same result. This is in contrast to imperative programming where, in addition to a function's arguments, global program state can affect a function's resulting value. Eliminating side effectsarrow-up-right, that is, changes in state that do not depend on the function inputs, can make understanding a program easier, which is one of the key motivations for the development of functional programming."

Functional programming in JavaScriptarrow-up-right #playlist - "This is a collection of the videos from FunFunFunction that is specifically about functional programming in JavaScript"

Object-Oriented Programming

Composition vs. Inheritance: How to Choose?arrow-up-right #article - "As a heuristic, ‘favor composition over inheritance’ is okay, however, I am not a fan of mantrasarrow-up-right. While they often contain a kernel of truth, it is far too easy for people to hear the slogan without understanding its source or context, and thus avoid thinking for themselves - and that never turns out well."

Dependency Injection basics- Fun Fun Functionarrow-up-right #video

Dive Into Design Patternsarrow-up-right #book - "Design patterns help you solve commonly-occurring problems in software design. But you can’t just find a pattern and copy it into your program, the way you can with off-the-shelf functions or libraries. A pattern is not a specific piece of code, but a general concept for solving a particular problem. They are like pre-made blueprints that you can customize to solve a recurring design problem in your code."

Inversion of Control - Fun Fun Functionarrow-up-right #video

Refactoring From Inheritance To Composition To Dataarrow-up-right #article - "“Prefer composition over inheritance”arrow-up-right is a popular saying amongst programmers. In this article, I want to demonstrate what that looks like."

Last updated