策略与机制

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

入行至今快12年,这段时间空闲下来,思考一个问题:进入油腻之年,谈到程序,应该谈些什么?

是编程语言的语法吗?这些年接触过C、C++、Golang、Java、OC,看过C#、JS、Erlang。编程语言这么多,怎么学习得过来?

是语言相关的库吗?学语言必然要学相关的语言库。这就更是无究无尽,有数不尽的技术细节、编程技巧,怎么学习得过来?

是学习编程框架吗?编程框架最核心的目的,提高开发效率。因为更靠近业务,Java、JS的框架尤其多。框架封装好,开发者只需要关注业务逻辑,不可或缺,但似乎也不是必需的。见过不少Android程序员,提起四大组件,说得眉飞色舞,但问起.9切图应该怎么设置,却答不上来。

是谈微服务、分布式系统、DevOps吗?这是大规模线上服务必须,但又有多少业务有此需求,又有多少业务是过度设计的,不但没有收益,反而带来额外的维护成本。

技术变化得如此频繁,如何才能跟得上发展呢?开源时代,能接触的优秀项目难以计数,又怎么让不至于迷失于符号、变量、函数中,疲于奔命。想到的答案是,在纷扰中抓住不变的东西。

Unix/Linux的接口设计有这么一个原则:提供机制而不是策略。简单而言,机制是指需要提供什么功能,而策略是如何实现这些功能。机制提供的是一种框架,策略则是基于框架的具体实现。

在我的理解里,机制就是纷扰中不变的东西,而策略则难以穷尽。

Redis面试者可能会遇到这么一个问题:为啥RedisCluster设计成16384个槽?这个问题设计得很巧妙,能考察是否对Redis的实现有深入的了解。但另一方面,若没有答上来,却不能一棒子打死。因为这属于细节,不是所有人都关注到。面试应该不仅是考察记忆能力、经历,还应该考察思考方式、解决问题的思路。故我比较推崇的面试方式是由浅入深的交流,即使面试者回答不上来,也应该不断添加提示,把问题变成一个开放性思考的问题。

此为系列文章的序。


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

本文来自:简书

感谢作者:castle_8530

查看原文:策略与机制

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

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