沉思录一:如何维护一个复杂的网络应用

8 篇文章 0 订阅
3 篇文章 0 订阅

写下这个文章的时候,刚从一个复杂的linux服务端网络应用项目中脱出,除去身心的疲惫不堪后,不得不反思标题中的问题,如何破局?这样在下次面对相似问题时,可能就多几分幸存的几率。

“最想知道我是在什么地方死的,这样我就可以避开死亡了。”
这个是查理芒格多次讲过的话。但是很多人被困难问题击败后,都没有找到自己是在哪儿失败的?如何破局?首先是找到在哪儿挂的和挂的原因。

一. 在哪挂的

1. 不稳定,经常crash,还有各种功能异常偶发的Bug;
2. 性能不佳,号称大几十万的并发量,但是根本就达不到;
3. 出现bug了,难于定位分析,即使定位后,难于根本解决;
4. 难于扩展,以应对新增需求和变更;

以上问题都是表像,如仅仅认识到这样的程度,根本无法破局。

二. 深层原因

1. 架构设计复杂
架构繁复,背离简约。很多地方明明可以使用简单的机制实现的,非要往复杂方向设计;
2. 模块划分失当
软件模块多,复用量少。代码抽象程度不够,导致相似功能的不同模块,有很多重复代码;
3. 错误机制众多
软件里充斥了很多表面看着正常,但实际错误的机制方法;
4. 部署配置繁复
配置参数太多,部署实施复杂,无详细实施说明;
5. 缺乏基本测试
没有单元测试,没有模块测试,没有稳定性测试,没有自动化测试;
6. 缺乏版本控制
没有版本号,没有分支控制,没有自动编译;

三. 更深层原因

1. 项目管理缺陷
可能的根本原因还是对软件工程不了解;
2. 架构设计缺陷
可能的根本原因是似乎没有架构设计能力;
3. 不解常用机制
常见的linux软件机制方法不了解;

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值