Nathan's Brain
  • Introduction
  • Incubator
  • American Sign Language
  • Art
  • Behavior Change
    • Akrasia
      • Beeminder
      • Procrastination
  • Career
  • Civil Discourse
  • Communication
  • Computer Science
    • Artificial Intelligence
  • Creativity
    • Writing
  • Design
    • Color
    • Design Process
    • Stock
    • Web Design
  • Economics
  • Engineering
  • Entrepreneurship
    • Customer Development
    • Marketing
      • Newsletter Publishing
    • Pricing
  • Environment
    • Energy
    • Transportation
  • Failure & Vulnerability
  • Freelancing
    • Estimating
  • Futurism
  • Governance & Politics
    • Representation & Voting
  • Health
  • Humane Tech
    • Phone Usage
  • Infotainment
  • Linguistics
  • Minimalism
  • Personal Finance
    • FIRE Movement
    • Investing
  • Productivity
    • Attention Management
    • Audio for Focus
    • Automation
    • Task Management
    • Time Management
  • Programming Languages
    • JavaScript
      • Snippets
    • PHP
    • Python
      • Development Environments
      • Package Management & Distribution
  • Psychology
  • Quantified Self
    • Experience Sampling Method
  • Rationality
    • Bayes' Theorem
    • Cognitive Biases
  • Religion
    • Adventism
  • Remote Work
  • Research
    • Note Taking
  • Science
  • Self-Study
    • Accessibility & Usability
    • Algorithms
    • Artificial Intelligence
    • Cryptography
    • Data Science
    • Design Patterns
    • Freelancing
    • Functional Programming
    • Game Development
    • Graphic Design
    • Grid Layout
    • Microservices
    • PWAs
    • SaaS
    • Software Craft
    • Software Management
    • Statistics
    • SVG
    • UI Design
    • Web Animation
  • Software Development
    • API Design
    • Collaboration
    • Command Line
    • git
    • Integrated Development Environments
    • Knoxville Scene
    • Paradigms
    • Refactoring
    • Self-Care
    • Testing
  • Technology History
    • People
    • Timeline
  • Web Development
    • Accessibility & Usability
    • APIs
    • Browsers
    • Content Management Systems
    • CSS
    • Email
    • Frameworks
      • React
    • Libraries
    • No Code & Low Code
    • Performance
    • Serverless
    • Static Sites
    • Testing
    • Twig
    • Type
Powered by GitBook
On this page
  • Aspect-Oriented Software Development
  • Functional Programming
  • Object-Oriented Programming
  1. Software Development

Paradigms

PreviousKnoxville SceneNextRefactoring

Last updated 5 years ago

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

Aspect-Oriented Software Development

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

#article - Wikipedia. "In , cross-cutting concerns are of a that affect other . These concerns often cannot be cleanly from the rest of the system in both the design and implementation, and can result in either scattering (), tangling (significant dependencies between systems), or both."

Functional Programming

#article - Wikipedia. "In , functional programming is a —a style of building the structure and elements of —that treats as the evaluation of and avoids changing- and data. It is a paradigm in that programming is done with or declarations instead of . Functional code is : a function's return value depends only on its , 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 , 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."

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

Object-Oriented Programming

#article - "As a heuristic, ‘favor composition over inheritance’ is okay, however, I am . 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."

#video

#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."

#video

#article - " is a popular saying amongst programmers. In this article, I want to demonstrate what that looks like."

Programming paradigm
programming languages
Aspect-oriented software development
computing
software development technology
software systems
business logic
concerns
Cross-cutting concern
aspect-oriented software development
aspects
program
concerns
decomposed
code duplication
Functional programming
computer science
programming paradigm
computer programs
computation
mathematical functions
state
mutable
declarative programming
expressions
[1]
statements
idempotent
arguments
side effects
Functional programming in JavaScript
Composition vs. Inheritance: How to Choose?
not a fan of mantras
Dependency Injection basics- Fun Fun Function
Dive Into Design Patterns
Inversion of Control - Fun Fun Function
Refactoring From Inheritance To Composition To Data
“Prefer composition over inheritance”