<?xml version="1.0" encoding="UTF-8"?><rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/">
  <channel>
    <title>solid &amp;mdash;   christova  </title>
    <link>https://christova.writeas.com/tag:solid</link>
    <description>&lt;b&gt;&lt;h3&gt;Tech Articles&lt;/h3&gt;&lt;/b&gt;&lt;br/&gt;&lt;b&gt;Collated from various sources. Full copyright remains with original authors.&lt;/b&gt;</description>
    <pubDate>Sat, 18 Apr 2026 10:44:21 +0000</pubDate>
    <item>
      <title>SOLID Principles</title>
      <link>https://christova.writeas.com/solid-principles-k0qk?pk_campaign=rss-feed</link>
      <description>&lt;![CDATA[&#xA;&#xA;#solid #designprinciples #designpatterns #systemdesign&#xA;&#xA;𝐒 - 𝐒𝐢𝐧𝐠𝐥𝐞 𝐑𝐞𝐬𝐩𝐨𝐧𝐬𝐢𝐛𝐢𝐥𝐢𝐭𝐲 𝐏𝐫𝐢𝐧𝐜𝐢𝐩𝐥𝐞&#xA;A class should have only one reason to change.&#xA;\- Example: Instead of one giant User class that handles authentication, profile updates, and sending emails, split it into UserAuth, UserProfile, and EmailService.&#xA;&#xA;𝐎 - 𝐎𝐩𝐞𝐧/𝐂𝐥𝐨𝐬𝐞𝐝 𝐏𝐫𝐢𝐧𝐜𝐢𝐩𝐥𝐞&#xA;Classes should be open for extension but closed for modification.&#xA;\- Example: Define a Shape interface with an area() method. When you need a new shape, just add a Circle or Triangle class that implements it.&#xA;&#xA;𝐋 - 𝐋𝐢𝐬𝐤𝐨𝐯 𝐒𝐮𝐛𝐬𝐭𝐢𝐭𝐮𝐭𝐢𝐨𝐧 𝐏𝐫𝐢𝐧𝐜𝐢𝐩𝐥𝐞&#xA;Subtypes must be substitutable for their base types without breaking behavior.&#xA;\- Example: If Bird has a fly() method, then Eagle and Sparrow should both work anywhere a Bird is expected.&#xA;&#xA;𝐈 - 𝐈𝐧𝐭𝐞𝐫𝐟𝐚𝐜𝐞 𝐒𝐞𝐠𝐫𝐞𝐠𝐚𝐭𝐢𝐨𝐧 𝐏𝐫𝐢𝐧𝐜𝐢𝐩𝐥𝐞&#xA;Don&#39;t force classes to implement interfaces they don&#39;t use.&#xA;\- Example: Instead of one fat Machine interface with print(), scan(), and fax(), break it into Printable, Scannable, and Faxable. A SimplePrinter only implements Printable.&#xA;&#xA;𝐃 - 𝐃𝐞𝐩𝐞𝐧𝐝𝐞𝐧𝐜𝐲 𝐈𝐧𝐯𝐞𝐫𝐬𝐢𝐨𝐧 𝐏𝐫𝐢𝐧𝐜𝐢𝐩𝐥𝐞&#xA;High-level modules should not depend on low-level modules. Both should depend on abstractions.&#xA;\- Example: Your OrderService should depend on a PaymentGateway interface, not directly on Stripe or PayPal.&#xA;&#xA;The real power of SOLID is not in following each principle in isolation. It&#39;s in how they work together to make your code easier to change, test, and extend.]]&gt;</description>
      <content:encoded><![CDATA[<p><img src="https://i.snap.as/03Fhn8Zu.jpg" alt=""/></p>

<p><a href="https://christova.writeas.com/tag:solid" class="hashtag"><span>#</span><span class="p-category">solid</span></a> <a href="https://christova.writeas.com/tag:designprinciples" class="hashtag"><span>#</span><span class="p-category">designprinciples</span></a> <a href="https://christova.writeas.com/tag:designpatterns" class="hashtag"><span>#</span><span class="p-category">designpatterns</span></a> <a href="https://christova.writeas.com/tag:systemdesign" class="hashtag"><span>#</span><span class="p-category">systemdesign</span></a></p>

<p>𝐒 – 𝐒𝐢𝐧𝐠𝐥𝐞 𝐑𝐞𝐬𝐩𝐨𝐧𝐬𝐢𝐛𝐢𝐥𝐢𝐭𝐲 𝐏𝐫𝐢𝐧𝐜𝐢𝐩𝐥𝐞
A class should have only one reason to change.
- Example: Instead of one giant User class that handles authentication, profile updates, and sending emails, split it into UserAuth, UserProfile, and EmailService.</p>

<p>𝐎 – 𝐎𝐩𝐞𝐧/𝐂𝐥𝐨𝐬𝐞𝐝 𝐏𝐫𝐢𝐧𝐜𝐢𝐩𝐥𝐞
Classes should be open for extension but closed for modification.
- Example: Define a Shape interface with an area() method. When you need a new shape, just add a Circle or Triangle class that implements it.</p>

<p>𝐋 – 𝐋𝐢𝐬𝐤𝐨𝐯 𝐒𝐮𝐛𝐬𝐭𝐢𝐭𝐮𝐭𝐢𝐨𝐧 𝐏𝐫𝐢𝐧𝐜𝐢𝐩𝐥𝐞
Subtypes must be substitutable for their base types without breaking behavior.
- Example: If Bird has a fly() method, then Eagle and Sparrow should both work anywhere a Bird is expected.</p>

<p>𝐈 – 𝐈𝐧𝐭𝐞𝐫𝐟𝐚𝐜𝐞 𝐒𝐞𝐠𝐫𝐞𝐠𝐚𝐭𝐢𝐨𝐧 𝐏𝐫𝐢𝐧𝐜𝐢𝐩𝐥𝐞
Don&#39;t force classes to implement interfaces they don&#39;t use.
- Example: Instead of one fat Machine interface with print(), scan(), and fax(), break it into Printable, Scannable, and Faxable. A SimplePrinter only implements Printable.</p>

<p>𝐃 – 𝐃𝐞𝐩𝐞𝐧𝐝𝐞𝐧𝐜𝐲 𝐈𝐧𝐯𝐞𝐫𝐬𝐢𝐨𝐧 𝐏𝐫𝐢𝐧𝐜𝐢𝐩𝐥𝐞
High-level modules should not depend on low-level modules. Both should depend on abstractions.
- Example: Your OrderService should depend on a PaymentGateway interface, not directly on Stripe or PayPal.</p>

<p>The real power of SOLID is not in following each principle in isolation. It&#39;s in how they work together to make your code easier to change, test, and extend.</p>
]]></content:encoded>
      <guid>https://christova.writeas.com/solid-principles-k0qk</guid>
      <pubDate>Thu, 26 Mar 2026 16:53:06 +0000</pubDate>
    </item>
    <item>
      <title>SOLID Principles</title>
      <link>https://christova.writeas.com/solid-principles?pk_campaign=rss-feed</link>
      <description>&lt;![CDATA[&#xA;&#xA;#SOLID #OOP #SystemDesign]]&gt;</description>
      <content:encoded><![CDATA[<p><img src="https://i.snap.as/5G0EtwQD.jpeg" alt=""/></p>

<p><a href="https://christova.writeas.com/tag:SOLID" class="hashtag"><span>#</span><span class="p-category">SOLID</span></a> <a href="https://christova.writeas.com/tag:OOP" class="hashtag"><span>#</span><span class="p-category">OOP</span></a> <a href="https://christova.writeas.com/tag:SystemDesign" class="hashtag"><span>#</span><span class="p-category">SystemDesign</span></a></p>
]]></content:encoded>
      <guid>https://christova.writeas.com/solid-principles</guid>
      <pubDate>Sun, 01 Mar 2026 03:40:05 +0000</pubDate>
    </item>
    <item>
      <title>SOLID</title>
      <link>https://christova.writeas.com/solid?pk_campaign=rss-feed</link>
      <description>&lt;![CDATA[&#xA;&#xA;SOLID]]&gt;</description>
      <content:encoded><![CDATA[<p><a href="https://blog.stackademic.com/solid-principles-explained-with-real-time-examples-e39d1c167ba5"><img src="https://miro.medium.com/v2/resize:fit:700/1*GoLwqfeB624NB5g7JPVyBA.png" alt=""/></a></p>

<p><a href="https://christova.writeas.com/tag:SOLID" class="hashtag"><span>#</span><span class="p-category">SOLID</span></a></p>
]]></content:encoded>
      <guid>https://christova.writeas.com/solid</guid>
      <pubDate>Fri, 10 May 2024 13:44:47 +0000</pubDate>
    </item>
  </channel>
</rss>