Shaun Xu

The Sheep-Pen of the Shaun



Shaun, the author of this blog is a semi-geek, clumsy developer, passionate speaker and incapable architect with about 10 years’ experience in .NET and JavaScript. He hopes to prove that software development is art rather than manufacturing. He's into cloud computing platform and technologies (Windows Azure, Amazon and Aliyun) and right now, Shaun is being attracted by JavaScript (Angular.js and Node.js) and he likes it.

Shaun is working at Worktile Inc. as the chief architect for overall design and develop worktile, a web-based collaboration and task management tool, and lesschat, a real-time communication aggregation tool.


My Stats

  • Posts - 122
  • Comments - 622
  • Trackbacks - 0

Tag Cloud

Recent Comments

Recent Posts


Post Categories


Reactive Extension (Rx), which is introduced by Microsoft, is a library for composing asynchronous and event-based programs, by using observable, observer with LINQ-style query operators. If LINQ is the first generation on how people deal with data, Rx should be next generation. 

We should NOT write a lot of code inside one file, or in one class, not only in JavaScript in theory. But in practice we might need to write a huge class. I know in C# we can split one class in multiple files, which they called partial class. How...

Recently I was working on a project to make our production, Worktile Pro, to be able to on-premise deploy. Besides some code changes one of the problem we were facing is how to protect our source code. This can be resolved by compiling to binary. There are some tools can... [Read More]

Our production Worktile Pro was built based on Node.js 0.12 when we firstly developed and at that moment we tried our best to prevent our code from the callback hell.

With Node.js v6 we can use iterator and tj’s co to flatten our code. While with Babel.js we can use Async/Await introduced in ES7.

When I’m developing Worktile Pro with ES6 and ES7, arrow function is one of features I like most. This makes me to use arrow function as anywhere as I could. But I also encountered some problem by using it. For example, in one my previous post, I found arguments are not defined in arrow function. Several days ago I found another problem about this in arrow function.