<?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: Coding with Toms💻☕🚀</title>
    <description>The latest articles on DEV Community by Coding with Toms💻☕🚀 (@withtoms).</description>
    <link>https://dev.to/withtoms</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%2F445324%2F4b9948ae-467d-4c3f-b26e-e69b8767c845.jpg</url>
      <title>DEV Community: Coding with Toms💻☕🚀</title>
      <link>https://dev.to/withtoms</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/withtoms"/>
    <language>en</language>
    <item>
      <title>ESLint and how to get the most out of it</title>
      <dc:creator>Coding with Toms💻☕🚀</dc:creator>
      <pubDate>Sun, 02 Jul 2023 14:10:40 +0000</pubDate>
      <link>https://dev.to/withtoms/eslint-and-how-to-get-the-most-out-of-it-cn3</link>
      <guid>https://dev.to/withtoms/eslint-and-how-to-get-the-most-out-of-it-cn3</guid>
      <description>&lt;h2&gt;
  
  
  Intro
&lt;/h2&gt;

&lt;p&gt;What is ESLint? ESLint is a static code verification tool that automatically reports an error/ warning if the set rules are broken.&lt;/p&gt;

&lt;p&gt;Why would you want to use this? It allows developers to automatically enforce the company's code style guide and standards, prevents common errors and reduces time spent on PRs leaving a comment that someone forgot to add ";" at the end of the line. Ultimately increasing the quality of your codebase and increasing each developer's efficiency.&lt;/p&gt;

&lt;h2&gt;
  
  
  Common ESLint setting to enforce Javascript best practices
&lt;/h2&gt;

&lt;p&gt;To start with, probably the easiest and most powerful rule to get a lot out of ESLint is to add an extension called "eslint:recommended" and if you are using typescript the also "plugin:@typescript-eslint/recommended". Additionally, on top of it, I would suggest taking a look at these rules:&lt;/p&gt;

&lt;p&gt;"no-console": This rule helps identify and remove any remaining console.log statements, ensuring that debug logs are not present in production code.&lt;/p&gt;

&lt;p&gt;"no-unused-vars": It detects unused variables and parameters, helping to identify and remove unnecessary code and improve code maintainability.&lt;/p&gt;

&lt;p&gt;"no-undef": This rule checks for undeclared variables and helps catch typos or potential issues with variable scoping.&lt;/p&gt;

&lt;p&gt;"strict": The "strict" mode enforces stricter coding standards by requiring variables to be declared with var, let, or const and prevents the use of undeclared variables.&lt;/p&gt;

&lt;p&gt;"no-magic-numbers": This rule discourages the use of "magic numbers" in code by requiring the use of named constants or variables, which improves code readability and maintainability.&lt;/p&gt;

&lt;p&gt;"consistent-return": It enforces consistent return values in functions, ensuring that all code paths return a value or explicitly use "void" for TypeScript functions.&lt;/p&gt;

&lt;p&gt;"no-else-return": This rule discourages the use of unnecessary "else" statements when the "if" statement already has a return or throw statement, improving code clarity and reducing cognitive load.&lt;/p&gt;

&lt;p&gt;"no-use-before-define": It prevents the use of variables before they are defined, avoiding potential bugs caused by hoisting and helping maintain clean code structure.&lt;/p&gt;

&lt;p&gt;"prefer-const": This rule encourages the use of const for variables that are not reassigned, promoting immutability and reducing the risk of accidental variable mutations.&lt;/p&gt;

&lt;p&gt;"eqeqeq": This rule enforces the use of strict equality (===) over loose equality (==), promoting safer and more predictable comparisons by requiring the comparison of both value and type.&lt;/p&gt;

&lt;p&gt;"complexity": This rule helps identify overly complex functions by setting a threshold for cyclomatic complexity, allowing you to maintain more readable and maintainable code by encouraging smaller, more focused functions.&lt;/p&gt;

&lt;p&gt;In code it would look like this:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;{ 
    "root": true, 
    "env": { "node": true, "browser": true, "es2021": true }, 
    "extends": [ "eslint:recommended", "plugin:@typescript-eslint/recommended" ], 
    "parserOptions": { "ecmaVersion": 2021, "sourceType": "module" }, 
    "plugins": [ "@typescript-eslint" ], 
    "rules": { 
        "no-console": "error", 
        "no-unused-vars": "erroe", 
        "no-undef": "error", 
        "strict": ["error", "global"], 
        "no-magic-numbers": ["warn", { "ignore": [0, 1], "ignoreArrayIndexes": true }], 
        "consistent-return": "error", 
        "no-else-return": "error", 
        "no-use-before-define": "error", 
        "prefer-const": "error", 
        "no-restricted-syntax": ["error", "WithStatement"], 
        "eqeqeq": "error", 
        "complexity": ["warn", 10] } 
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Integrate ESLint with other linting tools and frameworks
&lt;/h2&gt;

&lt;p&gt;"Prettier": Integrating ESLint with Prettier so that they wouldn't conflict each other- &lt;a href="https://www.npmjs.com/package/eslint-config-prettier"&gt;https://www.npmjs.com/package/eslint-config-prettier&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;"Typescript": Typescript and ESLint can work together and report issues in the compiler, grab the eslint-typescript plugin and get working together and catch the potential bugs as you write your code- &lt;a href="https://www.npmjs.com/package/@typescript-eslint/eslint-plugin"&gt;https://www.npmjs.com/package/@typescript-eslint/eslint-plugin&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;this plugin can do more of just that, I highly recommend checking out the official documentation here- &lt;a href="https://typescript-eslint.io/"&gt;https://typescript-eslint.io/&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;"3rd party predefined rule plugins": these plugins allow you to fast-track some of the setup and align your code standards with some of the already established communities that have gone through rigorous processes of setting these rules in. the firts place.&lt;/p&gt;

&lt;p&gt;Google- &lt;a href="https://www.npmjs.com/package/eslint-config-google"&gt;https://www.npmjs.com/package/eslint-config-google&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;AirBnB- &lt;a href="https://www.npmjs.com/package/eslint-config-airbnb"&gt;https://www.npmjs.com/package/eslint-config-airbnb&lt;/a&gt; and for typescript &lt;a href="https://www.npmjs.com/package/eslint-config-airbnb-typescript"&gt;https://www.npmjs.com/package/eslint-config-airbnb-typescript&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Vue- &lt;a href="https://www.npmjs.com/package/eslint-plugin-vue"&gt;https://www.npmjs.com/package/eslint-plugin-vue&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Angular- &lt;a href="https://www.npmjs.com/package/@angular-eslint/eslint-plugin"&gt;https://www.npmjs.com/package/@angular-eslint/eslint-plugin&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;React- &lt;a href="https://www.npmjs.com/package/eslint-plugin-react"&gt;https://www.npmjs.com/package/eslint-plugin-react&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Next.js- &lt;a href="https://www.npmjs.com/package/eslint-config-next"&gt;https://www.npmjs.com/package/eslint-config-next&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The only ESLint code editor plugin you will ever need:&lt;/p&gt;

&lt;p&gt;ESLint plugin by Microsoft- automatically underlines the code that has an eslint error- &lt;a href="https://marketplace.visualstudio.com/items?itemName=dbaeumer.vscode-eslint"&gt;https://marketplace.visualstudio.com/items?itemName=dbaeumer.vscode-eslint&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;ESLint and PRs (local and/or pipeline check)&lt;/p&gt;

&lt;p&gt;What's the use of ESLint if only you are using it? ESlint rule enforcement should be a part of your DevOps process, it is highly recommended that you run your eslint . (this command runs it on all of your codebase) either&lt;/p&gt;

&lt;p&gt;in your pipeline or&lt;/p&gt;

&lt;p&gt;locally pre-commit f.x. using Husky. If you are going for the local environment option and your codebase is relatively large you might want to upgrade your ESLint call to run only on the files that you have changed by doing this- eslint --fix $(git diff --name-only develop '*&lt;em&gt;/&lt;/em&gt;.js' | xargs) For more discussion on this see this stackOverflow post &lt;a href="https://stackoverflow.com/questions/54511168/enable-eslint-only-for-edited-files"&gt;https://stackoverflow.com/questions/54511168/enable-eslint-only-for-edited-files&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Custom ESLint rules
&lt;/h2&gt;

&lt;p&gt;If you cannot find an ESLint rule that fits your requirements it is possible to create one yourself! For example, if for some reason you would want to disallow using the word "coconut" in your code base you could write a custom rule that will throw you an error if someone tried to do that. That would look something like this:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;// avoid-name.js

module.exports = {
    meta: {
        messages: {
            avoidName: "Avoid using variables named '{{ name }}'"
        }
    },
    create(context) {
        return {
            Identifier(node) {
                if (node.name === "coconut") {
                    context.report({
                        node,
                        messageId: "avoidName",
                        data: {
                            name: "coconut",
                        }
                    });
                }
            }
        };
    }
};

// someFile.js

var coconut = 2;
//  ^ error: Avoid using variables named 'coconut'

// avoid-name.test.js

var rule = require("../../../lib/rules/avoid-name");
var RuleTester = require("eslint").RuleTester;

var ruleTester = new RuleTester();
ruleTester.run("avoid-name", rule, {
    valid: ["apple", "banana"],
    invalid: [
        {
            code: "coconut",
            errors: [
                {
                    messageId: "avoidName"
                }
            ]
        }
    ]
});
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;In conclusion, ESLint is a powerful tool for static code verification that offers numerous benefits for developers and codebases. By enforcing code style guides and standards, ESLint helps maintain consistency across the development team and improves the overall quality of the codebase. It detects common errors, such as unused variables and undeclared variables, reducing the likelihood of bugs and improving code maintainability. Additionally, ESLint promotes best practices, such as avoiding magic numbers, using strict equality, and reducing code complexity. Integrating ESLint with other tools and frameworks, such as Prettier and TypeScript, enhances its functionality and allows for a seamless development experience. By incorporating ESLint into the DevOps process and running it in pipelines or locally, you can ensure rule enforcement throughout the development lifecycle. Lastly, ESLint provides the flexibility to create custom rules, enabling you to tailor the tool to your specific requirements. Overall, ESLint is a valuable asset for developers, increasing code quality, reducing errors, and enhancing productivity.&lt;/p&gt;

&lt;p&gt;What is you favourite ESLint rule? Let me know in the comment section&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>lint</category>
      <category>automation</category>
      <category>testing</category>
    </item>
    <item>
      <title>Prettier and how to get most out of it</title>
      <dc:creator>Coding with Toms💻☕🚀</dc:creator>
      <pubDate>Sat, 01 Jul 2023 11:29:39 +0000</pubDate>
      <link>https://dev.to/withtoms/prettier-and-how-to-get-most-out-of-it-2d46</link>
      <guid>https://dev.to/withtoms/prettier-and-how-to-get-most-out-of-it-2d46</guid>
      <description>&lt;p&gt;Intro&lt;/p&gt;

&lt;p&gt;What is Prettier? Prettier is an opinionated code formatter that supports many languages and integrates with most of code editors. It must be emphasised that Prettier is opinionated since it provides very few configurable properties (23 as of 26th June 2023).&lt;/p&gt;

&lt;p&gt;What does code formatting mean? Essential Prettier parses and reprints code according to the rules set in the config file. It can be done by either:&lt;/p&gt;

&lt;p&gt;Installing Prettier plugin (highly recommended) and/or&lt;/p&gt;

&lt;p&gt;Running prettier --write . command&lt;/p&gt;

&lt;p&gt;Prettier rules and best practices&lt;/p&gt;

&lt;p&gt;When it comes to configuring Prettier settings, it is advisable to prioritize simplicity, as the tool's philosophy is rooted in its opinionated nature. Google's TypeScript Style guide also reflects this approach, recommending keeping Prettier configurations minimal to fully embrace its opinionated formatting decisions.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;// https://github.com/google/gts/blob/main/.prettierrc.json
{
  "bracketSpacing": false,
  "singleQuote": true,
  "trailingComma": "es5",
  "arrowParens": "avoid"
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Prettier integrations with other tools&lt;/p&gt;

&lt;p&gt;Prettier plugin (VSCode and most other code editors)&lt;/p&gt;

&lt;p&gt;Prettier plugin will generally allow you to set up your code editor to reformat the code in your file every time you save it. This is very handy since you don't have to bother with formatting your code by hand any more. &lt;a href="https://prettier.io/docs/en/editors.html"&gt;https://prettier.io/docs/en/editors.html&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Prettier and pipeline/ husky&lt;/p&gt;

&lt;p&gt;Since not all of your colleagues will neccecerly have set up the plugin and will make sure that the code is formatted it is needed to enforce that automatically. To do that it is recommended to use husky to run Prettier pre-commit. For a tutorial on how to do it, look here- &lt;a href="https://prettier.io/docs/en/precommit.html"&gt;https://prettier.io/docs/en/precommit.html&lt;/a&gt; . Additionally, it might be worthwhile to add a prettier check . in your pipeline just to be sure that the code meets the Prettier rules.&lt;/p&gt;

&lt;p&gt;Prettier and ESLint&lt;/p&gt;

&lt;p&gt;By combining Prettier and ESLint, you can leverage the strengths of both tools. Prettier is responsible for formatting your code, ensuring consistent and aesthetically pleasing styles. On the other hand, ESLint provides powerful configuration capabilities to enforce code quality and best practices.&lt;/p&gt;

&lt;p&gt;prettier-eslint plugin combines the formatting capabilities of Prettier with the configuration capabilities of eslint. It formats your code using Prettier and then applies eslint --fix command to ensure adherence to your eslint configuration. This allows you to benefit from Prettier's powerful formatting while maintaining linting consistency with eslint.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/prettier/prettier-eslint"&gt;https://github.com/prettier/prettier-eslint&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;eslint-plugin-prettier plugin is an ESLint plugin that runs Prettier as an ESLint rule and reports differences as individual ESLint issues.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.npmjs.com/package/eslint-plugin-prettier"&gt;https://www.npmjs.com/package/eslint-plugin-prettier&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Prettier and XML&lt;/p&gt;

&lt;p&gt;By default Prettier does not support XML, if you do need Prettier to support XML there is a plugin in place that can help you out. &lt;a href="https://www.npmjs.com/package/@prettier/plugin-xml"&gt;https://www.npmjs.com/package/@prettier/plugin-xml&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Unfortunately, Pretteir XML does not work out of the box together with the rest of your Prettier setup, therefore you need to do some additional configuration.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;         module.exports = {
            overrides: [
                {
                    files: "*/",
                    options: {
                       "bracketSpacing": false,
                       "singleQuote": true,
                       "trailingComma": "es5",
                       "arrowParens": "avoid"
                      }        
                },
                {
                    files: "*.xml",
                    options: {
                        parser: "xml",
                        plugins: ["@prettier/plugin-xml"], 
                        tabWidth: 4,
                        printWidth: 120, 
                        bracketSameLine: true,
                        singleAttributePerLine: true, 
                        useTabs: true
                    }
                }
            ]
          };
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;And when you call it in husky you can do something like this to make sure that xml is formatted-&lt;/p&gt;

&lt;p&gt;"prettier:xml": "prettier --parser xml --config ./prettier.config.js --write '*/.xml'"&lt;/p&gt;

&lt;p&gt;Prettier alternatives&lt;/p&gt;

&lt;p&gt;ESLint&lt;/p&gt;

&lt;p&gt;ESLint code formatting is still a valuable choice despite the emergence of Prettier as a popular code formatter. Firstly, ESLint encompasses a broader scope, allowing for code formatting as well as static analysis for detecting potential errors and enforcing best practices. This flexibility is advantageous for maintaining consistent code quality and preventing common mistakes. Secondly, ESLint provides a vast ecosystem of plugins and configurations, empowering developers to customize and tailor linting rules to their specific project needs. This level of configurability ensures adaptability to diverse codebases and coding styles. Therefore, ESLint remains a reliable and powerful tool for code formatting and beyond.- &lt;a href="https://www.npmjs.com/package/eslint"&gt;https://www.npmjs.com/package/eslint&lt;/a&gt;,&lt;/p&gt;

&lt;p&gt;Standard&lt;/p&gt;

&lt;p&gt;Standard is still a strong alternative to Prettier. It provides a comprehensive solution by combining code formatting with a set of predefined linting rules. These rules encompass not only code style conventions but also potential errors and best practices. Standard's predefined nature eliminates the need for extensive configuration, making it quick and easy to set up. While Prettier focuses solely on code formatting, Standard offers a holistic approach that ensures code quality, consistency, and adherence to industry standards. Therefore, Standard remains a reliable choice for developers seeking an all-in-one solution for code formatting and linting.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.npmjs.com/package/standard"&gt;https://www.npmjs.com/package/standard&lt;/a&gt; ,&lt;/p&gt;

&lt;p&gt;js-beautify&lt;/p&gt;

&lt;p&gt;JS-Beautify is still a viable option compared to Prettier. It specializes in code formatting and offers extensive customization options for indentation, spacing, and other stylistic preferences. While Prettier focuses on enforcing a consistent formatting style, JS-Beautify allows developers to tailor the formatting rules to their specific needs. It supports various programming languages and provides flexibility in handling different codebases. JS-Beautify's ability to fine-tune formatting rules makes it a valuable choice for developers who prioritize customization while maintaining code readability and aesthetics. Therefore, JS-Beautify remains a strong contender for code formatting needs alongside Prettier.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.npmjs.com/package/js-beautify"&gt;https://www.npmjs.com/package/js-beautify&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Conclusion&lt;/p&gt;

&lt;p&gt;In conclusion, leveraging the full potential of Prettier involves embracing its opinionated nature and keeping the configuration as simple as possible. By following Prettier's philosophy, developers can benefit from consistent and aesthetically pleasing code formatting. Integrating Prettier with other tools like ESLint enhances code quality and adherence to best practices. While alternative options such as ESLint, Standard, and JS-Beautify offer different features and levels of customization, Prettier remains a reliable choice for achieving code readability and aesthetics. Ultimately, selecting the right code formatting tool depends on the specific needs and preferences of the development team.&lt;/p&gt;

</description>
      <category>prettier</category>
      <category>webdev</category>
      <category>javascript</category>
      <category>beginners</category>
    </item>
    <item>
      <title>5 Productivity VScode extensions for Javascript developers</title>
      <dc:creator>Coding with Toms💻☕🚀</dc:creator>
      <pubDate>Sun, 09 Aug 2020 13:02:06 +0000</pubDate>
      <link>https://dev.to/withtoms/5-productivity-vscode-extensions-for-javascript-developers-254k</link>
      <guid>https://dev.to/withtoms/5-productivity-vscode-extensions-for-javascript-developers-254k</guid>
      <description>&lt;blockquote&gt;
&lt;h3&gt;
  
  
  If you improve by 1% every day you will improve by 100% in 100 days.
&lt;/h3&gt;
&lt;/blockquote&gt;

&lt;p&gt;Sounds very simple but it is hard to achieve. Here I have curated a list of 5 extensions that will help you improve your coding productivity right away!🚀🚀🚀&lt;/p&gt;

&lt;h2&gt;
  
  
  Prettier
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--xEOHXaPc--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/i/cbx6a57xzxz22ia3p5l7.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--xEOHXaPc--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/i/cbx6a57xzxz22ia3p5l7.gif" alt="Alt Text" width="800" height="419"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Prettier or another forms of it are quickly becoming a standard of many software engineering teams because it helps to maintain the code base structure and syntax consistent throughout your codebase while at the same time removing the hustle of formatting the code for each individual developer.&lt;/p&gt;

&lt;p&gt;Get it here: &lt;a href="https://prettier.io/"&gt;Prettier&lt;/a&gt; &lt;/p&gt;

&lt;h2&gt;
  
  
  Tab nine
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--pSwoa9xE--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/i/ju8k4yxzuplsllpyo561.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--pSwoa9xE--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/i/ju8k4yxzuplsllpyo561.gif" alt="Alt Text" width="642" height="360"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Tab nine is an AI based code assistant software. It predicts what code you might be writing and suggest you to autocomplete what you might be intending to write. It works very similarly as autocomplete in Gmail just for coding.&lt;/p&gt;

&lt;p&gt;I recommend giving it a try and see for yourself how the autosuggestion feel to use.&lt;/p&gt;

&lt;p&gt;Get it here: &lt;a href="https://www.tabnine.com/"&gt;Tab nine&lt;/a&gt; &lt;/p&gt;

&lt;h2&gt;
  
  
  ESlint
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--6rCL42Pe--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/i/g0qslfxxry4n1oyfwd77.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--6rCL42Pe--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/i/g0qslfxxry4n1oyfwd77.png" alt="Alt Text" width="800" height="337"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;ESLint prevents you from making code mistakes even before you try to run the code. It will generate an underline of where the problem might originate and show an error in console after the code is compiled. In this way you are increasingly reducing the time you spend on debugging and testing the code.&lt;/p&gt;

&lt;p&gt;Get it here: &lt;a href="https://eslint.org/"&gt;ESlint&lt;/a&gt; &lt;/p&gt;

&lt;h2&gt;
  
  
  Code Spell Checker
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--xtOxyKlE--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/i/4f82964bim9ko7npsqir.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--xtOxyKlE--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/i/4f82964bim9ko7npsqir.gif" alt="Alt Text" width="646" height="464"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Have you ever did a merge/pull request and were caught misspelling something and the had to pull up the old branch again just to fix the minor spelling issue? Now there is a solution that will save you even before you push your code.&lt;/p&gt;

&lt;p&gt;Get it here: &lt;a href="https://marketplace.visualstudio.com/items?itemName=streetsidesoftware.code-spell-checker"&gt;Code Spell Checker&lt;/a&gt; &lt;/p&gt;

&lt;h2&gt;
  
  
  Bracket pair colorizer
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--Zgk8Ku0D--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/i/zu5wwoa9ucjcday3qvy3.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--Zgk8Ku0D--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/i/zu5wwoa9ucjcday3qvy3.png" alt="Alt Text" width="800" height="703"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Everyone who have spent some time coding have ended up in the situation where you click trough the brackets to just find the matching one, now there is a tool that makes it much faster to identify the right brackets by colorising them.&lt;/p&gt;

&lt;p&gt;Get it here: &lt;a href="https://marketplace.visualstudio.com/items?itemName=CoenraadS.bracket-pair-colorizer"&gt;Bracket pair colorizer&lt;/a&gt; &lt;/p&gt;

&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;I hope you find this article useful and found a plugin that could add another 1% to your growth and productivity! Have a productive coding!🚀🚀🚀&lt;/p&gt;

</description>
      <category>vscode</category>
      <category>productivity</category>
      <category>javascript</category>
    </item>
    <item>
      <title>Top 5 Angular Design Systems/ Component Libraries</title>
      <dc:creator>Coding with Toms💻☕🚀</dc:creator>
      <pubDate>Sun, 02 Aug 2020 12:16:40 +0000</pubDate>
      <link>https://dev.to/withtoms/top-5-angular-design-systems-component-libraries-3f7f</link>
      <guid>https://dev.to/withtoms/top-5-angular-design-systems-component-libraries-3f7f</guid>
      <description>&lt;p&gt;I was about to start a side project with Angular and began wondering what design system should I use to avoid my app looking like plain html during the process. After doing some research I decided that it is worth noting down my research and sharing it with the world.&lt;/p&gt;

&lt;p&gt;Some of the requirements by which the selected design systems were selected:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;The system has to be designed to be compatible with Angular (installable via Angular CLI)&lt;/li&gt;
&lt;li&gt;It has to look cool and modern&lt;/li&gt;
&lt;li&gt;It has to have a large component library (a lot of the one I have seen actually don't have all the components you might think they should have!) &lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  5. Onsen UI
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://onsen.io/"&gt;https://onsen.io/&lt;/a&gt;&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--MJ8HIFP2--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/i/yhjsyif0eusgsmp9lxhu.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--MJ8HIFP2--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/i/yhjsyif0eusgsmp9lxhu.png" alt="Alt Text" width="800" height="499"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Onsen UI focuses on providing ui elements for hybrid apps and PWA's. The design of components looks very inspired by google material design with its own twist to it. I think could be a great library if you want to focus on mobile experience.&lt;/p&gt;

&lt;h2&gt;
  
  
  4.Kendo UI
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://www.telerik.com/kendo-angular-ui"&gt;https://www.telerik.com/kendo-angular-ui&lt;/a&gt;&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--BoUzPpxc--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/i/v1o1rg6alrbug23v4qcl.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--BoUzPpxc--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/i/v1o1rg6alrbug23v4qcl.png" alt="Alt Text" width="800" height="331"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Kendo UI is one of the largest components librarys that I have seen with a lot of focus put on data visualisation and developing data intensive UI's. If Kendo UI was a free service it would definitely deserve the first place on this list. &lt;/p&gt;

&lt;h2&gt;
  
  
  3.Semantic UI
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://semantic-ui.com/"&gt;https://semantic-ui.com/&lt;/a&gt;&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--rqsVVJkT--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/i/0ehmxxzmgpbxuljs3wmo.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--rqsVVJkT--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/i/0ehmxxzmgpbxuljs3wmo.png" alt="Alt Text" width="800" height="335"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;What is unique about Semantic UI is that its design resemble IOS design system. I think it is a fantastic library if you would like your app to blend in on your Iphone or Mac.&lt;/p&gt;

&lt;h2&gt;
  
  
  2.NGX bootstrap
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://valor-software.com/ngx-bootstrap/"&gt;https://valor-software.com/ngx-bootstrap/&lt;/a&gt;&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--0br8bJAu--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/i/bfzf1u93xs23m561s194.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--0br8bJAu--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/i/bfzf1u93xs23m561s194.png" alt="Alt Text" width="800" height="335"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Even though bootstrap is already quit an old component library I still think it is one of the most versatile and flexible libraries available out there. I must give my kudos to bootstrap for keeping up date with web technologies and still making it a solid choice in 2020.&lt;/p&gt;

&lt;h2&gt;
  
  
  1. Angular material
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://material.angular.io/"&gt;https://material.angular.io/&lt;/a&gt;&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--V0nfFVLK--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/i/804jrbx6rgfilk51pk57.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--V0nfFVLK--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/i/804jrbx6rgfilk51pk57.png" alt="Alt Text" width="800" height="354"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Angular material design is the library to pick if you want the most well developed and supported library for Angular. Why is it so? Angular and material design origins can be traced back to Google, therefor I can see how both of these ideas have developed together over the last decade. Outside of that Angular material is quit a refined UI library which I have used on several project and it have not let me down.&lt;/p&gt;

&lt;p&gt;Conclusion:&lt;br&gt;
There are a lot of different component libraries out there and you must pick the one that fits your project the best. In the end, for my project I picked Semantic UI just because I have never developed anything that looks like IOS.&lt;/p&gt;

&lt;p&gt;What is your experience with Angular ui libraries?&lt;/p&gt;

</description>
      <category>angular</category>
      <category>javascript</category>
      <category>css</category>
    </item>
  </channel>
</rss>
