💼 从工作中学到的

    💼 从工作中学到的 当我们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 月前

👀 产品观察 最近 Arc 浏览器话题度较高,原因大概是最近允许教育邮箱直接内测吧。趁着这个机会,使用了一段时间。我的感受是:不习惯+不好用。这就是一个披着mac os 原生软件皮的chrome(基于chromium开发)。官网的噱头就是外观设计足够的吸引人。但是如果说只是看外观,难道Safari的外观设计不好看吗。但是safari的份额如此之低,在于Safari就是为了外观牺牲了很多易用性。当然还因为它不是chromium内核导致很多插件没有(我个人的主要原因)。看上去浏览器的外观,这十几年都没有变化,顶栏是标签列表,接着是标签列表,edge支持把标签列表放到左侧边栏是一个很大的变化,也足够的易用,因此edge的外观创新是成功的。再来看看arc的创新,官网介绍是“Arc is your space to breathe on the internet.”,啧啧啧。饼还挺大,使用arc的第一个感受:掉帧,没有chrome流畅。猜测原因是mac的透明背景、毛玻璃效果还是挺占用cpu的...再来看arc的交互设计,很多地方彻底改变人们对浏览器的习惯,这点不评价是好事还是坏事,只是这种习惯的颠覆,没有正比例带来颠覆的收益。比如地址栏放到了左侧边栏,同时左侧边栏只能彻底隐藏或者显示比较宽的一个区域,让整个网页显示区域过小,体验过差。还有标题栏也没有了,需要鼠标hover上去才能显示...难受。当然可以用快捷键,隐藏左侧边栏。左侧边栏和顶栏都消失的时候,整个浏览器只剩下网页,这种感受是从来没有过的,很奇怪。当然arc还是有一些特性不错的,比如左侧边栏支持多个space切换,这个希望edge 跟进。还有左侧边栏显示下载的内容列表也还不错。但是总体,arc对浏览器的核心工作创新太少,完全算不上所以的“新的互联网”,基本上就是UI上改改,同时打破了很多习惯,在网页滚动的流畅性也降低不少,所以根本无法“名副其实”。我会再尝试一段时间,再来写新的感受。

4 月前

📝 每日记录两个感受:思考先行,做一个功能、需求,先去思考,这个思考不是说凭空思考,而是去写一些伪代码、流程图、甚至可以是部分代码,让整个需求变得清晰,让这个需求中的每个流程的流程图清晰,并且有文档可以备份大的需求一定要分期完成,一次性考虑太多分支及其出问题,先限定条件,完成一个分支,再慢慢向外扩充,通用能力

5 月前

多谢关心:)

10 月前

笑死😆

12 月前

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

13 月前

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