@@ -27,7 +27,7 @@ have any feedback or suggestions for improvement!
2727- [ Avoid Premature Optimization] ( #avoid-premature-optimization )
2828- [ Boy-Scout Rule] ( #boy-scout-rule )
2929
30- ### Inter-Module/Class
30+ ### Relationships between modules, classes, components, entities
3131
3232- [ Connascence] ( #connascence )
3333- [ Minimise Coupling] ( #minimise-coupling )
@@ -37,7 +37,7 @@ have any feedback or suggestions for improvement!
3737- [ Robustness Principle] ( #robustness-principle )
3838- [ Inversion of Control] ( #inversion-of-control )
3939
40- ### Module/Class
40+ ### Modules, classes, components, entities
4141
4242- [ Maximise Cohesion] ( #maximise-cohesion )
4343- [ Liskov Substitution Principle] ( #liskov-substitution-principle )
6969
7070Resources
7171
72- - [ KISS principle] ( https://en.wikipedia.org/wiki/KISS_principle )
73- - [ Keep It Simple Stupid (KISS)] ( http://principles-wiki.net/principles:keep_it_simple_stupid )
72+ - [ KISS principle (wikipedia.org) ] ( https://en.wikipedia.org/wiki/KISS_principle )
73+ - [ Keep It Simple Stupid (KISS) (principles-wiki.net) ] ( http://principles-wiki.net/principles:keep_it_simple_stupid )
7474
7575## YAGNI
7676
8989
9090Resources
9191
92- - [ You Arent Gonna Need It] ( http://c2.com/xp/YouArentGonnaNeedIt.html )
93- - [ You’re NOT gonna need it!] ( https://ronjeffries.com/xprog/articles/practices/pracnotneed/ )
94- - [ You aren't gonna need it] ( https://en.wikipedia.org/wiki/You_aren%27t_gonna_need_it )
92+ - [ You Arent Gonna Need It (wiki.c2.com) ] ( http://c2.com/xp/YouArentGonnaNeedIt.html )
93+ - [ You’re NOT gonna need it! (ronjeffries.com) ] ( https://ronjeffries.com/xprog/articles/practices/pracnotneed/ )
94+ - [ You aren't gonna need it (wikipedia.org) ] ( https://en.wikipedia.org/wiki/You_aren%27t_gonna_need_it )
9595
9696## Do The Simplest Thing That Could Possibly Work
9797
106106
107107Resources
108108
109- - [ Do The Simplest Thing That Could Possibly Work] ( http://c2.com/xp/DoTheSimplestThingThatCouldPossiblyWork.html )
109+ - [ Do The Simplest Thing That Could Possibly Work (wiki.c2.com) ] ( http://c2.com/xp/DoTheSimplestThingThatCouldPossiblyWork.html )
110110
111111## Separation of Concerns
112112
139139
140140Resources
141141
142- - [ Separation of Concerns] ( https://en.wikipedia.org/wiki/Separation_of_concerns )
142+ - [ Separation of Concerns (wikipedia.org) ] ( https://en.wikipedia.org/wiki/Separation_of_concerns )
143143
144144## Keep things DRY
145145
@@ -172,19 +172,19 @@ How
172172
173173Resources
174174
175- - [ Dont Repeat Yourself] ( http://wiki.c2.com/?DontRepeatYourself )
176- - [ Don't repeat yourself] ( https://en.wikipedia.org/wiki/Don't_repeat_yourself )
177- - [ DRY Principle: Its Benefit and Cost with Examples] ( https://thevaluable.dev/dry-principle-cost-benefit-example/ )
175+ - [ Dont Repeat Yourself (wiki.c2.com) ] ( http://wiki.c2.com/?DontRepeatYourself )
176+ - [ Don't repeat yourself (wikipedia.org) ] ( https://en.wikipedia.org/wiki/Don't_repeat_yourself )
177+ - [ DRY Principle: Its Benefit and Cost with Examples (thevaluable.dev) ] ( https://thevaluable.dev/dry-principle-cost-benefit-example/ )
178178
179179Related
180180
181- - [ Abstraction principle] ( < https://en.wikipedia.org/wiki/Abstraction_principle_(computer_programming) > )
182- - [ Once And Only Once] ( http://wiki.c2.com/?OnceAndOnlyOnce ) is a subset of DRY
183- (also referred to as the goal of refactoring).
184- - [ Single Source of Truth] ( https://en.wikipedia.org/wiki/Single_Source_of_Truth )
181+ - [ Abstraction principle (wikipedia.org) ] ( < https://en.wikipedia.org/wiki/Abstraction_principle_(computer_programming) > )
182+ - [ Once And Only Once (wiki.c2.com) ] ( http://wiki.c2.com/?OnceAndOnlyOnce ) is a
183+ subset of DRY (also referred to as the goal of refactoring).
184+ - [ Single Source of Truth (wikipedia.org) ] ( https://en.wikipedia.org/wiki/Single_Source_of_Truth )
185185- A violation of DRY is [ WET] ( http://thedailywtf.com/articles/The-WET-Cart )
186186 (Write Everything Twice)
187- - [ Be careful with the code metric "duplicated lines"] ( https://rachelcarmena.github.io/2018/02/27/duplication-you-are-welcome.html )
187+ - [ Be careful with the code metric "duplicated lines" (rachelcarmena.github.io) ] ( https://rachelcarmena.github.io/2018/02/27/duplication-you-are-welcome.html )
188188
189189## Code For The Maintainer
190190
205205
206206Resources
207207
208- - [ Code For The Maintainer] ( http://wiki.c2.com/?CodeForTheMaintainer )
209- - [ The Noble Art of Maintenance Programming] ( https://blog.codinghorror.com/the-noble-art-of-maintenance-programming/ )
208+ - [ Code For The Maintainer (wiki.c2.com) ] ( http://wiki.c2.com/?CodeForTheMaintainer )
209+ - [ The Noble Art of Maintenance Programming (blog.codinghorror.com) ] ( https://blog.codinghorror.com/the-noble-art-of-maintenance-programming/ )
210210
211211## Avoid Premature Optimization
212212
@@ -228,14 +228,14 @@ Why
228228
229229How
230230
231- - [ Make It Work Make It Right Make It Fast] ( http://wiki.c2.com/?MakeItWorkMakeItRightMakeItFast )
231+ - [ Make It Work Make It Right Make It Fast (wiki.c2.com) ] ( http://wiki.c2.com/?MakeItWorkMakeItRightMakeItFast )
232232- Don't optimize until you need to, and only after profiling you discover a
233233 bottleneck to optimise.
234234
235235Resources
236236
237- - [ Program optimization] ( https://en.wikipedia.org/wiki/Program_optimization )
238- - [ Premature Optimization] ( http://wiki.c2.com/?PrematureOptimization )
237+ - [ Program optimization (wikipedia.org) ] ( https://en.wikipedia.org/wiki/Program_optimization )
238+ - [ Premature Optimization (wiki.c2.com) ] ( http://wiki.c2.com/?PrematureOptimization )
239239
240240## Boy Scout Rule
241241
258258
259259Resources
260260
261- - [ Opportunistic Refactoring] ( https://martinfowler.com/bliki/OpportunisticRefactoring.html )
261+ - [ Opportunistic Refactoring (martinfowler.com) ] ( https://martinfowler.com/bliki/OpportunisticRefactoring.html )
262262
263263## Connascence
264264
310310
311311Resources
312312
313- - [ Coupling] ( < https://en.wikipedia.org/wiki/Coupling_(computer_programming) > )
314- - [ Coupling And Cohesion] ( http://wiki.c2.com/?CouplingAndCohesion )
313+ - [ Coupling (wikipedia.org) ] ( < https://en.wikipedia.org/wiki/Coupling_(computer_programming) > )
314+ - [ Coupling And Cohesion (wiki.c2.com) ] ( http://wiki.c2.com/?CouplingAndCohesion )
315315
316316## Law of Demeter
317317
@@ -333,8 +333,8 @@ A method of an object may only call methods of:
333333
334334Resources
335335
336- - [ Law of Demeter] ( https://en.wikipedia.org/wiki/Law_of_Demeter )
337- - [ The Law of Demeter Is Not A Dot Counting Exercise] ( https://haacked.com/archive/2009/07/14/law-of-demeter-dot-counting.aspx/ )
336+ - [ Law of Demeter (wikipedia.org) ] ( https://en.wikipedia.org/wiki/Law_of_Demeter )
337+ - [ The Law of Demeter Is Not A Dot Counting Exercise (haacked.com) ] ( https://haacked.com/archive/2009/07/14/law-of-demeter-dot-counting.aspx/ )
338338
339339## Composition Over Inheritance
340340
359359
360360Resources
361361
362- - [ Composition over inheritance] ( https://en.wikipedia.org/wiki/Composition_over_inheritance )
363- - [ Favor Composition Over Inheritance] ( https://docs.microsoft.com/en-us/archive/blogs/thalesc/favor-composition-over-inheritance )
362+ - [ Composition over inheritance (wikipedia.org) ] ( https://en.wikipedia.org/wiki/Composition_over_inheritance )
363+ - [ Favor Composition Over Inheritance (docs.microsoft.com) ] ( https://docs.microsoft.com/en-us/archive/blogs/thalesc/favor-composition-over-inheritance )
364364
365365## Orthogonality
366366
@@ -375,7 +375,7 @@ Source: [Be Orthogonal](https://www.artima.com/intv/dry3.html)
375375> context; the key parameters are symmetry and consistency.
376376
377377Source:
378- [ Orthogonality] ( < https://en.wikipedia.org/wiki/Orthogonality_(programming) > )
378+ [ Orthogonality (wikipedia.org) ] ( < https://en.wikipedia.org/wiki/Orthogonality_(programming) > )
379379
380380## Robustness Principle
381381
400400
401401Resources
402402
403- - [ Robustness Principle in Wikipedia ] ( https://en.wikipedia.org/wiki/Robustness_principle )
404- - [ Tolerant Reader] ( https://martinfowler.com/bliki/TolerantReader.html )
403+ - [ Robustness Principle (wikipedia.org) ] ( https://en.wikipedia.org/wiki/Robustness_principle )
404+ - [ Tolerant Reader (martinfowler.com) ] ( https://martinfowler.com/bliki/TolerantReader.html )
405405
406406## Inversion of Control
407407
432432
433433Resources
434434
435- - [ Inversion of Control in Wikipedia ] ( https://en.wikipedia.org/wiki/Inversion_of_control )
436- - [ Inversion of Control Containers and the Dependency Injection pattern] ( https://www.martinfowler.com/articles/injection.html )
435+ - [ Inversion of Control (wikipedia.org) ] ( https://en.wikipedia.org/wiki/Inversion_of_control )
436+ - [ Inversion of Control Containers and the Dependency Injection pattern (martinfowler.com) ] ( https://www.martinfowler.com/articles/injection.html )
437437
438438## Maximise Cohesion
439439
457457
458458Resources
459459
460- - [ Cohesion] ( < https://en.wikipedia.org/wiki/Cohesion_(computer_science) > )
461- - [ Coupling And Cohesion] ( http://wiki.c2.com/?CouplingAndCohesion )
460+ - [ Cohesion (wikipedia.org) ] ( < https://en.wikipedia.org/wiki/Cohesion_(computer_science) > )
461+ - [ Coupling And Cohesion (wiki.c2.com) ] ( http://wiki.c2.com/?CouplingAndCohesion )
462462
463463## Liskov Substitution Principle
464464
@@ -471,8 +471,8 @@ The LSP is all about expected behavior of objects:
471471
472472Resources
473473
474- - [ Liskov substitution principle] ( https://en.wikipedia.org/wiki/Liskov_substitution_principle )
475- - [ Liskov Substitution Principle] ( http://www.blackwasp.co.uk/lsp.aspx )
474+ - [ Liskov substitution principle (wikipedia.org) ] ( https://en.wikipedia.org/wiki/Liskov_substitution_principle )
475+ - [ Liskov Substitution Principle (blackwasp.co.uk) ] ( http://www.blackwasp.co.uk/lsp.aspx )
476476
477477## Open/Closed Principle
478478
494494
495495Resources
496496
497- - [ Open Closed Principle] ( https://en.wikipedia.org/wiki/Open/closed_principle )
498- - [ The Open Closed Principle] ( https://blog.cleancoder.com/uncle-bob/2014/05/12/TheOpenClosedPrinciple.html )
497+ - [ Open Closed Principle (wikipedia.org) ] ( https://en.wikipedia.org/wiki/Open/closed_principle )
498+ - [ The Open Closed Principle (blog.cleancoder.com) ] ( https://blog.cleancoder.com/uncle-bob/2014/05/12/TheOpenClosedPrinciple.html )
499499
500500## Single Responsibility Principle
501501
518518
519519Resources
520520
521- - [ Single responsibility principle] ( https://en.wikipedia.org/wiki/Single_responsibility_principle )
521+ - [ Single responsibility principle (wikipedia.org) ] ( https://en.wikipedia.org/wiki/Single_responsibility_principle )
522522
523523## Hide Implementation Details
524524
@@ -539,15 +539,15 @@ How
539539
540540Resources
541541
542- - [ Information hiding] ( https://en.wikipedia.org/wiki/Information_hiding )
542+ - [ Information hiding (wikipedia.org) ] ( https://en.wikipedia.org/wiki/Information_hiding )
543543
544544## Curly's Law
545545
546546Curly's Law is about choosing a single, clearly defined goal for any particular
547547bit of code: Do One Thing.
548548
549- - [ Curly's Law: Do One Thing] ( https://blog.codinghorror.com/curlys-law-do-one-thing/ )
550- - [ The Rule of One or Curly’s Law] ( http://grsmentor.com/blog/the-rule-of-one-or-curlys-law/ )
549+ - [ Curly's Law: Do One Thing (blog.codinghorror.com) ] ( https://blog.codinghorror.com/curlys-law-do-one-thing/ )
550+ - [ The Rule of One or Curly’s Law (grsmentor.com) ] ( http://grsmentor.com/blog/the-rule-of-one-or-curlys-law/ )
551551
552552## Encapsulate What Changes
553553
566566
567567Resources
568568
569- - [ Encapsulate the Concept that Varies] ( http://principles-wiki.net/principles:encapsulate_the_concept_that_varies )
570- - [ Encapsulate What Varies] ( https://blogs.msdn.microsoft.com/steverowe/2007/12/26/encapsulate-what-varies/ )
571- - [ Information hiding] ( https://en.wikipedia.org/wiki/Information_hiding )
569+ - [ Encapsulate the Concept that Varies (principles-wiki.net) ] ( http://principles-wiki.net/principles:encapsulate_the_concept_that_varies )
570+ - [ Encapsulate What Varies (blogs.msdn.microsoft.com) ] ( https://blogs.msdn.microsoft.com/steverowe/2007/12/26/encapsulate-what-varies/ )
571+ - [ Information hiding (wikipedia.org) ] ( https://en.wikipedia.org/wiki/Information_hiding )
572572
573573## Interface Segregation Principle
574574
590590
591591Resources
592592
593- - [ Interface segregation principle] ( https://en.wikipedia.org/wiki/Interface_segregation_principle )
593+ - [ Interface segregation principle (wikipedia.org) ] ( https://en.wikipedia.org/wiki/Interface_segregation_principle )
594594
595595## Command Query Separation
596596
616616
617617Resources
618618
619- - [ Command Query Separation in Wikipedia ] ( https://en.wikipedia.org/wiki/Command%E2%80%93query_separation )
620- - [ Command Query Separation by Martin Fowler ] ( https://martinfowler.com/bliki/CommandQuerySeparation.html )
619+ - [ Command Query Separation (wikipedia.org) ] ( https://en.wikipedia.org/wiki/Command%E2%80%93query_separation )
620+ - [ Command Query Separation (martinfowler.com) ] ( https://martinfowler.com/bliki/CommandQuerySeparation.html )
621621
622622## SOLID
623623
@@ -646,5 +646,5 @@ _Assert_ that the expected results have occurred.
646646
647647Resources
648648
649- - [ Arrange Act Assert] ( https://wiki.c2.com/?ArrangeActAssert )
650- - [ 3A - Arrange, Act, Assert] ( https://xp123.com/articles/3a-arrange-act-assert/ )
649+ - [ Arrange Act Assert (wiki.c2.com) ] ( https://wiki.c2.com/?ArrangeActAssert )
650+ - [ 3A - Arrange, Act, Assert (xp123.com) ] ( https://xp123.com/articles/3a-arrange-act-assert/ )
0 commit comments