| route-pattern | /:user_id/:repository |
| route-controller | files |
| route-action | disambiguate |
| fetch-nonce | v2:51f3fae9-8b4c-8b8a-fc75-6b02604366d2 |
| current-catalog-service-hash | f3abb0cc802f3d7b95fc8762b94bdcb13bf39634c40c357301c4aa1d67a256fb |
| request-id | C230:320C91:24458:32DA3:6A571B3A |
| html-safe-nonce | b68891900bdbfc157d1a5ae876fbefdb2ee622945092d88650ae8ba0e906637a |
| visitor-payload | eyJyZWZlcnJlciI6IiIsInJlcXVlc3RfaWQiOiJDMjMwOjMyMEM5MToyNDQ1ODozMkRBMzo2QTU3MUIzQSIsInZpc2l0b3JfaWQiOiIyNzY3MDY4OTA0ODYzMjQwMjYiLCJyZWdpb25fZWRnZSI6ImlhZCIsInJlZ2lvbl9yZW5kZXIiOiJpYWQifQ== |
| visitor-hmac | 58cd3c29000d46d544df6a210742a188699f17cc5d098ebf927628bcce9aad66 |
| hovercard-subject-tag | repository:103494572 |
| github-keyboard-shortcuts | repository,copilot |
| google-site-verification | Apib7-x98H0j5cPqHWwSMm6dNU4GmODRoqxLiDzdx9I |
| octolytics-url | https://collector.github.com/github/collect |
| analytics-location | // |
| fb:app_id | 1401488693436528 |
| apple-itunes-app | app-id=1477376905, app-argument=https://github.com/anaskhl/study-path |
| twitter:image | https://opengraph.githubassets.com/705dff1185476db19b5f3d1e0b3abd2eb8c8540081e7d6f34ce445551537911a/anaskhl/study-path |
| twitter:card | summary_large_image |
| og:image | https://opengraph.githubassets.com/705dff1185476db19b5f3d1e0b3abd2eb8c8540081e7d6f34ce445551537911a/anaskhl/study-path |
| og:image:alt | A study path about Clean Code, TDD, Legacy Code, Refactoring, Domain-Driven Design and Microservice Architecture - anaskhl/study-path |
| og:image:width | 1200 |
| og:image:height | 600 |
| og:site_name | GitHub |
| og:type | object |
| hostname | github.com |
| expected-hostname | github.com |
| None | 4e7a7296a3830877cf21a6ad2a972c9e618a48915e03966cf0c53eb08e5aad98 |
| turbo-cache-control | no-cache |
| go-import | github.com/anaskhl/study-path git https://github.com/anaskhl/study-path.git |
| octolytics-dimension-user_id | 18161281 |
| octolytics-dimension-user_login | anaskhl |
| octolytics-dimension-repository_id | 103494572 |
| octolytics-dimension-repository_nwo | anaskhl/study-path |
| octolytics-dimension-repository_public | true |
| octolytics-dimension-repository_is_fork | true |
| octolytics-dimension-repository_parent_id | 43431942 |
| octolytics-dimension-repository_parent_nwo | joebew42/study-path |
| octolytics-dimension-repository_network_root_id | 43431942 |
| octolytics-dimension-repository_network_root_nwo | joebew42/study-path |
| turbo-body-classes | logged-out env-production page-responsive |
| disable-turbo | false |
| browser-stats-url | https://api.github.com/_private/browser/stats |
| browser-errors-url | https://api.github.com/_private/browser/errors |
| release | 2576d1f0198cf1588faf2edf27f1ed120903be10 |
| ui-target | full |
| theme-color | #1e2327 |
| color-scheme | light dark |
| Skip to content | https://github.com/anaskhl/study-path#start-of-content |
|
| https://github.com/ |
|
Sign in
| https://github.com/login?return_to=https%3A%2F%2Fgithub.com%2Fanaskhl%2Fstudy-path |
| GitHub CopilotWrite better code with AI | https://github.com/features/copilot |
| GitHub Copilot appDirect agents from issue to merge | https://github.com/features/ai/github-app |
| MCP RegistryNewIntegrate external tools | https://github.com/mcp |
| ActionsAutomate any workflow | https://github.com/features/actions |
| CodespacesInstant dev environments | https://github.com/features/codespaces |
| IssuesPlan and track work | https://github.com/features/issues |
| Code ReviewManage code changes | https://github.com/features/code-review |
| GitHub Advanced SecurityFind and fix vulnerabilities | https://github.com/security/advanced-security |
| Code securitySecure your code as you build | https://github.com/security/advanced-security/code-security |
| Secret protectionStop leaks before they start | https://github.com/security/advanced-security/secret-protection |
| Why GitHub | https://github.com/why-github |
| Documentation | https://docs.github.com |
| Blog | https://github.blog |
| Changelog | https://github.blog/changelog |
| Marketplace | https://github.com/marketplace |
| View all features | https://github.com/features |
| Enterprises | https://github.com/enterprise |
| Small and medium teams | https://github.com/team |
| Startups | https://github.com/enterprise/startups |
| Nonprofits | https://github.com/solutions/industry/nonprofits |
| App Modernization | https://github.com/solutions/use-case/app-modernization |
| DevSecOps | https://github.com/solutions/use-case/devsecops |
| DevOps | https://github.com/solutions/use-case/devops |
| CI/CD | https://github.com/solutions/use-case/ci-cd |
| View all use cases | https://github.com/solutions/use-case |
| Healthcare | https://github.com/solutions/industry/healthcare |
| Financial services | https://github.com/solutions/industry/financial-services |
| Manufacturing | https://github.com/solutions/industry/manufacturing |
| Government | https://github.com/solutions/industry/government |
| View all industries | https://github.com/solutions/industry |
| View all solutions | https://github.com/solutions |
| AI | https://github.com/resources/articles?topic=ai |
| Software Development | https://github.com/resources/articles?topic=software-development |
| DevOps | https://github.com/resources/articles?topic=devops |
| Security | https://github.com/resources/articles?topic=security |
| View all topics | https://github.com/resources/articles |
| Customer stories | https://github.com/customer-stories |
| Events & webinars | https://github.com/resources/events |
| Ebooks & reports | https://github.com/resources/whitepapers |
| Business insights | https://github.com/solutions/executive-insights |
| GitHub Skills | https://skills.github.com |
| Documentation | https://docs.github.com |
| Customer support | https://support.github.com |
| Community forum | https://github.com/orgs/community/discussions |
| Trust center | https://github.com/trust-center |
| Partners | https://github.com/partners |
| View all resources | https://github.com/resources |
| GitHub SponsorsFund open source developers | https://github.com/open-source/sponsors |
| Security Lab | https://securitylab.github.com |
| Maintainer Community | https://maintainers.github.com |
| Accelerator | https://github.com/open-source/accelerator |
| GitHub Stars | https://stars.github.com |
| Archive Program | https://archiveprogram.github.com |
| Topics | https://github.com/topics |
| Trending | https://github.com/trending |
| Collections | https://github.com/collections |
| Enterprise platformAI-powered developer platform | https://github.com/enterprise |
| GitHub Advanced SecurityEnterprise-grade security features | https://github.com/security/advanced-security |
| Copilot for BusinessEnterprise-grade AI features | https://github.com/features/copilot/copilot-business |
| Premium SupportEnterprise-grade 24/7 support | https://github.com/enterprise/premium-support |
| Pricing | https://github.com/pricing |
| Search syntax tips | https://docs.github.com/search-github/github-code-search/understanding-github-code-search-syntax |
| documentation | https://docs.github.com/search-github/github-code-search/understanding-github-code-search-syntax |
|
Sign in
| https://github.com/login?return_to=https%3A%2F%2Fgithub.com%2Fanaskhl%2Fstudy-path |
|
Sign up
| https://github.com/signup?ref_cta=Sign+up&ref_loc=header+logged+out&ref_page=%2F%3Cuser-name%3E%2F%3Crepo-name%3E&source=header-repo&source_repo=anaskhl%2Fstudy-path |
| Reload | https://github.com/anaskhl/study-path |
| Reload | https://github.com/anaskhl/study-path |
| Reload | https://github.com/anaskhl/study-path |
|
anaskhl
| https://github.com/anaskhl |
| study-path | https://github.com/anaskhl/study-path |
| joebew42/study-path | https://github.com/joebew42/study-path |
|
Notifications
| https://github.com/login?return_to=%2Fanaskhl%2Fstudy-path |
|
Fork
0
| https://github.com/login?return_to=%2Fanaskhl%2Fstudy-path |
|
Star
0
| https://github.com/login?return_to=%2Fanaskhl%2Fstudy-path |
|
Code
| https://github.com/anaskhl/study-path |
|
Pull requests
0
| https://github.com/anaskhl/study-path/pulls |
|
Actions
| https://github.com/anaskhl/study-path/actions |
|
Projects
| https://github.com/anaskhl/study-path/projects |
|
Wiki
| https://github.com/anaskhl/study-path/wiki |
|
Security and quality
0
| https://github.com/anaskhl/study-path/security |
|
Insights
| https://github.com/anaskhl/study-path/pulse |
|
Code
| https://github.com/anaskhl/study-path |
|
Pull requests
| https://github.com/anaskhl/study-path/pulls |
|
Actions
| https://github.com/anaskhl/study-path/actions |
|
Projects
| https://github.com/anaskhl/study-path/projects |
|
Wiki
| https://github.com/anaskhl/study-path/wiki |
|
Security and quality
| https://github.com/anaskhl/study-path/security |
|
Insights
| https://github.com/anaskhl/study-path/pulse |
| https://github.com/anaskhl/study-path |
| Branches | https://github.com/anaskhl/study-path/branches |
| Tags | https://github.com/anaskhl/study-path/tags |
| https://github.com/anaskhl/study-path/branches |
| https://github.com/anaskhl/study-path/tags |
| 70 Commits | https://github.com/anaskhl/study-path/commits/master/ |
| https://github.com/anaskhl/study-path/commits/master/ |
| .gitignore | https://github.com/anaskhl/study-path/blob/master/.gitignore |
| .gitignore | https://github.com/anaskhl/study-path/blob/master/.gitignore |
| readme.md | https://github.com/anaskhl/study-path/blob/master/readme.md |
| readme.md | https://github.com/anaskhl/study-path/blob/master/readme.md |
| README | https://github.com/anaskhl/study-path |
| CC BY-SA 4.0 | https://creativecommons.org/licenses/by-sa/4.0/ |
| https://github.com/anaskhl/study-path#getting-started |
| The Pomodoro Technique | http://pomodorotechnique.com/ |
| paper | http://baomee.info/pdf/technique/1.pdf |
| Manifesto for Agile Software Development | http://www.agilemanifesto.org/ |
| Principles behind the Agile Manifesto | http://www.agilemanifesto.org/principles.html |
| Manifesto for Software Craftsmanship | http://manifesto.softwarecraftsmanship.org/ |
| https://github.com/anaskhl/study-path#session-1-solid-and-clean-code |
| Core Design Principles for Software Developers by Venkat Subramaniam | https://www.youtube.com/watch?v=llGgO74uXMI |
| SOLID principles | http://butunclebob.com/ArticleS.UncleBob.PrinciplesOfOod |
| SRP: Single Responsability Principle | https://docs.google.com/open?id=0ByOwmqah_nuGNHEtcU5OekdDMkk |
| OCP: Open-Closed Principle | http://docs.google.com/a/cleancoder.com/viewer?a=v&pid=explorer&chrome=true&srcid=0BwhCYaYDn8EgN2M5MTkwM2EtNWFkZC00ZTI3LWFjZTUtNTFhZGZiYmUzODc1&hl=en |
| LSP: Liskov Substitution Principle | http://docs.google.com/a/cleancoder.com/viewer?a=v&pid=explorer&chrome=true&srcid=0BwhCYaYDn8EgNzAzZjA5ZmItNjU3NS00MzQ5LTkwYjMtMDJhNDU5ZTM0MTlh&hl=en |
| ISP: Interface Segregation Principle | http://docs.google.com/a/cleancoder.com/viewer?a=v&pid=explorer&chrome=true&srcid=0BwhCYaYDn8EgOTViYjJhYzMtMzYxMC00MzFjLWJjMzYtOGJiMDc5N2JkYmJi&hl=en |
| DIP: Dependency Inversion Principle | http://docs.google.com/a/cleancoder.com/viewer?a=v&pid=explorer&chrome=true&srcid=0BwhCYaYDn8EgMjdlMWIzNGUtZTQ0NC00ZjQ5LTkwYzQtZjRhMDRlNTQ3ZGMz&hl=en |
| Racing Car Katas | https://github.com/emilybache/Racing-Car-Katas |
| Clean Code | http://www.amazon.com/Clean-Code-Handbook-Software-Craftsmanship/dp/0132350882 |
| The Pragmatic Programmer | https://pragprog.com/book/tpp/the-pragmatic-programmer |
| The Art of Enbugging | http://www.ccs.neu.edu/research/demeter/related-work/pragmatic-programmer/jan_03_enbug.pdf |
| https://github.com/anaskhl/study-path#session-2-test-driven-development |
| TDD by example | http://www.amazon.com/Test-Driven-Development-By-Example/dp/0321146530 |
| Growing Object-Oriented Software, guided by tests | https://www.amazon.com/Growing-Object-Oriented-Software-Guided-Tests/dp/0321503627 |
| Clean Code | http://www.amazon.com/Clean-Code-Handbook-Software-Craftsmanship/dp/0132350882 |
| The Clean Code Talks - Unit Testing | https://www.youtube.com/watch?v=wEhu57pih5w |
| Effective Unit Testing | https://www.amazon.com/Effective-Unit-Testing-guide-developers/dp/1935182579 |
| https://github.com/anaskhl/study-path#session-3-working-with-legacy-code |
| Working Effectively with Legacy Code | http://www.amazon.com/Working-Effectively-Legacy-Michael-Feathers/dp/0131177052 |
| GildedRoseKata | https://github.com/joebew42/GildedRose |
| Working Effectively with Legacy Tests | http://natpryce.com/articles/000813.html |
| https://github.com/anaskhl/study-path#session-4-refactoring |
| Martin Fowler @ OOP2014 "Workflows of Refactoring" | https://www.youtube.com/watch?v=vqEg37e4Mkw |
| Refactoring: Improving the design of existing code | http://www.amazon.com/Refactoring-Improving-Design-Existing-Code/dp/0201485672 |
| Example Code | https://github.com/joebew42/refactoring-day/tree/master/movie-rental/java |
| Testing and Refactoring Legacy Code | https://www.youtube.com/watch?v=_NnElPO5BU0 |
| Example Code | https://github.com/sandromancuso/trip-service-kata |
| GildedRoseKata | https://github.com/joebew42/GildedRose |
| TennisRefactoringKata | https://github.com/emilybache/Tennis-Refactoring-Kata |
| https://github.com/anaskhl/study-path#session-5-tdd-and-friends |
| How to Write Clean, Testable Code | https://www.youtube.com/watch?v=XcT4yYu_TTs |
| Good Design is Easily-Learned | http://blog.scottbellware.com/2009/01/good-design-is-easily-learned.html |
| TheBowlingGameKata | http://butunclebob.com/ArticleS.UncleBob.TheBowlingGameKata |
| TheRomanNumeralsKata | http://www.codekatas.org/casts/roman-numerals-kata-with-audio-commentary |
| Unit Testing | https://www.youtube.com/watch?v=wEhu57pih5w |
| Growing Object Oriented Software, Guided by Tests | http://www.growing-object-oriented-software.com/ |
| Clean Code | http://www.amazon.com/Clean-Code-Handbook-Software-Craftsmanship/dp/0132350882 |
| Mocks Aren't Stubs | http://martinfowler.com/articles/mocksArentStubs.html |
| StringCalculatorKata | http://osherove.com/tdd-kata-1/ |
| interactions | http://osherove.com/tdd-kata-2/ |
| https://github.com/anaskhl/study-path#session-6-hands-on-erlang |
| Programming Erlang (2nd Edition) | https://pragprog.com/book/jaerlang2/programming-erlang |
| Erlang Koans | https://github.com/patrickgombert/erlang-koans |
| Spawned Shelter! | http://spawnedshelter.com/ |
| TheBowlingGameKata | http://butunclebob.com/ArticleS.UncleBob.TheBowlingGameKata |
| RomanNumeralsKata | http://codingdojo.org/cgi-bin/index.pl?KataRomanNumerals |
| FizzBuzzKata | http://codingdojo.org/cgi-bin/index.pl?KataFizzBuzz |
| StringCalculatorKata | http://osherove.com/tdd-kata-1/ |
| video | https://vimeo.com/8206748 |
| TennisKata | http://codingdojo.org/cgi-bin/index.pl?KataTennis |
| OpeningHoursKata | https://github.com/christian-fei/opening-hours-kata |
| https://github.com/anaskhl/study-path#session-7-deploy-your-application |
| The Twelve-Factor App | http://12factor.net/ |
| User Stories | http://www.agilemodeling.com/artifacts/userStory.htm |
| Continuous Delivery | http://martinfowler.com/bliki/ContinuousDelivery.html |
| Anatomy of the Deployment Pipeline | http://www.informit.com/articles/article.aspx?p=1621865 |
| https://github.com/anaskhl/study-path#session-8-domain-driven-design |
| Eric Evans - Tackling Complexity in the Heart of Software | https://www.youtube.com/watch?v=dnUFEg68ESM |
| Domain-Driven Design Quickly | https://www.infoq.com/minibooks/domain-driven-design-quickly |
| Eric Evans - DDD: Putting the Model to Work | https://www.infoq.com/presentations/model-to-work-evans |
| Hexagonal architecture | http://alistair.cockburn.us/Hexagonal+architecture |
| How to write a Repository | http://philcalcado.com/2010/12/23/how_to_write_a_repository.html |
| Eric Evans JAX 2015 Keynote: DDD and Microservices: At last, some boundaries! | https://vimeo.com/125769142 |
| Domain-Driven Design: Tackling Complexity in the Heart of Software | https://www.amazon.com/Domain-Driven-Design-Tackling-Complexity-Software/dp/0321125215 |
| Implementing Domain-Driven Design | https://www.amazon.it/dp/0321834577 |
| Domain-Driven Design Reference: Definitions and Pattern Summaries | https://www.amazon.com/Domain-Driven-Design-Reference-Definitions-Summaries/dp/1457501198 |
| https://github.com/anaskhl/study-path#session-9-microservice-architecture |
| Microservices: A Definition of This New Architectural Term | https://martinfowler.com/articles/microservices.html |
| GOTO 2014 • Microservices • Fowler | https://www.youtube.com/watch?v=wgdBVIX9ifA |
| Principles Of Microservices by Sam Newman | https://www.youtube.com/watch?v=PFQnNFe27kU |
| Microservice Trade-Offs | http://martinfowler.com/articles/microservice-trade-offs.html |
| Microservice Architecture: Aligning Principles, Practices, and Culture | https://www.amazon.com/dp/1491956259 |
| Building Microservices: Designing Fine-Grained Systems | https://www.amazon.com/Building-Microservices-Sam-Newman/dp/1491950358 |
| part I | https://www.youtube.com/watch?v=Caj-qCOniXM |
| part II | https://www.youtube.com/watch?v=zS57uYLzF1I |
| part III | https://www.youtube.com/watch?v=DAVMB_Tc00w |
| Practical Considerations For Microservice Architecture | https://vimeo.com/105751281 |
| Microservices Antipatterns | https://www.youtube.com/watch?v=I56HzTKvZKc |
| Seven Microservices Anti-patterns | https://www.infoq.com/articles/seven-uservices-antipatterns |
| Examples and other resources | https://gist.github.com/pdincau/8e6d42dfc44cf158e70293604bae0c17 |
| https://github.com/anaskhl/study-path#session-10-further-topics |
| TDD by example | http://www.amazon.com/Test-Driven-Development-By-Example/dp/0321146530 |
| Clean Code | http://www.amazon.com/Clean-Code-Handbook-Software-Craftsmanship/dp/0132350882 |
| part I | https://www.youtube.com/watch?v=XHnuMjah6ps |
| part II | https://www.youtube.com/watch?v=gs0rqDdz3ko |
| part III | https://www.youtube.com/watch?v=R9OAt9AOrzI |
| Sandro Mancuso @ Lean Agile Scotland "Crafted Design" | https://vimeo.com/107963074 |
| Sandro Mancuso @ Jax London 2014 "Crafted Design" | https://vimeo.com/128596005 |
| Notes about IDD | http://joebew42.github.io/notes/20150712SandroMancuso_CraftedDesign.txt |
| Greg Young - CQRS and Event Sourcing - Code on the Beach 2014 | https://www.youtube.com/watch?v=JHGkaShoyNs |
| Bryan Hunter - CQRS with Erlang | https://vimeo.com/97318824 |
| Greg Young - A Decade of DDD, CQRS, Event Sourcing | https://www.youtube.com/watch?v=LDW0QWie21s |
| TDD and Software Design | https://www.youtube.com/watch?v=ty3p5VDcoOI |
| Social Networking Kata | https://github.com/sandromancuso/social_networking_kata |
| Salary Slip Kata | https://github.com/sandromancuso/salaryslipkata |
| Bank Account Kata | https://github.com/sandromancuso/Bank-kata |
| https://github.com/anaskhl/study-path#recommended-readings |
| The Nature of Software Development | https://www.amazon.com/Nature-Software-Development-Simple-Valuable/dp/1941222374 |
| The Agile Samurai: How Agile Masters Deliver Great Software | https://www.amazon.com/Agile-Samurai-Software-Pragmatic-Programmers/dp/1934356581 |
| Continuous Delivery: Reliable Software Releases through Build, Test, and Deployment Automation | https://www.amazon.com/Continuous-Delivery-Deployment-Automation-Addison-Wesley/dp/0321601912 |
| Release It!: Design and Deploy Production-Ready Software | https://www.amazon.com/Release-Production-Ready-Software-Pragmatic-Programmers/dp/0978739213 |
| The Phoenix Project: A Novel about IT, DevOps, and Helping Your Business Win | https://www.amazon.com/Phoenix-Project-DevOps-Helping-Business/dp/0988262509 |
|
Readme
| https://github.com/anaskhl/study-path#readme-ov-file |
| Please reload this page | https://github.com/anaskhl/study-path |
|
Activity | https://github.com/anaskhl/study-path/activity |
|
0
forks | https://github.com/anaskhl/study-path/forks |
|
Report repository
| https://github.com/contact/report-content?content_url=https%3A%2F%2Fgithub.com%2Fanaskhl%2Fstudy-path&report=anaskhl+%28user%29 |
| Releases | https://github.com/anaskhl/study-path/releases |
| Packages
0 | https://github.com/users/anaskhl/packages?repo_name=study-path |
| Please reload this page | https://github.com/anaskhl/study-path |
| Contributors | https://github.com/anaskhl/study-path/graphs/contributors |
| Please reload this page | https://github.com/anaskhl/study-path |
|
| https://github.com |
| Terms | https://docs.github.com/site-policy/github-terms/github-terms-of-service |
| Privacy | https://docs.github.com/site-policy/privacy-policies/github-privacy-statement |
| Security | https://github.com/security |
| Status | https://www.githubstatus.com/ |
| Community | https://github.community/ |
| Docs | https://docs.github.com/ |
| Contact | https://support.github.com?tags=dotcom-footer |