Quora是如何维持高质量代码的 - ImportNew



Quora是如何维持高质量代码的 - ImportNew

除了会取得收益之外,要维护高质量的代码,会带来一大笔间接费用,还会牺牲实际开发周期。很多人发现,实际产生的收益很难抵消这一间接费用,这时人们会面临两个选择:要么以低质量代码提升开发速度,要么维护高质量代码而牺牲开发速度。而对于初创公司来说,他们希望开发速度能快一些,所以就不得不使用低质量的代码。

我们开发了一系列工具和流程,这样就可以在维护高质量代码库的同时,提升开发的速度。在这篇文章中,我们将会介绍关于保证代码质量的一些方法,以及一些平衡这两方面的具体案例。

维护高质量代码的目标

维护高质量代码主要的好处在于能够长期推动开发速度,这也是我们所关注的重点。通过编写清晰代码而产生的短期成本,就可以换来长期的收益。

记住这一点,然后下面是四点基本原则,我们发现对代码质量非常有帮助:

Quara的代码质量基本原则

1. 代码的阅读和理解都要很容易――现在的情况是更多的时间用在了代码的阅读上,而不是代码的编写上。实际上,应该把阅读的时间减少,即便这样意味着需要花费更多的时间来写代码。

2. 代码的不同部分需要有不同的质量标准――不同的代码行需要有不同的使用时间、范围、被破坏的风险、被破坏后造成的成本及其修复的成本,等等。总体来讲,这些对长期迭代速度的影响不同,所以执行一个统一的质量标准是不合理的。


Read full article from Quora是如何维持高质量代码的 - ImportNew


No comments:

Post a Comment

Labels

Algorithm (219) Lucene (130) LeetCode (97) Database (36) Data Structure (33) text mining (28) Solr (27) java (27) Mathematical Algorithm (26) Difficult Algorithm (25) Logic Thinking (23) Puzzles (23) Bit Algorithms (22) Math (21) List (20) Dynamic Programming (19) Linux (19) Tree (18) Machine Learning (15) EPI (11) Queue (11) Smart Algorithm (11) Operating System (9) Java Basic (8) Recursive Algorithm (8) Stack (8) Eclipse (7) Scala (7) Tika (7) J2EE (6) Monitoring (6) Trie (6) Concurrency (5) Geometry Algorithm (5) Greedy Algorithm (5) Mahout (5) MySQL (5) xpost (5) C (4) Interview (4) Vi (4) regular expression (4) to-do (4) C++ (3) Chrome (3) Divide and Conquer (3) Graph Algorithm (3) Permutation (3) Powershell (3) Random (3) Segment Tree (3) UIMA (3) Union-Find (3) Video (3) Virtualization (3) Windows (3) XML (3) Advanced Data Structure (2) Android (2) Bash (2) Classic Algorithm (2) Debugging (2) Design Pattern (2) Google (2) Hadoop (2) Java Collections (2) Markov Chains (2) Probabilities (2) Shell (2) Site (2) Web Development (2) Workplace (2) angularjs (2) .Net (1) Amazon Interview (1) Android Studio (1) Array (1) Boilerpipe (1) Book Notes (1) ChromeOS (1) Chromebook (1) Codility (1) Desgin (1) Design (1) Divide and Conqure (1) GAE (1) Google Interview (1) Great Stuff (1) Hash (1) High Tech Companies (1) Improving (1) LifeTips (1) Maven (1) Network (1) Performance (1) Programming (1) Resources (1) Sampling (1) Sed (1) Smart Thinking (1) Sort (1) Spark (1) Stanford NLP (1) System Design (1) Trove (1) VIP (1) tools (1)

Popular Posts