All comics by Rohit

 

by Rohit
11-26-11

 

by Rohit
11-26-11
##@@ ??????
Hey Peter ,You are looking so tense , what happened ?
Parker, this code is making my life hell, I am not getting anything from last 2 days.
Oh really !!! Then try to get some help from its original developer.
I am the original developer #@!
What ?????

 

by Rohit
11-27-11
##@@## ???
Hey Jojo,You are looking so tense, what happened ?
Yes Nick, this code is making my life hell, I am not getting anything from last 2 days.
Oh really !!! Then why don't you take some help from its original developer.
I am the original developer. #@!
what !!!!!!!

 

by Rohit
11-28-11
Hey Nick! See I have designed a solution to a very complex problem ! It took me 2 weeks to do that.
Thats good Jojo ! Can you show me that ?
Yes Sure, Please have a look.
But your solution is same as what One of the Design Patterns suggest.
Design Patterns ??
Yes Jojo, Don't reinvent the wheel, See the Design patterns for solutions to these common Design problems.

 

by Rohit
12-04-11
Hey Jojo , During Code review I have found lot of issues with Code.
Boss , That is not my fault. Existing Code is so messed up that I also had to code on the similar lines.
If that is the case then why don't you refactor existing code, while you add New Code
But that is double work for me and will take more time.
No Jojo, apply small refctorings at a time, don't refctor the whole code. This will infact ease your job.
That sounds interesting, Ok I will try this.

 

by Rohit
12-05-11
Debugging a priority production Issue
This Production issue is making my life hell. Its 3rd day and I don't have any hint why the exception is coming.
Its already 2pm in night. I am again late for Home today.
Hurray I found it !! No God , its Cursor Leaks Again. Why the developers are not taking it seriously.

 

by Rohit
12-05-11
Debugging a priority Production issue:
This production issue is making my life hell. Its 3rd day and I have no clue why the exception is coming.
At 2pm in night :
Again I got late for Home today uhh....
At 5am in morning :
Oh God I got it finally !!! its Cursor Leaks again. Why the developers are not taking it seriously ?

 

by Rohit
12-05-11
Next day :
Jojo, Team that was debugging production issues have found so many Cursor leaks in Code. Why are we repeating the same mistakes.
Mike, No code is full proof. That can happen sometimes.
Jojo try to understand the severity of issue. These Cursor leaks has cost us thousands of dollars and many sleepless nights in past also.
He is very angry today. @#@$
These issue are most difficult to debug. And Clients are also not happy with it.
Mike I think I understood what you are saying, I will definitely pay close attention to them in future.

 

by Rohit
12-14-11
Jojo and Nick in a design discussion :
Hey Jojo Here is the Problem statement for this Sprint !
Ok, Lets discuss this.
"A Light should be controlled by a Switch." We need to simulate that.
Ah ! That is so simple ! Switch class and Light class. Switch will have methods to control Light.
Hey Jojo , that was quick ! But I can see some problem here .
Problem ???

 

by Rohit
12-14-11
Yes, current solution is violating OCP which says we should be able to extend the functionality by adding new code and not by modifying the existing code.
Hmm.....
What if next problem statement is that the Switch should also be able to control other similar objects like Fan. For that Switch class needs to be modified.
Oh ! why I did not think about that ???
So Now Our new UML Diagram should take care of that.

 

by Rohit
12-14-11
Any idea Jojo , how we are going to satisfy OCP.
I think our Switch class should call a common interface like serverInterface and not directly access Light class.
Ok !
Switch will access Light or Fan through ServerInterface,not directly. With this design we can use switch to control other devices also.

 

by Rohit
12-14-11
Jojo that was excellent, But why You named your interface as ServerInterface
This interface represents the functions that controlled objects like Light or Fan will perform. we can name it ControlledInterface.
So Do you want to give the ownership of ServerInterface or let's say ControlledInterface to Controlled Objects and deploy it along with them.
Yes ofCourse !
But here is a problem !
What now ?

 

by Rohit
12-14-11
We are breaking DIP which says Policy or High level mechanism should not depend on details.
Oh yes ! Here any change in ControlledInterface will force the changes to Client Interface , Button in our case.
Yes true, Implementation should never force the high level policy to change , infact it should be the other way around.
So Nick what should we do now?
Just we need to invert the ownership of interface to client from Server.
What we are getting with this ?

 

by Rohit
12-14-11
By Inverting the ownership we have inverted the dependancy and satisfied the DIP. Let's see the new UML.
Hmm....
Here I changed the interface name to SwitchableInterface to clearly show that Ownership lies with Switch. And change in interface will happen only when policy changes.
Yes I got it ! So change will happen when client wants and it will not be forced by implementation classes Like Fan Now.

 

by Rohit
12-14-11
And Now with this Design we are saying, switch will control anything that implements Switchable Interface.
That is great Nick !
Jojo Do you know that we have solved our problem by using Abstarct server Pattern which is used to decouple client and Server dependancy
Oh Yes, Here we have decoupled the Switch from Light and Fan by introducing the Switchable Interface.
Yes absolutely You got it Jojo. And that interface is called Abstract Server Interface.
But why it was named Abstract Server and not Abstract Client.

 

by Rohit
12-14-11
That is good question Jojo ! The reasonfor this is mainly historical.
Hmm...
It is only after decades of research programmers realized that interfaces should lie with clients and not servers.
Yes I think that principle is applied in many Framework available today like Spring and Struts.
Yes true. Ok that is enough for today Jojo, we will continue this tomorrow.
That was extremely useful nick. Thanks !

 

by Rohit
12-15-11
Jojo and Bonny in a Design discussion
Hey Jojo, Lets discuss what design we will have for our current assignment.
Yes sure, Lets do that.
I feel we need to have Class A, B and C. Where B inherits from A and Composed of C.
But this inheritance structure will cause problems.....
..... Yes but this will give us flexibility because.....
Hmm....

 

by Rohit
12-15-11
Design discussion continous....
...And in future Class A can have other clients also...See this UML
@###@???
Trying hard to get each other's views
You seems confused Jojo, Are you convinced with this Design.
Bonny, I feel this Design has some major flaws because......Let me draw what I am saying.
No conclusion reached....
Jojo I think we need to continue that discussion tomorrow.
Yes sure, Lets meet again tomorrow.

 

by Rohit
12-15-11
Nick &Tweety in a Design discussion
Hey Tweety , Lets discuss about the Design for our current assignment.
Yes Nick, Lets do that.
Discussion using Design Pattern vocab
Tweety, I think Abstract Server Pattern should work for this problem.
Nick, But we can't change Server code as it is being used by many clients.
Conclusion reached...
Yes you are right. Lets use the Adapter then.
Yes I agree, Lets do that !

Showing page 1.