写点什么

OSCON 2014 大会上 Go 语言相关主题总结

  • 2014-08-27
  • 本文字数:1268 字

    阅读完需:约 4 分钟

在 O’Reilly 举办的 OSCON 2014 大会上,Go 语言相关的主题要多于以往,这也从一个侧面说明了人们对这门语言的关注程度越来越高。Go 语言官方博客对此进行了总结。这些主题包括5 个演讲,2 个研讨会及1 个非正式的讨论( Birds of a Feather )。内容涉及从 Java 切换到 Go、MongoDB 与 Go、面向对象的 Go 等内容。

我们先来看一下这些演讲。

Matt Stine 的演讲题目是《A recovering Java developer learns Go》,介绍了他从 Java 切换到 Go 的经验。他首先介绍了 Go 语言产生的背景,以及 Go 的目标:

  • 安全、高效的静态类型、编译型语言
  • 动态、解释型语言的开发效率和感觉
  • 解决现代计算环境的问题
    • 多核处理器
    • 网络系统
    • 大规模计算集群
    • Web 编程模型

然后他又从特性与惯用法、包 / 模块、类型 /OOP/ 接口以及并发 4 个方面对比了 Go 和 Java。

Steve Francia 演讲的题目是《Painless Data Storage with MongoDB and Go》,他是 MongoDB 的主要开发者,他介绍了使用 MongoDB 和 Go 语言的实践经验。他提到,之所以选择 Go 语言,原因是:

  • Go 的执行速度接近 C
  • Go 的编译时间可以与动态、解释型语言媲美
  • Go 很友好 比如很多地方感觉就像动态语言,容易全部记住的很小的语言核心等
  • Go 是并发的 并发是语言的一部分,任何函数都可以变成一个 goroutine,goroutine 可以并发运行,通过 Channel 通信

Steve 还有一场演讲——《Go for Object Oriented Programmers》,介绍了如何在 Go 中实现某些面向对象概念。主要内容包括:

  • 如何在 Go 语言中使用面向对象编程的基本元素,如类、对象等
  • Go 语言中的静态类型与伪动态类型
  • 在 Go 语言中构建优美的接口
  • 使用 Go 接口和鸭子类型简化架构
  • 有其他 OO 语言背景的开发者常犯的错误
  • Go 语言中好的设计原则

Josh Bleecher Snyder 以《Gophers with hammers》为题,谈到了他编写Go 源代码处理工具的经验。Go 语言在设计时就考虑到了工具的问题,本身也提供了很多工具,比如go、godoc、gofmt 等。有时候需要根据自己的需求定制或开发一些工具,Josh 分享的就是他在这方面的经验。

Francesc Campoy 的演讲题目是《Inside the Go playground》,谈到了 Go Playground 中所有可能出错,但是 Go 团队却未加阻止的地方。Go Playground 是 Go 语言官方推出的一个 Web 服务,支持开发者在页面提交源代码,代码会在网站后台编译并运行,之后结果会显示在网页上。其架构如图所示:

他分析了后端在接受代码、编译并运行过程中可能出现的问题,比如资源耗尽、越权访问等。

两个研讨会是 Steve Francia 的《Getting started with Go》和Chris McEniry 的《Quick introduction to system tools programming with Go》

在非正式的讨论上,来自不同公司的Go 语言专家介绍并探讨了Go 入门、Go 最佳实践、Go 与MongoDB 以及在App Engine 上使用Go 等主题。

这些演讲和研讨会给我们带来了很多干货,感兴趣的读者可以查阅相关讲稿。


感谢郭蕾对本文的审校。

给InfoQ 中文站投稿或者参与内容翻译工作,请邮件至 editors@cn.infoq.com 。也欢迎大家通过新浪微博( @InfoQ )或者腾讯微博( @InfoQ )关注我们,并与我们的编辑和其他读者朋友交流。

2014-08-27 03:493043
用户头像
臧秀涛 略懂技术的运营同学。

发布了 300 篇内容, 共 135.4 次阅读, 收获喜欢 35 次。

关注

评论

发布
暂无评论
发现更多内容

深入分析3种线程池执行任务的逻辑方法

华为云开发者联盟

Java 线程 线程池 ThreadPoolExecutor类

Go 专栏|复合数据类型:字典 map 和 结构体 struct

AlwaysBeta

Go 语言

netty系列之:搭建自己的下载文件服务器

程序那些事

Java Netty io nio 程序那些事

Electron团队为什么要干掉remote模块

刘晓伦

Electron Node

升级mysql-connector-java-8.x踩坑纪实

小江

Java MySQL 时间戳 服务器时区 夏令时

如何设计企业特色的数字化转型架构?

博文视点Broadview

浪潮云说丨上云迁移——快,准,稳!

云计算

Go 专栏|接口 interface

AlwaysBeta

Go 语言

Linux之lastlog命令

入门小站

Linux

【Flutter 专题】58 图解 Flutter 嵌入原生 AndroidView 小尝试

阿策小和尚

Flutter 小菜 0 基础学习 Flutter Android 小菜鸟 9月日更

Vue进阶(九十):过滤器

No Silver Bullet

Vue 9月日更

华为云PB级数据库GaussDB(for Redis)揭秘:如何搞定推荐系统存储难题

华为云开发者联盟

数据库 推荐系统 存储 华为云 GaussDB(for Redis)

在线JSON转JAVA工具

入门小站

工具

多线程知识体系01-线程池源码阅读讲解-Executor

小马哥

多线程 高并发 源码阅读 源码剖析 日更

就靠这一篇文章,我就弄懂了 Python Django 的 django-admin 命令行工具集

梦想橡皮擦

9月日更

祝贺 StreamNative 工程师张勇成功跻身 Apache BookKeeper Committer

Apache Pulsar

bookKeeper Apache Pulsar StreamNative

国产接口管理工具APIPOST中的常见设置项

Proud lion

大前端 后端 Postman 开发工具 接口文档

【报名】飞桨中国行丨企业零门槛AI创新应用-智能制造专场

百度大脑

人工智能

柯基数据通过Rainbond完成云原生改造,实现离线持续交付客户

北京好雨科技有限公司

云原生 需求落地 离线部署 可持续交付

架构学习模块一

George

Go 专栏|函数那些事

AlwaysBeta

Go 语言

【Vue2.x 源码学习】第四十三篇 - 组件部分 - 组件相关流程总结

Brave

源码 vue2 9月日更

【LeetCode】 二叉树中和为某一值的路径Java题解

Albert

算法 LeetCode 9月日更

API与ESB 、ServiceMesh、微服务究竟关系如何?

BoCloud博云

云管理

Go 专栏|说说方法

AlwaysBeta

Go 语言

从一个并发异常问题引起的想法

卢卡多多

并发编程 9月日更

模块(二)如何设计架构

我是一只小小鸟

Go 专栏|流程控制,一网打尽

AlwaysBeta

Go 语言

Go 专栏|错误处理:defer,panic 和 recover

AlwaysBeta

Go 语言

❤️用武侠小说的形式来阅读LinkedList的源码,绝了!

沉默王二

Java

聊聊什么样的代码是可读性强的代码?

卢卡多多

代码质量 代码 9月日更

OSCON 2014大会上Go语言相关主题总结_语言 & 开发_臧秀涛_InfoQ精选文章