转载

每个良好程序员应当知晓的技能学习路径

Getting Started

  • The Pomodoro Technique
  • Manifesto for Agile Software Development
  • Principles behind the Agile Manifesto
  • Manifesto for Software Craftsmanship

Week 1: SOLID and Clean Code

  • SOLID principles
    • SRP: Single Responsability Principle
    • OCP: Open-Closed Principle
    • LSP: Liskov Substitution Principle
    • ISP: Interface Segregation Principle
    • DIP: Dependency Inversion Principle
  • Start theRacing Car Katas
    • find SOLID violations
  • Clean Code
    • Chapter 1: Clean Code
    • Chapter 2: Meaningful Names
    • Chapter 3: Functions
    • Chapter 6: Objects and Data Structures
    • Chapter 7: Error Handling
    • Chapter 10: Classes
  • The Pragmatic Programmer
    • Chapter 2: A Pragmatic Approach
    • Chapter 5: Bend or Break
    • Chapter 6: While You Are Coding

Week 2: Introduction to TDD

  • TDD by example : The Money Example
  • Clean Code
    • Chapter 9: Unit Tests

Week 3: Working with Legacy Code

  • Working Effectively with Legacy Code
    • Chapter 8: How Do I Add a Feature ?
  • Start theGildedRoseKata
    • Code Coverage
    • Add the new feature
    • No refactoring!
  • Working Effectively with Legacy Tests

Week 4: Refactoring

  • Martin Fowler @ OOP2014 "Workflows of Refactoring"
  • Refactoring: Improving the design of existing code
    • Chapter 1: Refactoring, a First Example
      • Example Code
    • Chapter 2: Principles in Refactoring
    • Chapter 3: Bad Smells in Code
  • Testing and Refactoring Legacy Code
    • Example Code
  • Takes the code of the week 2 and try to do refactoring (find code smells)
  • Try the TennisRefactoringKata (find code smells)

Week 5: TDD and "Friends"

  • How to Write Clean, Testable Code
  • Good Design is Easily-Learned
  • Try to learn and repeat these Katas autonomously
    • TheBowlingGameKata
    • TheRomanNumeralsKata
  • Unit Testing
  • Growing Object Oriented Software, Guided by Tests
    • Chapter 1: What Is the Point of Test-Driven Development?
    • Chapter 2: Test-Driven Development with Objects
    • Chapter 4: Kick-Starting the Test-Driven Cycle
    • Chapter 5: Maintaining the Test-Driven Cycle
    • Chapter 6: Object-Oriented Style
    • Chapter 7: Achieving Object-Oriented Design
    • Chapter 8: Building on Third-Party Code
  • Clean Code
    • Chapter 8: Boundaries
  • Mocks Aren't Stubs
  • Try the StringCalculatorKata
    • With interactions

Week 6: Hands On Erlang

You are free to replace Erlang with whatever programming language you wants to dive in

  • Erlang resources
    • Programming Erlang (2nd Edition)
    • Other useful resources about Erlang: Spawned Shelter!
  • Try these Katas in Erlang:
    • TheBowlingGameKata
    • RomanNumeralsKata
    • FizzBuzzKata
    • StringCalculatorKata
      • Follow this video
    • TennisKata

Week 7: Deploy your application

  • Read The Twelve-Factor App before you start
  • Write an example application
  • Publish the code on a GitHub repository
  • Organize your work in User Stories (e.g. Trello)
  • Setup a development environment (e.g. Vagrant/Ansible)
  • Setup a CI environment (e.g. Travis)
  • Deploy your application (e.g. Heroku)
  • Test the deployed application
  • Continous Delivery
  • Describe your Continuous Delivery process (Can it be improved ? How ?)

Week 8: Refinements and IDD

  • TDD by example
    • Patterns for Test-Driven Development
  • Clean Code
    • Chapter 12: Emergence
  • Crafted Design:
    • https://vimeo.com/107963074
    • https://vimeo.com/128596005
    • Notes
  • Hexagonal architecture
  • Looking at the example application of the week 7:
    • What are your considerations ?
    • Can you apply IDD ? If yes propose the changes.
  • Further topics
    • Greg Young - CQRS and Event Sourcing - Code on the Beach 2014
    • Bryan Hunter - CQRS with Erlang
  • Try the Social Networking Kata
原文  https://github.com/joebew42/study-path
正文到此结束
Loading...