【课外活动小结】二零一八年第二季度:二零一八年五月日知录
邓文武吧
全部回复
仅看楼主
level 14

历史回顾
【课外活动小结】二零一八年第一季度:二零一八年一月日知录
https://tieba.baidu.com/p/5500238677
【课外活动小结】二零一八年第一季度:二零一八年二月日知录
https://tieba.baidu.com/p/5546971482
【课外活动小结】二零一八年第一季度:二零一八年三月日知录
https://tieba.baidu.com/p/5572689963
【课外活动小结】二零一八年第二季度:二零一八年四月日知录
https://tieba.baidu.com/p/5628611698我们敲下的每一行代码,都在改变着这个世界。
始终记住,消除焦虑的最好方法就是让自己变得有价值,让自己的时间变得有价值。
2018年05月01日 14点05分 1
level 14
二零一八年五月一日 二零一八年第十八周星期二
二零一八年倒计时 第244天 农历三月十六
真正想改变的人,绝对不会寄希望于假期或者是课余时间;
他们始终在努力,习惯了这样的节奏,这样的生活,就像鱼习惯了水一样。
课外活动
慢跑 00:45:01 7.91km;
步行 00:32:13 2.36km;
步行 01:03:09 3.52km;
课外阅读之C++语言的设计与演化:C++存储管理机制实现简介。
2018年05月01日 15点05分 2
level 14

二零一八年五月二号 二零一八年第十八周星期三
二零一八年倒计时 第243天 农历三月十七
怎么避免工作了十多年却在竞争力上不如刚入行一两年的同事呢?
不要跟自己说是天赋的影响,大部分的成败都远没有到比拼天赋的程度;
因为不如人的焦虑,但整天又不愿意耐心地坐在板凳上钻研自己的工作,提高自己的技能;
这样的除了变得更焦虑,又有什么用呢?
有幸和许多很聪明很专业很有干劲的小伙伴共事,应该感到开心,应该努力让自己能和他们并肩战斗才可以,而不是看到他们的成就和能力心生嫉妒;
嫉妒心当然是很Common的,关键是要让这种情绪转换为正向的激励。
自己的前途,当然是在于自己了;
问题是,为什么总是赶不上趟呢?
课外活动
步行 00:23:39 1.76km;
步行 00:27:58 1.97km;
课外阅读之C++语言的设计与演化:C++存储管理之将存储分配和初始化分离。
2018年05月12日 13点05分 3
level 14

二零一八年五月三号 二零一八年第十八周星期四
二零一八年倒计时 第242天 农历三月十八
看五年,想三年,认认真真做好一两年;
看五年,就是看看比我们大五岁或多工作五年的人,看看他们所处的社会地位、收入、生活状况,几乎可以肯定五年之后,自己就是他们中的一个,所以挑选一个作为自己努力的目标吧;
想三年,就是要想清楚自己未来三年要做的事情,要具备什么样的能力;都说一个技能从零开始,至少需要一万个小时的打磨,大体折算下来,差不多是三年时间,所以要确定一个目标,在三年之内不要轻易改变我们坚持做的事情;
认认真真做好一两年,就是要把我们的事情做好,少点抱怨,在战略上藐视敌人,战术上重视敌人,眼前的事情和人对当下的我们来说才是最重要的。
关于抱怨,所有的抱怨与不满都来自于自己的无能,一颗阴暗的心,永远也撑不起一张灿烂的笑脸。
几乎所有的事情都可以速成,唯独成长不可以。
已经落后了许多,差距能缩小一点是一点吧...
课外活动
步行 00:25:18 2.09km;
步行 00:17:00 1.73km;
步行 00:33:02 1.95km;
慢跑 00:20:31 3.29km;
课外阅读之C++语言的设计与演化:C++存储管理之数组分配。
2018年05月12日 13点05分 4
level 14

二零一八年五月四号 二零一八年第十八周星期五
二零一八年倒计时 第241天 农历三月十九
如何减少团队的低质量代码?
大家的水平参差不齐,可能有的人写高质量的代码已经是本能,更多的可能只是为了实现功能而堆砌出来的代码,如果不对代码质量进行管理的话其可读性、可扩展性及可维护性都是得不到保证的;
所以作为一个非软件公司中软件团队的TeamLeader,不仅要能以身作则写出高质量的代码,更要借助于常见的工具和开发管理流程来推进组内成员写出质量较高的代码,具体而言可从以下几方面入手:
1. 强制上静态检测,比如代码不符合相关的规范则直接不能通过,比如Python的pylint,C/C++的cpplint或cppcheck等等;
2. 制定编码规范或者使用现成的编码规范,比如python的pep8,C/C++的Google编码规范,如果是动态语言,则必须禁止滥用动态特性导致代码维护性变差等等;
3. 强制进行Code Review,分支提交及合并必须至少经过组内Review才能进行下一步操作;
4. 保证一定的单元测试覆盖率,但这一点针对嵌入式系统的代码如何实施呢?
5. 通过培训、技术分享等手段提升组内程序员的素养。
课外活动
步行 00:37:34 3.15km;
课外阅读之C++语言的设计与演化:C++内存管理之放置。
2018年05月13日 09点05分 5
level 14

二零一八年五月五号 二零一八年第十八周星期六
二零一八年倒计时 第240天 农历三月二十
接着昨天的话题,如何保证团队的代码质量。
其实开发人员的技术水平和对技术的追求会决定性地影响到代码质量,实际项目过程中优秀开发人员的代码质量根本不用担心,即使在业务节奏比较快的情况下,这些优秀开发人员的工作输出还是非常不错的;
其次有没有工具,有没有人,有没有流程,的确能在一定程度上影响整个团队的代码质量。
上面说了定期的CodeReview或在分支提交、合并、上线前必须做好CodeReview,其实在实际开发中,能真正坚持做、做到位的非常少,一则很多时候单次提交代码量过大的话,或者是业务迭代节奏快,这样review不过是走个程序而已,另外就是团队里对整个代码逻辑能理解得比较清晰的人还是少数,频繁reveiw的话会增加他们的工作量,也不太现实。
所以要针对团队的具体情况具体分析之,对于小团队,可以通过使用现有工具和规范辅以定期review的形式来控制代码质量,对于较大的团队则必须通过流程和一些自研的自动化检测工具来保证代码质量。
课外活动
步行 00:19:29 3.02km;
步行 00:57:39 4.19km;
步行 00:26:41 3.87km;
慢跑 00:29:48 5.28km;
课外阅读之C++语言的设计与演化:C++内存管理之存储释放问题。
2018年05月13日 10点05分 6
level 14

二零一八年五月六号 二零一八年第十九周星期天
二零一八年倒计时 第239天 农历三月廿一
事实上在大部分软件开发团队中,团队代码的质量和Leader的要求高低与否有很大的关系;
作为TeamLeader,如果对团队的代码质量期望很高,那么必须通过一系列宣贯或言传身教将自己的期望传达个团队的每个成员,并且要在日常的工作过程中落实到流程和规范上,最好是能将一些东西提炼成客观的标准或者是能做出一套自动化的工具,尽量减少具体到某个人的依赖。
另外,在流程之外,形成专家团队对组内代码进行抽查,发现问题或者是有值得推广的东西要和团队成员及时沟通,在某些情况下,这可能是最为有效的一种方式了。
课外活动
步行 01:24:19 4.47km;
慢跑 00:26:13 4.32km;
课外阅读之C++语言的设计与演化:C++存储管理之存储器耗尽。
2018年05月13日 14点05分 7
level 14

二零一八年五月七号 二零一八年第十九周星期一
二零一八年倒计时 第238天 农历三月廿二
目前开发的系统对代码的实时性以及安全性要求非常高,相关的标准可以参考MISRA(The Motor Industry Software Reliability Association)标准以及ISO26262标准;
据说MISRA的篇幅不大,其C/C++标准相当符合ISO26262标准;
但是MISRA标准在某些方面比如字符集上规范的相当细致,但对于嵌入式系统却缺乏定义。
实际上,车规级的嵌入式实时系统实时性要求相当高,各种任务的执行实际最好是可以预测到的,所以在非实时系统上的一些编程方法在实时系统上就需要避免使用,比如递归、中断、动态内存分配等等。
中断的一个处理方法是使用轮询的方式来检查相应的中断标志位,然后调用对应的函数进行处理,同时确保每个函数的静态分析结果的运行时间是可控的;
而动态内存分配可以使用大量的static变量来代替,这样每个变量仅在启动时分配内存,在运行中不释放,这样运行时的很多状态就是可控的了。
课外活动
骑自行车 00:21:42 3.58km;
步行 01:03:02 4.73km;
课外阅读之C++语言的设计与演化:C++存储管理之自动废料收集之一。
2018年05月14日 15点05分 8
level 14

二零一八年五月八号 二零一八年第十九周星期二
二零一八年倒计时 第237天 农历三月廿三
心态再好一点,多关注自己的一亩三分地;
有时候确实要想一下,这件事做完之后自己要去做什么;
不能总是让别人指方向,自己却不去动脑筋。
课外活动
步行 00:36:18 3.17km;
骑自行车 00:27:01 3.62km;
慢跑 00:32:16 5.68km;
课外阅读之C++语言的设计与演化:C++存储管理之自动废料收集之二。
2018年05月15日 13点05分 9
level 14

二零一八年五月九号 二零一八年第十九周星期三
二零一八年倒计时 第236天 农历三月廿四
最近看的这本书差不多是作者二十年前写的;
二十年过去了,C++在功能及库上有不少改变;
问题是,作为一个C/C++程序员,能说得清从C++11到C++17有哪些扩充吗?
不能吧...对于很多特性,还仅仅局限于知道有这么回事的程度,遑论灵活运用,这当然是不够的。
错失了一个个机会,与其临渊羡鱼,不如退而结网,就算自己打不到鱼,给别人用也是极好的。
课外活动
骑自行车 00:24:36 3.37km;
骑自行车 00:22:28 3.67km;
课外阅读之C++语言的设计与演化:C++存储管理之理解与总结。
2018年05月16日 14点05分 10
level 14
二零一八年五月十号 二零一八年第十九周星期四
二零一八年倒计时 第235天 农历三月廿五
进度要再快一点;
对结果或者是现状不满意的时候,或许正是起飞的时候。
课外活动
骑自行车 00:23:48 3.28km;
骑自行车 00:20:13 3.38km;
慢跑 00:27:59 4.15km;
课外阅读之C++语言的设计与演化:C++重载机制的引出。
2018年05月17日 14点05分 11
level 14

二零一八年五月十一 二零一八年第十九周星期五
二零一八年倒计时 第二百三十四天 农历三月二十六
最近很不开心,一则是干什么不成什么,无论是科研还是业余上课的进度,看来最终都是要放弃的;
二则是感觉投胎比努力更重要,我们就算再努力也实现不了的目标,可能别人在出生时就已经拥有了;
一个又一个地方,错过一波又一波的机遇,本来想这里房价低应该可以安居,没想到不到半年的时间涨了一倍,赚钱又有什么用呢?到头来还是给房东打工。
干啥啥不成,或许就这样了吧,不甘心!
课外活动
骑自行车 00:22:20 3.33km;
骑自行车 00:18:26 3.33km;
步行 00:52:37 3.13km;
课外阅读之C++语言的设计与演化:C++重载的细粒度解析之一。
2018年05月18日 13点05分 12
level 14
二零一八年五月十二日 二零一八年第十九周星期六
二零一八年倒计时 第二百三十三天 农历三月二十七
无论做什么事情,缺乏自己的思考是走不远的
课外活动
慢跑 8.04km 00:47:39;
步行 2.03km 00:34:18;
步行 3.30km 00:52:39;
课外阅读之C++语言的设计与演化:C++重载的细粒度解析之二。
2018年05月22日 01点05分 13
level 14

二零一八年五月十三日 二零一八年第二十周星期天
二零一八年倒计时 第二百三十二天 农历三月二十八
AUTOSAR在CAN上的处理与传统的CAN收发还是有比较大的差异。
过去我们写CAN的代码,也就是写了CAN基本的Tx和Rx程序,收到原始8个bytes的数据后,进行什么处理或者在哪一层处理都由自己随意来定,有的甚至8个字节的数据都可以直接在APP层用建模进行解析处理,这种情况也不少见,也没有不对。
而AUTOSAR出于解耦、隔离及统一接口的因素考虑,将CAN做了多个层次的处理,不再只是一个底层驱动+应用层或增加一个中间层的这样的结构。
附图为AutoSar应用层的一个常见结构,红框标记处即为AutoSar中和Communication有关的部分。
其实,关于如何分层,万变不离其宗,可以结合OSI七层模型来理解AutoSar对CAN及各种通信是如何分层的。
未完待续...
课外活动
步行 3.24km 00:48:13;
步行 2.22km 00:18:31;
步行 2.73km 00:36:52;
步行 1.56km 00:16:40;
课外阅读之C++语言的设计与优化:C++重载机制的歧义控制。
2018年05月22日 21点05分 14
1