当前位置: 首页 » 资讯中心 » 新闻动态 » 北京软件外包公司程序员如何写出更好的代码

北京软件外包公司程序员如何写出更好的代码

发表于:2016-06-08 09:38 来源:北京软件开发公司宜天信达 点击:

  北京软件外包公司软件开发面临的其中一个最大的挑战就是处理应用程序规模增长带来的复杂性。对象、组件、模块或系统之间的耦合程度越高,我们需要承担的后果就越多。这些后果包括但不限于修改困难、故障蔓延、由于争用而无法扩展、由于关联操作而导致的性能问题。时间、空间和实现上的松耦合对于扩展性和弹性而言至关重要。“共生性(Connascence)”可以很好地描述耦合,一个模块/组件的变化会导致另一个模块/组件的变化。

  內聚比耦合更微妙。我喜欢将内聚理解为统一性。当我们考虑在不同的方面使用同一个组件时,就失去了统一性,这会导致不必要的行为和特征。软件设计中的低内聚常常是一个很好的需求或团队状况指标。通常,内聚设计很容易跟踪,由于相关的函数和特性都进行了分组,相互关联,所以可发现性很高。

  如果我们希望成为更好的软件工程师,那么提高我们运用基本设计原则的技能应该成为我们日常活动的核心。在训练和实践中不断重复是让技能成为第二天性的最好方法。

  抽象是软件开发领域被人误解得最深的话题之一。Dijkstra将抽象描述为一种创建“新的语义层次”的方式,“在这个语义层次中,一个人可以做到绝对精确”。大多数开发人员都完全是乱用这个术语,创建他们所谓的抽象来掩饰他们不懂的东西。Joel Spolsky甚至发明了“抽象泄露(leaky abstractions)”原则,拙劣地想为这种误解正名。我们有些很棒的抽象示例,如Linux内核或设备驱动中的块设备,但遗憾的是,大多数软件抽象通常是源于某种形式的精神自慰,导致弗兰肯斯坦怪兽的诞生,让代码更难以处理,而不是更严密更容易理解。糟糕的抽象比重复的成本更高。

  我们需要更擅长将业务目标分解成可衡量的具体成果,然后以高质量、低耦合的可组合组件为基础构建软件。商业公司希望我们在他们的框架内完成构建,那样他们可以锁住客户。这些框架是错误的示范。它们是商业压力催生的产物。商业压力与交付高质量的可维护软件往往是矛盾的。

  如果看一下其他工程学科,我们就会看到,工具的使用是为了支持交付流程,而不是强加一个流程。我们似乎展现了这个时代的一个特征,商业广告聚焦于人天价格、per-CPU许可及锁定维护合同。现在,类似Amazon这样的公司提供了实用计算,让我们可以根据需要使用。非常有趣的是,云计算很好地支持了持续集成和交付模型。这改变了市场格局,推动了更好的行为。我们也可以从工具方面看待这个问题,类似Jetbrains这样的公司将你锁定在他们的产品合同上;他们是通过提供可以提高生产力的优秀产品把你锁定的。