学习笔记day2
1.基于接口而非实现编程更好的说法是基于抽象而非基于实现编程。具体来说在接口名字上不要暴露实现的细节比如用upload而非uploadaliyun后者会暴露出是发到阿里云的如果接口这样命名新的实现需要新的方法或者使用这种难以理解的名字哪怕不是这个作用。抽象的思维是总是会用到的在面向过程编程里函数就是一种抽象通过函数减少了代码阅读的复杂性提升代码复用。2.继承和组合多用组合少用继承。当类的关系比较简单时使用组合和继承的区别不是很明显但是当类的关系表现出很深层次的继承时使用继承可能会导致代码过于复杂可读性下降同时编程难度升高。而且对于不同类别的比如不会飞的鸟的fly还要做特殊处理。使用组合是一种has a的思想但是通过组合、接口、委托也能达到继承的效果。3.分布式时间不同节点的时间获得有三个要点时间源、授时节点、时间特性对于最后一个就是时间是物理时间还是逻辑时间。4.贝尔曼方程贝尔曼方程是强化学习里通过状态转移、奖励、动作和状态迁移函数确定状态的价值函数以及行动和状态的行动价值函数的方程行动价值函数又叫Q函数。Q函数是在状态价值函数的基础上增加了当前行动a的价值的期望的计算它在之后采取的策略和状态价值函数在相同状态下采取的策略相同但是此时此刻的行动和策略无关因为对于策略来说对于行动有自己的设置可能是左可能是右可能是20%左、80%右而行动状态价值函数的行动a是确定的。用贝尔曼方程解决问题是通过联立方程求解得到的这个过程只适合解决很小规模的问题当规模扩大时计算量的增长速度会非常快。5.动态规划在强化学习的策略中有策略评估和策略控制策略评估是求一个策略的状态价值函数策略控制是通过在策略评估之后对策略进行调整使其变成最优策略即状态价值函数在任何状态下都最高的策略。在动态规划中是有轮次的。它的官方定义应该是通过把大的问题拆解成更小的最优问题来解决。我是通过在写力扣算法题的时候第一次学到这个概念包括状态集合、状态转移。在强化学习的动态规划中同样有状态价值函数、行动状态价值函数但是这里是有不同的轮次的当前轮次的状态价值函数由上一轮的状态价值函数决定这样就可以不断推演。最终收敛到状态价值函数的值这只是进行策略评估的过程。6.NGINXnginx拥有反向代理的功能使用的是reactor模型采用epoll实现io多路复用。我在想nginx对于后端学习应该是有帮助的我决定通过nginx完善对webserver的理解来对自己的webserver进行一定的修改。一是通过视频学习和nginx相关的内容二是阅读讲解和nginx源码相关的书籍。之前阅读stl源码书籍虽然只阅读了一多半但是收获也是非常多的。
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2438832.html
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!