首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

什么才算是真正的编程能力?

懂得取舍。

在有限的时间内,几乎没有系统可以做到完美。要快,要安全,高并发,易扩展,效率高,容易读,高内聚,低耦合...

大到一个网站,小到几个class,工程师都要清楚,要取什么,舍什么,这并不是那么容易的事。我们都有自己的性格,有的求新,有的求稳,有的求快,但具体到一个项目时,知道如何取舍对这个项目最好,很重要。

学校里的作业,没人在意你是不是写在一个大的main()里面,能跑就行。但做项目的时候,太多的东西要考虑,有时候,宁可简单易读,也不用快那么一点点;有时候,要做太多看不到的工作,却丝毫马虎不得;有时候,写了不如不写,留白也是一个学问。

曾经接手个项目,里面几乎所有的class,每个都有interface,各种继承,各种实现,理由是灵活性高,易扩展。真的易扩展吗?

我不知道。没多久,客户的需求就改了,各种拎不清的继承实现都化为乌有,一大半要重写。

问题在哪里?

不是编程不好,而是取舍的不好。在那个阶段,为30%的需求,花200%的努力,追求设计的滴水不漏,却舍弃快速实现,取得反馈的时机,这就是失误。需求总会变,客户看到越早,修改越早,影响越小。

很聪明的人,也可能做出很难用的系统,不一定是编程不好,可能是不愿,或不屑于取舍。不同的阶段,不同的项目,要取舍的东西也不同。编程只是手段,目的是解决问题,能力高不高,要看问题解决的好不好。不在于使用了什么高端算法,或是复杂的框架。

懂得如何取舍并不容易,需要对问题的深刻理解,对技术的胸有成竹,和身后无数个踩过的坑。但重要的是有取舍的意识,主动思考取舍什么,这样学的才会快。

来源:数学加油吧

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20190904A02GOY00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券