美文网首页
程序是怎么越来越复杂的?

程序是怎么越来越复杂的?

作者: Jiafu | 来源:发表于2018-10-30 19:40 被阅读0次

写代码的时候,有时候有这种感觉,就是一个程序,说白了功能很简单,管理管理配置、发发消息、维护一下内存数据结构,好像没啥特别了不起的功能,但是code看起来特别多,特别复杂,这是为什么?

程序越写越复杂的原因,个人认为有以下这些:

异常处理。分配内存失败了怎么办?网络连接闪断了怎么办?硬盘坏了怎么办?网卡坏了怎么办?这些异常,都需要考虑。分配内存失败?已经分配的,是不是要free掉?网络闪断,那是不是要重发?重发对方是不是可以处理?是不是要带一个唯一的ID(这样对方可以去重)?失败了,已经做了一些操作,要不要rollback?处理这些异常,是不是想想都心累 。处理这些异常就要占掉大量的代码,虽然没有统计过,但是觉得起码20%的code是在处理这些异常的。
并发:程序有没有尽可能的并发?有没有可以并发但没有并发并且可能严重影响性能的?并发的时候同步控制怎么搞?这又引起下一个问题。
锁:用什么锁?spinlock?rwlock?mutex?信号量?异步锁?锁的顺序是什么样的(以防死锁)?
对象生命周期的控制:对象什么时候被销毁?在对某个对象进行操作的时候,怎么确保它不会被销毁?引用计数 o r锁?
异步:线程数明显是有限的,为了不阻塞宝贵的线程,只能把同步流程异步化了。到处充斥着callback function,简直酸爽。
高可靠:程序挂掉怎么办?可以再被拉起吗?或者其它相同进程可以接管吗?接管的速度够快吗?接收到的消息,对方再发一遍怎么办,能处理不?能去重不?或者能支持可重入不?重要的业务,挂掉后会不会导致不一致的问题?如果会,怎么保证事务性。
性能:性能够不够?肯定是不够的,来,malloc自己封装一下,搞个cache出来。spinklock?太重了,搞成atomic变量。不该加的锁通通去掉。什么?锁里面分配了内存?会被吐槽死的。不用锁?内存屏障加了吗?
写一个正确的程序,的确是有点难度。

相关文章

  • 程序是怎么越来越复杂的?

    写代码的时候,有时候有这种感觉,就是一个程序,说白了功能很简单,管理管理配置、发发消息、维护一下内存数据结构,好像...

  • C++之处理类型(2.5)

    引言 随着程序越来越复杂,程序中用到的类型也越来越复杂,这种复杂性体现在两个方面。一是部分类型难于书写,名字难记又...

  • 处理类型

    随着程序的越来越复杂,程序中用到的类型也越来越复杂,体现在两个方面: 类型名称难于拼写,名字既难记由容易写错,还无...

  • 2017-08-25

    越来越渴望简单,事情发展的规律往往是越来越复杂,怎么样能在复杂里,保持简单,是技术,需要智慧,而我,正在寻找。 有...

  • iOS应用程序瘦身的静态库解决方案

    为什么要给程序瘦身? 随着应用程序的功能越来越多,实现越来越复杂,第三方库的引入,UI体验的优化等众多因素程序中的...

  • Hook方式实现Activity插件化

    随着应用程序的功能模块越来越多,复杂度越来越高,导致了应用程序模块之间的耦合度越来越高,App的体积也随之越来越大...

  • Flask-蓝图(blueprint)

    蓝图 Blueprint 模块化 随着flask程序越来越复杂,我们需要对程序进行模块化的处理,之前学习过pyth...

  • 夏天里清凉简单的美食套餐

    现在越来越热了,很多人不想到热腾腾的厨房去,做饭太麻烦,程序太复杂,但是又不想到外面浪费自己微薄的工资那怎么办...

  • 如何实现一个简单的熔断以及Hystrix原理分析

    前言 随着业务的越来越复杂,保证程序的健壮性对程序猿来说也变得更加的重要,毕竟不写Bug的程序猿不是一个好的程序猿...

  • [react]20、Redux

    1、为啥要用redux 1、JavaScript开发的应用程序,已经变得越来越复杂了: JavaScript需要管...

网友评论

      本文标题:程序是怎么越来越复杂的?

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