RSS feed [root] /design /weblog




login:

password:

title search:




 


Thu Mar 27 10:48:31 GMT 2025

design



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

Thu Sep 18 06:47:54 GMT 2014 From /weblog/design

write shy code


Writing shy code is just a small start at preventing the introduction of bugs, but it really helps. Just as in the real world, good fences make good neighbor - as long as you don't peek through them.

http://www.computer.org/software/homepage/2003/s1const.htm
http://www.pragmaticprogrammer.com/ppllc/papers/1998_05.html

Other than that, there is also security risk if you show too much to other - http://www.indicthreads.com[..]_or_objects_java_security_problem_1.html

An example of why passing Map around is wrong and show solution of that example - http://antagonisticpleiotropy.blogspot.com[..]spot.com/2008/01/hashmap-temptation.html

Quoting from Getting Method in Beck’s 1997 Smalltalk Best Practice Patterns (emphasis his): “Here’s the real secret of writing good Getting Methods - make them private at first. I cannot stress this enough. … There are cases where you will publish the existence of Getting Methods for use in the outside world. You should make a conscious decision to do this after considering all the alternatives. It is preferable to give an object more responsibility, rather than have it act like a data structure.”
Quoting from Setting Method: “Everything I said once about Getting Methods, I’d like to say twice about Setting Methods. Setting Methods should be even more private. It is one thing for another object to tear out your state, it is quite another for it to bash in a new state.”

http://tech.groups.yahoo.com[..]om/group/domaindrivendesign/message/5701

East: Clean and DRY, an example of why tell don't ask help - http://jamesladdcode.com/?p=294

But personally, I don't use tell-dont-ask. I do look to co-locate data and behavior, which often leads to similar results. - http://martinfowler.com/bliki/TellDontAsk.html

Another discussion about getter and setter - http://www.yegor256.com[..]/09/16/getters-and-setters-are-evil.html

(google search) (amazon search)


Tue Aug 12 07:13:25 GMT 2014 From /weblog/design

prevent code debt


A nice article and nice term about prevent coding problem at first

http://www.stickyminds.com[..]bjectId=9860&tth=DYN&tt=siteemail&iDyn=2

In contrast, someone like to manage it - http://www.jamesshore.com[..]ardMeeting/Voluntary-Technical-Debt.html http://blogs.construx.com[..]archive/2007/11/01/technical-debt-2.aspx

Martin fowler's comment - http://martinfowler.com/bliki/DesignStaminaHypothesis.html

A blog about duplication is BAD - http://www.codinghorror.com/blog/archives/000805.html http://blog.objectmentor.com[..]/articles/2007/04/16/code-is-a-liability

Don't use feature-toggles - http://swreflections.blogspot.com.au[..]ture-toggles-are-one-of-worst-kinds.html

(google search) (amazon search)



Wed May 21 09:43:40 GMT 2014 From /weblog/design/examples

language


Discussion of some decision made for improvement of Java Interface at Java8 - http://blog.jooq.org[..]java-8-friday-language-design-is-subtle/

(google search) (amazon search)


Mon May 19 07:37:30 GMT 2014 From /weblog/design/examples

openssl


Show how TDD can help OpenSSL to prevent heartbleed if they do it at the first place - http://martinfowler.com/articles/testing-culture.html

(google search) (amazon search)


Fri Apr 25 02:38:41 GMT 2014 From /weblog/design/pattern

strategy


Using generic to prevent downcast for Strategy Pattern, every time we try to cast something, may be worth to consider generic first? - http://www.javaspecialists.co.za/archive/newsletter.do?issue=123

http://javarevisited.blogspot.com.au[..]te-and-strategy-design-pattern-java.html

(google search) (amazon search)


Mon Apr 14 03:43:47 GMT 2014 From /weblog/design/distribute

mapreduce


MapReduce patterns

Basic MapReduce Patterns
Counting and Summing
Collating
Filtering (“Grepping”), Parsing, and Validation
Distributed Task Execution
Sorting
Not-So-Basic MapReduce Patterns
Iterative Message Passing (Graph Processing)
Distinct Values (Unique Items Counting)
Cross-Correlation
Relational MapReduce Patterns
Selection
Projection
Union
Intersection
Difference
GroupBy and Aggregation
Joining

- http://highlyscalable.wordpress.com[..]press.com/2012/02/01/mapreduce-patterns/

Showing that map reduce can support real time transaction processing - http://googleblog.blogspot.com[..]09/12/relevance-meets-real-time-web.html

Using map-reduce in cloud - http://horicky.blogspot.com/2010/02/cloud-mapreduce-tricks.html

Papers of using mapreduce - http://atbrox.com[..]thms-in-academic-papers-may-2010-update/ http://code.google.com/edu/parallel/mapreduce-tutorial.html

mapreduce experiment - http://www.macs.hw.ac.uk/~rs46/multicore_challenge1/

Pattern and anti-pattern - http://developer.yahoo.com[..]/2010/08/apache_hadoop_best_practices_a/ http://blog.dynatrace.com[..]bout-the-performance-of-map-reduce-jobs/

http://techalpine.com/what-are-the-hadoop-mapreduce-concepts/

(google search) (amazon search)


Wed Mar 19 02:56:41 GMT 2014 From /weblog/design

copyAndPaste


Really? I would rather say every line of code need to maintain - http://www.javacodegeeks.com[..]s-copy-and-paste-programming-really.html

Data, Type, Algorithm - http://www.dotnetcodegeeks.com[..]012/05/types-of-duplication-in-code.html

Using closure to prevent code duplication - http://dublintech.blogspot.com.au[..]com.au/2014/03/good-use-of-closures.html

"Duplicated code is the root of all evil in software design. When a system is littered with many snippets of identical, or nearly identical code, it is indicative of sloppiness, carelessness, and sheer unprofessionalism. It is the guilt-edged responsibility of all software developers to root out and eliminate duplication whenever they find it." - http://edmundkirwan.com/general/duplication.html

(google search) (amazon search)


Thu Mar 13 08:22:34 GMT 2014 From /weblog/design

style


Discussion of style of writing code, like always have valuable for return value, and use return for parameter check - http://www.beust.com/weblog/archives/000308.html

We should really delete the code if we need to... http://nedbatchelder.com/text/deleting-code.html

And more about programming style - http://www.codinghorror.com/blog/archives/001184.html http://www.onextrapixel.com[..]for-keeping-your-programming-code-clean/

About using Of() as factory name - http://blog.joda.org/2011/09/factory-names.html

http://blog.jooq.org[..]-subtle-best-practices-when-coding-java/

http://blog.activelylazy.co.uk[..]uk/2014/03/10/are-comments-always-wrong/

(google search) (amazon search)


Wed Mar 12 05:37:40 GMT 2014 From /weblog/design/pattern

builder


http://www.petrikainulainen.net[..]-reasons-why-i-like-the-builder-pattern/ <- and it is not Silver Bullet

(google search) (amazon search)


Thu Jan 09 02:40:28 GMT 2014 From /weblog/design/interview

Maurice Herlihy


http://teachingintrotocs.blogspot.fr[..]012/05/interview-of-maurice-herlihy.html

(google search) (amazon search)


Fri Dec 20 04:17:18 GMT 2013 From /weblog/design/distribute

overload


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

http://blog.iron.io[..]spikability-applications-ability-to.html

http://highscalability.com[..]izing-and-capacity-planning-assumin.html

(google search) (amazon search)


Wed Dec 11 01:16:42 GMT 2013 From /weblog/design

batch


Batch processing best practices - http://vladmihalcea.wordpress.com[..]013/10/30/scheduled-jobs-best-practices/

Batch can improve latency, if it reduce number of request - http://highscalability.com[..]ng-requests-actually-reduce-latency.html

(google search) (amazon search)


Wed Nov 06 04:37:46 GMT 2013 From /weblog/design

web


Good REST API - http://horicky.blogspot.com/2012/03/designing-robust-web-api.html http://www.infoq.com/presentations/Building-a-Great-Web-API

Discussion of page object - http://martinfowler.com/bliki/PageObject.html

Difference API document tools - http://www.infoq.com/research/api-documentation

(google search) (amazon search)


Fri Nov 01 06:28:59 GMT 2013 From /weblog/design/examples

ebay


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.

http://highscalability.com/ebay-architecture

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

(google search) (amazon search)


Tue Oct 29 09:54:03 GMT 2013 From /weblog/design/distribute

feed


http://highscalability.com[..]for-scaling-your-high-traffic-feeds.html

(google search) (amazon search)


Thu Oct 24 09:01:36 GMT 2013 From /weblog/design/examples

ide


http://www.infoq.com/articles/codenvy-architecture-part-1
http://www.infoq.com/articles/codenvy-architecture-part-2

(google search) (amazon search)


Fri Oct 18 06:22:38 GMT 2013 From /weblog/design/distribute

nosql


Compare SQL ( RDBMS ) and noSQL ( object base {distributed??} ) data management - http://queue.acm.org/detail.cfm?id=1961297&ref=fullrss

The definition - http://martinfowler.com/bliki/NosqlDefinition.html http://martinfowler.com/articles/nosqlKeyPoints.html

Is Cassandra really that good? - http://www.datastax.com/dev/blog/2012-in-review-performance

http://martinfowler.com/articles/bigData/

NoSQL Options Compared - http://www.drdobbs.com[..]cleId=240151198&siteSectionName=database

A 3 Step Guide to Getting Started with NoSQL - http://jyops.blogspot.com.au[..]-step-guide-to-getting-started-with.html

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

(google search) (amazon search)


Thu Oct 17 10:16:02 GMT 2013 From /weblog/design/distribute

realtime


Few real time map reduce framework - http://www.infoq.com/news/2011/09/twitter-storm-real-time-hadoop

How facebook and twitter doing real-time analytic - http://natishalom.typepad.com[..]ers-approach-to-real-time-analytics.html

(google search) (amazon search)


Wed Jul 03 06:25:31 GMT 2013 From /weblog/design/examples

Lucene


How Lucene implement transaction - http://blog.mikemccandless.com/2012/03/transactional-lucene.html

(google search) (amazon search)


Sat Mar 02 09:01:24 GMT 2013 From /weblog/design

code metric


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

Meaningful Metrics - http://www.developsense.com/2009/01/meaningful-metrics.html

http://programmers.stackexchange.com[..]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

http://martinfowler.com/articles/useOfMetrics.html

(google search) (amazon search)


Thu Feb 14 04:33:33 GMT 2013 From /weblog/design/pattern

singleton


How to get ride of it - http://tech.puredanger.com/2007/07/03/pattern-hate-singleton/

Trying to make singleton testable - http://alexruiz.developerblogs.com/?p=1832

Why singleton? Some time may be just create the object once at the beginning is fine - http://www.butunclebob.com[..]ticleS.UncleBob.SingletonVsJustCreateOne

And a good article of telling why don't use singleton - http://www-106.ibm.com[..]works/webservices/library/co-single.html

About how to get it right in Java - http://idiotechie.com/?p=1256

(google search) (amazon search)


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

Jim Showalter


Principal engineer at Intuit - http://www.javaworld.com[..]im-showalter-of-intuit.html&site=jw_core

(google search) (amazon search)


Mon Jan 28 13:31:57 GMT 2013 From /weblog/design

classic


List of Turing Award Lecture - http://c2.com/cgi/wiki?TuringAwardLecture

classic-computer-science-text - http://mark-watson.blogspot.com[..]0/classic-computer-science-text-and.html

How emacs is beautiful - http://martinfowler.com/bliki/InternalReprogrammability.html

(google search) (amazon search)


Mon Jan 21 09:07:23 GMT 2013 From /weblog/design

model


Agile Models Distilled: Potential Artifacts for Agile Modeling - http://www.agilemodeling.com/artifacts/

Difference between Association, Composition, Aggregation, Dependency, Abstraction, Realization, Generalization - http://techie-experience.blogspot.gr[..]1/quick-summary-object-associations.html

(google search) (amazon search)