golang设计哲学

    世界是并行的----先不说宇宙,就整个地球来说,世界万物都是并行发生的;天生对并发支持良好的go语言更容易描述并行的世界;

    世界是由物质组合构成的---微观世界:由小的粒子组合成大的粒子;宏观世界:由小的物体组合成大的物体;

继承只能描述现实世界的一小部分,使用继承是不全面的;go的设计选择的是组合,这个和现实世界比较吻合的设计,表现力更强;

    世界是标准化的---随着生产力的发展,社会分工越来与详细,越来越多行业有了国际标准,任何一个国家的、任何一个公司只要按照这个标准生产器件,就能装配到一台机器上;IBM/PC就是硬件模块化和接口化一个最成功的例证;

软件也可如此,go的接口是duck模型,面向接口编程,而不需要显示的声明,将语言能做的事情交给语言做;

    正交性--几何上的正交指的是两个向量垂直关系,一个向量在另一个向量方向的投影是一个点;现实中的正交是指多个因素,一个发生变化,不会影响其他的因素;在不减少表现力的情况下,正交是保持事物稳定性和简单性的最好设计;

go很好的遵循了这个规律,go的多个特性之间都是正交的:goroutine,接口,组合,类型系统等;举一个典型的正交设计例子:比如客户嫌雨伞太小,单纯的加长伞杆是不行的,这会增加雨伞的长度;最后计出折叠式的雨伞;这种设计能保证雨伞大小和雨伞长度满足正交关系,当然这会增加雨伞生产的复杂性)把复杂性留给厂家,把便利性留给客户;对于编程语言:尽量把复杂性留给语言实现者和编译器&

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值