{"id":3237,"date":"2026-01-30T00:00:00","date_gmt":"2026-01-29T23:00:00","guid":{"rendered":"https:\/\/kunden.weissblaumedia.de\/microconsult\/2019\/05\/21\/fl_solid-prinzipien\/"},"modified":"2026-02-09T07:25:07","modified_gmt":"2026-02-09T06:25:07","slug":"fl_solid-principles","status":"publish","type":"post","link":"https:\/\/www.microconsult.de\/en\/fl_solid-prinzipien\/","title":{"rendered":"The SOLID Principles \u2013 Five principles for better software"},"content":{"rendered":"<p><strong>Software quality isn&#039;t always ideal in every project. Software engineering aims to improve the code in all its aspects. These five principles will help you achieve that goal. Because good code is motivating!<\/strong><\/p>\n<p><!--more--><\/p>\n<p>You often hear statements like: &quot;Why should I even bother writing good code? Nobody cares anyway. The main thing is that the project is finished!&quot; A large number of programmers are content with bad source code \u2013 true to the motto: &quot;What&#039;s the problem? It works, doesn&#039;t it?&quot;\u201e<\/p>\n<p><strong>But the price of bad code is high:<\/strong><\/p>\n<ul>\n<li>High maintenance costs<\/li>\n<li>High costs for further development<\/li>\n<li>Extensive troubleshooting<\/li>\n<\/ul>\n<p>The internal quality of the code therefore contributes to a reduction in overall costs in the long term.<\/p>\n<h4>Why is good code still important?<\/h4>\n<ul>\n<li>Writing code is a relatively small part of software development. Approximately 801,000 of the costs are attributable to the subsequent steps. <strong>maintenance<\/strong>.<\/li>\n<li>Little new code is being written. The main work consists of making changes. The largest part of the work is not coding, but... <strong>Understanding (reading) code<\/strong>.<\/li>\n<li>Bug fixes in incomprehensible code quickly generate errors. <strong>new errors<\/strong>.<\/li>\n<li>If at the beginning of the project at the expense of <strong>Code quality<\/strong> While time may be saved, it will ultimately cost many times more than the time saved at the end of the project.<\/li>\n<\/ul>\n<p>In principle, every (experienced) developer knows that bad code hinders work. However, it happens time and again that chaotic code is written due to high pressure in order to meet deadlines.<\/p>\n<p>But that doesn&#039;t work. Bad code slows down progress and deadlines are missed. There&#039;s only one way: write clean code from the start!<\/p>\n<h4>What is clean code?<\/h4>\n<ul>\n<li>Clean code is easier to read.<\/li>\n<li>Other developers can read and understand it better.<\/li>\n<li>Classes and methods are geared towards fulfilling a task and are not &quot;contaminated&quot; by secondary tasks.<\/li>\n<li>Dependencies on other code are kept to a minimum.<\/li>\n<li>Clean code is good to test.<\/li>\n<li>There are no duplicates.<\/li>\n<li>The code contains no surprises.<\/li>\n<\/ul>\n<h4>Good code motivates<\/h4>\n<ul>\n<li>Everyone involved is proud of their work.<\/li>\n<li>Programming is more fun.<\/li>\n<li>The code contains fewer errors.<\/li>\n<li>Good code is easier to test.<\/li>\n<\/ul>\n<p>For the employee working on the project, this means: Good code reduces unpleasant work.<\/p>\n<h4>The checklist for clean code<\/h4>\n<p>To facilitate the creation of good code, several principles for software development have been formulated. These can be seen as a kind of checklist that helps developers reflect on their work in their daily tasks and avoid errors and critical constructs from the outset.<\/p>\n<p>Prominent representatives of such principles are the <a href=\"https:\/\/de.wikipedia.org\/wiki\/Prinzipien_objektorientierten_Designs\" target=\"_blank\" rel=\"noopener\">SOLID principles<\/a>. SOLID was developed by <a href=\"https:\/\/en.wikipedia.org\/wiki\/Robert_C._Martin\" target=\"_blank\" rel=\"noopener\">Robert C. Martin<\/a> coined. It is an acronym and stands for:<\/p>\n<ul>\n<li><strong>S<\/strong>single responsibility principle<\/li>\n<li><strong>O<\/strong>pen-closed principle<\/li>\n<li><strong>L<\/strong>Iskov&#039;s substitution principle<\/li>\n<li><strong>I<\/strong>Interface segregation principle<\/li>\n<li><strong>D<\/strong>ependency inversion principle<\/li>\n<\/ul>\n<p>Following these principles results in better code and more maintainable software.<\/p>\n<h4>The single responsibility principle<\/h4>\n<p>The Single Responsibility principle states that <strong>One class, only one responsibility<\/strong> Changes to the functionality should only affect a few classes. The more code that needs to be changed, the higher the risk of errors.<\/p>\n<p>Failure to adhere to this principle leads to excessive dependencies and interconnectedness. It&#039;s like in real life: beyond a certain size, a universal tool becomes unwieldy.<\/p>\n<p><strong>How can it be determined whether the class has completed more than one task?<\/strong><br \/>\nThe class may only have one reason for change. If two requirements change, only one of them may affect the class. If the class has multiple reasons for change, it is fulfilling too many tasks.<\/p>\n<p><strong>Therefore, it is better to have many small classes than a few large ones.<\/strong><br \/>\nThe code doesn&#039;t become more extensive \u2013 it&#039;s just organized differently. An analogy from the workshop: If all the screws are in one box, it&#039;s difficult to find the right one. If they&#039;re well-organized and distributed across several boxes, the search is much faster. The same principle applies to classes.<\/p>\n<h4>The open-closed principle<\/h4>\n<p>Following the open-closed principle, a class should <strong>Open to extensions, but closed to modifications<\/strong> The behavior of a class may be extended, but not changed. This principle helps to avoid errors in already completed code. If an extension can only be achieved by making changes within a class, there is a very high risk that the change will introduce new errors into already implemented functions.<\/p>\n<p>The open-closed principle can usually be achieved in two ways:<\/p>\n<ul>\n<li>Inheritance<\/li>\n<li>Use of interfaces<\/li>\n<\/ul>\n<p>By adhering to this principle, new functions can be added to an application without modifying existing classes.<\/p>\n<p>Even in the (non-object-oriented) C library, examples of this principle can be found, e.g., the implementation of the Quick Sort function:<\/p>\n<pre>void qsort(void *base, size_t num, size_t size, int (*comparer)(void *element1, void *element2));<\/pre>\n<p>To be able to sort a custom data type, it is not necessary to... <em>qsort<\/em>The function can be rewritten. The algorithm itself always remains the same. The user simply needs to pass their own comparison function to the algorithm. This achieves extensibility without having to change the algorithm.<\/p>\n<h4>The Liskov substitution principle<\/h4>\n<p>The Liskov substitution principle requires that <strong>Derived classes can always be used in place of their base class.<\/strong> They must be. Subtypes must behave like their base type. That sounds obvious, but is it? The compiler knows that a derived class is also of the same type as the base class\u2014meaning it can always be converted back to it. Is that sufficient? The Liskov Substitution Principle goes further than the compiler.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-1132\" src=\"https:\/\/www.microconsult.de\/blog\/wp-content\/uploads\/2019\/05\/Bild1-Liskovsches-Substitutionsprinzip.png\" alt=\"Liskov substitution principle\" width=\"139\" height=\"256\" data-wp-pid=\"1132\" \/><\/p>\n<p><em>Figure 1: Liskov Substitution Principle<\/em><\/p>\n<p>If a method has a parameter of type <em>base<\/em> (from image 1) expected, e.g. <em>public void DoWhatGreat(Base b)<\/em>, it should make no difference whether an object is of type <em>base<\/em> or of the derived type <em>Derived<\/em> will be handed over. In the class <em>Derived<\/em> It must be ensured that the behavior is correct from the perspective of the method. <em>DoSomethingGreat()<\/em> is identical to the class <em>base<\/em>.<\/p>\n<p>For example, if the method of the base class does not throw exceptions, then the method of the derived class must also not throw exceptions. A derived class may extend its base class, but not restrict or modify it. Unfortunately, this principle is often disregarded. Unit tests can ensure that a violation of the Liskov Substitution Principle is not inadvertently introduced into the software.<\/p>\n<h4>The interface segregation principle<\/h4>\n<p>The interface segregation principle states that a client should not depend on server functions that it does not actually need. Therefore, an interface should not... <strong>It only includes functions that are truly closely related.<\/strong>. The problem is that &quot;fat&quot; interfaces create couplings between otherwise independent clients.<\/p>\n<p>Changing any aspect of the interface affects all clients \u2013 even those that don&#039;t use that aspect. A clear example of this is Java&#039;s AWT library: If the goal is simply to react to the window closing event, all methods of the interface must be modified. <em>WindowListener<\/em> be implemented (Figure 2).<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-1133\" src=\"https:\/\/www.microconsult.de\/blog\/wp-content\/uploads\/2019\/05\/Bild2-WindowListener.png\" alt=\"WindowListener\" width=\"1247\" height=\"671\" data-wp-pid=\"1133\" \/><\/p>\n<p><em>Image 2: WindowListener<\/em><\/p>\n<p>What can be done if such an interface exists and cannot be modified? An adapter can be used (Adapter design pattern). This adapter implements all methods of the interface with a dummy implementation and makes them available virtually. Here again, Java&#039;s AWT library serves as an example. It provides such an adapter for the previously shown example.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-1134\" src=\"https:\/\/www.microconsult.de\/blog\/wp-content\/uploads\/2019\/05\/Bild3-Adapter.png\" alt=\"adapter\" width=\"1046\" height=\"315\" data-wp-pid=\"1134\" \/><\/p>\n<p><em>Image 3: Adapter<\/em><\/p>\n<h4>The Dependency Inversion Principle<\/h4>\n<p>The dependency inversion principle states that classes at a higher level of abstraction should not depend on classes at a lower level of abstraction. This is not about simply reversing the dependencies. Dependencies between classes should no longer exist; <strong>Only dependencies on interfaces should remain.<\/strong> (Both sides). Interfaces should not depend on details, but rather details should depend on interfaces. Example: The classes in Figure 4 are too tightly coupled.<\/p>\n<p>The dependencies are so strong that testing a class separately is impossible without code changes. Changes in requirements are also more difficult to implement due to this tight coupling.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-1135\" src=\"https:\/\/www.microconsult.de\/blog\/wp-content\/uploads\/2019\/05\/Bild4-Starke-Kopplung.png\" alt=\"Strong coupling\" width=\"355\" height=\"111\" data-wp-pid=\"1135\" \/><\/p>\n<p><em>Figure 4: Strong coupling<\/em><\/p>\n<h4>Solution proposal 1: Constructor parameters<\/h4>\n<p>Aggregation is replaced by association, and the dependency on a specific class is changed to a dependency on an interface (Figure 5). The concrete object (of the class) <em>Logger<\/em>) is passed as a parameter to the constructor of the class <em>bank<\/em> handed over. This is a very simple, but only conditionally flexible solution.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-1136\" src=\"https:\/\/www.microconsult.de\/blog\/wp-content\/uploads\/2019\/05\/Bild5-Schwache-Kopplung.png\" alt=\"Weak coupling\" width=\"380\" height=\"239\" data-wp-pid=\"1136\" \/><\/p>\n<p><em>Figure 5: Weak coupling through association<\/em><\/p>\n<h4>Solution proposal 2: IoC container (IoC: Inversion of Control)<\/h4>\n<p>Aggregation is replaced by association, and the dependency on a specific class is changed to a dependency on an interface. The concrete implementation registers with the IoC container (Figure 6). The user (the class <em>bank<\/em>) queries the IoC container for an implementation of the interface used (here <em>ILogger<\/em>).<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-1137\" src=\"https:\/\/www.microconsult.de\/blog\/wp-content\/uploads\/2019\/05\/Bild6-Nutzung-eines-IoC-Containers.png\" alt=\"\" width=\"522\" height=\"244\" data-wp-pid=\"1137\" \/><\/p>\n<p><em>Figure 6: Use of an IoC container<\/em><\/p>\n<h4>Conclusion<\/h4>\n<p>There&#039;s always an excuse for why you can&#039;t write good code right now. But it will always remain just an excuse \u2013 there&#039;s no valid reason to write bad code.<\/p>\n<p>The principles shown here are guidelines to help developers improve code quality in their daily work. The (small) effort pays off very quickly. Changes become easier, and testing and debugging are also accelerated.<\/p>\n<p>In the <strong><a href=\"https:\/\/www.microconsult.de\/en\/training-consulting\/training\/clean-code-fuer-c-programme-softwareentwicklung-als-handwerkskunst-der-weg-zum-clean-code\/aaaadxk\/\" target=\"_blank\" rel=\"noopener\">MicroConsult seminar on the topic of clean code<\/a><\/strong> Learn the most important principles, rules, and practices for creating practical, maintainable software based on the principles of &quot;Clean Code.&quot; Refactoring allows you to optimize code structure and reduce the complexity of your software. This improves the quality of existing source code and ensures the quality of new software projects from the outset. <a href=\"https:\/\/www.microconsult.de\/en\/training-consulting\/training\/clean-code-fuer-c-programme-softwareentwicklung-als-handwerkskunst-der-weg-zum-clean-code\/aaaadxk\/\" target=\"_blank\" rel=\"noopener\">Register now!<\/a><\/p>\n<h3>Further information<\/h3>\n<p><strong><a href=\"https:\/\/www.microconsult.de\/en\/training-consulting\/training\/clean-code-fuer-c-programme-softwareentwicklung-als-handwerkskunst-der-weg-zum-clean-code\/aaaadxk\/\" target=\"_blank\" rel=\"noopener\">MicroConsult Training: Clean Code for C Programs<\/a><\/strong><\/p>\n<p><strong><a href=\"https:\/\/www.microconsult.de\/en\/training-consulting\/trainings\/qualitaet-im-programmcode\/aaaakea\/\" target=\"_blank\" rel=\"noopener\">MicroConsult Training &amp; Coaching on the topic of software quality<\/a><\/strong><\/p>\n<p><a href=\"https:\/\/www.microconsult.de\/en\/quality-and-safety\/\" target=\"_blank\" rel=\"noopener\"><strong>MicroConsult expertise on the topic of software quality<\/strong><\/a><\/p>\n<p><a href=\"https:\/\/www.microconsult.de\/en\/training-consulting\/trainings\/embedded-und-echtzeit-programmierung\/aaaajyk\/\" target=\"_blank\" rel=\"noopener\"><strong>MicroConsult Training &amp; Coaching on Embedded Programming<\/strong><\/a><\/p>\n<p><a href=\"https:\/\/www.microconsult.de\/en\/embedded-and-real-time-software-development\/\" target=\"_blank\" rel=\"noopener\"><strong>MicroConsult expertise in embedded software development<\/strong><\/a><\/p>\n<p><strong>Sources<br \/>\n<\/strong>Robert C. Martin, \u201eClean Code \u2013 Refactoring, Patterns, Testing and Techniques for Clean Code\u201c<\/p>","protected":false},"excerpt":{"rendered":"<p>Software quality isn&#039;t always ideal in every project. Software engineering aims to improve the code in all its aspects. These five principles will help you achieve that goal. Because good code is motivating!<\/p>","protected":false},"author":10,"featured_media":3238,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"_et_pb_use_builder":"","_et_pb_old_content":"","_et_gb_content_width":"","inline_featured_image":false,"footnotes":""},"categories":[9,30,51,15],"tags":[118,197,217,218,219],"class_list":["post-3237","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-embedded_und_echtzeit-softwareentwicklung","category-projektmanagement","category-qualitaet_und_sicherheit","category-softwareentwicklung_windows_linux_mobile","tag-clean-code","tag-codequalitaet","tag-programmierung","tag-sauberer-code","tag-solid-prinzipien"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.9 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Die SOLID-Prinzipien - F\u00fcnf Grunds\u00e4tze f\u00fcr bessere Software - MicroConsult Academy GmbH<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.microconsult.de\/en\/fl_solid-principles\/\" \/>\n<meta property=\"og:locale\" content=\"en_GB\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Die SOLID-Prinzipien - F\u00fcnf Grunds\u00e4tze f\u00fcr bessere Software - MicroConsult Academy GmbH\" \/>\n<meta property=\"og:description\" content=\"Die Qualit\u00e4t der Software ist nicht in allen Projekten ideal. Der Einsatz von Software Engineering soll den Code in all seinen Aspekten verbessern. Mit diesen f\u00fcnf Prinzipien kommen Sie dem Ziel n\u00e4her. Denn guter Code motiviert!\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.microconsult.de\/en\/fl_solid-principles\/\" \/>\n<meta property=\"og:site_name\" content=\"MicroConsult Academy GmbH\" \/>\n<meta property=\"article:published_time\" content=\"2026-01-29T23:00:00+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2026-02-09T06:25:07+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.microconsult.de\/wp-content\/uploads\/2025\/07\/solid-prinzipien-scaled.jpeg\" \/>\n\t<meta property=\"og:image:width\" content=\"2560\" \/>\n\t<meta property=\"og:image:height\" content=\"1536\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Thomas Batt\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Thomas Batt\" \/>\n\t<meta name=\"twitter:label2\" content=\"Estimated reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"10 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.microconsult.de\\\/fl_solid-prinzipien\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.microconsult.de\\\/fl_solid-prinzipien\\\/\"},\"author\":{\"name\":\"Thomas Batt\",\"@id\":\"https:\\\/\\\/www.microconsult.de\\\/#\\\/schema\\\/person\\\/344ea687ec9637d76b9f570373cae5eb\"},\"headline\":\"Die SOLID-Prinzipien &#8211; F\u00fcnf Grunds\u00e4tze f\u00fcr bessere Software\",\"datePublished\":\"2026-01-29T23:00:00+00:00\",\"dateModified\":\"2026-02-09T06:25:07+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.microconsult.de\\\/fl_solid-prinzipien\\\/\"},\"wordCount\":1591,\"commentCount\":0,\"image\":{\"@id\":\"https:\\\/\\\/www.microconsult.de\\\/fl_solid-prinzipien\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.microconsult.de\\\/wp-content\\\/uploads\\\/2025\\\/07\\\/solid-prinzipien-scaled.jpeg\",\"keywords\":[\"Clean Code\",\"Codequalit\u00e4t\",\"Programmierung\",\"sauberer Code\",\"SOLID-Prinzipien\"],\"articleSection\":[\"Embedded- und Echtzeit-Softwareentwicklung\",\"Projektmanagement\",\"Qualit\u00e4t und Sicherheit\",\"Softwareentwicklung (Windows, Linux)\"],\"inLanguage\":\"en-GB\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/www.microconsult.de\\\/fl_solid-prinzipien\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.microconsult.de\\\/fl_solid-prinzipien\\\/\",\"url\":\"https:\\\/\\\/www.microconsult.de\\\/fl_solid-prinzipien\\\/\",\"name\":\"Die SOLID-Prinzipien - F\u00fcnf Grunds\u00e4tze f\u00fcr bessere Software - MicroConsult Academy GmbH\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.microconsult.de\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.microconsult.de\\\/fl_solid-prinzipien\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.microconsult.de\\\/fl_solid-prinzipien\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.microconsult.de\\\/wp-content\\\/uploads\\\/2025\\\/07\\\/solid-prinzipien-scaled.jpeg\",\"datePublished\":\"2026-01-29T23:00:00+00:00\",\"dateModified\":\"2026-02-09T06:25:07+00:00\",\"author\":{\"@id\":\"https:\\\/\\\/www.microconsult.de\\\/#\\\/schema\\\/person\\\/344ea687ec9637d76b9f570373cae5eb\"},\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.microconsult.de\\\/fl_solid-prinzipien\\\/#breadcrumb\"},\"inLanguage\":\"en-GB\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.microconsult.de\\\/fl_solid-prinzipien\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-GB\",\"@id\":\"https:\\\/\\\/www.microconsult.de\\\/fl_solid-prinzipien\\\/#primaryimage\",\"url\":\"https:\\\/\\\/www.microconsult.de\\\/wp-content\\\/uploads\\\/2025\\\/07\\\/solid-prinzipien-scaled.jpeg\",\"contentUrl\":\"https:\\\/\\\/www.microconsult.de\\\/wp-content\\\/uploads\\\/2025\\\/07\\\/solid-prinzipien-scaled.jpeg\",\"width\":2560,\"height\":1536,\"caption\":\"SOLID-Prinzipien\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.microconsult.de\\\/fl_solid-prinzipien\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.microconsult.de\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Die SOLID-Prinzipien &#8211; F\u00fcnf Grunds\u00e4tze f\u00fcr bessere Software\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.microconsult.de\\\/#website\",\"url\":\"https:\\\/\\\/www.microconsult.de\\\/\",\"name\":\"MicroConsult Academy GmbH\",\"description\":\"Professionelle Schulungen, Beratung und Projektunterst\u00fctzung\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.microconsult.de\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-GB\"},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/www.microconsult.de\\\/#\\\/schema\\\/person\\\/344ea687ec9637d76b9f570373cae5eb\",\"name\":\"Thomas Batt\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-GB\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/6e2cfb0fb9027df3be0b60804d3dd07e5061a84cf3a0fc3a5adcc8c5f114e6b9?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/6e2cfb0fb9027df3be0b60804d3dd07e5061a84cf3a0fc3a5adcc8c5f114e6b9?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/6e2cfb0fb9027df3be0b60804d3dd07e5061a84cf3a0fc3a5adcc8c5f114e6b9?s=96&d=mm&r=g\",\"caption\":\"Thomas Batt\"}}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"The SOLID Principles - Five principles for better software - MicroConsult Academy GmbH","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.microconsult.de\/en\/fl_solid-principles\/","og_locale":"en_GB","og_type":"article","og_title":"Die SOLID-Prinzipien - F\u00fcnf Grunds\u00e4tze f\u00fcr bessere Software - MicroConsult Academy GmbH","og_description":"Die Qualit\u00e4t der Software ist nicht in allen Projekten ideal. Der Einsatz von Software Engineering soll den Code in all seinen Aspekten verbessern. Mit diesen f\u00fcnf Prinzipien kommen Sie dem Ziel n\u00e4her. Denn guter Code motiviert!","og_url":"https:\/\/www.microconsult.de\/en\/fl_solid-principles\/","og_site_name":"MicroConsult Academy GmbH","article_published_time":"2026-01-29T23:00:00+00:00","article_modified_time":"2026-02-09T06:25:07+00:00","og_image":[{"width":2560,"height":1536,"url":"https:\/\/www.microconsult.de\/wp-content\/uploads\/2025\/07\/solid-prinzipien-scaled.jpeg","type":"image\/jpeg"}],"author":"Thomas Batt","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Thomas Batt","Estimated reading time":"10 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.microconsult.de\/fl_solid-prinzipien\/#article","isPartOf":{"@id":"https:\/\/www.microconsult.de\/fl_solid-prinzipien\/"},"author":{"name":"Thomas Batt","@id":"https:\/\/www.microconsult.de\/#\/schema\/person\/344ea687ec9637d76b9f570373cae5eb"},"headline":"Die SOLID-Prinzipien &#8211; F\u00fcnf Grunds\u00e4tze f\u00fcr bessere Software","datePublished":"2026-01-29T23:00:00+00:00","dateModified":"2026-02-09T06:25:07+00:00","mainEntityOfPage":{"@id":"https:\/\/www.microconsult.de\/fl_solid-prinzipien\/"},"wordCount":1591,"commentCount":0,"image":{"@id":"https:\/\/www.microconsult.de\/fl_solid-prinzipien\/#primaryimage"},"thumbnailUrl":"https:\/\/www.microconsult.de\/wp-content\/uploads\/2025\/07\/solid-prinzipien-scaled.jpeg","keywords":["Clean Code","Codequalit\u00e4t","Programmierung","sauberer Code","SOLID-Prinzipien"],"articleSection":["Embedded- und Echtzeit-Softwareentwicklung","Projektmanagement","Qualit\u00e4t und Sicherheit","Softwareentwicklung (Windows, Linux)"],"inLanguage":"en-GB","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.microconsult.de\/fl_solid-prinzipien\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.microconsult.de\/fl_solid-prinzipien\/","url":"https:\/\/www.microconsult.de\/fl_solid-prinzipien\/","name":"The SOLID Principles - Five principles for better software - MicroConsult Academy GmbH","isPartOf":{"@id":"https:\/\/www.microconsult.de\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.microconsult.de\/fl_solid-prinzipien\/#primaryimage"},"image":{"@id":"https:\/\/www.microconsult.de\/fl_solid-prinzipien\/#primaryimage"},"thumbnailUrl":"https:\/\/www.microconsult.de\/wp-content\/uploads\/2025\/07\/solid-prinzipien-scaled.jpeg","datePublished":"2026-01-29T23:00:00+00:00","dateModified":"2026-02-09T06:25:07+00:00","author":{"@id":"https:\/\/www.microconsult.de\/#\/schema\/person\/344ea687ec9637d76b9f570373cae5eb"},"breadcrumb":{"@id":"https:\/\/www.microconsult.de\/fl_solid-prinzipien\/#breadcrumb"},"inLanguage":"en-GB","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.microconsult.de\/fl_solid-prinzipien\/"]}]},{"@type":"ImageObject","inLanguage":"en-GB","@id":"https:\/\/www.microconsult.de\/fl_solid-prinzipien\/#primaryimage","url":"https:\/\/www.microconsult.de\/wp-content\/uploads\/2025\/07\/solid-prinzipien-scaled.jpeg","contentUrl":"https:\/\/www.microconsult.de\/wp-content\/uploads\/2025\/07\/solid-prinzipien-scaled.jpeg","width":2560,"height":1536,"caption":"SOLID-Prinzipien"},{"@type":"BreadcrumbList","@id":"https:\/\/www.microconsult.de\/fl_solid-prinzipien\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.microconsult.de\/"},{"@type":"ListItem","position":2,"name":"Die SOLID-Prinzipien &#8211; F\u00fcnf Grunds\u00e4tze f\u00fcr bessere Software"}]},{"@type":"WebSite","@id":"https:\/\/www.microconsult.de\/#website","url":"https:\/\/www.microconsult.de\/","name":"MicroConsult Academy GmbH","description":"Professional training, consulting and project support","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.microconsult.de\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-GB"},{"@type":"Person","@id":"https:\/\/www.microconsult.de\/#\/schema\/person\/344ea687ec9637d76b9f570373cae5eb","name":"Thomas Batt","image":{"@type":"ImageObject","inLanguage":"en-GB","@id":"https:\/\/secure.gravatar.com\/avatar\/6e2cfb0fb9027df3be0b60804d3dd07e5061a84cf3a0fc3a5adcc8c5f114e6b9?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/6e2cfb0fb9027df3be0b60804d3dd07e5061a84cf3a0fc3a5adcc8c5f114e6b9?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/6e2cfb0fb9027df3be0b60804d3dd07e5061a84cf3a0fc3a5adcc8c5f114e6b9?s=96&d=mm&r=g","caption":"Thomas Batt"}}]}},"post_mailing_queue_ids":[],"_links":{"self":[{"href":"https:\/\/www.microconsult.de\/en\/wp-json\/wp\/v2\/posts\/3237","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.microconsult.de\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.microconsult.de\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.microconsult.de\/en\/wp-json\/wp\/v2\/users\/10"}],"replies":[{"embeddable":true,"href":"https:\/\/www.microconsult.de\/en\/wp-json\/wp\/v2\/comments?post=3237"}],"version-history":[{"count":2,"href":"https:\/\/www.microconsult.de\/en\/wp-json\/wp\/v2\/posts\/3237\/revisions"}],"predecessor-version":[{"id":10844,"href":"https:\/\/www.microconsult.de\/en\/wp-json\/wp\/v2\/posts\/3237\/revisions\/10844"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.microconsult.de\/en\/wp-json\/wp\/v2\/media\/3238"}],"wp:attachment":[{"href":"https:\/\/www.microconsult.de\/en\/wp-json\/wp\/v2\/media?parent=3237"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.microconsult.de\/en\/wp-json\/wp\/v2\/categories?post=3237"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.microconsult.de\/en\/wp-json\/wp\/v2\/tags?post=3237"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}