345449.vhj5l3oj7.asiaUncleBob.txt2024-10-14T12:34:33Z2024-10-14T12:34:33Z<br/><a href="http://www.infoq.com/news/2015/11/uncle-bob-oath-programmer">http://www.infoq.com/news/2015/11/uncle-bob-oath-programmer</a> <br/><br/><a href="https://www.infoq.cn/article/dgkW2Y83r09pOKIAljCW">https://www.infoq.cn/article/dgkW2Y83r09pOKIAljCW</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>2024-10-14T12:34:33Zdata.txt2024-08-25T08:17:24Z2024-08-25T08:17:24Z<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/>The Untold Story of SQLite - <a href="https://corecursive.com/066-sqlite-with-richard-hipp/">https://corecursive.com/066-sqlite-with-richard-hipp/</a> <a href="https://www.infoq.cn/article/Y1GrKv1JeIJAyqwG8cab">https://www.infoq.cn/article/Y1GrKv1JeIJAyqwG8cab</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>2024-08-25T08:17:24Zspotify.txt2024-02-24T12:45:36Z2024-02-24T12:45:36Z<br/>System Design Interview Question: Design Spotify - <a href="https://levelup.gitconnected.com/system-design-interview-question-design-spotify-4a8a79697dda">https://levelup.gitconnected.com[..]iew-question-design-spotify-4a8a79697dda</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>2024-02-24T12:45:36ZArchitecture.txt2024-01-16T11:38:09Z2024-01-16T11:38:09Z<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/><a href="https://www.in28minutes.com/introduction-to-software-architecture">https://www.in28minutes.com/introduction-to-software-architecture</a> <br/><br/>Explaining common different architecture patterns - <a href="https://levelup.gitconnected.com/software-architecture-the-important-architectural-patterns-you-need-to-know-a1f5ea7e4e3d">https://levelup.gitconnected.com[..]l-patterns-you-need-to-know-a1f5ea7e4e3d</a> <br/><br/>Software Architecture Patterns - <a href="https://orkhanscience.medium.com/software-architecture-patterns-5-mins-read-e9e3c8eb47d2">https://orkhanscience.medium.com[..]ecture-patterns-5-mins-read-e9e3c8eb47d2</a> <br/><br/>12 Software Architecture Pitfalls and How to Avoid Them - <a href="https://www.infoq.com/articles/avoid-architecture-pitfalls/">https://www.infoq.com/articles/avoid-architecture-pitfalls/</a> <a href="https://www.infoq.cn/article/TUTLdsEvSyUr9H1bmD3b">https://www.infoq.cn/article/TUTLdsEvSyUr9H1bmD3b</a> <br/><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>2024-01-16T11:38:09Zdisney.txt2023-12-09T14:48:16Z2023-12-09T14:48:16Z<br/>Why Disney Plus’s new Hulu integration was such a huge, high-stakes challenge - <a href="https://www.fastcompany.com/90993539/disney-plus-hulu-integration-beta">https://www.fastcompany.com[..]993539/disney-plus-hulu-integration-beta</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>2023-12-09T14:48:16Zmicroservice.txt2023-12-09T14:20:22Z2023-12-09T14:20:22Z<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/>What We Got Wrong: Lessons from the Birth of Microservices - <a href="https://www.infoq.com/presentations/google-microservices/">https://www.infoq.com/presentations/google-microservices/</a> <a href="https://www.infoq.cn/article/L*bT1UfuVoj1I6NRNM3U">https://www.infoq.cn/article/L*bT1UfuVoj1I6NRNM3U</a> <br/><br/>From Monolith to Microservices for Github - <a href="https://www.infoq.com/presentations/github-rails-monolith-microservices/">https://www.infoq.com[..]ons/github-rails-monolith-microservices/</a> <a href="https://www.infoq.cn/article/zYGF4FpIVVt5U2omioUu">https://www.infoq.cn/article/zYGF4FpIVVt5U2omioUu</a> <br/><br/>Monolithic to Microservices Architecture with Patterns & Best Practices - <a href="https://medium.com/design-microservices-architecture-with-patterns/monolithic-to-microservices-architecture-with-patterns-best-practices-a768272797b2">https://medium.com[..]ith-patterns-best-practices-a768272797b2</a> <a href="https://www.infoq.cn/article/6dlQZisMiXK3hzLIwEET">https://www.infoq.cn/article/6dlQZisMiXK3hzLIwEET</a> <br/><br/>Don’t start with microservices – monoliths are your friend - <a href="https://arnoldgalovics.com/microservices-in-production/">https://arnoldgalovics.com/microservices-in-production/</a> <a href="https://www.infoq.cn/article/qhx3Dazko1EC2KMimJBc">https://www.infoq.cn/article/qhx3Dazko1EC2KMimJBc</a> <br/><br/>The False Dichotomy of Monolith vs. Microservices - <a href="https://www.infoq.com/articles/monolith-versus-microservices/">https://www.infoq.com/articles/monolith-versus-microservices/</a> <a href="https://www.infoq.cn/article/WWdqpvUpCmvyw8X7u1KH">https://www.infoq.cn/article/WWdqpvUpCmvyw8X7u1KH</a> <br/><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>2023-12-09T14:20:22Zcommandline.txt2023-11-11T12:39:05Z2023-11-11T12:39:05Z<br/><br/>Elevate developer experiences with CLI design guidelines - <a href="https://www.thoughtworks.com/insights/blog/engineering-effectiveness/elevate-developer-experiences-cli-design-guidelines">https://www.thoughtworks.com[..]eloper-experiences-cli-design-guidelines</a> <br/><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>2023-11-11T12:39:05Zamazon.txt2023-11-01T14:03:03Z2023-11-01T14:03:03Z<br/>How I scaled Amazon’s Load Generator to run on 1000s of machines - <a href="https://carloarg02.medium.com/how-i-scaled-amazons-load-generator-to-run-on-1000s-of-machines-4ca8f53812cf">https://carloarg02.medium.com[..]to-run-on-1000s-of-machines-4ca8f53812cf</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>2023-11-01T14:03:03Zmeta.txt2023-10-23T12:56:49Z2023-10-23T12:56:49Z<br/>Data engineering at Meta: High-Level Overview of the internal tech stack - <a href="https://medium.com/@AnalyticsAtMeta/data-engineering-at-meta-high-level-overview-of-the-internal-tech-stack-a200460a44fe">https://medium.com[..]-of-the-internal-tech-stack-a200460a44fe</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>2023-10-23T12:56:49Zarchitecture.txt2023-04-30T14:05:15Z2023-04-30T14:05:15Z<br/>7 Architecture Design Patterns — You wish you knew before interview - <a href="https://web3usecase.co/7-architecture-design-patterns-you-wish-you-knew-before-interview-e9806bc01b6f">https://web3usecase.co[..]h-you-knew-before-interview-e9806bc01b6f</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>2023-04-30T14:05:15Zhashing.txt2023-03-06T11:58:46Z2023-03-06T11:58:46Z<br/><a href="http://computinglife.wordpress.com/2008/11/20/why-do-hash-functions-use-prime-numbers/">http://computinglife.wordpress.com[..]why-do-hash-functions-use-prime-numbers/</a> <br/><a href="http://www.azillionmonkeys.com/qed/hash.html">http://www.azillionmonkeys.com/qed/hash.html</a> <br/><br/>The World's Smallest Hash Table - <a href="https://orlp.net/blog/worlds-smallest-hash-table/">https://orlp.net/blog/worlds-smallest-hash-table/</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>2023-03-06T11:58:46ZJeff Dean.txt2023-02-28T00:53:04Z2023-02-28T00:53:04Z<br/>How Google’s Jeff Dean became the Chuck Norris of the Internet. - <a href="https://slate.com/technology/2013/01/jeff-dean-facts-how-a-google-programmer-became-the-chuck-norris-of-the-internet.html">https://slate.com[..]me-the-chuck-norris-of-the-internet.html</a> <br/><br/>谷歌最好的程序员 Jeff Dean:我用过 18 种编程语言 - <a href="https://www.infoq.cn/news/6DxKgF0KO8kgkYh3EIDT">https://www.infoq.cn/news/6DxKgF0KO8kgkYh3EIDT</a> <a href="https://twitter.com/JeffDean/status/1627885526127874049">https://twitter.com/JeffDean/status/1627885526127874049</a> <br/><br/>The Friendship That Made Google Huge - <a href="https://www.newyorker.com/magazine/2018/12/10/the-friendship-that-made-google-huge">https://www.newyorker.com[..]/10/the-friendship-that-made-google-huge</a> <a href="https://www.infoq.cn/article/rAJiubRpi9xSl_LEhI2N">https://www.infoq.cn/article/rAJiubRpi9xSl_LEhI2N</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>2023-02-28T00:53:04ZImplementation.txt2023-02-28T00:51:13Z2023-02-28T00:51:13Z<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/>The Best Algorithm No One Knows About, linear randomization - <a href="https://getkerf.wordpress.com/2016/03/30/the-best-algorithm-no-one-knows-about/">https://getkerf.wordpress.com[..]0/the-best-algorithm-no-one-knows-about/</a> <br/><br/>Small change can make big difference - <a href="https://blog.pitest.org/how-i-once-saved-half-a-million-dollars-with-a-single-character-code-change/">https://blog.pitest.org[..]ars-with-a-single-character-code-change/</a> <br/><br/>Eager is Easy, Lazy is Labyrinthine - <a href="https://medium.com/javarevisited/eager-is-easy-lazy-is-labyrinthine-b12605f13048">https://medium.com[..]s-easy-lazy-is-labyrinthine-b12605f13048</a> <br/><br/>How to organize your code? - <a href="https://kislayverma.com/programming/how-to-organize-your-code/">https://kislayverma.com/programming/how-to-organize-your-code/</a> <br/><br/>When you have to - <a href="https://www.codejava.net/coding/java-getter-and-setter-tutorial-from-basics-to-best-practices">https://www.codejava.net[..]r-tutorial-from-basics-to-best-practices</a> <br/><br/>Ask HN: What's the most elegant piece of code you've seen? - <a href="https://news.ycombinator.com/item?id=11005003">https://news.ycombinator.com/item?id=11005003</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>2023-02-28T00:51:13ZIdempotence.txt2023-02-13T14:02:04Z2023-02-13T14:02:04Z<br/>Sample chater of REST book , which contain a nice discussion of why Idempotence is important - <a href="http://www.infoq.com/resource/articles/richardson-ruby-restful-ws/en/resources/04.pdf">http://www.infoq.com[..]dson-ruby-restful-ws/en/resources/04.pdf</a> <br/><br/>New Acid:<br/> * A – Associative<br/> * C – Commutative<br/> * I – Idempotent<br/> * D - Distributed<br/><br/><a href="http://www.eaipatterns.com/ramblings/68_acid.html">http://www.eaipatterns.com/ramblings/68_acid.html</a> <br/><br/>Idempotency patterns - <a href="http://jonathan-oliver.blogspot.com/2010/04/idempotency-patterns.html">http://jonathan-oliver.blogspot.com[..]ot.com/2010/04/idempotency-patterns.html</a> <br/><br/>Detailed discussion about how to design Idempotence - <a href="http://queue.acm.org/detail.cfm?id=2187821">http://queue.acm.org/detail.cfm?id=2187821</a> <br/><br/>Discuss about clock in distributed environment - <a href="http://basho.com/clocks-are-bad-or-welcome-to-distributed-systems/">http://basho.com[..]e-bad-or-welcome-to-distributed-systems/</a> <br/><br/>Idempotent operations - <a href="https://levelup.gitconnected.com/idempotent-operations-b1d4b9b76417">https://levelup.gitconnected.com[..]d.com/idempotent-operations-b1d4b9b76417</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>2023-02-13T14:02:04Znaming.txt2023-01-11T14:13:27Z2023-01-11T14:13:27Z<br/>What is the hardest thing in software development? - <a href="https://dnastacio.medium.com/real-to-virtual-b2bacd2423c9">https://dnastacio.medium.com/real-to-virtual-b2bacd2423c9</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>2023-01-11T14:13:27Zflow condition.txt2023-01-06T03:17:18Z2023-01-06T03:17:18Z<br/>i wonder if it makes sense to refactor from this:<br/><pre><br/>public void someMethod(SomeClass someObject) {<br/> if(someObject != null){<br/> do something ...<br/> }<br/>}<br/>to this:<br/>public void someMethod(SomeClass someObject) {<br/> if(someObject == null) return;<br/> do something ...<br/>}<br/></pre><br/><a href="http://groups.yahoo.com/group/refactoring/message/3385">http://groups.yahoo.com/group/refactoring/message/3385</a> <br/><br/>The other discussion about flow control presentation - <a href="http://www.artima.com/forums/flat.jsp?forum=106&thread=211172">http://www.artima.com/forums/flat.jsp?forum=106&thread=211172</a> <br/><br/>A Response to “Stop Using If-Else Statements” - <a href="https://betterprogramming.pub/response-to-stop-using-if-else-statements-c3d4c64c69af">https://betterprogramming.pub[..]op-using-if-else-statements-c3d4c64c69af</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>2023-01-06T03:17:18ZYAGNI.txt2022-11-03T23:37:56Z2022-11-03T23:37:56Z<br/>When XP says "go for the simplest possible design", what does that mean?<br/>1. Simplest possible design to IMPLEMENT?<br/>1. Simplest possible design to UNDERSTAND LATER?<br/><br/>An thread discuss how far should we go. Seen most people agree what should be done is "Simplest possible design to TEST and IMPLEMENT"<br/><br/><a href="http://groups.yahoo.com/group/extremeprogramming/message/90466">http://groups.yahoo.com/group/extremeprogramming/message/90466</a> <br/><br/>It apply on feature, not on quality - <a href="http://martinfowler.com/bliki/Yagni.html">http://martinfowler.com/bliki/Yagni.html</a> <br/><br/>Don’t write reusable code - <a href="https://medium.com/@scott.boring.sb/dont-write-reusable-code-a857e925b683">https://medium.com[..]sb/dont-write-reusable-code-a857e925b683</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>2022-11-03T23:37:56ZBest pattern.txt2022-10-21T00:58:05Z2022-10-21T00:58:05Z<br/>Discussion about which pattern is most important - <a href="http://www.adam-bien.com/roller/page/abien?entry=most_important_patterns">http://www.adam-bien.com[..]page/abien?entry=most_important_patterns</a> <br/><br/>Pattern Language Titles - <a href="http://c2.com/ppr/titles.html">http://c2.com/ppr/titles.html</a> <br/><br/>10 Design Patterns every Software Architect and Software Engineer must know - <a href="https://ravindraelicherla.medium.com/10-design-patterns-every-software-architect-must-know-b33237bc01c2">https://ravindraelicherla.medium.com[..]oftware-architect-must-know-b33237bc01c2</a> <br/><br/>Strategy, Singleton, Observer - <a href="https://blog.bitsrc.io/3-design-patterns-every-developer-should-learn-71a51568ac9d">https://blog.bitsrc.io[..]very-developer-should-learn-71a51568ac9d</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>2022-10-21T00:58:05Zexamples.txt2022-10-20T13:12:35Z2022-10-20T13:12:35Z<br/>Non-Software Examples of Software Design Patterns - <a href="http://www.cours.polymtl.ca/inf3700/divers/nonSoftwareExample/patexamples.html">http://www.cours.polymtl.ca[..]vers/nonSoftwareExample/patexamples.html</a> <br/><br/><a href="http://www.dotnetcube.com/post/Design-Patterns-e28093-Using-the-Chain-of-Responsibility-Pattern-in-C.aspx">http://www.dotnetcube.com[..]hain-of-Responsibility-Pattern-in-C.aspx</a> <br/><br/>Patterns to replace switch - <a href="http://jamesladdcode.com/?p=299">http://jamesladdcode.com/?p=299</a> <br/><br/>Design pattern in JDK - <a href="http://www.javacodegeeks.com/2011/03/design-patterns-in-jdk.html">http://www.javacodegeeks.com/2011/03/design-patterns-in-jdk.html</a> <br/><br/>Pattern examples in java - <a href="https://java-design-patterns.com/patterns/">https://java-design-patterns.com/patterns/</a> <br/><br/>How to use the Command pattern in Java - <a href="https://www.infoworld.com/article/3667498/how-to-use-the-command-pattern-in-java.html">https://www.infoworld.com[..]-to-use-the-command-pattern-in-java.html</a> <br/><br/>static factory - <a href="http://www.sumondey.com/static-factory-methods-instead-of-public-constructors-in-java/">http://www.sumondey.com[..]-instead-of-public-constructors-in-java/</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>2022-10-20T13:12:35Zsearch engine.txt2022-09-18T21:04:57Z2022-09-18T21:04:57Z<br/>Generally, how a search engine work - <a href="http://horicky.blogspot.com/2010/03/search-engine-basics.html">http://horicky.blogspot.com/2010/03/search-engine-basics.html</a> <br/><br/>Search engine logic - <a href="http://www.infoq.com/cn/articles/a-search-engine-scheduling-architecture-for-reference">http://www.infoq.com[..]ne-scheduling-architecture-for-reference</a> <br/><br/>Don't tell me everything you know - limit to specific set of datas , like ameture / professional<br/>Ask me the next most reasonable question<br/>Offer me to establish my search identity<br/><br/><a href="http://jooto.com/blog/index.php/2008/01/05/how-to-improve-search-engines/">http://jooto.com[..]008/01/05/how-to-improve-search-engines/</a> <br/><br/><a href="https://advancedweb.hu/intro-to-lucene/">https://advancedweb.hu/intro-to-lucene/</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>2022-09-18T21:04:57ZHigh level software design discussion.shtml2022-06-21T00:19:50Z2022-06-21T00:19:50Z<br/>A nice table:
<table cellpadding="5" width="50%">
<tbody>
<tr>
<td valign="top"><strong>Do</strong>
</td>
<td valign="top"><strong>Don't</strong>
</td>
</tr>
<tr>
<td valign="top">1. Focus on interfaces.</td>
<td valign="top">2. Be worried about the implementation.</td>
</tr>
<tr>
<td valign="top">3. Mention semantic contract using interfaces.</td>
<td valign="top">4. Let subtypes break this semantic contract of their parent types.</td>
</tr>
<tr>
<td valign="top">5. Service decoupling using interfaces.</td>
<td valign="top">6. Be coupled with specific concrete implementation.</td>
</tr>
<tr>
<td valign="top">7. Family extension using interfaces.</td>
<td valign="top">8. Break the family relationship using concrete implementation.</td>
</tr>
<tr>
<td valign="top">9. Establish a family rule by abstract classes.</td>
<td valign="top">10. Impose your own rule through concrete classes.</td>
</tr>
<tr>
<td valign="top">11. Let interfaces answer all "what" about the system.</td>
<td valign="top">12. Forget to mention "how" are you answering all "what" from interfaces.</td>
</tr>
</tbody>
</table>
Also a good introduction of Strategy pattern<br><br>
<a href="http://today.java.net/pub/a/today/2006/03/28/testing-java-object-oriented.html">http://today.java.net[..]/03/28/testing-java-object-oriented.html</a>
How to determine the levels of abstraction - <a href="http://programmers.stackexchange.com/questions/110933/how-to-determine-the-levels-of-abstraction">http://programmers.stackexchange.com[..]w-to-determine-the-levels-of-abstraction</a>
Simple and clear, good design -> Correct, clear, easy to change - <a href="http://randomartifacts.blogspot.com.au/2013/01/correctness-clarity-and-changeability.html">http://randomartifacts.blogspot.com.au[..]rrectness-clarity-and-changeability.html</a>
Data Oriented Programming in Java - <a href="https://www.infoq.com/articles/data-oriented-programming-java/">https://www.infoq.com/articles/data-oriented-programming-java/</a>
<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>2022-06-21T00:19:50Zanalytic.txt2022-05-21T13:43:53Z2022-05-21T13:43:53Z<br/>Experience of using AWS Redshift - <a href="http://highscalability.com/blog/2019/2/27/give-meaning-to-100-billion-events-a-day-the-shift-to-redshi.html">http://highscalability.com[..]on-events-a-day-the-shift-to-redshi.html</a> <br/><br/>腾讯信息流内容理解算法工程全流程实践 - <a href="https://www.infoq.cn/article/Dy5kzdczdHzKmi26JAXL">https://www.infoq.cn/article/Dy5kzdczdHzKmi26JAXL</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>2022-05-21T13:43:53Zsocialmedia.txt2022-05-21T13:06:44Z2022-05-21T13:06:44Z<br/>Open Sourcing Twitter’s Algorithm Part 1: How Twitter Works - <a href="https://transitivebullsh.it/oss-twitter-algorithm-part-1">https://transitivebullsh.it/oss-twitter-algorithm-part-1</a> <a href="https://www.infoq.cn/article/Es2BoMREB9JofbzQ2SBU">https://www.infoq.cn/article/Es2BoMREB9JofbzQ2SBU</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>2022-05-21T13:06:44Zreservation.txt2022-04-21T23:34:15Z2022-04-21T23:34:15Z<br/>DB Locking in Reservation Systems - <a href="https://akshitbansall.medium.com/db-locking-in-reservation-systems-3b3d574c7676">https://akshitbansall.medium.com[..]king-in-reservation-systems-3b3d574c7676</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>2022-04-21T23:34:15Zdatabase.txt2022-04-09T12:18:32Z2022-04-09T12:18:32Z<br/>Partitioning GitHub’s relational databases to handle scale - <a href="https://github.blog/2021-09-27-partitioning-githubs-relational-databases-scale/">https://github.blog[..]ning-githubs-relational-databases-scale/</a> <a href="https://www.infoq.cn/article/L1oIV0GORfNfuysaHfL4">https://www.infoq.cn/article/L1oIV0GORfNfuysaHfL4</a> <br/><br/>A Distributed System Interview Question: How to Avoid Read Inconsistency During a Transaction - <a href="https://betterprogramming.pub/a-distributed-system-interview-question-how-to-avoid-read-inconsistency-during-a-transaction-6ac3b4a8f92a">https://betterprogramming.pub[..]stency-during-a-transaction-6ac3b4a8f92a</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>2022-04-09T12:18:32Z