Size: 6298
Comment:
|
Size: 6327
Comment:
|
Deletions are marked like this. | Additions are marked like this. |
Line 111: | Line 111: |
1. "use data to make logic simple" 2. "make DSL" 3. "do not mix logic and data construction" |
1. "use data to make logic simple" 2. "make DSL" 3. "do not mix logic and data construction" |
Line 116: | Line 116: |
4. "last 5% automation" 5. "craft, not science" 6. "Make it work, then make it better" 7. "problem space, solution space" 8. "naming itself is a design practice" 9. "programming is to make a language system" |
4. "last 5% automation" 5. "craft, not science" 6. "Make it work, then make it better" 7. "problem space, solution space" 8. "naming itself is a design practice" 9. "programming is to make a language system" |
Line 124: | Line 124: |
10. "공통점과 차이점 찾기" (Find commonality and variability) | 10. "공통점과 차이점 찾기" (Find commonality and variability) |
Line 127: | Line 127: |
11. "Baby Step" 12. "quickly step back to closest green-bar" 13. "TDD is a design activity" 14. "short feedback cycle" 15. "micro commit, one at a time" 16. "isolation" 17. "use abduction" 18. "piecemeal growth, center first" |
11. "Baby Step" 12. "quickly step back to closest green-bar" 13. "TDD is a design activity" 14. "short feedback cycle" 15. "micro commit, one at a time" 16. "isolation" 17. "use abduction" 18. "piecemeal growth, center first" |
Line 137: | Line 137: |
19. "eliminate/reduce intermediate layers" 20. "넘겨짚지 말고, 마술의 동작과 동작 사이를 잘 들여다보기" 21. "do not guess far. when you guess, validate it" 22. "regression test" 23. "Here and now debugging" |
19. "eliminate/reduce intermediate layers" 20. "넘겨짚지 말고, 마술의 동작과 동작 사이를 잘 들여다보기" 21. "do not guess far. when you guess, validate it" 22. "regression test" 23. "Here and now debugging" |
Line 144: | Line 144: |
24. "XP over Scrum for developers" 25. "pair programming with juniors" 26. "Yes, but / Yes, and" |
24. "XP over Scrum for developers" 25. "pair programming with juniors" 26. "Yes, but / Yes, and" |
Line 149: | Line 149: |
27. "Learn from experts (CTA, CDE)" | 27. "Learn from experts (CTA, CDE)" |
Line 154: | Line 154: |
- [x] [[TinyExperiment]] (완성) - [ ] UseDataToMakeLogicSimple - [ ] ProblemSpaceSolutionSpace |
* [x] [[TinyExperiment]] (완성) * [ ] UseDataToMakeLogicSimple * [ ] ProblemSpaceSolutionSpace |
Line 159: | Line 159: |
- [ ] BabyStep - [ ] NamingIsDesignPractice - [ ] TddIsDesignActivity |
* [ ] BabyStep * [ ] NamingIsDesignPractice * [ ] TddIsDesignActivity |
Line 164: | Line 164: |
- [ ] MicroCommit - [ ] UseAbduction - [ ] HereAndNowDebugging |
* [ ] MicroCommit * [ ] UseAbduction * [ ] HereAndNowDebugging |
Line 169: | Line 169: |
- [ ] CraftNotScience - [ ] LastFivePercentAutomation - [ ] PairProgrammingWithJuniors |
* [ ] CraftNotScience * [ ] LastFivePercentAutomation * [ ] PairProgrammingWithJuniors |
Line 174: | Line 174: |
- [ ] Update [[기술문서모음/ToJuniors]] with all pattern links - [ ] Create pattern relationship visualization - [ ] Validate semi-lattice structure |
* [ ] Update [[기술문서모음/ToJuniors]] with all pattern links * [ ] Create pattern relationship visualization * [ ] Validate semi-lattice structure |
AiGarden/ToJuniorsPatternLanguage
주니어 개발자들을 위한 프로그래밍 지혜를 Christopher Alexander의 패턴 언어로 변환하는 프로젝트.
Contents
Project Vision
기술문서모음/ToJuniors 페이지의 27개 핵심 격언들을 개별 패턴으로 확장하여, 반격자(semi-lattice) 구조의 상호 연결된 지식 네트워크를 구축한다. 각 패턴은 이솝우화 스타일의 스토리텔링으로 작성되어 초보자들이 쉽게 이해하고 기억할 수 있도록 한다.
Pattern Language Structure
Foundation Patterns (가장 기본적)
TinyExperiment (완성) - 작은 실험 환경을 통한 점진적 학습과 개발 ↳ enables → BabyStep, UseAbduction, HereAndNowDebugging ↳ used by → TddIsDesignActivity, PiecemealGrowthCenterFirst
UseDataToMakeLogicSimple - 관심사 분리의 기본 원칙 ↳ supports → MakeDSL, DoNotMixLogicAndDataConstruction ↳ enables → FindCommonalityAndVariability
ProblemSpaceSolutionSpace - 근본적 사고 체계 ↳ guides → NamingIsDesignPractice, MakeItWorkThenMakeBetter ↳ supports → TddIsDesignActivity
Intermediate Patterns (기초 위에 구축)
BabyStep - 핵심적 진화적 접근법 ↳ connected to → MicroCommit, ShortFeedbackCycle ↳ enables → PiecemealGrowthCenterFirst ↳ requires → DoNotGuessValidateIt
NamingIsDesignPractice - 추상화 생성 ↳ uses → ProblemSpaceSolutionSpace ↳ supports → MakeDSL ↳ enables → FindCommonalityAndVariability
TddIsDesignActivity - 피드백을 통한 설계 ↳ uses → ProblemSpaceSolutionSpace, BabyStep ↳ requires → ShortFeedbackCycle, UseAbduction ↳ produces → RegressionTest
Application Patterns (구체적 실천)
MicroCommit - 버전 제어 원칙 ↳ implements → BabyStep ↳ enables → PiecemealGrowthCenterFirst
UseAbduction - 탐구 방법 ↳ supports → TddIsDesignActivity, HereAndNowDebugging ↳ opposite of → DoNotGuessValidateIt
HereAndNowDebugging - 디버깅 접근법 ↳ uses → UseAbduction, EliminateIntermediateLayers ↳ implements → DoNotGuessValidateIt
=== Meta-Patterns (과정 자체에 대한) === CraftNotScience - 개발 철학 ↳ manifests through → BabyStep, LastFivePercentAutomation ↳ guides → LearnFromExperts
LastFivePercentAutomation - 자동화의 한계 ↳ reflects → CraftNotScience ↳ requires → PairProgrammingWithJuniors
Social Patterns (팀 역학)
PairProgrammingWithJuniors - 지식 전수 ↳ enables → LearnFromExperts ↳ uses → YesButYesAnd ↳ supports → LastFivePercentAutomation
Pattern Template
각 패턴은 Alexander의 형식을 따르되, 이솝우화 스타일로 작성된다:
#acl +All:read = PatternName = == Context == 언제 이 패턴이 적용되는가 == Problem == 스토리나 우화로 문제 상황 묘사 == Solution == 구체적이고 실행 가능한 해결책 문단 형태로 자연스럽게 서술 == Examples == 실제 개발 상황의 구체적 예시들 캐릭터와 스토리가 있는 경험담 == Resulting Context == 이 패턴 적용 후의 상황 == Related Patterns == * '''Uses:''' 이 패턴이 사용하는 다른 패턴들 * '''Used by:''' 이 패턴을 사용하는 패턴들 * '''Enables:''' 이 패턴이 가능하게 하는 패턴들 * '''Complements:''' 보완하는 패턴들 ---- CategoryPattern
Complete Proverb List
Data & Logic Design:
- "use data to make logic simple"
- "make DSL"
- "do not mix logic and data construction"
Programming Philosophy:
- "last 5% automation"
- "craft, not science"
- "Make it work, then make it better"
- "problem space, solution space"
- "naming itself is a design practice"
- "programming is to make a language system"
Programming Fundamentals:
- "공통점과 차이점 찾기" (Find commonality and variability)
TDD & Evolutionary Design:
- "Baby Step"
- "quickly step back to closest green-bar"
- "TDD is a design activity"
- "short feedback cycle"
- "micro commit, one at a time"
- "isolation"
- "use abduction"
- "piecemeal growth, center first"
Testing & Debugging:
- "eliminate/reduce intermediate layers"
- "넘겨짚지 말고, 마술의 동작과 동작 사이를 잘 들여다보기"
- "do not guess far. when you guess, validate it"
- "regression test"
- "Here and now debugging"
Collaboration & Team:
- "XP over Scrum for developers"
- "pair programming with juniors"
- "Yes, but / Yes, and"
Learning & Expertise:
- "Learn from experts (CTA, CDE)"
Implementation Strategy
Phase 1: Foundation (현재)
[x] TinyExperiment (완성)
Phase 2: Intermediate Layer
[ ] BabyStep
Phase 3: Application Patterns
[ ] MicroCommit
[ ] UseAbduction
Phase 4: Meta & Social
Phase 5: Integration
[ ] Update 기술문서모음/ToJuniors with all pattern links
- [ ] Create pattern relationship visualization
- [ ] Validate semi-lattice structure
Progress Log
2024-01: Project initiated. First pattern TinyExperiment created with story-driven approach. Enhanced from bullet-point structure to Aesop's fable style storytelling. Pattern successfully integrates assumption, validation, fail-safe, fast feedback loop, isolation, baby step, and abduction concepts.
References
- Christopher Alexander - "A Pattern Language", "The Timeless Way of Building"
기술문서모음/ToJuniors - Original proverb collection
OrgPatterns - Pattern language inspiration and structure
가추법 - Abduction methodology