carfield.com.hk functional.txt 2017-11-21T16:28:10Z 2017-11-21T16:28:10Z <br/>Having functional program in java? <a href="http://codemonkeyism.com/functional-programming/">http://codemonkeyism.com/functional-programming/</a> <br/><br/>Functional programming in old java, with eclipse template - <a href="http://www.javacodegeeks.com/2012/03/functional-programming-with-map-and.html">http://www.javacodegeeks.com[..]functional-programming-with-map-and.html</a> <br/><br/>Functional Programming For The Rest of Us - <a href="http://www.defmacro.org/ramblings/fp.html?">http://www.defmacro.org/ramblings/fp.html?</a> <br/><br/>collection-pipeline - <a href="http://martinfowler.com/articles/collection-pipeline/">http://martinfowler.com/articles/collection-pipeline/</a> <br/><br/>Make code composable - <a href="https://hackernoon.com/practical-functional-programming-6d7932abc58b">https://hackernoon.com[..]ical-functional-programming-6d7932abc58b</a> <br/><br/><script type="text/javascript"><!--google_ad_client = "pub-9426659565807829";google_ad_slot = "9359905831";google_ad_width = 728;google_ad_height = 15;//--></script><script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script> 2017-11-21T16:28:10Z static.txt 2017-11-16T01:55:26Z 2017-11-16T01:55:26Z <br/>I will prefer using static method as less as possible... there is some<br/>side effect you are not expected, like, are you sure it thread safe? static<br/>method easier to have thread problem.<br/><br/>You may take a look at <a href="http://debasishg.blogspot.com/2007/03/making-classes-unit-testable.html">http://debasishg.blogspot.com[..]007/03/making-classes-unit-testable.html</a> , <a href="http://www.beust.com/weblog/archives/000173.html">http://www.beust.com/weblog/archives/000173.html</a> and <a href="http://discuss.joelonsoftware.com/default.asp?pg=pgDiscussThread&ixDiscussTopicParent=7972&ixDiscussGroup=3&cReplies=29">http://discuss.joelonsoftware.com[..]Parent=7972&ixDiscussGroup=3&cReplies=29</a> <br/><br/>Parameter passing vs static accessor: Should I press things around or get from public static instance? - <a href="http://groups.yahoo.com/group/refactoring/message/3342">http://groups.yahoo.com/group/refactoring/message/3342</a> <br/><br/>Reason of static method is not overrided - <a href="http://groups.google.com/group/comp.lang.java.programmer/browse_thread/thread/ec8b924d60dd4734/99b488aa1f8106c9">http://groups.google.com[..]thread/ec8b924d60dd4734/99b488aa1f8106c9</a> <br/><br/>Another example of thread problem with static member - <a href="http://jroller.com/page/dschneller?entry=calendar_dateformat_and_multi_threading">http://jroller.com[..]=calendar_dateformat_and_multi_threading</a> <br/><br/>How to mock static method code for testing - <a href="http://blog.xebia.com/2007/06/21/mocking-static-calls/">http://blog.xebia.com/2007/06/21/mocking-static-calls/</a> <br/><br/><a href="http://googletesting.blogspot.com/2008/12/static-methods-are-death-to-testability.html">http://googletesting.blogspot.com[..]ic-methods-are-death-to-testability.html</a> <br/><br/>Factory is bad? - <a href="http://www.yegor256.com/2017/11/14/static-factory-methods.html">http://www.yegor256.com/2017/11/14/static-factory-methods.html</a> <br/><br/><script type="text/javascript"><!--google_ad_client = "pub-9426659565807829";google_ad_slot = "9359905831";google_ad_width = 728;google_ad_height = 15;//--></script><script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script> 2017-11-16T01:55:26Z API design guideline.txt 2017-11-12T16:44:30Z 2017-11-12T16:44:30Z <br/>This is a message from a management blog, but I think the arguement is also apply API design. In fact, I think most critical difference of good and bad API is knowing which small detail is important and which is not - <a href="http://www.goodproductmanager.com/2007/11/08/sweat-the-small-stuff/">http://www.goodproductmanager.com[..]er.com/2007/11/08/sweat-the-small-stuff/</a> <br/><br/>Design tips:<br/><a href="http://www.artima.com/weblogs/viewpost.jsp?thread=142428">http://www.artima.com/weblogs/viewpost.jsp?thread=142428</a> <br/><a href="http://openide.netbeans.org/tutorial/api-design.html">http://openide.netbeans.org/tutorial/api-design.html</a> <br/><a href="http://www.cincomsmalltalk.com/blog/blogView?showComments=true&entry=3258158706">http://www.cincomsmalltalk.com[..]gView?showComments=true&entry=3258158706</a> <br/><a href="http://today.java.net/pub/a/today/2006/08/24/five-habits-of-highly-profitable-developers.html">http://today.java.net[..]its-of-highly-profitable-developers.html</a> <br/><a href="http://www.infoq.com/news/2007/08/why-api-design-matters">http://www.infoq.com/news/2007/08/why-api-design-matters</a> <br/><a href="http://www.infoq.com/presentations/effective-api-design">http://www.infoq.com/presentations/effective-api-design</a> <br/><a href="http://neuroning.com/2006/11/19/on-api-design-guidelines">http://neuroning.com/2006/11/19/on-api-design-guidelines</a> <br/><br/>About Compatibility issues<br/><a href="http://wiki.eclipse.org/Evolving_Java-based_APIs">http://wiki.eclipse.org/Evolving_Java-based_APIs</a> <br/><br/>A blog of using interfaces-vs-abstract-classes<br/><a href="http://hoskinator.blogspot.com/2006/04/interfaces-vs-abstract-classes.html">http://hoskinator.blogspot.com[..]6/04/interfaces-vs-abstract-classes.html</a> <br/><br/>XOM design overview - <a href="http://www.xom.nu/designprinciples.xhtml#d0e309">http://www.xom.nu/designprinciples.xhtml#d0e309</a> <br/><br/>You need to identify the business value but not pick any tools/design just because it is cool - <a href="http://myarch.com/what-is-good-soa">http://myarch.com/what-is-good-soa</a> <br/><br/>A lot of links here - <a href="http://kasparov.skife.org/blog-live/src/api-design-refs.writeback">http://kasparov.skife.org/blog-live/src/api-design-refs.writeback</a> <a href="http://discuss.joelonsoftware.com/default.asp?design.4.527465">http://discuss.joelonsoftware.com/default.asp?design.4.527465</a> <br/><br/>An introduction of good OSS project to study their source - <a href="http://techkriti.wordpress.com/2007/06/28/learning-from-the-source/">http://techkriti.wordpress.com[..]com/2007/06/28/learning-from-the-source/</a> <br/><br/>CCCCDPIPE - <a href="http://blog.objectmentor.com/articles/2007/08/02/which-came-first">http://blog.objectmentor.com/articles/2007/08/02/which-came-first</a> <br/><br/>Discussion of why getting feedback quick is important - <a href="http://blog.objectmentor.com/articles/2007/11/13/you-dont-know-what-you-dont-know-until-you-take-the-next-step">http://blog.objectmentor.com[..]u-dont-know-until-you-take-the-next-step</a> <br/><br/>Someone saying that routines is the greatest invention in CS, I agree - <a href="http://www.codinghorror.com/blog/archives/001129.html">http://www.codinghorror.com/blog/archives/001129.html</a> <br/><br/>New way of modeling system then layering, The Onion Architecture - <a href="http://jeffreypalermo.com/blog/the-onion-architecture-part-1/">http://jeffreypalermo.com/blog/the-onion-architecture-part-1/</a> <br/><br/>SOLID - <a href="http://www.lostechies.com/blogs/chad_myers/archive/2008/03/07/pablo-s-topic-of-the-month-march-solid-principles.aspx">http://www.lostechies.com[..]of-the-month-march-solid-principles.aspx</a> <a href="http://dotnet.dzone.com/news/solid-software-works">http://dotnet.dzone.com/news/solid-software-works</a> <-- very good picture! <a href="http://www.blackwasp.co.uk/SOLIDPrinciples.aspx">http://www.blackwasp.co.uk/SOLIDPrinciples.aspx</a> <br/><br/>Idempotent, Orthogonality, Immutability - <a href="http://www.codinghorror.com/blog/archives/001244.html">http://www.codinghorror.com/blog/archives/001244.html</a> <br/><br/>Some example of how to driven good API - <a href="http://jdegoes.squarespace.com/journal/2009/5/11/good-api-design-part-3.html">http://jdegoes.squarespace.com[..]al/2009/5/11/good-api-design-part-3.html</a> <br/><br/>It's not enough to write tests for an API you develop, you have to write unit tests for code that uses your API. When you do, you learn first-hand the hurdles that your users will have to overcome when they try to test their code independently. <a href="http://butunclebob.com/ArticleS.MichaelFeathers.TheGoldenRuleOfApiDesign">http://butunclebob.com[..]MichaelFeathers.TheGoldenRuleOfApiDesign</a> <br/><br/>Active interface vs. Passive interface, for me this is another way to under "Tell, don't ask" - <a href="http://code-o-matic.blogspot.com/2011/01/note-on-api-design-call-stack-as-source.html">http://code-o-matic.blogspot.com[..]-on-api-design-call-stack-as-source.html</a> <br/><br/>The Principles of Good Programming - <a href="http://www.artima.com/weblogs/viewpost.jsp?thread=331531">http://www.artima.com/weblogs/viewpost.jsp?thread=331531</a> <br/><br/><a href="http://net.tutsplus.com/tutorials/tools-and-tips/3-key-software-principles-you-must-understand/">http://net.tutsplus.com[..]software-principles-you-must-understand/</a> <br/><br/>Difference choice of how API evolute with change - <a href="http://blog.jooq.org/2013/02/01/defensive-api-evolution-with-java-interfaces/">http://blog.jooq.org[..]sive-api-evolution-with-java-interfaces/</a> <br/><br/>JUnit's evolving structure. - <a href="http://edmundkirwan.com/general/junit.html">http://edmundkirwan.com/general/junit.html</a> <br/><br/>API performance contract - <a href="http://queue.acm.org/detail.cfm?ref=rss&id=2576968">http://queue.acm.org/detail.cfm?ref=rss&id=2576968</a> <br/><br/>Consistent naming conventions<br/>Standard terminology<br/>Uniform error responses<br/>Attention to detail (that’s the love part for APIs)<br/>REST APIs that work with only 2 resources and use 4 HTTP verbs (oh, there is so much more to talk about here…)<br/>Avoid API design by way of method-driven approach – that leads you down a slippery slope<br/>- See more at: <a href="http://blogs.ancestry.com/techroots/apis-are-like-parenting/#sthash.Ux1LHMNU.dpuf">http://blogs.ancestry.com[..]are-like-parenting/#sthash.Ux1LHMNU.dpuf</a> <br/><br/><a href="http://blog.jooq.org/2015/05/21/do-not-make-this-mistake-when-developing-an-spi/">http://blog.jooq.org[..]ake-this-mistake-when-developing-an-spi/</a> <br/><br/>Guideline for webapi - <a href="https://cloud.google.com/apis/design/">https://cloud.google.com/apis/design/</a> <br/><br/><script type="text/javascript"><!--google_ad_client = "pub-9426659565807829";google_ad_slot = "9359905831";google_ad_width = 728;google_ad_height = 15;//--></script><script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script> 2017-11-12T16:44:30Z netflix.txt 2017-11-07T16:48:02Z 2017-11-07T16:48:02Z <br/><a href="https://medium.com/refraction-tech-everything/how-netflix-works-the-hugely-simplified-complex-stuff-that-happens-every-time-you-hit-play-3a40c9be254b">https://medium.com[..]ens-every-time-you-hit-play-3a40c9be254b</a> <br/><br/><script type="text/javascript"><!--google_ad_client = "pub-9426659565807829";google_ad_slot = "9359905831";google_ad_width = 728;google_ad_height = 15;//--></script><script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script> 2017-11-07T16:48:02Z comment.txt 2017-10-01T08:19:43Z 2017-10-01T08:19:43Z <br/>A nice thread of discussing how to comment in code - <a href="http://groups.yahoo.com/group/extremeprogramming/message/74195">http://groups.yahoo.com/group/extremeprogramming/message/74195</a> <br/><br/>A Taxonomy Of Comments - <a href="http://blog.codefx.org/techniques/documentation/taxonomy-comments/">http://blog.codefx.org[..]hniques/documentation/taxonomy-comments/</a> <br/><br/>Everything have 2 sides - <a href="http://blog.codefx.org/techniques/documentation/comments-costs-benefits/">http://blog.codefx.org[..]s/documentation/comments-costs-benefits/</a> <br/><br/>Example of comment haven't update freq enough - <a href="http://marxsoftware.blogspot.hk/2016/09/even-good-code-comments-deteriorate.html">http://marxsoftware.blogspot.hk[..]even-good-code-comments-deteriorate.html</a> <br/><br/><a href="https://testing.googleblog.com/2017/07/code-health-to-comment-or-not-to-comment.html">https://testing.googleblog.com[..]health-to-comment-or-not-to-comment.html</a> <br/><br/>Putting comments in code: the good, the bad, and the ugly. - <a href="https://medium.freecodecamp.org/code-comments-the-good-the-bad-and-the-ugly-be9cc65fbf83">https://medium.freecodecamp.org[..]e-good-the-bad-and-the-ugly-be9cc65fbf83</a> <br/><br/><script type="text/javascript"><!--google_ad_client = "pub-9426659565807829";google_ad_slot = "9359905831";google_ad_width = 728;google_ad_height = 15;//--></script><script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script> 2017-10-01T08:19:43Z Implementation.txt 2017-09-20T02:02:11Z 2017-09-20T02:02:11Z <br/>Tired with duplicating Try-Catch for resource acquisition? Can try to create proxy method - <a href="http://hamletdarcy.blogspot.com/2008/09/declarative-synchronization-with-java.html">http://hamletdarcy.blogspot.com[..]clarative-synchronization-with-java.html</a> <br/><br/>Discussion of naming of if block - <a href="http://blog.objectmentor.com/articles/2008/09/26/if-methods-redux">http://blog.objectmentor.com/articles/2008/09/26/if-methods-redux</a> <br/><br/>Factors for choosing a strategic technology stack, runtime performance is not a factor for him, probably good idea - <a href="http://jchyip.blogspot.com/2011/04/factors-for-choosing-strategic.html">http://jchyip.blogspot.com[..]1/04/factors-for-choosing-strategic.html</a> <br/><br/>Don't think , stay focus - <a href="http://www.threeriversinstitute.org/blog/?p=594">http://www.threeriversinstitute.org/blog/?p=594</a> <br/><br/>Using class name as variable name is a bad thing? I doubt about it, but interesting idea - <a href="http://www.warski.org/blog/2013/01/dry-parameter-names/">http://www.warski.org/blog/2013/01/dry-parameter-names/</a> <br/><br/>The problem of using generic name - <a href="http://martinfowler.com/bliki/TransparentCompilation.html">http://martinfowler.com/bliki/TransparentCompilation.html</a> <br/><br/>Beware of where memory allocated, sometime there is no off side for lazy initalization - <a href="http://plumbr.eu/blog/would-you-dare-to-change-hashmap-implementation">http://plumbr.eu[..]ou-dare-to-change-hashmap-implementation</a> <br/><br/>Some suggestion of how to code in order to prevent unreproducible bugs - <a href="http://googletesting.blogspot.hk/2014/02/minimizing-unreproducible-bugs.html">http://googletesting.blogspot.hk[..]4/02/minimizing-unreproducible-bugs.html</a> <br/><br/>More careful to check null - <a href="http://blog.jooq.org/2015/08/11/top-10-useful-yet-paranoid-java-programming-techniques/">http://blog.jooq.org[..]et-paranoid-java-programming-techniques/</a> <br/><br/><a href="http://www.infoq.com/cn/articles/wisdom-of-programming">http://www.infoq.com/cn/articles/wisdom-of-programming</a> <br/><br/>The fewer conditions you test for, the better your code “tastes”. - <a href="https://medium.com/@bartobri/applying-the-linus-tarvolds-good-taste-coding-requirement-99749f37684a#.1glkhe7np">https://medium.com[..]ding-requirement-99749f37684a#.1glkhe7np</a> <br/><br/>Think twice before running a loop - <a href="https://blog.jetbrains.com/idea/2017/08/code-smells-iteration">https://blog.jetbrains.com/idea/2017/08/code-smells-iteration</a> <br/><br/>Example of how to remove mutation status - <a href="https://blog.jetbrains.com/idea/2017/08/code-smells-mutation">https://blog.jetbrains.com/idea/2017/08/code-smells-mutation</a> <br/><br/><script type="text/javascript"><!--google_ad_client = "pub-9426659565807829";google_ad_slot = "9359905831";google_ad_width = 728;google_ad_height = 15;//--></script><script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script> 2017-09-20T02:02:11Z Architecture.txt 2017-09-10T08:25:08Z 2017-09-10T08:25:08Z <br/>Top Ten Software Architecture Mistakes - <a href="http://www.infoq.com/news/2007/10/top-ten-architecture-mistakes">http://www.infoq.com/news/2007/10/top-ten-architecture-mistakes</a> <br/><br/>Discussion about the balance of upfront design - <a href="http://blog.objectmentor.com/articles/2009/04/25/the-scatology-of-agile-architecture">http://blog.objectmentor.com[..]4/25/the-scatology-of-agile-architecture</a> <br/><br/>There is no conflict in agile and architecture - <a href="http://www.andrejkoelewijn.com/wp/2011/03/28/there-is-no-conflict-in-agile-and-architecture/">http://www.andrejkoelewijn.com[..]s-no-conflict-in-agile-and-architecture/</a> <br/><br/><a href="http://c2.com/cgi/wiki?HexagonalArchitecture">http://c2.com/cgi/wiki?HexagonalArchitecture</a> <br/><br/>Experience of build instead of buy - <a href="http://arstechnica.com/business/2012/05/build-versus-buy-one-companys-decision-to-go-it-alone/">http://arstechnica.com[..]uy-one-companys-decision-to-go-it-alone/</a> <br/><br/>Problem of too many layer - <a href="http://johannesbrodwall.com/2014/07/10/the-madness-of-layered-architecture/">http://johannesbrodwall.com[..]/10/the-madness-of-layered-architecture/</a> <br/><br/><a href="http://edmundkirwan.com/general/simple.html">http://edmundkirwan.com/general/simple.html</a> <br/><br/><a href="http://blog.schauderhaft.de/2014/06/29/you-want-to-become-an-software-architect-here-is-your-reading-list/">http://blog.schauderhaft.de[..]are-architect-here-is-your-reading-list/</a> <br/><br/>Sometime it is worth to build to throw - <a href="http://martinfowler.com/bliki/SacrificialArchitecture.html">http://martinfowler.com/bliki/SacrificialArchitecture.html</a> <br/><br/> Business Transactions<br/> External Dependencies<br/> Caching Strategy<br/> Garbage Collection<br/> Application Topology<br/><a href="http://blog.appdynamics.com/java/top-5-java-performance-metrics-to-capture-in-enterprise-applications/">http://blog.appdynamics.com[..]s-to-capture-in-enterprise-applications/</a> <br/><br/>invent a solution the majority of whose components depend on no others with those few components whose task it is to compose those other components being left largely to coordination roles. - <a href="http://edmundkirwan.com/general/simple.html">http://edmundkirwan.com/general/simple.html</a> <br/><br/><a href="http://blog.cloudera.com/blog/2014/09/getting-started-with-big-data-architecture/">http://blog.cloudera.com[..]ting-started-with-big-data-architecture/</a> <br/><br/>Twitter - <a href="http://www.infoq.com/cn/articles/twitter-architecture-evolution">http://www.infoq.com/cn/articles/twitter-architecture-evolution</a> <a href="http://highscalability.com/blog/2016/4/20/how-twitter-handles-3000-images-per-second.html">http://highscalability.com[..]tter-handles-3000-images-per-second.html</a> <br/><br/>Suning, more on HTTP - <a href="http://www.infoq.com/cn/articles/suning-product-details-system-architecture-design">http://www.infoq.com[..]oduct-details-system-architecture-design</a> <br/><br/>Decision - <a href="https://javax0.wordpress.com/2016/05/04/architects-dont-decide/">https://javax0.wordpress.com/2016/05/04/architects-dont-decide/</a> <br/><br/>Some suggestion of making system simple, well, but the suggestion itself it is that simple - <a href="https://www.infoq.com/articles/driving-architectural-simplicity">https://www.infoq.com/articles/driving-architectural-simplicity</a> <br/><br/><a href="https://medium.com/towards-data-science/10-common-software-architectural-patterns-in-a-nutshell-a0b47a1e9013">https://medium.com[..]ural-patterns-in-a-nutshell-a0b47a1e9013</a> <br/><br/><script type="text/javascript"><!--google_ad_client = "pub-9426659565807829";google_ad_slot = "9359905831";google_ad_width = 728;google_ad_height = 15;//--></script><script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script> 2017-09-10T08:25:08Z logging.txt 2017-08-31T02:36:38Z 2017-08-31T02:36:38Z <br/><a href="http://www.codemonkeyism.com/archives/2008/12/16/7-good-rules-to-log-exceptions/">http://www.codemonkeyism.com[..]08/12/16/7-good-rules-to-log-exceptions/</a> - look obvious but a lot of program still make those mistakes. <br/><br/>Do you prefer log more or log smarter? It is good to log smart but if you log more, even if you not smart enough, you still have the data. - <a href="http://www.codinghorror.com/blog/archives/001192.html">http://www.codinghorror.com/blog/archives/001192.html</a> <br/><br/>Basic log techniques - <a href="http://www.ddj.com/cpp/212902973?cid=RSSfeed_DDJ_All">http://www.ddj.com/cpp/212902973?cid=RSSfeed_DDJ_All</a> <br/><br/>Advances and Challenges in Log Analysis - <a href="http://queue.acm.org/detail.cfm?id=2082137&ref=fullrss">http://queue.acm.org/detail.cfm?id=2082137&ref=fullrss</a> <br/><br/>Filtering only useful stacktrace - <a href="http://www.javacodegeeks.com/2012/03/filter-irrelevant-stack-trace-lines-in.html">http://www.javacodegeeks.com[..]ter-irrelevant-stack-trace-lines-in.html</a> <br/><br/>Some suggestion about logging - <a href="http://www.javacodegeeks.com/2011/01/10-tips-proper-application-logging.html">http://www.javacodegeeks.com[..]/10-tips-proper-application-logging.html</a> and <a href="http://googletesting.blogspot.com.au/2013/06/optimal-logging.html">http://googletesting.blogspot.com.au/2013/06/optimal-logging.html</a> <br/><br/>9 Logging Sins in Your Java Applications, the "Logging Plain User Input" is a good one - <a href="https://dzone.com/articles/9-logging-sins-in-your-java-applications">https://dzone.com[..]9-logging-sins-in-your-java-applications</a> <br/><br/><script type="text/javascript"><!--google_ad_client = "pub-9426659565807829";google_ad_slot = "9359905831";google_ad_width = 728;google_ad_height = 15;//--></script><script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script> 2017-08-31T02:36:38Z documentation.txt 2017-08-29T02:34:21Z 2017-08-29T02:34:21Z <br/>Comment about the java document of jdk8 - <a href="http://marxsoftware.blogspot.com.au/2014/03/illuminating-javadoc-of-jdk-8.html">http://marxsoftware.blogspot.com.au[..]14/03/illuminating-javadoc-of-jdk-8.html</a> <br/><br/>Thoughts On Comments - <a href="http://blog.codefx.org/techniques/documentation/thoughts-on-comments/">http://blog.codefx.org[..]ques/documentation/thoughts-on-comments/</a> <br/><br/>The Art of Crafting Architectural Diagrams - <a href="https://www.infoq.com/articles/crafting-architectural-diagrams">https://www.infoq.com/articles/crafting-architectural-diagrams</a> <a href="http://www.infoq.com/cn/articles/crafting-architectural-diagrams">http://www.infoq.com/cn/articles/crafting-architectural-diagrams</a> <br/><br/><script type="text/javascript"><!--google_ad_client = "pub-9426659565807829";google_ad_slot = "9359905831";google_ad_width = 728;google_ad_height = 15;//--></script><script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script> 2017-08-29T02:34:21Z CQRS.txt 2017-08-22T02:05:27Z 2017-08-22T02:05:27Z <br/><a href="http://jonathan-oliver.blogspot.com/2009/10/dddd-why-i-love-cqrs.html">http://jonathan-oliver.blogspot.com[..]ot.com/2009/10/dddd-why-i-love-cqrs.html</a> <br/><br/><a href="http://www.udidahan.com/2010/05/07/cqrs-isnt-the-answer-its-just-one-of-the-questions/">http://www.udidahan.com[..]he-answer-its-just-one-of-the-questions/</a> <br/><br/><a href="http://www.udidahan.com/2009/12/09/clarified-cqrs/">http://www.udidahan.com/2009/12/09/clarified-cqrs/</a> <br/><br/><a href="http://abdullin.com/journal/2011/11/12/new-articles-on-event-sourcing-and-cqrs.html">http://abdullin.com[..]articles-on-event-sourcing-and-cqrs.html</a> <br/><br/><a href="http://squirrel.pl/blog/2015/09/22/writing-an-event-sourced-cqrs-read-model/">http://squirrel.pl[..]riting-an-event-sourced-cqrs-read-model/</a> <br/><br/>How to build an event store - <a href="http://cqrsinfo.com/documents/building-event-storage/">http://cqrsinfo.com/documents/building-event-storage/</a> <br/><br/>A event base web backend - <a href="http://kasparov.skife.org/blog-live/src/erlang/yaws-for-comet.writeback">http://kasparov.skife.org[..]live/src/erlang/yaws-for-comet.writeback</a> <br/><br/>Example code of domain events - <a href="http://www.udidahan.com/2009/06/14/domain-events-salvation/">http://www.udidahan.com/2009/06/14/domain-events-salvation/</a> <br/><br/>Benefit of CQRS - <a href="http://blog.fohjin.com/blog/2009/11/12/CQRS_a_la_Greg_Young">http://blog.fohjin.com/blog/2009/11/12/CQRS_a_la_Greg_Young</a> <br/><br/>event-sourcing - <a href="https://docs.microsoft.com/en-us/azure/architecture/patterns/event-sourcing">https://docs.microsoft.com[..]ure/architecture/patterns/event-sourcing</a> <br/><br/><script type="text/javascript"><!--google_ad_client = "pub-9426659565807829";google_ad_slot = "9359905831";google_ad_width = 728;google_ad_height = 15;//--></script><script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script> 2017-08-22T02:05:27Z null.txt 2017-08-09T03:37:20Z 2017-08-09T03:37:20Z <br/>Use present and absent rather than NULL - <a href="http://binkley.blogspot.com/2012/01/better-than-null.html">http://binkley.blogspot.com/2012/01/better-than-null.html</a> <br/><br/>Propose of enhancement, null handelers and null reference - <a href="http://shemnon.com/speling/2007/01/null-handelers-and-null-refere-1.html">http://shemnon.com[..]01/null-handelers-and-null-refere-1.html</a> <br/><br/>How null breaks polymorphism - <a href="http://eureka3d.com/blog/2006/how-null-breaks-polymorphism-or-the-problem-with-null/">http://eureka3d.com[..]s-polymorphism-or-the-problem-with-null/</a> <a href="http://eureka3d.com/blog/2006/how-null-breaks-polymorphism-or-the-problem-with-null-part-2/">http://eureka3d.com[..]orphism-or-the-problem-with-null-part-2/</a> <br/><br/>Discussion about forbid NULL as parameter and return - <a href="http://javablog.co.uk/2007/05/07/null-parameters-and-returning-null/">http://javablog.co.uk[..]5/07/null-parameters-and-returning-null/</a> <br/><br/>Default object in C# - <a href="http://www.kodefuguru.com/post/2012/09/25/Default-Objects-with-C.aspx">http://www.kodefuguru.com[..]t/2012/09/25/Default-Objects-with-C.aspx</a> <br/><br/>Discussion about using optional - <a href="http://blog.jooq.org/2015/08/20/divided-we-stand-optional/">http://blog.jooq.org/2015/08/20/divided-we-stand-optional/</a> <br/><br/>Some suggest about do something better than use null - <a href="https://blog.jetbrains.com/idea/2017/08/code-smells-null">https://blog.jetbrains.com/idea/2017/08/code-smells-null</a> <br/><br/><script type="text/javascript"><!--google_ad_client = "pub-9426659565807829";google_ad_slot = "9359905831";google_ad_width = 728;google_ad_height = 15;//--></script><script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script> 2017-08-09T03:37:20Z event.txt 2017-08-08T10:12:08Z 2017-08-08T10:12:08Z <br/>Event Bus Implementation(s) - <a href="https://hackernoon.com/event-bus-implementation-s-d2854a9fafd5">https://hackernoon.com/event-bus-implementation-s-d2854a9fafd5</a> <a href="http://www.infoq.com/cn/news/2017/08/Summary-event-bus-implementation">http://www.infoq.com[..]2017/08/Summary-event-bus-implementation</a> <br/><br/><script type="text/javascript"><!--google_ad_client = "pub-9426659565807829";google_ad_slot = "9359905831";google_ad_width = 728;google_ad_height = 15;//--></script><script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script> 2017-08-08T10:12:08Z refactoring.txt 2017-08-03T10:22:14Z 2017-08-03T10:22:14Z <br/><a href="http://c2.com/cgi/wiki?RefactoringLanguage">http://c2.com/cgi/wiki?RefactoringLanguage</a> <br/><br/>Refactoring to Patterns Catalog - <a href="http://www.industriallogic.com/xp/refactoring/catalog.html">http://www.industriallogic.com/xp/refactoring/catalog.html</a> <br/><br/>Article talk about the book: <a href="http://www.oreillynet.com/ruby/blog/2006/03/transformation.html">http://www.oreillynet.com/ruby/blog/2006/03/transformation.html</a> <br/><br/>Catagories smell into "smell in class" and "smell between class" - <a href="http://www.codinghorror.com/blog/archives/000589.html">http://www.codinghorror.com/blog/archives/000589.html</a> <br/><br/>Known but good to remind <a href="http://www.thecodejunkie.com/2010/01/6-steps-to-master-refactoring.html">http://www.thecodejunkie.com[..]10/01/6-steps-to-master-refactoring.html</a> <br/><br/>An experience sharing - <a href="http://www.javacodegeeks.com/2011/05/refactor-hudson-god-class.html">http://www.javacodegeeks.com[..]m/2011/05/refactor-hudson-god-class.html</a> <a href="http://www.peterprovost.org/blog/post/Extreme-Refactoring-with-Brian-Button.aspx">http://www.peterprovost.org[..]treme-Refactoring-with-Brian-Button.aspx</a> <br/><br/>Refactoring should not introduce bug... - <a href="http://jchyip.blogspot.com/2008/01/so-why-are-you-refactoring-again.html">http://jchyip.blogspot.com[..]01/so-why-are-you-refactoring-again.html</a> <br/><br/>A way to have formal refactoring, through Feature Clustering, Rapid Scratch Refactoring and Twisting Classes - <a href="http://www.thekua.com/atwork/2011/05/notes-from-michael-feathers-brutal-refactoring/">http://www.thekua.com[..]rom-michael-feathers-brutal-refactoring/</a> <br/><br/>Not all code change is refactoring - <a href="http://parlezuml.com/blog/?postid=850">http://parlezuml.com/blog/?postid=850</a> , and <br/><br/>Some common issues about refactoring code in a team - <a href="http://www.rickylui.com/blog/2008/01/28/dont-be-a-refactoring-bigot/">http://www.rickylui.com[..]/2008/01/28/dont-be-a-refactoring-bigot/</a> <a href="http://blog.joepoon.com/2008/01/dangers-of-premature-refactoring.html">http://blog.joepoon.com[..]01/dangers-of-premature-refactoring.html</a> , beware taking the balance - <a href="http://www.makinggoodsoftware.com/2011/03/27/the-obsession-with-beautiful-code-the-refactor-syndrome">http://www.makinggoodsoftware.com[..]ith-beautiful-code-the-refactor-syndrome</a> <br/><br/>Refactory if needed - <a href="http://dreamhead.blogbus.com/logs/24874404.html">http://dreamhead.blogbus.com/logs/24874404.html</a> <br/><br/>Refactoring, when start, when stop? - <a href="http://martinfowler.com/bliki/OpportunisticRefactoring.html">http://martinfowler.com/bliki/OpportunisticRefactoring.html</a> <br/><br/>Refactoring metric - <a href="http://www.grahambrooks.com/blog/metrics-based-refactoring-for-cleaner-code/">http://www.grahambrooks.com[..]rics-based-refactoring-for-cleaner-code/</a> <br/><br/>Getting rid of util class<br/>1) If the family of methods uses different parameters, depending on optional input or representations of the same input, then consider transforming the Helper via a fluent interface using the Builder pattern: from a collection of static methods like Helper.calculate(x), calculate(x, y), calculate(x, z), calculate(y, z) we could easily get to something like newBuilder().with(x).with(y).calculate(). The helper class would then offer behaviours, reduce its list of business methods and provide more flexibility for future extensions. Callers would then use it as internal field for reuse or instantiate it where needed. The helper class (as we knew it) disappeared.<br/>2) If the helper class provides methods which are actually actions for different inputs (but, at this point, for the same domain), consider applying the Command pattern: the caller will actually create the required command (which will handle the necessary input and offer a behaviour) and an invoker will execute it within a certain context. You may get a command implementation for each static method and your code would move from an Helper.calculate(x, y), calculate(z) to something like invoker.calculate(new Action(x, y)). Bye bye helper class.<br/>3) If the helper class provides methods for the same input but different logics, consider applying the Strategy pattern: each static method may easily become a strategy implementation, vanishing the need of its original helper class (replaced by a context component then).<br/>4) If the given set of static methods concerns a certain class hierarchy or a defined collection of components, then consider applying the Visitor pattern: you may get several visitor implementations providing different visit methods which would probably replace partially or entirely the previously existing static methods.<br/>5) If none of the above cases met your criteria, then apply the three most important indicators: your experience, your competences in the given project and common sense.<br/><br/><a href="http://www.refactoringideas.com/how-to-get-rid-of-helper-and-utils-classes/">http://www.refactoringideas.com[..]-to-get-rid-of-helper-and-utils-classes/</a> <br/><br/>Converting forloop to streaming - <a href="http://martinfowler.com/articles/refactoring-pipelines.html">http://martinfowler.com/articles/refactoring-pipelines.html</a> <br/><br/>Refactoring JavaScript from Sync to Async in Safe Baby-Steps - <a href="http://www.natpryce.com/articles/000812.html">http://www.natpryce.com/articles/000812.html</a> <br/><br/>code-refactoring-dos-donts - <a href="https://jaxenter.com/code-refactoring-dos-donts-135960.html">https://jaxenter.com/code-refactoring-dos-donts-135960.html</a> <br/><br/><script type="text/javascript"><!--google_ad_client = "pub-9426659565807829";google_ad_slot = "9359905831";google_ad_width = 728;google_ad_height = 15;//--></script><script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script> 2017-08-03T10:22:14Z packaging.txt 2017-07-19T06:59:51Z 2017-07-19T06:59:51Z <br/>Avoid circular dependencies between packages! <a href="http://www.infoq.com/news/2007/06/large-code-bases">http://www.infoq.com/news/2007/06/large-code-bases</a> <br/><br/>2 common approach, by function or by layer - <a href="http://dolszewski.com/architecture/project-package-organization/">http://dolszewski.com/architecture/project-package-organization/</a> <br/><br/><script type="text/javascript"><!--google_ad_client = "pub-9426659565807829";google_ad_slot = "9359905831";google_ad_width = 728;google_ad_height = 15;//--></script><script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script> 2017-07-19T06:59:51Z microservice.txt 2017-03-19T02:25:58Z 2017-03-19T02:25:58Z <br/>The Hidden Dividends of Microservices - <a href="http://queue.acm.org/detail.cfm?ref=rss&id=2956643">http://queue.acm.org/detail.cfm?ref=rss&id=2956643</a> <br/><br/>Best practices - <a href="http://www.infoq.com/cn/articles/best-practice-of-constructing-micro-service-system-part03">http://www.infoq.com[..]constructing-micro-service-system-part03</a> <br/><br/><a href="http://basho.com/posts/technical/microservices-please-dont/">http://basho.com/posts/technical/microservices-please-dont/</a> <br/><br/>Compare using library / service - <a href="http://blog.jessitron.com/2017/01/dependencies.html">http://blog.jessitron.com/2017/01/dependencies.html</a> <a href="http://www.infoq.com/cn/articles/dependency-management-whether-library-or-service">http://www.infoq.com[..]cy-management-whether-library-or-service</a> <br/><br/><script type="text/javascript"><!--google_ad_client = "pub-9426659565807829";google_ad_slot = "9359905831";google_ad_width = 728;google_ad_height = 15;//--></script><script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script> 2017-03-19T02:25:58Z visibility.txt 2017-03-09T15:13:09Z 2017-03-09T15:13:09Z <br/>Someone saying that having private method is anti-pattern, here is the discussion - <a href="http://www.infoq.com/news/2008/01/private-methods-tdd-design">http://www.infoq.com/news/2008/01/private-methods-tdd-design</a> <br/><br/>Discussion of encapsulation - <a href="http://niket-this.blogspot.com/2008/01/encapsulation-does-it-really-exist.html">http://niket-this.blogspot.com[..]/encapsulation-does-it-really-exist.html</a> <br/><br/>My view on this is that most of the time there's little value in self-encapsulation. The value of encapsulation is proportional to the scope of the data access. Classes are usually small (at least mine are) so direct access isn't going to be an issue within that scope. Most accessors are simple assignments for the setter and retrieval for the getter, so there's little value in using them internally. - <a href="https://martinfowler.com/bliki/SelfEncapsulation.html">https://martinfowler.com/bliki/SelfEncapsulation.html</a> <br/><br/><script type="text/javascript"><!--google_ad_client = "pub-9426659565807829";google_ad_slot = "9359905831";google_ad_width = 728;google_ad_height = 15;//--></script><script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script> 2017-03-09T15:13:09Z data.txt 2017-02-23T08:14:03Z 2017-02-23T08:14:03Z <br/>Interview with JOOQ founder - <a href="https://www.infoq.com/news/2017/02/data-geekery-releases-jooq-3-9">https://www.infoq.com/news/2017/02/data-geekery-releases-jooq-3-9</a> <br/><br/><script type="text/javascript"><!--google_ad_client = "pub-9426659565807829";google_ad_slot = "9359905831";google_ad_width = 728;google_ad_height = 15;//--></script><script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script> 2017-02-23T08:14:03Z dsl.txt 2017-02-21T09:44:20Z 2017-02-21T09:44:20Z <br/>A paper show the evolution of a DSL - <a href="http://www.mockobjects.com/files/evolving_an_edsl.ooplsa2006.pdf">http://www.mockobjects.com/files/evolving_an_edsl.ooplsa2006.pdf</a> <br/><br/>A stock trading order example of DSL - <a href="http://debasishg.blogspot.com/2008/05/designing-internal-dsls-in-scala.html">http://debasishg.blogspot.com[..]05/designing-internal-dsls-in-scala.html</a> <br/><br/>What is the difference between API / DSL if we don't write a parser for our language? From Martin Fowler's blog - <a href="http://martinfowler.com/bliki/DslReadings.html">http://martinfowler.com/bliki/DslReadings.html</a> , it is mentioned:<pre>Piers Cawley makes the point that a key characteristic of DSLs is their narrow focus on a domain.</pre>I think this is a very good summary, usually if most of the APIs are getXXX() , setXXX(), loadXXX() , createXXX() ........ Then we mostly design APIs that expose low level detail to the API user to work on, which, is work but user probably work nicer if we can come up with language like API that allow users to do their work in more descriptive level. <br/><br/>I think if API design like that usually it will reduce the code duplication, what ever real duplication or conceptual duplication. It probably already apply "Tell, don't ask" style - <a href="http://c2.com/cgi/wiki?TellDontAsk">http://c2.com/cgi/wiki?TellDontAsk</a> <br/><br/>A discussion about applying "Tell, don't ask" which lead to message passing architecture - <a href="http://beautifulcode.oreillynet.com/2007/10/do_messages_want_to_be_asynchr.php">http://beautifulcode.oreillynet.com[..]07/10/do_messages_want_to_be_asynchr.php</a> <br/><br/>And other discussion about "Tell, don't ask"<br/><a href="http://sriramnarayan.blogspot.com/2008/11/demeters-law-tell-dont-ask.html">http://sriramnarayan.blogspot.com[..]/2008/11/demeters-law-tell-dont-ask.html</a> <br/><a href="http://sriramnarayan.blogspot.com/2008/11/part-two-demeters-law-tell-dont-ask.html">http://sriramnarayan.blogspot.com[..]part-two-demeters-law-tell-dont-ask.html</a> <br/><a href="http://sriramnarayan.blogspot.com/2008/12/part-three-demeters-law-tell-dont-ask.html">http://sriramnarayan.blogspot.com[..]rt-three-demeters-law-tell-dont-ask.html</a> <br/><br/>One good sample with explaination - <br/><a href="http://hamletdarcy.blogspot.com/2007/10/is-it-really-domain-specific-language.html">http://hamletdarcy.blogspot.com[..]-it-really-domain-specific-language.html</a> <br/><a href="http://nat.truemesh.com/archives/000727.html">http://nat.truemesh.com/archives/000727.html</a> <br/><br/>Few links - <a href="http://dreamhead.blogbus.com/logs/17667876.html">http://dreamhead.blogbus.com/logs/17667876.html</a> <br/><br/>From CRUD to DDD - <a href="http://www.udidahan.com/2008/02/15/from-crud-to-domain-driven-fluency/">http://www.udidahan.com[..]2/15/from-crud-to-domain-driven-fluency/</a> <br/><br/>I like this: "XML abuse reduction (conducting an “XML Intervention”)" - <a href="http://www.lostechies.com/blogs/chad_myers/archive/2008/10/26/alt-net-workshops-internal-dsl-draft-outline-notes.aspx">http://www.lostechies.com[..]ps-internal-dsl-draft-outline-notes.aspx</a> <br/><br/>DSL maybe the result of encapsulation - <a href="http://dreamhead.blogbus.com/logs/214225975.html">http://dreamhead.blogbus.com/logs/214225975.html</a> <br/><br/>Excellent implementation of extending java yourself - <a href="http://www.infoq.com/presentations/JetBrains-MPS-DSL">http://www.infoq.com/presentations/JetBrains-MPS-DSL</a> <a href="http://www.infoq.com/presentations/JetBrains-MPS-DSL-2">http://www.infoq.com/presentations/JetBrains-MPS-DSL-2</a> <br/><br/>How DSL method named - <a href="http://tech.pro/blog/1588/the-java-fluent-api-designer-crash-course">http://tech.pro[..]he-java-fluent-api-designer-crash-course</a> <br/><br/><a href="https://tomassetti.me/domain-specific-languages/">https://tomassetti.me/domain-specific-languages/</a> <br/><br/><script type="text/javascript"><!--google_ad_client = "pub-9426659565807829";google_ad_slot = "9359905831";google_ad_width = 728;google_ad_height = 15;//--></script><script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script> 2017-02-21T09:44:20Z reactive.txt 2017-02-15T16:03:22Z 2017-02-15T16:03:22Z <br/><a href="https://realm.io/news/mobilization-hugo-visser-rxjava-for-rest-of-us/">https://realm.io[..]ation-hugo-visser-rxjava-for-rest-of-us/</a> <br/><br/><script type="text/javascript"><!--google_ad_client = "pub-9426659565807829";google_ad_slot = "9359905831";google_ad_width = 728;google_ad_height = 15;//--></script><script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script> 2017-02-15T16:03:22Z performance.txt 2017-02-07T07:44:58Z 2017-02-07T07:44:58Z <br/><a href="http://highscalability.com/blog/2012/5/16/big-list-of-20-common-bottlenecks.html">http://highscalability.com[..]6/big-list-of-20-common-bottlenecks.html</a> <br/><br/>Nothing specific, mostly code clean up, refactoring and simplification, the performance boost was a surprise. <- This is a good one - <a href="http://bad-concurrency.blogspot.com.au/2012/07/disruptor-v3-faster-hopefully.html">http://bad-concurrency.blogspot.com.au[..]12/07/disruptor-v3-faster-hopefully.html</a> <br/><br/>Is there anything we can do about this when designing algorithms and data-structures? Yes there is a lot we can do. If we perform chunks of work on data that is co-located, and we stride around memory in a predictable fashion, then our algorithms can be many times faster. For example rather than using bucket and chain hash tables, like in the JDK, we can employ hash tables using open-addressing with linear-probing. Rather than using linked-lists or trees with single items in each node, we can store an array of many items in each node. - <a href="http://mechanical-sympathy.blogspot.com.au/2012/08/memory-access-patterns-are-important.html">http://mechanical-sympathy.blogspot.com.au[..]emory-access-patterns-are-important.html</a> <br/><br/>Skip lists are used instead of b-trees because b-trees don’t scale. - <a href="http://highscalability.com/blog/2012/8/14/memsql-architecture-the-fast-mvcc-inmem-lockfree-codegen-and.html">http://highscalability.com[..]ast-mvcc-inmem-lockfree-codegen-and.html</a> <br/><br/>Beware about the performance issue of static initalization - <a href="http://stackoverflow.com/questions/14010906/given-that-hashmaps-in-jdk1-6-and-above-cause-problems-with-multi-threading-how">http://stackoverflow.com[..]-cause-problems-with-multi-threading-how</a> <br/><br/>Experiment show why arraylist is better in most cases - <a href="http://www.javaadvent.com/2013/12/arraylist-vs-linkedlist.html">http://www.javaadvent.com/2013/12/arraylist-vs-linkedlist.html</a> <br/><br/>How to design low latency application in java - <a href="http://vanillajava.blogspot.com.au/2014/05/chronicle-and-low-latency-in-java.html">http://vanillajava.blogspot.com.au[..]5/chronicle-and-low-latency-in-java.html</a> <br/><br/><a href="http://highscalability.com/blog/2014/5/21/9-principles-of-high-performance-programs.html">http://highscalability.com[..]ciples-of-high-performance-programs.html</a> <a href="http://blog.libtorrent.org/2012/12/principles-of-high-performance-programs/">http://blog.libtorrent.org[..]principles-of-high-performance-programs/</a> <br/><br/>Suggestion about how to determine number of thread pool - <a href="http://venkateshcm.com/2014/05/How-To-Determine-Web-Applications-Thread-Poll-Size/">http://venkateshcm.com[..]rmine-Web-Applications-Thread-Poll-Size/</a> <br/><br/>Beware the performance penalty of logging - <a href="https://plumbr.eu/blog/locking-and-logging">https://plumbr.eu/blog/locking-and-logging</a> <br/><br/>Keep thing dynamic - <a href="http://highscalability.com/blog/2014/5/21/9-principles-of-high-performance-programs.html">http://highscalability.com[..]ciples-of-high-performance-programs.html</a> <br/><br/><a href="http://www.rationaljava.com/2015/01/first-rule-of-performance-optimisation.html">http://www.rationaljava.com[..]st-rule-of-performance-optimisation.html</a> <br/><br/><a href="http://www.eecs.berkeley.edu/~rcs/research/interactive_latency.html">http://www.eecs.berkeley.edu[..]u/~rcs/research/interactive_latency.html</a> <br/><br/><a href="http://highscalability.com/blog/2015/5/4/elements-of-scale-composing-and-scaling-data-platforms.html?SSLoginOk=true">http://highscalability.com[..]aling-data-platforms.html?SSLoginOk=true</a> <br/><br/>Discuss about developing low latency financial application - <a href="http://queue.acm.org/detail.cfm?ref=rss&id=2770868">http://queue.acm.org/detail.cfm?ref=rss&id=2770868</a> <br/><br/>Discussion of object pooling - <a href="http://highscalability.com/blog/2015/7/29/a-well-known-but-forgotten-trick-object-pooling.html">http://highscalability.com[..]-but-forgotten-trick-object-pooling.html</a> <a href="http://coffeenco.de/articles/jvm_performance_part_1_object_pooling.html">http://coffeenco.de[..]m_performance_part_1_object_pooling.html</a> <br/><br/>Efficiency - the amount of work you need to do.<br/>Performance - how fast you can do that work<br/>Efficiency - governed by your algorithm<br/>Performance - governed by your data structures.<br/><a href="http://www.rationaljava.com/2015/07/the-difference-between-efficiency-and.html">http://www.rationaljava.com[..]e-difference-between-efficiency-and.html</a> <br/><br/><br/>Turning off power save mode on the CPU reduced brought the max latency from 11 msec down to 8 msec.<br/>Guaranteeing threads will always have CPU resources using CPU isolation and thread affinity brought the maximum latency down to 14 microseconds.<br/><a href="http://highscalability.com/blog/2015/9/30/strategy-taming-linux-scheduler-jitter-using-cpu-isolation-a.html">http://highscalability.com[..]eduler-jitter-using-cpu-isolation-a.html</a> <br/><a href="http://epickrram.blogspot.co.uk/2015/09/reducing-system-jitter.html">http://epickrram.blogspot.co.uk[..]o.uk/2015/09/reducing-system-jitter.html</a> <br/><br/>About design for performance for webapi - <a href="http://tech.forter.com/9-5-low-latency-decision-as-a-service-design-patterns/">http://tech.forter.com[..]y-decision-as-a-service-design-patterns/</a> <br/><br/>check list - <a href="http://techbeacon.com/102-performance-engineering-questions-every-software-development-team-should-ask">http://techbeacon.com[..]ery-software-development-team-should-ask</a> <br/><br/>Beware if system utilization over 80% - <a href="http://www.infoq.com/cn/news/2016/02/utilisation-wait-latency">http://www.infoq.com/cn/news/2016/02/utilisation-wait-latency</a> <a href="http://robharrop.github.io/maths/performance/2016/02/20/service-latency-and-utilisation.html">http://robharrop.github.io[..]/20/service-latency-and-utilisation.html</a> <br/><br/>scalable-io-events-vs-multithreading-based - <a href="https://thetechsolo.wordpress.com/2016/02/29/scalable-io-events-vs-multithreading-based/">https://thetechsolo.wordpress.com[..]lable-io-events-vs-multithreading-based/</a> <br/><br/>How to find out bottleneck - <a href="https://vanilla-java.github.io/2017/02/06/Improving-percentile-latencies-in-Chronicle-Queue.html">https://vanilla-java.github.io[..]entile-latencies-in-Chronicle-Queue.html</a> <br/><br/><script type="text/javascript"><!--google_ad_client = "pub-9426659565807829";google_ad_slot = "9359905831";google_ad_width = 728;google_ad_height = 15;//--></script><script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script> 2017-02-07T07:44:58Z thread.txt 2017-01-23T10:33:07Z 2017-01-23T10:33:07Z <br/>Stealing thread - <a href="http://badamczewski.blogspot.com.au/2012/05/work-stealing.html">http://badamczewski.blogspot.com.au/2012/05/work-stealing.html</a> <br/><br/>Intel Guide for Developing Multithreaded Applications - <a href="http://software.intel.com/en-us/articles/intel-guide-for-developing-multithreaded-applications">http://software.intel.com[..]or-developing-multithreaded-applications</a> <br/><br/>Difference ways to stop a thread - <a href="http://www.ddj.com/article/printableArticle.jhtml;jsessionid=OTWBXPER4EKEKQSNDLPSKH0CJUNN2JVN?articleID=207100682&dept_url=/hpc-high-performance-computing/">http://www.ddj.com[..]ept_url=/hpc-high-performance-computing/</a> <br/><br/>Interesting, I am not sure if I agree, but chrome ( which use fork ) are really cool in performance: <blackquote><br/>There’s another problem with Unix programming in Ruby that I’ll just touch on briefly: Java people and Windows people. They’re going to tell you that fork(2) is bad because they don’t have it on their platform, or it sucks on their platform, or whatever, but it’s cool, you know, because they have native threads, and threads are like, way better anyways.<br/><br/>Fuck that.<br/><br/>Don’t ever let anyone tell you that fork(2) is bad. Thirty years from now, there will still be a fork(2) and a pipe(2) and a exec(2) and smart people will still be using them to solve hard problems reliably and predictably, just like they were thirty years ago.<br/><br/>MRI Ruby people need to accept, like Python (you have seen multiprocessing, yes?), that Unix processes are one of two techniques for achieving reliable concurrency and parallelism in server applications. Threads are out. You can use processes, or async/events, or both processes and async/events, but definitely not threads. Threads are out.</blackquote> <a href="http://tomayko.com/writings/unicorn-is-unix">http://tomayko.com/writings/unicorn-is-unix</a> <br/><br/>1x1 win M*N - <a href="http://binkley.blogspot.com/2012/01/1-1-beats-n-m.html">http://binkley.blogspot.com/2012/01/1-1-beats-n-m.html</a> <br/><br/>Best number of threads:<br/>N = number of CPUs<br/>U = target CPU utilization (0 <= U <= 1)<br/>W/C = ration of wait time to cpu time (measured through profiling)<br/><br/>threads = N * U * (1 + W/C) - <a href="http://www.ibm.com/developerworks/library/j-jtp0730.html">http://www.ibm.com/developerworks/library/j-jtp0730.html</a> <a href="http://stackoverflow.com/questions/3149081/what-is-a-good-ratio-of-java-threads-to-cpus-on-solaris">http://stackoverflow.com[..]ratio-of-java-threads-to-cpus-on-solaris</a> <br/><br/>Another post about tuning thread pool - <a href="http://www.javaadvent.com/2015/12/the-importance-of-tuning-your-thread-pools.html">http://www.javaadvent.com[..]ortance-of-tuning-your-thread-pools.html</a> <br/><br/>Threads Basics - <a href="http://www.hpl.hp.com/techreports/2009/HPL-2009-259html.html">http://www.hpl.hp.com/techreports/2009/HPL-2009-259html.html</a> <a href="http://www.hpl.hp.com/personal/Hans_Boehm/c++mm/threadsintro.html">http://www.hpl.hp.com/personal/Hans_Boehm/c++mm/threadsintro.html</a> <br/><br/>The Dos and Don'ts of Multithreading - <a href="http://www.infoq.com/presentations/multithreading">http://www.infoq.com/presentations/multithreading</a> <br/><br/><a href="https://www.infoq.com/articles/engstrand-microservice-threading">https://www.infoq.com/articles/engstrand-microservice-threading</a> <br/><br/><a href="http://cbloomrants.blogspot.hk/2009/02/02-26-09-low-level-threading-table-of.html">http://cbloomrants.blogspot.hk[..]-26-09-low-level-threading-table-of.html</a> <br/><br/><script type="text/javascript"><!--google_ad_client = "pub-9426659565807829";google_ad_slot = "9359905831";google_ad_width = 728;google_ad_height = 15;//--></script><script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script> 2017-01-23T10:33:07Z gc.txt 2017-01-17T15:09:08Z 2017-01-17T15:09:08Z <br/><a href="https://blog.plan99.net/modern-garbage-collection-911ef4f8bd8e#.wr03zaasu">https://blog.plan99.net[..]rbage-collection-911ef4f8bd8e#.wr03zaasu</a> <br/><br/><script type="text/javascript"><!--google_ad_client = "pub-9426659565807829";google_ad_slot = "9359905831";google_ad_width = 728;google_ad_height = 15;//--></script><script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script> 2017-01-17T15:09:08Z cache.txt 2017-01-17T14:58:18Z 2017-01-17T14:58:18Z <br/>5 Hints You're Using A Map When You Should Be Using a Cache? - <a href="http://dsoguy.blogspot.com/2009/10/5-hints-your-using-map-when-you-should.html">http://dsoguy.blogspot.com[..]ints-your-using-map-when-you-should.html</a> <br/><br/>How hibernate design the cache - <a href="http://www.javalobby.org/java/forums/t48846.html">http://www.javalobby.org/java/forums/t48846.html</a> <br/><br/>Consider to do more careful update, not just update DB and dirty cache, but update DB and cache in a same time - <a href="http://dormando.livejournal.com/495593.html">http://dormando.livejournal.com/495593.html</a> <br/><br/>Caching can be architectural smell, some hint and some alternative - <a href="http://www.codingthearchitecture.com/2011/10/02/is_caching_an_architectural_smell.html">http://www.codingthearchitecture.com[..]2/is_caching_an_architectural_smell.html</a> <br/><br/>General caching discussion - <a href="http://tutorials.jenkov.com/software-architecture/caching-techniques.html">http://tutorials.jenkov.com[..]are-architecture/caching-techniques.html</a> <a href="http://www.infoq.com/cn/news/2017/01/Program-design-how-cache">http://www.infoq.com/cn/news/2017/01/Program-design-how-cache</a> <br/><br/><a href="http://highscalability.com/blog/2014/7/16/10-program-busting-caching-mistakes.html">http://highscalability.com[..]10-program-busting-caching-mistakes.html</a> <a href="http://www.codeproject.com/KB/web-cache/cachingmistakes.aspx?azid=74">http://www.codeproject.com[..]B/web-cache/cachingmistakes.aspx?azid=74</a> <br/><br/><script type="text/javascript"><!--google_ad_client = "pub-9426659565807829";google_ad_slot = "9359905831";google_ad_width = 728;google_ad_height = 15;//--></script><script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script> 2017-01-17T14:58:18Z work with legacy.txt 2016-12-07T10:48:22Z 2016-12-07T10:48:22Z <br/>Simple ways to improve legacy code - <a href="http://www.onjava.com/lpt/a/4805">http://www.onjava.com/lpt/a/4805</a> <br/><br/>One approach to work with legacy code, instead of phrase by phrase or part by part, identify and improve the domain part first - <a href="http://gojko.net/2009/06/19/eric-evans-why-do-efforts-to-replace-legacy-systems-fail/">http://gojko.net[..]-efforts-to-replace-legacy-systems-fail/</a> <br/><br/><a href="http://arne-mertz.de/2016/09/legacy-applications-tests-modularization/">http://arne-mertz.de[..]egacy-applications-tests-modularization/</a> <br/><br/>Note of common point for refactoring with legacy application - <a href="http://marxsoftware.blogspot.hk/2016/10/unintentionally-obfuscated.html">http://marxsoftware.blogspot.hk[..]/2016/10/unintentionally-obfuscated.html</a> <br/><br/><script type="text/javascript"><!--google_ad_client = "pub-9426659565807829";google_ad_slot = "9359905831";google_ad_width = 728;google_ad_height = 15;//--></script><script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script> 2016-12-07T10:48:22Z Amazon.txt 2016-11-28T16:12:57Z 2016-11-28T16:12:57Z <br/>"They build their own infrastructure for performance, reliability, and cost control reasons. By building it themselves they never have to say Amazon went down because it was company X's fault. Their software may not be more reliable than others, but they can fix, debug, and deployment much quicker than when working with a 3rd party."<br/><br/><a href="http://highscalability.com/amazon-architecture">http://highscalability.com/amazon-architecture</a> <br/><br/>Shel Kaphan - <a href="http://www.infoq.com/cn/articles/talk-with-amazon-shel-kaphan">http://www.infoq.com/cn/articles/talk-with-amazon-shel-kaphan</a> <br/><br/><script type="text/javascript"><!--google_ad_client = "pub-9426659565807829";google_ad_slot = "9359905831";google_ad_width = 728;google_ad_height = 15;//--></script><script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script> 2016-11-28T16:12:57Z