Last Year

2015 was busy with several months of travel. I met a number of smart people from who I learnt a lot. And yes, dabbled with a several tools, languages and frameworks. Here’s a list of things I did in the professional front.

  • The new language that I got a chance to use was CoffeeScript. Indentation drove me crazy initially, but then started loving it.
  • The new technology that I learnt and used extensively was ElasticSearch. My foray into Big Data started with ElasticSearch. And it helped me gain very good clarity in this front.
  • The one and only editor I used was Textmate
  • Used Ruby, Groovy and Scala for a number of utilities that improved productivity. JavaScript remained the most used language last year, however.
  • Read atleast one technical book every week, thanks to Kindle. My favourite for the year was ‘Programming Clojure’ by Stuart Halloway
  • Attended just two conferences last year, which included a workshop on Microservices architecture.
  • My favourite sites for hunting top talent were Upwork and Fiverr.
  • The Continuous Integration/Deployment tool that I used for most of my work was Semaphore
  • I was hooked on to Courseera for mastering core Computer Science concepts
  • We closed down HealthyCode magazine, despite excellent reviews, because of the blood bath. But the learning was remarkable. How else would I have got a chance to meet people like Richard Stallman, Bruce Tate and several great minds, if not for the magazine? They literally reshaped me in the first half of the year.
  • I worked in two products. One was technically very satisfying, but mismanagement of the team killed it. The other one technically very challenging and is still going very strong.
  • I wrote fewer blog posts. I hope to improve the number this year.
  • I created Table of Contents on two technologies that I wanted to write for my third book. But didn’t find the correct time and match for taking it forward.
  • I drifted away from Java even further.

Controllers vs. View Controllers in Ext JS6

Ext JS 4 provides MVC support where we create a Controller for a collection of Views and Models. The usual confusion to this approach, is how many controllers do you require in an application. The general approach is one controller per use-case.

So if you have to add/edit employee details, you’ll have one View for each and one Controller for all the Views.

    - AddEmployeePanel.js
    - EmployeeDetailsPanel.js
    - EmployeeController.js

Usually, developers argue with this style and try to create one Controller for each View. The Controller can get really crowded and clumsy as it will have code related to several views. Unit testing these controllers is also a pain.

With Ext JS 5( so in 6 too), with the introduction of ViewControllers, this confusion doesn’t exist now. You can create a View and have one ViewController per View and also a ViewModel per view. So the relationship is one-to-one with View and ViewController, and this solves lot of design issues. For the Employee example, this is how the file structure would look like.

    - [employee]

We really don’t have to worry about creating Controller classes anymore, though I would like to sort-of move the navigation logic to the Global controllers. Personally, I find ViewController to be lot more easy and straightforward to design and implement.