一周 Go World 新鲜事[Asta 优选]

mob604756f0bbf4 · · 865 次点击 · · 开始浏览    
这是一个创建于 的文章,其中的信息可能已经有所发展或是发生改变。

01

Google正式发布 TensorFlow Lite预览版

日前,谷歌正式发布 TensorFlow Lite 开发者预览版,这是针对移动和嵌入式设备的轻量级解决方案。

TensorFlow 可以在许多平台上运行,从机架上大量的服务器到小型的物联网设备,但近几年,随着大家使用的机器学习模型呈指数级增长,因此需要将训练模型的平台扩展到移动和嵌入式设备上。TensorFlow Lite 支持设备上机器学习模型的低时延推理。

TensorFlow Lite 是一种全新的设计,它支持以下功能:

  • 轻量级(Lightweight):支持机器学习模型的推理在较小二进制数下进行,能快速初始化/启动。

  • 跨平台(Cross-platform):可以在许多不同的平台上运行,现在支持 Android 和 iOS

  • 快速(Fast):针对移动设备进行了优化,包括大大减少了模型加载时间、支持硬件加速。

在公众号中回复(非评论)关键词“ lite ”即可阅读全文

02

Golang 标准包布局[译]

在Go社区中, 包管理和泛型看上去被当做一个很大的问题, 但有另一个很少被提及的问题——项目结构。每一个Go程序都看似对这个问题有自己的答案, 那我应该如何组织我的Go代码? 有些人把所有代码放到一个包中, 有些人用类型或者模块归组代码。如果你们的团队没有使用一个好的策略, 你会发现代码混乱分散在不同的包中。 所以我们需要一个更加标准的Go程序设计。

作者提倡一种更好的方法. 通过以下的几种简单的规则, 我们解耦我们的代码, 并便于测试, 同时给我们的项目带来一种始终如一的结构。

常见但有瑕疵的方式:

  1. 整块的包布局

  2. Rails 风格

  3. 根据模块归组

作者提出了一种更好的方式,包含四个信条:

1.Root package is for domain types (根包作为领域类型)

2.Group subpackages by dependency (根据依赖将子包归组)

3.Use a shared mock subpackage (使用共享的模拟子包)

4.Main package ties together dependencies (main包将所有依赖关联起来)

这些规则有助于我们的包解耦, 它定义了一个清晰的领域语言。

在公众号中回复(非评论)关键词“ 包布局 ”即可阅读全文

03

高效的多维空间点索引算法

在对空间距离进行计算的时候,常见的做法是对地图进行分块。现在用的比较多的数据库 MySQL、PostgreSQL 都原生支持 B+ 树。这种数据结构能高效的查询。地图分块的过程其实就是一种添加索引的过程,如果能想到一个办法,把地图上的点添加一个合适的索引,并且能够排序,那么就可以利用类似二分查找的方法进行快速查询。

问题就来了,地图上的点是二维的,有经度和纬度,这如何索引呢?如果只针对其中的一个维度,经度或者纬度进行搜索,那搜出来一遍以后还要进行二次搜索。那要是更高维度呢?三维。可能有人会说可以设置维度的优先级,比如拼接一个联合键,那在三维空间中,x,y,z 谁的优先级高呢?设置优先级好像并不是很合理。

本篇文章就来介绍2种比较通用的空间点索引算法。

在公众号中回复(非评论)关键词“ 空间点 ”即可阅读全文

04

golang interface深度解析

如果说 gorountine 和 channel 是支撑起 Go 语言的并发模型的基石,那么接口是Go语言整个类型系列的基石,让 Go 语言在基础编程哲学的探索上达到前所未有的高度。Go 语言在编程哲学上是变革派,而不是改良派。这不是因为 Go 语言有 gorountine 和 channel ,而更重要的是因为 Go 语言的类型系统,更是因为 Go 语言的接口。Go 语言的编程哲学因为有接口而趋于完美。C++、Java 使用"侵入式"接口,主要表现在实现类需要明确声明自己实现了某个接口。这种强制性的接口继承方式是面向对象编程思想发展过程中一个遭受相当多质疑的特性。Go 语言采用的是“非侵入式接口", Go 语言的接口有其独到之处:只要类型T的公开方法完全满足接口I的要求,就可以把类型T的对象用在需要接口I的地方,所谓类型T的公开方法完全满足接口I的要求,也即是类型T实现了接口I所规定的一组成员。这种做法的学名叫做 Structural Typing,有人也把它看作是一种静态的 Duck Typing。

在公众号中回复(非评论)关键词“ 接口 ”即可阅读全文

05

理解 Docker 的多阶段镜像构建

Docker 技术从2013年诞生到目前已经4年有余了。对于已经接纳和使用 Docker 在日常开发工作中的开发者而言,构建 Docker 镜像已经是家常便饭。但这是否意味着 Docker 的 image 构建机制已经相对完美了呢?不是的,Docker 官方依旧在持续优化镜像构建机制。这不,从今年发布的 Docker 17.05 版本起,Docker 开始支持容器镜像的多阶段构建 (multi-stage build) 了。

在公众号中回复(非评论)关键词“multi stage”即可阅读全文

06

Golang的HTTP操作大全

Golang提供了官方的http包,对于http操作非常的方便和简洁。
但是不同于PHP,使用Golang的包来做http操作,还是没有那么”直接“,需要实例化一下这个,实例化一下那个,有点像Java,因此,为了以后书写方便,就把基本的请求写在此。下次用的时候,直接copy就好了。

在公众号中回复(非评论)关键词“ http ”即可阅读全文

本周开源

Golang 机器学习库

在公众号中回复(非评论)关键词“ 机器学习库 ”即可阅读全文

非常实用的HTTP请求库

在公众号中回复(非评论)关键词“ 请求库 ”即可阅读全文


有疑问加站长微信联系(非本文作者)

本文来自:51CTO博客

感谢作者:mob604756f0bbf4

查看原文:一周 Go World 新鲜事[Asta 优选]

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889

865 次点击  
加入收藏 微博
暂无回复
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传