💼 从工作中学到的

    📝 每日记录 从4月末开始,每天熬夜到1点半,身体每况愈下,以至于再也不能不重视了。

    身边新冠第二波的人也变多了。倒是一直没有发烧过,因此也不知道自己有没有阳过,不过其他的症状从1月放开后持续不断。 腰痛、咽喉不舒服,胸闷,呼吸不畅,口腔溃疡等等几乎不间断轮番上阵。

    这半个月来,从新需求启动忙到焦头烂额。但是身体永远是第一位,所以下班后不再想任何工作的事情了。

    💼 从工作中学到的 关于工作,从0启动了一个需求,所以涉及到大量的方案设计与评审的工作。在这里体会最深的一点是:过度设计是一切的根源。很多优秀的技术架构是需要演变的,而不是一步到位。

    在代码设计中,有很多不错的设计模式和设计原则,以便代码便于扩展,容易测试。但是在实际的设计中,很容易从一个具体的需求想要设计一种“极其通用”的设计方式。模块越通用带来的复杂度就越高,因为需要兼顾更多的场景。

    所以不如变成两个模块来做,而不是想要一个模块非常灵活、通用的完成所有需求。

    尤其是在刚刚接触一些设计原则的时候,我们想要在代码的所有地方去应用,比如单一职责,开闭原则、MVC等等。可能会让一个没有那么复杂的需求拆分成很多独立的模块,导致这些模块之间需要还需要通信,或者函数需要不断的通过层级来偷传,这无疑增加了复杂度。

    当然好的代码需要一定的设计,这其中的权衡是需要在不断的实践中掌握的。

    💼 从工作中学到的 「输出论据比论点更有价值」最近在写绩效评价相关的,有一个感受就是情绪或者主观评价都是比较虚的。所以才会有所谓的「夸夸宝典」,这些主观评价就像是一个结论或是论点,必须需要有论据支撑才有价值。当然这个场景下论据与论点结合更适合。

    这个观点同样适用于其他的事情上。比如与别人沟通上,即使你要和别人吵架,提出你的不满,你可以数落对方做的不好的地方,让你烦、讨厌的事情,但最好减少去输出主观的评价或情绪。比如直接人身攻击,大骂对方没素质等等。输出论据,大家也能心知肚明知道你的不满了。而情绪和观点是可能会变的,过几天你可能会因为一时冲动输出太多情绪而后悔,但是事实是不会变的,这不会让自己觉得“冲动了”。

    💼 从工作中学到的 写文档和设计代码有一些相似之处。一个比较复杂的话题想要展开,就好比设计一个复杂功能的类。全部代码写在一个文件中当然可以,就会导致单文件代码行数太多,阅读起来很费劲。如果我们能更好的封装与模块化代码,单个类的功能就会更清晰。

    同理,写一篇复杂话题的文章,也可以有类设计的思想,先介绍最基础的部分,然后基于这个基础会有多个分支展开(子类继承)。多篇文章之间环环相扣,而每篇文章也不会太长,阅读压力也不大。

    我也看到过有很长文章从头到尾讲一个复杂话题的,写的也特别的好,这个就好比仍然是多个类,只不过放到同一个文件里面而已。

    此条为私密说说,仅发布者可见

    💼 从工作中学到的 当我们CR代码的时候,我们在review什么。 其实很难和代码作者本身理解程度来review代码逻辑的正确性,而是应该review一些常见的代码写法的问题。比如指针是否有空指针风险,函数本身的设计(如输入参数在输出参数前面)等等代码规范的问题。

    除此之外,如果对代码需求的细节了解更多,可以review 一些代码的逻辑,比如改动代码是否会影响之前的调用流程。

    CR中几乎做不到的是判断每个变量计算的值是否符合预期,这个需要代码作者本身来保证。

    正常来说,别人给你CR的意见都是你自己每次自己CR的时候应该发现的,所以提高代码质量的一个好方法就是记下每次别人给自己的评论,并反思为什么自己在检查代码的时候没有发现(还是自己并没有检查代码)?

    📝 每日记录 工作如果获取不到持续的成就感和进步,是很容易陷入一种痛苦、迷茫、虚无的感受的。尤其是如果一直工作没办法按照排期完成,一直后延、后延、后延,只是无尽的麻烦... 💼 从工作中学到的

    💼 从工作中学到的 因为国庆大部分时间都在忙工作,节后的几天又继续加班到挺晚才回来,快晚上十点回来后,因为天气变冷,挑选一些过冬东西,然后就已经到凌晨了。这种连轴转到今天早上的时候,闹钟都叫不醒我。整个人特别的困,与此同时也会让我面对环境更加敏感脆弱。所以,过大的压力、不好的作息这些会更让人容易emo,陷入不好的情绪当中。

    今天晚上吃完晚饭就回来了,调节一下。工作的本质,不是为了ld工作,而是给自己工作,提高自己的技能,能挣钱才是目标。不要让自己陷入无尽的社交困境里面,找准靶心,调整节奏,健康作息。

    最近快入冬,身边感冒越来越多,流感也来了,永远是只有身体不舒服的时候才知道健康多重要,

    💼 从工作中学到的 💻 代码思考在正式工作之前,我没有写过单测,主要是平时自己写的代码通常耦合度较高,没有单独抽象设计模块的概念。

    最近开始写一些通用能力的基础库需要写单测。第一次单测的编写是在代码基本完成后开始写的,完成单测后会发现一些bug,于是修改bug。但这个过程中会发现代码设计的一些不合理之处,比如多个接口的返回值是否更统一,对于接口可能出现错误时的返回值,应该如何处理(这个可以多参考chromium base库中的代码实现)。如果一个模块的多个接口设计不统一、那么单测同样也会非常复杂。

    其实上面的过程就有点TDD那味了,但是测试驱动开发,需要先写一个无法通过的测试,通过修改代码来使得测试通过,再重构代码。在这个过程中不断的开发代码,而不是先写完代码,再写单测试。

    单测的重要性是毋庸置疑,因为代码复杂性总可能出现某个分支逻辑错误。因此TDD将单测与开发结合,减轻了写单测的难度和压力,同时也能通过单测进一步发现代码的设计问题。

    参考文章:

    💼 从工作中学到的 工作之前刷题会想,刷题这些有什么用,但是今天真的用上了回溯算法,算法思维在工作中还是有用的,尤其是在做一些底层方法/数据结构设计与封装上很有用(对c++是这样,因为c++的stl 方法并不全能)

    比如chromium中的base::Value 结构是一个递归的结果,如果想拿到最深的key-value 键值对,以及此时的路径上所有key拼接的path,就需要回溯。

    再比如一个目录路径按照分割符打成一个vector,另一个目录下的文件路径同样打成一个vector,想要获取相对路径,就是找两个vector 连续公共的部分。

    之前实习面试中,也有面试官出一些手写的题目,估计就是来源于工作中的一些问题抽象。

联系方式

关于我

  • 来自南部的一个小城市,个性不张扬,讨厌随波逐流。

那年今日
3 月前

📝 每日记录 口腔溃疡下前两周长了两个,好的差不多了。接着左边和右边又各长一个... 感觉最近上火有点厉害。今天看了两个电影 🎬 观影 。一部是《哆啦A梦:大雄的猫狗时空》,这是一部2004年的剧场版。就算放到现在也没有感觉到违和。小狗狗太可爱了!一个时空穿梭带来的猫、狗大战的故事。另一部电影是《非常主播》。一直会看到的表情包,终于看完这部电影。虽然没有什么深刻的立意,不过喜剧片就不要要求那么严格了。女一号和女二号都好漂亮,表情包中的萌娃当然就是很萌的。一个30多岁的大叔有一个20多岁的女儿和孙子。而这个大叔还是有点小有名气的电台主播。剧情围绕大叔不想被曝光这件事情,从而产生的各种剧情冲突。总体还是不错的。

7 月前

📝 每日记录 虽然现在云文档工具越来越多,今天工作的时候需要写一个对外的文档,习惯了用飞书云文档的排版(如多栏、复杂表格内容等),但是如果对外发布(如公众号、社交平台、博客等)还是markdown的格式更通用,因此准备对外的文档还是写纯markdown吧。

9 月前

我的劲椎感觉好痛,甚至连我的左半边手就开始痛了....

12 月前

HomePod mini真是智障音响,家里没有好网千万别买...

13 月前

接近5个小时调试一个问题,在睡觉前终于fix了,太开心了,不用重编3w多个文件了

17 月前

我自己的脖子因为成天坐在电脑前有很酸痛,所以各位一定要保护好自己的颈椎吧,颈椎病这种慢性病实在是不容小觑。