-
-
Notifications
You must be signed in to change notification settings - Fork 4
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
1 parent
8d1ef29
commit 2fc214b
Showing
23 changed files
with
794 additions
and
334 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,8 +1,8 @@ | ||
# Databases | ||
|
||
- [A Visual Explanation of SQL Joins](https://blog.codinghorror.com/a-visual-explanation-of-sql-joins/) `must-learn` | ||
- [Normalization of Database](https://www.studytonight.com/dbms/database-normalization.php) `must-learn` | ||
- [A Primer on ACID Transactions: The Basics Every Cloud App Developer Must Know](https://blog.yugabyte.com/a-primer-on-acid-transactions/) `must-learn` | ||
- [Understanding Database Sharding](https://www.digitalocean.com/community/tutorials/understanding-database-sharding) | ||
- [Four Data Sharding Strategies We Analyzed in Building a Distributed SQL Database](https://blog.yugabyte.com/four-data-sharding-strategies-we-analyzed-in-building-a-distributed-sql-database/) | ||
- [Five sharding data models and which is right](https://www.citusdata.com/blog/2017/08/28/five-data-models-for-sharding/) | ||
- [A Visual Explanation of SQL Joins](https://blog.codinghorror.com/a-visual-explanation-of-sql-joins/) `Roadmap:Entry` `must-learn` | ||
- [Normalization of Database](https://www.studytonight.com/dbms/database-normalization.php) `Roadmap:Entry` `must-learn` | ||
- [A Primer on ACID Transactions: The Basics Every Cloud App Developer Must Know](https://blog.yugabyte.com/a-primer-on-acid-transactions/) `Roadmap:Entry` `must-learn` | ||
- [Understanding Database Sharding](https://www.digitalocean.com/community/tutorials/understanding-database-sharding) `Roadmap:Advanced` | ||
- [Four Data Sharding Strategies We Analyzed in Building a Distributed SQL Database](https://blog.yugabyte.com/four-data-sharding-strategies-we-analyzed-in-building-a-distributed-sql-database/) `Roadmap:Advanced` | ||
- [Five sharding data models and which is right](https://www.citusdata.com/blog/2017/08/28/five-data-models-for-sharding/) `Roadmap:Advanced` |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,71 +1,71 @@ | ||
# Code Design | ||
|
||
- [Microservices](https://martinfowler.com/articles/microservices.html) | ||
- [Clean Code Cheat Sheet](https://www.bbv.ch/images/bbv/pdf/downloads/V2_Clean_Code_V3.pdf) `must-learn` | ||
- [Pragmatic Programming Cheat Sheet](https://cheatography.com/marconlsantos/cheat-sheets/pragmatic-programming/) | ||
- [BeckDesignRules](https://martinfowler.com/bliki/BeckDesignRules.html) | ||
- [Essential XP: Emergent Design](https://ronjeffries.com/xprog/classics/expemergentdesign/) | ||
- VIDEO [Mixed Paradigms: The Method to Madness. Venkat Subramaniam, Agile developer, Inc](https://www.youtube.com/watch?v=QYBRifsWHD0) `must-learn` | ||
- Sander Hoogendoorn: How Thinking Small is Changing Software Development Big Time [Video @ GOTO 2019](https://www.youtube.com/watch?v=YCQMiFF9QXM) | [Slides](https://www.slideshare.net/aahoogendoorn/its-a-small-world-after-all-how-thinking-small-changes-software-big-time) | ||
- Kevlin Henney: Enterprise Programming Tricks For Clean Code [Video](https://www.youtube.com/watch?v=dC9vdQkU-xI) | [Slides](https://www.slideshare.net/Kevlin/clean-coders-hate-what-happens-to-your-code-when-you-use-these-enterprise-programming-tricks-77305014) `must-learn` | ||
- BOOK [Clean Code](https://www.amazon.com/Clean-Code-Handbook-Software-Craftsmanship/dp/0132350882) | ||
- [Microservices](https://martinfowler.com/articles/microservices.html) `Roadmap:Advanced` | ||
- [Clean Code Cheat Sheet](https://www.bbv.ch/images/bbv/pdf/downloads/V2_Clean_Code_V3.pdf) `Roadmap:Entry` `must-learn` | ||
- [Pragmatic Programming Cheat Sheet](https://cheatography.com/marconlsantos/cheat-sheets/pragmatic-programming/) `Roadmap:Entry` | ||
- [BeckDesignRules](https://martinfowler.com/bliki/BeckDesignRules.html) `Roadmap:Entry` | ||
- [Essential XP: Emergent Design](https://ronjeffries.com/xprog/classics/expemergentdesign/) `Roadmap:Intermediate` | ||
- VIDEO [Mixed Paradigms: The Method to Madness. Venkat Subramaniam, Agile developer, Inc](https://www.youtube.com/watch?v=QYBRifsWHD0) `Roadmap:Entry` `must-learn` | ||
- Sander Hoogendoorn: How Thinking Small is Changing Software Development Big Time [Video @ GOTO 2019](https://www.youtube.com/watch?v=YCQMiFF9QXM) | [Slides](https://www.slideshare.net/aahoogendoorn/its-a-small-world-after-all-how-thinking-small-changes-software-big-time) `Roadmap:Entry` | ||
- Kevlin Henney: Enterprise Programming Tricks For Clean Code [Video](https://www.youtube.com/watch?v=dC9vdQkU-xI) | [Slides](https://www.slideshare.net/Kevlin/clean-coders-hate-what-happens-to-your-code-when-you-use-these-enterprise-programming-tricks-77305014) `Roadmap:Entry` `must-learn` | ||
- BOOK [Clean Code](https://www.amazon.com/Clean-Code-Handbook-Software-Craftsmanship/dp/0132350882) `Roadmap:Entry` | ||
|
||
## OOP | ||
|
||
- [Seven Virtues of a Good Object](https://www.yegor256.com/2014/11/20/seven-virtues-of-good-object.html) | ||
- [Getters/Setters. Evil. Period.](https://www.yegor256.com/2014/09/16/getters-and-setters-are-evil.html) `must-learn` | ||
- [Objects Should Be Immutable](https://www.yegor256.com/2014/06/09/objects-should-be-immutable.html) | ||
- [Why NULL is Bad?](https://www.yegor256.com/2014/05/13/why-null-is-bad.html) | ||
- [SOLID, GRASP, and Other Basic Principles of Object-Oriented Design](https://dzone.com/articles/solid-grasp-and-other-basic-principles-of-object-o) `must-learn` | ||
- [DDD Reference](https://domainlanguage.com/ddd/reference/) | ||
- [Design Patterns](https://sourcemaking.com/design_patterns) `must-learn` | ||
- [DESIGN PATTERNS](https://refactoring.guru/design-patterns) `must-learn` | ||
- [High Cohesion, Loose Coupling](https://thebojan.ninja/2015/04/08/high-cohesion-loose-coupling/) | ||
- [Summary of a four days DDD training](https://medium.com/@t.ferro184/summary-of-a-four-days-ddd-training-74103a6d99a1) | ||
- [Design Patterns for Humans!](https://github.com/kamranahmedse/design-patterns-for-humans) | ||
- [Object Calisthenics](https://williamdurand.fr/2013/06/03/object-calisthenics/) `must-learn` | ||
- Pim Elshoff: Technically DDD [Video @ DPC2018](https://www.youtube.com/watch?v=JpcNeeetijo) | [Slides](https://speakerdeck.com/pelshoff/technically-ddd-v3) | ||
- VIDEO [GOTO 2017 • The Many Meanings of Event-Driven Architecture • Martin Fowler](https://www.youtube.com/watch?v=STKCRSUsyP0) `must-learn` | ||
- BOOK [Design Patterns](https://www.amazon.com/Design-Patterns-Elements-Reusable-Object-Oriented/dp/0201633612) | ||
- BOOK [Domain-Driven Design: Tackling Complexity in the Heart of Software](https://www.amazon.com/Domain-Driven-Design-Tackling-Complexity-Software/dp/0321125215) | ||
- BOOK [The Anatomy Of Domain-Driven Design - Booklet](https://leanpub.com/theanatomyofdomain-drivendesign) | ||
- [Seven Virtues of a Good Object](https://www.yegor256.com/2014/11/20/seven-virtues-of-good-object.html) `Roadmap:Entry` | ||
- [Getters/Setters. Evil. Period.](https://www.yegor256.com/2014/09/16/getters-and-setters-are-evil.html) `Roadmap:Entry` `must-learn` | ||
- [Objects Should Be Immutable](https://www.yegor256.com/2014/06/09/objects-should-be-immutable.html) `Roadmap:Entry` | ||
- [Why NULL is Bad?](https://www.yegor256.com/2014/05/13/why-null-is-bad.html) `Roadmap:Entry` | ||
- [SOLID, GRASP, and Other Basic Principles of Object-Oriented Design](https://dzone.com/articles/solid-grasp-and-other-basic-principles-of-object-o) `Roadmap:Entry` `must-learn` | ||
- [DDD Reference](https://domainlanguage.com/product/domain-driven-design-reference/) `Roadmap:Intermediate` | ||
- [Design Patterns](https://sourcemaking.com/design_patterns) `Roadmap:Entry` `must-learn` | ||
- [DESIGN PATTERNS](https://refactoring.guru/design-patterns) `Roadmap:Entry` `must-learn` | ||
- [High Cohesion, Loose Coupling](https://thebojan.ninja/2015/04/08/high-cohesion-loose-coupling/) `Roadmap:Intermediate` | ||
- [Summary of a four days DDD training](https://medium.com/@t.ferro184/summary-of-a-four-days-ddd-training-74103a6d99a1) `Roadmap:Intermediate` | ||
- [Design Patterns for Humans!](https://github.com/kamranahmedse/design-patterns-for-humans) `Roadmap:Entry` | ||
- [Object Calisthenics](https://williamdurand.fr/2013/06/03/object-calisthenics/) `Roadmap:Entry` `must-learn` | ||
- Pim Elshoff: Technically DDD [Video @ DPC2018](https://www.youtube.com/watch?v=JpcNeeetijo) | [Slides](https://speakerdeck.com/pelshoff/technically-ddd-v3) `Roadmap:Intermediate` | ||
- VIDEO [GOTO 2017 • The Many Meanings of Event-Driven Architecture • Martin Fowler](https://www.youtube.com/watch?v=STKCRSUsyP0) `Roadmap:Advanced` `must-learn` | ||
- BOOK [Design Patterns](https://www.amazon.com/Design-Patterns-Elements-Reusable-Object-Oriented/dp/0201633612) `Roadmap:Entry` | ||
- BOOK [Domain-Driven Design: Tackling Complexity in the Heart of Software](https://www.amazon.com/Domain-Driven-Design-Tackling-Complexity-Software/dp/0321125215) `Roadmap:Intermediate` | ||
- BOOK [The Anatomy Of Domain-Driven Design - Booklet](https://leanpub.com/theanatomyofdomain-drivendesign) `Roadmap:Intermediate` | ||
|
||
## Functional | ||
|
||
- [Don't Be Scared Of Functional Programming](https://www.smashingmagazine.com/2014/07/dont-be-scared-of-functional-programming/) | ||
- [So You Want to be a Functional Programmer (Part 1)](https://medium.com/@cscalfani/so-you-want-to-be-a-functional-programmer-part-1-1f15e387e536) | ||
- [So You Want to be a Functional Programmer (Part 2)](https://medium.com/@cscalfani/so-you-want-to-be-a-functional-programmer-part-2-7005682cec4a) | ||
- [So You Want to be a Functional Programmer (Part 3)](https://medium.com/@cscalfani/so-you-want-to-be-a-functional-programmer-part-3-1b0fd14eb1a7) | ||
- [So You Want to be a Functional Programmer (Part 4)](https://medium.com/@cscalfani/so-you-want-to-be-a-functional-programmer-part-4-18fbe3ea9e49) | ||
- [So You Want to be a Functional Programmer (Part 5)](https://medium.com/@cscalfani/so-you-want-to-be-a-functional-programmer-part-5-c70adc9cf56a) | ||
- [So You Want to be a Functional Programmer (Part 6)](https://medium.com/@cscalfani/so-you-want-to-be-a-functional-programmer-part-6-db502830403) | ||
- [Benefits of Functional Programming by Example](https://medium.com/@nickmccurdy/benefits-of-functional-programming-by-example-76f1135b0b18) | ||
- [Don't Be Scared Of Functional Programming](https://www.smashingmagazine.com/2014/07/dont-be-scared-of-functional-programming/) `Roadmap:Intermediate` | ||
- [So You Want to be a Functional Programmer (Part 1)](https://medium.com/@cscalfani/so-you-want-to-be-a-functional-programmer-part-1-1f15e387e536) `Roadmap:Intermediate` | ||
- [So You Want to be a Functional Programmer (Part 2)](https://medium.com/@cscalfani/so-you-want-to-be-a-functional-programmer-part-2-7005682cec4a) `Roadmap:Intermediate` | ||
- [So You Want to be a Functional Programmer (Part 3)](https://medium.com/@cscalfani/so-you-want-to-be-a-functional-programmer-part-3-1b0fd14eb1a7) `Roadmap:Intermediate` | ||
- [So You Want to be a Functional Programmer (Part 4)](https://medium.com/@cscalfani/so-you-want-to-be-a-functional-programmer-part-4-18fbe3ea9e49) `Roadmap:Intermediate` | ||
- [So You Want to be a Functional Programmer (Part 5)](https://medium.com/@cscalfani/so-you-want-to-be-a-functional-programmer-part-5-c70adc9cf56a) `Roadmap:Intermediate` | ||
- [So You Want to be a Functional Programmer (Part 6)](https://medium.com/@cscalfani/so-you-want-to-be-a-functional-programmer-part-6-db502830403) `Roadmap:Intermediate` | ||
- [Benefits of Functional Programming by Example](https://medium.com/@nickmccurdy/benefits-of-functional-programming-by-example-76f1135b0b18) `Roadmap:Intermediate` | ||
|
||
## Algorithms | ||
|
||
- [IDEA – nonverbal algorithm assembly instructions](https://idea-instructions.com/) | ||
- [Algorithms](https://www.geeksforgeeks.org/fundamentals-of-algorithms/) | ||
- [Algorithms {fundamental techniques}](https://en.wikibooks.org/wiki/Algorithms) | ||
- Joshua Thijssen: Paradoxes and theorems every developer should know [Video @ DPC2017](https://www.youtube.com/watch?v=JBUIIQnVfBQ) | [Slides](https://speakerdeck.com/jaytaph/paradoxes-and-theorems-every-developer-should-know-3) `must-learn` | ||
- BOOK [Algorithms in a Nutshell](https://www.amazon.com/Algorithms-Nutshell-Desktop-Quick-Reference/dp/1491948922) | ||
- [IDEA – nonverbal algorithm assembly instructions](https://idea-instructions.com/) `Roadmap:Entry` | ||
- [Algorithms](https://www.geeksforgeeks.org/fundamentals-of-algorithms/) `Roadmap:Entry` | ||
- [Algorithms {fundamental techniques}](https://en.wikibooks.org/wiki/Algorithms) `Roadmap:Entry` | ||
- Joshua Thijssen: Paradoxes and theorems every developer should know [Video @ DPC2017](https://www.youtube.com/watch?v=JBUIIQnVfBQ) | [Slides](https://speakerdeck.com/jaytaph/paradoxes-and-theorems-every-developer-should-know-3) `Roadmap:Entry` `must-learn` | ||
- BOOK [Algorithms in a Nutshell](https://www.amazon.com/Algorithms-Nutshell-Desktop-Quick-Reference/dp/1491948922) `Roadmap:Entry` | ||
|
||
## Refactoring | ||
|
||
- [Refactoring](https://sourcemaking.com/refactoring) | ||
- BOOK [Refactoring](https://www.amazon.com/Refactoring-Improving-Design-Existing-Code/dp/0134757599) `must-learn` | ||
- BOOK [Refactoring to Patterns](https://www.amazon.com/Refactoring-Patterns-Joshua-Kerievsky/dp/0321213351) | ||
- [Refactoring](https://sourcemaking.com/refactoring) `Roadmap:Intermediate` | ||
- BOOK [Refactoring](https://www.amazon.com/Refactoring-Improving-Design-Existing-Code/dp/0134757599) `Roadmap:Intermediate` `must-learn` | ||
- BOOK [Refactoring to Patterns](https://www.amazon.com/Refactoring-Patterns-Joshua-Kerievsky/dp/0321213351) `Roadmap:Intermediate` | ||
|
||
## Antipatterns | ||
|
||
- [9 Anti-Patterns Every Programmer Should Be Aware Of](https://sahandsaba.com/nine-anti-patterns-every-programmer-should-be-aware-of-with-examples.html) | ||
- [Seven Microservices Anti-patterns](https://www.infoq.com/articles/seven-uservices-antipatterns/) | ||
- [AntiPatterns](https://sourcemaking.com/antipatterns) | ||
- [9 Anti-Patterns Every Programmer Should Be Aware Of](https://sahandsaba.com/nine-anti-patterns-every-programmer-should-be-aware-of-with-examples.html) `Roadmap:Intermediate` | ||
- [Seven Microservices Anti-patterns](https://www.infoq.com/articles/seven-uservices-antipatterns/) `Roadmap:Advanced` | ||
- [AntiPatterns](https://sourcemaking.com/antipatterns) `Roadmap:Intermediate` | ||
|
||
## Testing | ||
|
||
- [Mocks Aren't Stubs](https://martinfowler.com/articles/mocksArentStubs.html) | ||
- [Introduction to Test Driven Development (TDD)](http://agiledata.org/essays/tdd.html) `must` | ||
- [The beginner's guide to BDD (behaviour-driven development)](https://inviqa.com/blog/bdd-guide) `must` | ||
- [Types Of Software Testing: Different Testing Types With Details](https://www.softwaretestinghelp.com/types-of-software-testing/) | ||
- [The Practical Test Pyramid](https://martinfowler.com/articles/practical-test-pyramid.html) `must` | ||
- BOOK [Test Driven Development: By Example](https://www.amazon.com/Test-Driven-Development-By-Example/dp/0321146530) | ||
- [Mocks Aren't Stubs](https://martinfowler.com/articles/mocksArentStubs.html) `Roadmap:Intermediate` | ||
- [Introduction to Test Driven Development (TDD)](http://agiledata.org/essays/tdd.html) `Roadmap:Entry` `must` | ||
- [The beginner's guide to BDD (behaviour-driven development)](https://inviqa.com/blog/bdd-guide) `Roadmap:Intermediate` `must` | ||
- [Types Of Software Testing: Different Testing Types With Details](https://www.softwaretestinghelp.com/types-of-software-testing/) `Roadmap:Entry` | ||
- [The Practical Test Pyramid](https://martinfowler.com/articles/practical-test-pyramid.html) `Roadmap:Entry` `must` | ||
- BOOK [Test Driven Development: By Example](https://www.amazon.com/Test-Driven-Development-By-Example/dp/0321146530) `Roadmap:Entry` |
Oops, something went wrong.