{"id":1297,"date":"2021-06-08T12:25:08","date_gmt":"2021-06-08T12:25:08","guid":{"rendered":"https:\/\/www.codecrafttech.com\/resources\/?p=1297"},"modified":"2023-04-28T06:59:15","modified_gmt":"2023-04-28T06:59:15","slug":"solid-design","status":"publish","type":"post","link":"https:\/\/www.codecrafttech.com\/resources\/whitepapers\/solid-design.html","title":{"rendered":"SOLID Design: Understanding Design Systems"},"content":{"rendered":"<p><span style=\"font-weight: 400;\">First explored by Robert C Martin in 2000, SOLID design principles are an important aspect of object oriented design. They play a pivotal role in making software designs more understandable, flexible and maintainable, all while improving the code quality. In this whitepaper about SOLID design, we shall explore the tenets of the principles and how they have changed the way software is written.\u00a0<\/span><\/p>\n<p><b>Let\u2019s venture into a TLDR about what this would entail:<\/b><\/p>\n<h2><span style=\"font-weight: 400;\">What is SOLID design?<\/span><\/h2>\n<p><span style=\"font-weight: 400;\">The term SOLID design is an acronym used to describe five popular principles which help in producing revolutionary software. These are<\/span><\/p>\n<p><img decoding=\"async\" class=\"alignnone size-full wp-image-1720 lazyload\" data-src=\"https:\/\/www.codecrafttech.com\/resources\/wp-content\/uploads\/2021\/06\/Icons-06-scaled.jpg\" alt=\"Why we need SOLID design principles\" width=\"2560\" height=\"1792\" data-srcset=\"https:\/\/www.codecrafttech.com\/resources\/wp-content\/uploads\/2021\/06\/Icons-06-scaled.jpg 2560w, https:\/\/www.codecrafttech.com\/resources\/wp-content\/uploads\/2021\/06\/Icons-06-768x538.jpg 768w, https:\/\/www.codecrafttech.com\/resources\/wp-content\/uploads\/2021\/06\/Icons-06-1536x1075.jpg 1536w, https:\/\/www.codecrafttech.com\/resources\/wp-content\/uploads\/2021\/06\/Icons-06-2048x1434.jpg 2048w\" data-sizes=\"(max-width: 2560px) 100vw, 2560px\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 2560px; --smush-placeholder-aspect-ratio: 2560\/1792;\" \/><b>1 . Single Responsibility Principle-<\/b> This first principle of SOLID design denotes that every class should only have one responsibility.<\/p>\n<p><b>2 . Open-Close Principle-<\/b><span style=\"font-weight: 400;\"> The second principle denotes that a class or a module must be open for extension but closed for modification.\u00a0<\/span><\/p>\n<p><b>3 . Liskow Substitution Principle-<\/b><span style=\"font-weight: 400;\"> Objects should be replaceable with instances of their subtypes while not having an affect on the program.<\/span><\/p>\n<p><b>4 . Interface Segregation Principle-<\/b><span style=\"font-weight: 400;\"> Client should have the liberty to use the interface of their choice as long as it comes with the required principles.\u00a0<\/span><\/p>\n<p><b>5 . Dependency Inversion Principle- <\/b><span style=\"font-weight: 400;\">Dependency on abstractions and not concretions.\u00a0<\/span><\/p>\n<p>&nbsp;<\/p>\n<h2><span style=\"font-weight: 400;\">SOLID Design Principles: A TLDR<\/span><\/h2>\n<p><span style=\"font-weight: 400;\">In conclusion, the SOLID design principles provide a framework for creating software that is flexible, maintainable, and scalable. By following these principles, developers can reduce the likelihood of bugs and ensure that their code is easy to modify and extend over time. As you&#8217;ve seen in our whitepaper, the SOLID principles are a powerful tool for improving the quality of your software development.\u00a0<\/span><\/p>\n<p>&nbsp;<\/p>\n<p><span style=\"font-weight: 400;\">If you&#8217;re looking to build more reliable and robust software, the experts at CodeCraft highly recommend delving deeper into SOLID and putting these principles into practice. To learn more, be sure to check out our attached whitepaper, which dives into the details of each SOLID principle and provides real-world examples of how they can be applied in practice.<\/span><\/p>\n","protected":false},"excerpt":{"rendered":"<p>First explored by Robert C Martin in 2000, SOLID design principles are an important aspect of object oriented design. They play a pivotal role in making software designs more understandable, flexible and maintainable, all while improving the code quality. In this whitepaper about SOLID design, we shall explore the tenets of the principles and how [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":1576,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"_mo_disable_npp":"no","_uf_show_specific_survey":0,"_uf_disable_surveys":false,"footnotes":""},"categories":[24],"tags":[65],"class_list":["post-1297","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-whitepapers","tag-design-principles"],"acf":[],"aioseo_notices":[],"_links":{"self":[{"href":"https:\/\/www.codecrafttech.com\/resources\/wp-json\/wp\/v2\/posts\/1297","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.codecrafttech.com\/resources\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.codecrafttech.com\/resources\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.codecrafttech.com\/resources\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.codecrafttech.com\/resources\/wp-json\/wp\/v2\/comments?post=1297"}],"version-history":[{"count":23,"href":"https:\/\/www.codecrafttech.com\/resources\/wp-json\/wp\/v2\/posts\/1297\/revisions"}],"predecessor-version":[{"id":1725,"href":"https:\/\/www.codecrafttech.com\/resources\/wp-json\/wp\/v2\/posts\/1297\/revisions\/1725"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.codecrafttech.com\/resources\/wp-json\/wp\/v2\/media\/1576"}],"wp:attachment":[{"href":"https:\/\/www.codecrafttech.com\/resources\/wp-json\/wp\/v2\/media?parent=1297"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.codecrafttech.com\/resources\/wp-json\/wp\/v2\/categories?post=1297"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.codecrafttech.com\/resources\/wp-json\/wp\/v2\/tags?post=1297"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}