Saturday, April 13, 2019

Angular errors that kick in my nuts - ExpressionChangedAfterItHasBeenCheckedError

Take notes of some angular errors which kicked good in my nuts

ExpressionChangedAfterItHasBeenCheckedError: "Expression has changed after it was checked"


Thursday, March 28, 2019

Notes about Domain-Driven Design

Ubiquitous Language

Consistent nouns, verbs, statements within the team. Your team member should know what you're saying immediately in the first sentence.

Wednesday, March 27, 2019

From Promise to async/await in Typescript Part II

In part I we went through a simple example, simple enough to illustrate what async/await look like and how to use them. This time we can discuss why we want to embrace async/await, instead of our old friend Promise.

Tuesday, March 26, 2019

From Promise to async/awiat in Typescript Part I

Diving in the asynchronous programming environment for a long while, at least 3 or 4 years I think, from Promise to Rx Observables. Until recently I finally found that they actually put this pattern support explicitly into ES6(ECMAScript 2015) implementation.


Tuesday, February 26, 2019

Design an Angular 2+ shopping module PART 3

Follow up from PART 2 we now need to fill the blank of payment implementation which is mostly handled by 3rd party payment services, but we still need an adapter or api or something to communicate with these external services.

Monday, February 25, 2019

Design an Angular 2+ shopping module PART 2

Now I'll need an user story to figure out what services and functionalities I need.

The user story...


  1. When I see an item, whatever is for sale, it's a Product. I can add it to my shopping cart.
  2. I can quick link to my shopping cart wherever in the APP.
  3. I can change the quantity of purchased product
  4. It'll require my contact information to complete the order.
  5. I have to choose a payment method to complete the order.
  6. I have to follow the instruction of payment method to complete payment.
  7. When payment confirmed, I need to be noticed that the order is confirmed paid.
  8. I can review the order detail anytime.
  9. I can check a list of all my orders.