HYF-Class22 / home

Home repository for HYF class 22
https://hyf-class22.github.io/home/
MIT License
0 stars 5 forks source link

Etefa: behavior-strategy-implementation: 2 Weeks #143

Open edinssa opened 7 months ago

edinssa commented 7 months ago

Learning Objectives Priorities: 🥚, 🐣, 🐥, 🐔 (click to learn more) 1. Remix

Practice studying and remixing other people's solutions to coding challenges. Create your own solutions by mixing and matching pieces from other people's code.

🐣 Reconstructing: You can reconstruct a variety of solutions to the same challenge when they are presented as parsons problems.
🐣 Analyzing: You can analyze a function written at your level. This includes:

Behavior: Write documentation, test cases and use cases to describe the function's behavior. Strategy: Describe the function's strategy using plain english. Implementation: List the language features in a function and explain how each one is used. Small Changes: You can think of 2+ changes to the function's implementation that would not change it's strategy.

🐣 Remixing You can analyze several solutions to the same challenge then ...

Write: Your own solution by remixing the ones you studied. Explain: How the other solutions inspired yours; what ideas did you take from them? what ideas did you not take? Analyze: Complete a write-up your own solution as though someone else wrote it.

2. Write

🐣 Function Design:
    Writing Tests: Given a working function, you can write passing test cases to describe it's behavior.

Writing Functions: You can design multiple solutions to the same code challenge, keeping notes about different experiments you tried along the way.

🐣 Generating Documentation: You can write a JSDoc comment for your solutions and run a script to generate markdown documentation. 🐣 Fuzz Testing: You write solutions that pass randomly generated test cases. 🐥 Test Driven Development: You can solve open-ended, ambiguous coding challenges at your level:

Reading Docs: You can understand what the function is supposed to do by reading it's JSDoc description.

Writing Tests: You can write test cases before there is a function to test. Writing Functions: You can write one functio /n that passes the test cases you have prepared (even if it's just 1 test case!). Refactoring: You can improve your function's implementation without failing any test cases that were passing. Iterative Development: You can repeat the TDD process until you are satisfied with your test cases and solution.

🐔 Code Golf: Write your solutions with the fewest characters possible! This won't help you write readable code, but it will make you think deeply about JS, your strategy and implementation.

3. Review

🐣 Continuous Integration: You can check your code's quality before pushing so your CI checks all pass.
    Formatting

Linting Testing

🐣 Code Review: You can use a checklist to give a thorough, positive and constructive review of your classmates' solutions. 🐔 Code Coverage: You can explain what code coverage is, why it's important, and can write unit tests with 100% code coverage.

edinssa commented 7 months ago