wuyongxiu / wuyongxiu.github.io

随便记录一下......
http://wuyongxiu.github.io
6 stars 3 forks source link

new hand 编程随想 #11

Open wuyongxiu opened 8 years ago

wuyongxiu commented 8 years ago

周日参加 深圳Golang Meetup 时,艾义谈到了并发编程,说并发编程就和企业里的组织架构一样,你就像个指挥者,需要制定规则,管理你的程序,谁负责什么,负责相应任务的程序之间又该如何交流如何协作。
我深感说得很有道理。但是不能忘了一点,研究如何协作,如何划分职责的目的都是为了高效。就像本来由我一个人做的任务,但是鉴于一个人力量有限,为了能高效的解决这个任务,一种方法是提高个人战斗力(修炼修炼修练,用更好的算法?),另一种方法就是将这些任务划分,分给其他人,由大家共同来完成(让每一段程序负责一块功能)。
一件事分给一群人来做后,若是管理的不好(沟通失败、任务划分不好或者不明确等),事情有可能会做不成,或者会违背当初的初衷,使得效率反而不高。因此如何让这些程序能协作共同高效完成一个任务是并发编程的实质。其中涉及到的许多方面,比如如何划分各个程序的职责,如何让各个子程序之间通信等,以及技术方面的多线程,golang里面的goroutine机制等等,都是实现这种高效工作的策略以及手段。
小的方面类似并发编程,大的比如架构层面的如何实现高并发高可用的服务以及搭建各种集群等,其实做的工作应该(反正我是没做过)都是和现实世界中如何做事情(例如公司组织架构)是相通的(其它前沿科技类似AI我还没接触到,不了解),都是一种处理事情的方法策略。
所以我觉得程序员做的工作就像是司令官一样,麾下有许多小兵(new一个啊),也可以提拔培养一些高级指挥官类似的(封装一些哪),再使用谋略,制定一些机制和策略,让整个军团高效运转。当然喽,如何使用小兵,如何选拔培养军官,如何制定策略,这些都是由学问,要好好在实战中学习以及像其他有经验的大Boss学习的。
来句鸡汤的话,我始终坚信(随便说说,才不是坚信),太阳底下无新事。编程新手们可以从老鸟那里学习如何编程,高级工程师们能够从Computer Scientists那里学习,Scientists呢可以从生活中学习解决问题的方式方法。今人学习历史,可以从古人那里学习。而如果没有历史了呢?参照科学家,科学家回归自然,从自然中寻找启发,学习大自然的机制与智慧(脑海中立即浮现出飞机),或者回归人类本身(研究人类大脑,模仿学习人类大脑,研究人工智能)。所以此处要抛出另一碗鸡汤,感觉学会站在巨人的肩膀上也还有道理哪,怎么着都有得学。。。
PS: 所以说创造自然与人类本身的那只手才是智慧之源?是谁创造了这一切?(天哪噜,快去读圣经。)

不过像我这种智商平平的人,离科学家好像更遥远哪,现在是随便吃吃谁嚼的馒头都有的学(要吐了)。
不知不觉又发散想了那么多木有用的,还是好好练兵去吧