Effective Go
在线阅读:
Go语言圣经
Go语言圣经,《The Go Programming Language》 中文版本
一指流沙,程序年华
在线阅读:
Go语言圣经,《The Go Programming Language》 中文版本
在我司PPT被称为胶片。一层层的汇报都是胶片承载,胶片也是做得非常漂亮。像我所在领域,架构师主要产出也是胶片,俨然无胶片就无架构。一方面个人非常羡慕胶片写得好(内容与外观)的人,另一方面觉得像使用MS的PowerPoint几乎要把一半的精力放在外观而不是内容上。甚至感觉到为了一个格式、一个颜色,调整都需要老半天时间。大家的胶片都做得漂亮,而你不可能也就只草草准备,尤其是给领导的胶片,人在江湖,身不由已。但做一名技术人员,内心还是比较抵触形式大于内容的胶片。昨天,一名同事给我展示了一个由Markdown生成Slide,给人感觉是耳目一新。
Markdown是一种内容与形式的分享的轻量级标记语言,受到越来越多的人喜欢,只要只简单的文本编辑器,都能书写文本内容。那有什么工具能快速方便地生成Slide呢。Markdown本身是为了方便输出到HTML格式。而HTML+CSS+JS是一个开放的,可扩展的技术。自然Markdown也可以通过工具生成像PPT一样可以上下翻页的HTML Slide,同样借助CSS与JS的结合,Slide一样可以做得像PPT一样格式漂亮,动作酷炫。
Go在语言层面通过Goroutine与channel来支持并发编程,使并发编程看似变得异常简单,但通过最近一段时间的编码,越来越觉得简单的东西,很容易会被滥用。Java的标准库也让多线程编程变得简单,但想当初在公司定位Java的问题,发现很多的同学由于没有深入了解Java Thread的机制,Thread直接New从不管理复用,那Goroutine肯定也要面临这类的问题。
Rob Pike在2012年的Google I/O大会上所做的“Go Concurrency Patterns”的演讲上,说道过几种基础的并发模式。从一组目标中获取第一个结果就是其中之一。
第一次参加由电子协会举办的云计算大会,这届是在北京国家会议中心举行,据说这一届参加的人数有1.4W人。主题为“技术融合 应用创新”。云计算走到今天,已不在是什么新概念,在中国已大规格地使用起来。作为一名技术从业者,有幸参加,虽可能得不到干货,但可听一听,看一看,启发思路。
第一场是来自工业和信息化部副部长怀(进鹏)部长致辞,领导果然是领导,带病撑着拐杖登台。整个过程是滔滔不绝地精彩分享,作一名学术官员,能脱稿是我发挥,说明他这个领域的真正专家。核心观点:
采用Golang来开发Web应用或Rest接口的应用还是比较容易的。golang标准库就提供对Http协议的封装,主要涉及到net/http
包,它包括了HTTP相关的各种函数、类型、变量等标识符。标准库的net/http
是支持HTTP1.1协议,而目前Go1.6也支持HTTP2.0,包放在 golang.org/x/net/http2
,后续可能会移到标准库。
net/http
库中主要涉及到如下几个类型与接口:
封装了HTTP的请求消息,其结构如下,可以很方便的地取出Method,Header与Body。
今天有幸参加Oracle举办的cloud day。Oracle从开始对云计算不敏感,到后来的大力投入,并购与产品整合,目前Oracle在云计算领域已涵盖IaaS,PaaS,SaaS。Oracle正借助于云计算,把帮助企业把传统的应用产品搬迁到云计算上。Oracle应用产品发发展战略三个核心阶段:
从上也可以看出Oracle在云计算野心,它虽相对起步晚,但它由于在传统IT领域的优势,通过整合基础设施,平台与中间件,以及社交资源,是在云计算领域内少数几个能针对企业各种业务提供一套完整的解决方案,涵盖如下领域:
想在Mac本上使用Docker来运行Archlinux,家里安装的是长城宽带,无奈从docker hub下载Archlinux基础Image网速无法忍受。在国内的alauda.cn镜像中心搜索到有Archlinux基础Image,可能由于在Docker使用Archlinux国内人比较少,估计alauda.cn的CDN也没有缓存Archlinux基础Image,下载同样也是龟速,下载多次超时就放弃了。
正好个人还有一台老的笔记本安装了Archlinux,那何不自己做一个基础Image。说真的,还没有从零开始做过基础Image。在Docker hub搜索时发现有一个已有的脚本mkimage-arch.sh,于是把它做了些改造,制作过程记录一下:
软件系统架构不只是软件本身架构,它是一个全系统、全网络的架构,从层次上由低到高分为:
任何一个架构师,都是需要重点解决某方面的尖锐问题,同时避免在不合适的场景下,一种技术、一类框架或一种架构模式被滥用。架构就需要对整体框定好范围与约束。
架构设计不可能面面俱到,要解决或是发挥关键路径上的资源合理有效的最大价值。一个好的架构,不会随着时间或业务的变换,而需要进行大的破坏性的变化。