林枫の网志

May the Force be with you

推荐软件工程好文:《对抗软件复杂度的战争》

作者许晓斌是《Maven实战》作者,很多见解都很有深度。

研发效率下降的背后,核心因素是来源于软件复杂度的上升。

作者借用《人月神话》的论述,将软件复杂度分为本质复杂度(Essential Complexity)和偶然复杂度(Accidental Complexity)。

本质复杂度,指的就是来自问题本身带来的复杂度,比如用户规模过大,技术难度很高;而偶然复杂度则来源于解决方案本身,例如你选择的技术带来的,比如你选择某前端需要去学习,选择了某分布式框架引入了复杂度,还有团队成员的工程管理、项目管理等等。

而要解决复杂度带来的问题,应对方法不对可能会治标不治本。

比如常见的一个错误方式就是设置不靠谱切不可更改的Deadline,即使靠加班和缩小需求范围也无法达成,最终只有牺牲软件质量,反而是大幅提升了偶然复杂度。

还有一种错误方式就是用所谓“先进”技术,例如微服务,或者某个新出的前端框架。但如果你面临的问题从业务的角度来说,正好是这种先进技术所能弥补的,那么没问题,但如果你的问题是研发效率问题,先进技术不仅不能帮忙,还反而因为新老技术切换带来更多的偶然复杂度。

那么什么是正确的应对方式。

一种方式是宏观层面。

将一些复杂的系统,分离出去,通过购买或使用第三方成熟系统来降低复杂度,例如数据库、调度系统、消息队列等等。

通过对系统架构和组织架构的调整,将系统的复杂度层层分解,将复杂的系统拆分成相对简单的模块,同时组织架构和系统架构保持一致。

一种方式是微观层面,提升代码质量、增加单元测试的覆盖,并且从团队的流程、工程文化上下功夫,借助好的流程,例如CI/CD和代码审查;激励消除复杂度的行为;让增加、降低复杂度的行为透明。

我觉得文章中提出的复杂度问题都是很现实的问题,从宏观和微观两个层面入手也是很好的思路,但还是需要根据团队的情况自己调整。

推荐阅读原文

#软件工程之美#

http://t.cn/A6W4Dpiz

一点感悟

为何差异越来越大

责任心
  • 有责任心的程序员,每次能进步一点,好的命名,统一的风格,适当的注释,这些随手就能做的事情,坚持做好,日积月累,写出来的东西就是不一样.
一问到底
  • 搞定发生的问题每个人都会,但深刻分析为何产生问题这点做到的人不多.能找到问题的根源比解决问题收获更大,而且在解决的过程中,也能综合的检验一个人的技术水平.页面卡了,是数据库卡,还是服务器负载高,还是缓存响应慢,还是nginx 传输过程出了问题.每一个问题背后,都是值得深入学习.当程序变得越来越复杂,越能明白基础的重要性.

hexo Next 主题 开启Valine 评论功能

1. 注册 LeanCloud 国际版
  • 在设置 → 应用Keys中找到AppID和AppKey
    • 域名白名单 链接 放到 Valine 配置的 ServerUrl中
  • 在存储 → 结构化数据中选择创建class,将class名字设为Comment,同样不用管权限。
    这个Comment就是评论的数据库啦
  • 在 安全中心 -> Web 安全域名 填写使用的域名

2. nex/__config.yml 配置

  • comments 开启 Valine (active: valine)
Valine 配置
  • appid,appkey 填入 LeanCloud 复制的appid appkey
  • serverURLs 域名白名单 的链接 ,需要特别注意的是复制出来的 是 xxx.api.xxx.com ,加个https: 才好使.最后的链接形式是https://xxxxx.engine.lncldglobal.com

3. 参考资料

优秀的人不会停止学习,找对方法和方向会事半功部.
韩天峰 https://rango.swoole.com/
1
2
3
4
5
6
7
8
我推荐几本书给大家,包括
深入理解计算机系统、现代操作系统、C程序设计语言、C语言数据结构和算法、Unix环境高级编程、TCP/IP网络通信详解

另外我建议大家学习一下面向对象方面知识,PHP这方面的书不太多,建议看
Java面向对象编程、Java编程思想、J2EE这些书。
PHP语言基础方面,建议认真地把PHP5权威编程这本书好好读完。另外不光要读,还要照着书中的讲解动手去编程实践。

php的书有点旧,建议找新的.其他都不错,建议认真读.
风雪之隅 https://www.laruence.com/

PHP开发组核心成员, Zend顾问, PHP7及PHP8 JIT核心作者. Yaf等开源项目作者.

酷 壳 – COOLSHELL https://coolshell.cn/

左耳朵耗子

最近我一直在努力使用GPT3.5,惊讶的发现,这货写信和废话文档真是一绝.只要给出几个关键词,它就能生成文章,我们只需要在生成的基础上调整一下就是不错的文稿.这种技术要是再发展,从事这行的作家,特别是中国大量网络写手可能要转行了.

0%