美文网首页程序员@IT·互联网IT共论
源于一次大量重构代码后的感想

源于一次大量重构代码后的感想

作者: Blust | 来源:发表于2016-05-09 17:56 被阅读531次

     这是我第一次在简书上面写文,分享一下这次重构一个项目后自身的一些感受,可能在这其中我所展现的许多观点有误,也望大家轻喷。


    自己是一名软件工程专业的学生,这个项目简单的描述是一款预约APP,开发方面就两个人,我负责后端开发,另外一个朋友负责APP和web部分。

    在项目最开始做的时候,我们俩就后端开发的技术选型方面有过争论,我俩在对后端应该设计成统一的web api接口供各种类型的客户端调用方面没有异议,但是我的小伙伴在校期间无论是实训还是项目都只接触过J2EE--,所以他主张用spring来做,但是我自身虽然没有怎么接触过spring,也听说过它的轻巧和高效,但是我对于java没有任何的好感,在我当初接触android原生开发的时候,java给我留下了糟糕的印象,复杂而繁琐的xml配置和大量的封装使我在阅读一些设计的不够友好的源码的时候经常晕头转向。而我们的应用总的来说是I/O密集型应用,对语言的执行速度方面没有太高的要求,所以我倾向于在轻快的脚本语言php,ruby,python之间做选择,而在学长的影响下我最终选择了Python。

     不得不说,这门语言的设计哲学就是simple is better than complex,  在对开发者来说真是非常的友好。而我选择了一款在国内比较冷门的web框架-Tornado,当然为这次选择我还吃了不少苦头,因为即使有过一些web开发经验的我在最初学习这款框架的时候也遇到了不少的困难和难题,原因在于它是采用了异步模型,所幸我在google百度大法的帮助下也终于正常使用了起来。而在这时,我也体会到了什么才是轻,小。Tornado本身的web框架部分只提供了最基本的接口和使用,但即使阅读它的源码起来也并不是特别困难,我能轻松的将第三方插件或者自己编写的驱动整合进去,沿着这个思路,我就一直开发下去直到第一个demo完成。

     终于,到了部署到服务器上面的时候,此时的我还天真的以为python项目的部署会和有着大量自动部署环境集成的php一样简单,但是我发现自己too young too simple。python的部署的麻烦程度超乎我的想象,在有相关中文资料的帮助下我还是被折腾了三四天的时间,我甚至认为这就是Python在中国火不起来的原因。。。而且在我自认为通过编写自动化脚本来解决每次通过FileZilla手动上传修改而沾沾自喜的时候,我面临了第一次大量的重构工作。。。各种环境包我都得在服务器上配一遍,而且坑爹的阿里云主机的源下载速度还非常的慢,时不时突然中断个两三次,而这次重构里有些特殊的进程涉及到系统配置,在本机上一次就过的情况却在服务器上因为种种原因G掉,不得不又是各种谷歌百度==

     虽然最终弄完了这一切,但是这个过程也让我看到了曾经在我眼中较为完美的python所拥有的种种缺点,比如较慢的执行速度,全局GIL锁的存在使得多线程不能利用多核,部署方面较为麻烦等等等等。而此时我又了解到了Go语言,这门看起来是更像是Python3的语言,静态特性使得部署简单,原生支持并发还非常的高效利用多核,执行的性能也非常不错,但是它也有它的缺点,发展的时间太短,社区不够庞大和活跃。

      由此我算是明白了,在开发的过程中很难发现完美符合你需求的工具,一件好的产品真的应该是集百家之长,而一名合格的开发人员也应该避免养成所谓的信仰,要耐得住性子经常去看看和学习别人的长处来使得自己受益匪浅。

相关文章

  • 源于一次大量重构代码后的感想

    这是我第一次在简书上面写文,分享一下这次重构一个项目后自身的一些感受,可能在这其中我所展现的许多观点有误,也望...

  • 代码重构专题(转载)

    代码重构(一):函数重构规则代码重构(二):类重构规则代码重构(三):数据重构规则代码重构(四):条件表达式重构规...

  • 如何给代码写好注释

    好的代码优于大量注释 如果出现了代码坏味道,首先考虑的应该是重构。带有少量注释的整洁而有表达力的代码,要比带有大量...

  • Extract Method

    被重构的方法没有局部变量 重构前: 重构后: 步骤: 选中要重构的代码 android studio 快捷键 CM...

  • 读书笔记 | 重构第一章第一个案例

    原始代码: Customer类 Movie 类 Rental 类 测试类: 重构后的代码 Customer 类...

  • JS重构之道

    代码重构是成为一个优秀程序员的必经之路,在看多了糟心的代码后我们才能知道怎么写出不糟心的代码。同时重构代码锻炼了我...

  • 《重构》一书总结(二)

    《重构》一书总结(二) 重构的重点,在于对那些代码进行重构,如果重构不当,反而适得其反。 重构代码终结如下 1.D...

  • DataBinding结合AspectJ防止多次点击

    写在前面 最近一直在找时间重构代码,每一次重构都能带来许多好处,比如精简代码,提高代码质量,减轻团队之间的问题,当...

  • 编程的方法——重构、测试等

    重构 为什么要重构? 重构代码是保持代码质量的一个极其有效的手段,它可以避免你的代码腐化到无可救药的地步。 重构可...

  • 策略模式

    优化前代码: 当要多加一次绩效的时候需要改源码,违反开闭原则,重构后 核心 Context 负责接受需求,然后分发...

网友评论

    本文标题:源于一次大量重构代码后的感想

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