Posts

Power Of Open Source Software

Hey, I'm a Software Developer who uses Open Source Software often. But finally it took me three years to witness the freaking power of Open Source Software because of the POC task which i was assigned recently. So, What does a POC task mean?           POC means ‘Proof of Concept’. In Software development, if the team weren't sure of any Open Source Software that will suit the requirement, the task will be bucketed to POC. Here the developer to whom it was assigned will be working on it and based on the end result, the team will decide whether the same idea can be implemented further. Hope you got a quick overview on what a POC is.  Let me share my experience in short, To Do -           We had to copy our ElasticSearch data to Snowflake DB for analytics stuff. But then, there were no direct ways to establish a pipeline to send the data to Snowflake. So we were hunting for intermediaries and finally we decided to copy this through Amazon S3.  Yes you are right , the flow will b

Singleton Design Patterns

Singleton Design Pattern        Singleton design pattern is a creational design pattern that allows you create only one instance for a class. How are we restricting one instance to be created:        By making the constructor private.  Private constructors:       Methods can be made private. Constructor is also a method. Similarly we can also have private constructors. If a constructor is private , it can be accessed only within the class. Scenarios private constructors are used:        • Singleton design pattern       • Internal chaining of constructors  Components of a singleton class:        • A static instance variable       • Private constructor         • Static factory method  Two Forms of singleton design pattern:        • Early instantiation       • Lazy instantiation  Early instantiation:   Here we create the instance variable at the time of declaration. So instance is created at the time of class loading. class A{ private static A obj=new A();//Early, instance will be cr

Evolving as a Software Developer - Valuable resource of the team

This Blog dives deep into the most common topics that a software developer deals every day.It will be useful for Entry level professionals to evolve as a responsible and valuable resource in your teams! Ever dealt with these types of coders? Type A - A resource who completes all the work before time but every time when other resource work on his code, he will stark raving mad Type B - Other resource takes time to complete but never had issues or problems when the other resource worked on his code In the above scenario, who is the efficient one or valuable one in the team??? Ever Dare to say Type A - Not at all ! Every Time the problem with software development is - Code Maintenance In Every Projects, there will be thousands of files.Think of a scenario, Type A resource work on the core module that depends on every other modules of the code.Every time when other resource looks for the enhancements on the modules , he should depend on resource A or should spend a dozen of time while anal

Design Patterns

  Design patterns  are typical solutions to commonly occurring problems in software design. They are like pre-made blueprints that you can customise to solve a recurring design problem in your code. The pattern is not a specific piece of code, but a general concept for solving a particular problem. You can follow the pattern details and implement a solution that suits the realities of your own program. Why we need to know Design Patterns : Design patters, in lament terms , are a  structure of code that provides efficiency, resistance to code stinks and provide a way of cleaner code. When a group of software designers communicate, they need not say the entire structure of the code. They just point out the name of the design pattern and it is understandable for the rest of the designers. For example : There is a design pattern called Singleton Design Pattern. If its used , only one object can be created for the class.This is made by declaring a private constructor to class. During design

YAGNI (You Aren't Gonna Need It)

  It's a statement that some capability we presume our software needs in the future should not be built now because "you aren't gonna need it".This pre assumption also causes a cost of delay. Hence we need not to pull in the lines of code that we don't use.

DRY (Don't Repeat Yourself)

  When a new software project goes on, the codebase grows significantly over time, as the new features are added. In order to ensure maximum usability and transparency of the code, it is refactored to comply with the requirement of having the absolute minimum of functions and values needed to run it.

KISS (Keep It Simple , Stupid)

  Excited by seeing the title. Nah! Its yet another design principle. Simplicity is a key design principle. The easier something is to understand and use – the more likely it is to be adopted and engaged with. KISS, “keep it simple, stupid” is thus a great rule of thumb to be applied when considering your design work in a larger context of usage. However, it is also important not to make things so simple that they compromise the  functionality of the final design – users will live with a little complexity if it enhances their overall experience.