From fe5eaff069e3d348d7ae8e592b6c9810129c44bf Mon Sep 17 00:00:00 2001 From: Aligheri Date: Wed, 8 Jan 2025 18:25:52 +0200 Subject: [PATCH] added personal skills --- Skills/Architecture.md | 34 +++--- Skills/Async.md | 34 +++--- Skills/Databases.md | 150 ++++++++++++------------- Skills/DotNET.md | 16 +-- Skills/JavaScript.md | 194 ++++++++++++++++---------------- Skills/NodeJS.md | 164 +++++++++++++-------------- Skills/Paradigms.md | 132 +++++++++++----------- Skills/Programming.md | 248 ++++++++++++++++++++--------------------- 8 files changed, 486 insertions(+), 486 deletions(-) diff --git a/Skills/Architecture.md b/Skills/Architecture.md index 62dac42c..da18915f 100644 --- a/Skills/Architecture.md +++ b/Skills/Architecture.md @@ -1,19 +1,19 @@ ## Architecture - Application structure - - Modularity - - Components - - Directories - - GRASP - - SOLID - - GoF patterns + - Modularity ~ + - Components * + - Directories * + - GRASP ~ + - SOLID ! + - GoF patterns ~ - CQS - Leaking abstractions - - Multiparadigm code - - Contract programming - - Platform-agnostic - - Transport-agnostic - - Framework-agnostic + - Multiparadigm code ~ + - Contract programming ~ + - Platform-agnostic ~ + - Transport-agnostic ~ + - Framework-agnostic ~ - Code coverage - Cohesion - Coupling @@ -24,19 +24,19 @@ - Flexibility - Law of Demeter (LoD) - Application architecture - - Isolation between layer + - Isolation between layer ! - Domain-specific language (DSL) - System vs applied code - Multilayer approach - Hexagonal architecture - Separation of concerns (SoC) - Metaprogramming - - Inversion of control (IoC) - - Dependency injection (DI) + - Inversion of control (IoC) * + - Dependency injection (DI) * - Clean architecture - Domain-driven design (DDD) - Pub/sub - - Message brocker + - Message brocker ~ - Agent - Service locator - Message Queue (MQ) @@ -70,7 +70,7 @@ - Solution components - Risk assessment - Non Functional Requirements (NFR) - - Clouds + - Clouds ~ - BPMN - Low-code - No-code @@ -97,4 +97,4 @@ - OLTP - Conways Law - Quality assurance - - Engineering Hygiene + - Engineering Hygiene \ No newline at end of file diff --git a/Skills/Async.md b/Skills/Async.md index 63e26c83..8447c89e 100644 --- a/Skills/Async.md +++ b/Skills/Async.md @@ -2,7 +2,7 @@ - Theory - Event loop - - `try..catch` + - try..catch - Non-blocking - Async I/O - Thread pool @@ -22,24 +22,24 @@ - Thread - Process - Async contracts - - Callbacks + - Callbacks ~ - Callback-last-error-first - Thenable - - Promise - - Async/await - - Future - - Deferred - - Sync generator - - Async Generator + - Promise ~ + - Async/await ~ + - Future ~ + - Deferred ~ + - Sync generator ~ + - Async Generator ~ - Async Iterator - - Event + - Event * - Coroutine - Goroutine - Signal - Stream - - Chain of responsibility + - Chain of responsibility ~ - Middleware - - Locks + - Locks ~ - Async adapters and utils - callbackify - promisify @@ -48,20 +48,20 @@ - Async compose - Async abstractions interfaces - EventEmitter - - Observable/Observer + - Observable/Observer ! - Readable - Writable - Transform - - Async Pool + - Async Pool ! - Async Queue - Async Collector - - Semaphore - - Mutex + - Semaphore ! + - Mutex ! - Spin Lock - JavaScript & Node.js specific - Timers - - `setImmediate` - - `nextTick` + - setImmediate + - nextTick - AbortController - AbortSignal - Promise unhandled rejection diff --git a/Skills/Databases.md b/Skills/Databases.md index c499feb1..3ebb8154 100644 --- a/Skills/Databases.md +++ b/Skills/Databases.md @@ -1,94 +1,94 @@ ## Databases - Theory and concepts - - Data types - - Performance tuning - - Migrations - - Schema versioning - - Backup and recovery - - Database scalability - - Relational databases - - Key-value store + - Data types * + - Performance tuning ~ + - Migrations * + - Schema versioning * + - Backup and recovery * + - Database scalability ~ + - Relational databases * + - Key-value store * - Tuple store - - Graph databases - - Object databases - - Column databases - - Navigational databases - - Hierarchical databases - - In-memory databases - - Inverted index + - Graph databases ~ + - Object databases ~ + - Column databases * + - Navigational databases ~ + - Hierarchical databases ~ + - In-memory databases * + - Inverted index ~ - Data control language (DCL) - - Data definition language (DDL) + - Data definition language (DDL) * - Data manipulation language (DML) - Data query language (DQL) - Relational - - Entity-Relationship Diagram + - Entity-Relationship Diagram * - Normal forms - - Indexing - - Primary keys - - Foreign keys - - Transactions + - Indexing * + - Primary keys * + - Foreign keys * + - Transactions * - Views - - Subqueries - - Stored procedures - - SQL functions + - Subqueries ~ + - Stored procedures ~ + - SQL functions * - Materialized views - - Replications - - Virtualization + - Replications ~ + - Virtualization * - SQL - - `SELECT` - - `INSERT` - - `UPDATE` - - `DELETE` - - `LIMIT` - - `OFFSET` - - `ORDER BY` - - `GROUP BY` - - `HAVING` - - `EXISTS` - - `JOIN` - - `INNER JOIN` - - `LEFT JOIN` - - `RIGHT JOIN` - - `UNION` - - `DISTINCT` - - `WHERE` - - `LIKE` - - `IN` - - `BETWEEN` - - `CREATE TABLE` - - `ALTER TABLE` - - `DROP TABLE` - - `PRIMARY KEY` - - `FOREIGN KEY` - - `CHECK` - - `DEFAULT` - - `INDEX` - - `UNIQUE` - - `GRANT` - - `REVOKE` - - `DENY` - - `EXPLAIN` + - SELECT * + - INSERT * + - UPDATE * + - DELETE * + - LIMIT * + - OFFSET * + - ORDER BY * + - GROUP BY * + - HAVING * + - EXISTS * + - JOIN * + - INNER JOIN * + - LEFT JOIN * + - RIGHT JOIN * + - UNION * + - DISTINCT * + - WHERE * + - LIKE * + - IN * + - BETWEEN * + - CREATE TABLE * + - ALTER TABLE * + - DROP TABLE * + - PRIMARY KEY * + - FOREIGN KEY * + - CHECK * + - DEFAULT * + - INDEX * + - UNIQUE * + - GRANT + - REVOKE + - DENY + - EXPLAIN - Engines - - PostgreSQL + - PostgreSQL ~* - Oracle - - MySQL - - MariaDB + - MySQL * + - MariaDB ~ - MS SQL Server - - Redis + - Redis * - Rabbit - - MongoDB - - Memcached + - MongoDB ~ + - Memcached ~ - Riak - DB2 - - SQLite - - DynamoDB - - Firebase + - SQLite ~ + - DynamoDB ~ + - Firebase ~ - Data engineering - - Data warehousing - - Business intelligence - - Big data - - Data analysis - - AI tools - - Cloud databases - - Data Visualization + - Data warehousing ~ + - Business intelligence ~ + - Big data ~ + - Data analysis ~ + - AI tools ~ + - Cloud databases ~ + - Data Visualization * \ No newline at end of file diff --git a/Skills/DotNET.md b/Skills/DotNET.md index cc2b08e2..c0945daa 100644 --- a/Skills/DotNET.md +++ b/Skills/DotNET.md @@ -1,8 +1,8 @@ ## .NET - Core Concepts and Internals - - Strengths and weaknesses of .NET - - Stateful and stateless services + - Strengths and weaknesses of .NET ~ + - Stateful and stateless services ~ - Asynchronous and synchronous programming - Task-based asynchronous pattern - Garbage collection in .NET @@ -19,7 +19,7 @@ - Middleware and pipeline configuration - Modular applications - Environment and Tools - - Command line interface (CLI) tools + - Command line interface (CLI) tools - .NET CLI - Windows Services and Linux Daemons - Hosting and Deployment models @@ -106,23 +106,23 @@ - C++ syntax and language fundamentals - Interoperability between managed (.NET) and unmanaged (native) code - Memory management in mixed environments - - `C++/CLI` syntax and usage - - Accessing .NET Framework classes in `C++` + - `C++/CLI` syntax and usage ~ + - Accessing .NET Framework classes in `C++` ~ - Writing performance-critical modules - Interfacing with native libraries and APIs - Developing custom .NET libraries in `C++` - Managing resource disposal and finalization - Creating and consuming DLLs (Dynamic Link Libraries) - Working with Windows API - - Migration of legacy `C++` code to .NET + - Migration of legacy `C++` code to .NET - Enhancing existing .NET applications with `C++/CLI` - Mobile development - .NET MAUI / Xamarin - Interoperability between managed code and iOS/Android API - Game development - - Unity + - Unity ~ - Web development - ASP.NET Core - Blazor - Razor Syntax - - RESTful API development + - RESTful API development ~ diff --git a/Skills/JavaScript.md b/Skills/JavaScript.md index 0ff8fc89..7d110e0a 100644 --- a/Skills/JavaScript.md +++ b/Skills/JavaScript.md @@ -1,122 +1,122 @@ ## JavaScript - Language - - `Object` - - `Function` - - `Boolean` - - `Number` - - `BigInt` - - `String` - - `Symbol` - - `Infinity` - - `NaN` - - `undefined` - - `null` - - `this` - - `instanceof` - - `...spread` - - `...rest` - - `typeof` - - Destructuring - - Generators - - Iterators - - Async generator - - Async iterator - - Chaining - - Optional chaining + - Object * + - Function * + - Boolean * + - Number * + - BigInt * + - String * + - Symbol * + - Infinity * + - NaN * + - undefined * + - null * + - this * + - instanceof * + - ...spread + - ...rest + - typeof * + - Destructuring ~ + - Generators ~ + - Iterators ! + - Async generator ~ + - Async iterator ~ + - Chaining ~ + - Optional chaining ~ - IIFE - Async IIFE - - `global` - - `globalThis` - - `window` - - Getters and setters - - `__proto__` - - `prototype` - - Equality operators - - Logical operators + - global * + - globalThis + - window * + - Getters and setters * + - __proto__ + - prototype * + - Equality operators * + - Logical operators * - Logical Assignment - Bitwise operators - - Ternary operator - - `void` - - `yield` - - `await` + - Ternary operator * + - void * + - yield + - await * - Template literal - Strict mode - Hoisting - - `delete` - - `in` - - `super` - - `eval` - - `static` - - `Number.parseInt` - - `Number.parseFloat` - - Property descriptors - - Sealing properties + - delete * + - in + - super ! + - eval + - static * + - Number.parseInt * + - Number.parseFloat * + - Property descriptors ~ + - Sealing properties ~ - Freezing properties - Computed properties - Instance class fields - - Static class fields - - Private class fields - - Private class methods + - Static class fields * + - Private class fields * + - Private class methods * - Statements - - `if` - - `while` - - `do..while` - - `for` - - `for..in` - - `for..of` - - `for await` - - `throw` - - `break` - - `continue` - - `import` - - `export` - - `label` - - `try..catch` - - `switch` - - `class` - - `extends` - - `with` - - `new` + - if * + - while * + - do..while * + - for * + - for..in * + - for..of ~ + - for await ~ + - throw * + - break * + - continue * + - import * + - export * + - label + - try..catch * + - switch * + - class * + - extends * + - with + - new - Functions - - Arrow function - - Async function - - Function declaration - - Function expression - - Default parameters + - Arrow function * + - Async function * + - Function declaration * + - Function expression * + - Default parameters * - Functional object - - `Function.prototype.call` - - `Function.prototype.bind` - - `Function.prototype.apply` - - `return` + - Function.prototype.call + - Function.prototype.bind + - Function.prototype.apply + - return - Data structures - - `Array` - - `Map` - - `Set` - - `WeakMap` - - `WeakSet` + - Array * + - Map ~ + - Set ~ + - WeakMap + - WeakSet - Typed arrays - Mixins - - `Object.assign` + - Object.assign - Standard classes and namespaces - - `Proxy` - - `RegExp` - - `Date` - - `Math` - - `Reflect` - - `Error` - - `Atomics` - - `JSON` - - `WeakRef` - - `FinalizationRegistry` - - `Intl` - - `Promise` - - `console` + - Proxy ~ + - RegExp + - Date + - Math + - Reflect + - Error ~ + - Atomics + - JSON * + - WeakRef + - FinalizationRegistry + - Intl + - Promise ~ + - console ~ - Timers - Infrastructure - V8 - - Node.js - - npm - - prettier + - Node.js * + - npm * + - prettier ~ - MDN - TC39 diff --git a/Skills/NodeJS.md b/Skills/NodeJS.md index bd891457..e7d08827 100644 --- a/Skills/NodeJS.md +++ b/Skills/NodeJS.md @@ -6,138 +6,138 @@ - Nonblocking I/O and blocking code - Event loop phases - Event loop microtasks and macrotasks - - Garbage collection + - Garbage collection * - Node.js LTS schedule - I/O-bound, CPU-bound, memory-bound tasks - Interactive applications (close to real-time) - Modularity, layers and dependencies - - CommonJS modules + - CommonJS modules ~ - ECMAScript modules - - Module `node:module` + - Module node:module - Caching in CJS and ESM - - Modules as singletons - - Contexts and scripts module `node:vm` - - Dependencies: `npm`, `node_modules` - - Files `package.json`, `package-lock.json` + - Modules as singletons ! + - Contexts and scripts module node:vm ~ + - Dependencies: npm, node_modules * ~ + - Files package.json, package-lock.json * - Module-based permissions model - - Isolation with modularity - - Dependency injection + - Isolation with modularity ! + - Dependency injection * - DI containers - Coupling and cohesion - Framework agnostic approach - Environment - Command line arguments - Node.js CLI - - Process-based permissions + - Process-based permissions ! - Graceful shutdown - - Clustering + - Clustering ! - Watch filesystem changes with --watch - Internal API - - Streams API - - Web Streams API - - Crypto API + - Streams API ~ + - Web Streams API ~ + - Crypto API ~ - Password hashing with crypto.scrypt - - Web Crypto API + - Web Crypto API ~ - File system API (sync and async) - - Copy folder recursively - - Worker threads - - Performance hooks + - Copy folder recursively * + - Worker threads ~ + - Performance hooks ~ - Native fetch and nodejs/undici - async_hooks - AsyncLocalStorage - AsyncResource - - Deprecated domain API + - Deprecated domain API ! - Node.js single executable - SharedArrayBuffer - - Module `node:worker_threads` - - Module `node:child_process` + - Module node:worker_threads + - Module node:child_process - MessageChannel, MessagePort - BroadcastChannel - Generating crypto random UUID - - Module `node:url` vs `new URL` - - Module `node:assert` + - Module node:url vs new URL * + - Module node:assert - Internationalization - - Blob, File, Buffer, module `node:buffer` - - Module `node:zlib` + - Blob, File, Buffer, module node:buffer * + - Module node:zlib - Network - - Endpoint throttling + - Endpoint throttling ~ - ALPN - SNI callback - - SSL certificates + - SSL certificates ~ - Protocol agnostic approach - - Fetch API + - Fetch API ! - IncomingMessage - - HTTP(S) - - TCP/SSL - - UDP + - HTTP(S) * + - TCP/SSL ! + - UDP ! - TLS - - Websocket + - Websocket * - SSE - HTTP/3 (QUIC) - Long polling - - REST + - REST * - RPC - Routing - - DoS - - DDoS - - XSS + - DoS ~ + - DDoS ! + - XSS * - Path traversal - - CSRF - - DNS - - SQL injection + - CSRF * + - DNS * + - SQL injection ! - noDelay - - keep-alive + - keep-alive ! - IP sticky sessions - Technique and tools - - Native test runner - - Logging - - Application configuring - - Testing - - CI/CD - - Readable - - Writable - - Transform - - Back pressure - - Buffer - - Console - - Inspector + - Native test runner ~ + - Logging * + - Application configuring * + - Testing * + - CI/CD ! + - Readable ~ + - Writable ~ + - Transform ~ + - Back pressure ~ + - Buffer * + - Console * + - Inspector * - Data access - - Data access layer - - Repository - - Active record - - Query builder - - Object-Relational Mapping - - CRUD - - DTO + - Data access layer * + - Repository * + - Active record ~ + - Query builder * + - Object-Relational Mapping * + - CRUD * + - DTO * - Error handling and debugging - - `Error` - - `error.cause` - - `error.code` - - `error.message` - - `error.stack` - - `Error.captureStackTrace` + - Error + - error.cause ! + - error.code + - error.message ! + - error.stack + - Error.captureStackTrace - How to avoid mixins - Uncaught exceptions - Heap dump - - Debugging tools - - Flame graph - - Memory leaks - - Resource leaks - - Data race + - Debugging tools ~ + - Flame graph ~ + - Memory leaks ! + - Resource leaks ~ + - Data race ! - Integrations and bindings - Native addons - - `C` and `C++` addons - - `Rust` addons - - `Zig` addons + - C and C++ addons + - Rust addons + - Zig addons - NAN (Native Abstractions for Node.js) - Node-API (formerly N-API) - - NAPI `C` and `C++` - - NAPI `Rust` - - NAPI `Zig` - - Webassembly `WAT` - - Webassembly `C` and `C++` - - Webassembly `Rust` - - Webassembly `Zig` - - Webassembly `AssemblyScript` - - Shared memory + - NAPI C and C++ ~ + - NAPI Rust ~ + - NAPI Zig ~ + - Webassembly WAT + - Webassembly C and C++ ~ + - Webassembly Rust ~ + - Webassembly Zig + - Webassembly AssemblyScript ~ + - Shared memory ~ - V8 binary serialization diff --git a/Skills/Paradigms.md b/Skills/Paradigms.md index 91d5f7e5..4027618d 100644 --- a/Skills/Paradigms.md +++ b/Skills/Paradigms.md @@ -1,23 +1,23 @@ ## Multi-paradigm programming - Theory - - Procedural programming + - Procedural programming ~ - Imperative programming - - Structured programming - - Non-structured programming - - Functional programming + - Structured programming ~ + - Non-structured programming ~ + - Functional programming * - Prototype-based programming - - Object-oriented programming - - Object-based programming - - Generic programming + - Object-oriented programming ! + - Object-based programming ~ + - Generic programming * - Concurrent computing - - Asynchronous programming - - Parallel programming - - Reactive programming + - Asynchronous programming * + - Parallel programming ~ + - Reactive programming ~ - Functional-reactive (FRP) - Automata-based programming - Domain-specific languages - - Multi-paradigm programming + - Multi-paradigm programming ~ - Metaprogramming - Actor model - Lambda calculus @@ -25,67 +25,67 @@ - Information hiding - Aspect-oriented programming - Anemic domain model - - Class composition + - Class composition * - OOP basics - - Constructor - - Operator `new` - - Static method - - Method - - Async method - - Getters, Setters - - Public fields - - Private fields - - Field declarations - - Inheritance - - Parent class - - Polymorphism - - Abstract class - - Interface - - Encapsulation - - Hidden class - - Object form - - Instance - - Introspection - - Reflection - - The diamond problem + - Constructor * + - Operator new * + - Static method * + - Method * + - Async method * + - Getters, Setters * + - Public fields * + - Private fields * + - Field declarations * + - Inheritance * + - Parent class * + - Polymorphism * + - Abstract class * + - Interface * + - Encapsulation * + - Hidden class * + - Object form * + - Instance * + - Introspection * + - Reflection * + - The diamond problem ~ - GRASP - Information expert - - Creator - - Controller - - Indirection + - Creator ~ + - Controller * + - Indirection ~ - Low coupling - High cohesion - Protected variations - Pure fabrication - SOLID - - Single-responsibility principle (SRP) - - Open–closed principle (OCP) - - Liskov substitution principle (LSP) - - Interface segregation principle (ISP) - - Dependency inversion principle (DIP) + - Single-responsibility principle (SRP) ! + - Open–closed principle (OCP) ! + - Liskov substitution principle (LSP) ! + - Interface segregation principle (ISP) ! + - Dependency inversion principle (DIP) ! - Patterns - - Singleton - - Factory Method - - Abstract Factory - - Adapter - - Observer - - Strategy - - Facade - - Proxy - - Chain of Responsibility - - Command - - Iterator - - State - - Bridge - - Builder - - Prototype - - Composite - - Decorator - - Flyweight - - Mediator - - Memento - - Template Method - - Visitor - - Reactor - - Active object - - Delegation + - Singleton ! + - Factory Method ! + - Abstract Factory ! + - Adapter ~ + - Observer ~ + - Strategy ~ + - Facade ~ + - Proxy ! + - Chain of Responsibility ! + - Command ~ + - Iterator ! + - State ~ + - Bridge ~ + - Builder ! + - Prototype ! + - Composite ~ + - Decorator ! + - Flyweight ~ + - Mediator ~ + - Memento ~ + - Template Method ~ + - Visitor ~ + - Reactor ~ + - Active object ~ + - Delegation ! diff --git a/Skills/Programming.md b/Skills/Programming.md index e976b503..07b84e5e 100644 --- a/Skills/Programming.md +++ b/Skills/Programming.md @@ -1,79 +1,79 @@ ## Programming fundamental concepts - Concepts - - Model - - Modeling - - Subject domain - - Algorithm - - Syntax - - Semantics - - Abstraction - - Paradigm - - Programm - - Programming paradigm - - Programming language - - Contract - - Module - - Library - - Package - - Component - - Framework - - Platform - - Source code - - Object code - - Machine code - - Microcode - - Software engineering - - Decomposition + - Model ~ + - Modeling ~ + - Subject domain ~ + - Algorithm * + - Syntax & + - Semantics ~ + - Abstraction & + - Paradigm ~ + - Programm ~ + - Programming paradigm ~ + - Programming language & + - Contract ~ + - Module ~ + - Library ! + - Package ! + - Component * + - Framework & + - Platform ! + - Source code ~ + - Object code ~ + - Machine code ~ + - Microcode ~ + - Software engineering ! + - Decomposition ~ - Control flow - Data flow - - Code reuse + - Code reuse ! - Defensive programming - Don't repeat yourself (DRY) - KISS principle - Syntax and concepts - Value - - Identifier - - Variable - - Constant - - Scalar + - Identifier & + - Variable * + - Constant * + - Scalar ~ - Literal - - Expression - - Heap - - Function - - Procedure - - Method - - Class - - Prototype - - Event - - Type - - Flag + - Expression * + - Heap + + - Function * + - Procedure * + - Method & + - Class & + - Prototype ~ + - Event ~ + - Type * + - Flag * - Lexical scope - Code block - Conditions - - Loops + - Loops * - Assignment - - Regular expression - - Interface + - Regular expression * + - Interface * - Namespaces - Call stack - Naming conventions - Coding conventions - - Camel case + - Camel case * - Snake case - Kebab case - Trailing commas - Return early - Fail-fast - Types - - Primitive types - - Reference types + - Primitive types * + - Reference types ~ - Type systems - Strong typing - Weak typing - Duck typing - - Static typing - - Dynamic typing + - Static typing * + - Dynamic typing ~ - Nominal typing - Structural typing - Explicit typing @@ -81,68 +81,68 @@ - Covariance - Contravariance - Functions - - Signature - - Argument - - Parameter + - Signature * + - Argument * + - Parameter * - Pure function - - Lambda expression - - Side effects - - Closure + - Lambda expression * + - Side effects ~ + - Closure ~ - Partial application - Currying - - Higher order - - Recursion + - Higher order ~ + - Recursion * - Tail call optimisation - - Callback + - Callback ~ - Listener - Composition - - Pipe - - Memoize - - Wrapper + - Pipe ~ + - Memoize ~ + - Wrapper ~ - Functor - Monad - Monoid - - Generator + - Generator ~ - Coroutine - Data structures - - Array - - Structure - - Record - - Enum - - Instance - - Object - - Collection - - Set - - Hash table - - Linked list + - Array ! + - Structure * + - Record ~ + - Enum ! + - Instance * + - Object ! + - Collection ! + - Set * + - Hash table * + - Linked list * - Doubly list - Unrolled list - Circular list - - Queue - - Stack - - Deque - - Tree - - Graph - - Iterator - - Mutable state - - Immutable state - - Serialization - - String parsing - - JSON - - JSON5 - - YAML + - Queue * + - Stack * + - Deque ~ + - Tree * + - Graph * + - Iterator * + - Mutable state ~ + - Immutable state ~ + - Serialization ! + - String parsing ! + - JSON ! + - JSON5 ~ + - YAML ~ - Networking - DNS - CDN - CORS - - IPv4 - - IPv6 + - IPv4 ~ + - IPv6 ~ - NAT - - URL + - URL ! - URN - - URI + - URI ~ - Process and tools - - Compiler + - Compiler ! - Just-in-time compilation - Ahead-of-time compilation - Transpiler @@ -151,50 +151,50 @@ - Interpreter - Linker - Dynamic linking - - Static linking - - Runtime - - Virtual machine + - Static linking * + - Runtime * + - Virtual machine * - Register-based VM - Stack-based VM - - Containerization - - Debugger + - Containerization * + - Debugger ! - Tracing - Garbage collection - - Refactoring - - Code review - - Exception + - Refactoring * + - Code review * + - Exception * - Unittesting - - git - - Github - - Docker + - git ! + - Github ! + - Docker ! - Kubernetes - GCC - LLVM - Antipatterns - - Magic numbers - - Hard code + - Magic numbers ! + - Hard code ! - Soft code - Cryptic code - Improbability factor - - Accidental complexity + - Accidental complexity ! - Action at a distance - Spaghetti - Silver bullet - Not invented here - - Dead code + - Dead code ~ - Unreachable code - - Duplicate code + - Duplicate code ! - Premature optimization - - Micro-optimization - - Nested loops - - Long method/function/procedure - - Long inheritance - - Large class/file - - Too many parameters - - Pass-through parameters + - Micro-optimization ~ + - Nested loops ~ + - Long method/function/procedure ! + - Long inheritance ~ + - Large class/file ! + - Too many parameters ! + - Pass-through parameters ~ - Accumulate and fire - - Use switch/case - - Temporary field + - Use switch/case * + - Temporary field * - Handle object as instances and hashes at the same time - Use fields instead of arguments - Data clump @@ -202,38 +202,38 @@ - Monkey patch - Yo-yo problem - Runtimes and virtual machines - - Bytecode + - Bytecode ! - V8 - VJM - CLR - Mono - Operating systems - Interrupts - - Drivers + - Drivers ~ - Kernel - Ring - - Virtual memory - - File system - - Linux - - Unix + - Virtual memory ~ + - File system ~ + - Linux ~ + - Unix ~ - BSD - - MacOS - - Windows + - MacOS ! + - Windows ~ - Real-time OS - Embedded OS - Standards - - ASCII + - ASCII ! - Escape sequence - RFC - IETF - IANA - IEEE - - Base64 + - Base64 ! - ECMA - ICANN - ISO - MIME - OWASP - - UTF-8 + - UTF-8 ! - W3C - ODMG