摘要: 我们程序员很容易给别人一种深刻的误解:写代码的。包括我们自己有时候也会陷入这样的圈套之中。很多程序员在接到任务之后,就会马上想着如何用代码来实现,这是一种很不好的做法。其实,在我们写代码之前,还有很多工作要做,做好了这些准备,我们的代码才能更加完美。 1.编写设计文档 对,就是写下你的实现思路,而且 阅读全文
posted @ 2016-04-28 20:13 孔夫子耍大刀 阅读(581) 评论(0) 推荐(0) 编辑
摘要: 1.回调函数就是一个通过函数指针调用的函数。如果你把函数的指针(地址)作为参数传递给另一个函数,当这个指针被用来调用其所指向的函数时,我们就说这是回调函数。回调函数不是由该函数的实现方法直接调用,而是在特定的事件或条件发生时由另外的一方调用的,用于对该事件或条件进行响应。因为可以把调用者与被调用者分 阅读全文
posted @ 2016-04-28 20:05 孔夫子耍大刀 阅读(391) 评论(0) 推荐(1) 编辑
摘要: erlang应用都会启动一个sasl应用,sasl的一个重要功能便是可以记录系统进程相关日志,如进程启动、结束、崩溃错误等信息。sasl的日志功能是基于erlang自带的日志模块error_logger来实现的,sasl中定义了下面3个错误处理: sasl_report_tty_h:将日志输出到控制 阅读全文
posted @ 2016-04-28 19:51 孔夫子耍大刀 阅读(1909) 评论(0) 推荐(0) 编辑
摘要: Erlang/OTP的application参数配置 Erlang/OTP中将完成特定功能的一组模块组织起来,称之为application。 erlang/OTP的application模块是一种最基本的behavior,是Erlang代码和功能组织的形式。 application运行时可能需要提供 阅读全文
posted @ 2016-04-28 19:42 孔夫子耍大刀 阅读(1807) 评论(0) 推荐(0) 编辑
摘要: erlang的分布式是以Erlang的两个基本特性为基础: 1.复制式进程通信 Erlang的进程间通信采用的是严格的异步消息传递(发送消息后无须等待网络上的确认),接受方收到数据时实际上获取了数据的一份独立的副本;此后接收方将无法感知发送方对数据所做的任何操作,反之亦然。后续的任何通信都必须借助额 阅读全文
posted @ 2016-04-28 16:42 孔夫子耍大刀 阅读(2446) 评论(0) 推荐(0) 编辑
摘要: 主动应用的目的就在于启动一个或多个进程以完成特定的任务,为了加强控制,这些进程应该由监督者——也就是实现了supervisor行为模式的进程——统一派生和管理。 监督者是Erlang/OTP的核心之一,主动OTP应用由一个或多个进程组成,它们相互协作共同完成任务,监督者间接启动这些进程,对这些进程负 阅读全文
posted @ 2016-04-28 16:16 孔夫子耍大刀 阅读(649) 评论(0) 推荐(0) 编辑
摘要: 浅显的说,OTP应用无非就是一组相互关联的代码。我们将其中一部分称为库应用:这些应用纯粹是供其他应用调用的一系列模块的集合,Erlang/OTP的stdlib就是库应用的一个实例,还有一些应用则更为常见,它们具有自己的生存周期,启动之后会运行上一段时 间,最后终止,我们将这类应用称为主动应用,每个主 阅读全文
posted @ 2016-04-28 14:51 孔夫子耍大刀 阅读(693) 评论(0) 推荐(0) 编辑
摘要: 行为模式 gen_server代表的就是“行为模式”的一种,行为模式的目的在于为特定类型的进程提供一套模板。 启动服务器 用来启动服务器的有start/3,start/4,start_link/3,start_link/4这四个函数。 使用这些start函数之后,就会产生一个新的进程,也就是一个ge 阅读全文
posted @ 2016-04-28 10:56 孔夫子耍大刀 阅读(6081) 评论(0) 推荐(2) 编辑
摘要: 在Erlang中进行递归主要考虑三点:1.怎么结束,2.怎么递归,3.怎么开始。只要搞清楚了这三点Erlang递归就不难,这种递归思想在Erlang中的运用非常广泛。 我们通过几道题来看看Erlang的递归 1、找出列表中最后一个元素 lastFun([A|T]) -> lastFun(A,T). 阅读全文
posted @ 2016-04-28 10:10 孔夫子耍大刀 阅读(495) 评论(0) 推荐(0) 编辑