Mailing list
If you like this book, please consider spreading the word or buying me a coffee
Before creating a complex software system one needs to lie down a solid foundation. General Responsibility Assignment Software Principles (GRASP) are guidelines to assign responsibilities to software classes in object-oriented programming.
Unfortunately, many resources for learning these principles do not consider the role of the type system and the programming language. To mitigate this problem, this book explores how the type system influences how one can write these programming principles. Since static and dynamic languages bring different benefits and drawbacks, this book contains examples in Java 8 and Python 3.4.
The book targets young software engineers, developers and self-taught programmers familiar with object-oriented programming but seeking on improving the code they write. It is also interesting to programmers who want to understand the difference when writing clean code in a static and dynamic language.
After reading this book you will be able to apply GRASP principles in static and dynamic languages and make an informed decision before hacking on your next project.
This book shows how to write flexible and maintainable code through GRASP principles. However, it is not a definitive guide to any programming language but a starting point to writing better software. The book puts special emphasis on the language of choice whether it is a dynamic or static language.
GRASP principles for the Object-oriented mind gradually explains the concepts needed to write GRASP principles in any object-oriented language. It is a beginner’s guide to design better object-oriented code and helps you to create a solid foundation.
Unit 1 highlights the common problems in today’s IT industry: new concepts are not silver bullets that fix all problems with your software.
Unit 2 starts with a reminder of the different type systems, and finishes with a comparison between them.
Unit 3 introduces the Unified Modelling Language (UML), its importance and its syntactic notation. The book will use this notation in all examples together with its code.
Unit 4 explains common concepts in object-oriented programming: inheritance, mixins and static classes among others.
Unit 5 describes the case study used in the next chapter.
Unit 6 explains and shows how GRASP principles are applied in different programming languages.
Unit 7 and 8 analyses open source projects, finding points where GRASP principles are applied and where they should have been applied.