<?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: Charu Malik</title>
    <description>The latest articles on DEV Community by Charu Malik (@charumalikcs).</description>
    <link>https://dev.to/charumalikcs</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%2F108511%2F4e268411-fdfc-4571-a362-aeaee53558e6.jpeg</url>
      <title>DEV Community: Charu Malik</title>
      <link>https://dev.to/charumalikcs</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/charumalikcs"/>
    <language>en</language>
    <item>
      <title>Angular Architecture: Overview and Concept</title>
      <dc:creator>Charu Malik</dc:creator>
      <pubDate>Thu, 22 Nov 2018 05:15:10 +0000</pubDate>
      <link>https://dev.to/charumalikcs/angular-architecture-overview-and-concept-n8f</link>
      <guid>https://dev.to/charumalikcs/angular-architecture-overview-and-concept-n8f</guid>
      <description>&lt;p&gt;Written in TypeScript, Angular implements core and additional functionality as a set of TypeScript libraries. These are imported to Angular apps. Basically, Angular is a framework as well as a platform for building client applications in HTML and TypeScript.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ff7uzoo5xp7tsbkg4l8pi.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ff7uzoo5xp7tsbkg4l8pi.png" alt="Angular Architecture" width="800" height="450"&gt;&lt;/a&gt;&lt;br&gt;
Angular is one of the leading frameworks preferred by web developers around the world. As such, it is a lucrative option to add to your programming arsenal. Here are some of the &lt;a href="https://hackr.io/tutorials/learn-angular" rel="noopener noreferrer"&gt;&lt;strong&gt;best Angular tutorials&lt;/strong&gt;&lt;/a&gt; to kickstart your Angular journey as well as to hone your extant Angular skills.&lt;br&gt;
The Angular architecture is not so difficult to comprehend. Especially, when you are acquainted with the various concepts upon which the same is based. Therefore, before summarizing it all up, let us first know the underlying concepts in detail.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The 7 Constituents of any Angular App&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;There are several parts of an Angular application. Any Angular app is made up of 7 essential constituents. These are:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Components&lt;/li&gt;
&lt;li&gt;Templates&lt;/li&gt;
&lt;li&gt;Metadata&lt;/li&gt;
&lt;li&gt;Data binding&lt;/li&gt;
&lt;li&gt;Directives&lt;/li&gt;
&lt;li&gt;Services
7.Dependency Injection a.k.a. DI&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;Components&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;It is mandatory for any Angular app to have at least one component. This is known as the &lt;a href="https://stackoverflow.com/questions/44577844/what-goes-in-your-root-component" rel="noopener noreferrer"&gt;root component&lt;/a&gt;. It connects a component hierarchy with the page DOM (Document Object Model). Regardless of the total number of components, an Angular app has, each component defines a class that has the application and data logic.&lt;br&gt;
It simply means that what role a component will play in an application depends on the class of that component. Each class is associated with an HTML template that defines (means, how it will project something on a screen) a view in the target environment.&lt;/p&gt;

&lt;p&gt;A class defined immediately below a &lt;a href="https://stackoverflow.com/questions/40983890/what-does-component-decorator-exactly-do" rel="noopener noreferrer"&gt;@Component () decorator&lt;/a&gt; is identified as a component. After which, the decorator provides the application the template (discussed below) and related component-specific metadata (also discussed below).&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What are Decorators?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Decorators are a distinct set of functions that modify JavaScript classes. Angular comes with a multitude of defined decorators, each of which attaches a specific kind of metadata to class in which they are used. It simply lets the system knows what those classes are and what should they do.&lt;/p&gt;

&lt;p&gt;Know decorators better with &lt;a href="https://toddmotto.com/angular-decorators" rel="noopener noreferrer"&gt;Todd Motto&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Templates&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;As the name suggests, these are elements of Angular applications that combine HTML with Angular markup, which are able to modify HTML elements before projecting them on the screen.&lt;br&gt;
Templates make use of pipes for improving the user experience. Pipes do so by transforming values for display. This simply means that pipes can be used to add a unit, like time and currency, as per to a user’s locale. Angular comes with a plethora of predefined pipes. However, it is also possible to define your own pipes. Here’s &lt;a href="https://alligator.io/angular/custom-pipes-angular/" rel="noopener noreferrer"&gt;how&lt;/a&gt;!&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Metadata&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;How the class will be processed depends entirely on metadata, as simple as that. A class decorator is used for attaching metadata to a class. Any class that has @Component class decorator attached to it, is known as the Component class.&lt;br&gt;
For providing the necessary information required by Angular to create the component, class Decorator makes use of configuration object. Some of the configuration options are directives, selector, and templateURL.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Data Binding&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Binding markup is responsible for connecting application data with the DOM. There are 2 types of data binding, namely:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Event Binding&lt;/strong&gt; – Allow the application to respond to user input in the target environment. It does so by updating application data&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Property Binding&lt;/strong&gt; – Allows interpolation of values, which are computed from application data into the HTML&lt;/p&gt;

&lt;p&gt;Changes in the DOM, like user choices, gets reflected in the program data. This is known as [two-way data binding]. It is achieved by means of a &lt;a href="https://angular.io/api/forms/NgModel" rel="noopener noreferrer"&gt;ngModel directive&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Directives&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Template directives are responsible for providing logic. Prior to a view is displayed, Angular evaluates the directives and resolves the binding syntax present in the template for modifying the DOM as well as the HTML elements. This is done in accordance with the program data and logic. There are 3 types of directives:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Attribute Directives&lt;/strong&gt; – Modify the behavior or appearance of a component, element, or another directive&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Components&lt;/strong&gt; – These are directives with a template&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Structural Directives&lt;/strong&gt; – Modify the DOM layout by adding or removing DOM elements&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Services&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;A service class is created when there is a need for some data or logic that is not associated with a specific view. Moreover, this data or logic requires to be shared across components.&lt;/p&gt;

&lt;p&gt;The service class definition immediately precedes the &lt;a href="https://blog.ninja-squad.com/2016/12/08/angular-injectable/" rel="noopener noreferrer"&gt;@Injectable () decorator&lt;/a&gt;. Its role is to provide that metadata, which allows the service to be injected into client components in the form of a dependency.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Dependency Injection (DI)&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Simply, DI enables keeping the component classes lean and efficient. This enables the classes to delegate tasks such as fetching data from the server, log directly to the console, and validate user input to services.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Other Important Concepts&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Besides the 7 fundamental parts of a typical Angular application, two more concepts are at play. These are Modules and Routing, each of which is described as follows:&lt;br&gt;
Modules&lt;/p&gt;

&lt;p&gt;Each Angular application has a root module, named AppModule. It provides the bootstrap mechanism for launching the application. Generally, an Angular application contains several functional modules.&lt;/p&gt;

&lt;p&gt;Though &lt;a href="https://angular.io/guide/ngmodules" rel="noopener noreferrer"&gt;NgModules&lt;/a&gt; differ from JavaScript (ES2015) modules, the former complement the latter. Nonetheless, NgModules allow import and export of functionality from and to, respectively, other NgModules. This is similar to JavaScript modules.&lt;br&gt;
The purpose of an NgModule is to declare the compilation context for a set of components. These components might belong to an application domain or a workflow. In order to form functional units, an NgModule can associate its components with related code, like services.&lt;/p&gt;

&lt;p&gt;In order to facilitate the development of complex applications, the code can be organized into distinct functional modules. Further, doing so assists in designing for reusability and benefitting from lazy loading that minimizes the time required for the code to load at startup of an application.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Routing&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Router NgModule helps in defining a navigation path between many applications states and view hierarchies in an Angular application. This special NgModule is modeled after the popular browser navigation conventions, which are:&lt;br&gt;
Enter some URL in the address bar of the browser to navigate to the corresponding page&lt;/p&gt;

&lt;p&gt;Clicking links on a webpage allows the browser to navigate to a new webpage&lt;br&gt;
Clicking on the back and forward buttons in the browser correspond to navigation backward and forward, in the respective order, through the browser history&lt;br&gt;
Instead of pages, the &lt;a href="https://angular.io/guide/router" rel="noopener noreferrer"&gt;router&lt;/a&gt; maps URL-like paths to views. As soon as a user performs some action, the router intercepts the browser’s behavior and responds by hiding or showing view hierarchies. How a router will interpret a link URL depends on the app’s view navigation rules and data state.&lt;/p&gt;

&lt;p&gt;Routers also make use of &lt;a href="https://en.wikipedia.org/wiki/Lazy_loading" rel="noopener noreferrer"&gt;lazy loading&lt;/a&gt;. This is done in case the router finds that a module that defines some particular functionality required by the current application state has not been loaded.&lt;/p&gt;

&lt;p&gt;The router logs activity in the browser history. This allows the back and forward buttons to work. Navigation to new views is done when the user clicks a button or selects something from a drop box. Or, it might be in response to some other action from a source.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.jvandemo.com/the-7-step-process-of-angular-router-navigation/" rel="noopener noreferrer"&gt;Navigation paths&lt;/a&gt; are associated with components for defining the navigation rules. A navigation path makes use of a URL-like syntax, which integrates with the program data. This is analogous to how a template syntax integrates views with the program data.&lt;/p&gt;

&lt;p&gt;Thereafter, program logic is applied to choose which views to show and which ones to hide as per the user input and defined access rules.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;How it all Works!&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;NgModules are the basic building blocks of any Angular application because they provide a compilation context for components. Any Angular application is defined by a set of NgModules. These NgModules collect related code into functional sets.&lt;br&gt;
An Angular app has at least a root module, which enables bootstrapping and several &lt;a href="https://angular.io/guide/feature-modules" rel="noopener noreferrer"&gt;feature modules&lt;/a&gt;. Components define views. These are sets of screen elements that are chosen and modified as per the program logic and data.&lt;/p&gt;

&lt;p&gt;Furthermore, components make use of services that provide specific functionality not directly related to views. Services providers are injected into components as dependencies. This makes the code efficient, modular, and reusable.&lt;/p&gt;

&lt;p&gt;Components as well services are classes. Decorators mark their type and provide metadata that decides how to use each of them. The metadata for some component class associates the same with a template, all for defining a view.&lt;/p&gt;

&lt;p&gt;A template combines normal HTML code with Angular directives as well as binding markup, which allow Angular to modify the HTML before rendering the same for display. The metadata for a service class offers the information that the Angular needs to provide to the components via DI.&lt;/p&gt;

&lt;p&gt;This sums up the concept of Angular architecture. To have a better understanding of the same, practice is the key. It will help you develop a sharp understanding of how Angular applications exactly work.&lt;/p&gt;

</description>
      <category>angular</category>
    </item>
    <item>
      <title>Top 10 Solidity Tutorials</title>
      <dc:creator>Charu Malik</dc:creator>
      <pubDate>Thu, 18 Oct 2018 06:16:12 +0000</pubDate>
      <link>https://dev.to/charumalikcs/top-10-solidity-tutorials-1495</link>
      <guid>https://dev.to/charumalikcs/top-10-solidity-tutorials-1495</guid>
      <description>&lt;p&gt;To begin with, Solidity is a contract-oriented programming language invented for writing smart contracts on various blockchain platforms. Well, you already knew that! Right! I mean, that’s why you’re here to know about the top 10 Solidity tutorials you can add to your learning list.&lt;/p&gt;

&lt;p&gt;Ethereum is one of the leading blockchain platforms at present. In fact, Solidity is especially invented for developing Ethereum-specific programs. Solidity is a powerful contract-oriented programming language, attracting new learners with each passing day.&lt;br&gt;
&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2Fme1v4eoc0yppma3xk0m9.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%2Fthepracticaldev.s3.amazonaws.com%2Fi%2Fme1v4eoc0yppma3xk0m9.png" alt="Solitidy Tutorial"&gt;&lt;/a&gt;&lt;br&gt;
You might be aware that cryptocurrency is gaining traction for some years right now. While the debate is equally divided on both sides, preferable and non-preferable, there are several blockchain platforms that are rising in the meantime.&lt;br&gt;
One such is Ethereum. In fact, the Ethereum organization has a good portion of the blockchain decentralized application market to them. New developers interested in charting the blockchain territory need to be able to build decentralized applications, also known as Dapps.&lt;/p&gt;

&lt;p&gt;For doing so, they need to first learn Solidity. Although it is much similar to javascript, like any other programming language Solidity requires understanding combined with experience.&lt;/p&gt;

&lt;p&gt;There are several tutorials available over the Internet, but, obviously not each of them are great. That’s why we are here to help you sort the mess and go through the best ones of them.&lt;/p&gt;

&lt;p&gt;So, here are top 10 Solidity tutorials you can go for enhancing your smart contract writing skill with Solidity and do much more:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Solidity Development: Creating our First Smart Contract by Nikita Fedosenko&lt;/strong&gt;&lt;br&gt;
Go to– &lt;a href="https://medium.com/coinmonks/solidity-development-creating-our-first-smart-contract-54943b47d7f3" rel="noopener noreferrer"&gt;https://medium.com/coinmonks/solidity-development-creating-our-first-smart-contract-54943b47d7f3&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Excited to write your very first smart contract? Well, this tutorial from Nikita Fedosenko will allow you to write a smart contract in the form of a crypto game. The tutorial gives a step by step guide on working your way towards writing the right Solidity code. Moreover, all terms are well explained in the smallish tutorial.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;How to Learn Solidity: The Ultimate Ethereum Coding Tutorial By Ryan Molecke&lt;/strong&gt;&lt;br&gt;
Go to – &lt;a href="https://blockgeeks.com/guides/solidity/" rel="noopener noreferrer"&gt;https://blockgeeks.com/guides/solidity/&lt;/a&gt;&lt;br&gt;
In addition to imparting important information on Solidity, this tutorial will explain about Ethereum. The tutorial focuses on how you can use Solidity for the Ethereum platform. The tutorial combines setting up environment and writing first Solidity smart script into one adding important supplementary information regarding Solidity as well as Ethereum.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Linked Lists in Solidity by Austin Thomas Griffith&lt;/strong&gt;&lt;br&gt;
Go to – &lt;a href="https://medium.com/coinmonks/linked-lists-in-solidity-cfd967af389b" rel="noopener noreferrer"&gt;https://medium.com/coinmonks/linked-lists-in-solidity-cfd967af389b&lt;/a&gt;&lt;br&gt;
No matter what programming language, the concept of linked lists has always been a priority. This is also true for Solidity. The Linked Lists in Solidity tutorial from Austin Thomas Griffith succeeds in simplifying the concept as well as illustrating it with opportune instances. The tutorial answers everything about the Linked Lists, from why you should use it to how you should do it in the right way.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Learning Solidity: Tutorial 8 Debugging Solidity Using Remix by What’s Solidity&lt;/strong&gt;&lt;br&gt;
Go to – &lt;a href="https://www.youtube.com/watch?v=7z52hP26MFs&amp;amp;list=PL16WqdAj66SCOdL6XIFbke-XQg2GW_Avg&amp;amp;index=8" rel="noopener noreferrer"&gt;https://www.youtube.com/watch?v=7z52hP26MFs&amp;amp;list=PL16WqdAj66SCOdL6XIFbke-XQg2GW_Avg&amp;amp;index=8&lt;/a&gt;&lt;br&gt;
Remix is an open source tool that helps with writing smart contracts using Solidity right away from the browser. The tutorial tells you how to use debugging features offered by Remix. The 10-and-a-half minutes long tutorial is simple and full of examples to make it easier to learn. Furthermore, What’s Solidity offers a number of other free Solidity tutorials on YouTube.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Solidity Variable and Types (Smart Contract Tutorial) by DesignCourse&lt;/strong&gt;&lt;br&gt;
Go to– &lt;a href="https://www.youtube.com/watch?v=QdG9xsOolJ4" rel="noopener noreferrer"&gt;https://www.youtube.com/watch?v=QdG9xsOolJ4&lt;/a&gt;&lt;br&gt;
No matter what programming language you need to learn and master, having a good understanding about the variables and their types are essential. To help you understand and appreciate variable and types available in Solidity, this tutorial from DesignCourse is an opportune option. The tutorial is a little over 14 minutes and illustrate the aforementioned with several instances.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Learning Solidity: Tutorial 27 Getting Started with browser development using Metamask by What’s Solidity&lt;/strong&gt;&lt;br&gt;
Go to– &lt;a href="https://www.youtube.com/watch?v=eog2eYrPEu0" rel="noopener noreferrer"&gt;https://www.youtube.com/watch?v=eog2eYrPEu0&lt;/a&gt;&lt;br&gt;
Metamask is a browser-based Solidity editor, which is regarded to be one of the best available out there. A good number of Solidity developers rely on Metamask for development of Solidity-based programs. With this tutorial from What’s Solidity you’ll be able start beginning browser development with Metamask right away. The almost 25 minutes-long tutorial sheds light on some important concepts related to browser development and Metamask.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Introduction to Solidity: Creating a data contract [Part I] by Komhar&lt;/strong&gt;&lt;br&gt;
Go to – &lt;a href="https://blockgeeks.com/introduction-to-solidity-part-1/" rel="noopener noreferrer"&gt;https://blockgeeks.com/introduction-to-solidity-part-1/&lt;/a&gt;&lt;br&gt;
This is perhaps one of the best tutorials to get started with Solidity. The text-only tutorial covers all the basics of Solidity, including environment creation and setting up. Other than offering an illuminating insight to Solidity, the tutorial offers a precise and clear demonstration of creating a data contract.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Ethereum Builder’s Guide&lt;/strong&gt;&lt;br&gt;
Go to – &lt;a href="https://ethereumbuilders.gitbooks.io/guide/content/en/solidity_tutorials.html" rel="noopener noreferrer"&gt;https://ethereumbuilders.gitbooks.io/guide/content/en/solidity_tutorials.html&lt;/a&gt;&lt;br&gt;
One of the most comprehensive Solidity all-text tutorials available on the Internet. This tutorial not only helps you to set up Solidity, but to install Ethereum client on MacOS, Ubuntu, and Windows. The tutorial further explores Ethereum APIs and Smart Contracts.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The basics of Solidity&lt;/strong&gt;&lt;br&gt;
Go to – &lt;a href="https://ethereumdev.io/" rel="noopener noreferrer"&gt;https://ethereumdev.io/&lt;/a&gt;&lt;br&gt;
Straight from the lab, The basics of Solidity is a multi-faceted tutorial that will help you with a wide variety of concepts, including the Ethereum Wallet and Lifecycle of a contract. Furthermore, the tutorial covers the concept of writing decentralized applications too. For comprehending the tutorial you need to have basic understanding as well as experience working with Solidity.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Lesson 1: Making the Zombie Factory by Cryptozombies&lt;/strong&gt;&lt;br&gt;
Go to – &lt;a href="https://cryptozombies.io/en/lesson/1" rel="noopener noreferrer"&gt;https://cryptozombies.io/en/lesson/1&lt;/a&gt;&lt;br&gt;
This is one of the most amazing Solidity tutorials available on the Internet. Cryptozombies are one of the leading tutors when it comes to game making using Solidity. With this tutorial, which also serves as the first step in the much bigger Cryptozombie game making tutorial, lets you understand various Solidity concepts with accurate demonstrations and illustrations.&lt;/p&gt;

&lt;p&gt;Simply go through the tutorials and you’ll be able to appreciate Solidity. These tutorials are great not only for newcomers but also for developers with a good experience with Solidity.&lt;br&gt;
However, like any other programming language you keep getting better with the more time you invest and the more work you do. So, it’s important to keep going.&lt;br&gt;
If you are confused with so many suggestions above, you can find the best &lt;a href="https://hackr.io/tutorials/learn-solidity" rel="noopener noreferrer"&gt;solidity tutorial&lt;/a&gt; recommended by the learners on Hackr.io.&lt;/p&gt;

&lt;p&gt;Happy Solidity Learning!&lt;/p&gt;

</description>
      <category>solidity</category>
    </item>
  </channel>
</rss>
