Chanced upon this very useful and must read book “97 Things Every Software Architect Should Know – The Book” by a bunch of reowned architects. A collection of 97 most innovative and thoughtful articles you’ll ever find bound in one place. Check this on Amazon.com
Also you can read it online on this wiki site
Infact I created a new Catgory “Must Reads” to accomodate these awesome publications….Happy Reading over the weekend…
Watch this awesome presentation by Neal Ford an architect at ThoughtWorks on How you can improve your coding style and ATTITUDE…in 10 most useful ways. Infact, this is a must have potion for any developer and a Code loving guy…
Download the entire presentation in PDF format.
Get the preview of topics covered in the presentation. Courtesy : InfoQ.com
- Divide your program into methods that perform one identifiable task.
- Keep all of the operations in a method at the same level of abstraction.
- This will naturally result in programs with many small methods, each a few lines long.
TDD – stands mostly for test-driven development but can also be viewed as test-driven design.
- When one uses TDD, he starts thinking about the consumer of the code he is writing. This brings awareness on how his code is going to be used by another.
- It forces the developer to mock dependent objects, resulting in a clearer picture of the relationship between the objects.
- TDD encourages the creation of composed methods.
- It is quite useful to use tools like FindBugs which analyzes the bytecode to discover bugs.
Good Citizenship – refers to the way classes should react to one another
- Singletons are a bad choice because they have mixed responsibilities and are not testable. They are the objectual correspondents of global variables.
- The proposed solution is to create a regular POJO and use a factory to make sure that only one instance gets created.
YAGNI – You Ain’t Gonna Need It
- One should write only the code that is used now.
- Avoid speculative development which increases the software entropy of a code.
- Top 10 Corporate Code Smells:
Question Authority – Some things should not be done just because that is the custom.
Single Level of Abstraction Principle – everything should be at the same level of abstraction
- All lines of code in a method should be at the same level of abstraction
Polyglot Programming – use the best language for the problem while maintaining the same platform (JVM/.NET)
Learn Every Nuance – developers benefit from learning nuances of their language
Use the Anti-Objects Pattern – “an anti-object is a kind of object that appears to essentially do the opposite of what we generally think the object should be doing.”
Recently, I created a small Line chart Tool, which is deployed on one of our projects on Salesforce.com. This graph draws a line chart curve when the data changes dynamically. I had real fun working 0n this small app.Once again, MVC pattern made it real easy, as I had my Model class binded to my view. The data gets updated in the model class, thus changing the graph dynamically… There are many other features such as Fullscreen view on doubleclick. Checkboxes to set the curve visibility on and off, etc.
For preview, I uploaded an intial prototype of the application. click here
Well, I wish I could have shared the source code also.
Line Chart Graph in Flex