RSS feed [root] /design /weblog



title search:


Sun Sep 10 16:25:08 HKT 2017


(google search) (amazon search)
download zip of files only

Sun Oct 16 23:51:03 HKT 2011 From /weblog/design/interview

Kent Beck

Passion of coding make a lot of difference -[..]/07/interview-with-kent-beck-circa-2001/

(google search) (amazon search)

Sun Oct 09 10:09:16 HKT 2011 From /weblog/design


Discussion about racing condition -[..]smatter/cqrs-race-conditionsandsagasohmy

(google search) (amazon search)

Mon Oct 03 01:04:16 HKT 2011 From /weblog/design


Robustness, list of general design principle -[..]2/robustness-the-forgotten-code-quality/[..]tics-of-a-robust-application-or-service/

How to write readable code -[..]net-framework/writing-maintainable-code/

(google search) (amazon search)

Thu Sep 15 00:44:48 HKT 2011 From /weblog/design


Top 10 mistake that cause poor performance Java EE - which, the concept apply much more than enterprise[..]the-architecture-for-a-software-project/

(google search) (amazon search)

Thu Sep 15 00:39:54 HKT 2011 From /weblog/design


A comment about jsch library, discuss about how the author compare this with commerice library, how easy to use, what make it easy or not easy to user, and how to make it easier a nice reading for writing library[..]?permalink=jsch_a_SFTP_java_library.html

A simple implementation of cache -

Good examples of bad codes -[..]ike-a-senior-developer-about-clean-code/

Design of recommandation engine -

(google search) (amazon search)

Wed Aug 24 00:39:31 HKT 2011 From /weblog/design

Object Calisthenics

Object Calisthenics is an idea suggest by Jeff Bay in The ThoughtWorks Anthology , and lists 9 rules to writing better Object Oriented code. For those who haven’t seen the book, the 9 rules are:

# Use only one level of indentation per method
# Don’t use the else keyword
# Wrap all primitives and strings
# Use only one dot per line
# Don’t abbreviate
# Keep all entities small
# Don’t use any classes with more than two instance variables
# Use first-class collections
# Don’t use any getters/setters/properties[..]1/06/object-calisthenics-first-thoughts/

(google search) (amazon search)

Sun May 15 03:02:16 HKT 2011 From /weblog/design


(google search) (amazon search)

Sun May 15 03:01:25 HKT 2011 From /weblog/design/pattern

Best pattern

Discussion about which pattern is most important -[..]page/abien?entry=most_important_patterns

Pattern Language Titles -

(google search) (amazon search)

Sun May 15 02:59:23 HKT 2011 From /weblog/design


(google search) (amazon search)

Sun May 15 02:52:07 HKT 2011 From /weblog/design/pattern


Suggest use to take a fresh look of original "pattern language" - , in his opinions, it is more about separate design to difference groups than create reusable design.

Some more...[..]007/5/17/design-patterns-are-code-smells

Some say pattern should be language feature ...

Closely related, there are no golden rules and silver bullet, Design Pattern can help us in some design problem and provide some design suggestion. However, we need to know what it good for and bad for[..]est-practice-vs-pattern-vs-standard.html[..]ndard-approach-does-not-necessarily.html

Use pattern in hello world, sample of over engineering:

(google search) (amazon search)

Sun May 15 02:40:40 HKT 2011 From /weblog/design


Arguement of overuse interface, I trend to support -[..]ramming-to-interfaces-strikes-again.html

A very long discussion related, Test-friendly, but not caller-friendly? -[..]ring-your-development--t2039307i120.html

Comparison of interface vs. abstract class -[..]ry/api_design_interfaces_versus_abstract

Some issue of marker interface, may be annotation can help. However, I don't think those so call issue are really problem, those just poor usage of marker interface -

(google search) (amazon search)

Sun May 15 02:19:55 HKT 2011 From /weblog/design


The 37signals manifesto was our original site from 1999-2001. It's a collection of 37 nuggets of online philosophy and design wisdom. It's a great introduction to the 37signals' school of thought and a fun, quick read to boot. -

(google search) (amazon search)

Sun May 15 02:11:54 HKT 2011 From /weblog/design/concurrency


Deadlock detector sample -

Deadlock in J2EE, explaining deadlock in various place, e.g. DB, VM, code,... -

A blog comment about database deadlock very detail -[..]2007/04/java-wish-list-2-retry-code.html

Technique to prevent deadlock: Automatic Lock Releases, Timeout, automatic detection -

(google search) (amazon search)

Sun Apr 24 01:07:07 HKT 2011 From /weblog/design


Introduction to Saga -[..]sistence-and-event-driven-architectures/

(google search) (amazon search)

Sun Mar 13 00:24:49 HKT 2011 From /weblog/design/pattern


Non-Software Examples of Software Design Patterns -[..]vers/nonSoftwareExample/patexamples.html[..]hain-of-Responsibility-Pattern-in-C.aspx

Patterns to replace switch -

Design pattern in JDK -

(google search) (amazon search)

Fri Feb 11 00:48:54 HKT 2011 From /weblog/design

when api design rule conflict

2 best practices of API design confilct each other, and how to find out the solution -

What exactly simple mean?[..]s-that-pass-for-simple-i-cant-understand . In my opinions, a more concrete interpretation of simple is first define what is most important to you, then find the quickest way to get there.

Iceberg Classes, if encapsulation is good, how about having more private method? Or actually the logic should be split? -

(google search) (amazon search)

Tue Feb 08 00:38:32 HKT 2011 From /weblog/design/distribute


Implement ping-pong play between two nodes on the cloud using GridGain Distributed Actors -[..]11/01/26/distributed-actors-in-gridgain/

(google search) (amazon search)

Sun Jan 16 01:51:29 HKT 2011 From /weblog/design


Discussion on TDD algorithm -

(google search) (amazon search)

Tue Dec 14 00:57:34 HKT 2010 From /weblog/design


Issues of annotation dependence test framework, usually new language feature come out to solve some problem people get excited. However people found that the problem it bring are not less than the problem it solve, it take time to proof the value -[..]tmotion?entry=annotations_suck_a_lot_and

Compare OO feature of difference language -[..]ral/comparingObjectOrientedFeatures.html

Comparing C# and Java -

Discussion about extending standard API -

Few good suggestion when thinking of design a language, Consider using ML, Don't be afraid of being the same -[..]programming-language-design-is-hard.html

Design Principles Behind Smalltalk, see how idea of inheriance, polymorphism originated -[..]/design_principles_behind_smalltalk.html

(google search) (amazon search)

Thu Dec 09 02:55:30 HKT 2010 From /weblog/design


(google search) (amazon search)

Thu Mar 25 02:07:15 HKT 2010 From /weblog/design


Date handling look simple but easy to fail in trap. Even worst is this is easy to have bad data which hard to fix. Here is an example -

One tip for testing application with time dependence, treat it as random -[..]

Explanation of issues of Joda-time, basically it still haven't map the human view of time close enough than machine view of time -

Screencast of how to driven a fluent Date API -[..]-apis-in-java-episode-1-comparing-dates/

(google search) (amazon search)

Tue Feb 02 12:03:55 HKT 2010 From /weblog/design


twelve things you should know about indexing -[..]elve-things-you-should-know/indexing.php

(google search) (amazon search)

Thu Jan 21 01:46:26 HKT 2010 From /weblog/design/IoC

Inversion of Control

When these containers talk about how they are so useful because they implement "Inversion of Control" I end up very puzzled. Inversion of control is a common characteristic of frameworks, so saying that these lightweight containers are special because they use inversion of control is like saying my car is special because it has wheels.[..]ticles/injection.html#InversionOfControl

This guy think IoC is going to use is more and more place as GC. However, I will think quit a lot of time IoC is use incorrectly, somebody even try to use it everywhere and replacing constructor... -[..]endency-injection-mirror-of-garbage.html

IMHO jetty is the first widely used program about IoC idea, even before spring -

Explain when IoC is overkill -[..]010/01/17/dependency-injection-inversion

(google search) (amazon search)

Thu Jan 14 19:13:15 HKT 2010 From /weblog/design


Article with example to show how aspect can help in most common case -[..]se-cases-of-aspect-oriented-programming/

(google search) (amazon search)