RSS feed [root] /design /weblog




login:

password:

title search:




 


Sat Jan 15 22:28:58 AEDT 2022

design



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

Sat Jan 15 22:28:58 AEDT 2022 From /weblog/design

error


What's in a Good Error Message? - https://www.morling.dev/blog/whats-in-a-good-error-message/

(google search) (amazon search)


Wed Jan 05 00:59:20 AEDT 2022 From /weblog/design

id


System wide unique nanosecond timestamps - http://blog.vanillajava.blog[..]m-wide-unique-nanosecond-timestamps.html http://blog.vanillajava.blog[..]22/01/distributed-unique-time-stamp.html

(google search) (amazon search)


Tue Jan 04 15:33:07 AEDT 2022 From /weblog/design/examples

chat


http://highscalability.com/blog/2022/1/3/designing-whatsapp.html

(google search) (amazon search)


Tue Jan 04 15:32:08 AEDT 2022 From /weblog/design/examples

messaging


ZeroMQ: The Design of Messaging Middleware - http://www.drdobbs.com[..]&siteSectionName=architecture-and-design

When NOT to use a message queue - http://techblog.bozho.net/?p=1455

现代IM系统中的消息系统架构 - 架构篇 - https://yq.aliyun.com/articles/698301

(google search) (amazon search)



Sat Jan 01 23:44:21 AEDT 2022 From /weblog/design

date


Date handling look simple but easy to fail in trap. Even worst is this is easy to have bad data which hard to fix. Here is an example - http://blogs.msdn.com/jensenh/archive/2005/11/23/496246.aspx

One tip for testing application with time dependence, treat it as random - http://googletesting.blogspot.com[..]pot.com/2008/04/tott-time-is-random.html

Explanation of issues of Joda-time, basically it still haven't map the human view of time close enough than machine view of time - http://www.jroller.com/scolebourne/entry/why_jsr_310_isn_t

Screencast of how to driven a fluent Date API - http://tedyoung.blogsome.com[..]-apis-in-java-episode-1-comparing-dates/

解读数据架构的 2021:大数据 1.0 体系基本建成,但头上仍有几朵乌云 - https://www.infoq.cn/article/gHTPkmo0vZhE7vwFAGij

(google search) (amazon search)


Sat Jan 01 23:42:44 AEDT 2022 From /weblog/design

concurrency


How to write safer concurrency code - http://www.artima.com/forums/flat.jsp?forum=276&thread=178345

reentrant and thread safe functions - http://kevinrodrigues.com[..]/31/reentrant-and-thread-safe-functions/

Libraries / toolkits for multicore process - http://www.ddj.com[..]intableArticle.jhtml?articleID=212900103

Introduction - http://www.ddj.com[..]QQSNDLRSKHSCJUNN2JVN?articleID=212903586 http://www.ddj.com[..]CQSNDLRSKHSCJUNN2JVN?articleID=213001517

Collections of links - http://dobbscodetalk.com[..]rallel-Or-Get-Left-Behind.html&Itemid=29

Briefing of difference modeling of threading system - http://www.ddj.com[..]intableArticle.jhtml?articleID=215900465 http://software.intel.com[..]inners-guide-to-multithreaded-libraries/

http://natishalom.typepad.com[..]haloms_blog/2010/08/concurrency-101.html

Saving the Failwhale: The Art of Concurrency (Page last updated December 2012, Added 2012-12-26, Author Dhanji R. Prasanna, Publisher informit). Tips:

1) Contention is unavoidable - some resources are just slower, and you must wait for them. The secrets to good concurrency are 1) ensuring that these slower resources are rarely used, and 2) during such waiting periods, giving the faster tiers other work to do so that they continue to be utilized well.
2) Overuse of synchronization constructs such as locks and mutexes leads to systems that perform poorly under load.
3) ConcurrentHashMap is an efficient thread-safe map while HashMap is not thread-safe.
4) ConcurrentHashMap doesn't do away with locks, it still uses them but it uses more than the single global lock, so that threads gain some measure of concurrency. It uses separate locks for partitions, so that multiple threads writing to the map are likely to access different partitions, using separate locks and therefore process their data simultaneously. This technique is known as lock-striping. Efficient striping uses a number of locks proportional to the number of CPU cores in a system.
5) The asynchronous processing model smooths resource spikes by adding requests to a queue which is serviced by a pool of workers - spikes in requests make the queue grow rather than overloading the workers. (The ExecutorService is essentially a thread pool accompanied by a task queue.)

http://www.informit.com/articles/article.aspx?p=1994789

Discussion of using difference model for concurrency - http://highscalability.com[..]cks-application-architecture-pros-a.html

Concurrency vs Parallelism - http://concurrencyfreaks.blogspot.hk[..]/2013/12/concurrency-vs-parallelism.html

Compare between Actors, CSP, Disruptor and raw Threads - http://java-is-the-new-c.blogspot.com.au[..]omparision-of-different-concurrency.html

Few coding tips that should be useful for most languages - http://www.javacodegeeks.com[..]erformance-scalability-and-liveness.html http://www.javacodegeeks.com[..]2015/09/java-concurrency-essentials.html

Service Design
Do one thing, do it well
No shared operational state
Bound your queues
Name custom thread pools and register an UncaughtExceptionHandler
Prefer immutable data objects over mutable state
http://highscalability.com[..]-to-25-billion-notifications-during.html

On Parallelism and Concurrency - https://inside.java/2021/11/30/on-parallelism-and-concurrency/

Solving Common Concurrency Problems - https://blog.professorbeekums.com[..]s.com/2021/solving-concurrency-problems/

(google search) (amazon search)



Sun Nov 28 23:45:20 AEDT 2021 From /weblog/design/examples

netflix


https://medium.com[..]ens-every-time-you-hit-play-3a40c9be254b

Life of a Netflix Partner Engineer — The case of the extra 40 ms - https://netflixtechblog.com[..]eer-the-case-of-extra-40-ms-b4c2dd278513

A look under the hood of the most successful streaming service on the planet - https://www.theverge.com/22787426/netflix-cdn-open-connect https://www.infoq.cn/article/12qoAI5BTTDraSwpb7L0

(google search) (amazon search)


Fri Nov 26 10:26:25 AEDT 2021 From /weblog/design

Architecture


Top Ten Software Architecture Mistakes - http://www.infoq.com/news/2007/10/top-ten-architecture-mistakes

Discussion about the balance of upfront design - http://blog.objectmentor.com[..]4/25/the-scatology-of-agile-architecture

There is no conflict in agile and architecture - http://www.andrejkoelewijn.com[..]s-no-conflict-in-agile-and-architecture/

http://c2.com/cgi/wiki?HexagonalArchitecture

Experience of build instead of buy - http://arstechnica.com[..]uy-one-companys-decision-to-go-it-alone/

Problem of too many layer - http://johannesbrodwall.com[..]/10/the-madness-of-layered-architecture/

http://edmundkirwan.com/general/simple.html

http://blog.schauderhaft.de[..]are-architect-here-is-your-reading-list/

Sometime it is worth to build to throw - http://martinfowler.com/bliki/SacrificialArchitecture.html

Business Transactions
External Dependencies
Caching Strategy
Garbage Collection
Application Topology
http://blog.appdynamics.com[..]s-to-capture-in-enterprise-applications/

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. - http://edmundkirwan.com/general/simple.html

http://blog.cloudera.com[..]ting-started-with-big-data-architecture/

Twitter - http://www.infoq.com/cn/articles/twitter-architecture-evolution http://highscalability.com[..]tter-handles-3000-images-per-second.html

Suning, more on HTTP - http://www.infoq.com[..]oduct-details-system-architecture-design

Decision - https://javax0.wordpress.com/2016/05/04/architects-dont-decide/

Some suggestion of making system simple, well, but the suggestion itself it is that simple - https://www.infoq.com/articles/driving-architectural-simplicity

https://medium.com[..]ural-patterns-in-a-nutshell-a0b47a1e9013

https://www.in28minutes.com/introduction-to-software-architecture

Explaining common different architecture patterns - https://levelup.gitconnected.com[..]l-patterns-you-need-to-know-a1f5ea7e4e3d

Software Architecture Patterns - https://orkhanscience.medium.com[..]ecture-patterns-5-mins-read-e9e3c8eb47d2

(google search) (amazon search)


Mon Nov 22 00:07:33 AEDT 2021 From /weblog/design/examples

db


Crashproofing the Original NoSQL Key-Value Store - https://queue.acm.org/detail.cfm?ref=rss&id=3487353

The history of Berkeley DB - https://queue.acm.org/detail.cfm?ref=rss&id=3501713

(google search) (amazon search)


Sat Oct 30 22:37:01 AEDT 2021 From /weblog/design/distribute

database


Partitioning GitHub’s relational databases to handle scale - https://github.blog[..]ning-githubs-relational-databases-scale/ https://www.infoq.cn/article/L1oIV0GORfNfuysaHfL4

(google search) (amazon search)


Thu Sep 30 11:22:17 AEST 2021 From /weblog/design/pattern

examples


Non-Software Examples of Software Design Patterns - http://www.cours.polymtl.ca[..]vers/nonSoftwareExample/patexamples.html

http://www.dotnetcube.com[..]hain-of-Responsibility-Pattern-in-C.aspx

Patterns to replace switch - http://jamesladdcode.com/?p=299

Design pattern in JDK - http://www.javacodegeeks.com/2011/03/design-patterns-in-jdk.html

Pattern examples in java - https://java-design-patterns.com/patterns/

(google search) (amazon search)


Tue Aug 24 00:12:35 AEST 2021 From /weblog/design/examples

jOOQ


10 Things You Didn’t Know About jOOQ - https://blog.jooq.org/10-things-you-didnt-know-about-jooq/

(google search) (amazon search)


Sun Jul 25 00:13:07 AEST 2021 From /weblog/design/pattern

saga



Saga Orchestration for Microservices Using the Outbox Pattern - https://www.infoq.com/articles/saga-orchestration-outbox/ https://www.infoq.cn/article/TuhloSAI0MpB2Nj4XkFK

(google search) (amazon search)


Mon Jun 21 23:31:01 AEST 2021 From /weblog/design/pattern

Best pattern


Discussion about which pattern is most important - http://www.adam-bien.com[..]page/abien?entry=most_important_patterns

Pattern Language Titles - http://c2.com/ppr/titles.html

10 Design Patterns every Software Architect and Software Engineer must know - https://ravindraelicherla.medium.com[..]oftware-architect-must-know-b33237bc01c2

(google search) (amazon search)


Sat Jun 19 23:49:45 AEST 2021 From /weblog/design

Implementation


Tired with duplicating Try-Catch for resource acquisition? Can try to create proxy method - http://hamletdarcy.blogspot.com[..]clarative-synchronization-with-java.html

Discussion of naming of if block - http://blog.objectmentor.com/articles/2008/09/26/if-methods-redux

Factors for choosing a strategic technology stack, runtime performance is not a factor for him, probably good idea - http://jchyip.blogspot.com[..]1/04/factors-for-choosing-strategic.html

Don't think , stay focus - http://www.threeriversinstitute.org/blog/?p=594

Using class name as variable name is a bad thing? I doubt about it, but interesting idea - http://www.warski.org/blog/2013/01/dry-parameter-names/

The problem of using generic name - http://martinfowler.com/bliki/TransparentCompilation.html

Beware of where memory allocated, sometime there is no off side for lazy initalization - http://plumbr.eu[..]ou-dare-to-change-hashmap-implementation

Some suggestion of how to code in order to prevent unreproducible bugs - http://googletesting.blogspot.hk[..]4/02/minimizing-unreproducible-bugs.html

More careful to check null - http://blog.jooq.org[..]et-paranoid-java-programming-techniques/

http://www.infoq.com/cn/articles/wisdom-of-programming

The fewer conditions you test for, the better your code “tastes”. - https://medium.com[..]ding-requirement-99749f37684a#.1glkhe7np

Think twice before running a loop - https://blog.jetbrains.com/idea/2017/08/code-smells-iteration

Example of how to remove mutation status - https://blog.jetbrains.com/idea/2017/08/code-smells-mutation

The Best Algorithm No One Knows About, linear randomization - https://getkerf.wordpress.com[..]0/the-best-algorithm-no-one-knows-about/

Small change can make big difference - https://blog.pitest.org[..]ars-with-a-single-character-code-change/

Eager is Easy, Lazy is Labyrinthine - https://medium.com[..]s-easy-lazy-is-labyrinthine-b12605f13048

How to organize your code? - https://kislayverma.com/programming/how-to-organize-your-code/

When you have to - https://www.codejava.net[..]r-tutorial-from-basics-to-best-practices

(google search) (amazon search)



Fri Jun 18 11:04:27 AEST 2021 From /weblog/design/interview

Linus Torvalds


https://www.brynmawr.edu/cs/resources/beauty-of-programming

(google search) (amazon search)


Fri Jun 18 10:23:17 AEST 2021 From /weblog/design/examples

uber


Alright folks, gather round and let me tell you the story of (almost) the biggest engineering disaster I’ve ever had the misfortune of being involved in. It’s a tale of politics, architecture and the sunk cost fallacy [I’m drinking an Aberlour Cask Strength Single Malt Scotch] - https://threadreaderapp.com/thread/1336890442768547845.html https://www.infoq.cn/article/asjhHAmupqtcx5oGrb4b

Uber Architecture and System Design - https://medium.com[..]hitecture-and-system-design-e8ac26690dfc

(google search) (amazon search)


Sun Feb 21 00:09:12 AEDT 2021 From /weblog/design/examples

travel


建在大数据上的郑州地铁 - https://www.infoq.cn/article/KcR9iISdAV7FsgWLyqV0

(google search) (amazon search)


Mon Feb 01 00:17:02 AEDT 2021 From /weblog/design

framework


Best Practice: Application Frameworks - https://queue.acm.org/detail.cfm?ref=rss&id=3447806

(google search) (amazon search)


Sun Jan 31 22:07:40 AEDT 2021 From /weblog/design

queue


Fast synchronization between a single producer and single consumer - http://www.bluebytesoftware.com[..]eenASingleProducerAndSingleConsumer.aspx

Lock free queue idea. - http://groups.google.com[..]read/thread/82066179448783da?hl=en&pli=1

Use of Disruptor - http://www.infoq.com/presentations/Disruptor

Use of Queue - http://highscalability.com[..]ble-presents-queue-er-message-queue.html

Discuss about the "Railway approach" of producer consumer queue - http://www.infoq.com[..]ormance-Java-Inter-Thread-Communications http://bad-concurrency.blogspot.com.au[..]alternative-multi-producer-approach.html

Probably worth to consider replacing queue by actor - http://www.nurkiewicz.com[..]implifying-trading-system-with-akka.html

AbstractQueueSynchroniz - https://xie.infoq.cn/article/be615e3eeaf5badc900cb3c01

(google search) (amazon search)