Ship Often, Ship Fast. Why is Ruby still relevant.

By Talina Shrotriya

Elevator Pitch

What makes or breaks software is the balance between developer efficiency and code quality. With no previous coding experience in Ruby and a short delivery deadline, I was able to leverage the power of Ruby libraries in designing micro APIs within a span of a few weeks.

Description

The product to be built can be said to be a representation of an accounting and billing and disputes management portal.

## What our software requirements were? - Lowest footprint possible - avoid programming nitty gritties, and focus on business logic. - Loosely coupled components - The layers of the API should be flexible to changes in data structure. - Think HTTP, not models. - Separation of concerns. More predictable change. ## 3 RESTful API layers: Presentation, Business logic and Data access. ## Why Rails wasn’t the best fit here. - Focuses on model driven applications. - Good choice when building big, monolithic web applications. - Less design control in the developer’s hand. Tries to curate the best set of technologies. ## Sinatra: A thin and lightweight framework built on top of Rack. - Follows an abstract pattern: no restrictions on organising code. Developer decides the modelling. Trade convenience for design decisions. - Supports Rack Middlewares. - Uses throw-catch to control program flow. route_eval. - Metaprogramming in Sinatra: Ease of writing and registering extensions with Sinatra. - Ease of mounting Sinatra apps inside Rails 3. ## Sequel: Flexible and powerful SQL access toolkit. - Simplicity: Prefers a simple OO design. - PG extended query protocol. - Application code is not tied to the schema. - Datasets: Fetch only when needed concept. ## Sequel vs ActiveRecord. - Complex queries handled using datasets, unlike in Active Record where Raw SQL is the only solution. - Simple queries such as bulk insert of data have better readability. ## This is why Ruby is still relevant: - Years of community contribution. - Unlike Java, where language constraints overpower business logic, Ruby is easier to grasp for beginners.