anchor.diff:    :marked
       **Why?** Data service implementation may have very specific code to handle the data repository. This may include headers, how to talk to the data, or other services such as `Http`. Separating the logic into a data service encapsulates this logic in a single place hiding the implementation from the outside consumers (perhaps a component), also making it easier to change the implementation.
   
  -    **为何？**数据服务的实现可能有非常具体的代码来处理数据仓库，包括数据头 (headers)、如何与数据交谈或者其它服务 (比如`Http`)。把逻辑分离到数据服务可以将该逻辑封装在一个地方，对外部使用者（如组件）隐藏具体的实施细节。
  +    **为何？**数据服务的实现可能有非常具体的代码来处理数据仓库，包括数据头 (headers)、如何与数据交谈或者其它服务 (例如`Http`)。把逻辑分离到数据服务可以将该逻辑封装在一个地方，对外部使用者（例如组件）隐藏具体的实施细节。
   
   a(href="#toc").to-top Back to top
   
  
positive.code:     Import it once (in the `AppModule`) when the app starts and never import it anywhere else. (e.g. `NavComponent` and `SpinnerComponent`).
  
      **坚持**把应用级、只用一次的组件收集到`CoreModule`中。
      只在应用启动时从`AppModule`中导入它一次，以后再也不要导入它（比如`NavComponent`和`SpinnerComponent`）。
  
  .s-why
    :marked
  
negative.code:   :marked
      **Consider** configuring the IDE to hide distracting, irrelevant files such as generated `.js` and `.js.map` files.
  
      **考虑**配置 IDE，以隐藏无关的文件，例如生成出来的`.js`文件和`.js.map`文件等。
  
  s-why.s-why-last
    :marked
  