Tao同时也是我用Go语言开发的一个异步的TCP服务器框架(TCP Asynchronous Go server FramewOrk),秉承Go语言“Less is more”的极简主义哲学,它能穿透一切表象,带你一窥网络编程的世界,让你从此彻底摆脱只会写“socket-bind-listen-accept”的窘境。本文将简单讨论一下这个框架的设计思路以及自己的一些思考。
简介
Golang 中的创建一个新的 goroutine , 并不会返回像c语言类似的pid,所有我们不能从外部杀死某个goroutine,所有我就得让它自己结束,之前我们用 channel + select 的方式,来解决这个问题,但是有些场景实现起来比较麻烦,例如由一个请求衍生出的各个 goroutine 之间需要满足一定的约束关系,以实现一些诸如有效期,中止routine树,传递请求全局变量之类的功能。于是google 就为我们提供一个解决方案,开源了 context 包。使用 context 实现上下文功能约定需要在你的方法的传入参数的第一个传入一个 context.Context 类型的变量。
Nginx作为一个成熟、久经考验的负载均衡软件,与其提供丰富、完整的内置变量是分不开的,它极大增加了对Nginx网络行为的控制细度。这些变量大部分都是在请求进入时解析的,并把他们缓存到请求cycle中,方便下一次获取使用。首先来看看Nginx对都开放了那些API。
在执行 mvn clean test
时报错:
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.1:testCompile (default-testCompile) on project hello: Compilation failure: Compilation failure: [ERROR] /D:/mavenWork/src/test/java/com/clc/helloworld/test/TestHelloworld.java:[2,17] 程序包org.junit不存在 [ERROR] /D:/mavenWork/src/test/java/com/clc/helloworld/test/TestHelloworld.java:[4,10] 找不到符号
摘要: 2018,第一天,回顾展望,恩,属于自己的复盘大会
今天
今年的跨年,是来了深圳之后首个相对来说比较苦逼的跨年。主要原因如下:
- 姑娘出差
- 自己加班写功能
自己一个人想了想。感觉不知不觉中,没有姑娘已经很不习惯了。自己晃荡了一天。
Maven 仓库配置(settings.xml)备份
struct
Go语言中,也和C或者其他语言一样,我们可以声明新的类型,作为其它类型的属性或字段的容器。例如,我们可以创建一个自定义类型person代表一个人的实体。这个实体拥有属性:姓名和年龄。这样的类型我们称之struct。如下代码所示:
type person struct { name string age int }
codeigniter(CI)是一个轻量型的PHP优秀框架,在nginx下需要特别的配置才可以使用。
修改Codeigniter
对application/config/config.php
进行修改,大约在48行左右。
$config['uri_protocol'] = "PATH_INFO"; // 用默认的 REQUEST_URI 也可以
interface简介
Go 语言以简单易上手而著称,它的语法非常简单,熟悉 C++,Java 的开发者只需要很短的时间就可以掌握 Go 语言的基本用法。
interface 是 Go 语言里所提供的非常重要的特性。一个 interface 里可以定义一个或者多个函数,例如系统自带的 io.ReadWriter 的定义如下所示:
type ReadWriter interface { Read(b []byte) (n int, err error) Write(b []byte) (n int, err error) }
任何类型只要它提供了 Read 和 Write 的绑定函数实现,Go 就认为这个类型实现了这个 interface(duck-type),而不像 Java 需要开发者使用 implements 标明。