anchor.diff:    We learned earlier that such pipes must be  [*impure*](#pure-and-impure-pipes) and that
     Angular calls impure pipes in almost every change detection cycle.
   
  +  这并不是疏忽。Angular 2不想提供这些管道，因为 (a) 它们性能堪忧，以及 (b) 它们会阻止比较激进的代码最小化(minification)。
  +  无论是`filter`还是`orderBy`都需要它的参数引用对象型属性。
  +  我们前面学过，这样的管道必然是[*非纯管道*](#pure-and-impure-pipes)，并且Angular会在几乎每一次变更检测周期中调用非纯管道。
  +
     Filtering and especially sorting are expensive operations.
     The user experience can degrade severely for even moderate sized lists when Angular calls these pipe methods many times per second.
     The `filter` and `orderBy` have often been abused in Angular 1 apps, leading to complaints that Angular itself is slow.
     That charge is fair in the indirect sense that Angular 1 prepared this performance trap
     by offering `filter` and `orderBy` in the first place.
   
  +  过滤，特别是排序是昂贵的操作。
  +  当Angular每秒调用很多次这类管道函数时，即使是中等规模的列表都可能严重降低用户体验。
  +  在Angular 1程序中，`filter`和`orderBy`经常被误用，结果连累到Angular自身，人们抱怨说它太慢。
  +  从某种意义上，这也不冤：谁叫Angular 1把`filter`和`orderBy`作为首发队员呢？是它自己准备了这个性能陷阱。
  +
     The minification hazard is also compelling if less obvious. Imagine a sorting pipe applied to a list of heroes.
     We might sort the list by hero `name` and `planet` of origin properties something like this:
  +
  +  虽然不是很明显，但代码最小化方面也存在风险。想象一个用于英雄列表的排序管道。我们可能根据英雄原始属性中的`name`和`planet`进行排序，就像这样：
   code-example(language="html")
     &lt;!-- NOT REAL CODE! -->
     &lt;div *ngFor="let hero of heroes | orderBy:'name,planet'">&lt;/div>
  
positive.code:   Unfortunately, aggressive minification *munges* the `Hero` property names so that `Hero.name` and `Hero.planet`
    becomes something like `Hero.a` and `Hero.b`. Clearly `hero['name']` is not going to work.
  
    Some of us may not care to minify this aggressively. That's *our* choice.
    But the Angular product should not prevent someone else from minifying aggressively.
    Therefore, the Angular team decided that everything shipped in Angular will minify safely.
  
    The Angular team and many experienced Angular developers strongly recommend that you move
    filtering and sorting logic into the component itself.
  
negative.code:   and the component doesn't have to unsubscribe when it is destroyed
    (a potent source of memory leaks).
  
    这个Async管道把样板数据存在了组件代码中。
    组件不用订阅这个异步数据源，而且不用在被销毁时取消订阅（如果订阅了而忘了反订阅容易导致隐晦的内存泄露）。
  
    ### An impure caching pipe
    ### 一个非纯而且带缓存的管道
  
    Let's write one more impure pipe, a pipe that makes an HTTP request to the server.
    Normally, that's a horrible idea.
  