<?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: Younis Jad</title>
    <description>The latest articles on DEV Community by Younis Jad (@lyonas).</description>
    <link>https://dev.to/lyonas</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%2F1114160%2Fc4cbfeba-a136-484c-8750-0174688ba859.png</url>
      <title>DEV Community: Younis Jad</title>
      <link>https://dev.to/lyonas</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/lyonas"/>
    <language>en</language>
    <item>
      <title>📢 Calling all Go Developers! 🚀✨Be prepared to level up your Go programming skills with the upcoming Go 1.21 release! 🎉</title>
      <dc:creator>Younis Jad</dc:creator>
      <pubDate>Sun, 30 Jul 2023 10:58:28 +0000</pubDate>
      <link>https://dev.to/lyonas/calling-all-go-developers-be-prepared-to-level-up-your-go-programming-skills-with-the-upcoming-go-121-release-5eh0</link>
      <guid>https://dev.to/lyonas/calling-all-go-developers-be-prepared-to-level-up-your-go-programming-skills-with-the-upcoming-go-121-release-5eh0</guid>
      <description>&lt;p&gt;Generics have long been a highly anticipated feature in the Go programming language. With the release of Go 1.21.&lt;br&gt;
This comprehensive guide aims to provide a detailed exploration of generics in Go 1.21, shedding light on their benefits, syntax, implementation, and best practices.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://younisjad.medium.com/go-1-21-generic-functions-comprehensive-guide-6528b37feb5c"&gt;Continue Reading&lt;/a&gt;&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Why Every Startup Should Have a Comprehensive SRS for Software Development</title>
      <dc:creator>Younis Jad</dc:creator>
      <pubDate>Wed, 26 Jul 2023 14:33:33 +0000</pubDate>
      <link>https://dev.to/lyonas/why-every-startup-should-have-a-comprehensive-srs-for-software-development-5cfh</link>
      <guid>https://dev.to/lyonas/why-every-startup-should-have-a-comprehensive-srs-for-software-development-5cfh</guid>
      <description>&lt;p&gt;let’s explore why it is imperative for every startup to invest time and effort in crafting a comprehensive SRS before diving into software development. We will delve into the benefits, insights, and strategic advantages that arise from this crucial pre-development process. So let’s explore why writing an SRS is the cornerstone of a startup’s software development journey.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://younisjad.medium.com/why-every-startup-should-have-a-comprehensive-srs-for-software-development-cb7042d9365a"&gt;Continue Reading&lt;/a&gt;&lt;/p&gt;

</description>
      <category>startup</category>
      <category>softwareengineering</category>
      <category>architecture</category>
      <category>productivity</category>
    </item>
    <item>
      <title>What’s New in Go 1.21 a Comprehensive Notes</title>
      <dc:creator>Younis Jad</dc:creator>
      <pubDate>Tue, 25 Jul 2023 16:27:38 +0000</pubDate>
      <link>https://dev.to/lyonas/whats-new-in-go-121-a-comprehensive-notes-2ef1</link>
      <guid>https://dev.to/lyonas/whats-new-in-go-121-a-comprehensive-notes-2ef1</guid>
      <description>&lt;p&gt;The Go programming language has released its first Release Candidate (RC) for version 1.21, which is packed with new features, improvements, and performance enhancements. This article provides an overview of the notable changes and features in Go 1.21, along with some exciting additions to the standard library.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://younisjad.medium.com/whats-new-in-go-1-21-a-comprehensive-notes-96017750b390"&gt;Continue Reading&lt;/a&gt;&lt;/p&gt;

</description>
      <category>go</category>
      <category>programming</category>
      <category>webdev</category>
      <category>opensource</category>
    </item>
    <item>
      <title>(New) Coding Tutorial: Efficient Workflows in Go with Temporal: Signals &amp; Selectors</title>
      <dc:creator>Younis Jad</dc:creator>
      <pubDate>Sun, 23 Jul 2023 15:51:20 +0000</pubDate>
      <link>https://dev.to/lyonas/new-coding-tutorial-efficient-workflows-in-go-with-temporal-signals-selectors-14ne</link>
      <guid>https://dev.to/lyonas/new-coding-tutorial-efficient-workflows-in-go-with-temporal-signals-selectors-14ne</guid>
      <description>&lt;p&gt;With the use of Signals, workflows can receive updates, notifications, or requests from external systems or actors. These Signals can trigger wait conditions within the workflow, allowing it to patiently pause until a defined Signal is received.&lt;/p&gt;

&lt;p&gt;Tutorial: &lt;a href="https://younisjad.medium.com/series-efficient-workflows-in-go-with-temporal-signals-selectors-ddd4bbc285d4"&gt;https://younisjad.medium.com/series-efficient-workflows-in-go-with-temporal-signals-selectors-ddd4bbc285d4&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Source Code: &lt;a href="https://github.com/unijad/temporal-select-signal-tutorial-code"&gt;https://github.com/unijad/temporal-select-signal-tutorial-code&lt;/a&gt;&lt;/p&gt;

</description>
      <category>go</category>
      <category>webdev</category>
      <category>tutorial</category>
      <category>opensource</category>
    </item>
    <item>
      <title>(Series) Efficient Workflow in Go with Temporal.io - Updated</title>
      <dc:creator>Younis Jad</dc:creator>
      <pubDate>Sat, 15 Jul 2023 12:06:27 +0000</pubDate>
      <link>https://dev.to/lyonas/series-efficient-workflow-in-go-with-temporalio-updated-4gkf</link>
      <guid>https://dev.to/lyonas/series-efficient-workflow-in-go-with-temporalio-updated-4gkf</guid>
      <description>&lt;p&gt;In today’s fast-paced world, building scalable, efficient, and maintainable software is essential for businesses of any size. One challenge of creating modern software systems is managing the workflows and activities that make up the system. Workflow management can become complicated, especially when working on complicated distributed systems.&lt;/p&gt;

&lt;p&gt;By the end of this tutorial series, you will have the skills and knowledge required to build, maintain and monitor fast, reliable, and efficient workflows and activities in Golang applications with Temporal.io.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://younisjad.medium.com/series-efficient-workflow-in-go-with-temporal-io-ab3248b1c5f9"&gt;Continue Reading&lt;/a&gt;&lt;/p&gt;

</description>
      <category>go</category>
      <category>webdev</category>
      <category>tutorial</category>
      <category>devops</category>
    </item>
    <item>
      <title>AWS Step Functions vs Temporal: Comparison for Workflow Orchestration</title>
      <dc:creator>Younis Jad</dc:creator>
      <pubDate>Thu, 13 Jul 2023 09:25:10 +0000</pubDate>
      <link>https://dev.to/lyonas/aws-step-functions-vs-temporal-comparison-for-workflow-orchestration-j53</link>
      <guid>https://dev.to/lyonas/aws-step-functions-vs-temporal-comparison-for-workflow-orchestration-j53</guid>
      <description>&lt;blockquote&gt;
&lt;p&gt;TLDR: AWS Step Functions and Temporal are two workflow orchestration solutions for building event-driven architectures. AWS Step Functions provides an easy-to-use platform for building state machines and integrations with AWS services, while Temporal provides more flexibility with support for multiple programming languages, granular resilience policies, and more scalable messaging. Temporal’s features, including flexibility and fine control over workflow executions, make it ideal for developers building event-driven systems using open-source solutions. AWS Step Functions is useful when building with AWS services and needing tight integration among these services.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;a href="https://younisjad.medium.com/aws-step-functions-vs-temporal-cf51c892fe0f"&gt;Continue Reading&lt;/a&gt;&lt;/p&gt;

</description>
      <category>go</category>
      <category>aws</category>
      <category>architecture</category>
      <category>designsystem</category>
    </item>
    <item>
      <title>Vite vs SWC vs Webpack: A Performance Comparison for React Applications</title>
      <dc:creator>Younis Jad</dc:creator>
      <pubDate>Tue, 11 Jul 2023 14:23:11 +0000</pubDate>
      <link>https://dev.to/lyonas/vite-vs-swc-vs-webpack-a-performance-comparison-for-react-applications-2ng4</link>
      <guid>https://dev.to/lyonas/vite-vs-swc-vs-webpack-a-performance-comparison-for-react-applications-2ng4</guid>
      <description>&lt;h1&gt;
  
  
  importance of performance in web applications
&lt;/h1&gt;

&lt;p&gt;I recognize the importance of performance in all stages of developing, building, and serving. Ensuring performance at each stage is critical to achieving a well-performing application.&lt;/p&gt;

&lt;p&gt;During development, performance plays a crucial role in productivity. For instance, if the development environment is slow, it can demotivate developers, leading to lower productivity. A well-optimized development environment can encourage developers to write quality code, leading to better performance in the final product.&lt;/p&gt;

&lt;p&gt;Similarly, building and serving a web application requires optimized performance. The build process should be as fast and efficient as possible to reduce downtime between development cycles and ensure that the latest changes are quickly integrated into the application. When serving the application, optimized performance ensures that users can interact with the app seamlessly and without delay, leading to a more positive user experience.&lt;br&gt;
In summary, prioritizing performance during all stages of development, building, and serving of web applications is critical for achieving an excellent user experience and high productivity.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--DxJM7tyd--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/0u0xaeoh50mu8tln9k4x.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--DxJM7tyd--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/0u0xaeoh50mu8tln9k4x.png" alt="Image description" width="800" height="671"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://younisjad.medium.com/vite-vs-swc-vs-webpack-a-performance-comparison-for-react-applications-1384553c659d"&gt;Continue Reading&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/unijad/react-benchmark"&gt;Source Code&lt;/a&gt;&lt;/p&gt;

</description>
      <category>react</category>
      <category>webdev</category>
      <category>vite</category>
      <category>typescript</category>
    </item>
    <item>
      <title>Go Type Casting: Starter Guide</title>
      <dc:creator>Younis Jad</dc:creator>
      <pubDate>Fri, 07 Jul 2023 10:39:33 +0000</pubDate>
      <link>https://dev.to/lyonas/go-type-casting-starter-guide-17i8</link>
      <guid>https://dev.to/lyonas/go-type-casting-starter-guide-17i8</guid>
      <description>&lt;p&gt;There are two ways of converting types in Go: Implicit conversion and Explicit conversion.&lt;/p&gt;

&lt;h2&gt;
  
  
  Implicit Conversion
&lt;/h2&gt;

&lt;p&gt;Implicit conversionImplicit conversion occurs when Go converts the type of a value automatically. For instance, when we assign an integer value to a float variable, Go will automatically convert it to a float type. Here is an example of implicit conversion:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight go"&gt;&lt;code&gt;&lt;span class="k"&gt;package&lt;/span&gt; &lt;span class="n"&gt;main&lt;/span&gt;

&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="s"&gt;"fmt"&lt;/span&gt;

&lt;span class="k"&gt;func&lt;/span&gt; &lt;span class="n"&gt;main&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="k"&gt;var&lt;/span&gt; &lt;span class="n"&gt;a&lt;/span&gt; &lt;span class="kt"&gt;float32&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="m"&gt;5.6&lt;/span&gt;
  &lt;span class="k"&gt;var&lt;/span&gt; &lt;span class="n"&gt;b&lt;/span&gt; &lt;span class="kt"&gt;float64&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;a&lt;/span&gt;

  &lt;span class="n"&gt;fmt&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Printf&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"a = %v, b = %v&lt;/span&gt;&lt;span class="se"&gt;\n&lt;/span&gt;&lt;span class="s"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;a&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;b&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Explicit conversion
&lt;/h2&gt;

&lt;p&gt;Explicit conversion occurs when we use the casting syntax to convert a value to a different type. The casting syntax in Go is similar to other programming languages, as it requires enclosing the value in parentheses and specifying the type in front of them. Here is an example of explicit conversion:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight go"&gt;&lt;code&gt;&lt;span class="k"&gt;package&lt;/span&gt; &lt;span class="n"&gt;main&lt;/span&gt;

&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="s"&gt;"fmt"&lt;/span&gt;

&lt;span class="k"&gt;func&lt;/span&gt; &lt;span class="n"&gt;main&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="k"&gt;var&lt;/span&gt; &lt;span class="n"&gt;a&lt;/span&gt; &lt;span class="kt"&gt;float64&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="m"&gt;5.6&lt;/span&gt;
  &lt;span class="k"&gt;var&lt;/span&gt; &lt;span class="n"&gt;b&lt;/span&gt; &lt;span class="kt"&gt;int&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="kt"&gt;int&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;a&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

  &lt;span class="n"&gt;fmt&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Printf&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"a = %v, b = %v&lt;/span&gt;&lt;span class="se"&gt;\n&lt;/span&gt;&lt;span class="s"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;a&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;b&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;In the code above, the value of variable a is explicitly cast to an integer, and it is assigned to variable b. The int function is used to perform the type conversion, and the resulting value is truncated to an integer.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://younisjad.medium.com/a9c1811670c5"&gt;Continue Reading&lt;/a&gt;&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>go</category>
      <category>datastructures</category>
      <category>tutorial</category>
    </item>
    <item>
      <title>Efficient Workflow in Go with Temporal.io: Repository Pattern</title>
      <dc:creator>Younis Jad</dc:creator>
      <pubDate>Thu, 06 Jul 2023 01:19:20 +0000</pubDate>
      <link>https://dev.to/lyonas/efficient-workflow-in-go-with-temporalio-repository-pattern-3be6</link>
      <guid>https://dev.to/lyonas/efficient-workflow-in-go-with-temporalio-repository-pattern-3be6</guid>
      <description>&lt;blockquote&gt;
&lt;p&gt;TDLR: This pattern involves creating a dedicated repository layer for data access, which abstracts the data access layer from the rest of the application.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;a href="https://younisjad.medium.com/efficient-workflow-in-go-with-temporal-io-repository-pattern-d66e6ac78e39"&gt;Continue Reading&lt;/a&gt;&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>go</category>
      <category>tutorial</category>
      <category>opensource</category>
    </item>
    <item>
      <title>Efficient Workflow in Go with Temporal.io: Layered Architecture</title>
      <dc:creator>Younis Jad</dc:creator>
      <pubDate>Wed, 05 Jul 2023 20:21:11 +0000</pubDate>
      <link>https://dev.to/lyonas/efficient-workflow-in-go-with-temporalio-layered-architecture-435d</link>
      <guid>https://dev.to/lyonas/efficient-workflow-in-go-with-temporalio-layered-architecture-435d</guid>
      <description>&lt;p&gt;In this article, we will explore how layer patterns and Temporal.io can be integrated to create an efficient workflow orchestration for Golang applications. This approach allows for the separation of business logic and data access functions, making the code more streamlined, modular, and maintainable.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://younisjad.medium.com/efficient-workflow-in-go-with-temporal-io-layered-architecture-66b1b70ff5a5"&gt;Continue Reading&lt;/a&gt;&lt;/p&gt;

</description>
      <category>programming</category>
      <category>go</category>
      <category>eventdriven</category>
      <category>opensource</category>
    </item>
    <item>
      <title>Using Temporal to Build Scalable and Fault-Tolerant Applications in Golang</title>
      <dc:creator>Younis Jad</dc:creator>
      <pubDate>Wed, 05 Jul 2023 20:18:01 +0000</pubDate>
      <link>https://dev.to/lyonas/using-temporal-to-build-scalable-and-fault-tolerant-applications-in-golang-2aim</link>
      <guid>https://dev.to/lyonas/using-temporal-to-build-scalable-and-fault-tolerant-applications-in-golang-2aim</guid>
      <description>&lt;p&gt;we will cover how to build ready-to-run services using Temporal in Golang. This Tutorial will teach you how to design and build fault-tolerant and scalable services that are suitable for use in distributed systems.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://younisjad.medium.com/using-temporal-to-build-scalable-and-fault-tolerant-applications-in-golang-99ed2f47bf68"&gt;Continue Reading&lt;/a&gt;&lt;/p&gt;

</description>
      <category>programming</category>
      <category>webdev</category>
      <category>go</category>
      <category>opensource</category>
    </item>
  </channel>
</rss>
