Close

软件开发原则-控制代码行

原则 编写代码单元应该少于15行,方便阅读、理解、测试、重构,超过15行应提取拆分,直至少于15行。 应用 下面我们通过例子来应用此原则。原代码如下: func initEngine() *gin.Engine { router := gin.Default() m := melody.New() m.Config.MaxMessageSize = 10024 m.Config.MessageBufferSize = 5120 Rooms = make(map[string]RoomInfo) router.GET(“/v”, func(c *gin.Context) { m.HandleRequest(c.Writer, c.Request) }) m.HandleConnect(func(session *melody.Session) { log.Info(“[ws] connect:”, session) }) m.HandleDisconnect(func(session *melody.Session) { log.Info(“[ws] disconnect”, session) }) m.HandleMessage(func(session *melody.Session, msg []byte) { reg, exists := session.Get(“reg”) log.Info(“[ws] message:”,…

Thrift与golang应用

Apache Thrift是一种流行的远程服务调用框架,它采用接口描述定义并创建服务,它的特定是支持多种语言,可以指定多种传输协议、传输层与服务类型快速创建高效服务。 Thrift 数据类型 基本类型: bool:布尔值,true 或 false,对应 Java 的 boolean byte:8 位有符号整数,对应 Java 的 byte i16:16 位有符号整数,对应 Java 的 short i32:32 位有符号整数,对应 Java 的 int i64:64 位有符号整数,对应 Java 的 long double:64 位浮点数,对应 Java 的 double string:未知编码文本或二进制字符串,对应 Java 的 String 结构体类型: struct:定义公共的对象,类似于 C 语言中的结构体定义,在 Java 中是一个 JavaBean 容器类型: list:对应 Java 的 ArrayList set:对应 Java 的…

WebRTC实践(Android、golang实现视频通信)

项目需要翻了好多关于WebRTC的资料,现在做一个简单的总结。 目标 通过研究WebRTC实现一个基于Android的Demo。 学习 之前没有接触过WebRTC,所以是时候需要恶补了一下,第一想到的是在网上找找相关的书籍,大概翻了下《WebRTC Cookbook》与《WebRTC权威指南》,简单了解了本地媒体、信令、STUN、TURN等知识,找了几个js的例子试了下。 Android编译 通过webrtc.org官网的介绍方法,使用gclient获取了webrtc源代码,用gn生戀