<?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: Abdur Rehman Khalid</title>
    <description>The latest articles on DEV Community by Abdur Rehman Khalid (@abdurrkhalid333).</description>
    <link>https://dev.to/abdurrkhalid333</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%2F157678%2F4d305273-8d77-420e-ab8e-c62bde1cddab.jpeg</url>
      <title>DEV Community: Abdur Rehman Khalid</title>
      <link>https://dev.to/abdurrkhalid333</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/abdurrkhalid333"/>
    <language>en</language>
    <item>
      <title>Design Patterns in Software Development</title>
      <dc:creator>Abdur Rehman Khalid</dc:creator>
      <pubDate>Sat, 22 Oct 2022 19:03:20 +0000</pubDate>
      <link>https://dev.to/abdurrkhalid333/design-patterns-in-software-development-4b82</link>
      <guid>https://dev.to/abdurrkhalid333/design-patterns-in-software-development-4b82</guid>
      <description>&lt;p&gt;If you have worked with the enterprise level softwares or any legacy software than you already know that there exists a specific programming pattern (Design Pattern) to solve a specific problem. If you are getting started with your software career than it is a sure thing that in the near future or at any stage of your career you will work with at-least one of the Software Design Pattern.&lt;/p&gt;

&lt;p&gt;Due to huge importance of Design Pattern in software development, I was very much interested to spread my knowledge regarding Design Patterns to as much people as possible. In this article we will be looking at what are Design Pattern and how a Design Pattern can be studied as well.&lt;/p&gt;

&lt;h2&gt;
  
  
  What is a Design Pattern?
&lt;/h2&gt;

&lt;p&gt;Now, if you have not heard of Design Patterns, then it is a sure thing that you can be a bit intimidating but it is just a process of understanding some very basic things. Now, let's come to the point, four software engineers sat together and observed mostly common ways used to solve often occurring problems and documented them in a very effective way and called them &lt;em&gt;Design Patterns&lt;/em&gt;. &lt;/p&gt;

&lt;p&gt;Now, there comes another question, how were those four software engineers, so let's answer this question as well.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Erich Gamma &lt;/li&gt;
&lt;li&gt;John Vlissides &lt;/li&gt;
&lt;li&gt;Ralph Johnson&lt;/li&gt;
&lt;li&gt;Richard Helm
The above persons are called the &lt;em&gt;Gang of Four&lt;/em&gt; who are responsible behind the writing the book called &lt;strong&gt;Design Pattern Elements of Reusable Object-Oriented Software&lt;/strong&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fdg3u2rs21a03df221mt6.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fdg3u2rs21a03df221mt6.png" alt="GangOfFour" width="800" height="355"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Purpose of Design Patterns
&lt;/h3&gt;

&lt;p&gt;Design Patterns plays a very important role in the Object Oriented Software Design. Each level of enterprise application has some kind of Design Pattern Implementation. Design Patterns Helps to Create More Reusability Friendly Code that is easy to handle.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why Design Patterns are Required?
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;Using a Design Pattern specific to any problem can improve the overall documentation and design of project.&lt;/li&gt;
&lt;li&gt;Using a Design Pattern can help to build effective software with usability increased to many folds.&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Components of Design Pattern
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;Name: The name of the Design Pattern includes the problem and it's solution.&lt;/li&gt;
&lt;li&gt;Problem: What kind of problem the specific design pattern will solve.&lt;/li&gt;
&lt;li&gt;Solution: What is the solution of specific problem.&lt;/li&gt;
&lt;li&gt;Consequences: What will be the consequences in terms of space and time complexity etc.&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Main Classes of Design Patterns
&lt;/h2&gt;

&lt;p&gt;There exists following types of Design Patterns:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Creational&lt;/li&gt;
&lt;li&gt;Structural&lt;/li&gt;
&lt;li&gt;Behavioral&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Introduction to the Classes
&lt;/h2&gt;

&lt;p&gt;We know what types of classes exists in the Design Pattern so let's have a brief introduction of the each class.&lt;/p&gt;

&lt;h3&gt;
  
  
  Creational
&lt;/h3&gt;

&lt;p&gt;Creational Design Patterns refer to the control the creation of specified objects or classes.&lt;/p&gt;

&lt;h3&gt;
  
  
  Structural
&lt;/h3&gt;

&lt;p&gt;Structural Design Patterns refer to making a very specific structure of the classes or interfaces.&lt;/p&gt;

&lt;h3&gt;
  
  
  Behavioral
&lt;/h3&gt;

&lt;p&gt;Behavioral Design Patterns refer to control the behavior of the Classes, Objects or Interfaces.&lt;/p&gt;

&lt;h1&gt;
  
  
  Learning the Design Patterns
&lt;/h1&gt;

&lt;p&gt;Learning Design Patterns is not just writing code, it contains the understanding of Class Diagrams, and understanding the connection of each class or interface with each other.&lt;/p&gt;

&lt;p&gt;Design Patterns can be learned from the book &lt;strong&gt;Design Pattern Elements of Reusable Object-Oriented Software&lt;/strong&gt; very effectively.&lt;/p&gt;

&lt;p&gt;I have created an open source project that contains the very information of the each Design Pattern alongside with the Java code implementation. This repository is not complete but it will be completed soon. If you want to contribute, then you can implement each Design Pattern in other programming languages as well.&lt;br&gt;
&lt;a href="https://github.com/AbdurRKhalid/Design-Patterns"&gt;Design Patterns Repo on GitHub&lt;/a&gt;&lt;/p&gt;

</description>
      <category>tutorial</category>
      <category>opensource</category>
      <category>productivity</category>
      <category>community</category>
    </item>
    <item>
      <title>What is ElasticSearch?</title>
      <dc:creator>Abdur Rehman Khalid</dc:creator>
      <pubDate>Tue, 13 Sep 2022 08:20:20 +0000</pubDate>
      <link>https://dev.to/abdurrkhalid333/what-is-elasticsearch-3h3o</link>
      <guid>https://dev.to/abdurrkhalid333/what-is-elasticsearch-3h3o</guid>
      <description>&lt;p&gt;We are going to talk about what is ElasticSearch, what kind of functionalities it provides and what kind of benefits can be get from this specific technology.&lt;br&gt;
The structured data and semi-structured data is increasing at a huge pace, and that results in big data, and big data is the amount of data that cannot be stored in the conventional computers so we have to think about new strategies to handle huge amount of data, so that we can have some useful and effective insights from this data. &lt;br&gt;
Elastic Search is one of those things that can help us perform different type of actions on the text data or JSON or document based data. ElasticSearch provides many facilities to perform different types of the searches in the huge amount of the data. This includes the full text searches or tag searches or any other kind of searches such as token or noun kind of searches as well.&lt;/p&gt;

&lt;h2&gt;
  
  
  History of ElasticSearch
&lt;/h2&gt;

&lt;p&gt;The very first version of ElasticSearch was released in February, 2014. The latest version of ElasticSearch is the 8.0.0 and it was released in February, 2022. Starting from very basics ElasticSearch has come a long way with its optimized algorithms and other fault tolerance strategies as well.&lt;/p&gt;

&lt;h2&gt;
  
  
  ElasticSearch as Stack
&lt;/h2&gt;

&lt;p&gt;ElasticSearch is overall a stack that includes Kibana, Logstash and ElasticSearch, all these things combines to create the ElasticSearch stack, and each one of these have different kind of purpose to fill. For example the Kibana can be used to configure the ElasticSearch and Logstash can have all the logs of the ElasticSearch for examples how many API calls have been made, how many were successful and how many time each call took to be completed. Kibana is also a kind of dashboard and it can be customized as well.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fp9t2wxs2jq9zkt0ub4uj.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fp9t2wxs2jq9zkt0ub4uj.png" alt="ElasticSearch as Stack"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Overview of ElasticSearch
&lt;/h2&gt;

&lt;p&gt;ElasticSearch is the API that has some specific End-Points and using those End-Points we can perform different types of actions that includes creating different indices, querying the text, and applying different kind of conditions as well. Some of these End-Points can provide the facility to create a better option for the fault tolerance as well.&lt;br&gt;
ElasticSearch provides the facility to apply different kind of aggregated functions as well, and those aggregated functions can help to do different kind of work on the text that includes the application of the different types of Machine Learning algorithms as well.&lt;br&gt;
Tokenizing can provide the facility to run the object detection/subject detection and other kind of things.&lt;/p&gt;

&lt;h2&gt;
  
  
  When to use ElasticSearch?
&lt;/h2&gt;

&lt;p&gt;Now, as we know that what is the ElasticSearch and what kind of things we can do with it, so now we have to look at the reasons and motivation for the usage of the ElasticSearch and when should we take the action to implement it in the project.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Let's say that you have a huge amount of document database, and you want the facility to search the text in a rapid fast speed.&lt;/li&gt;
&lt;li&gt;Let's say that you have an enterprise level application that contains different types of the data and you want to have a enterprise level database search.&lt;/li&gt;
&lt;li&gt;Let's say that you have some huge amount of text data and you have to train a model on some very specific type of the properties of the text.&lt;/li&gt;
&lt;li&gt;You have logs from a server and you are doing any kind of monitoring and you want to know that how much the server usage will be in the next 24 months.&lt;/li&gt;
&lt;li&gt;You want to perform some specific types of searches in huge amount of logs data.&lt;/li&gt;
&lt;li&gt;You want to monitor continuously the performance of the servers that you are managing.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F54wy55q6htkgjoadnwfd.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F54wy55q6htkgjoadnwfd.png" alt="Sample Usecase"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I have tried to provide a very basic introduction to the ElasticSearch and when we can use it. Due to it's very limited use cases it is not used commonly in the daily development. It is very important to know the need before implementing it, because setting the production environment itself is a challenge.&lt;/p&gt;

</description>
      <category>beginners</category>
      <category>tutorial</category>
      <category>opensource</category>
      <category>database</category>
    </item>
    <item>
      <title>What I learned from Developing a MEAN Stack Project!</title>
      <dc:creator>Abdur Rehman Khalid</dc:creator>
      <pubDate>Fri, 19 Aug 2022 14:38:44 +0000</pubDate>
      <link>https://dev.to/abdurrkhalid333/what-i-learned-from-developing-a-mean-stack-project-405j</link>
      <guid>https://dev.to/abdurrkhalid333/what-i-learned-from-developing-a-mean-stack-project-405j</guid>
      <description>&lt;p&gt;I have been working on a MEAN stack project for the last 1 and half years. I choose this tech stack due to reason of unconfirmed requirements and also not being able to determine the structure of the database as well. This tech has provided us both facilities and also some problems as well. I am writing this from my side and all views and experiences are my own and it is quite possible that the views or others will be different as well.&lt;br&gt;
In this article I will discuss both Pros and Cons of the MEAN Stack in the light of project I have built and I will also discuss at what stages it made me worried and at what stages it provided me ease.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fzk85s6xkmi551f4xuaxe.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fzk85s6xkmi551f4xuaxe.png" alt="Positivity"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Pros
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Flexibility of MongoDB
&lt;/h3&gt;

&lt;p&gt;As we know that MongoDB is a Document Based Database and it is flexible in terms of the structure or we can say properties. Flexibility means the ability to change the structure of the collection easily. Due to unconfirmed requirements the requirements increased or decreased rapidly so MongoDB provided us an excellent way of handling this abrupt change in requirements as After adding a new variable it did not break the previous data entries and worked fine with new entries as well.&lt;/p&gt;

&lt;h3&gt;
  
  
  Excellent Support for Angular
&lt;/h3&gt;

&lt;p&gt;Currently Angular 14 is available so due to fact that Angular is available in the Software Industry for a long time, it is very easy to find proper libraries and also the solution to any problem due to its vast community. This made the development process fast and easy. Every time when we as team faced any problem either it was related with UI or any other TypeScript we went out and we found solution very easily due to excellent support and huge community provided solutions.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fup3tfg8suobbns91v18n.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fup3tfg8suobbns91v18n.jpg" alt="Being Positive"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Fast Back-End Running JavaScript
&lt;/h3&gt;

&lt;p&gt;Due to fact that Node.JS use the Even Detection and it works Asynchronously and also with single thread, it was best choice for the project because we do not have tasks that were to be completed at a same time (Multi-Threading) so Node.JS proved to be an excellent Back-End framework that proved to be fast enough to process requests from server side very fast and effectively,&lt;/p&gt;

&lt;h3&gt;
  
  
  Easy Work Flow
&lt;/h3&gt;

&lt;p&gt;Writing Back-End APIs in the Node.JS is very easy and now here comes the role of the good programming practices and also the experience of developer as well. If the developer has some basic understanding of Design Patterns and how to write good and modular code than it becomes very easy to work with any scale of Back-End. Due to Express.JS it became very easy to work with the API End-Points and also with the Response as well.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F7s3mndnlg3ylj78map84.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F7s3mndnlg3ylj78map84.jpg" alt="UX Design"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Well Handled Errors and Response
&lt;/h3&gt;

&lt;p&gt;Node.JS being a JavaScript has provided the facility to manage the errors effectively and easily. We were able to customize the error messages so that the Front-End developers does not have to be worried about handling strange kind of errors coming from the Back-End. JavaScript provided the ability to interact directly with the Back-End as well. We felt very comfortable working with it as well.&lt;/p&gt;

&lt;p&gt;Now these were the things that we enjoyed very much now let's see what were things that made us a bit angry sometimes.&lt;/p&gt;

&lt;h2&gt;
  
  
  Cons
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Difficulty to Map Relationships in MongoDB
&lt;/h3&gt;

&lt;p&gt;Our project did not contains to much relations but some relations. But in those some relations some were deeply nested and some were not that deeply nested. The one to two level deep relationships were easily managed but when it comes to handle more deeper relationships it became very difficult and writing Mongoose Queries were not that simple.&lt;/p&gt;

&lt;h3&gt;
  
  
  Usage of Strict TypeScript
&lt;/h3&gt;

&lt;p&gt;Due to fact that Angular uses that TypeScript as processing language sometimes it became very difficult to write strict and highly modular Angular code. That resulted the usage of the 'any' keyword that describe the arbitrary object type to the variables.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Flhc0ttdtyxhaxnq344ux.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Flhc0ttdtyxhaxnq344ux.jpg" alt="Thinking"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Processing Large Amount of Data
&lt;/h3&gt;

&lt;p&gt;The one problem that remains even with Node.JS is that if we fetch large amount of data it still takes sometime to send response to Front-End as well. At first I thought that Node.JS will perform better in this case but it is not completely true.&lt;br&gt;
When building highly data intensive applications Node.JS can prove to be a bad choice.&lt;/p&gt;

&lt;h3&gt;
  
  
  Depreciation of Libraries
&lt;/h3&gt;

&lt;p&gt;Node.JS and Angular both uses external libraries that relies on other libraries so it is a problem because some base libraries get removed so main library does not work, so it creates the problem of constantly updating the both Node and Angular libraries.&lt;/p&gt;

&lt;p&gt;So, this was some problems that we faced while working with MEAN Stack framework. It was a fun project and we learned a lot of new things including how to gather requirements and how to analyze and work with requirements in a better and correct way.&lt;/p&gt;

</description>
      <category>javascript</category>
      <category>node</category>
      <category>webdev</category>
      <category>career</category>
    </item>
    <item>
      <title>A Brief Introduction to Spring Boot</title>
      <dc:creator>Abdur Rehman Khalid</dc:creator>
      <pubDate>Thu, 16 Jun 2022 10:55:37 +0000</pubDate>
      <link>https://dev.to/abdurrkhalid333/a-brief-introduction-to-spring-boot-4f4l</link>
      <guid>https://dev.to/abdurrkhalid333/a-brief-introduction-to-spring-boot-4f4l</guid>
      <description>&lt;h2&gt;
  
  
  Introduction
&lt;/h2&gt;

&lt;p&gt;Spring Boot is the MVC framework written in the Java, that simplifies the building of the large enterprise level applications simpler. Spring Boot helps to organize the code in a format that helps the developers working on a very large project. It provides flexibility in the development of new features independently due to support of Microservices architecture, Spring Boot is also a base for the many legacy projects as well. It is worth to invest time in order to learn this excellent frameworks that can benefit everyone in the long run or if you are someone who wants to combine the modern tech stacks with the legacy programming language Java. Spring Boot is the modern framework, if you look a little back you can find the Spring MVC as well.&lt;/p&gt;

&lt;p&gt;Spring Boot has many other parts, it contains Spring Cloud that further contains things like Load Balancer, Messaging Queue and Spring Security that can check the integrity of the JWT and other things related to the access of the RESTful API it all depends upon the project needs and demands. &lt;/p&gt;

&lt;h2&gt;
  
  
  History and Early Development
&lt;/h2&gt;

&lt;p&gt;Main Idea for Spring Boot came into existence in October, 2012. It all started when &lt;strong&gt;Mike Youngstrom&lt;/strong&gt; made a request to make the bootstrapping for the Spring Framework and in the 2013 Spring Boot was made.&lt;/p&gt;

&lt;p&gt;If go back further we can see that first version of Spring Framework was written by Rod Johnson in the October 2003 but it took around one year to make the production release of the Spring Framework.&lt;/p&gt;

&lt;h2&gt;
  
  
  Architecture Introduction
&lt;/h2&gt;

&lt;p&gt;Architecture of the Spring Boot can be divided into 4 basic layers which are described as following:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Presentation Layer. &lt;/li&gt;
&lt;li&gt;Business Layer. &lt;/li&gt;
&lt;li&gt;Persistence Layer. &lt;/li&gt;
&lt;li&gt;Database
Layer.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Now Let's have a look at what is the function of each layer.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1. Presentation Layer&lt;/strong&gt;&lt;br&gt;
This layer contains the view that the user will be interacting with, so it is a kind of Front-End view that user can interact with and the very next layer is connected with this layer. HTTP requests are generated from this page that goes to Back-End for the processing and after processing the result is sent to the Front-End.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2. Business Layer&lt;/strong&gt;&lt;br&gt;
This layer contains the Business Rules implementation that are important for conducting business, and this layers mostly contains the Services in which different logics are implemented either checking the format of Email or if the Customer is Present in the Database or not all these kind of things are present in this layer.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3. Persistence Layer&lt;/strong&gt;&lt;br&gt;
Now here we are calling all the methods that will help to store or retrieve the data from the Database. If JPA is being used than we already have some methods available that can facilitate working with Database and at the end it will save a lot of time as well.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;4. Database Layer&lt;/strong&gt;&lt;br&gt;
Now here we have different entities(will be tables in the database) so the data is retrieved and stored for the practical purposes. This layer is directly connected with the Database and Database can be MySQL, NoSQL, MongoDB or PSQL as well. Hibernate is being used then there is no need to worry about database.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F1afc74oztfi1c3whos0a.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F1afc74oztfi1c3whos0a.jpg" alt="Arct Example" width="721" height="441"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  HTML Frameworks supported
&lt;/h2&gt;

&lt;p&gt;Almost all modern Front-End or JavaScript Frameworks will work almost perfectly fine, but there are some other Native Java Frameworks that can also work perfectly fine as well. This means that if you are not into specific Front-End framework then you can still use the Spring Boot writing Plane HTML and CSS using the following Frameworks:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Vaadin (In this Framework, you don't even required HTML Knowledge)&lt;/li&gt;
&lt;li&gt;Thymleaf&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;These are the basic frameworks that can be used alongside Spring Boot without any specific JavaScript framework knowledge.&lt;/p&gt;

&lt;h2&gt;
  
  
  Pros of Using Spring Boot
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;Dependency Management is very easy. &lt;/li&gt;
&lt;li&gt;Implementation of Design Patterns is very convenient. &lt;/li&gt;
&lt;li&gt;Structuring of the Project is easy to understand. &lt;/li&gt;
&lt;li&gt;Efficient in terms of the Time. &lt;/li&gt;
&lt;li&gt;No need to worry about setting of different SQL based Databases, because of ORMs. &lt;/li&gt;
&lt;li&gt;Availability of Huge Collection of Plugins. &lt;/li&gt;
&lt;li&gt;Availability of Microservices Architecture.&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Cons of Using Spring Boot
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;Deployment can be a little bit of Problem at first time.&lt;/li&gt;
&lt;li&gt;Setting up the development environment takes time.&lt;/li&gt;
&lt;li&gt;Wrong or careless entity management can create bottleneck on the front-end.&lt;/li&gt;
&lt;li&gt;Bad Developer experience due to large rebuild times.&lt;/li&gt;
&lt;li&gt;Have to restart after each change in order to observer the new changes.&lt;/li&gt;
&lt;/ol&gt;

</description>
      <category>java</category>
      <category>programming</category>
      <category>architecture</category>
      <category>beginners</category>
    </item>
    <item>
      <title>What is Docker and Why it is so famous these days?</title>
      <dc:creator>Abdur Rehman Khalid</dc:creator>
      <pubDate>Sat, 12 Mar 2022 10:58:58 +0000</pubDate>
      <link>https://dev.to/abdurrkhalid333/what-is-docker-and-why-it-is-so-famous-these-days-4hcb</link>
      <guid>https://dev.to/abdurrkhalid333/what-is-docker-and-why-it-is-so-famous-these-days-4hcb</guid>
      <description>&lt;p&gt;Nowadays it is very important for developers to get started with projects as quickly as possible and do not waste their time worrying about things that the End-User does not have any concern with. The things that can waste the time of a developers are getting the appropriate libraries installed, getting the right database server installed and also getting the right database exploration tool installed. &lt;strong&gt;Docker&lt;/strong&gt; is a way that can reduce all these kind of installations for a developer by making everything available at a single place already.&lt;br&gt;
In this small article we would be looking at the basic working of the Docker and some basic things that are being used in the Docker as well.&lt;/p&gt;

&lt;h2&gt;
  
  
  But what is Docker?
&lt;/h2&gt;

&lt;p&gt;We can say that Docker is something that helps to centralised the development tools for a developer at a single place so that the developer does not have to look for the specific libraries and the database servers on the internet to get started working on the project. It is a kind of system that takes all the loads of setting the working environment for the developer so that developer can start working on the real problems instead of taking a lot of time setting up the workplace before starting the business and customer centre work.&lt;/p&gt;

&lt;h2&gt;
  
  
  How Docker do all the Centralising of Development Tools?
&lt;/h2&gt;

&lt;p&gt;In order to understand how &lt;strong&gt;Docker&lt;/strong&gt; works, we have to walk through some basics terminologies that are connected with the &lt;strong&gt;Docker&lt;/strong&gt;. These terminologies include Image, Registry, and Docker Hub. Let's walk through these things one by one so that we can understand the purpose of each one.&lt;/p&gt;

&lt;h3&gt;
  
  
  Image
&lt;/h3&gt;

&lt;p&gt;Docker is basically a central things and it runs the instances of Images on it, and now Image contains all the information regarding the libraries that are required to run the project related things such as Database Server etc. Image contains some other instructions as well such as which files should be included while exporting the project.&lt;/p&gt;

&lt;h3&gt;
  
  
  Registry
&lt;/h3&gt;

&lt;p&gt;Registry is kind of place where different images for different purposes can be found. The main example of the Registry is the &lt;strong&gt;Docker Hub&lt;/strong&gt;. In docker hub we can find all the major images so that we can start working on the project straight away.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ftyfsudhlxn2p948t7s4u.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ftyfsudhlxn2p948t7s4u.jpg" alt="Example Registry" width="800" height="418"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  Understanding the Process of Docker
&lt;/h1&gt;

&lt;p&gt;Let's look at the actual process of the working of Docker, so what Docker actually does is that it creates an instance just like virtual machine, and just like other virtual machines you can run multiple instances of different images. So, everything is containerised and no one will interface with each other. In other words, the containerising of the different applications are associated with the Docker.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F0ea5ezznjo417n6gttq9.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F0ea5ezznjo417n6gttq9.jpg" alt="Working of Multiple Instances with Docker" width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  One Phase of Application Development
&lt;/h1&gt;

&lt;p&gt;Now while building the application it is also a phase for the developers to make the application docker friendly so this process is also very easy because this will required only one file that will contain some instructions for the docker to run the instance of all the required things.&lt;/p&gt;

&lt;p&gt;So, this was the little introduction of the &lt;strong&gt;Docker&lt;/strong&gt; and how docker is used in the Project Development so that the time of the developers can be invested in the right place.&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>devops</category>
      <category>docker</category>
      <category>tutorial</category>
    </item>
    <item>
      <title>Starting a YouTube Channel for Programming Tutorials!</title>
      <dc:creator>Abdur Rehman Khalid</dc:creator>
      <pubDate>Fri, 09 Jul 2021 10:16:31 +0000</pubDate>
      <link>https://dev.to/abdurrkhalid333/starting-a-youtube-channel-for-programming-tutorials-5gmf</link>
      <guid>https://dev.to/abdurrkhalid333/starting-a-youtube-channel-for-programming-tutorials-5gmf</guid>
      <description>&lt;p&gt;I have created a YouTube Channel in Which I will be Uploading Tutorials Related to the Programming and Web Development.&lt;br&gt;
YouTube Channel Link:&lt;br&gt;
&lt;a href="https://www.youtube.com/channel/UChtr70R5H_ziehe_YjtOJtw"&gt;Learn To Code&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;If You Use Facebook then it will be a good option to like the Page so that you can get Notification Regarding Next Tutorial Updates.&lt;br&gt;
&lt;a href="https://www.facebook.com/LearnToBeProgrammer/"&gt;Learn To Code on Facebook&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Any Kind of Suggestions are Welcome.&lt;/p&gt;

&lt;p&gt;Have a Happy Week-End Ahead.&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>productivity</category>
      <category>html</category>
      <category>showdev</category>
    </item>
    <item>
      <title>A Brief Introduction to SCRUM</title>
      <dc:creator>Abdur Rehman Khalid</dc:creator>
      <pubDate>Mon, 28 Jun 2021 09:40:21 +0000</pubDate>
      <link>https://dev.to/abdurrkhalid333/a-brief-introduction-to-scrum-55j4</link>
      <guid>https://dev.to/abdurrkhalid333/a-brief-introduction-to-scrum-55j4</guid>
      <description>&lt;p&gt;In this article we are going to discuss some of the very basic concepts of the SCRUM type of software development. These terms will help us in building better software for the different types of users and stockholders.&lt;/p&gt;

&lt;h2&gt;
  
  
  Vision
&lt;/h2&gt;

&lt;p&gt;Writing the vision of the any organisation most specifically it is very important to write the vision from the view of the customer.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  Vision help us to understand where we want to be in next years.&lt;/li&gt;
&lt;li&gt;  Vision help us to build the Roadmap for a specific thing.&lt;/li&gt;
&lt;li&gt;  Working Software can help us to get the positive outcome from the customers.
&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fbwl8kwtginqhykwly677.jpg" alt="Vision" width="800" height="556"&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;Definition of Done&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;It helps to understand the Agile teams whether their software meets the quality bar or not.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  It can be a document Automatic Testing and Scalability.&lt;/li&gt;
&lt;li&gt;  Helps the Teams to Minimize the Development cost and Debt.
&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F1frjppm9ytbm6ccuwfx3.jpg" alt="Definition of Done" width="800" height="628"&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Sprint/Iteration
&lt;/h2&gt;

&lt;p&gt;The time span in weeks to complete a given task. It is better to have around 1-2 sprints in order to deliver the excellent and working solution to the good quality.&lt;br&gt;
&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F4guoyse6606d0pg3kkdd.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F4guoyse6606d0pg3kkdd.jpg" alt="Sprint" width="800" height="534"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Spring Backlog
&lt;/h2&gt;

&lt;p&gt;Sprint Backlog is the Prioritized list of work that is ready to being worked on from now on.&lt;/p&gt;

&lt;p&gt;It is not guaranteed that it will be done but it will be priority to get it complete.&lt;/p&gt;

&lt;p&gt;It is a kind of forecast not commitment.&lt;/p&gt;

&lt;h2&gt;
  
  
  Product Backlog
&lt;/h2&gt;

&lt;p&gt;Everything that time is looking forward to do. It is used to create sprint backlog. It is from starting to the medium term.&lt;/p&gt;

&lt;h2&gt;
  
  
  Definition of Ready
&lt;/h2&gt;

&lt;p&gt;A document to team agreement, containing specific conditions and team conditions.&lt;/p&gt;

&lt;h2&gt;
  
  
  Product Owners
&lt;/h2&gt;

&lt;p&gt;Very important role, and set by the organization for the best outcomes of the product or the software.&lt;/p&gt;

&lt;p&gt;What and Why&lt;/p&gt;

&lt;h2&gt;
  
  
  What and Why
&lt;/h2&gt;

&lt;p&gt;It is the Main and Basic thing that what we are building and why we are building that specific thing.&lt;/p&gt;

&lt;h2&gt;
  
  
  Dev Team
&lt;/h2&gt;

&lt;p&gt;All kind of persons from UI/UX designers to the testers.&lt;/p&gt;

&lt;h2&gt;
  
  
  How and When
&lt;/h2&gt;

&lt;p&gt;How we are going to meet the users requirements and when we are going for the release of the software and things like that are handled by the Dev Teams.&lt;/p&gt;

&lt;h2&gt;
  
  
  SCRUM Master
&lt;/h2&gt;

&lt;p&gt;Product Owner is looking forward to the speed and the Dev Team is looking forward to the quality of the product so who controls the balance and the answer is the simple it is the SCRUM Master. He coaches the product owner and dev team.&lt;br&gt;
&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F8ovl3ct4uane56zditim.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F8ovl3ct4uane56zditim.jpg" alt="SCRUM Master" width="800" height="1194"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Backlog Refinement / Backlog Grooming
&lt;/h2&gt;

&lt;p&gt;Once the sprint is finished, the SCRUM Master and the Dev Team have a meeting in which they talk about what has achieved and what has not achieved and how to achieve efficiently what is left behind and how much time it will take. This process is called the Backlog Refinement.&lt;/p&gt;

&lt;h2&gt;
  
  
  Sprint Planning
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;  What can be deliver in the next sprint?&lt;/li&gt;
&lt;li&gt;  How the work of next sprint can be accomplished?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;It totally depends upon the historical performance and current performance of the teams.&lt;/p&gt;

&lt;h2&gt;
  
  
  Daily SCRUM
&lt;/h2&gt;

&lt;p&gt;A short meeting at the end of the day to discuss what have done today and how to synchronized the work that is going on and how to achieve the due work. The following three questions are generally asked at the daily SCRUM.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt; What I did yesterday to meet sprint goal?&lt;/li&gt;
&lt;li&gt; What I will do today to meet sprint goal?&lt;/li&gt;
&lt;li&gt; What I should do tomorrow to meet sprint goal?&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Sprint Review
&lt;/h2&gt;

&lt;p&gt;The sprint work will be presented to the customer what has been done till now and what is remaining and how we are going to achieve the remaining work. This is most likely a demo of the currently working product so that the owner can have a good look at the completed things.&lt;/p&gt;

&lt;h2&gt;
  
  
  Retrospective
&lt;/h2&gt;

&lt;p&gt;The performance of the sprint is taken into account at the Retrospective phase. Here we have a look into what were the mistakes made and how we went with the structure of the team and what kind of effect technologies had on the sprint and what benefits we got by the means of the tools that were used during the sprint. Team will come up with a new plan for the improvement of the sprint.&lt;br&gt;
&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fz6ebmx21o1u24u9i9ej7.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fz6ebmx21o1u24u9i9ej7.jpg" alt="Retrospective" width="800" height="795"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Final Words
&lt;/h3&gt;

&lt;p&gt;I hope that these terms would have helped you in order to understand SCRUM better which is the very effective and useful software development technique which is being in used in most of the organisations.&lt;/p&gt;

</description>
      <category>career</category>
      <category>webdev</category>
      <category>productivity</category>
      <category>tutorial</category>
    </item>
    <item>
      <title>How to build Enterprise Level Web Applications using Java?</title>
      <dc:creator>Abdur Rehman Khalid</dc:creator>
      <pubDate>Thu, 10 Jun 2021 11:43:00 +0000</pubDate>
      <link>https://dev.to/abdurrkhalid333/how-to-build-enterprise-level-web-applications-using-java-4fbc</link>
      <guid>https://dev.to/abdurrkhalid333/how-to-build-enterprise-level-web-applications-using-java-4fbc</guid>
      <description>&lt;p&gt;Java has been used most of the time for learning the various concepts of Object Oriented Programming and concepts. Majority of us also knows that Java is widely used for the creation of Desktop Based Applications. Most of us also knows that the applications that has been built using Java are very boring and have very traditional look and user experience. But many of us do not know that most of the applications that we use daily has been developed using Java. These applications includes Google Drive, Google Docs and other Google Related Applications. &lt;br&gt;
Okay! So we we need Java in this world of JavaScript and all it's relative? First of all I am going to describe why we need Java to Build the Enterprise Level Web applications and which factors makes the Java standout of modern JavaScript Frameworks.&lt;br&gt;
&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fjzr326bsgwktobvcdx4z.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fjzr326bsgwktobvcdx4z.jpg" alt="Old Castle" width="800" height="600"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Why should we use Java to Build Big Web Applications?
&lt;/h2&gt;

&lt;p&gt;There are a couple of factors related to this questions including Security, Better Authentication, Better Data Management, Scalability and Development Cost.&lt;/p&gt;

&lt;h3&gt;
  
  
  Scalability
&lt;/h3&gt;

&lt;p&gt;Now what is meant by the Scalability? I would try to explain this term as simply as possible so that you do not feel bored and give up reading this article. &lt;br&gt;
Let's say that there is an application that has been built for the 500 users simultaneously, but at some stage the number of users increased to the 2000 users simultaneously, then how do you think your application will perform? &lt;br&gt;
If you are using Java to develop Web Applications and Projects, then you do not need to worry about this question, because Java provides an excellent way to handle this problem by the means of Scalability. &lt;br&gt;
Now one can ask that how we can write Scalable applications in Java, and the answer of this question is very simple and that answer is by writing better code and how we can write better code is an other discussion and again if went deep into the aspects of writing better code then we will deviate from our discussion, so for time being I will not discuss this matter.&lt;/p&gt;

&lt;h3&gt;
  
  
  Development Cost
&lt;/h3&gt;

&lt;p&gt;We all know that JavaScript frameworks are released on daily basis and old JavaScript libraries are discarded. So now here a very important question raises and that question is What will happen if the library that has been used in the project gets deprecated or deleted or the new version of that library gets available?&lt;br&gt;
It is quite possible that this deprecation will allow your project or web application not to work properly or some features of your web application stop working.&lt;br&gt;
This can cause to spend a lot of time to update your libraries which means that the hiring of new developers and spending new amount of time and money. So this will automatically increase the development and maintenance cost of the project.&lt;br&gt;
In case of Java, the libraries are built for a long term support and the production team does not have to worry anything about the deprecation of certain libraries. Yes, sometimes the libraries gets deprecated but that happens after some years.&lt;/p&gt;

&lt;h3&gt;
  
  
  Security
&lt;/h3&gt;

&lt;p&gt;How Java is better in security than the other programming languages and frameworks. The simplest answer to this question is that Java allows the developer to write the SQL injection and other vulnerability proof code with the help of builtin libraries. These libraries are super simple to implement and requires less use cases to worry about.&lt;/p&gt;

&lt;p&gt;So these were some aspects that made Java a legacy programming language for many legacy projects. Now we come to one more important point which is How to build the Web Applications using Java? What are frameworks and tools provided by the Java to build the Web Applications? So without a further do let's get to these points.&lt;/p&gt;

&lt;h2&gt;
  
  
  Java Web Development Frameworks
&lt;/h2&gt;

&lt;p&gt;There are many Java related web frameworks available but here we are going to talk about the most common ones and easy to work with.&lt;/p&gt;

&lt;h3&gt;
  
  
  JSP and Servlets
&lt;/h3&gt;

&lt;p&gt;This is one of the most basic tools built on Java to make the web applications. This tools is very old and not being used to built applications today. But many important and effective applications have been built using JSP and Servlets.&lt;/p&gt;

&lt;h3&gt;
  
  
  Spring Framework
&lt;/h3&gt;

&lt;p&gt;The important and influence Java framework is Spring Framework. Spring Framework is a very big framework that contains different parts and I will talk about some of the parts here in this article.&lt;/p&gt;

&lt;h4&gt;
  
  
  Spring MVC
&lt;/h4&gt;

&lt;p&gt;Spring MVC is the Java framework based on the Model, View and Controller style. This allows to write web-applications, Restful Back-End and a Full Fledged applications using Hibernate as ORM that can be transferred into any other Database. It is very easy to get started with Spring MVC.&lt;/p&gt;

&lt;h4&gt;
  
  
  Spring Boot
&lt;/h4&gt;

&lt;p&gt;Spring Boot is the most important aspect of the Spring Framework. Spring boot come with a Built-in server and tools to provide great facilities to developer to develop and excellent and large scale applications. It is very easy to get started with the Spring Boot application. You just need to visit the Spring Starter web-page and select libraries according to your need and you can get started right away.&lt;/p&gt;

&lt;h3&gt;
  
  
  Thymleaf
&lt;/h3&gt;

&lt;p&gt;Theymleaf is also a very interesting tool provided by the Java to build applications. The most fun thing about Thymleaf is that allows to work with Modern CSS frameworks very effectively for the modern design purposes. It also decreases the complexity of Model to View communication as well.&lt;/p&gt;

&lt;h3&gt;
  
  
  Hibernate
&lt;/h3&gt;

&lt;p&gt;In order to understand what is Hibernate we have to understand what is ORM. Object Relational Mapping is the Mapping of Entities to the Databases. In very simple words we can say that we make a class of and then we call some methods on the object of that class and the object is saved in the database as row.&lt;br&gt;
Hibernate provided excellent functionality for ORM in the Java Environment. It is very easy to use and it also decreases the development cose to a great extent. But sometimes it creates the Bottleneck regarding the performance.&lt;/p&gt;

&lt;h2&gt;
  
  
  Final Words
&lt;/h2&gt;

&lt;p&gt;Java has ruled the early 21st century, and this is the time of JavaScript and Machine Learning but we cannot deny the importance of Legacy Programming Languages. When the point of Performance and Reliability comes into the mind then Legacy Programming Languages comes into mind and we cannot deny the importance of these applications.  &lt;/p&gt;

</description>
      <category>java</category>
      <category>webdev</category>
      <category>javascript</category>
      <category>codequality</category>
    </item>
    <item>
      <title>Should You Learn Java in 2021?</title>
      <dc:creator>Abdur Rehman Khalid</dc:creator>
      <pubDate>Thu, 20 May 2021 20:07:25 +0000</pubDate>
      <link>https://dev.to/abdurrkhalid333/should-you-learn-java-in-2021-3mc2</link>
      <guid>https://dev.to/abdurrkhalid333/should-you-learn-java-in-2021-3mc2</guid>
      <description>&lt;p&gt;In this world of python and JavaScript to learn Java as a programming language for future for training purposes and software development we will be looking at some prospects that suggest you to learn  Java and it's relevant frameworks in 2021.&lt;/p&gt;

&lt;h2&gt;
  
  
  Legacy projects
&lt;/h2&gt;

&lt;p&gt;Java is in the software market or in this Software engineering world for almost two two decades many enterprise-level projects including Google Docs Google Drive and Many Google related projects have been built using the Java programming language. The reason behind this is that Java is a very strong object-oriented programming language that allows re-usability of code in a perfect manner ability does not mean that you're copying or pasting code from One file to another but it means that the usability of the same code for different purposes has been increased significantly. Java provides flexibility in order to maintain the security of the project, especially enterprise-level projects. These Legacy projects constantly have to be maintained. Now we have to look at what is meant by moment and ability. maintainability means that keeping the code up-to-date and constantly adding new features to the existing code if no one is learning Java Soho these projects will be updated and how we will experience new feature new features of this excellent project and products. So here comes a very strong reason why you actually learn  in 2021.  Learning Java in 2021 will allow you to work in these Legacy projects efficiently and very easily because the object-oriented approach will allow you to understand code very easily.&lt;br&gt;
&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fos5a4b7xcxzz60x0qydy.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fos5a4b7xcxzz60x0qydy.jpg" alt="Legacy Projects" width="800" height="534"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Save you from frequently updating third party libraries
&lt;/h2&gt;

&lt;p&gt;The most common problem with JavaScript frameworks projects is Dad you have to constantly update third-party libraries because after sometime these libraries get deprecated so it is quite possible that due to deprecated libraries your project will not function as it should function. So it becomes a very hectic to update most of the third party libraries from time to time. this problem can easily be avoided by using a legacy programming language such as Java. As most releases of third-party APIs Java Libraries very stable. versions which get updated after two or three years mostly. This allows you to work more on features then updating library. This saves both time and Manpower and this all introduces many new functionalities in the existing Project.&lt;/p&gt;

&lt;h2&gt;
  
  
  Heavily secured Project
&lt;/h2&gt;

&lt;p&gt;If you are looking to build an enterprise level software which contains very sensitive information related to customers employees and business, then you should not worry about the programming language and what kind of bugs and bounties are present in the programming language. As JavaScript is becoming common day by day, the hackers and bounty hunter are finding new ways to break JavaScript related websites because website build on Reactjs VUE.JS and Angular.JS are becoming common day by day. So it is very easy to implement security related Aspects in the Java programming language. Java programming language provides painting by SQL injection avoidance system. By the means of special  and built-in  curious by using parameterised queries. This will allow you to build highly secure projects without using or wearing any third party libraries. you will Focus more on customer needs or user needs rather than spending time on securing the data or securing the different functionality of Project.&lt;/p&gt;

&lt;h2&gt;
  
  
  Stable Web-Development Frameworks
&lt;/h2&gt;

&lt;p&gt;Most famous Java web frameworks or spring MVC, Spring Boot,  and Thymleaf.  These frameworks come with many building functionalities that saves a lot of time finding third-party libraries regarding very basic tasks. These functionalities include the ability to build RestfulAPIs. RestfulAPIs endpoints are very easy in the Spring boot framework. Spring framework also comes with a spring data fragment that allows object relational mapping of project to database very easy and less time taking. This object relational mapping reduces the effort to write to insert or extract data from database systems. spring boot also comes with the spring security module as well in order to maintain the security and vulnerability of Project. Getting started with a Spring boot project is very easy. You simply have to go to a website in order to get your Maven file,  once you have got your navel file open that file in your IDE for example Intellij IDEA.  all libraries will be downloaded and you will be ready to get started building your next big project.&lt;/p&gt;

&lt;h2&gt;
  
  
  User Centric code
&lt;/h2&gt;

&lt;p&gt;In the Java programming language you can easily implement user-centric code. Now what User-Centric code really means? It simply means that you are writing code may keep in mind the requirements given by a specific user or a customer of the software. it also means that you can easily implement software engineering related terms in Java programming language very easily. In Java programming language you can easily implement concept of inheritance which allows you to copy properties of one class into another. Let's take an example to understand this concept. let's say you have a class of humans. you also have another class called Asian . Asia is also human so you cannot write the same code that you have written for human into Asian class so what you will be doing here you will be inheriting human code into Asian class.  This  creates a parent - child relationship in other words you can say that ‘is a’ relationship.  So this was an example of software engineering. Concepts in the Java programming language  have one-to-one Concepts as well.&lt;/p&gt;

&lt;h2&gt;
  
  
  Final words
&lt;/h2&gt;

&lt;p&gt;Learning a programming language is not very difficult these days. the most important thing is to understand the  requirements of the user and demands of Project. If you are looking for a very quick start up and one to bend a website for any kind of startup very small scale project then you should definitely choose Python or JavaScript for building   boat projects.  because using a Java programming language can be very  expensive at the Beginning but when you get your flow then Java will become very powerful and very convenient for you. &lt;br&gt;
So, if you are really  interested in learning Java then you should install Java 8 or Java 14,  alongside JDK or JRE. First you will simply lemon Java as an object oriented programming language or Java software engineering language. then you will learn Java  Enterprise edition, related web development frameworks and object relational mapping  libraries like hibernate. So keep learning and keep moving forward, I will surely see you in another interesting  article.  till then, take care. &lt;/p&gt;

</description>
      <category>java</category>
      <category>javascript</category>
      <category>tomcat</category>
      <category>openjdk</category>
    </item>
    <item>
      <title>How to do programming projects?</title>
      <dc:creator>Abdur Rehman Khalid</dc:creator>
      <pubDate>Mon, 19 Apr 2021 08:44:00 +0000</pubDate>
      <link>https://dev.to/abdurrkhalid333/how-to-do-programming-projects-5f42</link>
      <guid>https://dev.to/abdurrkhalid333/how-to-do-programming-projects-5f42</guid>
      <description>&lt;p&gt;If you are a programming student or you are learning programming as a hobby then projects play very important role in your learning. The reason behind that is you explore new ideas, new tasks and new possibilities about skills you have and what new skills you can learn by doing the programming projects. Projects are also a great resource to know what are your weaknesses and how you are planning to overcome those weaknesses. Projects often make us question our skills and when we overcome the problems that we face while doing the projects, we feel more confident and able of solving problems. &lt;br&gt;
In this article, I will be mentioning some points related to programming that I think very important while choosing or doing a programming project.&lt;/p&gt;

&lt;h2&gt;
  
  
  1. Choosing a Problem or Idea for Project
&lt;/h2&gt;

&lt;p&gt;It is very common for new or beginner programmers to select a project which is either too big to complete or too small to complete. Here you have to sit down or take a walk on the road or garden in order to think about what you are going to build and how you will build that thing. It is a good option to have a look around you in order to figure out what kind of problems your fellows or friends or family members are facing, it is quite possible that the problem they are facing is a problem of a whole bunch of people. You should also consider one more thing which is very important and that is achieve-ability. Whether you will be able to complete the project or not? So, sit down or have a walk and think about what you are going to build and how large or small it can be.&lt;br&gt;
&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fiafucrxpzc2hubg4s2wl.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fiafucrxpzc2hubg4s2wl.jpg" alt="Idea in Hand" width="800" height="1008"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  2. Addressing the Real Life Problems
&lt;/h2&gt;

&lt;p&gt;If you have choose a big but some kind of conceptual or fictional project then it is quite possible that you will get bored after spending some time on that project because those problems and things do not exists in the real life and you are not addressing the real life scenarios. So, now another question arrives how to find the real life problems. I will try to explain all this with the help of a very simple and straight forward example. Let's suppose you are sitting in the coffee shop and the owner of this coffee shop owner manages the daily tasks on a Notebook or a diary. You sitting there, drinking coffee and you will think, this is the digital world and this person is still using pen and paper to manage the aspects of the business. Here you saw a trend as well as an opportunity to build a website or system for that coffee shop that will help the business owner to manage the business in digital and more effective way. So Coffee Shop Management System can be your next web-development or software engineering project.&lt;br&gt;
&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fi7x0379t4hacj2kca7vj.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fi7x0379t4hacj2kca7vj.jpg" alt="Real Life" width="800" height="561"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  3. Collecting the Requirements
&lt;/h2&gt;

&lt;p&gt;Now collection of requirement is a very deep topic and I would try to touch this topic from the tip. So how would you know what should be in the project? What the business owner wants? These are some very basic questions that will arrive in your mind before starting a real life project. The simplest and easiest way to get to know these things is to do the following things:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Observe the Employees. &lt;/li&gt;
&lt;li&gt;Observe the Owner. &lt;/li&gt;
&lt;li&gt;Observe the Overall Structure of the Business. &lt;/li&gt;
&lt;li&gt;Writing Down the Daily Routines Happening in the Business.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;When you would have collected all the basic requirements, go and meet to the owner of the business to ask for some additional or essential requirements that should be present in the Software or the Website anything you are going to build for him. After that you will discard some of the non-functional requirements (Meaning Colours and Other Not Important Requirements) and start aligning the functional requirements to start work with.&lt;br&gt;
&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F6r4tc5hnv8dz3wj0du1q.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F6r4tc5hnv8dz3wj0du1q.jpg" alt="Requirements" width="800" height="695"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  4. Reporting the Progress of the Project
&lt;/h2&gt;

&lt;p&gt;Now how would you know that how far away you are from the completion of the project. The simplest way of doing this is to use a project management tool. In these tools, you can assign yourself some tasks and deadlines to complete that task. In this way you will have an excellent way of reporting of progress and to know till where you have come in terms of completion of the project. I will be mentioning some of the project management tools below and now it is up-to you ti try these and choose one for your personal use.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;BasceCamp 3&lt;/li&gt;
&lt;li&gt;Notion&lt;/li&gt;
&lt;li&gt; Trello&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  5. Choosing the Technologies (Frameworks or Programming Languages) for Project
&lt;/h2&gt;

&lt;p&gt;After you have gathered the requirements and you are done with filtering them as well. Now it is time to get started. But what to use to start building the projects? What frameworks to use? What programming languages to use? &lt;br&gt;
The simplest way to answer these questions is to have a look at the projects and find out the answers to the following questions.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;What is the Size of the Project? Is it Big Scale Project or Small
Scale Project?&lt;/li&gt;
&lt;li&gt;Will someone else be working on this project after me?&lt;/li&gt;
&lt;li&gt;Does the business owner have enough money to keep on updating this project?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Now let's come to the answers of these questions.&lt;br&gt;
If the scale of project is big then it will be a good thing to go for Java, C#, Ruby on Rails related frameworks. If the project is not so big in the size then it will be better to use the JavaScript or other scripting related technologies.&lt;br&gt;
If someone else will be working on the project after you, then it will be better to use the collaboration and version control system tools to record the changes you have made in the project.&lt;br&gt;
If the business owner is not looking to maintenance of the project then use such technologies which are more stable in near future, because if new libraries came and old libraries got discarded then there will be problem.&lt;/p&gt;

&lt;h2&gt;
  
  
  6. Keep Finishing in the Mind
&lt;/h2&gt;

&lt;p&gt;Most programming projects that have been started are not finish projects. I can understand there can be many factors in this but it is very important for a successful project that it should be the finished project not incomplete project. This will automatically give you a moral boost and huge confidence to solve problems in real life as well.&lt;br&gt;
&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fv5ccohi2x48oqtb2nnl9.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fv5ccohi2x48oqtb2nnl9.jpg" alt="Finish Line" width="800" height="500"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Final Words&lt;/strong&gt;&lt;br&gt;
All these points are mine own thoughts and experiences and I hope that these points will help you in the next project as well. If I have missed something then do comment below so that others and me also can revise or learn new things as well. &lt;/p&gt;

</description>
      <category>programming</category>
      <category>productivity</category>
      <category>startup</category>
    </item>
    <item>
      <title>Should I learn Angular or React?</title>
      <dc:creator>Abdur Rehman Khalid</dc:creator>
      <pubDate>Sun, 18 Apr 2021 09:18:10 +0000</pubDate>
      <link>https://dev.to/abdurrkhalid333/should-i-learn-angular-or-react-4a30</link>
      <guid>https://dev.to/abdurrkhalid333/should-i-learn-angular-or-react-4a30</guid>
      <description>&lt;p&gt;The ReactJS framework has received a huge amount of interest in developers from the starting of the 2019 till now. It is a very common question that arises in the minds of JavaScript developers to decide between Angular, React or VueJS. I am writing this article hoping that this article will help the new learners or JavaScript Developers to decided between which Framework to learn by determining the various factors.&lt;/p&gt;

&lt;h2&gt;
  
  
  1. Knowledge of JavaScript or TypeScript
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Good with JavaScript&lt;/strong&gt;&lt;br&gt;
If you are a pure JavaScript developer and has a strong grip on the Basic JavaScript concepts such as Coercion, Type Checking, and Destructing etc. Then it is a good option for you to learn and keep moving forward with ReactJS. The ReactJS would seem a little bit of overwhelming at first but at the end you will feel more confident and easy in it and you will fall in love working with ReactJS due to its speed and simplicity.&lt;br&gt;
&lt;strong&gt;Good with TypeScript&lt;/strong&gt;&lt;br&gt;
If you are someone who has worked a little bit of TypeScript, then it will be better for you to start learning Angular because Angular is based on the TypeScript and various annotations of the TypeScript. It will force you to implement the object oriented programming concepts as well. It will be better if you have some experience of working with Interfaces and classes.&lt;br&gt;
&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fiaa3m6mhsylj1gi9zdr8.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fiaa3m6mhsylj1gi9zdr8.png" alt="JavaScript vs TypeScript" width="800" height="400"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  2. Scale of the Next Project
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;For Small to Medium Scale Projects&lt;/strong&gt;&lt;br&gt;
If you are working on a project which is not large in size and the maintainability of the project is not that difficult then it a good option to select the ReactJS framework. Because this will make the development easy and effective. This will also make the maintaining the project very easy as well. The cost of building project will be dropped to a great extent as well.&lt;br&gt;
&lt;strong&gt;For Medium to Large Scale Projects&lt;/strong&gt; &lt;br&gt;
If you are going to build a project that will have a lot of modules, then Angular will be the better choice as it will allow the maintaining the project very easy. The Angular code will be much easy to understand and easy to edit as well. The Angular is a bit slower than the ReactJS, so keep this thing in mind as well.&lt;/p&gt;

&lt;h2&gt;
  
  
  3. Beginner's Friendly
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;ReactJS&lt;/strong&gt;&lt;br&gt;
Due to usage of very fundamental concepts of the JavaScript the ReactJS is very beginners friendly but with the increase in the size of the project, the code can become a bit difficult for beginners to understand and maintain.&lt;br&gt;
&lt;strong&gt;Angular&lt;/strong&gt;&lt;br&gt;
The basic concepts of Angular are very beginners friendly, the concepts like data-binding, routing are very easy to understand as well. But some concepts like custom events creation and communication between different components can become quite difficult to understand at the first try.&lt;/p&gt;

&lt;h2&gt;
  
  
  4. Installing and Using the Third Party Libraries
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;ReactJS&lt;/strong&gt;&lt;br&gt;
In ReatJS, you have to install different kind of third party JavaScript libraries to complete your work. For Example the ReactJS does not allow the built-in form validation or routing you have to install the individual libraries for such work. So due to this reason the maintenance of ReactJS projects is very difficult because after some time the old libraries can become redundant and you have to work with new libraries.&lt;br&gt;
&lt;strong&gt;Angular&lt;/strong&gt; &lt;br&gt;
As Angular is a complete framework so you do not have to install the third party libraries to do the very basic works such as form handling and routing. All these kind of thing are already installed in the Angular so you only have to run a single command to get these libraries installed into the project.&lt;/p&gt;

&lt;h2&gt;
  
  
  5. Compilation Time
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;ReactJS&lt;/strong&gt;&lt;br&gt;
The ReacJS is a library which works on the concept of the virtual DOM, so when there is a change in the virtual DOM the actual DOM is changed according to that change. So, the detection of this change is very rapid which makes the change detection in ReactJS very fast and it becomes favourite thing for the developers.&lt;br&gt;
&lt;strong&gt;Angular&lt;/strong&gt;&lt;br&gt;
The Angular is a Template driven framework which means that whenever a change occurs in any Angular file, then the whole website will be reload to make that change visible. This thing is very frustrating thing about Angular and many developers dislike this thing and it is a great challenge for Google developers who are maintaining the Angular Project.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Final Words&lt;/strong&gt; &lt;br&gt;
It is not absolute that you should learn React or Angular or any other framework, all depends upon your mindset and goals you are working on, if you are looking forward to work with Bid and Enterprise level projects then Angular is good option. But if you are looking forward to work on Startup projects then React will be a great option for you. Stay Motivated and Keep on Learning new thing, because life never stops teaching.&lt;/p&gt;

</description>
      <category>react</category>
      <category>angular</category>
      <category>javascript</category>
      <category>typescript</category>
    </item>
    <item>
      <title>JavaScript - Recent Parts</title>
      <dc:creator>Abdur Rehman Khalid</dc:creator>
      <pubDate>Fri, 01 Jan 2021 13:01:29 +0000</pubDate>
      <link>https://dev.to/abdurrkhalid333/javascript-recent-parts-1h8h</link>
      <guid>https://dev.to/abdurrkhalid333/javascript-recent-parts-1h8h</guid>
      <description>&lt;p&gt;I am writing this post in order to highlight some of the recent parts of the modern JavaScript that have solved many problems of JavaScript that many JavaScript developers were waiting for.&lt;br&gt;
So without any further chitchat let's get straight into the topic.&lt;/p&gt;

&lt;h2&gt;
  
  
  Template Strings
&lt;/h2&gt;

&lt;p&gt;Template Strings have made it very easy to embedded variables into the Strings and also working with Strings have become easy as well. &lt;br&gt;
In the following example we can easily use variables into the Strings.&lt;br&gt;
&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fxkfa9c2uaxgsi3px9qo6.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fxkfa9c2uaxgsi3px9qo6.png" alt="Template Strings Example" width="800" height="236"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Destructuring
&lt;/h2&gt;

&lt;p&gt;One of my  favourite feature of modern JavaScript. This feature allows the developer focused on what instead of how.&lt;br&gt;
Destructuring allows to extract that data that is required to complete or do any specific work.&lt;br&gt;
This feature of JavaScript requires another separate article because there are several types of Destructuring such as Array Destructuring and Object Destructuring. &lt;br&gt;
Let's try to understand Object Destructuring by the means of the following example.&lt;br&gt;
&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fmb1dji7bvr7d2o2yg08h.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fmb1dji7bvr7d2o2yg08h.png" alt="Destruct Example" width="800" height="302"&gt;&lt;/a&gt;&lt;br&gt;
Now What we are doing here is that &lt;strong&gt;getusers()&lt;/strong&gt; will be returning the array os JSON objects that contains the information regarding the users, but we do not to have to completed response and we want only specific things to work with for example the &lt;strong&gt;First Name, Last Name and Profession.&lt;/strong&gt; so by the Object Destructuring we can only receive array of objects having only these properties.&lt;/p&gt;

&lt;h2&gt;
  
  
  Array.flat()
&lt;/h2&gt;

&lt;p&gt;The Array.flat() method on arrays allow to convert any Dimensional Array into one less dimensional array by default and if to a specific given value as well.. &lt;br&gt;
For example we have a 2D Array the Array.flat() will convert that 2D Array into 1D Array and so on.&lt;br&gt;
So Let's have a look at the example of flat() function in action.&lt;br&gt;
&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2F2m985b4xzk76rektm5jj.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2F2m985b4xzk76rektm5jj.png" alt="Flat Example" width="800" height="255"&gt;&lt;/a&gt;&lt;br&gt;
There are some other new methods related to Arrays as well such as find(), findIndex(), includes() as well. These methods are also very useful in order to do some common work related to Arrays as well.&lt;/p&gt;

&lt;h2&gt;
  
  
  Iterators and Generators
&lt;/h2&gt;

&lt;p&gt;The JavaScript has provided us a way to consume the data inside a Data-source one by one until we have not reached to the end of that Data-Source.&lt;br&gt;
Let's get on the example to understand this concept better and have a look at the Iterator and how we can work with it as well.&lt;br&gt;
&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2F0tbb186wm47xqamy86ex.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2F0tbb186wm47xqamy86ex.png" alt="Iterator Example" width="800" height="269"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;So these were the some of the most simple and mine favourite JavaScript features that came out recently.&lt;/p&gt;

</description>
      <category>javascript</category>
      <category>webdev</category>
      <category>tutorial</category>
    </item>
  </channel>
</rss>
