冬至日的夕阳,人眼不愧为世界上最先进的图像传感器,手机的镜头是远远不能表达当时的画面感的
思考
何时做性能优化
最近的一个思考(不说背景了):先优先功能还是优先性能?这是一个很有意思的问题。
首先是用户体验的问题:
- 一个功能做得很好,用户会可能会觉得这个产品很好,即使性能不是很好。
- 但也有可能一个功能做得不错,但因为性能问题,用户会觉得这个产品体验不好。
再次是成本的问题:
- 过早地优化,可能会导致成本浪费时间,因为可能这个功能并不是用户所需要的。
- 但是过晚的优化,可能会因为技术债务的累积,导致后续的优化成本更高。
- 当然最好的情况是,能够在功能开发的同时,就能够保证性能。
- 但是同时兼顾功能和性能,那就得用更优秀的工程师,那人力成本就是另外一个问题了。
还有不道德的绩效问题:
- 程序一版写好,兼顾功能和性能,后续没有太多的优化工作,可能体现不出工程师的价值。
- 一直在优化,持续地和过去的自己做对比,可能会有更好的绩效。团队可能也有更好的获得感。
所以说一个软件团队的决策过程,往往需要在不同的方面做权衡,或技术、或进度、或成本、或体验。这可能也是软件工程的魅力所在。
基础永不过时
一个晚上去协助解决一个兄弟部门的工程重构问题,因此看了一些细节,感觉很多工程上的做法,能够运行,但不优雅。
交流的过程中也发现,其实很多问题,在基础的书籍中都有,但是却忽略了。当然这里面有很多的权衡痕迹……
虽然我们现在涉猎的很多知识和工具都是近10年,乃至5年内的,但是很多基础的知识,往往是永不过时的。
比如现代 C++ 一直在迭代,比如现在用的CMake 基本上也是近10年的东西了,更不用说Kubernetes,Docker等等,还有 Git也是20年内的东西了。
但是回到技术的本质,很多原理性的东西,并没有因为工具和技术的演进而改变。比如算法、设计模式、架构、编译原理。
那天晚上到家后,又找出了 《Linkers and Loaders》这本书。 Stay hungry, stay foolish.
随笔
咖啡机
终于在老婆大人的帮助下,家里有了舒服的放咖啡机的地方。看来以后,每天早上的咖啡就可以在家里享受了。
因为想在家方便地喝咖啡,所以买了一个咖啡机,因为想找一个舒服的地方放置咖啡机,所以老婆大人找人定制了一个柜子,所幸屋子里面能够找到安置柜子的地方。
冬至
冬至已至,春归不远。