Sat May 14 18:59:23 GMT 2011 From /weblog/design
unmaintainable
http://mindprod.com/jgloss/unmain.html
http://c2.com/cgi/wiki?CodeSmell
(google search) (amazon search)
download zip of files only Sat May 14 18:59:23 GMT 2011 From /weblog/design unmaintainablehttp://mindprod.com/jgloss/unmain.html http://c2.com/cgi/wiki?CodeSmell (google search) (amazon search) Sat May 14 18:52:07 GMT 2011 From /weblog/design/pattern criticismSuggest use to take a fresh look of original "pattern language" - http://perl.plover.com/yak/design/ , in his opinions, it is more about separate design to difference groups than create reusable design. Some more... http://www.relevancellc.com[..]007/5/17/design-patterns-are-code-smells http://www.codinghorror.com/blog/archives/000899.html Some say pattern should be language feature ... http://www.codinghorror.com/blog/archives/000308.html 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 http://jchyip.blogspot.com/2008/01/gefn.html http://jchyip.blogspot.com[..]est-practice-vs-pattern-vs-standard.html http://jchyip.blogspot.com[..]ndard-approach-does-not-necessarily.html Use pattern in hello world, sample of over engineering: http://developers.slashdot.org/comments.pl?sid=33602&cid=3636102 (google search) (amazon search) Sat May 14 18:42:47 GMT 2011 From /weblog/design DomainDrivenA short presentation - http://www.cincomsmalltalk.com[..]gView?showComments=true&entry=3297327433 http://www.methodsandtools.com/archive/archive.php?id=97 A list of resource - http://ajlopez.wordpress.com[..]06/12/11/domain-driven-design-resources/ Few links about OO and DDD http://www.markhneedham.com[..]iven-design-object-oriented-programming/ http://fragmental.tw[..]ject-oriented-design-which-how-and-what/ Example of getting the right model, or, model with less pain to work with - http://www.lostechies.com[..]gregate-component-pattern-in-action.aspx Explanation of Entities, Value Objects, Aggregates and Roots - http://www.lostechies.com[..]-value-objects-aggregates-and-roots.aspx http://movablesharp.blogspot.com/search/?q=UDI http://mhinze.com/there-is-never-a-collection-of-value-objects/ http://dddsample.sourceforge.net/characterization.html An example of how to driven the bounded context mapping - http://www.infoq.com/articles/ddd-contextmapping One style of doing DDD - http://www.jnsk.se/weblog/posts/dddstyle2.htm (google search) (amazon search) Sat May 14 18:40:40 GMT 2011 From /weblog/design interfaceArguement of overuse interface, I trend to support - http://blog.sidu.in[..]ramming-to-interfaces-strikes-again.html A very long discussion related, Test-friendly, but not caller-friendly? - http://www.nabble.com[..]ring-your-development--t2039307i120.html Comparison of interface vs. abstract class - http://blogs.sun.com[..]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 - http://java.dzone.com/articles/are-marker-interfaces-dead http://martinfowler.com/eaaDev/OrganizingPresentations.html (google search) (amazon search) Sat May 14 18:19:55 GMT 2011 From /weblog/design manifestoThe 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. - http://37signals.com/manifesto (google search) (amazon search) Sat May 14 18:11:54 GMT 2011 From /weblog/design deadlockDeadlock detector sample - http://www.onjava.com/lpt/a/5246 http://www.javaspecialists.eu/archive/Issue130.html http://www.javaspecialists.eu/archive/Issue147.html Deadlock in J2EE, explaining deadlock in various place, e.g. DB, VM, code,... - http://jdj.sys-con.com/read/204688_p.htm A blog comment about database deadlock very detail - http://softarc.blogspot.com[..]2007/04/java-wish-list-2-retry-code.html Technique to prevent deadlock: Automatic Lock Releases, Timeout, automatic detection - http://onjava.com/lpt/a/5246 (google search) (amazon search) Sat Apr 23 17:07:07 GMT 2011 From /weblog/design sagaIntroduction to Saga - http://www.udidahan.com[..]sistence-and-event-driven-architectures/ (google search) (amazon search) Thu Feb 10 16:48:54 GMT 2011 From /weblog/design when api design rule conflict2 best practices of API design confilct each other, and how to find out the solution - http://martinfowler.com/bliki/ExpressionBuilder.html What exactly simple mean? http://typo.objectmentor.com[..]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? - http://www.artima.com/weblogs/viewpost.jsp?thread=125574 (google search) (amazon search) Mon Feb 07 16:38:32 GMT 2011 From /weblog/design/distribute GridGainImplement ping-pong play between two nodes on the cloud using GridGain Distributed Actors - http://gridgaintech.wordpress.com[..]11/01/26/distributed-actors-in-gridgain/ (google search) (amazon search) Sat Jan 15 17:51:29 GMT 2011 From /weblog/design testablehttp://misko.hevery.com/code-reviewers-guide/ Discussion on TDD algorithm - http://css.dzone.com/articles/tdd-algorithms (google search) (amazon search) Mon Dec 13 16:57:34 GMT 2010 From /weblog/design languageIssues 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 - http://jroller.com[..]tmotion?entry=annotations_suck_a_lot_and Compare OO feature of difference language - http://www.derangedcoder.net[..]ral/comparingObjectOrientedFeatures.html Comparing C# and Java - http://www.25hoursaday.com/CsharpVsJava.html Discussion about extending standard API - http://www.codinghorror.com/blog/archives/001151.html Few good suggestion when thinking of design a language, Consider using ML, Don't be afraid of being the same - http://www.plsadventures.com[..]programming-language-design-is-hard.html Design Principles Behind Smalltalk, see how idea of inheriance, polymorphism originated - http://web.archive.org[..]/design_principles_behind_smalltalk.html (google search) (amazon search) Tue Feb 02 04:03:55 GMT 2010 From /weblog/design indexingtwelve things you should know about indexing - http://www.ademero.com[..]elve-things-you-should-know/indexing.php (google search) (amazon search) Wed Jan 20 17:46:26 GMT 2010 From /weblog/design/IoC Inversion of ControlWhen 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. http://www.martinfowler.com[..]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... - http://howardlewisship.com[..]endency-injection-mirror-of-garbage.html IMHO jetty is the first widely used program about IoC idea, even before spring - http://kasparov.skife.org/blog/2004/08/30/ Explain when IoC is overkill - http://blog.objectmentor.com[..]010/01/17/dependency-injection-inversion (google search) (amazon search) Thu Jan 14 11:13:15 GMT 2010 From /weblog/design aspectArticle with example to show how aspect can help in most common case - http://www.infoq.com/articles/aspects-of-domain-model-mgmt http://veerasundar.com[..]se-cases-of-aspect-oriented-programming/ (google search) (amazon search) Tue Jan 05 17:47:53 GMT 2010 From /weblog/design versionA Theory of Compatible Versions, and introduction of how and why difference versions are comptible or not - http://www.xml.com/lpt/a/1684 XStream offers some support for refactorings (aliases can help). But very soon you will run into big troubles and will have to make some decisions. Either avoid refactorings (just a little tweak here and there, will weaken your architecture over time) or start implementing workarounds – e.g. custom converters (much work, bad code). - http://blog.cedarsoft.com[..]ts-wrong-with-xstream-and-similar-tools/ (google search) (amazon search) Wed Dec 30 16:46:40 GMT 2009 From /weblog/design/interview Rod JohnsonLessons Learned From Java EE’s Evolution, discuss about value of standard and opensource - http://www.infoq.com/presentations/Lessons-Learned-from-Java-EE (google search) (amazon search) Sat Dec 12 02:43:54 GMT 2009 From /weblog/design loginBatch login Authentication - http://www.udidahan.com[..]us-high-performance-login-for-web-farms/ (google search) (amazon search) Wed Dec 09 16:01:54 GMT 2009 From /weblog/design/interview Ralph Johnsonhttp://www.infoq.com[..]h-Johnson-Parallel-Programming-Patterns# (google search) (amazon search) Fri Nov 27 07:56:17 GMT 2009 From /weblog/design/distribute eventual-consistencyA short example to show how eventual-consistency work - http://sbtourist.blogspot.com[..]/11/eventual-consistency-by-example.html (google search) (amazon search) Thu Nov 12 01:57:25 GMT 2009 From /weblog/design/pattern repositoryhttp://giorgiosironi.blogspot.com/2009/10/repository-pattern.html (google search) (amazon search) Fri Sep 25 11:04:28 GMT 2009 From /weblog/design mutabilityhttp://en.wikipedia.org/wiki/Const http://www.c2.com/cgi/wiki?ValueObjectsShouldBeImmutable http://www.markhneedham.com[..]09/16/coding-watch-out-for-mutable-code/ Discuss issue of mutability from another aspect - http://www.artima.com/articles/hickey_on_time.html (google search) (amazon search) Fri Sep 25 02:27:20 GMT 2009 From /weblog/design GUIIdea of using in memory DB as cache - http://www.nabble.com[..]-do-you-think-about-that--tf4938723.html MVP sample - http://digerati-illuminatus.blogspot.com[..]omposite-ui-application-block-model.html http://googletesting.blogspot.com[..]ith-all-sport-drug-scandals-of-late.html http://blog.dczweb.net[..]el-View-Presenter-%28MVP%29-Pattern.aspx http://googlewebtoolkit.blogspot.com[..]dget-best-practices-widget-building.html (google search) (amazon search) Thu Sep 24 04:35:05 GMT 2009 From /weblog/design failfastHave read this article long time before: http://www.martinfowler.com/ieeeSoftware/failFast.pdf However, the more I work on programming the more I find that reasonable default (may be with logging) work better in some cases, but really need to beware about the cost of debugging if there is problem.... Another discussion about failfast vs. failsafe - http://www.certpal.com[..]009/09/iterators-fail-fast-vs-fail-safe/ (google search) (amazon search) Fri Sep 18 17:37:37 GMT 2009 From /weblog/design concepthttp://www.butunclebob.com[..].UncleBob.ArchitectureIsaSecondaryEffect sunday-school truth: if you don't do well in small think, you will do worse at big thing: http://udidahan.weblogs.us/archives/035032.html Wait for best solution - http://www.threeriversinstitute.org/blog/?p=374 (google search) (amazon search) Sat Sep 12 16:05:27 GMT 2009 From /weblog/design deleteI think there's perfectly reasonable scenarios for both soft and hard deletes, with and without audit trails. 1. Soft delete: A user signs off of your service, but you need to keep (anonymized) stats data consistent for your customers - here you cannot remove the entire user, you just blank his personal data (name, email, phone, ...) and keep the anonymized statistical data (country, birth year, profession). 2. Soft (or super-soft) delete with audit trail: Any financial transaction data, even if entered by error, may only be corrected by adding a correction entry, not by deleting the erroneous entry, or the IRS will be all over you. So either you flag it as deleted (soft delete) or you correct it by adding another entry ("super-soft delete"). 3. Hard delete with audit trail: A user unsubscribes from your newsletter. No need to keep the info "he once was subscribed to it" in the live database, but need to keep the info somewhere accessible in case he sues you for spamming and you can prove "but back in August when you got the mail, you were still subscribed". 4. Hard delete with no audit trail: Personal data as in #1 if your local data protection laws require. (This means *no* more storing, *anywhere*, technically speaking not even in last month's backup, but that's another issue altogether.) http://ayende.com/Blog/archive/2009/08/30/avoid-soft-deletes.aspx And Udi think is real life, people usually never really delete something - http://www.udidahan.com/2009/09/01/dont-delete-just-dont/ (google search) (amazon search) |