终于有空看看go的tutorial. 粗鲁看下,开始并没觉得有什么新意. 很中规中矩的语法. 当然,少不了带有python的一点风格. 或者也不能完全说是python的风格,而是类动态语言的风格: 运行时类型绑定. 在基本数据类型方面,算是正式把c/c++里的一些潜规则内置为语言基本属性了. 比如uint,int32等. 既然需要明确数据类型大小,那就直接上升为语言特性好了. 注意到它们之间是不能直接转换的. 这个也许是出于安全考虑? 尤其是32和64以及有符号和无符号之间,隐式转换应该确定为一个怎样的效果呢? 不能确定,于是就限制为只能显式手工转换了. 在众多常见的数据类型里,还有一个是string. 这个应该算是必不可少的一个类型吧. 跟其他语言稍微有点不同的是,string是不可写的. 也就是说,对于实际上string底层所指向的内存区域是不可写的. 至少在语法上是如此. 按照文档上的说法,其实就是const的语义. 值得注意一下的是map这个类型. 在所知的大多数语言里都提供有map功能,但是作为一个内置数据类型,go应该算是比较特殊的一个. 但是想想.go的创造者和推动者是google,想想google搜索下面的mapreduce就明白了. 很好奇go底层会如何实现这个map,让他便捷快速轻量而又泛型. 不过泛型map应该归功于语言本身的动态属性吧. 很好奇一个据说有gc功能的编译型语言,在没有虚拟机的基础上,是如何做到gc的? 是在每个runtime上构建一个轻量gc么? 同时存在的还有称为channel的东西. 一个类似线程安全的队列或者pool. 有着erlang的风格. 尤其是配合go特色的函数定义--多返回值. 某种程度上,一眼看上去跟erlang是何其相似. 不同的是erlang是functional programming language,没有所谓的变量.一切都是可推导计算的. 有一点比较有意思的是go对于interface的定义. 通常的oo编程,都会有比较严格的类层次关系. 也就是说子类和父类之间会有比较明显的is关系. 从语言角度上,通常这种is约束或多或少地会在语法上有所约束. 比如java里的extends,implements. 如果设计之初没有考虑到这种类层次关系,而后期需要让其重构符合的话,势必会对源代码产生影响. 即使当初比较有远见地采用了统一接口. 但是,不能保证接口的继承关系能覆盖特定特征的集合. 而go的作法很巧妙,也很天才. 既然这种is的关系是抽象出来的,那么,并不需要过多地把它变成语言上面的一种强约束. 因为毕竟,这种抽象依据角度和站立的层面不同. 于是,go选择了很松散的is关系定义: type Sample interface { sampleFunction( parameter Type1 , ... )(return_item Return_Type1 ...); } 只需要对以及由的类进行统一抽象,那么即便是在后期,也可以做出不同的is关系. 更多的时候,这是一种组合式的is构建方式. 对于一些敏捷开发方式来说,这个对于迭代式建模开发其实是一件利器. 虽然,某种程度上说,需要这种方式的设计,本身也并不能算是一种非常良好的架构. 但是,却能产生一个良好的架构. 毕竟,从开始,需要限制的条件就不多了,于是后期系统少了更多的限制,也就多了更多的自由. 这就是所谓架构的伸缩性. 过多的假设是制约的是未来发展的弹性空间. 且不说这个interface的风格,至少个人是比较喜欢的. 至少觉得描述能力比较强. 尤其是做一些REST风格的,或者需要自我描述性比较强的场合. 一个或许能动态解析,甚至动态层次化的结构的特性,多少算带给人新的思路. 如同当初erlang带来的绕道的思路一样. 不过,话说回来. go也许很适合google,但是google能不能把它发展起来,还持观望态度. 虽然据一些测试,go对于高并发时候的性能还是很稳定的. 但不出色. 而且如interface的概念能让人眼前一亮,但似乎并不能找到很好的工程化的模式. 也许,这需要时间吧. 毕竟,在go之前,google也尝试了一个类java的noop. 后来似乎没什么动静了. 也许是感觉跟jdk7的某些特性冲突了吧.
2009-12-05
go杂记
订阅:
博文评论 (Atom)
人类本质是LLM
最近看到一些比较有意思的新词. 比如苹果小区. 还有一些就是比较热点的话题. 比如预制菜. 然后发散了下,想到了解构主义这个词. 本质上来说,之前的所谓互联网黑话体系,其实也是某种解构主义. 甚至往大了说,短视频以及互联网本身都是依靠某种形式的解构主义支撑的. 用某种冲击性,或者...
-
下午查了下关于仿制药的一点东西. 首先是关于一致性定义的相关文件. 简单的Google一般会指向NMPA/国家药监局的一些关于 化学药品注射剂仿制药质量和疗效一致性评价技术要求 的相关政策公告或者是更早期一些的关于这个文件起草意见稿. 一般理解的西药就是指化学药品. 这个文件本...
-
去看了好东西. 坦白说,多少是带着点挑刺的味道去的. 毕竟打着爱情神话和女性题材的气质,多多少少是热度为先了. 看完之后倒是有些新的想法. 某种程度上来说,现在的年轻人或者说声音就像小叶. 只要说点贴心的话就能哄好. 也是那种可以不用很努力了. 留在自己的舒适区避难所小圈子抱团就...
-
看完了一部未完成的电影. 这部片片子比较有意思的是一开始那段自嘲. 秦昊关于既然拍了也播不了,只是私下小圈子里自嗨的事情又什么意义的质问. 片里导演也 讪讪地承认生活的现实. 到这里其实沿着原有的思路,把补拍和一些意外穿插进去,可能还是一个不错的文艺片. 至少于戏里戏外的导演来说...
没有评论:
发表评论