Skip to main content

Posts

Showing posts with the label Software Development

Maven (0) - Preface

During our java based microservice development, we extensively use build tools like  Maven or Gradle.  Usually, IDEs do a lot on our behalf or we just run some predefined commands without checking what's happening inside. Here in this series of 6 posts, I tried to explain Maven. Before I start talking about what Maven is, and its different components, let’s discuss the “why”. Why do we even need Maven?  For this, I’ve to first explain the nature of a Java-based project and also need to take you back in history. The “Build” Step. Java is a compilable language, Unlike Python or Javascript, which are interpreted. ie, the code we write in java, can not as-is run on a Java virtual machine (JVM). JVM understands only the bytecode. Therefore, in the Java world, there is always a need for an  intermediary step.  A step that compiles the java code files into bytecode. That's why after writing the java code, we “somehow” create some deployable (jar, war, ear) to run on ma...

Git Series (1) — The Architecture & Internals!

Since the dawn of software engineering, managing the source code had been a great challenge for engineers. A plethora of  Source code management (SCM) systems & Version Control Systems  ( VCS ) have been developed in the search for the best one. In my short career, I have used the useless  Microsoft VSS , the ubiquitous  CVS , the slightly better  SVN,  and the proprietary  IBM-ClearCase . But none provided as comprehensive a solution as the one and only  GIT . The Evolution The quest for the best SCM ended in  2005  when  Linus Torvalds  gave another opensource gift to the world. It was a source code management system (SCM) that he created to manage the  distributed development  of the Linux kernel's huge codebase .  He named the SCM  GIT . The industry embraced  GIT  with open arms. SAAS providers like  GitHub ,  BigBucket  &  GitLab  added more bells and whistles...

JavaScript Series (02) — Introducing ES6

The  ECMAScript 2015  aka  ES6 , is the 6th edition of the  ECMAScript  language specification standards. What ES6 did to Javascript was what Java8 did to Java. ES6 came with many new features to enhance the existing language and many new concepts to write clean and concise code. Here are some additions in ES6 1. let & const (Block Scope without Hoisting ) If you’ve coded in Javascript before 2016, you know how vulnerable the  var  keyword made the applications. Using it outside a function was a suicide but even within a function, it created problems due to hoisting. Now, what was hoisting? Hoisting  is  a JavaScript mechanism where variables and function declarations are moved to the top of their scope before code execution . So no matter where you declare  var , it will always be moved to the top of its enclosing function. So any block within the function will still see the same variable. This doesn’t leave any space to have scopes...