<?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: Asper Brothers</title>
    <description>The latest articles on Forem by Asper Brothers (@asperbrothers).</description>
    <link>https://forem.com/asperbrothers</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%2F119390%2Fa86b114a-df1a-48e4-bb45-c5810f835ef6.png</url>
      <title>Forem: Asper Brothers</title>
      <link>https://forem.com/asperbrothers</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/asperbrothers"/>
    <language>en</language>
    <item>
      <title>What is Software Development Sprint?</title>
      <dc:creator>Asper Brothers</dc:creator>
      <pubDate>Mon, 27 Apr 2020 12:09:29 +0000</pubDate>
      <link>https://forem.com/asperbrothers/what-is-software-development-sprint-iff</link>
      <guid>https://forem.com/asperbrothers/what-is-software-development-sprint-iff</guid>
      <description>&lt;p&gt;To read the whole article please go to &lt;a href="https://asperbrothers.com/blog/software-development-sprint/"&gt;https://asperbrothers.com/blog/software-development-sprint/&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;We live in a highly competitive world. New products are constantly developed and swiftly brought into the market where companies are pressured to deliver innovative products faster and faster. How else will they find themselves on top of the competition? Simply put, by using scrum. &lt;br&gt;
In this article you’ll learn about:&lt;/p&gt;

&lt;p&gt;Key elements, roles &amp;amp; responsibilities of software development.&lt;br&gt;
4 biggest benefits of software development sprints.&lt;br&gt;
Which tools will help you run your development sprints? &lt;br&gt;
Scrum is a framework that allows a team to work together by organizing and managing meetings, tools, and roles. The most important element in scrum is called sprint, which is a short time period in which the team must work together to finish a set amount of work.&lt;/p&gt;

&lt;p&gt;Here’s everything you should know about what constitutes an effective  software development sprint: &lt;/p&gt;

&lt;p&gt;Software development sprint: key elements, roles &amp;amp; responsibilities &lt;br&gt;
Each software development sprint involves what we’ll call scrum artifacts (i.e. product backlog, sprint goal, sprint backlog) and scrum ceremonies (i.e. product backlog refinement meeting, sprint planning meeting, daily stand-up meeting, sprint review, sprint retrospective). &lt;/p&gt;

&lt;p&gt;When you’re starting a scrum project, you’ll want to consider the number of sprints that you want to include. Each sprint will last roughly 2-4 weeks. This will help you understand the role of each sprint in accomplishing your goals. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--BQhlCldK--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/wqjepdfkzvbdm4d1gdhp.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--BQhlCldK--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/wqjepdfkzvbdm4d1gdhp.jpg" alt="scrum"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;To continue reading go to &lt;a href="https://asperbrothers.com/blog/software-development-sprint/"&gt;https://asperbrothers.com/blog/software-development-sprint/&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>scrum</category>
      <category>sprint</category>
      <category>dailymeeting</category>
    </item>
    <item>
      <title>Laravel Repository Pattern</title>
      <dc:creator>Asper Brothers</dc:creator>
      <pubDate>Wed, 18 Dec 2019 13:43:53 +0000</pubDate>
      <link>https://forem.com/asperbrothers/laravel-repository-pattern-how-to-use-why-it-matters-1g9d</link>
      <guid>https://forem.com/asperbrothers/laravel-repository-pattern-how-to-use-why-it-matters-1g9d</guid>
      <description>&lt;p&gt;Originally posted on: &lt;a href="https://asperbrothers.com/blog/implement-repository-pattern-in-laravel/"&gt;https://asperbrothers.com/blog/implement-repository-pattern-in-laravel/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The first thing we need to know to implement a repository pattern in the Laravel application is to understand what Repository Pattern is and what are the benefits of using it.&lt;/p&gt;

&lt;p&gt;In this article you’ll learn about:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Main benefits of using Repository Pattern &lt;/li&gt;
&lt;li&gt;How to implement a Repository Pattern in Laravel?&lt;/li&gt;
&lt;li&gt;We will show you step by step how to start code and implement it in Laravel app&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  What’s important
&lt;/h2&gt;

&lt;p&gt;A repository is a separation between a domain and a persistent layer. The repository provides a collection interface to access data stored in a database, file system or external service. Data is returned in the form of objects.&lt;/p&gt;

&lt;p&gt;The main idea to use Repository Pattern in a Laravel application is to create a bridge between models and controllers. In other words, to decouple the hard dependencies of models from the controllers. The model should not be responsible for communicating with or extracting data from the database. A model should be an object that represents a given table/document/object or any other type in our data structure and this should be its sole responsibility. Therefore, to keep your Laravel code clean, it is worth using repositories to separate the responsibility for which the model should never be responsible.&lt;/p&gt;

&lt;p&gt;The use of Repository Pattern has many benefits, below is a list of the most important ones:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Centralization of the data access logic makes code easier to maintain&lt;/li&gt;
&lt;li&gt;Business and data access logic can be tested separately&lt;/li&gt;
&lt;li&gt;Reduces duplication of code&lt;/li&gt;
&lt;li&gt;A lower chance for making programming errors&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;In most Laravel applications you may encounter such a code.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;class UsersController extends Controller
{
   public function index()
   {
       $users = User::all();

       return view('users.index', [
           'users' =&amp;gt; $users
       ]);
   }
} 

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;At first glance, it doesn’t look that bad. However, it is worth to think what if the client proposes to change the data structure and instead of in MySQL/Postgresql from now on we are going to keep the data somewhere else, in the data engine which is not supported by Eloquent? When we write such a code, such a change may turn out to be very difficult to implement, or even impossible! That’s why it’s very dangerous to write code this way, every implementation should be based on interfaces, so in case of changes you don’t need to change the code in the whole application, but only create another class implementing the interface. This should be the code above written in a correct way. (The code above should be written in a correct way).&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;class UsersController extends Controller
{
   private $userRepository;

   public function __construct(UserRepositoryInterface $userRepository)
   {
       $this-&amp;gt;userRepository = $userRepository;
   }

   public function index()
   {
       $users = $this-&amp;gt;userRepository-&amp;gt;all();

       return view('users.index', [
           'users' =&amp;gt; $users
       ]);
   }
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;In this particular example, when a client wishes to change the data structure, it is child’s play to implement these changes into our application! We simply create a class that implements UserRepositoryInterface and contains the logic that will allow us to pull it out in a new way and everything works again. That is why it is so important to write code in such a way that even when the client comes with the most difficult change we will be able to deal with it easily. The repository template greatly facilitates this process!&lt;/p&gt;




&lt;p&gt;To see the entire article go to &lt;a href="https://asperbrothers.com/blog/implement-repository-pattern-in-laravel/"&gt;https://asperbrothers.com/blog/implement-repository-pattern-in-laravel/&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>laravel</category>
      <category>php</category>
      <category>patterns</category>
    </item>
  </channel>
</rss>
