美文网首页
简洁代码的思考

简洁代码的思考

作者: 土豆的奥特之父 | 来源:发表于2019-05-26 19:52 被阅读0次

    偶然看到一篇博客 Code, Picasso, and Simplicity,说的是他开始为了实现一个特性,写了300行代码,增加了大量功能,并且感觉自己的生产力非凡,当时内心很满足的。
    但是,冷静下来发现,里面有一堆的技术债务让他感到焦虑,于是,决定开始重构!

    重构是一种能力也是一种经验,重构做出的这些改变显然不是来自用户体验或者产品设想,而是深层次代码级别,细节问题的理解,多种潜在实现方案所展示出来的洞察。

    最终,300行的代码实现的这个特性,经过不断的重构迭代只剩下50行,并且完全满足需求。

    这个过程使他陷入了思考,
    虽然最终的这个非常简洁的实现,看起来也是那么的自然而然,顺理成章,但是这却无法不通过大量的工作,尝试,能够从最开始直接做到!

    这是一个很让人苦恼的事情,到底我们需要多少次努力和尝试,付出多少工作,才能足够理解,并能真正的简化它?
    让我们的工作始终能从最简洁开始,而不需要反复理解,优化重构迭代,就像写作不需要打草稿一样?

    这种方法或人真的存在吗?

    像艺术一样简洁

    惊讶的发现,这有点像艺术,毕加索曾说:

    别人的画作经过不同的阶段最终面向完成,每天画一些新的东西,所以,一幅画是不断的添加的总和。
    而我的画是一个破坏的总和,首先画出来一幅画,然后去破坏它,但最终,什么也没有丢失。

    毕加索简洁的艺术,他曾用45天,画了11头公牛,最终画一头公牛只需要9条线!
    这与我们简洁代码的工作异曲同工。

    欣赏一下毕加索的公牛作品,












    公牛。 1945年12月5日 - 1946年1月17日,图片来自:http://www.artyfactory.com/art_appreciation/animals_in_art/pablo_picasso/pablo_picasso.htm

    作者最后提出了三个问题,我们一起来思考一下

    1. 你遇到过这样的情况吗?
    2. 如何缩短早期工作的耗时,有什么想法?
    3. 这是一种通过努力和经验就能做到,还是一个不断创造的过程,例如只有毕加索能用9条线画出公牛?

    小结

    你可能认为这是抽象,但其实这里要表达的是简洁的实现,抽象是达到简洁的一种手段,有时候也是具体的。
    而简洁是没有止境的,不管是创作,还是熟能生巧,我们都需要尝试进一步深入实现的细节,找到像艺术一样的简洁,且富有想象力的表达!

    相关文章

      网友评论

          本文标题:简洁代码的思考

          本文链接:https://www.haomeiwen.com/subject/oeuxtctx.html