2021读书笔记【小满】
1.垃圾回收器会更频繁的处理新对象。一个新的对象即是你的程序刚刚创建的,而一个老的对象则是经过了几个时间周期之后仍然存在的对象。Python会在当一个对象从零代移动到一代,或是从一代移动到二代的过程中提升(promote)这个对象。
为什么要这么做?这种算法的根源来自于弱代假说(weak generational hypothesis)。这个假说由两个观点构成:首先是年轻的对象通常死得也快,而老对象则很有可能存活更长的时间。
2.协程的实现,无非是你要维护一组局部状态,在重新进入协程前,保证这些状态不被改变,你能顺利定位到之前的位置。你平时所写的一些逻辑控制代码,经典如状态机或对象等,也许就已经是一种“协程”了。区别在于是否精巧,适用条件是否苛刻,使用是否方便,效率是否足够罢了。
面向对象中的对象,函数式语言中过程的chunk实现,都跟协程有些相似的结构。这些语言的表达足够丰富,有没有协程,倒不构成问题。真要说起来,我觉得协程的最大的好处是在写过程式(命令式)风格的代码时,很好的简化了逻辑的流程。
协程和线程的区别是:协程避免了无意义的调度,由此可以提高性能,但也因此,程序员必须自己承担调度的责任,同时,协程也失了标准线程使用多CPU的能力。
3.协同进程Coroutine并不是线程,它使用yield return语句强行将代码分为两部分执行,每一帧Unity都会查询一下yield返回之前的位置是否满足条件。如果满足那么继续运行协程剩余的代码,并且至少会推迟一帧。
4.理论正确,并不一定表示实践正确。
王司徒虽然在理论方面驳倒了诸葛村夫,但是他的理论是没法付诸实践的。因为所谓的“有德者”是没法判定的,正因为如此,那些枭雄们都觉得自己是能占有天下的“有德者”,这恰恰会成为天下大乱的根源。
5.先搞清楚新的系统是搞什么的,就问简单几个问题,谁在用这个系统?用这个系统做什么?然后自己根据这些问题去文档找答案。再弄清楚系统是怎么分层、分模块的,每层、每个模块都用到了什么技术和框架,之间是怎么通信的。
6.什么叫浪漫?花费一大堆时间去做一个不见得有产出的事情叫做浪漫。自古浪漫都是和浪费联系在一起的。
操作系统、编译原理和图形学这三点正是如此。
7.对编程这事来说,不熟练是写得太少,缺乏练习。
太熟练说明知识固化,技术深度广度不够,也不见得是好事。
先以力胜,后以道胜,普通人就是要多写多练
8.那么何谓成熟呢?就普通人而言,能不再以自我为中心,能理解别人的痛苦。
9.离开以后我还觉得蛮认可字节宣传的很多工作方式的,但是那种工作方式的出发点是为了给公司赚钱,为了套住所有人的时间和精力,而不是为了有所成就互利共赢,所以必然会走偏,会榨干一个人的精力。
10.我并不是要在大城市,我只是要成为我自己
11.那些花园中的假山看起来非常的精美。但那些都是人造的。浩瀚无比的海洋,你还没有真正见识过。
12.技术上来讲,闭包指值而不是指函数,函数仅仅是闭包的一个原型声明
13.游戏开发不同于普通的应用程序开发,应用程序会讲究系统解耦,每一个模块相对独立,完成自己需要负责的事务就行,尽量不要与其他模块纠缠,这样在改的时候每次都可以独立修改单一模块。而游戏项目越到后面越讲究模块耦合,把游戏里所有的系统功能、设定全都融汇打通,让它们形成一个有机的整体。