Go语言基础
Golang Fundaments## Go语言基础 Golang Fundaments 中山大学 数据科学与计算学院 潘茂林 panml@mail.sysu.edu.cn ## 大纲 • Golang-设计哲学 • 基础知识学习 • Go语言的入门资源 • 本地项目工作空间组织 • 开始编程 ## Golang-设计哲学 ## 我们需要什么样的语言 曾经 我们对包含大量代码的程序印象深刻。 - 我们努力在代码库中创建大型抽象。 这是一个有效的程序吗? - 是正确的吗? - 按时完成了吗? - 花了成本(时间、空间复杂度)? 渴望成为质量、效率和简单的冠军。 • 有自己的观点。 • 重视反省和自我检讨。 ## Go语言应该是这样的 · 易于阅读代码 - 对遗存软件友好 • 心智模型 • 生产率与性能 • 正确性与性能 • 规则 • 方便代码评审 - 完整性 - 可读性 - 简单性 - 性能 • 实用主义的语言风格 - 面向编译器的静态类型语言 • 数据类型必须在编译阶段确定 • 语言能充分发挥编译优化技术 - 复古且简便的语言 • 集合了多种语言实用的语法表示 • 函数是一等公民(First-Class Functions) • 抛弃了面向对象 - 开放(几乎所有资源都在github上) ## • 语法基本特点 - C 语言的身体(语法基本类似 C 语言) – Python0 码力 | 21 页 | 851.30 KB | 2 年前3
2.2.3 Go语言的抢占式调度## Go 语言的抢占式调度  曹春晖 资深 Gopher  Go 程序的启动 新版本的抢占实现 05 当前的 Go 语言还有哪些问题 06 ## 第一部分 ## Go 程序的启动 ## 编译过程 ### Go 程序 hello.go 的编译过程: ●●● package main func main() { println("hello world") } ●●● go build hello.go ●●● Introduction 1.1 前端开发者是什么?1.2 2016前端开发回顾1.3 展望20171.4 第一部分.前端实践1.5 前端职称1.5.1 前端开发者所使用的技术1.5.2 前端开发技能1.5.3 前端开发者为...而开发1.5.4 团队里的前端1.5.5 全能型人才/全栈神话1.5.6 前端面试1.5.7 前端开发职位公示1.5.8 前端开发薪资1.5.9 9 前端开发者是如何诞生的1.5.10 第二部分:学习前端开发1.6 自学1.6.1 关于互联网/WEB1.6.1.1 学习Web浏览器1.6.1.2 学习域名系统(又叫DNS)1.6.1.3 学习HTTP/Networks(包括CORS和WebSockets)1.6.1.4 学习网页寄存(通称虚拟主机)1.6.1.5 学习前端开发1.6.1.6 学习用户界面/交互设计1 (JavaScript 对象表示法) 1.6.1.16 学习 JS 模板 1.6.1.17 学习静态网页生成器 1.6.1.18 通过JS学习计算机科学 1.6.1.19 学习前端应用架构 1.6.1.20 学习数据(例如,JSON)API 的设计 1.6.1.21 学习 React & Redux 1.6.1.22 学习渐进式 Web 应用 10 码力 | 164 页 | 6.43 MB | 2 年前3
Go语言 - 一些简单的读书分享By Xargin ## 我出版的书 Go语言 高级编程 Advanced Go Programming 柴树杉 曹春晖/著  · 我是作者之一 - 这本书在写的时候国内的 Go 语言书很少 • 现在销量约 2w+ - 直到现在,CGO code can make them go fast in the short term we can clean it up later get to the market first ## 这个是我在读架构整洁之道的时候做的笔记 tdd is slow avoid overconfidence take arch seriously 在 C 语言里,通过 h 和 c 文件分离,就可以达成完美的封装,在 文件分离,就可以达成完美的封装,在 c 中的变量外部是没有办法看到或者访问的 Encapsulation 之后的面向对象语言在封装上实际上有弱化,像 C++ 和 java,即使不想暴露在外部的变量,也必须在 .h 或 class 声明中写明 private c**是因为技术原因 需要知道每个class Java 干脆连声明和法分离了,是一种退 public and priv 种 hack c0 码力 | 16 页 | 9.09 MB | 2 年前3
用Go语言实现推送服务器## 用Go语言实现推送服务器 陈叶皓 chen.yh@ctrip.com ## 议程 • 推送服务器介绍 • Golang特点 • 推送服务架构 • 部分代码 • 上线效果 ## 议程 • 推送服务器介绍 • 推送服务架构 • 部分代码 • 上线效果 ## 什么是推送服务器 • 推送业务信息到手机端 • 始终保持连接 ## 推送服务器要求 · 高并发 • 可靠性 • 高性能 • 支持水平扩展 • 无单点故障 ## Go语言特性 • 静态的、编译的 • 自动内存回收 • 命令式编程 • 函数可以作为值 • 面向并发 • 内置RPC支持 ## 推送服务器要求的应对 - 高并发 - goroutine - 可靠性 - 使用Redis暂存消息 - 高性能 - 静态编译语言 - 支持水平扩展 - 使用RPC组成集群 使用RPC组成集群 - 无单点故障 - 使用Redis实现数据共享 ## Go语言的并发模型 • 事件驱动,共享线程池 runtime.GOMAXPROCS(runtime.NumCPU()) - 使用 “go” 命令创建goroutine go sockstore.Start() - goroutine使用channel交换消息 - 异步场景,直接往指定channel发送数据 - 同步0 码力 | 25 页 | 260.04 KB | 2 年前3
Go语言最差实践 - 李俱顺## GCN ## Go Worst Practices 李俱顺(Kevin Lee) EKEYNOW Pte Ltd. ## $ whoami ## About Me • Gopher & Pythonista • CTO @ EKEYNOW Pte Ltd. • Community Contributor @ GoCN ## About ekeynow • A IoT IoT SaaS startup company. All system powered by Go. ## @keynow ## “ ## DAVE SNOWDEN Best practice is useless, we only learn from worst practice. Trying to copy the best others have done amounts to ignoring TIMEOUT Go Concurrency Patterns: Context ## #3 OVERREACHING FOR CONCURRENCY ## OVERREACHING FOR CONCURRENCY ## ☐ ☐ ☐ func finishReq(timeout time.Duration) r ob { ch := make(chan ob) go func() {0 码力 | 38 页 | 3.27 MB | 2 年前3
1.1.2 基于Go语言的滴滴DevOps重塑之路GO CN 基于Go语言的滴滴DevOps重塑之路 魏静武 滴滴出行高级技术专家 主要负责研发效率与稳定性 DevOps - 新的挑战 01 开发 - 云原生脚手架 02 测试 - 流量回放与测试环境 03 运维 - AIOps 04 未来 - 自动发布 05 第一部分 DevOps 新的挑战 ’ alt=‘OCR图片’/> DevOps - 新的挑战 ’ alt=‘OCR图片’/> 开发-云原生脚手架 ’ alt=‘OCR图片’/> 开发一云原生脚手架 开发 重复工作繁重微服务虽小“五脏俱全” 弱类型语言语义不明微服务架构更依赖明确的类型约束 3. 性能瓶颈 滴滴流量存在明显的早晚和节假日波峰 ’ alt=‘OCR图片’/> 开发 统一Go技术栈 统一框架 统一数据 ’ alt=‘OCR图片’/> 开发一云原生脚手架 /** * req req) 回放 /ason 162-267 success 回放 /order 162 success 回放 ’ alt=‘OCR图片’/> 测试 - 测试环境 基于链路追踪的流量染色 基于Go构建sidecar进行染色流量分发 ’ alt=‘OCR图片’/> 测试 - 测试环境 环境名称 部署状态 创建人|创建时间 可用时长 集群域名 环境标签 操作 gs_osim3430 码力 | 23 页 | 1.86 MB | 1 月前3
基于AngularJS的企业应⽤前端架构d31a86c/p1_1.jpg) # 基于AngularJS的企业应用前端架构 徐飞 新浪微博:@民工精髓V ## 企业应用前端的特点 • 独占模式 • 重业务,轻视觉 - 界面规整,模式单一 • 键盘操作 • 逻辑复杂 • 加载速度的侧重不同 - 浏览器版本相对宽松 ## 传统的B/S企业应用前端 • B/S企业软件常用的展现层技术 - HTC 在浏览器端扩展标签 - - JSF等 在服务端生成界面 - GWT 编译阶段生成界面 – ExtJS 用JS封装界面组件 – Flex等 脱离HTML体系,另辟蹊径 • 业务逻辑 - 放后端比放前端的多。。。 ## 流行过什么样的技术 ## 獭吃馍香 →_→三大权在感慨过去,别忘了还有能跨帧显示的 项popup呢,b/s第四宝@民工精髓V:HTC,VML,XMLHTTP,那个时代企业B/S应用的三件宝,也有人 单页应用架构  ## 前端的分层 • 为什么单页应用一定要分层? - 前端逻辑有一定规模,分层有利协作 - 便于保证数据的一致性 - 业务逻辑的复用 - 每个层次的单独可测试 • Struts这种服务端MVC的弱点在哪里? - 拉长了视图层的生成和渲染0 码力 | 13 页 | 517.57 KB | 2 年前3
IMWebConf 2017 前端开发者大会# IMWebConf2017 前端开发者大会 尊敬的先生/女士,您好! IMWebConf2017 前端开发者大会将于2017年09月在深圳召开。 ## 会议内容 作为业内有一定影响力的专业前端技术交流大会,IMWebConf已经成功举办五届,累计探讨的议题超过上百个,线上线下参会者达数千人,累计影响前端爱好者超过数万人。 这是一次难得的和国内外以及腾讯前端大神面对面交流的机会。 ## W3C、微软、Google、腾讯、阿里等)的前端达人为我们带来最新前端技术的分享。 ## 关于我们: IMWebConf 是由腾讯 IMWeb 团队发起的专注于 Web 前端领域的非营利性开发者大会。 IMWeb团队专注前端领域多年,曾负责腾讯最核心的基础海量业务QQ统一登录、QQ注册、QQ群等,目前主要聚焦腾讯在线教育战略产品腾讯课堂及企鹅辅导的研发,并精心打造前端工程师Next学位,开启在线教育变革之路。 革之路。 我们的工程师们也多次在Qcon、Velocity等业界大会进行分享。我们有着丰富的前端经验,也热衷于技术的开源与分享。每年,我们都会举办自己的前端大会——IMWebConf。 ## 会议日程 大会流程: 7 8:00 - 9:30 签到 9:30 - 9:40 9:40 - 10:20 The image is too blurry to recognize any text0 码力 | 8 页 | 698.99 KB | 2 年前3
共 1000 条
- 1
- 2
- 3
- 4
- 5
- 6
- 100













