随笔-201810

  • 程序=数据结构+算法

无关语言,编程即为为针对类型的读写操作。

  • ZK中Watch机制

服务端node发生改变时,会通知相关client,那么这个流程是怎么样呢?

客户端与服务端是长连接(会保持多久),服务端是通过这个长连接发送变更信息给客户端吗?服务端是按顺序轮询所有监听的客户端?

watch采用推拉机制,服务端推送事件类型与路径(NodeDataChangee、NodeDeleted等),客户端根据相关信息从zk拉取数据。

  • go语言中interface内存结构,以及和struct是如何关联的?
  • 程序设计过程中,如何判断是否使用单例模式?

像开发过程中,遇到许多空结构体,只是用来实现某一接口,即其内存结构中Data=nil,itable指向相应func,这种情况比较适合采用单例模式,多个类没有意义。

  • go开发过程中,接口设计尽量细,通过接口嵌套关系组成接口矩阵
  • error与panic区别

error更适用于业务处理过程中的异常,而panic一般用于处理意料之外的异常

  • 程序执行过程

应用程序执行过程中,通过JIT即时编译为机器码,在程序中执行。可通过系统调用创建线程,一般为内核线程。在线程执行过程中,可能会遇到用户态与内核态的切换(涉及到用户栈与内核栈),通过内存地址来实现状态转换。

该过程中,会遇到回调,其实应该对应顺序流程中最后一步加上回调的地址即可。

猜你喜欢

转载自blog.csdn.net/jinyidong/article/details/83011802