方法论
sunshineywz
这个作者很懒,什么都没留下…
展开
-
【转载】 详解事件驱动跟消息驱动机制相比
事件驱动和异步IO通常,我们写服务器处理模型的程序时,有以下几种模型:(1)每收到一个请求,创建一个新的进程,来处理该请求;(2)每收到一个请求,创建一个新的线程,来处理该请求;(3)每收到一个请求,放入一个事件列表,让主进程通过非阻塞I/O方式来处理请求上面的几种方式,各有千秋,第(1)中方法,由于创建新的进程的开销比较大,所以,会导致服务器性能比较差,但实现比较简单。第(2)种方...原创 2020-07-14 08:56:22 · 283 阅读 · 0 评论 -
大家是怎么阅读《深入理解linux内核》这本书的?
先看内存管理部分, 寻址,分段分页,内存地址映射,物理页框的管理, 因为内存访问是一切的基础接着看进程/内核 的地址空间的管理,如进程 mm结构,vm_struct管理,内核内存分配的几个主要函数,slab, 伙伴系统 等内容。再接下来看vfs和 页高速缓存, 文件,文件系统后io 设备和sysfs驱动模型最后看进程调度,内核同步,中断,信号,等其他内容,node,zone,伙伴系统,通...原创 2020-05-30 10:02:51 · 563 阅读 · 0 评论 -
阅读的代码
我觉得适合(以学习目的)阅读的代码有一下几个特点。1。高质量。比如千锤百炼的基础库。2。上下文环境熟悉。在读一个函数或组件的代码之前应该用过它,最好是经常用它,对于它的用法十分熟悉。恩,这也是我首先推荐阅读基础组件库的原因,因为这些总是经常用到的。3。不涉及过于专业的知识。基础库很多代码并不适合这一条,特别是为了性能考量,代码中会涉及一些比较难的算法和罕见的处理手段。所幸的是这种东西出来的时...原创 2020-05-30 10:01:45 · 352 阅读 · 0 评论 -
代码阅读方法
基础阅读,检视阅读,分析阅读,对比阅读。接下里我们目光需要聚焦在代码的目录结构,和每个源码的文件名。很多语言和框架,有约定俗成的目录结构(Convention by Contract),因此,通过目录我们就可以快速知道哪些是可以略过的部分,比如 django 的 management/commands 目录,elixir 的 mix/tasks 目录,这些目录,承载着支线剧情,需要的时候,或者...原创 2020-05-30 10:00:22 · 635 阅读 · 0 评论 -
架构设计|异步请求如何同步处理?
本文创意来自一次业务需求,这次需要接入一个第三方外部服务。由于这个服务只提供异步 API,为了不影响现有系统同步处理的方式,接入该外部服务时,应用对外屏蔽这种差异,内部实现异步请求同步。全文摘要:异步给现有架构带来的问题Dubbo异步转同步解决方法异步转同步架构设计方案0x00. 前言现有一个系统,整体架构如下所示:这是一个很常见的同步设计方案,上游系统需要等待下游系统接口返回调用结果。现在需要接入另外一个第三方服务B,该服务与服务 A 最大区别在于,这是一个异步API。调用之后,仅仅返回原创 2020-05-21 11:57:10 · 336 阅读 · 0 评论 -
如何学一门新语言,以 Dart 为例
世界上没有一种可以各个领域通吃的语言,为了应对不同的场景和需求,我们摆脱不了要学习一门新的语言。最近准备入坑 Flutter(技术储备),学了点 Dart, 一点心得分享给大家。大纲介绍假定前提基本原则基本姿势已有的语言认知建立标签云刻意学习,以 Dart为例① 2018 最坑人语言?② 针对客户端优化③ 面向对象④ 操作符⑤ const/final 与静态数据⑥ 类型系统⑦ 异步异步⑧ 元编程实践深入了解这门语言总结扩展介绍1. 假定前提我想看这篇文章的应原创 2020-05-20 22:20:30 · 336 阅读 · 0 评论 -
使用函数指针实现FSM
使用函数指针实现FSM的思路:建立相应的状态表和动作查询表,根据状态表、事件、动作表定位相应的动作处理函数,执行完成后再进行状态的切换。首先我们定义出小明一天的活动状态//比如我们定义了小明一天的状态如下enum{ GET_UP, GO_TO_SCHOOL, HAVE_LUNCH, DO_HOMEWORK, SLEEP,};我们也定义出会发生的...原创 2020-04-05 10:16:18 · 485 阅读 · 0 评论 -
如何阅读一份源代码?
先跑起来开始阅读一份项目源码的第一步,是先让这个项目能够通过你自己编译通过并且顺利跑起来。这一点尤其重要。有的项目比较复杂,依赖的组件多,搭建起一个调试环境并不容易,所以并不见得是所有项目都能顺利的跑起来。如果能自己编译跑起来,那么后面讲到的情景分析、加上调试代码、调试等等才有展开的基础。就我的经验而言,一个项目代码,是否能顺利的搭建调试环境,效率大不一样。跑起来之后,又要尽量的精简自己的...原创 2020-02-21 09:23:34 · 341 阅读 · 0 评论