Sadek Drobi’s Blog

May 9, 2008

Crosswords :: Should Architecture Rewrite be Avoided?

Filed under: Architecture, Refactoring — Sadache @ 7:08 pm

As it gets more and more difficult to adapt software to new demands, the temptation to rebuild it in order to update the architecture grows stronger. For this risky undertaking it is essential to choose the right strategy. Several authors provide insights into advantages and disadvantages of different possible options in terms of cost, technical complexity and potential commercial risk.

(more…)

March 9, 2008

Obsev:: Mutability is addictive like drugs, Mutation can become a cancer!

This is really crazy!

The first time I got introduced to mutation, I had a bad feeling. How can x:=x+1 be logical at all?

It felt so unnatural, scary, or maybe like a hack. Then, because of society constrains, I got to forget the bad feeling about that. Well, my mind started to tolerate with counter-logic logic. And that is how I became an enterprise developer. I am not sure how proud I am with this title anyway. I feel that tolerating and accepting the counter-logic logic is one, and most important one, of the prerequisite to this title.

(more…)

February 9, 2008

Scalability: Dynamic and Static Programming Languages

Filed under: Architecture, Refactoring — Sadache @ 1:28 am

In the wake of the demise of Chandler personal information management project, a discussion has occurred on TSS about the scalability potential of dynamic languages. Ted Neward attempted to go beyond language quarrel in order to provide some structured insights on this issue.  

(more…)

May 27, 2007

It is NOT a Test Driven Design

Filed under: Refactoring, Agile Programming, Domain Driven Design — Sadache @ 9:17 pm

There is no good design guaranteed with TDD, actually it is a Test Driven Development. It is a good practice for defiling contracts before starting to write code. This assures some decoupling between the contract and the implementation. But don’t close your eyes and expect it to design for you. You should be careful about not turning your code into functions just wrapped into objects. Because then it is a bit late for refactoring. Jimmy Nilsson [Applying DDD and Patterns] couples TDD with DDD to produce a good design. Because DDD is about design, and TDD is about a programming discipline, a beautiful one, but is not about design…

March 16, 2007

Live Note :: TDD : James Coplien

Filed under: Architecture, Refactoring, Agile Programming, QCon2007, Conferences — Sadache @ 2:44 pm

 

March 14, 2007

Refx :: Martin Fowler on MODIFIABILITY (QCon)

  • In agile development process, the Design task is still important, we just changed the way we do it to evolutionary design rather than un upfront one. Yet, In some cases we cant defer design decision till the end, and we do need to do them in an upfront style. 

Do the simplest thing that works ( Kent Beck )

  • Kent Beck commented on this that “The simplest thing is not the most stupid !”
  • Software SHOULD have a model, and cant be only tachtical all the time.
  • In a Lean Software Development we dont make decisions before we really have to, but we have to do them once! or otherwise we will be taken as not able to make decisions.
  • Try different choices on different teams, building different implementations, find that last minute where you can decide.
  • The key to modifiability is encapsulation and abstraction.
  • The key question is : Do i have to make the decision yet?
  • The Domain Model is made! The task is to reflect it well in the software.
  • Isolate Domain models from technical ones
  • Preparing a ground for Modifiability
  • Making a decision of when to make a decision
  • Discuss well with business people to reflect the model
  • Html is undoable because there is not a ig investement in doing it
  • Breaking encapsulation for a decision makes it a bad decision
  • redability of code
  • Unit testing to guarantee encapsulation
  • Software evolves anyway, maintainability IS an issue!
  • Encapsulation is about keeping secrets.
  • Pair progamming for teaching design, that will raise team’s productivity as a whole
  • Lessons can be learnt better through modifiability than through upfront teaching
  • Struggle for reversable architecture

January 22, 2007

REFX :: Eric Evans :: Making Implcit Concepts Explicit

Filed under: Architecture, Refactoring, Agile Programming, Domain Driven Design — Sadache @ 8:39 pm

“Listen to the language the domain experts use. Are there terms that succinctly state something complicated? Are they correcting your word choice (perhaps diplomatically)? Do the puzzled looks on their faces go away when you use a particular phrase? These are hints of a concept that might benefit the model.”Eric Evans, Domain Driven Design / Refactoring to deeper insight.

Powered by WordPress