- 主题:掐指一算,本青可以不用学c++20了
软件错误不是问题,除非你们的业务承担不起错误的代价。哪个软件没 BUG
你们看开一点吧。软件改得怎么样不要在意,有一个同事在尽心尽力地做这种吃力不讨好的事情,只要别做到一半就中断,能持续跟着你们维护下去,就是福气。
【 在 toutouqi (toutouqi) 的大作中提到: 】
: 智能指针有人用的,只是老代码,结构简单的类改成用智能指针有时候显得并不智能,比如自定义的多维数组,比如简单字符串的parser及其语法树。没说这些语法不正统,只是觉得把时间花在追新标准方面浪费时间,也给原有开发者在维护代码的时候添了不少麻烦,毕竟谁也不能保
--
FROM 112.47.122.*
不是rand,rand好像就是个求余有点简单,是按paper轮出来的随机数,包括均匀分布、高斯等,种子是类的非静态成员,已经用了好多年,要有线程问题早暴露出来了。
【 在 hgoldfish 的大作中提到: 】
: 老的随机数生成器 rand() 和 srand() 是整个进程唯一的,所以可能存在线程间的锁。而新的标准库里面的则可以做到每线程独立。贵司这位架构司干的很不错。
:
--
FROM 221.220.229.*
1 define vs const,是Effective cpp第二款的建议。主要是字符串替换与符号定义的区别。define没有任何优势。2000年以前的建议。 inline const只是个语法层的更新。
2 随机数是个专门的话题,我不懂。但你们要有自研算法,贸然换标准库不妥。
3 变量声明处给默认值,可以预防新增构造函数,不写初始化列表吧!语义上,或者设计表达上,这和默认值是场景无关的。构造函数的初始化列表,以及反序列化接口,每个都对应不同的使用场景,不同的默认值。
你的发言啊,我感觉主要还是情绪上的对抗。大多语法改动都是表层的问题,主要是为了传达设计意图、业务意图。如果只会把for改range based for,那是形式大于内容。
【 在 toutouqi 的大作中提到: 】
: 这方面有:把define的常量改成inline const,让把用了多年的随机数生成改成新标准里的random ...
--
FROM 1.80.243.*
自定义多维数组,是全公司/统一的类,还是每个人来一个? 升级这个类就可以吧。
opecv里,CvMat就升级过,以前叫什么ImgArray,很不好用。
没有宽高、要记得释放。有了Mat以后,基本就没人用Array了。最多的是非计算机专业的在CSDN上,查了点二脚猫老代码,要把Mat转回去。
另外调研下,你们代码库,所有接口,const的多,还是非const的多?
【 在 toutouqi 的大作中提到: 】
: 智能指针有人用的,只是老代码,结构简单的类改成用智能指针有时候显得并不智能,比如自定义的多维数组,比如简单字符串的par ...
--
FROM 1.80.243.*
你说得对,很多改动只是语法层面,对业务逻辑没有一毛钱帮助,比如做卷积运算的类里的buffer,智能指针替换普通指针有啥好处呢。当然也有情绪上的,如果你习惯用筷子,别人却把你的筷子换成叉子,而不管你用叉子会不会多花10分钟才能吃完,换谁也不会太高兴。
【 在 DoorWay 的大作中提到: 】
: 1 define vs const,是Effective cpp第二款的建议。主要是字符串替换与符号定义的区别。define没有任何优势。2000年以前的建议。 inline const只是个语法层的更新。
:
: 2 随机数是个专门的话题,我不懂。但你们要有自研算法,贸然换标准库不妥。
: ...................
--
FROM 221.220.229.*
用途不同,不是统一的,比如有按列格式的,也有类似c的二维数组按行排列的。如果你说的是接口的变量,const多非const少,返回pair或者tuple的好像也很少。
【 在 DoorWay 的大作中提到: 】
: 自定义多维数组,是全公司/统一的类,还是每个人来一个? 升级这个类就可以吧。
:
: opecv里,CvMat就升级过,以前叫什么ImgArray,很不好用。
: ...................
--
FROM 221.220.229.*
“比如做卷积运算的类里的buffer,智能指针替换普通指针有啥好处呢”——没有明显bug和明显没有bug的区别。
如果这个buffer不被暴露出去,一般没问题。 改智能指针,unique会防止无意的copy ctor和copy assign。
【 在 toutouqi 的大作中提到: 】
: 你说得对,很多改动只是语法层面,对业务逻辑没有一毛钱帮助,比如做卷积运算的类里的buffer,智能指针替换普通指针有啥好 ...
--
FROM 36.45.40.*
不统一就太蛋疼了。统一的Mat类多好。
接口的变量?没懂。我说的是,所有的类的成员方法,后面有const修饰吗?如果有,说明你们已经做得不错,战胜了非const派。代表当时进步的新力量。如果没有,说明你们就是完成业务为主的工程软件,软件工程本身考虑的比较少。你们这arch做得是基本工作。而且很可能是行业外的,业务敏感性一般,主要考虑软件工程本身的问题。
版本控制、分支管理、提交log、注释规范、build系统后面都会动。一般这种人都是一套的。
【 在 toutouqi 的大作中提到: 】
: 用途不同,不是统一的,比如有按列格式的,也有类似c的二维数组按行排列的。如果你说的是接口的变量,const多非const ...
--
FROM 1.80.243.*
不没修改类成员的方法有加const的,也有没加的,不统一,老代码都一般没加。arch确实不太关心每个人做的业务,也基本没可能把每个业务开发的算法都搞懂。但对业务开发,宁可希望有人能帮忙关注点业务,毕竟用户只能看到业务bug。
【 在 DoorWay 的大作中提到: 】
: 不统一就太蛋疼了。统一的Mat类多好。
:
: 接口的变量?没懂。我说的是,所有的类的成员方法,后面有const修饰吗?如果有,说明你们已经做得不错,战胜了非const派。代表当时进步的新力量。如果没有,说明你们就是完成业务为主的工程软件,软件工程本身考虑的比较少。你们这arch做得是基本工作。而且很可能是行业外的,业务敏感性一般,主要考虑软件工程本身的问题。
: ...................
--
FROM 221.220.229.*
格式这种应该大家一起选一种,以后都用IDE自动格式化啊。
c库一般做法是wrap一个c++接口出来用吧。
如果多个工程复用,不是应该提取到共用模块吗?
感觉有实际意义的改动不多啊
【 在 toutouqi 的大作中提到: 】
:
: 成熟的c库改用c++编译(改少量代码),比如说类里的指针数组改vector,类成员初始化挪到变量定义位置,(输出参数)传引用改传指针,改掉memset、memcpy,一个类似检查字符串是不是绝对路径的小函数,要改成引用另一个工程的类似函数(如果被引用的函数不能完全满足要求,就再去改那个工程,导致工程间依赖很多),还有一些格式方面的,比如if后跟单个语句加不加花括号,和for在同一行的花括号改到下一行,等等。
: 【 在 hgoldfish 的大作中提到: 】
: : 可以说说他是怎么改的啊。让大家看看他改得好不好。
: :
#发自zSMTH@IN2010
--
FROM 117.136.21.*