Posts

Showing posts from 2017

REST API Best Principles

Image
As we are using REST APIs more and more nowadays, I thought of listing some of REST APIs best principles or practices that developer should take care of while designing/developing REST APIs. Please feel free to provide your thoughts. 1.        URI - a.        Name versus Verb - Concrete names should be used for Resource name instead of action verbs. e.g. if API is to get users, it should be GET /USERS and not getUsers b.        Singular versus Plural - There is always debate on if singular noun should be used or plural for the resource name. I think answer is that it depends. e.g. if GET API might return the list then it should be plural. But if API is for single object e.g. Cart, then it could be singular. In general, plural will provide more flexibility to return single or multiple records. c.        Spinal case versus camel case - Shall we use camel case(like Java) or spinal case(-)? I think it is individual preference. But some of the rest principles enco

New age career opportunities in Information Technology after graduation

Image
IT boom is almost over now. Gone are the days when anyone knowing only technologies like Java, JSP, Servlet etc could have easily landed a job. Data is growing fast with companies like Facebook,LinkedIn,Twitter and competition between the companies is getting tough day by day. Today, companies focus on user experience and personalization and therefore, the need to harness this vast data is more important than ever. Now how this is translated to the newer career opportunities for graduates who have just graduated.   1. Big Data Data is growing at a rapid pace (doubling in every two years). Every year, we perform 1.2 trillion searches. Facebook users send on an average 30+ million messages every minute. Since data is growing at fast rate, it arises need to store and process the data. There are many technologies like Hadoop,Hive, MongoDB, Couchbase, Spark etc which allows user to store tons of data. This is one of the area which started growing in last couple of years and will also

Analytics - Google vs Adobe Analytics

Primary purpose of analytics is to capture user behavior and display it in the reports in order to analyze user behavior. Behavior could be in term of how many users are accessing the website, their id, type, demography, device, browsers, page visited, etc. These are just some examples and lot of other variables could also be captured. In any typical eCommerce website, we can capture: 1. Items added to the cart 2. Conversion rate 3. Abandoned cart (which will help in sending targeted email to the user). Tracking of such parameters can give good insight about user behavior. There are many tools (open source and proprietary) available in the market for tracking. Among the commonly used front end analytic tools are Google and Adobe Analytics. Both have documentation in form of tutorials and video available. Both version allow you to collect data from websites, mobile apps for iOS and Android. Adobe and Google use very complex algorithms to calculate sessions, time spe

Writing Use case effectively

Before discussing about what goes into Functional Specification document, let us understand what is a Functional Specification(FS) document and why we need it. Functional specification is the document containing requirement in detail, helping business in understanding and confirming the requirement. Moreover, it gives developer details of the requirement Business requirement document is the other artifact that has details about the requirements. But it list requirements at high level and not the details. FS contains requirement in detail, including validation and alert messages etc. A complete Functional Specification document contain purpose, scope, assumption and use cases etc. This article is about the typical format of use cases that would help business in reviewing the requirements and developers in implementation. Though FS document template might vary depending on the requirement, I am listing high level items that should go inside use cases. Use Case number