<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title>Software Engineering on Minko Gechev&#39;s blog</title>
		<link>https://blog.mgechev.com/categories/Software-engineering/</link>
		<description>Recent content in Software Engineering on Minko Gechev&#39;s blog</description>
		<generator>Hugo</generator>
		<language>en-us</language>
		
		
		
		
			<lastBuildDate>Sun, 24 Jan 2021 00:00:00 +0000</lastBuildDate>
		
			<atom:link href="https://blog.mgechev.com/categories/Software-engineering/feed.xml" rel="self" type="application/rss+xml" />
			<item>
				<title>Design Patterns in Open Source Projects - Part II</title>
				<link>https://blog.mgechev.com/2021/01/24/design-pattens-in-open-source-projects-part-ii/</link>
				<pubDate>Sun, 24 Jan 2021 00:00:00 +0000</pubDate>
				<guid>https://blog.mgechev.com/2021/01/24/design-pattens-in-open-source-projects-part-ii/</guid>
				<description>&lt;p&gt;This blog post introduces another design pattern into the context of &lt;a href=&#34;https://github.com/mgechev/ngrev&#34;&gt;ngrev&lt;/a&gt;. If you&amp;rsquo;re not yet familiar with the project, I&amp;rsquo;d strongly recommend taking 2 minutes to the introduction and &amp;ldquo;Project Overview&amp;rdquo; sections in the &lt;a href=&#34;https://blog.mgechev.com/2021/01/18/design-pattens-in-open-source-projects-part-i/&#34;&gt;first part&lt;/a&gt; of the series.&lt;/p&gt;&#xA;&lt;img src=&#34;https://blog.mgechev.com/images/oss-design-patterns-ii/hero.jpg&#34; style=&#34;display: block; margin: auto;&#34;&gt;&#xA;&lt;p&gt;If you did not take the time, &lt;a href=&#34;https://github.com/mgechev/ngrev&#34;&gt;ngrev&lt;/a&gt; is an Electron app that visualizes the structure of an &lt;a href=&#34;https://angular.io&#34;&gt;Angular&lt;/a&gt; app, showing the relationships between components, modules, and providers. The UI retrieves the data for each view using an instance of a &lt;a href=&#34;https://en.wikipedia.org/wiki/State_pattern&#34;&gt;state&lt;/a&gt; object. You can read more about the state pattern and its application in &lt;a href=&#34;https://github.com/mgechev/ngrev&#34;&gt;ngrev&lt;/a&gt; &lt;a href=&#34;https://blog.mgechev.com/2021/01/18/design-pattens-in-open-source-projects-part-i/&#34;&gt;here&lt;/a&gt;.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Design Patterns in Open Source Projects - Part I</title>
				<link>https://blog.mgechev.com/2021/01/18/design-pattens-in-open-source-projects-part-i/</link>
				<pubDate>Mon, 18 Jan 2021 00:00:00 +0000</pubDate>
				<guid>https://blog.mgechev.com/2021/01/18/design-pattens-in-open-source-projects-part-i/</guid>
				<description>&lt;p&gt;I see two common frustrations around design patterns:&lt;/p&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;It&amp;rsquo;s easy to memorize patterns but hard to figure out where and how to use them&lt;/li&gt;&#xA;&lt;li&gt;OOP is lame, and design patterns suck&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;p&gt;If the second bullet point resonates with you, this blog post is probably not a good use of your time.&lt;/p&gt;&#xA;&lt;p&gt;Now let&amp;rsquo;s focus on the first point. It&amp;rsquo;s not easy to understand design patterns just by reading the &lt;a href=&#34;https://www.amazon.com/Design-Patterns-Object-Oriented-Addison-Wesley-Professional-ebook/dp/B000SEIBB8&#34;&gt;gang of four book&lt;/a&gt; or dummy examples on Wikipedia. That&amp;rsquo;s why I want to share a couple of real-world applications in open source projects that you can see and run yourself.&lt;/p&gt;</description>
			</item>
	</channel>
</rss>
