RSS feed [root] /design /weblog



title search:


Thu May 23 22:45:24 HKT 2019


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

Fri Dec 20 12:17:18 HKT 2013 From /weblog/design/distribute


Solution #1: Have More Resources than You'll Ever Need
Solution #2: Disable Features During High Loads
Solution #3: Auto Scaling
Solution #4: Use Message Queues[..]spikability-applications-ability-to.html[..]izing-and-capacity-planning-assumin.html

(google search) (amazon search)

Wed Dec 11 09:16:42 HKT 2013 From /weblog/design


Batch processing best practices -[..]013/10/30/scheduled-jobs-best-practices/

Batch can improve latency, if it reduce number of request -[..]ng-requests-actually-reduce-latency.html

(google search) (amazon search)

Wed Nov 06 12:37:46 HKT 2013 From /weblog/design



Discussion of page object -

Difference API document tools -

(google search) (amazon search)

Fri Nov 01 14:28:59 HKT 2013 From /weblog/design/examples


Key points

1) No stored procedures are used. There are some very simple triggers.
2) Move cpu-intensive work moved out of the database layer to applications applications layer: referential integrity, joins, sorting done in the application layer! Reasoning: app servers are cheap, databases are the bottleneck.
3) No client-side transactions. no distributed transactions
4) J2EE: use servlets, JDBC, connection pools (with rewrite). Not much else.
5) No state information in application tier. Transient state maintained in cookie or scratch database.

How ebay use Cassandra -[..]-practice-of-cassandra-data-model-design[..]ctices-cassandra-data-model-design-part2[..]dra-data-modeling-best-practices-part-1/[..]dra-data-modeling-best-practices-part-2/

(google search) (amazon search)

Tue Oct 29 17:54:03 HKT 2013 From /weblog/design/distribute


(google search) (amazon search)

Thu Oct 24 17:01:36 HKT 2013 From /weblog/design/examples


(google search) (amazon search)

Fri Oct 18 14:22:38 HKT 2013 From /weblog/design/distribute


Compare SQL ( RDBMS ) and noSQL ( object base {distributed??} ) data management -

The definition -

Is Cassandra really that good? -

NoSQL Options Compared -[..]cleId=240151198&siteSectionName=database

A 3 Step Guide to Getting Started with NoSQL -[..]-step-guide-to-getting-started-with.html

SAFER THAN RDBMSs – BUILT FOR DISASTER AVOIDANCE - The[..]/10/why-nosql-can-be-safer-than-an-rdbms

(google search) (amazon search)

Thu Oct 17 18:16:02 HKT 2013 From /weblog/design/distribute


Few real time map reduce framework -

How facebook and twitter doing real-time analytic -[..]ers-approach-to-real-time-analytics.html

(google search) (amazon search)

Wed Jul 03 14:25:31 HKT 2013 From /weblog/design/examples


How Lucene implement transaction -

(google search) (amazon search)

Sat Mar 02 17:01:24 HKT 2013 From /weblog/design

code metric

Contain resource of measurable code metric information -[..]20/code-quality-for-software-architects/

Meaningful Metrics -[..]ions/115839/how-clean-should-new-code-be

Guidelines for a more appropriate use of metrics

Explicitly link metrics to goals
Favor tracking trends over absolute numbers
Use shorter tracking periods
Change metrics when they stop driving change

(google search) (amazon search)

Thu Feb 14 12:33:33 HKT 2013 From /weblog/design/pattern


How to get ride of it -

Trying to make singleton testable -

Why singleton? Some time may be just create the object once at the beginning is fine -[..]ticleS.UncleBob.SingletonVsJustCreateOne

And a good article of telling why don't use singleton -[..]works/webservices/library/co-single.html

About how to get it right in Java -

(google search) (amazon search)

Sun Feb 03 11:10:31 HKT 2013 From /weblog/design/interview

Jim Showalter

Principal engineer at Intuit -[..]im-showalter-of-intuit.html&site=jw_core

(google search) (amazon search)

Tue Jan 29 10:35:26 HKT 2013 From /weblog/design

High level software design discussion

A nice table:
Do Don't
1. Focus on interfaces. 2. Be worried about the implementation.
3. Mention semantic contract using interfaces. 4. Let subtypes break this semantic contract of their parent types.
5. Service decoupling using interfaces. 6. Be coupled with specific concrete implementation.
7. Family extension using interfaces. 8. Break the family relationship using concrete implementation.
9. Establish a family rule by abstract classes. 10. Impose your own rule through concrete classes.
11. Let interfaces answer all "what" about the system. 12. Forget to mention "how" are you answering all "what" from interfaces.
Also a good introduction of Strategy pattern[..]/03/28/testing-java-object-oriented.html How to determine the levels of abstraction -[..]w-to-determine-the-levels-of-abstraction Simple and clear, good design -> Correct, clear, easy to change -[..]rrectness-clarity-and-changeability.html
(google search) (amazon search)

Mon Jan 28 21:31:57 HKT 2013 From /weblog/design


List of Turing Award Lecture -

classic-computer-science-text -[..]0/classic-computer-science-text-and.html

How emacs is beautiful -

(google search) (amazon search)

Mon Jan 21 17:07:23 HKT 2013 From /weblog/design


Agile Models Distilled: Potential Artifacts for Agile Modeling -

Difference between Association, Composition, Aggregation, Dependency, Abstraction, Realization, Generalization -[..]1/quick-summary-object-associations.html

(google search) (amazon search)

Sun Jan 20 01:35:15 HKT 2013 From /weblog/design


"Bad programmers worry about the code. Good programmers worry about data structures and their relationships." -[..]uote-about-good-programmer/163187#163187

Compare between schema and schema=less ( like key value mapping ) data -

(google search) (amazon search)

Tue Jan 01 10:28:13 HKT 2013 From /weblog/design


Quotations on simplicity in software design -

2 hard things, caching and naming -

(google search) (amazon search)

Tue Dec 18 00:49:34 HKT 2012 From /weblog/design/interview

Alan Kay

Not interview, but a lot of useful link -[..]0_h&elq=c2568ee4975f4e69b244d72a9a8e2487

(google search) (amazon search)

Tue Oct 02 20:34:57 HKT 2012 From /weblog/design/distribute


Google spanner[..]ogle-spanners?e57078b0?317bb970?b3b99980

(google search) (amazon search)

Mon Oct 01 23:49:18 HKT 2012 From /weblog/design


Examples of proper and inproper constructor -[..]s-guide/flaw-constructor-does-real-work/

(google search) (amazon search)

Wed Sep 26 21:45:25 HKT 2012 From /weblog/design


Polyglot Persistence, choosing difference approach for storage -

How leveldb store data? SSTable ( Sorted String Table ) -[..]able-and-log-structured-storage-leveldb/

(google search) (amazon search)

Sat Jul 28 10:24:11 HKT 2012 From /weblog/design

object oriented

This article show some problems of abusing object, a good reading -

Why extends in evil -[..]avaworld/jw-08-2003/jw-0801-toolbox.html

Fundamental fault of procedure programming -

OO suck?!

(google search) (amazon search)

Sun Jun 10 22:54:15 HKT 2012 From /weblog/design/examples


The design of LLVM -[..]9_h&elq=d513b4b897824dcc8fef763eaf9bc12a

(google search) (amazon search)

Fri Jun 08 01:22:23 HKT 2012 From /weblog/design

state machine[..]developers-never-use-state-machines.html

(google search) (amazon search)

Fri Jun 08 01:21:55 HKT 2012 From /weblog/design


Is it better to wrap all node with methods, or use regular expression to manipulate? I think we should use best tools case by case. -

Matching Wildcards: An Algorithm -

Generic Text Comparison Tool with LCS Approach -[..]neric-text-comparison-tool-with-lcs.html

(google search) (amazon search)