<?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>DEV Community: Sairyss</title>
    <description>The latest articles on DEV Community by Sairyss (@sairyss).</description>
    <link>https://dev.to/sairyss</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%2F216254%2Fdb554aff-1d71-4ce2-99b9-e5bdf4837a1a.jpeg</url>
      <title>DEV Community: Sairyss</title>
      <link>https://dev.to/sairyss</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/sairyss"/>
    <language>en</language>
    <item>
      <title>Domain-Driven Hexagon: Guide on Domain-Driven Design, Hexagonal architecture, best practices (TypeScript and NestJS examples)</title>
      <dc:creator>Sairyss</dc:creator>
      <pubDate>Sat, 20 Feb 2021 18:52:53 +0000</pubDate>
      <link>https://dev.to/sairyss/domain-driven-hexagon-18g5</link>
      <guid>https://dev.to/sairyss/domain-driven-hexagon-18g5</guid>
      <description>&lt;p&gt;Few months ago I've created a repository to gather some architectural patterns and best practices I've been using for the last few years, both at work and for personal projects. At first It was a project for myself, but it grew and have reached a point that I can share it and hopefully more people can learn some useful practices from it.&lt;/p&gt;

&lt;p&gt;Main emphasis of this project is to provide recommendations on how to design software applications. In this repository are presented some of the techniques, tools, best practices, architectural patterns and guidelines gathered from different sources.&lt;/p&gt;

&lt;p&gt;Code examples are written using &lt;a href="https://nodejs.org/en/"&gt;NodeJS&lt;/a&gt;, &lt;a href="https://www.typescriptlang.org/"&gt;TypeScript&lt;/a&gt;, &lt;a href="https://docs.nestjs.com/"&gt;NestJS&lt;/a&gt; framework and &lt;a href="https://github.com/gajus/slonik"&gt;Slonik&lt;/a&gt; for the database access.&lt;/p&gt;

&lt;p&gt;Though patterns and principles presented in this repository are &lt;strong&gt;framework/language agnostic&lt;/strong&gt;, so above technologies can be easily replaced with any alternative. No matter what language or framework is used, any application can benefit from principles described in this repository.&lt;/p&gt;

&lt;p&gt;This project's architecture is mainly based on:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Domain-Driven Design (DDD)&lt;/li&gt;
&lt;li&gt;Hexagonal (Ports and Adapters) Architecture&lt;/li&gt;
&lt;li&gt;Secure by Design&lt;/li&gt;
&lt;li&gt;Clean Architecture&lt;/li&gt;
&lt;li&gt;Onion Architecture&lt;/li&gt;
&lt;li&gt;SOLID Principles&lt;/li&gt;
&lt;li&gt;Software Design Patterns&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;And many other sources and best practices (links to additonal resources in every section).&lt;/p&gt;

&lt;p&gt;Check out my GitHub repository to see full tutorial with code examples:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://github.com/Sairyss/domain-driven-hexagon"&gt;https://github.com/Sairyss/domain-driven-hexagon&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Also, check out my other repositories:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://github.com/Sairyss/backend-best-practices"&gt;Backend best practices&lt;/a&gt; - Best practices, tools and guidelines for backend development.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/Sairyss/system-design-patterns"&gt;System Design Patterns&lt;/a&gt; - list of topics and resources related to distributed systems, system design, microservices, scalability and performance, etc.&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>architecture</category>
      <category>webdev</category>
      <category>javascript</category>
      <category>node</category>
    </item>
  </channel>
</rss>
