维生素C - 坏血症】的更多相关文章

在地理大发现时代,许多水手在远洋航行时不幸罹患一种典型航海病,患者皮肤溃烂.牙龈出血不止,不久就会危及生命,这就是大名鼎鼎的坏血症,是一种因为缺乏维生素C而产生的的皮.粘膜下出血.齿龈肿胀.关节和肌肉疼痛.也正是由于这个原因,维生素C又得名抗坏血酸 我们知道,补充维生素C的最主要途径就是食用新鲜的蔬菜和蔬果,可为什么狮子老虎狼之类的肉食性动物从来不吃蔬菜水果,却也不会得坏血症呢? 因为它们自己就能新陈代谢产生维生素C.实际上,绝大多数动物都可以通过新陈代谢从葡萄糖中得到维生素C,其中,哺乳动物和…
今天要讲的一篇是发表于 Hum Genet 的 "Shared genetic architecture between metabolic traits and Alzheimer's disease: a large-scale genome-wide cross-trait analysis" .很中规中矩的一篇文章,没有什么大的亮点的.写它的主要原因整篇文献思路很流畅,次要原因是我懒,不愿意看费脑子的文章. 以下,进入主题: 背景 阿尔茨海默病(AD)是一种进行性和破坏性的神经…
坏味道--不完美的库类(Incomplete Library Class) 特征 当一个类库已经不能满足实际需要时,你就不得不改变这个库(如果这个库是只读的,那就没辙了). 问题原因 许多编程技术都建立在库类的基础上.库类的作者没用未卜先知的能力,不能因此责怪他们.麻烦的是库往往构造的不够好,而且往往不可能让我们修改其中的类以满足我们的需要. 解决方法 如果你只想修改类库的一两个函数,可以运用 引入外加函数(Introduce Foreign Method): 如果想要添加一大堆额外行为,就得运…
坏味道--狎昵关系(Inappropriate Intimacy) 特征 一个类大量使用另一个类的内部字段和方法. 问题原因 类和类之间应该尽量少的感知彼此(减少耦合).这样的类更容易维护和复用. 解决方法 最简单的解决方法是运用 搬移函数(Move Method) 和 搬移字段(Move Field) 来让类之间斩断羁绊. 你也可以看看是否能运用 将双向关联改为单向关联(Change Bidirectional Association to Unidirectional) 让其中一个类对另一个…
坏味道--过度耦合的消息链(Message Chains) 特征 消息链的形式类似于:obj.getA().getB().getC(). 问题原因 如果你看到用户向一个对象请求另一个对象,然后再向后者请求另一个对象,然后再请求另一个对象--这就是消息链.实际代码中你看到的可能是一长串getThis()或一长串临时变量.采取这种方式,意味客户代码将与查找过程中的导航紧密耦合.一旦对象间关系发生任何变化,客户端就不得不做出相应的修改. 解决方法 可以运用 隐藏委托关系(Hide Delegate)…
坏味道--中间人(Middle Man) 特征 如果一个类的作用仅仅是指向另一个类的委托,为什么要存在呢? 问题原因 对象的基本特征之一就是封装:对外部世界隐藏其内部细节.封装往往伴随委托.但是人们可能过度运用委托.比如,你也许会看到一个类的大部分有用工作都委托给了其他类,类本身成了一个空壳,除了委托之外不做任何事情. 解决方法 应该运用 移除中间人(Remove Middle Man),直接和真正负责的对象打交道. 收益 减少笨重的代码. 何时忽略 如果是以下情况,不要删除已创建的中间人: 添…
坏味道--纯稚的数据类(Data Class) 特征 纯稚的数据类(Data Class) 指的是只包含字段和访问它们的getter和setter函数的类.这些仅仅是供其他类使用的数据容器.这些类不包含任何附加功能,并且不能对自己拥有的数据进行独立操作. 问题原因 当一个新创建的类只包含几个公共字段(甚至可能几个getters / setters)是很正常的.但是对象的真正力量在于它们可以包含作用于数据的行为类型或操作. 解决方法 如果一个类有公共字段,你应该运用 封装字段(Encapsulat…
坏味道--夸夸其谈未来性(Speculative Generality) 特征 存在未被使用的类.函数.字段或参数. 问题原因 有时,代码仅仅为了支持未来的特性而产生,然而却一直未实现.结果,代码变得难以理解和维护. 解决方法 如果你的某个抽象类其实没有太大作用,请运用 折叠继承体系(Collapse Hierarch) . 不必要的委托可运用 将类内联化(Inline Class) 消除. 无用的函数可运用 内联函数(Inline Method) 消除. 函数中有无用的参数应该运用 移除参数(…
坏味道--依恋情结(Feature Envy) 特征 一个函数访问其它对象的数据比访问自己的数据更多. 问题原因 这种气味可能发生在字段移动到数据类之后.如果是这种情况,你可能想将数据类的操作移动到这个类中. 解决方法 As a basic rule, if things change at the same time, you should keep them in the same place. Usually data and functions that use this data ar…
坏味道--重复代码(Duplicate Code) 重复代码堪称为代码坏味道之首.消除重复代码总是有利无害的. 特征 两个代码片段看上去几乎一样. 问题原因 重复代码通常发生在多个程序员同时在同一程序的不同部分上工作时.由于他们正在处理不同的任务,他们可能不知道他们的同事已经写了类似的代码. 还有一种更隐晦的重复,特定部分的代码看上去不同但实际在做同一件事.这种重复代码往往难以找到和消除. 有时重复是有目的性的.当急于满足deadline,并且现有代码对于要交付的任务是"几乎正确的"时…