Guideline to Become Responsible Senior Developer

Have you realized writing code that is not production ready is not good practice? Have you seen code which violates the DRY principle? Did you notice specs/unit-test in your code base which is missing important specs and has tests for the things which are not important with respect to a given PBI or task required ?

In this article, I will list out all the best practices that a developer should follow to become a responsible senior developer.

What do I mean by Responsible developer?

A responsible developer has following attributes:

  • While working if you learned something, you document them and share with your collogues in code walk-through ceremony.
  • While you are working on project and you find some code refectory that you could do to improve code base quality. You will do that and inform your senior about that.
  • Whenever, your senior explains you something important related to project or any best-practice. You should note that and next time when you participate in meeting make sure you recollect the previous learning and apply it in future discussions. Example: In your angular project, If you have been told that you should never mutate model state in component class. You must ask question why? Next you should note this point and remember. Next time during modeling session, if someone propose solution where they are trying to mutate model in component you should bring this point and correct them.

What is a modeling session for developers?

After sprint grooming and planning is done. Developers collaborate together and discuss high level solution/approach to the given user story. This session is called modeling session. In the modeling session developers discuss the given Business User Acceptance Requirements. They come up with an optimal approach to solve the problems by following the clean code principle, best practices, their industry practices and patterns, design philosophy like DDD (Domain Driven Design), SOA (Service Oriented Architecture) etc. Next they divide the solutions into small tasks, distribute among them and go to their respective work stations and write the code, write the specs/unit-test and deploy to QA.

What do Architects expect from Senior Developers?

  • If you are given a bug you should be able to fix it independently.
  • You should be able to model independently and come up with an approach that meets all the requirements of the given task or PBI.
  • When you show your approach to the architect it should full-fill all the modeling check-list.
  • If you are given a task you should be able to finish independently.
  • You should discuss your approach with architects before you start writing code.
  • Keep showing your work frequently to get feedback and prepare to change your approach as you go. Make sure you develop with TDD.
  • If the architect is not available or in meetings then keep posting your screenshots in the AOF group. Architects will review as they get time. You will not wait to get feedback and continue your work since you already discussed the approach. However, be prepared to change your approach or code as per the Architect Feedback.

I would recommend creating a chat group called Architecture Oversight Feedback group where developers post their source code pictures as they develop if architects are not available to check your source code.

How to improve on modeling and solve problems?

First thing is You should learn fundamental building blocks of your project that you have been assigned. Then I will explain you what are the check-list you can follow while doing modeling. I will also show you my approach that I follow to solve problems to avoid architectural mistakes. Finally, you will learn in your project what are the files you should unit-test them.

Let’s understand our angular project architecture.

Angular Project Architecture

According to me, In a typical angular project you will have the following things:

  • Model is a data-structure that has public properties. Do not put any logic keep this as datastructure class.
  • Store is the home for the model and it has all the queries made on the model.
    Example: ClassificationSetStore has a single item as the current classification set. If the classification set has levels which are required or is a query in the store,
  • Components have 2 types: parent, child. All use cases are in the parent component. The rendering concerns are in the child component.
  • ApiService should call an angular HTTP client. It should not do any logic.
  • Service has business logic, makes HTTP calls using ApiService and updates the model if required. Example: use apiService to post HTTP to create items. On success get the new id, version from the output and update the model with the new version or id. If you are following NgRX then your effect will make HTTP calls and reducer will update store on action.

⚠️ Note: This project structure may differ as per your company’s project architecture.

While Modeling What guideline I should follow?

You have been assigned a PBI or task where you have to come up with a solution and also write production code. First step is to model your solution and find the approach. Discuss your approach with senior After that you can start coding.

Overall Modeling Strategy

Read below before you are solving any problem for a given task or story.

  1. Follow the DRY principle, check if you are duplicating any logic if yes then justify. Try to avoid it. If you can not justify and you have to put a duplicate then talk to the architect. Don’t avoid DRY because it may cause many deep hidden design/technical issues.
  2. Follow Separation of Concerns, check if the logic is spread across many places already or in your design then put them all in one place. And manage the related concerns in one place.
  3. Following the SOLID principle strictly, this is mandatory.
  4. Be consistent, check existing design in your project most of the time you will be solving a problem which is already solved. Therefore, you should not waste time to re-invent the wheels. Just follow the same design and structure that you have in your project. It will save your and team time. This is most important principle to remember always be consistent in your project.

Later, I will give you some examples about DRY and Separation of Concerns principles.

Use below guidelines while designing/solving Angular Problems

Read below before you are going to decide your solution in Angular project.

  1. Models can be directly updated from HTML since we are doing 2 way-data binding and template form. Model gets updated directly from HTML.
  2. Models can’t be updated directly from component methods. You must send a message to update the model. Write a service to listen to messages and update models.
  3. Queries for models are in the store file. Components should not write it’s own logic to query the model for any property.
  4. Component HTML must be divided into parent and child. Child will get input from the parent using the @Input property defined in the Child component. Parents will receive a notification when the child will emit using the @Output EventEmitter property. Example: Classification Set has levels. The LevelsComponent is a child component that gets the levels to display from the ClassificationSetComponent. In order to delete a level, LevelsComponent will emit a delete with the level Id. Then ClassificationSetComponent will implement the deleteLevel method invoked on delete.
  5. The Child Component should only get input and emit the output event. It should not have any logic to decide whether to show a button or not. This logic should be in parent.
  6. If you have parent and child components, make sure all use-case implementations are in the Parent component only. So in the previous example ClassificationSetComponent will have add level, delete level, create classification set etc.

What is the Smart Component?

Most of the Parent components are modeled as Smart components. Below are the characteristics of Smart Components:

  • It should have all CRUD use cases for that component.
  • It can send command to update a model which service can listen and call api to update model.
  • It can make a query to store and create data structures with the decision whether to show a delete button in the child component or not.
  • It can query stores to get models.
  • It should pass all the data required for its child component.
  • It should implement the @Output events coming from the child component.

What is the Presentation Component?

Child component which is only responsible to render data is called Presentation or Dumb Component. Below are the characteristics of Smart Components:

  • It should take input data and emit events using angular @Output.
  • It decides how to render a component. Should I use a bootstrap table or angular material table or jQuery table etc. What would be the color of the text etc.
  • It will emit the output anytime it has to change the model.

Once your design or modeling is done please read the checklist again and make sure your discovered approach is not violating any of these points. If you need help bring your architects in the room and ask questions.

Example: Model Manage Employee Angular Components 

Requirements:

Design Angular components. You should be able to add Employee, show the added employee in the table and delete employees.

Solutions:

EmployeeList Component is Dumb it takes list of employees render in table. It emits a delete message when the user clicks on the delete button.

The ManageEmployee Component will read the employee list from store and it will implement delete use-case where it sends a message to delete employees.

With above knowledge you should be good to solve any angular problems. Now if you started writing code. You must start writing unit test first, then write corresponding production code. That is what we call Test Driven Development TDD. Lets understand what are the files you should test and what best practice you should follow.

Follow TDD (Test Driven Development) strictly

Write the test first before you write production code. That is called TDD ( Test Driven Development ). In code walkthrough ceremony, show you spec first before showing your code. If you write bad spec, it may cause build failure and slow down you and other people work as well.

Do not use new Date() in your spec models. Rather use predictive time or create IProvideDate service and use it in your code base to provide datetime value. This way you can easily mock your date time.

Mock any side-effects that can happen in your spec. Below are some list:

  • Date time
  • Set Timeout
  • Web API calls
  • Alert or Confirm

While Writing Specs/Unit-Tests

You need to write specs for the following things:

  1. Service
  2. Component
  3. Api Service
  4. Store

Testing Angular Service

Angular service is where I will write business logic and web api calls. So we must assert all the mutation done on model and any api call happened with correct payload and URL.

You must assert the following conditions:

  • It is calling apiService with the correct parameters.
  • It updates the model correctly ( if apiService output is a new Id or version then check if the model is updated with the same.)

Testing Angular Components

You must test your component when it is created without model data.  Another scenario with model data.

Testing Smart Components

With empty Model:

  • It is sending the correct command with required data.
  • It should create correct data structure to pass child component

With populated model retrieved from server test below:

  • It should send correct commands by checking data coming from the server.

Testing Presentation Component

  • Check correct outputs are emitted
  • Check rendered HTML ( use JEST snapshot feature ) Presentation component is responsible for rendering the exact same HTML every-time you give the same input data. So you should snap-shot the HTML rendered for a given input in your specs and always assert if that is not changed.

Testing Store

  • Test any complex query if it has one.

Testing Api Service

  • Make sure you pass correct parameters to the angular HttpClient service.

Testing Models

Mostly you will try to keep your models anemic in client side. Rather write service and put business logic over there. So I would advise not to write any specs on models.

Testing DateTime

If your model is use property with date time type. Then never-ever use new Date() to assign the value. Always create a dedicated service to provide you new Date. So that you can always mock that service while testing. You must make your date predictable every time so that It does not break in build machine.

Create a SystemDateTimeProvider class and use this class in your service to create model with date time.

import { Injectable } from '@angular/core'

export abstract class DateTimeProvider {
  abstract now(): number
  abstract new(): Date
}

@Injectable()
export class SystemDateTimeProvider extends DateTimeProvider {
  now(): number {
    return Date.now()
  }

  new(): Date {
    return new Date()
  }
}

In your spec you can now easily mock the new() method and return some constant date that will always remain same and never break in build machine or some other person machine.

Modeling Examples

Practical Modeling Example 1

Requirement:

When approval is given, then hide the save button and make all widgets read only.

Solution Team came up with was:

IT Ops had an Item Editor and we had a Save Widget button over there. We wanted to hide the button when

Approval is given. We added the logic to subscribe to the Approval Received event there to hide the button.

In Every widget we also added the same logic to subscribe to the Approval Received event and apply read-only lock to all them.

Check what violation we are doing in the above example:

So in the above example we are violating both the DRY and Separation of Concerns principle.

  1. Subscribe Approval Received and lock widget logic is in each and every widget, which is a violation of the DRY principle. The WidgetStack component can only subscribe to the ApprovalReceived event and pass an input value to all the widgets to lock them.
  2. We also violated separation of concern IT Ops is not supposed to listen to business events and change the button that belongs to widget service. Better solution is to move the button inside the widget stack and let the widget stack hide and show the button.

Practical Modeling Example 2

Requirement:

Create a Classification Set which will have definitions and levels. Users can create classification sets, add level, delete level, and the delete button should be shown to the user defined levels only.

Solution Team came up with was:

Created one component which does

  • Render the definition
  • Implement create definition
  • Updating the model in component for every time different type is selected, sections have to change
  • Render all system defined levels
  • Implement delete levels

Check what violation we are doing in the above example:

One component is doing both rendering and implementing logic to update the model.

Create a Classification Set as a smart component.

  • Implement create definition ( and send message to create so not modify model here)
  • Implement delete level ( and send message to delete level so not modify model here)
  • Create a data structure with the boolean value to know which level can be deleted based on the type of the level. ( user defined level can only be deleted )

Create Classification Levels as a presentation component.

  • Get the list of levels to display with the boolean to show the delete button or not.
  • Render the list in angular material
  • On click of delete output the delete with the level index or level Id.

Create Classification Definition as a presentation component.

  • Get the data to display
  • Add template form in html with validations
  • Output create when the user wants to create a new definition

Conclusion

Let me know if you think any further improvement we can do to make yourself a better responsible senior developer.


Thanks for reading my article till end. I hope you learned something special today. If you enjoyed this article then please share to your friends and if you have suggestions or thoughts to share with me then please write in the comment box.

💖 Say 👋 to me!
Rupesh Tiwari
Founder of Fullstack Master
Email: rupesh.tiwari.info@gmail.com
Website: RupeshTiwari.com

Recent Posts

Mandatory Algorithms for Coding Interview

3 minute read

Basic algorithms that you must know if you want to crack your coding interview. In case you are starting to prepare for coding practice then make sure you...

How to improve Reliability in the cloud?

9 minute read

Did you get a phone call from your customer saying they want to improve their application reliability while you move their workload to the cloud? If yes t...

What is EBIT and EBITDA in Finance?

4 minute read

EBITDA and EBIT is a very fundamental financial term that is nowadays mostly considered during the cloud adoption phase for IT companies. If your company ...

Introduction to CAP Theorem

5 minute read

Are you planning to design your next advanced distributed architecture? Make sure you are aware of the concepts such as high availability, consistency and...

What is Azure Virtual Machine Scale Sets

3 minute read

Now a days distributed architecture is common. We deploy our services into many different servers to scale them up and meet our demand. However, managing ...

Introduction of Managed Identities

3 minute read

Do you have situations where a process is trying to use your virtual machine in the cloud and you want to protect and control the access? Do you want to u...

Introduction to MSAL

1 minute read

If you have any project that you want to integrate with Azure Active Directory and secure your app. Then you must try using Microsoft Authentication Libra...

Site Recovery Strategy in Azure

2 minute read

Learn the failover and failback stages in Site Recovery on Azure. Learn Business Continuity and Disaster Recovery (BCDR) strategy in Azure.

Azure Active Directory Basics

3 minute read

Securing your workload and datacenter over the cloud is very challenging. You want your resources to be protected by both machines and users. Azure Active...

Where to Store Application Data in Azure

4 minute read

Data is very essential and now a days data is everything. So you have application in cloud and want to explore which type of data where to store in Azure....

What to use to Run applications in Azure

12 minute read

Learn what service from Azure you should use while creating your application in Azure. This article has quick short answer for when to use what in Azure s...

Virtualization Basics with VMware

9 minute read

Virtualization is the single concept that now-a-days cloud service providers are using at massive scale and delivering IT technologies such as storage, co...

Azure Network Watcher Basics

3 minute read

Azure Network Watcher is a monitoring service with lots of other important services for network. Most network diagnostics issues can be detected and analy...

Symmetric and Asymmetric Encryption Basics

1 minute read

Why do you care about encryption strategies? Well if you are planning to become system administrator or solution architect then you must know how you woul...

Getting Started with Monorepo with Nx Nrwl

31 minute read

Do you have a lot of JavaScript projects using GitHub repositories? How are you managing dependencies among those projects? Developers might be struggling...

Learn how to secure your Network

1 minute read

If you want to become Cloud Security Architect you must have basics of Networking. This article will discuss all fundamental concepts of networking. Learn...

Azure Storage Account Basics

5 minute read

When you want to move your business to cloud the major thing to consider is storage. What kind of data you can store? What is the pricing? How can you opt...

Azure Monitoring Basics

3 minute read

Azure Monitor is the central service that can help you to improve performance of your application and dependencies. In this article I will go through the ...

Definitions that you should know

16 minute read

When I started learning Azure being a webdev and software architect background. I came across many IT lingo, jargons, abbrebiations that I did know about ...

Configuring Azure Blob Storage

5 minute read

Blob Storage is helpful to upload images, videos, documents, pdfs etc. over the Azure cloud. In order to create new Azure Blob Storage. You must need to c...

Azure Routing and Peering Basics

5 minute read

Azure architects must aware of fundamentals of routing and peering. In this article we will see fundamentals as well as we will see some examples of routi...

Creating Azure Storage Account

8 minute read

Azure Storage account is a resource in Azure. Storage Account will give your group of services like Blob Service, File Service, Table Service, Queue Servi...

Azure VNet Basics

3 minute read

Azure VNet is the fundamental unit of networking in Azure Cloud. You must know the basics of VNet. In this article we will explore Azure VNet.

Azure Storage Replications Basics

less than 1 minute read

LRS (locally redundant storage) ZRS (zone redundant storage) GRS (geographically redundant storage) RA GRS (read-access geographically redundant storage) GZR...

Monitoring Containers with Azure Monitor

4 minute read

Did you know you can containerize your asp.net MVC with docker application and upload to Azure Container Registry and host them using Azure Kubernetes Clu...

TCP vs Http difference

2 minute read

TCP: is a transport-layer protocol, and HTTP is an application-layer protocol that runs over TCP.

Visualize Azure Monitor Logs and Metrics

2 minute read

Azure portal is great while visualizing Azure log and metrics. You can see the pie chart, graph for resources like VMs etc. You can also create your custo...

Creating ngShow directive in Angular 11

2 minute read

Are you wondering how to use ng-show in Angular 11? There is a way to achieve it by using [hidden]= “false”. However, if you are migrating large angularjs...

Azure Cost Management & Billing Basics

2 minute read

For entire azure resources even across subscriptions if you want to know about your billing, invoice, budget, alerts, recommendations then you must go to ...

Azure Advisor Basics

2 minute read

Azure Advisor collects recommendations from all of the services within your subscription and display them in a single page. Example you can see recommenda...

Azure Security Center Basics

3 minute read

Azure Security Center is the base infrastructure service to collect logs analyze them and generate tailored recommendations. Learn how can you review and ...

Configuring Azure Diagnostics Log

4 minute read

​This article will teach you t​he how to configure and implement diagnostics log for Azure resources. This article will help you to prepare for az-303: Mi...

Webhook for Beginners

4 minute read

Webbooks are basically user defined HTTP callbacks which are triggered by specific events. Whenever that trigger event occurs in the source site, the webh...

Topologies Azure Service Bus

7 minute read

Azure Service Bus is a transport layer comprises of messaging entities. Learn what is Topology in messaging world and how N-Service bus makes life easy by...

How to Install Scoop on windows

3 minute read

Do you love open-source? Do you want to make your PowerShell really powerful? Consider installing scoop and make your life simple! 😄 Learn how can scoop h...

How to Install Scoop on windows

3 minute read

Do you love open-source? Do you want to make your PowerShell really powerful? Consider installing scoop and make your life simple! 😄 Learn how can scoop h...

Binary Search Concept

5 minute read

Do you want to understand binary search? Read this article, I have discussed binary search problems in JavaScript.

Discuss Azure Fundamental Concepts

5 minute read

Did you know your company can take advantage of using many Azure cloud computing which will help your company to reduce its overall computing costs? Did y...

Caching Dependencies on GitHub Workflows

5 minute read

While building/compiling angular or node application on Local Build Machine or Azure Pipelines or GitHub Workflows or Netflix or Heroku. The main issue we...

Azure Information Protection Strategy

2 minute read

Azure Information Protection (AIP) is a cloud-based solution that enables organizations to classify and protect documents and emails by applying labels.

Azure Load Balancer Basics

3 minute read

Azure Load Balancer evenly distributes incoming network traffic load among backend resources or servers. It works at layer 4 (Transport Layer) of OSI (Ope...

Azure Information Protection Strategy

2 minute read

Azure Information Protection (AIP) is a cloud-based solution that enables organizations to classify and protect documents and emails by applying labels.

Azure Developer Associate Exam Basics

2 minute read

In order to become Azure Developer Associate you must pass AZ-204 exam. If you want to become Cloud Solution Architect then consider giving Microsoft AZ-2...

Introduction to Azure Fundamentals

12 minute read

Can you describe basic concepts of cloud computing? Is Azure right solution for your business needs? How can you create your Azure subscription today? I w...

PowerShell Random Notes for You!

4 minute read

Learn some important built-in very helpful methods in Powershell. It could be a quick note for you so don’t forget to bookmark this article! 🥇

Hosting N-Service Bus in Azure Functions

5 minute read

Have you tried to host NServiceBus within Azure Functions? In this article I will teach you how can you host your first NServiceBus project within Azure F...

What is Subnet and Why Subnet is Required?

5 minute read

When I was learning Azure Infrastructure, I had big question in my mind what is subnet and why do I need Subnet in my network? If you share my question th...

What is Subnet and Why Subnet is Required?

3 minute read

When I was learning Azure Infrastructure, I had big question in my mind what is subnet and why do I need Subnet in my network? If you share my question th...

CRUD with Cosmos DB using Dotnet Core SDK

9 minute read

Do you want to create dotnet csharp console app and write CRUD ( Create, Read, Update and Delete ) operations over Azure Cosmos DB noSQL data? Read this a...

What is Azure Resource Manager or ARM?

5 minute read

Did you know you can create and deploy Azure resources using JSON template? Did you also know that you can enforce business compliances on your resources?...

Make Your PowerShell Posh & Colorful

3 minute read

Do you want to make your PowerShell prompt colorful? Please read this article to make your PowerShell Terminal colorful and Git supported. I will use oh-m...

What is Azure Resource Manager or ARM?

5 minute read

Did you know you can create and deploy Azure resources using JSON template? Did you also know that you can enforce business compliances on your resources?...

Azure Sandbox Free Account for Learning

2 minute read

Do you want to learn Azure and afraid of being charged your credit card or getting big bills? Learn this article where I will explain how you can get free...

Isolated Process Models for Workers

1 minute read

.Net running on-process till .Net Core 3.1 & .Net isolated workers are coming on .Net 6 onwards & you can deploy Azure Function Apps in production...

Azure Functions Basics

9 minute read

Are you beginner on Azure Functions and want to learn the basics of Azure Functions? Did you know you can create Azure Functions and publish to Azure usin...

Azure Compute Resources

2 minute read

Do You want to start IT Business and you don’t have equipments? Don’t worry Azure is the solution for your business. By using Azure Compute Resources you ...

Azure Cosmos DB Basics

12 minute read

Are you beginner on Azure Cosmos DB and want to know what exactly is Cosmos DB? Then read this article. Azure Cosmos DB is a fully managed NoSQL database ...

Azure Update Domain vs Fault Domain

5 minute read

Do you know in Azure Data Center you can protect your server against regular server software maintenance outages? You can also protect your VMs on Azure a...

Angular Service as PubSub Message Handler

4 minute read

Convert Angular service to a Message Handler. Do you want to organize your Angular code base as Service Oriented Architecture (SOA) way. And you want to c...

Introduction of Azure Data Center

5 minute read

Did you know how your servers are placed in Azure Data-Center? Do you understand how Azure Data Center protects your servers against software or hardware ...

Azure DevOps Server 2020 Do’s & Don’t

4 minute read

Did you know Azure DevOps Services and Azure DevOps Server are different entities? I have learned lessons while working on Azure DevOps Server 2020 on-pre...

Scheduling Jekyll Post on GitHub Pages

2 minute read

Do you want to schedule your Jekyll blog post to be published on GitHub Pages on future date time? Then read this article. Introduction Jekyll static s...

Authenticating GIT on Development Box

1 minute read

Are you using windows machine for local development? Do you have Azure DevOp’s server git repo and want to connect from local box? Then read this article....

Running Angular 10 in Internet Explorer 11

2 minute read

Are you worried that new angular 10 project is not running in “IE11” even though you enable the given polyfills by angular team? Then please read this art...

Integrating CkEditor In Nx Monorepo

12 minute read

So you want to learn how you will integrate CkEditor v5 in Nx Monorepo. Do you also want to learn how to create custom plugin inside CkEditor v5? Then I w...

Updating Azure CI Pipeline Build Number

1 minute read

Did you have requirement to update your Angular CI build number as your new Package.json version number and Branch name? Well this is a good practice to d...

Publishing Nx Monorepo Angular App to NPM

3 minute read

Do you want to publish your nx monorepo app to npmjs.org? In this article, I will explain how can u publish your app to npmjs.org. Introduction In my m...

Creating New App with Nx Console

3 minute read

Do you want to create a new application on my nx monorepo work-space? Also do want to make sure that you should be able to build and test your application...

Branch protection in Azure DevOps

6 minute read

Protecting Master Branch from Bad Pull Requests is big challenge now a days while working in a team. You are working on git with distributed architecture. Wh...

Caching Azure CI Pipeline Artifacts

3 minute read

If you are following agile then continuous integration is must. I have setup CI/CD in Azure DevOps and I personally found my Angular build is taking lot of t...

Introduction to YAML

2 minute read

Yaml files are used in Azure Pipelines for build and release definition. Yaml files are also used in GitHub build and release. Yaml is designed to be clean a...

Type of Authentication - JWT Authentication

less than 1 minute read

As we already discussed rest of the authentication types in our previous video tutorials, JWT based authentication is best among all. It is world famous and ...

Use case vs user story

1 minute read

What is User Story A User Story is a note that captures what a user does or needs to do as part of her work. Each User Story consists of a short descripti...

Given When Then in Angular

1 minute read

In this video session Given When Then | Angular | BDD, we will teach you how to write unit tests in more readable fashion. Like Given When Then Style using J...

Add Item To Cart Use case – RxJS

1 minute read

In our previous demo session Creating Store Using RxJS | Angular | Demo we have written base code for our Cart Store. Now we will add methods to it, based on...

Creating Store Using RxJS in Angular - Demo

1 minute read

In this video session Creating Store Using RxJS | Angular | Demo we will create our Cart store and it is nothing but just a wrapper on top of state, so it be...

Handling Server Side HTTP Error

1 minute read

As we discussed in our previous video session Designing Shopping Page Using Angular Material Grid And Card | 0009-26, our web app is now growing as we are ad...

how to create mock object in jasmine

less than 1 minute read

While writing test in jasmine you will encounter a situation where you want to create a mock object & also you want to spy it's property. Jasmine cre...

Saving User data in MongoDB - Demo

1 minute read

In this video session Saving User To MongoDB | Mongoose | Demo | 0009-22 we will explain how to save user data in mongo db and how to validate user at server...

Up coming Full Stack Master Courses

less than 1 minute read

[advanced_iframe securitykey=”” src=”https://gumroad.com/fullstackmaster/p/up-coming-full-stack-master-courses” id=”” name=”” width=”100%” height=”1500px” m...

Integrating Restful API in Angular App - Demo

less than 1 minute read

In our previous demos session we have created our server and restful API and tested API with postman also. Next we will try to integrate this Restful API in ...

Products page & Lazy Loaded Module - Demo

less than 1 minute read

In continuity of our demo session Creating Products Module | Lazy loaded module | Angular | 0009-09 we will see how to create Products page for our app keepi...

Introduction to angular material - Demo

1 minute read

As you begin learning of coding basics, one important thing which makes your learning process easier and practical is availability of code. Most of the onlin...

An Introduction to MEAN Stack

1 minute read

MEAN is an acronym for MongoDB, ExpressJS, AngularJS and Node.js. From client to server to database, MEAN is full stack JavaScript framework, ideal for build...

This Keyword - Essential JavaScript Concepts

1 minute read

‘This’ keyword is widely used in almost all programming languages. Like in some programming languages This variable points to instance of an object or class....

Use Existing provider practical example

1 minute read

As we know UseExisting provider configures the Injector to return a value of another UseExisting token. Through this provider, we can use already existing in...

What is multi True provider in angular?

1 minute read

Multi: true means that one provider token provides an array of elements. Using multi: true we tell Angular that the provider is a multi provider. This is use...

Types of Providers -UseFactory Provider

1 minute read

UseFactory provider configures the Injector to return a value by invoking a UseFactory function. It is basically a function which follows factory design patt...

Types of Providers -UseValue Provider

1 minute read

UseValue provider configures the Injector to return a value for a token. It comes in that category of providers where we do not have unique thing to identify...

Types of Providers -UseExisting Provider

1 minute read

UseExisting provider configures the Injector to return a value of another UseExisting token. Through this provider, we can use already existing instance or o...

Types of Providers -UseClass Provider

1 minute read

Class Provider configures the Injector to return an instance of useClass for a token. It is similar to type provider but it has different way of providing co...

What’s new in Angular 8.0?

2 minute read

Angular 8.0.0 is here! Is there any breaking changes in Angular 8? No, Angular 8 is released now! As Angular team had promised they have not introduced break...

Unit Testing RxJS with Marble Diagrams

1 minute read

Unit Testing RxJS with Marble Diagrams Welcome to Unit Testing RxJS with Marble Diagrams course excercise material portal. Please watch Uni...

What is the Scope of Dependency in Angular?

1 minute read

Scope of Dependency in Angular is very important concept to understand for a full stack developer. This is primarily asked question by interviewer in many di...

How Injectors are inherited in angular?

less than 1 minute read

As we know, one must configure an injector with a provider, or it won't know how to create the dependency. The most obvious way for an injector to create an ...

What is Injection Token and Where to use it?

less than 1 minute read

We cannot simply ignore the shortcomings like Interface, Array (bunch of objects) cannot be used as DI Token in angular. There can be possibility where we ne...

What is DI Token

1 minute read

When we think of learning Dependency Injection in Angular, couple of questions arises like How this DI concept works in Angular? What are all the important ...

Benefits of Components based application

less than 1 minute read

Due to its component based architecture, angular has capability to protect our code for future. It is basically making our code future ready as each componen...

Component based Architecture in Angular

less than 1 minute read

One of the main architectural principles in Angular is that an application should be composed of well encapsulated, loosely coupled components. In this sessi...

Angular Hierarchical Dependency Injection

less than 1 minute read

In 0008-7- angular: Hierarchical Dependency Injection video session, you will see how Angular hierarchical dependency injection system works. You will discov...

Working of Dependency Injector or Container

less than 1 minute read

Dependency Injection Container or Injector is basically a static or global thing which is being used throughout the app to inject dependencies or objects. It...

Dependency Injection Types

less than 1 minute read

Basically there are three types of dependency injection, Depending on the context we can choose any type which is being supported by that framework. Three ty...

What is Dependency Injection?

1 minute read

Wikipedia Definition: Dependency injection is a technique whereby one object (or static method) supplies the dependencies of another object. A dependency is ...

Get started with Angular

1 minute read

Are you preparing for Angular interview? Not sure from where to start? Well we do have answers to all your angular related queries. We will help you to list ...

Tricks to build Interview-winning Resume

1 minute read

Along with choosing right template, best resume format, putting educational qualifications etc, the most important component required in an interview-winning...

How to do Html Form Validation using RxJS

1 minute read

Did you know you can use RxJS simple operators and do html form validation re-actively? Well I learn RxJS operators by implementing them in real world proje...

Why Express.JS with Typescript

2 minute read

I love Typescript the way it helps development speed and accuracy. I wanted to work with Typescript, Webpack and Express.JS finally came up with a project w...

Model in Domain Driven Design

2 minute read

Model in Domain Driven Design is a system of abstraction that eliminates things which are not required. Domain Model allows us to think about a particular do...

Webpack assets run time dependency injection

less than 1 minute read

How to Inject Base Assets path URL dependency to webpack CSS bundle? In your JavaScript project build by webpack, if you have requirement where at the build ...

Dependency Injection in React Core

2 minute read

Dependency Injection In Software Engineering Dependency Injection is a technique where one object injects or passes the dependency object to other object at ...

Decorators in Typescript and Angular

5 minute read

Decorator is a concept in Typescript that can be used to annotate a class or it's members. Decorator also enables meta programming where one can collect as ...

Creating Typescript Library using Webpack

4 minute read

Loading... In this article we will see how can you create your own typescript library that you can easily consume in your another typescript project. ...

RxJS Marble Diagrams

4 minute read

RxJS Marble Diagrams are made to visualize the values emitted from the RxJS Observable over timeline.</p> Hi in this article I will explain why we need...

Establishing Goals

5 minute read

In this article we are going to talk about. What goals are ? How to set Goals ? What makes really good goal ? Organize your life goal Sort out your lif...

Understanding JavaScript Scope

2 minute read

What is Scope in JavaScript Imagine Scope as a boundary within that things can be isolated. Like in your colony there are certain areas which has stuffs that...

Create Barrel for Typescript Project

2 minute read

When you create your own Typescript  library then you need a barrel file where you put all of your files that you want to expose to the outside world kind of...

Domain Driven Design Philosophy

3 minute read

Eric Even wrote Domain Driven Design (DDD) book. Eric says DDD is the Philosophy of software design that helps projects dealing with complex problem. I ...

Integrate GitHub-Pages in Angular 6 App

2 minute read

What is GhPages Do you want to save time to create post or article while writing software code ? Or do you want to see your angular app live running in the i...

My Pluralsight Course

less than 1 minute read

Hi everyone, I am very excited to announce that I became an author in Pluralsight.com and my first course on Unit Testing with RxJS Marble Diagram is going t...

My YouTube Channel

less than 1 minute read

Hi everyone, I started my FullstackMaster YouTube channel where I want to put some technical learning stuffs. I started putting RxJS videos over there. I hop...

Introduction to Multi Cloud and Strategy

8 minute read

Cloud itself is complex so why are customers bothering about multi-cloud at all? Why not just take google cloud and deploy all of your workload and be hap...

JavaScript Module Pattern

less than 1 minute read

I recently wrote one article on JavaScript Module pattern in Code project. Please visit this website and suggest me your thoughts on it... Javascript Module ...

How to use VLOOKUP in Microsoft Excel

3 minute read

Today, I learned about one Excel Sheet Formula "VLOOKUP". It is very useful formula that gives us the power to search a value in a particular column.   ...

Knockout Getting Started

7 minute read

I came through an open source JavaScript named as “Knockout.js”. After learning this javascript functionality and features. I found it very powerful, wh...

Basics of jQuery

less than 1 minute read

I took session on jQuery. It was nice experience to talk in front of my colleagues. First time I took session where some of my colleagues joined on phone als...

Restoring Scroll Position

1 minute read

Suppose you are searching for a product in a shopping website and you got a big set of results. It normally comes in a grid view with a long scroll bar. Some...

Assembly Binding Log Viewer

2 minute read

My Friend was looking for one error that he was continuously getting when he was trying to setup my old version 1.0 .net code. The error message was: Th...

Dynamically Adding UserControls

6 minute read

From last 4 days, I have been struggling on how I should load the UserControl dynamically in my default page. I know in today’s world where .Net 4.0 came up...

Dependency Injection Patterns

6 minute read

In order to make the application more loosely coupled we should use interfaces. In Dependency injection pattern there exist a class called as asse...

Microsoft contributions to jQuery Plugins

4 minute read

Almost 3 years ago Scottgu announced that Microsoft would begin offering product support for jQuery. Now Microsoft is playing a great role on contri...

Menu Widget

1 minute read

I was trying to make my own menu widget using jQuery and  I came with this below Widget. [sourcecode language="javascript"] //Menu Widget created by Rup...

Local Alias pattern

2 minute read

In any jQuery Plugin there JavaScript local alias pattern is being used as a best practice. They have localized the global jQuery object as an alias $. ...

Internet Explorer 8 - new features

2 minute read

Hi all,</p> I recently installed Internet Explorer 8 in my laptop and wondering many new features about the IE8. I was enjoying the good and...

jTip: jQuery Custom Tool Tip

1 minute read

Plethora of times it is required to show complex tool tip. Complex, I mean the tool tip that can contain images, links , text decoration etc...To show the cu...

Creating Custom jQuery Widget

less than 1 minute read

Hi I just came across a greate website http://bililite.com/blog/understanding-jquery-ui-widgets-a-tutorial/ There I learned how to create custom jQuery widge...

Prototypal Inheritance in JavaScript

4 minute read

There is a great article written by Douglas Crockford. I recommend everybody to read this article. By using Prototypal inheritance technique, we can create t...