<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>Forem: Hagai Luger</title>
    <description>The latest articles on Forem by Hagai Luger (@hagailuger).</description>
    <link>https://forem.com/hagailuger</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F36558%2F83a2853a-85a3-466b-8b67-9767c0fe49a5.jpg</url>
      <title>Forem: Hagai Luger</title>
      <link>https://forem.com/hagailuger</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/hagailuger"/>
    <language>en</language>
    <item>
      <title>I need YOU to tell me a DDD Success Story!</title>
      <dc:creator>Hagai Luger</dc:creator>
      <pubDate>Mon, 17 Dec 2018 08:00:42 +0000</pubDate>
      <link>https://forem.com/hagailuger/i-nee-you-to-tell-me-a-ddd-success-story-552n</link>
      <guid>https://forem.com/hagailuger/i-nee-you-to-tell-me-a-ddd-success-story-552n</guid>
      <description>&lt;p&gt;Hi,&lt;br&gt;
In the last few years I've got very excited about DDD (Domain Driven Design).&lt;/p&gt;

&lt;p&gt;It seems to me like the (only) way that complex business domain software should be built.&lt;/p&gt;

&lt;p&gt;So I'm investing time in learning it.&lt;/p&gt;

&lt;p&gt;I would really appreciate it if you could tell me about success stories regarding implementing DDD.&lt;/p&gt;

</description>
      <category>ddd</category>
      <category>success</category>
      <category>discuss</category>
    </item>
    <item>
      <title>What is your single most important rule for good software design?</title>
      <dc:creator>Hagai Luger</dc:creator>
      <pubDate>Mon, 10 Dec 2018 10:47:00 +0000</pubDate>
      <link>https://forem.com/hagailuger/what-is-your-single-most-important-rule-for-good-software-design-1ip3</link>
      <guid>https://forem.com/hagailuger/what-is-your-single-most-important-rule-for-good-software-design-1ip3</guid>
      <description>

&lt;p&gt;If you had to choose just one rule that you think is the most important rule for good software design, what would it be?&lt;/p&gt;


</description>
      <category>cleancode</category>
      <category>architecture</category>
      <category>craftsmanship</category>
      <category>discuss</category>
    </item>
    <item>
      <title>It's wrong to treat "Draft" mode as a state on the way to "Final"</title>
      <dc:creator>Hagai Luger</dc:creator>
      <pubDate>Sat, 08 Dec 2018 23:24:28 +0000</pubDate>
      <link>https://forem.com/hagailuger/programmatically-speaking-draft-mode-is-not-a-state-on-the-way-to-final-2lgi</link>
      <guid>https://forem.com/hagailuger/programmatically-speaking-draft-mode-is-not-a-state-on-the-way-to-final-2lgi</guid>
      <description>

&lt;p&gt;When we build a system that needs to have a draft mode (for example an &lt;em&gt;order&lt;/em&gt; we would like to complete later), It might be tempting to save the draft in the same model and save it in the same table/collection/whatever as a real order, with a bit/enum that shows that it's a draft.&lt;/p&gt;

&lt;p&gt;The problem with this attitude is that it makes as create the model/table with less mandatory fields, less constraints, etc...&lt;/p&gt;

&lt;p&gt;The solution is to refer to a draft as a totaly different kind of object, and act accordingly regarding where to save it and how to handle it.&lt;/p&gt;

&lt;p&gt;I think I'll call it: DFRS&lt;br&gt;
Draft/Final Responsibilty Segregation&lt;br&gt;
(What's now? Can I make millions lecturing about it?)&lt;/p&gt;

&lt;p&gt;What do you think?&lt;br&gt;
Am I just reinventing the wheel here?&lt;/p&gt;


</description>
      <category>oop</category>
      <category>cleancode</category>
    </item>
    <item>
      <title>Holding a loaded rifle without knowing it</title>
      <dc:creator>Hagai Luger</dc:creator>
      <pubDate>Sat, 08 Dec 2018 23:18:46 +0000</pubDate>
      <link>https://forem.com/hagailuger/holding-a-loaded-rifle-without-knowing-it-31i5</link>
      <guid>https://forem.com/hagailuger/holding-a-loaded-rifle-without-knowing-it-31i5</guid>
      <description>

&lt;p&gt;Two stories:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;When I've served in the army a not-so-funny story happened to one of my friends:&lt;br&gt;
He played with his M16 because he was bored (It was the year 2000. no smartphones...). And in some weird way he ended up having his gun loaded without him knowing it.&lt;br&gt;
So how do I know it?&lt;br&gt;
Because an officer checked his gun... (lucky for us all).&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;When working with SQL SERVER a friend of mine (it's always friends. never me...) worked on his local copy of the database. &lt;br&gt;
Or that's what he thought he was doing.&lt;br&gt;
Actually he had two tabs opened inside SSMS:&lt;br&gt;
One representing his local enviroment. &lt;br&gt;
One representing our production.&lt;br&gt;
Can you guess what happened?&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;You are probably right:&lt;br&gt;
The production database was deleted.&lt;/p&gt;

&lt;p&gt;Well let's just FF 3 hours later when all the managers came back from home because nothing worked. And although it was on SQL AZURE which has great backup, he somehow managed to do all the steps which avoids the normal way of restoring to point in time.&lt;/p&gt;

&lt;p&gt;We were so helpless that we tried to restore the data from the cache into the DB!&lt;br&gt;
Finally the guys from Azure came to our help and gave us what we needed.&lt;/p&gt;

&lt;p&gt;What did I learn from this?&lt;br&gt;
Seems like less then I thought.&lt;br&gt;
Because yesterday it almost happened to me again!&lt;/p&gt;

&lt;p&gt;It's so easy to get into these places.&lt;/p&gt;

&lt;p&gt;The only way is DISCIPLINE.No fancy tool will save you if you don't use it.&lt;/p&gt;

&lt;p&gt;You set rules, and you understand deeply why they exist (In some proffessions they say: "Regulations are written in blood").&lt;/p&gt;

&lt;p&gt;Try not to hold a loaded rifle, and if you must hold it- at least be aware of it.&lt;/p&gt;


</description>
      <category>productionmode</category>
    </item>
    <item>
      <title>Write A Post (just write it already!)</title>
      <dc:creator>Hagai Luger</dc:creator>
      <pubDate>Wed, 12 Sep 2018 20:26:38 +0000</pubDate>
      <link>https://forem.com/hagailuger/write-a-post-just-write-it-already-1a5d</link>
      <guid>https://forem.com/hagailuger/write-a-post-just-write-it-already-1a5d</guid>
      <description>&lt;p&gt;Hey you!&lt;br&gt;
Yeah I'm talking to you. The guy who looks at me in the mirror right now. (And maybe some others).&lt;/p&gt;

&lt;p&gt;You should really start blogging.&lt;/p&gt;

&lt;p&gt;It's unforgiven for someone who's been in the industry for some years now, to avoid writing. Don't you dare telling me that you don't have anything to share with the world.&lt;/p&gt;

&lt;p&gt;I know I know,&lt;br&gt;
You have a long list of explanations why not:&lt;br&gt;
You are not smart enough.&lt;br&gt;
Your english is not perfect.&lt;br&gt;
You dont have time for it.&lt;br&gt;
You can't... ENOUGH!&lt;/p&gt;

&lt;p&gt;Blogging would make you understand your stuff better. And deeper.&lt;br&gt;
Blogging would make people learn from your experience and from your mistakes.&lt;br&gt;
Blogging would advance your career in many ways, Some of them would surprise you.&lt;/p&gt;

&lt;p&gt;You should really start blogging.&lt;/p&gt;

&lt;p&gt;(inspired by the "Write a post" button up here. look! it's so easy to push it! give it a try now)&lt;/p&gt;

</description>
      <category>blogging</category>
    </item>
  </channel>
</rss>
