低俗或者高雅

瞅了瞅目前较为流行的技术博客文章,基本开头都没有"正儿八经"的技术语言,扯淡艺术较为浓厚。这种形式好像有逐渐成为主流的趋势,细想也很正常,大牛在演讲之前不都喜欢说些段子来调动全场气氛么?老一辈人都说完事开头难,所以用段子来调节一下气氛也算是为了讨个好彩头。但开了头之后,怎么把后面的路走完也挺难的。比如这本你正在看的这本书(暂且称之为书吧,其实我认为是脱口秀更合适)。刚写第一式和第二式的时候,感觉很轻松,每天的UV轻轻松松就能飙到6百多(gitbook统计,不包括其它平台的UV量)。但随着新鲜感的褪去,现在UV已经保持在每天100左右。这剩下的100多UV应该算是铁粉了吧。谢谢你能一直看我这么嘚啵嘚啵的瞎扯淡,等哪天哥们儿出名了,记着找我领取铁粉勋章。全球限量100枚,每十年出一枚,升值空间无限大!

本节为啥取名叫<低俗或者高雅>?灵感来自于一句俏皮话:屁乃人生之气,全身窜来窜去,闻的人垂头丧气,放的人洋洋得意。想放就放,可恶至极!想放不放,难受至极,思来想去,终归是屁,何须在意。

这种话应该是没法放到台面上的,但不放台面上面,这是就不存在么?然也然也。由此说明,不正视不等于不存在。无论是市井小人还是鸿儒大师,谁又能不放屁?出自市井小人,必然是低俗之物,那出自鸿儒大师呢?难不成就高人一等?我看未必吧。屁就是屁,没有低俗高雅之分,只有思想才有龌龊和纯洁之别。这世界上大概只有龌龊的思想而没有低俗的东西!所以低俗或者高雅,只在于当事人是如何认识的。也正如你所在看的这本书,到底是啰嗦还是有用,不取决于我,而决定于你。这才是<低俗或者高雅>的含义。

论技术,我真心不行。前两天闲聊之时,有人问了句Golang到底有什么优势?诶,顿时语塞,沉下心来,Golang的优势好像是以下几点:1.从大的方面来说,Golang编译和执行速度都快。2.基于内置的并发模型(goroutine模型和select,chan数据结构),可以很轻量级的支持大并发。3.语法简洁,语言模型安全(强制类型检查,大部分操作协程安全,还有defer机制清理垃圾等等)。4.灵活的接口设计和5.可以直接构建成免依赖的执行文件。

这是我能想出来的golang的优势,如果说劣势,那也有很多槽点。比如:

golang不支持继承。这点不能说是设计错误,没有哪个国际规范要求必须运行继承了,只能说Golang通过接口可以达到继承的效果。是好是坏,有待码农们评说,如果不能改造golang,那就改造自己去适应,除此之外别无他法。

其次golang不支持操作符重载。和继承一样,感觉这是劣势的人,一定有很重的Java情结,不能重载就不重载吧。条条大路通罗马,不能一棵树上去吊死。相比golang的优势,通过增加一点代码量是可以解决这个问题的。

想到操作符重载,那你一定会说方法重载。还是那句话,相比golang的优势,通过增加一点代码量是可以解决这个问题的。其实不止方法重载,golang还不支持指针运算,也不支持泛型编程。golang不是万能神药,不能包治百病,要不然其他语言还怎么各领风骚数百年。

Golang在设计的时候,肯定是参考了目前市面上各种较为流行的语言,统筹考虑之后才变成今天这个样子的。取各家之所长,创自家之风骚。像Golang是大小写敏感的语言,既支持静态类型变量声明(var i int)又支持动态类型变量声明(i := 1),还支持同时声明多个不同类型的变量(var a, b, c = 3,4,"foo")还有其它语法特点,天知道golang在设计的时候,汲取了多少营养。我们不是编译器大师也不是架构大师,与其吐槽golang的种种不好,不如细细分析golang能否提高自己的职业竞争力。

像我的一个同事,年前跳槽去面试(吐个槽,本来年底不是跳槽高峰,谁知道公司所处行业不景气濒临倒闭,所以才有如此多的闲暇时光写这些文章。如果你们公司(坐标北京, 国贸,三里屯比较好,青年路上最佳)需要golang工程师,联系我。没准我能给你们推荐几个)。被问了一个问题:在golang当中是如何使用指针的?我的这个哥们是从Java转golang的,指针的知识早就还给老师了。听到他的面试题,我就写了<分水岭>来说了说指针。

在面试的时候,还真有不少会聊到goto,continue,break这些基础的面试题。怎么说呢?是出题人再考验基础编码能力?还是出题人随便网上搜了一套<golang课后作业题>?感觉还不如出几个实际场景问题来的准呢。

说到奇葩,你见过要求写语法的面试题么?我没见过,但听人说过。要求写出golang当中声明函数的语法,也就是:

  1. func function_name( [parameter list] ) [return_types] {
  2. body of the function
  3. }

我的天呀,这家公司应该是新东方招老师吧(为什么说新东方总比说达内要顺口呢?取名也是一个技术活)。

旁边同事出去面试多了,听到的面试经历各有不同,总起来问基础的多,问综合的少。问语法层面的多,问设计层面的少。可能跟我们都是小码农有关吧,谁会上来问架构呢?再者说,什么是架构?各家情况都不一样,遇到的问题也都千奇百怪,没有一种万能的解决方案通杀所有问题。如果指望面试的时候能听出有价值的架构方面的意见,可能性几乎为零。

写本节的时候是周五,天气不错,只是干冷。空气干燥,喉咙痛。一会忍不住就要咳嗽,脑袋里面的东西,也就不停的被震来震去。就随便写点东西,不成体系,还望见谅。其实之前的东西也不成体系……..