AgentSkillsCN

dev

在运用软件开发基础知识——源自经典出版物的模式、算法、架构以及工匠精神原则——时使用。 适用场景:开发基础、模式选择、架构决策、算法选型、代码质量原则、在不同架构风格之间做出权衡。 切勿用于:特定模式的实现(使用子技能:设计模式、集成模式、算法等)、测试策略(使用测试)、基础设施(使用 IAC)。

SKILL.md
--- frontmatter
name: dev
description: |
    Use when working with fundamental software development knowledge — patterns, algorithms, architecture, and craftsmanship principles drawn from canonical published works.
    USE FOR: development fundamentals, pattern selection, architecture decisions, algorithm choice, code quality principles, choosing between architectural styles
    DO NOT USE FOR: specific pattern implementations (use sub-skills: design-patterns, integration-patterns, algorithms, etc.), testing strategy (use testing), infrastructure (use iac)
license: MIT
metadata:
  displayName: "Development Fundamentals"
  author: "Tyler-R-Kendrick"
compatibility: claude, copilot, cursor

Development Fundamentals

Overview

This skill covers the foundational knowledge every software developer should command — drawn from canonical published works and industry-proven practices. It spans from low-level algorithms through code craftsmanship to system-level architecture.

Knowledge Map

code
┌─────────────────────────────────────────────────────────┐
│  Architecture                                           │
│  Microservices, Monoliths, DDD, Event-Driven,          │
│  Hexagonal, Well-Architected Frameworks                 │
├─────────────────────────────────────────────────────────┤
│  Frontend                    │  Backend                 │
│  SPA, PWA, Micro-frontends, │  Data Modeling, API      │
│  SSR, Islands Architecture  │  Design, Caching, Auth   │
├─────────────────────────────────────────────────────────┤
│  Integration Patterns        │  Design Patterns         │
│  EIP: Messaging, Routing,   │  GoF: Creational,        │
│  Transformation, Endpoints  │  Structural, Behavioral  │
├─────────────────────────────────────────────────────────┤
│  Algorithms & Data Structures                           │
│  Sorting, Searching, Graphs, DP, Combinatorial          │
├─────────────────────────────────────────────────────────┤
│  Craftsmanship                                          │
│  Clean Code, Clean Architecture, SOLID, 12-Factor,     │
│  Refactoring, Boy Scout Rule                            │
└─────────────────────────────────────────────────────────┘

Canonical Works

BookAuthorCovers
Design PatternsGamma, Helm, Johnson, Vlissides (GoF)23 object-oriented patterns
Enterprise Integration PatternsHohpe & WoolfMessaging, routing, transformation
The Art of Computer ProgrammingDonald KnuthAlgorithms, data structures, combinatorics
Clean CodeRobert C. MartinNaming, functions, formatting, comments
Clean ArchitectureRobert C. MartinDependency rule, boundaries, layers
RefactoringMartin FowlerCode smells, refactoring catalog
Domain-Driven DesignEric EvansBounded contexts, aggregates, ubiquitous language
Building MicroservicesSam NewmanService decomposition, communication, deployment
The Pragmatic ProgrammerHunt & ThomasCareer, approach, tools, pragmatic philosophy
The Twelve-Factor AppAdam Wiggins (Heroku)Cloud-native application methodology
Release It!Michael NygardStability patterns, capacity, deployment
Fundamentals of Software ArchitectureRichards & FordArchitecture styles, characteristics, decisions

Choosing the Right Pattern Category

ProblemLook In
Object creation complexityDesign Patterns → Creational
Composing objects / adapting interfacesDesign Patterns → Structural
Object communication / state managementDesign Patterns → Behavioral
Service-to-service messagingIntegration Patterns
Algorithm selection / optimizationAlgorithms
Code readability and maintainabilityCraftsmanship
System decomposition and boundariesArchitecture
Client-side application structureFrontend
Server-side data and API structureBackend

Best Practices

  • Learn patterns as a vocabulary, not a checklist — apply them when the problem calls for it, not preemptively.
  • Start with the simplest architecture that works (monolith), evolve toward complexity (microservices) only when you have evidence you need it.
  • Apply the Boy Scout Rule: leave code better than you found it, every time you touch it.
  • Use SOLID principles as guardrails for daily decisions, not just for greenfield design.
  • Prefer composition over inheritance — most GoF patterns are variations of this principle.
  • Study algorithms for problem-solving intuition, not memorization — know when to reach for a graph algorithm vs. dynamic programming.
  • Keep integration patterns in mind whenever systems need to communicate — messaging solves problems that synchronous calls create.