Skip to content

Instantly share code, notes, and snippets.

@diegopacheco
Last active January 18, 2022 00:51
Show Gist options
  • Save diegopacheco/4382777 to your computer and use it in GitHub Desktop.
Save diegopacheco/4382777 to your computer and use it in GitHub Desktop.
Software Design Resources

Software Design Resources

Abstractions

http://en.wikipedia.org/wiki/Abstraction_(computer_science)
http://www.infoq.com/presentations/Language-Expressiveness
http://www.joelonsoftware.com/articles/DevelopmentAbstraction.html
http://artofsoftwarereuse.com/
https://matthewstrom.com/writing/doubt/

Patterns

http://en.wikipedia.org/wiki/Design_pattern
http://sourcemaking.com/design_patterns
http://blogs.agilefaqs.com/2008/09/05/why-are-design-patterns-important/
http://www.oodesign.com/
http://www.javacamp.org/designPattern/
http://www.javaworld.com/columns/jw-java-design-patterns-index.html
http://norvig.com/design-patterns/

Agile Design / Modeling

http://www.agilemodeling.com/essays/agileDesign.htm
http://www.agilemodeling.com/

RDD

http://www.wirfs-brock.com/Design.html
http://en.wikipedia.org/wiki/Responsibility-driven_design
http://www.ece.uprm.edu/~borges/CRC.pdf
http://www.cs.colorado.edu/~kena/classes/6448/s05/lectures/lecture05.pdf
http://c2.com/cgi/wiki?ResponsibilityDrivenDesign
http://www.methodsandtools.com/archive/archive.php?id=90
http://www.infoq.com/presentations/What-Drives-Design-Rebecca-Wirfs-Brock

OO

http://en.wikipedia.org/wiki/Object-oriented_design
http://en.wikipedia.org/wiki/SOLID_(object-oriented_design)
http://c2.com/cgi/wiki?PrinciplesOfObjectOrientedDesign
http://blogs.agilefaqs.com/2008/09/05/different-approaches-to-oo-design/
http://blogs.agilefaqs.com/2008/09/22/micro-design-vs-macro-design-vs-bufd/
http://www.codeproject.com/Articles/186107/Object-Orientation-Beginners-Tutorial
http://www.slideshare.net/sudarsun/object-oriented-design
http://programmers.stackexchange.com/questions/96192/how-to-become-good-at-object-oriented-analysis-and-design-ooad
http://www.infoq.com/presentations/principles-agile-oo-design
http://www.infoq.com/news/2010/05/sufficient-design
http://www.infoq.com/presentations/Practice-Based-Design-L-Suchman
http://www.infoq.com/news/2008/05/adopting-simple-design
http://www.infoq.com/presentations/The-Code-is-the-Design

Functional

http://clojure.org/rationale
http://harmful.cat-v.org/software/OO_programming/why_oo_sucks
http://pyvideo.org/video/880/stop-writing-classes
http://michaelfeathers.typepad.com/michael_feathers_blog/2012/04/type-driven-development.html
http://www.infoq.com/presentations/SOLID-Clojure
http://www.dev.gd/20121224-understanding-map-filter-and-fold.html
http://tgoossens.wordpress.com/2012/12/07/dynamically-exploring-clojure/?utm_source=dlvr.it&utm_medium=twitter
http://stackoverflow.com/questions/5676301/scala-currying-and-default-arguments
http://sw1nn.com/blog/2012/04/11/clojure-stm-what-why-how/?utm_source=feedburner&utm_medium=feed&utm_campaign=Feed%3A+sw1nn+%28Neale+Swinnerton%27s+blog%29
http://www.youtube.com/watch?v=9fohXBj2UEI
http://confusion.tweakblogs.net/blog/1418/why-functional-programming-doesnt-catch-on.html/
http://gleichmann.wordpress.com/2010/11/21/functional-scala-comprehending-comprehensions/
http://channel9.msdn.com/Series/C9-Lectures-Erik-Meijer-Functional-Programming-Fundamentals/C9-Lectures-Dr-Erik-Meijer-Functional-Programming-Fundamentals-Chapter-3-of-13
http://devlicio.us/blogs/christopher_bennage/archive/2010/09/06/what-is-functional-programming.aspx
http://www.infoq.com/presentations/Functional-Thinking
http://c2.com/cgi/wiki?FunctionalProgramming
http://www.infoq.com/interviews/stuart_holloway_clojure
http://landoflisp.com/
http://www.artima.com/scalazine/articles/goals_of_scala.html
http://www.codecommit.com/blog/scala/is-scala-not-functional-enough
http://www.javalimit.com/2011/05/erlang-is-not-a-concurrent-functional-programming-language.html
http://www.codecommit.com/blog/scala/function-currying-in-scala
http://www.infoq.com/presentations/Thinking-in-Data
http://stackoverflow.com/questions/327955/does-functional-programming-replace-gof-design-patterns
http://www.ibm.com/developerworks/java/library/j-ft10/index.html
http://lorgonblog.wordpress.com/2008/09/22/how-does-functional-programming-affect-the-structure-of-your-code/

Data Structures

http://en.wikipedia.org/wiki/Data_structure
http://www.cs.auckland.ac.nz/~jmor159/PLDS210/ds_ToC.html
http://www.infoq.com/presentations/Functional-Data-Structures-in-Scala
http://www.cs.cmu.edu/~rwh/theses/okasaki.pdf
http://docs.oracle.com/javase/6/docs/technotes/guides/collections/index.html

Tests

http://en.wikipedia.org/wiki/Test-driven_development
http://www.drdobbs.com/tdd-is-about-design-not-testing/229218691
http://blogs.agilefaqs.com/2008/09/22/unit-tests-validates-micro-design/
http://confreaks.com/videos/315-agileroots2010-test-driven-design-coupling-loosely
http://stackoverflow.com/questions/3494961/how-do-you-design-complex-systems-with-tdd
http://www.adampetersen.se/articles/designintdd.htm
http://www.slideshare.net/fkalseth/test-driven-developmentdesign
http://www.netobjectives.com/blogs/test-driven-development-and-design-patterns
http://agilecoach.typepad.com/agile-coaching/2012/03/bdd-in-a-nutshell.html

Rich Hickey

http://www.infoq.com/presentations/Are-We-There-Yet-Rich-Hickey
http://www.infoq.com/presentations/Value-Identity-State-Rich-Hickey
http://www.infoq.com/presentations/Simple-Made-Easy-QCon-London-2012
http://www.infoq.com/presentations/The-Design-of-Datomic
http://www.infoq.com/presentations/Value-Values
http://www.infoq.com/presentations/Datomic-Database-Values

REST

http://architects.dzone.com/news/common-rest-design-pattern
http://www.slideshare.net/cesare.pautasso/some-rest-design-patterns-and-antipatterns
http://www.infoq.com/presentations/Some-REST-Design-Patterns
http://abhisarswami.blogspot.com.br/2012/05/rest-design-pattern.html
http://blog.programmableweb.com/2010/08/13/api-anti-patterns-how-to-avoid-common-rest-mistakes/
http://info.apigee.com/Portals/62317/docs/web%20api.pdf

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment