🧱 Software Engineering Hierarchy β€” Paradigma, Pola, dan Tahapan dari Kode ke Produksi

Software engineering bukan cuma "menulis kode". Ia adalah 8 lapisan disiplin dari algoritma (matematis murni) sampai observability production (real-world feedback). Catatan ini memetakan evolusi dari pemikiran prosedural dewiketu (1960-an) sampai AI-assisted coding agentic (2026), dengan setiap lapisan dijelaskan: kapan muncul, trade-off, tools, dan kapan memilihnya. Ini adalah "peta industri" yang tidak ada di catatan manapun di vault SE.


Daftar Isi

  1. 1. Premise β€” Mengapa SE Bukan Hanya Kode
  2. 2. Eight-Layer SE Hierarchy
  3. 3. Layer 0 β€” Algorithmic Foundation (Pure Math)
  4. 4. Layer 1 β€” Programming Paradigm
  5. 5. Layer 2 β€” Language & Runtime
  6. 6. Layer 3 β€” Design Pattern
  7. 7. Layer 4 β€” Architecture Style
  8. 8. Layer 5 β€” Engineering Process (Methodology)
  9. 9. Layer 6 β€” Quality Engineering (Testing + Review)
  10. 10. Layer 7 β€” Production Operations (DevOps/Platform)
  11. 11. Layer 8 β€” AI-Assisted Engineering
  12. 12. Timeline 1960-2026 β€” Evolusi Paradigma
  13. 13. Trade-off Matrix per Paradigm
  14. 14. Cross-Reference ke Vault
  15. References

1. Premise β€” Mengapa SE Bukan Hanya Kode

Kode hanyalah manifestasi terakhir dari 8 lapisan keputusan:

[Coding]   ← apa yang ditulis developer
[Pattern]  ← bagaimana struktur kelas/modul
[Arch]     ← bagaimana service/component tersusun
[Process]  ← bagaimana tim berkolaborasi
[Quality]  ← bagaimana kita yakini benar
[Ops]      ← bagaimana jalan di production
[AI-Assist]← bagaimana AI bantu tiap lapisan
[Lang]     ← bahasa apa
[Paradigm]← model komputasi apa
[Algo]     ← matematika di bawahnya

Setiap lapisan punya evolusi sendiri β€” dan salah satu bisa jadi bottleneck:

  • Algoritma terbaik tapi paradigm-nya salah = nggak scalable
  • Paradigm ideal tapi pattern-nya nggak diterapkan = spaghetti
  • Pattern clean tapi arch-nya monolith = deployment nightmare
  • Arch modern tapi process-nya chaotic = merge hell

Catatan ini memetakan setiap lapisan dalam satu diagram, dengan trade-off matrix, dan cross-link ke catatan vault SE.


2. Eight-Layer SE Hierarchy

2.1 Definisi Setiap Layer

#LayerFungsiFailure Mode Tipikal
0AlgorithmicSolusi matematis murniAlgoritma salah asymptotic
1ParadigmModel komputasi (imperatif/fungsional/logika)Salah paradigm = skalabilitas hilang
2Language & RuntimeBahasa konkret + ecosystemBahasa tepat tapi library salah
3Design PatternSolusi template untuk masalah berulangPattern over-applied = over-engineering
4Architecture StyleStruktur top-level serviceArchitecture mismatch dengan tim size
5ProcessMetodologi tim (Waterfall β†’ Agile β†’ DevOps)Process overhead besar, output kecil
6Quality EngineeringTesting, code review, QATest pyramid terbalik = coverage rendah
7OperationsCI/CD, observability, on-callDeploy failure, alert fatigue
8AI-Assisted EngineeringLLM-powered tools, agentsAI-generated spaghetti dependency

2.2 Dependency Direction

        Layer 8 (AI-Assist)  ← bantuan di SEMUA layer
        Layer 7 (Ops)        ← produksi observability
        Layer 6 (Quality)    ← verifikasi
        Layer 5 (Process)    ← koordinasi
        Layer 4 (Arch)       ← struktur
        Layer 3 (Pattern)    ← template
        Layer 2 (Lang)       ← ekspresi
        Layer 1 (Paradigm)   ← model
        Layer 0 (Algo)       ← matematika

Prinsip penting: Lapisan bawah memberi BATAS (kalon semantik), lapisan atas memberi BATAS LAIN (tim, ekosistem). Pilih bahasa tanpa paradigma benar = sia-sia. Pilih paradigm tanpa algoritma benar = sia-sia.


3. Layer 0 β€” Algorithmic Foundation (Pure Math)

Matematika murni β€” analisis kompleksitas, struktur data, teori graf, calculus of variations.

3.1 Komponen

KomponenContohPenting Karena
Asymptotic AnalysisO, Ω, Θ notationBandingkan algoritma independent dari hardware
Struktur DataHash maps, B-trees, segment trees, LSM, bloom filters, ropesPilih struktur = 10-1000Γ— speedup
AlgoritmaSort, search, graph, DP, greedy, divide-and-conquerLibrary implementasi yang baik
Teori BilanganModular arithmetic, primality testingKriptografi
Teori ProbabilitasExpected value, Markov, BayesianML, performance modeling
Teori GrafCentrality, shortest path, spanning treeNetwork, social graph, dependency
CalculusDerivative, gradient, optimizationML training

3.2 Big-O Ranges yang Penting

KompleksitasNamaScaleCocok untuk
O(1)Konstanhashtable lookupCache, hash join
O(log n)LogaritmikBST, B-tree, binary searchSorted array, balanced tree
O(√n)Sub-linearSieven ≀ 10^7
O(n)Linearscan, simple searchUntungnya processor-bound
O(n log n)Lin-logquicksort, mergesort, FFTGeneral purpose sort
O(nΒ²)Kuadratikbubble sort, naive string matchn ≀ 10^3
O(n^k)Polinomialnaive matrix multn ≀ 10^2
O(2^n)Eksponensialsubset sum, brute crypton ≀ 20
O(n!)Faktorialtraveling salesman naiven ≀ 10

Koneksi ke Vault:


4. Layer 1 β€” Programming Paradigm

Cara kita memodelkan komputasi β€” menentukan bagaimana solusi diekspresikan.

4.1 Empat Paradigma Klasik

ParadigmIntiBahasa KhasUse Case
Imperatif (Procedural)Langkah demi langkah, mutasi stateC, Pascal, FortranOS kernel, embedded
Object-Oriented (OOP)Kelas + objek + inheritance + polymorphismJava, C#, C++, PythonAplikasi enterprise besar
Functional (FP)Pure functions, no mutable stateHaskell, Clojure, Erlang, F#Concurrent systems, data pipelines
LogicDefinisi fakta + rules β†’ inferensiProlog, Datalog, MercuryAI, knowledge base, rule engine

4.2 Paradigma Modern

ParadigmTahunIntiBahasa
Reactive2010Stream processing, back-pressureRxJS, RxJava, Reactive Streams
Dataflow2012Computation graph, asyncApache Beam, TensorFlow graphs
Actor Model1973-2020Message-passing concurrencyErlang, Akka (Scala), Elixir
Capability-based2010sToken/pass-based securityRWKV, capability-secure languages
Array-first2020Numpy/Julia-style vectorized opsJulia, MATLAB
Probabilistic2015Bayesian inference built-inGen.jl, Turing.jl, Pyro
Effect-typed2020sCompile-tracked effects (IO, state, error)Koka, Eff, Roc

4.3 Polyglot & Multi-paradigm

Realitanya, hampir semua bahasa modern adalah multi-paradigm:

  • Python: OOP + procedural + functional (librari) + array-first (numpy)
  • Rust: OOP-like + functional (closures, immutability) + ownership
  • C++: OOP + procedural + functional (lambdas) + template metaprogramming
  • Scala: OOP + functional (collectivist style)

Kapan pilih paradigma?

  • High-frequency trading β†’ FP (immutability = race-free)
  • Game engine β†’ OOP (entity component) atau ECS
  • ML research β†’ Array-first (Julia) atau Python+NumPy
  • Distributed systems β†’ Actor (Erlang) atau Reactive (Akka)
  • OS kernel β†’ Imperatif (C)
  • Data pipeline β†’ Dataflow (Beam)

Koneksi ke Vault:


5. Layer 2 β€” Language & Runtime

Bahasa konkret β€” sintaks, type system, memory model, runtime.

5.1 Klasifikasi Bahasa

GenerasiKarakteristikContoh
1GLMachine codebiner
2GLAssemblyx86, ARM, RISC-V
3GLHigh-level proseduralC, Pascal, Fortran
4GLDomain-specificSQL, R, SAS, MATLAB
5GLLogic-basedProlog
6GLVisual/AI-assistedScratch, MIT App Inventor

5.2 Type System

Type SystemBahasa ContohTrade-off
Static strongRust, Java, C#, TypeScript, HaskellCompile-time safety, less friction runtime
Static weakC, C++Powerful tapi undefined behavior
Dynamic strongPython, Ruby, ErlangExpressive, runtime errors
Dynamic weakJavaScript, PHPEkstrem permisif, surprise hidden
GradualTypeScript, Python (typing)Best of both, transisi mulus
Linear (Rust)RustMemori aman, belajar susah
DependentIdris, Lean, CoqProve-correct, learning curve extreme
EffectKoka, RocCompile-track IO/state/error

5.3 Runtime Model

ModelBahasaKarakteristik
Compiled to nativeC, C++, Rust, GoFast startup, no runtime needed
Compiled to bytecode + VMJava, C#, ScalaJIT optimization, GC
InterpretedPython, Ruby, PerlDynamic, slower startup
JIT all-the-wayJulia (via LLVM), LuaJITFast ramp up
TranspiledTypeScript→JS, Kotlin→nativeMulti-target output
WebAssemblyRust/C++β†’WasmUniversal runtime (browser, server, embedded)
Native interactiveLisp, SmalltalkModify running program

Koneksi ke Vault:


6. Layer 3 β€” Design Pattern

Solusi template untuk masalah yang berulang β€” Gang of Four dan seterusnya.

6.1 GoF (Gang of Four) Original

KategoriPattern
CreationalSingleton, Factory, Abstract Factory, Builder, Prototype
StructuralAdapter, Bridge, Composite, Decorator, Facade, Flyweight, Proxy
BehavioralChain of Responsibility, Command, Iterator, Mediator, Memento, Observer, State, Strategy, Template, Visitor

6.2 Pattern Modern

PatternUse CaseBahasa Khas
Dependency InjectionLoose coupling frameworkJava (Spring), C# (.NET), Kotlin
RepositoryData access abstractionEnterprise OOP
Service LocatorLate bindingJava
MiddlewareRequest pipelineExpress, Gin, FastAPI
Pub-SubLoose-coupled eventKafka, RabbitMQ
CQRSSeparate read/write modelEvent-sourced systems
SagaDistributed transactionMicroservices
OutboxReliable event publishEvent-driven architecture
Strangler FigMigrasi incrementalMengganti legacy
Anti-Corruption LayerIsolasikan domainMicroservices, monolith→service

6.3 Pattern Pitfalls

Over-patterning (over-engineering):

# Bad: Singleton dependency dalam factory builder strategy observator
class FooFactorySingleton: ...
 
# Good: simple function
def make_foo(): return Foo()

Under-patterning (spaghetti):

  • Business logic tercampur dengan IO
  • Tidak ada abstraction layer
  • Code reuse rendah

Sweet spot: Pattern dipakai kalau masalahnya benar berulang. Setiap pattern memecahkan masalah konkret β€” kalau masalahnya tidak konkret, pattern tidak membantu.


7. Layer 4 β€” Architecture Style

Struktur top-level β€” bagaimana komponen disusun menjadi sistem utuh.

7.1 Evolusi Arsitektur

EraStyleTrade-off
1970sMonolith (single program)Simplicity, single deploy unit
1990sLayered (presentation/business/data)Separation tapi tightly coupled
2000sSOA (Service-Oriented Architecture)Reuse, contract-first
2010sMicroservicesIndependent deploy, distributed complexity
2015sServerlessNo-ops, vendor lock-in
2020sEvent-DrivenLoose-coupled, eventual consistency
2022+Modular MonolithBest of both worlds
2024+Hybrid edge-cloudLatency + scale
2026+AI-OrchestratedAgents composing services

7.2 Decision Matrix

Bisnis CharacteristicArchitecture Style
Single team, narrow domain, simpelModular Monolith
Multiple teams, single domain, scaling trafficMicroservices
Variable load, periodic spikesServerless (event-driven)
Real-time criticalEvent-Driven + Stream Processing
Latency-critical (sub-100ms)Hybrid edge-cloud
Frequent feature deploymentMicroservices
Complex business logic, low coupling neededModular Monolith
Geo-distributed usersEdge + Cloud burst

7.3 Distributed System Sub-Style

  • Client-Server (1970s+)
  • 3-tier (Web 1.0)
  • N-tier (Enterprise)
  • Peer-to-Peer (BitTorrent, blockchain)
  • Event Bus (Kafka, RabbitMQ)
  • CQRS (Read/write separate)
  • Lambda Architecture (batch + speed layer)
  • Kappa Architecture (stream-only)

Koneksi ke Vault:


8. Layer 5 β€” Engineering Process (Methodology)

Bagaimana tim berkolaborasi β€” bukan kode individual.

8.1 Evolusi Metodologi

TahunMetodologiInti
1970WaterfallSequential phases
1986SpiralIterative, risk-driven
2001Agile Manifesto4 values, 12 principles
2001ScrumSprint, role, ceremony
2001XP (Extreme Programming)TDD, pair programming, continuous integration
2005Kanban (popularized by Toyota)Flow, WIP limit, pull system
2009DevOpsDev + Ops integrated
2013GitOpsGit as source of truth for ops
2015Continuous DeliveryDeploy anytime
2018SRE (SRE book)Error budget, toil reduction
2020Platform EngineeringInternal developer platform
2024AI-Assisted EngineeringLLM integrated dalam setiap step

8.2 Scrum Framework

RoleFungsi
Product OwnerPrioritaskan backlog
Scrum MasterFasilitor, hapus blocker
Dev TeamSprint delivery
CeremonyDurasiFungsi
Sprint Planning4-8hPilih work untuk sprint
Daily Standup15min/24hSinkronasi harian
Sprint Review1-4hDemo ke stakeholder
Retrospective1-3hImprove process
Backlog Refinement1-2hPrepare next sprint

8.3 SRE Pillars

SLOTiap service punya target
SLIIndikator actual vs SLO
Error BudgetToleransi failure per quarter
ToilRepetitive manual work (target: <50% time)
Blameless PostmortemBelajar, bukan salahkan
  • Trunk-based development (vs long-lived feature branches)
  • Continuous deployment (auto-merge to production)
  • Internal Developer Platforms (IDP) β€” Backstage, etc.
  • Platform Engineering β€” providing paved road to devs
  • AI pair programming β€” Copilot, Cursor, Cline

Koneksi ke Vault:


9. Layer 6 β€” Quality Engineering (Testing + Review)

Bagaimana kita yakin bahwa perangkat lunak bekerja sesuai spec.

9.1 Test Pyramid

            β•±β•²         E2E tests (sedikit, lambat)
           β•±  β•²        Integration tests (medium)
          β•±    β•²
         ╱──────╲      Unit tests (banyak, cepat)
        β•±        β•²
       ╱──────────╲    Static analysis, lint, type check
      β•±            β•²
     ╱──────────────╲  Type/syntax (compile-time)

Anti-pattern: Ice-Cream Cone

        ────────    E2E (banyak)
       ─────────
      ───────────   Integration
     ─────────────
    ──────────────  Unit (sedikit!)
    ──────────────  Manual/UI testing

Terlalu banyak E2E test = lambat, fragile, unfocused.

9.2 Jenis Testing

LayerApaToolsSpeed
UnitFunction/method in isolationpytest, JUnit, Go test<1s/run
IntegrationMulti-component interactionTestcontainers, Docker~min/run
ContractAPI conforms to schemaPact, Spring Cloud Contract<30s/run
E2EFull user journeyPlaywright, Selenium, Cypress~hour/run
PerformanceLoad, latencyk6, JMeter, Gatlinghours
ChaosFailure injectionChaos Mesh, Litmusvariable
Property-basedRandom/shrunk inputHypothesis, QuickCheck<min/run
FuzzMutation inputlibFuzzer, AFL, OWASP ZAPvariable
Visual regressionScreenshot comparisonPercy, Playwright snapshotsminutes
MutationValidate test strengthPIT, Stryker, Mutmutslow

9.3 Code Review Best Practice

PrinsipPenjelasan
Small PR<300 lines changed
Single concern1 PR = 1 purpose
Self-review firstAuthor batasi sendiri
Comment rationale, not person”kita bisa extract ini?” bukan β€œkamu salah”
Use toolingESLint, ruff, Clippy β€” bukan manual
Iteration limit2-3 rounds max
Approve != shipSetiap round reviewer bisa gate

Koneksi ke Vault:


10. Layer 7 β€” Production Operations

CI/CD, observability, on-call, SLO compliance.

10.1 CI/CD Pipeline

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚ Source (Git)                                             β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚ CI: Build, Test, Static, SBOM, Sign                      β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚ Container Registry / Artifact Store                      β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚ CD: Staging, Canary, Production                          β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚ Continuous Verification (Observability)                  β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

10.2 Deployment Strategies

StrategyComplexityRollback SpeedRisk
Recreate (kill old, start new)LowSlow (rebuild)High downtime
Rolling (gradual replace)MediumSlowLow risk
Blue-Green (parallel infra switch)HighInstantLow risk, double cost
Canary (% traffic then ramp)MediumFastLow risk
Feature Flags (runtime toggle)HighInstantLowest risk
A/B Test (statistical comparison)HighConfigurationStatistical

10.3 Observability Three Pillars

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚ Metrics (numerical, aggregated)              β”‚ ← Prometheus, Datadog
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚ Logs (discrete events)                       β”‚ ← Loki, ELK, Splunk
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚ Traces (request flow across services)        β”‚ ← Jaeger, Zipkin, Tempo
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
       + Synthetic + Real User Monitoring

10.4 On-Call & Incident Response

FaseKegiatan
DetectionAlert firing
TriageSeverity classification
MitigationStop the bleeding
ResolutionRestore service
PostmortemLearning + action items

Koneksi ke Vault:


11. Layer 8 β€” AI-Assisted Engineering

Layer tertinggi dan terbaru β€” AI augmenting setiap layer di bawahnya.

11.1 Capability Spectrum

[AI-augmented] β†’ [AI-collaborative] β†’ [AI-autonomous]

Tab autocomplete β†’ Pair programming β†’ Agents executing tasks
(Copilot 2021)   (Cursor/Cline)       (Devin/Claude Code 2026)

11.2 Tooling Landscape (2026)

ToolLayerSpecialty
GitHub CopilotLayer 2 (suggestion in editor)Inline completion
CursorLayer 2-3 (editor + chat)Multi-file edit
ClineLayer 3-5 (editor + codebase)Open-source alternative
Claude CodeLayer 5-7 (terminal + ops)Long-running agents
Codex CLILayer 2-3 (terminal)Code generation
Continue.devLayer 2-3 (IDE plugin)Open source assistant
AiderLayer 3-4 (terminal pair)Git-aware changes
v0 / BoltLayer 8 (UI prototype)Full-stack prototype

11.3 Risiko dan Mitigasi

RisikoMitigasi
Generated code hallucinationCode review wajib, test coverage
License contaminationLicense scanner, SDLC policy
Security regressionSAST, dependency check
Dependency confusionGenerative lebih suka library baru β€” verify SBOM
Model lock-inPortability, multi-model support
Skipped learningDeveloper tetap harus verify, understand

11.4 Trend 2026

  • Autonomous agents for bug triage, test generation, doc sync
  • Multi-agent code review β€” agents debate quality trade-offs
  • AI-generated infrastructure β€” IaC dari task deskripsi
  • LLM as code reviewer β€” supplementary reviewer untuk PR
  • AI-aware observability β€” LLM-anomaly detection dalam production traces

Koneksi ke Vault:


12. Timeline 1960-2026 β€” Evolusi Paradigma

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚ Era          β”‚ Major Shift                                       β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚ 1960s        β”‚ Imperatif dominan (Fortran, ALGOL, C)            β”‚
β”‚ 1970s        β”‚ OOP awal (Smalltalk), structured programming      β”‚
β”‚ 1980s        β”‚ C++ (OOP mainstream), Unix philosophy            β”‚
β”‚ 1990s        β”‚ Java (virtual machine, garbage collected)         β”‚
β”‚ 2000s        β”‚ Agile (Scrum/XP), .NET, scripting (Python, Ruby)  β”‚
β”‚ 2010s        β”‚ Microservices, cloud-native, reactive, FP revival  β”‚
β”‚              β”‚ β†’ Haskell in production (Facebook), Elixir + Phoenix |
β”‚ 2015s        β”‚ Rust stabilizes (1.0+), Kotlin, Go mainstream     β”‚
β”‚              β”‚ β†’ Microservices monolith debate                   β”‚
β”‚ 2020s        β”‚ Serverless, edge, AI-assisted (Copilot)           β”‚
β”‚              β”‚ β†’ WebAssembly took off, assistants everywhere     β”‚
β”‚ 2024-2026    β”‚ Agentic coding, multi-agent code review           β”‚
β”‚              β”‚ β†’ LLMs dominate code generation                   β”‚
β”‚              β”‚ β†’ Developer focus shifts ke design+architecture   β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

13. Trade-off Matrix per Paradigm

ParadigmCode ClarityConcurrency SafetyPerformanceLearning CurveIndustry Fit
ImperatifMediumManualHighestLowOS, embedded
OOPMedium-LowManualMediumMediumEnterprise, games
FunctionalHighDefault-safeMediumMedium-HighData, finance
LogicHighDefault-safeSlowHighAI, rule engine
ReactiveMediumDefault-safeHighHighStreaming, UI
ActorMediumDefault-safeHighHighDistributed, telecom
Array-firstVery HighManualHighestMediumML, numerical

13.1 Pitfalls per Paradigm

ParadigmTypical Pitfall
OOPGod class, deep inheritance, leaky abstraction
FPMonadic ceremony, premature generalization
ReactiveBack-pressure mismanagement, callback hell
ActorMailbox unbounded growth, akka anti-pattern
LogicCompute explosion, infinite loop
OOP+Functional mixSplit identity β€” class sekaligus accumulator

14. Cross-Reference ke Vault


References

  1. E. Gamma et al. β€œDesign Patterns: Elements of Reusable Object-Oriented Software.” (1994).
  2. R. C. Martin. β€œClean Architecture.” (2017).
  3. M. Fowler. β€œPatterns of Enterprise Application Architecture.” (2002).
  4. K. Beck. β€œTest-Driven Development by Example.” (2003).
  5. E. Evans. β€œDomain-Driven Design.” (2003).
  6. S. Newman. β€œBuilding Microservices.” (2021).
  7. B. Beyer et al. β€œSite Reliability Engineering.” Google, 2016.
  8. N. Ford et al. β€œBuilding Evolutionary Architectures.” (2017).
  9. J. Highsmith. β€œAdaptive Leadership.” (2013).
  10. M. Kim et al. β€œThe Phoenix Project.” (2013).
  11. H. Khononov. β€œLearning Domain-Driven Design.” (2021).
  12. A. Cockcroft et al. β€œMigrating to Cloud-Native Application Architectures.” O’Reilly, 2015.
  13. J. Willis. β€œBeyond DevOps.” (2017).
  14. P. Sbarski. β€œServerless Development on AWS.” (2017).
  15. Andrew Ng. β€œAI for Everyone.” Coursera (2019-2025).