<?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: tolustar</title>
    <description>The latest articles on Forem by tolustar (@tolustar).</description>
    <link>https://forem.com/tolustar</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%2F326973%2Fec2c849f-d4cb-4ea7-beca-b98d71b07db2.jpeg</url>
      <title>Forem: tolustar</title>
      <link>https://forem.com/tolustar</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/tolustar"/>
    <language>en</language>
    <item>
      <title>5 tips to secure your backend application</title>
      <dc:creator>tolustar</dc:creator>
      <pubDate>Thu, 17 Sep 2020 09:28:16 +0000</pubDate>
      <link>https://forem.com/tolustar/5-tips-to-secure-your-backend-application-446e</link>
      <guid>https://forem.com/tolustar/5-tips-to-secure-your-backend-application-446e</guid>
      <description>&lt;p&gt;The security of the backend is very important to a full-stack web application. A less secured backend is more vulnerable to attacks and threats. An application vulnerable to attack is setting itself up for failure in the future. Business revenues and users trust can be lost because of an unexpected breakdown of the web application due to a security attack on the backend&lt;/p&gt;

&lt;p&gt;It is important to build the backend application with security in mind and here are 5 tips to consider while developing the backend of a web application&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Validate all incoming requests&lt;/li&gt;
&lt;li&gt;Use HTTPS&lt;/li&gt;
&lt;li&gt;Limit the number of login attempts&lt;/li&gt;
&lt;li&gt;Limit the number of an API request&lt;/li&gt;
&lt;li&gt;Support blacklisting JWT tokens&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  1. Validate all incoming request to the Backend
&lt;/h2&gt;

&lt;p&gt;The API is the entry point to the backend. It sends data to the backend application and receives a response to be consumed by the client (Browser, Mobile Application, etc). The backend application processes the data received by the API based on the business logic and sends back an output via the API. There are several reasons why incoming requests should be validated before it is consumed by the backend application and they are listed below:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;To ensure the API contains the required data&lt;/li&gt;
&lt;li&gt;The data in the API request is in the right format&lt;/li&gt;
&lt;li&gt;The API request contains the required authorization header to send and receive data&lt;/li&gt;
&lt;li&gt;There are no malicious data in the API request&lt;/li&gt;
&lt;li&gt;The API does not have a request data that is larger than the required size&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  2. Use HTTPS
&lt;/h2&gt;

&lt;p&gt;HTTPS is a combination of the HyperText Transfer Protocol and Secure Socket Layer. It is used to secure the data transfer between your backend application and the client (Browser, Mobile application, etc) by encrypting the data to prevent Man in the middle attack (MITM). For applications transmitting sensitive information/messages such as login credentials, payment information, user data, it is necessary and important that such application implements HTTPS&lt;/p&gt;

&lt;p&gt;Advantages of using HTTPS include&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Secure data transfer&lt;/li&gt;
&lt;li&gt;Data integrity – Data can not be altered in the process of transmission&lt;/li&gt;
&lt;li&gt;Data transmission is faster than HTTP because the encrypted data in HTTPS has a reduced size compared to HTTP&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  3. Limit the number of login attempts
&lt;/h2&gt;

&lt;p&gt;It is important to limit the number of login attempts by IP address, this is to prevent a brute-force attack by an attacker. A brute-force attack is a process of submitting multiple passwords in the hope that one of them would be correct. Your backend application can blacklist the IP address of a user once the number of login attempts is more than the default number set in your backend application.&lt;/p&gt;

&lt;h2&gt;
  
  
  4. Limit the number of API requests to the Backend
&lt;/h2&gt;

&lt;p&gt;In addition to limiting the number of login requests by IP address, it is also important to limit the number of API requests an IP address can make within a time-frame, this is to prevent DDOS (Distributed Denial Of Service) attack.&lt;/p&gt;

&lt;p&gt;A DDOS attack is a malicious attempt by an attacker to disrupt the normal flow of traffic on your server by flooding it with abnormal internet traffic. In simple terms, the attacker will be making millions of requests per traffic to slow down or stop your server entirely.&lt;/p&gt;

&lt;p&gt;Your hosting company or server engineers can put an infrastructure in place to prevent DDOS attacks on your server, but it is also important to go the extra step by implementing an API request limiter in your backend application.&lt;/p&gt;

&lt;h2&gt;
  
  
  5. Support blacklisting JWT tokens
&lt;/h2&gt;

&lt;p&gt;JWT tokens by default do not have a mechanism to invalidate token when a token is compromised or it is being used to perform malicious operations on your backend application.  Blacklisted JWT tokens can be stored on your server database or in-memory database like Redis, to ensure every API request made with a blacklisted token is not honored. The little overhead with storing blacklisted tokens is your API needs to hit the database on every request to ensure the token is not blacklisted and this renders your JWT implementation from being stateless&lt;/p&gt;

&lt;p&gt;In conclusion, the tips shared above if well implemented can make your application more secure, do you have any security tips that you implement while developing backend applications, do not hesitate to share below.&lt;/p&gt;

&lt;p&gt;Thank you for reading.&lt;/p&gt;

&lt;p&gt;Cheers!!!&lt;/p&gt;

&lt;p&gt;The post &lt;a href="https://tolustar.com/5-tips-to-secure-your-backend-application/"&gt;5 tips to secure your backend application&lt;/a&gt; appeared first on &lt;a href="https://tolustar.com"&gt;Tolustar&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>security</category>
      <category>node</category>
      <category>api</category>
      <category>backend</category>
    </item>
    <item>
      <title>Bootstrap your express project with express api cli</title>
      <dc:creator>tolustar</dc:creator>
      <pubDate>Sat, 12 Sep 2020 17:08:43 +0000</pubDate>
      <link>https://forem.com/tolustar/bootstrap-your-express-project-with-express-api-cli-4m80</link>
      <guid>https://forem.com/tolustar/bootstrap-your-express-project-with-express-api-cli-4m80</guid>
      <description>&lt;p&gt;The Express framework is a popular framework in the NodeJs community. It powers many applications on the internet and it is loved by many because of its simplicity, it is less opinionated, and the ability to develop APIs quickly.&lt;/p&gt;

&lt;p&gt;Setting up a new project for a medium-sized application could be time-consuming with the Express framework because it is a minimalist framework, but there is a new tool that can speed up the setup process of a new express project. The new tool is called &lt;a href="https://www.npmjs.com/package/express-api-cli"&gt;express-api-cli&lt;/a&gt;, With the express-api-cli tool, you can start a new project with just three short words on your command line terminal and your project is immediately ready for development&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;Express api cli allows you to create a new project within minutes with little or no configuration. You create your project and you start developing your business logic right away.&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  How to get started
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;Ensure you have NodeJs and NPM installed on your computer&lt;/li&gt;
&lt;li&gt;Open your command-line tool and run &lt;strong&gt;npm install -g express-api-cli&lt;/strong&gt; command – this installs the express-api-cli globally on your computer.&lt;/li&gt;
&lt;li&gt;To create a new project run &lt;strong&gt;exp-api create awesome-project.&lt;/strong&gt; Replace *&lt;em&gt;awesome-project *&lt;/em&gt; with the name of your project&lt;/li&gt;
&lt;li&gt;Follow the instructions to select the type of project you want to create.&lt;/li&gt;
&lt;li&gt;Voila, your project is ready for development !!!&lt;/li&gt;
&lt;/ol&gt;

&lt;blockquote&gt;
&lt;p&gt;Note:&lt;/p&gt;

&lt;p&gt;For more express-api-cli Commands visit &lt;a href="https://www.npmjs.com/package/express-api-cli"&gt;https://www.npmjs.com/package/express-api-cli&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--czj-hS2j--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_880/https://i0.wp.com/tolustar.com/wp-content/uploads/2020/09/express-api-cli.gif%3Fresize%3D600%252C375%26ssl%3D1" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--czj-hS2j--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_880/https://i0.wp.com/tolustar.com/wp-content/uploads/2020/09/express-api-cli.gif%3Fresize%3D600%252C375%26ssl%3D1" alt="express-api-cli"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Features of express-api-cli
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;Express-api-cli generated project contains packages that have been configured to ensure you don’t need to waste extra time configuring them. These packages have been carefully selected and configured to ensure that your application is robust. Express-api-cli generated project contains the following packages

&lt;ol&gt;
&lt;li&gt;Typescript  – Typescript is a superset of javascript that adds optional static typing to javascript. During project creation, you are requested to select either Javascript or Typescript, if you select Typescript, it will be installed and configured in your project, if you don’t it will not be configured.&lt;/li&gt;
&lt;li&gt;Mongoose – Mongoose is a MongoDB Object Data Modelling Library. It manages communication between your project and your MongoDB database, it also provides schema validation, etc. Mongoose provides a lot of out of the box features to ensure that communication with your database is seamless. It is also optional during installation.&lt;/li&gt;
&lt;li&gt;Sequelize – Sequelize is an Object Relational Mapping framework for MySql, Postgres, SQLite, and Microsoft SQL Server. It provides seamless communication with the aforementioned databases. Note: During the creation of a new project, you either select Mongoose or Sequelize&lt;/li&gt;
&lt;li&gt;Validation – Validation is readily configured in the project to validate incoming requests. Validation is made available by &lt;a href="https://www.npmjs.com/package/@hapi/joi"&gt;&lt;strong&gt;@hapi/joi&lt;/strong&gt;&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Exception Middleware – There is a centralized exception middleware to handle all forms of errors in your project.&lt;/li&gt;
&lt;li&gt;Logging – Logging errors in an api application is very important, in an express-api-cli generated project all incoming requests and error exceptions are logged in a log folder. This ensures that debugging is made easy when your project goes live. Logging is made available thanks to  &lt;a href="https://www.npmjs.com/package/winston"&gt;Winston&lt;/a&gt; and &lt;a href="https://www.npmjs.com/package/morgan"&gt;Morgan&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Security – With the help of &lt;a href="https://www.npmjs.com/package/helmet"&gt;Helmet&lt;/a&gt; and &lt;a href="https://www.npmjs.com/package/cors"&gt;cors&lt;/a&gt;, your project there as an added level of security Integrated into your project&lt;/li&gt;
&lt;li&gt;Authentication –  Express-api-cli uses &lt;a href="https://www.npmjs.com/package/jsonwebtoken"&gt;JsonWebToken&lt;/a&gt; to provide authentication in your project&lt;/li&gt;
&lt;li&gt;Test environment – Testing suites have been packaged with the express-api-cli project and readily configured. All you just need to do is to start writing tests right away. The following make up the test suite&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://www.npmjs.com/package/mocha"&gt;Mocha&lt;/a&gt; is a feature-rich javascript framework for easy testing&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://www.npmjs.com/package/chai"&gt;Chai&lt;/a&gt; is an assertion library that integrates well with mocha&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://www.npmjs.com/package/nyc"&gt;NYC&lt;/a&gt; is a tool that checks for test coverage in the project&lt;/li&gt;
&lt;li&gt;Supertest is a library for testing HTTP servers&lt;/li&gt;
&lt;li&gt;Code Formatting – A codebase with ugly formatting is difficult to read and understand. Also working in a team with different formatting rules configured on each co-worker machine can be frustrating, because each co-worker will reformat the codebase based on the machine prettier formatting configuration. To mitigate this, express-api-cli comes with a configured eslint and prettier rules, to ensure there is uniformity in the project&lt;/li&gt;
&lt;/ol&gt;


&lt;/li&gt;
&lt;li&gt;Set up a new project in less than 5 minutes&lt;/li&gt;
&lt;li&gt;Generate controller, router, service files right from the command line&lt;/li&gt;
&lt;li&gt;Well formatted and clean code structure&lt;/li&gt;
&lt;/ol&gt;

&lt;blockquote&gt;
&lt;p&gt;Speed up your new project setup with the express-api-cli tool&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  Advantages of using the express-api-cli
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;Start a new project faster with pre-configured packages&lt;/li&gt;
&lt;li&gt;Reduce time taken to configure your project&lt;/li&gt;
&lt;li&gt;Express-api-cli allows you to generate different files for different parts of your project such as (controller, services, routes, test), etc&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Express-api-cli is an awesome tool for every Express Developer.&lt;/p&gt;

&lt;p&gt;When next you have a new project, set it up using the express-api-cli tool so that you don’t waste time in the configuration process&lt;/p&gt;

&lt;p&gt;Cheers!!!&lt;/p&gt;

&lt;p&gt;The post &lt;a href="https://tolustar.com/bootstrap-your-express-project-with-express-api-cli/"&gt;Bootstrap your express project with express api cli&lt;/a&gt; appeared first on &lt;a href="https://tolustar.com"&gt;Tolustar&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>express</category>
      <category>javascript</category>
      <category>node</category>
      <category>api</category>
    </item>
    <item>
      <title>Best Practices to implement during API Design and Development</title>
      <dc:creator>tolustar</dc:creator>
      <pubDate>Mon, 15 Jun 2020 19:16:11 +0000</pubDate>
      <link>https://forem.com/tolustar/best-practices-to-implement-during-api-design-and-development-5bbj</link>
      <guid>https://forem.com/tolustar/best-practices-to-implement-during-api-design-and-development-5bbj</guid>
      <description>&lt;p&gt;API is an acronym for  “Application Programming Interface. APIs are significantly used in the software development world to exchange data between two applications. In other words, APIs allow applications to communicate with each other by sending and receiving data through an endpoint.&lt;/p&gt;

&lt;p&gt;As an example, many applications integrate Facebook and Google login API to ease new and existing users onboarding into their application. Another example is Uber implementing Google Maps API rather than developing a new map application for its navigation system. Besides,  frontend applications communicate with the backend application with the help of APIs&lt;/p&gt;

&lt;p&gt;Developing APIs with the right structure and best practices enable other developers to easily integrate your application without hassles and it also ensures that you don’t allow attackers to have access to your backend application.&lt;/p&gt;

&lt;p&gt;With all that said, let’s talk about the best practices in developing your APIs for effective usage and making them secure.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Use the right HTTP verbs&lt;/li&gt;
&lt;li&gt;Use the right status codes&lt;/li&gt;
&lt;li&gt;Return error details in response&lt;/li&gt;
&lt;li&gt;API versioning&lt;/li&gt;
&lt;li&gt;Validate all requests&lt;/li&gt;
&lt;li&gt;Validate all user input&lt;/li&gt;
&lt;li&gt;Document your APIs&lt;/li&gt;
&lt;li&gt;Secure your APIs&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  1. Use the right HTTP verbs
&lt;/h2&gt;

&lt;p&gt;This include (GET, POST, PUT, PATCH, DELETE)&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;HTTP GET&lt;/strong&gt; – This is used to retrieve data resources only and not to modify.  In other words, a GET request should not be used to create or update a resource.&lt;/p&gt;

&lt;p&gt;Bad example&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight plaintext"&gt;&lt;code&gt;GET /get-all-articlesGET /FetchUsers
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;p&gt;Good Example&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight plaintext"&gt;&lt;code&gt;GET /articlesGET /users
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;HTTP POST&lt;/strong&gt; – This is used to create new data resources&lt;/p&gt;

&lt;p&gt;Bad example&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight plaintext"&gt;&lt;code&gt;POST /create-new-articleGET /add-new-user
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;p&gt;Good Example&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight plaintext"&gt;&lt;code&gt;POST /articlesPOST /users
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;HTTP PUT&lt;/strong&gt; – This is used to update or replace the content of an existing resource&lt;/p&gt;

&lt;p&gt;Bad example&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight plaintext"&gt;&lt;code&gt;POST /update-article/:id
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;p&gt;Good Example&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight plaintext"&gt;&lt;code&gt;PUT /articles/:id
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;HTTP PATCH&lt;/strong&gt; – This is used to partially update the content of an existing resource. The difference between PUT and PATCH verb is that PUT is used when you want to completely update the resource while PATCH is used when you want to partially update a resource&lt;/p&gt;

&lt;p&gt;Bad example&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight plaintext"&gt;&lt;code&gt;POST /update-article/:idGET /update-user/:id
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;p&gt;Good Example&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight plaintext"&gt;&lt;code&gt;PATCH /articles/:idPATCH /users/:id
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;HTTP DELETE&lt;/strong&gt; – This is used to delete resources&lt;/p&gt;

&lt;p&gt;Bad example&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight plaintext"&gt;&lt;code&gt;GET /delete-article/:id
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;p&gt;Good Example&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight plaintext"&gt;&lt;code&gt;DELETE /articles/:id
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;p&gt;Using the right HTTP Verb makes the user of the API  understands what the API will do. The above examples show a better representation of using the HTTP verbs in the right manner&lt;/p&gt;

&lt;h2&gt;
  
  
  2. Use the right status codes
&lt;/h2&gt;

&lt;p&gt;The most common HTTP status codes include (200, 201, 202, 204, 400, 401, 403, 500).&lt;/p&gt;

&lt;p&gt;200 (OK)&lt;/p&gt;

&lt;p&gt;This indicates that the request was completed and successful. This is used when the other status codes in the 2xx series are inappropriate. Unlike the 204 status code, the 200 status code should include a response in its body.&lt;/p&gt;

&lt;p&gt;201 (CREATED)&lt;/p&gt;

&lt;p&gt;This is used when a resource has been fulfilled and creates new data in return.&lt;/p&gt;

&lt;p&gt;202 (ACCEPTED)&lt;/p&gt;

&lt;p&gt;This is used when the request in a resource has been accepted for processing but it is not completed yet. The request may or may not eventually be acted upon, as it may be disallowed when processing actually takes place. there is no facility for status returns from asynchronous operations such as this.&lt;/p&gt;

&lt;p&gt;204 (NO CONTENT)&lt;/p&gt;

&lt;p&gt;This is an indication that the server has fulfilled the request and there is no information to send back.&lt;/p&gt;

&lt;p&gt;400 (BAD REQUEST)&lt;/p&gt;

&lt;p&gt;This is used when the request could not be understood by the server due to malformed syntax, invalid request message parameters, or deceptive request routing.&lt;/p&gt;

&lt;p&gt;401 (UNAUTHORIZED)&lt;/p&gt;

&lt;p&gt;This is an indication that the client is trying to access a resource that is protected without including the proper authorization&lt;/p&gt;

&lt;p&gt;403 (FORBIDDEN)&lt;/p&gt;

&lt;p&gt;This is used when the client is authenticated but isn’t authorized to perform the requested operation on the given resource.&lt;/p&gt;

&lt;p&gt;500 (INTERNAL SERVER ERROR)&lt;/p&gt;

&lt;p&gt;This is when the server encountered an unexpected condition which prevented the resource from fulfilling the request.&lt;/p&gt;

&lt;h2&gt;
  
  
  3. Return error details in response
&lt;/h2&gt;

&lt;p&gt;When an API  returns an error, it is not enough to return the status code nor status code with a generic error message such as (Server error – An error just occurred), it is necessary that an error returned from an API is detailed as possible. A detailed error helps the API consumer in debugging and to understand what is going on&lt;/p&gt;

&lt;h2&gt;
  
  
  4. API versioning
&lt;/h2&gt;

&lt;p&gt;API versioning is very important in API development. It allows you to incorporate the latest changes in a new version of your API thereby still allowing users to have access to the older version of your API without breaking your users’ application.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight plaintext"&gt;&lt;code&gt;api/v1/articlesapi/v2/articles
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;h2&gt;
  
  
  5.  Validate All Requests
&lt;/h2&gt;

&lt;p&gt;It is important that every API request is validated to ensure that the client has the authorization to access the data request. UserA should not have access to the data of UserB except UserA have the permission to access the data&lt;/p&gt;

&lt;h2&gt;
  
  
  6.  Validate All User Input
&lt;/h2&gt;

&lt;p&gt;It is necessary that APIs that contain data in its body is validated before it is being processed in the backend. For example, a user login API will include email and password in its API body, it is important that the data is validated and no other malicious or invalid data is sent along with the API.&lt;/p&gt;

&lt;p&gt;Note that, before processing any data from your API, validate that the data is in the format you are expecting.&lt;/p&gt;

&lt;h2&gt;
  
  
  7. Document your APIs
&lt;/h2&gt;

&lt;p&gt;Documenting your APIs is really important because it allows the users of your API&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;to have a basic understanding of what the APIs do,&lt;/li&gt;
&lt;li&gt;the data to include in its request, and&lt;/li&gt;
&lt;li&gt;the type of response to expect.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Every developer loves good documentation because it makes their work easier. &lt;a href="https://www.postman.com/"&gt;Postman&lt;/a&gt; is a very good tool for creating documentation for your APIs&lt;/p&gt;

&lt;h2&gt;
  
  
  8. Secure your APIs
&lt;/h2&gt;

&lt;p&gt;The security of your API is very important to your application. Having a vulnerability in your API can enable an attacker to have access to your application and perform different exploits.&lt;/p&gt;

&lt;p&gt;Below are the following ways to protect your APIs and ensure they are well secured&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Ensure you don’t store sensitive information in your Authentication tokens.&lt;/li&gt;
&lt;li&gt;Use SSL for your APIs&lt;/li&gt;
&lt;li&gt;Validate all inputs and requests&lt;/li&gt;
&lt;li&gt;Ensure you encrypt all sensitive information stored in your database.&lt;/li&gt;
&lt;li&gt;Enforce a limit to the number of API requests within a timeframe, this is called Rate Limiting or API throttling. Incorporating API throttling can protect you against Brute Force/DDoS attacks&lt;/li&gt;
&lt;li&gt;Don’t pass sensitive data in your API, for example, &lt;a href="https://example.com/login/username=jack&amp;amp;password=12345"&gt;https://example.com/login/username=jack&amp;amp;password=12345&lt;/a&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;We should all strive to develop APIs that are easy to use and integrate into applications. I hope this article has been able to help you with developing APIs that are a delight to use.&lt;/p&gt;

&lt;p&gt;Cheers!!!&lt;/p&gt;

&lt;p&gt;The post &lt;a href="https://tolustar.com/best-practices-to-implement-during-api-design-and-development/"&gt;Best Practices to implement during API Design and Development&lt;/a&gt; appeared first on &lt;a href="https://tolustar.com"&gt;Tolustar&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>javascript</category>
      <category>backend</category>
      <category>python</category>
      <category>api</category>
    </item>
    <item>
      <title>Introduction to Sassy CSS – CSS with super powers</title>
      <dc:creator>tolustar</dc:creator>
      <pubDate>Sat, 18 Apr 2020 14:19:12 +0000</pubDate>
      <link>https://forem.com/tolustar/introduction-to-sassy-css-css-with-super-powers-33ld</link>
      <guid>https://forem.com/tolustar/introduction-to-sassy-css-css-with-super-powers-33ld</guid>
      <description>&lt;p&gt;Sass is a stylesheet language that gives your CSS lots of power and flexibility. CSS can be fun, but it becomes difficult to maintain when they grow large, for this reason, CSS preprocessors like Sass come into the playground to give your CSS superpowers.&lt;/p&gt;

&lt;p&gt;We will be discussing several superpowers it can provide, and why you should use it in your current/next project&lt;/p&gt;

&lt;h2&gt;
  
  
  1. Sass Variables
&lt;/h2&gt;

&lt;p&gt;It allows you to declare variables, in other words, you don’t have to repeat certain variables in your project. A variable allows you to store a value so that it can be used in other parts of the project.&lt;/p&gt;

&lt;p&gt;For example, you want to build an Agricultural website with a theme of color, using traditional CSS, you will need to repeat same color string for buttons, texts, backgrounds, etc, but with the power of Sass, you declare it in one place and use it in multiple places in your code.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight scss"&gt;&lt;code&gt;&lt;span class="nv"&gt;$primaryColor&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mh"&gt;#3cb878&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="nv"&gt;$lg-font&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;16px&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="nv"&gt;$md-font&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;14px&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="nt"&gt;p&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt; 
   &lt;span class="nl"&gt;color&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nv"&gt;$primaryColor&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; 
   &lt;span class="nl"&gt;font-size&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nv"&gt;$lg-font&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="nt"&gt;button&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; 
   &lt;span class="nl"&gt;background-color&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nv"&gt;$primaryColor&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; 
   &lt;span class="nl"&gt;font-size&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nv"&gt;$md-font&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;As you can see, if you change the primary color variable, every element associated with the variable will be affected.&lt;/p&gt;

&lt;h2&gt;
  
  
  2. Sass Nesting
&lt;/h2&gt;

&lt;p&gt;Here comes another superpower of Sass which is nesting. Nesting allows you to target HTML elements in a cleaner way and with lesser code.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight html"&gt;&lt;code&gt;&lt;span class="nt"&gt;&amp;lt;nav&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;ul&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;li&amp;gt;&amp;lt;a&lt;/span&gt; &lt;span class="na"&gt;href=&lt;/span&gt;&lt;span class="s"&gt;"#"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;Home&lt;span class="nt"&gt;&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;li&amp;gt;&amp;lt;a&lt;/span&gt; &lt;span class="na"&gt;href=&lt;/span&gt;&lt;span class="s"&gt;"/about"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;About&lt;span class="nt"&gt;&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;li&amp;gt;&amp;lt;a&lt;/span&gt; &lt;span class="na"&gt;href=&lt;/span&gt;&lt;span class="s"&gt;"/contact"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;Contact&lt;span class="nt"&gt;&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;/ul&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;/nav&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;





&lt;div class="highlight"&gt;&lt;pre class="highlight scss"&gt;&lt;code&gt;&lt;span class="nt"&gt;nav&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nt"&gt;ul&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="nl"&gt;display&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;flex&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="nt"&gt;li&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;
      &lt;span class="nl"&gt;list-style&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nb"&gt;none&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
      &lt;span class="nl"&gt;padding&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;20px&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="p"&gt;}&lt;/span&gt;
    &lt;span class="nt"&gt;a&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;
      &lt;span class="nl"&gt;color&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="no"&gt;green&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
      &lt;span class="nl"&gt;text-decoration&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nb"&gt;none&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="p"&gt;}&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;If we were to rewrite the above code using traditional CSS, it will translate to this&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight css"&gt;&lt;code&gt;&lt;span class="nt"&gt;nav&lt;/span&gt; &lt;span class="nt"&gt;ul&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nl"&gt;display&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;flex&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="nt"&gt;nav&lt;/span&gt; &lt;span class="nt"&gt;ul&lt;/span&gt; &lt;span class="nt"&gt;li&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nl"&gt;list-style&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nb"&gt;none&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="nl"&gt;padding&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;20px&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="nt"&gt;nav&lt;/span&gt; &lt;span class="nt"&gt;ul&lt;/span&gt; &lt;span class="nt"&gt;a&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nl"&gt;color&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="no"&gt;green&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="nl"&gt;text-decoration&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nb"&gt;none&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;We will be writing “nav” for each tag, which is redundant.&lt;/p&gt;

&lt;h2&gt;
  
  
  3. Mixins
&lt;/h2&gt;

&lt;p&gt;We discussed the power of variables, mixins comes with an additional blast. Mixins allow you to group styles that can be reused throughout the code. Another power of mixins is that they take arguments that allow the group of styles to be customized each time a Mixin is called.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight html"&gt;&lt;code&gt;&lt;span class="nt"&gt;&amp;lt;div&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"background"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;p&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"text"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;Hello world&lt;span class="nt"&gt;&amp;lt;/p&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;p&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"small-text"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;it is a beautiful world&lt;span class="nt"&gt;&amp;lt;/p&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;





&lt;div class="highlight"&gt;&lt;pre class="highlight scss"&gt;&lt;code&gt;&lt;span class="k"&gt;@mixin&lt;/span&gt; &lt;span class="nf"&gt;font&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;$size&lt;/span&gt;&lt;span class="o"&gt;,&lt;/span&gt; &lt;span class="nv"&gt;$weight&lt;/span&gt;&lt;span class="o"&gt;,&lt;/span&gt; &lt;span class="nv"&gt;$family&lt;/span&gt;&lt;span class="p"&gt;){&lt;/span&gt;
  &lt;span class="nl"&gt;font-size&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nv"&gt;$size&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="nl"&gt;font-family&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nv"&gt;$family&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="nl"&gt;font-weight&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nv"&gt;$weight&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="k"&gt;@mixin&lt;/span&gt; &lt;span class="nf"&gt;box&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nl"&gt;padding&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;20px&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="nl"&gt;border-radius&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;2px&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="nl"&gt;background-color&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="no"&gt;purple&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="nl"&gt;color&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="no"&gt;white&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="nc"&gt;.text&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="k"&gt;@include&lt;/span&gt; &lt;span class="nd"&gt;font&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="m"&gt;20px&lt;/span&gt;&lt;span class="o"&gt;,&lt;/span&gt; &lt;span class="m"&gt;500&lt;/span&gt;&lt;span class="o"&gt;,&lt;/span&gt; &lt;span class="n"&gt;Roboto&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="nc"&gt;.small-text&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="k"&gt;@include&lt;/span&gt; &lt;span class="nd"&gt;font&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="m"&gt;12px&lt;/span&gt;&lt;span class="o"&gt;,&lt;/span&gt; &lt;span class="m"&gt;400&lt;/span&gt;&lt;span class="o"&gt;,&lt;/span&gt; &lt;span class="n"&gt;Roboto&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="nc"&gt;.background&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="k"&gt;@include&lt;/span&gt; &lt;span class="nd"&gt;box&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;Using Mixins is a very good way of preventing code redundancy and writing cleaner codes&lt;/p&gt;

&lt;h2&gt;
  
  
  4. Imports
&lt;/h2&gt;

&lt;p&gt;Maintaining huge CSS files with many lines of codes can become tedious and very frustrating, and also splitting your CSS files into different smaller parts isn’t advisable because you will be serving HTTP requests for each file.&lt;/p&gt;

&lt;p&gt;Here comes another superpower, the import superpower. It allows you to create smaller Sass files that can be imported in other Sass files, meaning that you can have multiple Sass files all imported into a single file and that will be served on a single HTTP request.&lt;/p&gt;

&lt;p&gt;Here is how to import a Sass file&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight scss"&gt;&lt;code&gt;&lt;span class="c1"&gt;// Your main Sass file&lt;/span&gt;
&lt;span class="k"&gt;@import&lt;/span&gt; &lt;span class="s1"&gt;'button'&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="k"&gt;@import&lt;/span&gt; &lt;span class="s1"&gt;'text'&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="k"&gt;@import&lt;/span&gt; &lt;span class="s2"&gt;"my-custom-theme"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; 

&lt;span class="nc"&gt;.class-name&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="c1"&gt;// Your code&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;p&gt;Simple and easy.&lt;/p&gt;

&lt;p&gt;Finally, We have come to the end of this article discussing the superpowers of Sass and how to make your CSS sassy.&lt;/p&gt;

&lt;p&gt;There are also other extensive Sass superpowers if you need extensive or in-depth knowledge on how to use Sass visit their &lt;a href="https://sass-lang.com/"&gt;documentation website&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Do you like this article &lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--2EAkP1Kt--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://s.w.org/images/core/emoji/12.0.0-1/72x72/1f642.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--2EAkP1Kt--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://s.w.org/images/core/emoji/12.0.0-1/72x72/1f642.png" alt="🙂"&gt;&lt;/a&gt; _ &lt;strong&gt;Like Comment and Share.&lt;/strong&gt; _&lt;/p&gt;

&lt;p&gt;Cheers!!!&lt;/p&gt;

&lt;p&gt;The post &lt;a href="https://tolustar.com/css-sass-css-with-super-powers/"&gt;Introduction to Sassy CSS – CSS with super powers&lt;/a&gt; appeared first on &lt;a href="https://tolustar.com"&gt;Tolustar&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>css</category>
      <category>sass</category>
    </item>
    <item>
      <title>13 Important Javascript Array Functions You Should Master</title>
      <dc:creator>tolustar</dc:creator>
      <pubDate>Thu, 19 Mar 2020 16:05:52 +0000</pubDate>
      <link>https://forem.com/tolustar/13-important-javascript-array-functions-you-should-master-bf3</link>
      <guid>https://forem.com/tolustar/13-important-javascript-array-functions-you-should-master-bf3</guid>
      <description>&lt;p&gt;Javascript array functions allow you to manipulate data easily with fewer lines of codes. Having a knowledge of these Javascript array functions and how to use them can reduce the number of written codes, increase the performance of your app and also make you a better developer. Enough of the story let’s delve into these array functions.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;forEach()&lt;/li&gt;
&lt;li&gt;map()&lt;/li&gt;
&lt;li&gt;filter()&lt;/li&gt;
&lt;li&gt;concat()&lt;/li&gt;
&lt;li&gt;sort()&lt;/li&gt;
&lt;li&gt;slice()&lt;/li&gt;
&lt;li&gt;splice()&lt;/li&gt;
&lt;li&gt;includes()&lt;/li&gt;
&lt;li&gt;reverse()&lt;/li&gt;
&lt;li&gt;push()&lt;/li&gt;
&lt;li&gt;pop()&lt;/li&gt;
&lt;li&gt;shift()&lt;/li&gt;
&lt;li&gt;unshift()&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  1. forEach()
&lt;/h2&gt;

&lt;p&gt;This method is used to iterate or loop through an array by executing a callback function on each array item&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight plaintext"&gt;&lt;code&gt;let numbers = [1, 2, 3, 4];
numbers.forEach(
   item =&amp;gt; { 
      console.log(item \* 5); // output: 5 10 15 20
})
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;h2&gt;
  
  
  2. map()
&lt;/h2&gt;

&lt;p&gt;This method is also used to loop through every item in an array, executing a callback function on each item in the array. The map function returns a new array after executing the callback on each item. The major difference between forEach() and map() is map() returns a new array after looping through all items an array while forEach() returns undefined. In other words, if you need the result of the executed callback function on each array item then &lt;strong&gt;map()&lt;/strong&gt; is suited for you otherwise use &lt;strong&gt;forEach()&lt;/strong&gt;.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight plaintext"&gt;&lt;code&gt;let numbers = [1, 2, 3, 4];


//map function
let mapResult = numbers.map(item =&amp;gt; {
  console.log(item * 5); // output: 5 10 15 20
  return item * 5;
})
console.log(mapResult); //[5, 10, 15, 20]


//foreach function
let forEachResult = numbers.forEach(item =&amp;gt; {
  console.log(item * 5); // output: 5 10 15 20
  return item * 5;
})
console.log(forEachResult); //undefined
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;h2&gt;
  
  
  3. filter()
&lt;/h2&gt;

&lt;p&gt;This method allows you to filter through a collection of items in an array. In the filter function, you pass a callback function, the callback function is executed against every item in the array. If the callback function returns a true statement the item is added to a new array.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight plaintext"&gt;&lt;code&gt;let cars = [
  { name: "Toyota", topSpeed: 200 },
  { name: "Ferrari", topSpeed: 350 },
  { name: "Ford", topSpeed: 300 },
  { name: "Nissan", topSpeed: 200 },
  { name: "BMW", topSpeed: 250 },
  { name: "Honda", topSpeed: 200 },
]

let fastCars = cars.filter(car =&amp;gt; car.topSpeed &amp;gt; 200);

console.log(fastCars);
// [
//   { name: "Ferrari", topSpeed: 350 },
//   { name: "Ford", topSpeed: 300 },
//   { name: "BMW", topSpeed: 250 },
// ]
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;h2&gt;
  
  
  4. concat()
&lt;/h2&gt;

&lt;p&gt;This method allows you to join multiple arrays together to form one array.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight plaintext"&gt;&lt;code&gt;let evenNumbers = [2, 4, 6, 8, 10];
let oddNumbers = [1, 3, 5, 7, 9];
let decimalNumbers = [0.1, 0.2, 0.3, 0.4, 0.5];

let allNumbers = evenNumbers.concat(oddNumbers, decimalNumbers);

console.log(allNumbers); // [2, 4, 6, 8, 10, 1, 3, 5, 7, 9, 0.1, 0.2, 0.3, 0.4, 0.5]
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;h2&gt;
  
  
  5. sort()
&lt;/h2&gt;

&lt;p&gt;The sort method allows you to sort items in an array either in descending or ascending order. By default without passing a callback to the &lt;em&gt;sort()&lt;/em&gt; function, it sorts the array base on the Unicode point value, in other words, it converts each individual array item to string and sort them alphabetically with some special rules such as Capital Letters coming before Lower Letters.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight plaintext"&gt;&lt;code&gt;let numbers = [1, 15, 2, 21, 33, 04, 03, 12, 05, 30, 400, 250];

let sortedNumbers = numbers.sort()

console.log(sortedNumbers); //[1, 12, 15, 2, 21, 250, 3, 30, 33, 4, 400, 5]
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;p&gt;As you can see in the example above it sorts number 250 before number 3 which is not the desired result we want, Therefore, to get the desired result we pass a callback function to the &lt;em&gt;sort()&lt;/em&gt; function.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight plaintext"&gt;&lt;code&gt;let numbers = [1, 15, 2, 21, 33, 04, 03, 12, 05, 30, 400, 250];

let ascOrder = numbers.sort((a, b) =&amp;gt; a &amp;lt; b ? -1 : 1); 
console.log(ascOrder); //[1, 2, 3, 4, 5, 12, 15, 21, 30, 33, 250, 400] 

let descOrder = numbers.sort((a, b) =&amp;gt; a &amp;gt; b ? -1 : 1);
console.log(descOrder); //[400, 250, 33, 30, 21, 15, 12, 5, 4, 3, 2, 1]
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;h2&gt;
  
  
  6. slice()
&lt;/h2&gt;

&lt;p&gt;This method returns selected items in an array into a new array. The function takes a start argument and an end argument. It uses this start and end arguments to select items in the array. The &lt;em&gt;slice()&lt;/em&gt; function selects the items starting at the given start argument, and ends at, &lt;em&gt;but does not&lt;/em&gt; include the given &lt;em&gt;end&lt;/em&gt; argument.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight plaintext"&gt;&lt;code&gt;let numbers = [1, 15, 2, 21, 33, 04, 03, 12, 05, 30, 400, 250];

let removedNumbers = numbers.slice(3, 7);
console.log(removedNumbers); //[21, 33, 4, 3]
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;h2&gt;
  
  
  7. splice()
&lt;/h2&gt;

&lt;p&gt;This method is used to add or remove items into an array. It deletes zero or more items starting from the provided start argument and replaces the items with zero or more new values that are provided. The important thing to note about splice is that it modifies the initial array. For example&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight plaintext"&gt;&lt;code&gt;let numbers = [1, 2, 3, 4, 5, 6, 7, 8];
let removedNumbers = numbers.splice(3, 3, "a", "b", "c");

console.log(numbers); // [1, 2, 3, "a", "b", "c", 7, 8]
console.log(removedNumbers); //[4, 5, 6]
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;h2&gt;
  
  
  8. includes()
&lt;/h2&gt;

&lt;p&gt;This method checks if an array consists of the item passed in the &lt;em&gt;include()&lt;/em&gt; function. The function returns &lt;em&gt;true&lt;/em&gt; if the item exists and &lt;em&gt;false&lt;/em&gt; if it does not.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight plaintext"&gt;&lt;code&gt;let numbers = [1, 2, 3, 4, 5, 6, 7, 8];

console.log(numbers.includes(3)); // true
console.log(numbers.includes(9)); // false
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;h2&gt;
  
  
  9. reverse()
&lt;/h2&gt;

&lt;p&gt;This method reverses the order of the items of the array it is applied to.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight plaintext"&gt;&lt;code&gt;let numbers = [1, 2, 3, 4, 5, 6, 7, 8];

console.log(numbers.reverse()); // [8, 7, 6, 5, 4, 3, 2, 1]
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;h2&gt;
  
  
  10. push()
&lt;/h2&gt;

&lt;p&gt;This method adds the arguments given to it, in order, to the end of the array. It modifies the array directly rather than creating a new array;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight plaintext"&gt;&lt;code&gt;let numbers = [1, 2, 3, 4, 5, 6, 7, 8];
numbers.push(9, 10)

console.log(numbers); // [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;h2&gt;
  
  
  11. pop()
&lt;/h2&gt;

&lt;p&gt;This method removes the last item in an array and returns the item that was removed&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight plaintext"&gt;&lt;code&gt;let numbers = [1, 2, 3, 4, 5, 6, 7, 8];
let removednumber = numbers.pop()

console.log(numbers); // [1, 2, 3, 4, 5, 6, 7]
console.log(removednumber); // 8
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;h2&gt;
  
  
  12. shift()
&lt;/h2&gt;

&lt;p&gt;This method removes the first item in an array and returns the item that was removed.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight plaintext"&gt;&lt;code&gt;let removednumber = numbers.shift()

console.log(numbers); // [2, 3, 4, 5, 6, 7, 8]
console.log(removednumber); // 1
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;h2&gt;
  
  
  13. unShift()
&lt;/h2&gt;

&lt;p&gt;This method adds the arguments given to it, in order, to the beginning of the array. It modifies the array directly rather than creating a new array;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight plaintext"&gt;&lt;code&gt;let numbers = [4, 5, 6, 7, 8, 9, 10];
numbers.unshift(1, 2, 3)

console.log(numbers); // [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;h5&gt;
  
  
  *** For more Javascript Array Functions visit  &lt;a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array"&gt;https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array&lt;/a&gt;
&lt;/h5&gt;

&lt;p&gt;In conclusion, mastering these important Javascript array functions and knowing when to use them will make you a better developer and increase your development workflow.&lt;/p&gt;

&lt;p&gt;Do you like this article &lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--2EAkP1Kt--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://s.w.org/images/core/emoji/12.0.0-1/72x72/1f642.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--2EAkP1Kt--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://s.w.org/images/core/emoji/12.0.0-1/72x72/1f642.png" alt="🙂"&gt;&lt;/a&gt; _ &lt;strong&gt;Like, Comment and Share.&lt;/strong&gt; _&lt;/p&gt;

&lt;p&gt;Cheers!!!&lt;/p&gt;

&lt;p&gt;The post &lt;a href="https://tolustar.com/13-important-javascript-array-functions-you-should-master/"&gt;13 Important Javascript Array Functions You Should Master&lt;/a&gt; appeared first on &lt;a href="https://tolustar.com"&gt;Tolustar&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>articles</category>
      <category>tutorial</category>
      <category>arrays</category>
      <category>javascript</category>
    </item>
    <item>
      <title>6 steps to become a Front-end Developer</title>
      <dc:creator>tolustar</dc:creator>
      <pubDate>Sun, 23 Feb 2020 19:00:40 +0000</pubDate>
      <link>https://forem.com/tolustar/6-steps-to-become-a-front-end-developer-2b34</link>
      <guid>https://forem.com/tolustar/6-steps-to-become-a-front-end-developer-2b34</guid>
      <description>&lt;p&gt;A front-end developer develops the front end of a web application by implementing visuals and interactive elements that users will engage throughout the application. The front-end developer ensures that the web application is responsive and looks the same across different web browsers and different device screens.&lt;/p&gt;

&lt;p&gt;Becoming a front-end developer requires the following steps&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Learn HTML and CSS&lt;/li&gt;
&lt;li&gt;Learn Git and understand how it Works&lt;/li&gt;
&lt;li&gt;Understand UX (User Experience) Design&lt;/li&gt;
&lt;li&gt;Learn Javascript&lt;/li&gt;
&lt;li&gt;Learn a Front-end Javascript Framework&lt;/li&gt;
&lt;li&gt;Develop a mini-website/web app&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--PYaDxsQS--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://i2.wp.com/tolustar.com/wp-content/uploads/2020/02/html-css.jpg%3Fresize%3D750%252C422%26ssl%3D1" alt=""&gt;
&lt;/h2&gt;

&lt;h2&gt;
  
  
  1. Learn HTML and CSS
&lt;/h2&gt;

&lt;p&gt;HTML is the acronym for  &lt;strong&gt;Hypertext Markup Language&lt;/strong&gt;. It is used to create web pages that can be displayed on the world wide web. HTML elements such as (Header, Image, Text etc) are the building blocks of HTML pages, and without HTML you can not create a web page while CSS is the acronym for  &lt;strong&gt;Cascading Style Sheets&lt;/strong&gt;. CSS is used for adding style to your HTML web pages, it also describes how elements are to be displayed in different media. Learning HTML and CSS and having a very good understanding of them is very important to be a front-end developer. Fortunately,  HTML and CSS are very easy to learn, therefore within a considerable period of time, you will have a proper understanding of them and begin to build web pages for the internet.&lt;/p&gt;

&lt;p&gt;There are very good resources on the internet that will help you learn HTML and CSS better. The resources below will give you a soft landing to learning HTML and CSS.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Youtube&lt;/li&gt;
&lt;li&gt;W3Schools&lt;/li&gt;
&lt;li&gt;Udemy&lt;/li&gt;
&lt;li&gt;Udacity&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Above all, don’t just read and learn about HTML and CSS but also practice. In other words, practice while learning.&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--biV8Kem---/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://i0.wp.com/tolustar.com/wp-content/uploads/2020/02/Git.png%3Fresize%3D1024%252C524%26ssl%3D1" alt=""&gt;
&lt;/h2&gt;

&lt;h2&gt;
  
  
  2. Learn Git and understand how it works
&lt;/h2&gt;

&lt;p&gt;Git is a distributed version control system for tracking changes in your source code. It is very important you understand git in the early stages of learning to be a front-end developer because firstly it gives you the power to undo changes to code written in the past, secondly many companies use git because it fosters and helps in the collaboration of many developers working on a project. After that get familiar with any online git repository and create a repository, install git on your machine and start storing your codes on your preferred online git repository. Here are some recommended online git repository&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Github&lt;/li&gt;
&lt;li&gt;Bitbucket&lt;/li&gt;
&lt;li&gt;Gitlab&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;In addition, study your preferred online git repository documentation to learn basic git commands and have a proper understanding of the repository.&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--Wxnssb-z--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://i1.wp.com/tolustar.com/wp-content/uploads/2020/02/User-Experience-1024x720.png%3Fresize%3D1024%252C720%26ssl%3D1" alt=""&gt;
&lt;/h2&gt;

&lt;h2&gt;
  
  
  3. Understand UX (User Experience) Design
&lt;/h2&gt;

&lt;p&gt;User experience design is the design process of creating products that provide meaningful and relevant experience to users. User experience design is all about having your users in mind while you create the front end of a web app. If users have bad experiences while using your application, they stop using the application. Therefore it renders the web app useless. Good user experience design in your application makes the users keep using your web app.&lt;/p&gt;

&lt;p&gt;As a front-end developer it is important you think like your users, this will help you develop functional and usable front end for your web apps, as a result, make users remain longer on your app and always come back to it.&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--TE9W3iyY--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://i2.wp.com/tolustar.com/wp-content/uploads/2020/02/JavaScript.jpg%3Fresize%3D1024%252C538%26ssl%3D1" alt=""&gt;
&lt;/h2&gt;

&lt;h2&gt;
  
  
  4. Learn Javascript
&lt;/h2&gt;

&lt;p&gt;Now that you have a proper understanding of HTML and CSS, how to use git, and the concept of good User Experience design, it is time to learn Javascript.&lt;/p&gt;

&lt;p&gt;Javascript is a scripting language that allows you to build interactive web apps. It allows you to add more functionality to your web app such as image sliders, popups, form validation, animations, etc.&lt;/p&gt;

&lt;p&gt;Javascript might have a steep learning curve but it is worth it in the end. If you face any problems during development Stack Overflow and W3Schools are at your disposal.&lt;/p&gt;

&lt;p&gt;Here are some resources that will help you learn and understand Javascript faster.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;W3Schools&lt;/li&gt;
&lt;li&gt;Youtube&lt;/li&gt;
&lt;li&gt;Udemy&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--qKkSY5Rf--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://i0.wp.com/tolustar.com/wp-content/uploads/2020/02/Javascript-Framework.png%3Fresize%3D1024%252C576%26ssl%3D1" alt=""&gt;5. Learn a Front-end Javascript Framework
&lt;/h2&gt;

&lt;p&gt;Building web apps is like building a house when a builder sets out to build a house, the builder can decide to create the tools and building materials from scratch then start building the house, but that approach is time-consuming and doesn’t make sense. But it is more likely the builder would purchase pre-manufactured tools and building materials, then use them to build the house. In the same way, Javascript Framework is a set of tools that allows you to build single-page apps and advanced web apps. When you set out to code a complex web app, you can code every aspect of the site such as &lt;em&gt;routing to different pages, creating re-usable components, etc&lt;/em&gt; – but that is time-consuming and this is where learning a Javascript Framework becomes very important.&lt;/p&gt;

&lt;p&gt;Therefore, the next question that comes to your mind is – &lt;em&gt;Which Javascript Framework should I learn?&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;There are currently three popular Javascript Frameworks which are &lt;strong&gt;&lt;em&gt;Angular, React and Vue&lt;/em&gt;&lt;/strong&gt;. Research on the three frameworks and select the framework you feel you will be most comfortable with. Also, you can select a framework of your choice based on the market demand in your locality.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--cuJoH5fb--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://i0.wp.com/tolustar.com/wp-content/uploads/2020/02/web-app-idea.png%3Fresize%3D975%252C415%26ssl%3D1" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--cuJoH5fb--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://i0.wp.com/tolustar.com/wp-content/uploads/2020/02/web-app-idea.png%3Fresize%3D975%252C415%26ssl%3D1" alt="web app idea"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  6. Develop a mini-website/web app
&lt;/h2&gt;

&lt;p&gt;&lt;em&gt;How else can you let the world know you are now a front-end developer? The answer is showing them what you have built.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Now it is time to put together everything you have learned and practiced in the above steps. Therefore, develop a mini-website using HTML, CSS, and Javascript in conjunction with a Javascript Framework. Also, ensure you integrate GIT into your project, commit regularly especially when you add a new feature to your web app. Once the app is completed upload it on any front end hosting service such as Github Pages, Netlify, etc.&lt;/p&gt;

&lt;p&gt;Examples of  mini web apps you can build&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;A weight tracker app&lt;/li&gt;
&lt;li&gt;A calculator&lt;/li&gt;
&lt;li&gt;A recipe app&lt;/li&gt;
&lt;li&gt;An expense tracker&lt;/li&gt;
&lt;li&gt;Simple online store&lt;/li&gt;
&lt;li&gt;A Quiz app&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;In conclusion, to become a front-end developer requires that you follow the above steps with consistency and grit.  It is very important you are always willing to learn more and also get better in front-end development. Therefore, you can better by working on more projects, reading front-end development articles and discussions, watch more front-end development videos, participate in front-end development discussions – sooner you will become a professional front-end developer.&lt;/p&gt;

&lt;p&gt;Do you love this article – drop a comment, like, share&lt;/p&gt;

&lt;p&gt;Cheers!!!&lt;/p&gt;

</description>
      <category>frontend</category>
      <category>javascript</category>
      <category>html</category>
      <category>css</category>
    </item>
    <item>
      <title>5 things to consider before developing a web application</title>
      <dc:creator>tolustar</dc:creator>
      <pubDate>Tue, 18 Feb 2020 14:29:31 +0000</pubDate>
      <link>https://forem.com/tolustar/5-things-to-consider-before-developing-a-web-application-2338</link>
      <guid>https://forem.com/tolustar/5-things-to-consider-before-developing-a-web-application-2338</guid>
      <description>&lt;p&gt;Before you begin developing that great web application, there are certain things you must consider in ensuring your application does not suddenly fail in the future.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt; Database&lt;/li&gt;
&lt;li&gt; Performance&lt;/li&gt;
&lt;li&gt; Security&lt;/li&gt;
&lt;li&gt; Hosting Provider&lt;/li&gt;
&lt;li&gt; User Experience&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  1. Database
&lt;/h3&gt;

&lt;p&gt;Choosing the right database can be very critical to the success of your app, it is a long term decision and making any changes later in the future can be quite difficult and expensive, you can not afford to get it wrong at the beginning stages of your application development. Here are some benefits of choosing the right database for your application.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt; It will be easy to maintain&lt;/li&gt;
&lt;li&gt; Your application will be fast and it will have a good overall performance&lt;/li&gt;
&lt;li&gt; You will write fewer codes as opposed to choosing the wrong database&lt;/li&gt;
&lt;li&gt; You will save cost&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;There are two types of databases commonly used - SQL Databases (MySQL, SQLite, PostgreSQL) and NoSQL Databases (MongoDB, Cassandra DB, CouchDB). Before using any database for your web application you need to ask certain questions that will guide you in selecting the right database for your application.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt; Would your data have a definite structure&lt;/li&gt;
&lt;li&gt; How often would your database schemas change as your application grows&lt;/li&gt;
&lt;li&gt; Would I need to make multiple and complex relationships in my database&lt;/li&gt;
&lt;li&gt; How many users do you expect to handle simultaneously when your application becomes really popular?&lt;/li&gt;
&lt;li&gt; Would your application process big data.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Answering the above questions will give you a cue to know which database type is best for you  &lt;/p&gt;

&lt;h3&gt;
  
  
  2. Performance
&lt;/h3&gt;

&lt;p&gt;The performance of your web application is very critical to the success of your web application. No one will like to use your web application if it takes over a minute to load a page or portion of your web application. Every user wants a fast responsive web application and can still be accessible when their network is really poor. Ways to improve the performance of your web application&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt; Use a Content Delivery Network (CDN) for your static files - A CDN is a worldwide network of servers that allows you to duplicate and store your site’s static elements/files (e.g. CSS, Javascript, images, documents, videos, etc.). These elements are then delivered to visitors from a server closer to their physical location.&lt;/li&gt;
&lt;li&gt; Optimize your images&lt;/li&gt;
&lt;li&gt; Minify your Javascript and CSS files&lt;/li&gt;
&lt;li&gt; Combine CSS and JavaScript files to reduce HTTP requests&lt;/li&gt;
&lt;li&gt; Improve your database queries - Database queries with long response time will affect the performance of your web application. Indexing your database tables, refactoring and optimizing your database queries will boost the performance of your web application&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  3. Security
&lt;/h3&gt;

&lt;p&gt;Having a data breach is detrimental to the growth of your application and company, and it can cost you more in user loss of trust in your product, loss of revenues and possible lawsuits, so it is very important you consider the security of your application at every development stage. The Open Web Application Security Project has written top 10 web application security risks and how you can prevent them &lt;strong&gt;&lt;a href="https://owasp.org/www-project-top-ten/"&gt;read more&lt;/a&gt;&lt;/strong&gt;  &lt;/p&gt;

&lt;h3&gt;
  
  
  4. Hosting Provider
&lt;/h3&gt;

&lt;p&gt;Having the right hosting provider can play a huge role in the growth of your company and web application. A good hosting provider must be fast, secure, have good support, and provides the ability to scale up when there is an influx of users on your application due to certain events. There are so many factors involved in selecting the right hosting provider and it can be overwhelming. Here are a few points to go through before you pick up your new web hosting provider.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt; Know your hosting needs&lt;/li&gt;
&lt;li&gt; How secure is the hosting provider&lt;/li&gt;
&lt;li&gt; Reliability and Availability&lt;/li&gt;
&lt;li&gt; Essential hosting features&lt;/li&gt;
&lt;li&gt; How effective is their customer service&lt;/li&gt;
&lt;li&gt; Do they provide interval backups&lt;/li&gt;
&lt;li&gt; Scalability&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  5. User Experience
&lt;/h3&gt;

&lt;p&gt;User experience is how your users feel about every interaction with your web application at the moment they are using it. If you develop a web application that’s ugly, hard to use, and that doesn’t help your users achieve their goals, they’re going to leave feeling frustrated and probably angry. After all, by developing an awful site, you just wasted their time. UX is about creating a user interface that is intuitive and so well designed that users don’t even have to think, they just touch, read, scroll, and otherwise interact until they reach the conversion. Here are some benefits of good user experience&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt; User loyalty - If a user had a bad experience while using your web application, the chances of the user returning to your application are slim. On the other hand, if your web application wows your audience, you’ll begin to breed loyalty with just the first few site interactions. The longer you keep visitors on-site with UX best practices, the more loyal your customers will become, which represents the best-case scenario for long term business success.&lt;/li&gt;
&lt;li&gt; Return on Investment - The longer you keep a user on your web application the higher the chances of them making a purchase&lt;/li&gt;
&lt;li&gt; Happy users&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;    Do you love this article? comment below, like and share. Cheers !!!&lt;/p&gt;

</description>
      <category>database</category>
      <category>performance</category>
      <category>security</category>
      <category>ux</category>
    </item>
    <item>
      <title>Important Tools To Improve Your Web Development Workflow</title>
      <dc:creator>tolustar</dc:creator>
      <pubDate>Thu, 30 Jan 2020 09:41:29 +0000</pubDate>
      <link>https://forem.com/tolustar/important-tools-to-improve-your-web-development-workflow-3i14</link>
      <guid>https://forem.com/tolustar/important-tools-to-improve-your-web-development-workflow-3i14</guid>
      <description>&lt;p&gt;Developing well-functional web applications could be time-consuming and requires lots of planning, but having the right development tools in your arsenal can improve your web development workflow and speed up some parts of your processes whether you are working in a team or you are working alone. Here is a list of tools that every developer should get familiar with. Let us get started&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt; Git&lt;/li&gt;
&lt;li&gt; CI/CD&lt;/li&gt;
&lt;li&gt; Postman&lt;/li&gt;
&lt;li&gt; Trello&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  1. Git
&lt;/h3&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%2Ftolustar.com%2Fwp-content%2Fuploads%2F2020%2F01%2F1280px-Git-logo-1024x428.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%2Ftolustar.com%2Fwp-content%2Fuploads%2F2020%2F01%2F1280px-Git-logo-1024x428.png"&gt;&lt;/a&gt; According to Wikipedia&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Git is a distributed version-control system for tracking changes in source code during software development. It is designed for coordinating work among programmers, but it can be used to track changes in any set of files. Its goals include speed, data integrity, and support for distributed, non-linear workflows.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Mastering how to use Git improves your development workflow. Here are some reasons why git is important&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt; It is easy to revert your mistakes. Git has a feature called &lt;strong&gt;commit. &lt;/strong&gt;Whenever you commit your code project, Git saves a snapshot of your project containing the necessary metadata such as (your name, timestamp, etc). It is synonymous to a save history with the power to revert back or view your code history&lt;/li&gt;
&lt;li&gt; With the power of &lt;strong&gt;Git Branches&lt;/strong&gt;,  you and your team can work on simultaneously on a project without any hiccups.&lt;/li&gt;
&lt;li&gt; As a solo developer working on a beautiful project and you want to implement a new feature that can/might break a lot of things in your project, rather than duplicating your project to isolate, build and test the feature which is time-consuming, Git gives you the power to branch out of your main branch to implement your new feature and ensure everything is tested and works well before merging it back into the main branch.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Note: it is important you always have a copy of your git repositories online. You can use one of the reputable git repositories online such as Github, Bitbucket, Gitlab.&lt;/p&gt;

&lt;h3&gt;
  
  
  2. CI/CD
&lt;/h3&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%2Ftolustar.com%2Fwp-content%2Fuploads%2F2020%2F01%2FCiCD.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%2Ftolustar.com%2Fwp-content%2Fuploads%2F2020%2F01%2FCiCD.png"&gt;&lt;/a&gt; CI/CD stands for Continuous Integration and Continuous Deployment which is a process that allows developers to deliver code changes frequently and reliable Continuous Integration (CI) is a development practice where developers deliver code into a repository frequently, preferably several times a day. Each integration is then verified by an automated build and tests to ensure everything is working fine. The important benefit of integrating regularly is that it helps you detect errors in your code quickly and also locate them more easily because each change introduced into the code repository is small, detecting the specific change that introduced the errors. &lt;em&gt;Continuous Delivery  is an extension of Continuous Integration which is the process of keeping your codes deployable to the production at any point in time&lt;/em&gt; Continuous Deployment is the development practice of deploying your codes automatically to the production server after all build phases and tests have been passed. Advantages of CI/CD in your project&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt; It ensures that you have less bug in your production server&lt;/li&gt;
&lt;li&gt; Releasing your product to the production server becomes easier&lt;/li&gt;
&lt;li&gt; Releases are less risky and easier to fix in case of any problem as you deploy small batches of changes.&lt;/li&gt;
&lt;li&gt; You can release your product more often thus accelerating the feedback loop with your customers.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;There are many CI/CD tools out there that you can use in your projects such as &lt;a href="https://buddy.works/" rel="noopener noreferrer"&gt;Buddy.works&lt;/a&gt;, &lt;a href="https://travis-ci.com/" rel="noopener noreferrer"&gt;Travis Ci&lt;/a&gt;, &lt;a href="https://circleci.com/" rel="noopener noreferrer"&gt;Circle Ci&lt;/a&gt;, &lt;a href="https://bitbucket.org/product/features/pipelines" rel="noopener noreferrer"&gt;Bitbucket Pipelines&lt;/a&gt;, etc.&lt;/p&gt;

&lt;h3&gt;
  
  
  3. Postman
&lt;/h3&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%2Ftolustar.com%2Fwp-content%2Fuploads%2F2020%2F01%2FPostman-1024x409.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%2Ftolustar.com%2Fwp-content%2Fuploads%2F2020%2F01%2FPostman-1024x409.png"&gt;&lt;/a&gt; Postman is a Google Chrome app for interacting and testing APIs. It saves you times testing your API calls by presenting you with a friendly GUI for constructing requests and reading responses. Advantages of using postman&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt; Accessibility - To use Postman, one would just need to log-in to their own accounts making it easy to access files anytime, anywhere as long as a Postman application is installed on the computer.&lt;/li&gt;
&lt;li&gt; Use of Collections - It lets users create collections for their API calls. Each collection can create subfolders and multiple requests. This helps in organizing your test suites.&lt;/li&gt;
&lt;li&gt; Collaboration - Collections and environments can be imported or exported making it easy to share files. A direct link can also be used to share collections.&lt;/li&gt;
&lt;li&gt; Creating Environments - Having multiple environments aids in less repetition of tests as one can use the same collection but for a different environment. This is where parameterization will take place which we will discuss in further lessons.&lt;/li&gt;
&lt;li&gt; Creation of Tests - Test checkpoints such as verifying for successful HTTP response status can be added to each API call which helps ensure test coverage.&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  4. Trello
&lt;/h3&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%2Ftolustar.com%2Fwp-content%2Fuploads%2F2020%2F01%2Ftrello.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%2Ftolustar.com%2Fwp-content%2Fuploads%2F2020%2F01%2Ftrello.png"&gt;&lt;/a&gt; Trello is a cloud-based project management app designed to help individuals and teams collaborate better and keep their projects organized. &lt;strong&gt;Advantages of using Trello. &lt;/strong&gt; It helps you...&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt; plan your project&lt;/li&gt;
&lt;li&gt; track your project tasks&lt;/li&gt;
&lt;li&gt; keep track of who is doing what in a group&lt;/li&gt;
&lt;li&gt; to see all of the working parts of a project together on one page (or multiple pages)&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;  Learning how to use these tools discussed in today's article effectively will definitely improve your deployment workflow, which in turn saves you cost and time, and make your work easier while working on any web development project. &lt;/p&gt;

&lt;p&gt;Cheers !!!&lt;/p&gt;

&lt;p&gt;Published here first — &lt;a href="https://wp.me/p9DCzK-5t" rel="noopener noreferrer"&gt;https://wp.me/p9DCzK-5t&lt;/a&gt;&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>git</category>
      <category>javascript</category>
      <category>devops</category>
    </item>
    <item>
      <title>My Top 10 Best Visual Studio Code Extensions</title>
      <dc:creator>tolustar</dc:creator>
      <pubDate>Sun, 19 Jan 2020 20:08:53 +0000</pubDate>
      <link>https://forem.com/tolustar/my-top-10-best-visual-studio-code-extensions-2dae</link>
      <guid>https://forem.com/tolustar/my-top-10-best-visual-studio-code-extensions-2dae</guid>
      <description>&lt;p&gt;Having the right extension installed on your Visual Studio Code can speed up your productivity, make your codes readable and attractive and also foster collaboration. Here is a list of my top 10 Visual Studio Extensions that have made my life easier while developing web and mobile apps, and also made my codes attractive. These extensions are not platform-specific and can be used by any developer that uses Visual Studio Code. Let’s get started.  &lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--7LeiZERL--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://s.w.org/images/core/emoji/11/72x72/1f600.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--7LeiZERL--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://s.w.org/images/core/emoji/11/72x72/1f600.png" alt="😀"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Gitlens&lt;/li&gt;
&lt;li&gt;Prettier&lt;/li&gt;
&lt;li&gt;Project Manager&lt;/li&gt;
&lt;li&gt;All Autocomplete&lt;/li&gt;
&lt;li&gt;Auto close tag&lt;/li&gt;
&lt;li&gt;Auto rename tag&lt;/li&gt;
&lt;li&gt;Settings Sync&lt;/li&gt;
&lt;li&gt;Visual Studio Intellicode&lt;/li&gt;
&lt;li&gt;Live share&lt;/li&gt;
&lt;li&gt;Save as snippet&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  1. GitLens
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--TdALqpBh--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_880/https://i0.wp.com/tolustar.com/wp-content/uploads/2020/01/gitlens-preview.gif%3Fresize%3D727%252C600%26ssl%3D1" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--TdALqpBh--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_880/https://i0.wp.com/tolustar.com/wp-content/uploads/2020/01/gitlens-preview.gif%3Fresize%3D727%252C600%26ssl%3D1" alt=""&gt;&lt;/a&gt;&lt;br&gt;&lt;br&gt;
&lt;a href="https://marketplace.visualstudio.com/items?itemName=eamodio.gitlens"&gt;https://marketplace.visualstudio.com/items?itemName=eamodio.gitlens&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;GitLens is a powerful git extension that helps me glimpse into whom, why, and when a line or code block was changed. It even goes further to compare uncommitted code changes with my last commit on a particular file.&lt;/p&gt;

&lt;h3&gt;
  
  
  2. Prettier
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://marketplace.visualstudio.com/items?itemName=esbenp.prettier-vscode"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--RO0Cy21G--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://i1.wp.com/tolustar.com/wp-content/uploads/2020/01/prettier.png%3Fresize%3D1024%252C427%26ssl%3D1" alt=""&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://marketplace.visualstudio.com/items?itemName=esbenp.prettier-vscode"&gt;https://marketplace.visualstudio.com/items?itemName=esbenp.prettier-vscode&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Prettier is a code formatter that format codes appropriately with a consistent style. If you want to make your code attractive have prettier in your toolset.&lt;/p&gt;

&lt;h3&gt;
  
  
  3. Project Manager
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://marketplace.visualstudio.com/items?itemName=alefragnani.project-manager"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--gXrfa80F--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://i2.wp.com/tolustar.com/wp-content/uploads/2020/01/vscode-project-manager-logo-readme-2.png%3Fresize%3D700%252C161%26ssl%3D1" alt=""&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://marketplace.visualstudio.com/items?itemName=alefragnani.project-manager"&gt;https://marketplace.visualstudio.com/items?itemName=alefragnani.project-manager&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Project manager houses all my projects in one section of my Visual Studio Code and makes me switch between my projects easily, it eliminates the stress of going through my file explorer searching for my project. If you work on multiple projects, then this extension will come in handy for you.&lt;/p&gt;

&lt;h3&gt;
  
  
  4. All Autocomplete
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--iap0FytQ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_880/https://i2.wp.com/tolustar.com/wp-content/uploads/2020/01/All-Autocomplete-1.gif%3Fresize%3D620%252C480%26ssl%3D1" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--iap0FytQ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_880/https://i2.wp.com/tolustar.com/wp-content/uploads/2020/01/All-Autocomplete-1.gif%3Fresize%3D620%252C480%26ssl%3D1" alt=""&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://marketplace.visualstudio.com/items?itemName=Atishay-Jain.All-Autocomplete"&gt;https://marketplace.visualstudio.com/items?itemName=Atishay-Jain.All-Autocomplete&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Instead of retyping variables or function names that I have typed earlier, All Autocomplete provides auto completion for Visual Studio Code items, so that I don’t waste any more time&lt;/p&gt;

&lt;h3&gt;
  
  
  5. Auto Close Tag
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://marketplace.visualstudio.com/items?itemName=formulahendry.auto-close-tag"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--97qrDgrb--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_880/https://i0.wp.com/tolustar.com/wp-content/uploads/2020/01/auto-close.gif%3Fresize%3D1024%252C667%26ssl%3D1" alt=""&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://marketplace.visualstudio.com/items?itemName=formulahendry.auto-close-tag"&gt;https://marketplace.visualstudio.com/items?itemName=formulahendry.auto-close-tag&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Auto close tag automatically adds an HTML/XML close tag, imagine how this speeds up my time coding because my favourite code editor is assists me in writing my codes.&lt;/p&gt;

&lt;h3&gt;
  
  
  6. Auto Rename Tag
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://marketplace.visualstudio.com/items?itemName=formulahendry.auto-rename-tag"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--cOTLkqGc--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_880/https://i2.wp.com/tolustar.com/wp-content/uploads/2020/01/auto-rename.gif%3Fresize%3D1024%252C667%26ssl%3D1" alt=""&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://marketplace.visualstudio.com/items?itemName=formulahendry.auto-rename-tag"&gt;https://marketplace.visualstudio.com/items?itemName=formulahendry.auto-rename-tag&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Just like the &lt;em&gt;Auto Close Tag&lt;/em&gt;, the Auto Rename Tag helps me to rename the closing tag by just renaming the opening tag and vice-versa, can you see how sweet that can be especially for tags that have large content in it, I don’t need to stress myself to scroll down or up just to rename the other tag.&lt;/p&gt;

&lt;h3&gt;
  
  
  7. Settings Sync
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://marketplace.visualstudio.com/items?itemName=Shan.code-settings-sync"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--bLd7uWU0--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://i1.wp.com/tolustar.com/wp-content/uploads/2020/01/settings-sync-2.png%3Fresize%3D1024%252C759%26ssl%3D1" alt=""&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://marketplace.visualstudio.com/items?itemName=Shan.code-settings-sync"&gt;https://marketplace.visualstudio.com/items?itemName=Shan.code-settings-sync&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Settings sync comes in really handy when working with multiple computers, it can be a lot of stress trying to transfer/update my extensions, settings, snippets from one computer to another. Settings sync helps me to synchronise all my settings and extensions through the use of Github account without stress.&lt;/p&gt;

&lt;h3&gt;
  
  
  8. Visual Studio Intellicode
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://marketplace.visualstudio.com/items?itemName=VisualStudioExptTeam.vscodeintellicode"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--CoUWumb3--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_880/https://i1.wp.com/tolustar.com/wp-content/uploads/2020/01/visual-studio-intellicode.gif%3Fresize%3D1024%252C455%26ssl%3D1" alt=""&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://marketplace.visualstudio.com/items?itemName=VisualStudioExptTeam.vscodeintellicode"&gt;https://marketplace.visualstudio.com/items?itemName=VisualStudioExptTeam.vscodeintellicode&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This is another time-saver extension for me, it helps with smart code completion suggestion especially  when I want to access member functions – this saves me another great deal of extra typing, another icing on the cake is that it defines what the member function does if there is a definition, Javascript developers will enjoy this extension a lot.&lt;/p&gt;

&lt;h3&gt;
  
  
  9. Live share
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://marketplace.visualstudio.com/items?itemName=MS-vsliveshare.vsliveshare"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--O0YO9JsB--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://i0.wp.com/tolustar.com/wp-content/uploads/2020/01/live-share.jpg%3Fresize%3D1024%252C391%26ssl%3D1" alt=""&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://marketplace.visualstudio.com/items?itemName=MS-vsliveshare.vsliveshare"&gt;https://marketplace.visualstudio.com/items?itemName=MS-vsliveshare.vsliveshare&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This extension is very useful for collaborating, it comes in handy when I am working in a remote team and I need the help of a team member with a bug. Live share enables me to edit and debug with other team members in real-time. Live share is like a virtual conference room for developers to work together. If you work in a remote team consisting of two or three developers working on the same project, I will advice you all have this extension installed.&lt;/p&gt;

&lt;h3&gt;
  
  
  10. Save as snippet
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--IETI1JII--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_880/https://i2.wp.com/tolustar.com/wp-content/uploads/2020/01/save-as-snippet.gif%3Fresize%3D720%252C538%26ssl%3D1" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--IETI1JII--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_880/https://i2.wp.com/tolustar.com/wp-content/uploads/2020/01/save-as-snippet.gif%3Fresize%3D720%252C538%26ssl%3D1" alt=""&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Save as snippet enables me to save code blocks I repeatedly type, with a snippet, so that I don’t have to type long blocks of code over and over again.&lt;/p&gt;

&lt;h2&gt;
  
  
  Bonus
&lt;/h2&gt;

&lt;h3&gt;
  
  
  11. Material Theme
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://marketplace.visualstudio.com/items?itemName=Equinusocio.vsc-material-theme"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--YpToZaoi--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://i1.wp.com/tolustar.com/wp-content/uploads/2020/01/material-theme.jpg%3Fresize%3D1024%252C605%26ssl%3D1" alt=""&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://marketplace.visualstudio.com/items?itemName=Equinusocio.vsc-material-theme"&gt;https://marketplace.visualstudio.com/items?itemName=Equinusocio.vsc-material-theme&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Material theme makes my Visual Studio Code look beautiful and pleasing to the eye  &lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--7LeiZERL--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://s.w.org/images/core/emoji/11/72x72/1f600.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--7LeiZERL--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://s.w.org/images/core/emoji/11/72x72/1f600.png" alt="😀"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  12. Material Icon Theme
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://marketplace.visualstudio.com/items?itemName=PKief.material-icon-theme"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--NncLyusq--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://i0.wp.com/tolustar.com/wp-content/uploads/2020/01/material-icon.png%3Fresize%3D1125%252C1408%26ssl%3D1" alt=""&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://marketplace.visualstudio.com/items?itemName=PKief.material-icon-theme"&gt;https://marketplace.visualstudio.com/items?itemName=PKief.material-icon-theme&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The Material Icon Theme provides lots of beautiful icons based on Material Design for Visual Studio Code.&lt;/p&gt;

&lt;p&gt;Thank you for reading my top 10 best visual studio code extension. I would love to read your thoughts and comments. Cheers!!!&lt;/p&gt;

</description>
      <category>articles</category>
      <category>productivity</category>
      <category>vscode</category>
    </item>
  </channel>
</rss>
