“中国要复兴、富强,必须在开源软件领域起到主导作用,为了国家安全和人类发展,责无旁贷,我们须为此而奋斗”——By:云客
以下是2017年7月2日深圳drupal聚会上的分享整理,录音请查看以下网址,音频资料内容略有差异,大体相同:
http://pan.baidu.com/s/1mhASSMO?qq-pf-to=pcqq.c2c#list/path=%2F
关于Drupal的为什么和怎么做
大家好:我是《云客drupal8源码分析》系列分享的作者云客,在去年(2016年)9月11日drupal深圳社区聚会时做过一篇drupal入门的分享,转眼快一年,对drupal8有更多的了解和许多的心得感受,技术方面的分享已经写入了源码分析系列主题文章中,这个系列根据系统的执行流程,按要点主题依次介绍,目前已经发布了四十多个主题的分享内容,大家可以到我的博客(http://blog.csdn.net/u011474028)或者爱码文档汇(http://nowicode.com)去查看,今天主要分享一些非技术的内容,主题是关于《drupal的为什么和怎么做》
第一个为什么:
先说说这个“为什么”,首先是为什么要选择drupal,一个优秀的系统自然会有许多使用者讲选择他的理由,这些网上有许多,我讲讲自己亲身经历后所思所想的理由:
一、 作为开发者节省精力,避免重复去造轮子,许多需求没必要从底层去开发,就像建筑工人不需要亲自制造各种砖块,用即可,所以选择一种成熟的基础系统是必要的
二、 有许多现成的模块,针对各种需求的解决方案在与日俱增,避免自己开发,节省成本
三、 Drupal是由社区驱动的,参与进来,将学会大型项目的协同合作,领略协同的学问
四、 和自研系统相比容易找到现成的开发者,大家有共同的开发基础,降低新成员的加入成本,提高项目速度,对于公司来讲尤为重要,有充足的后备人员可以降低依赖具体某开发者的风险
五、 带给开发者最新最前沿的技术,drupal面向RFC文档开发,这是人类互联网项目的顶层规划设计,相比之下国内很多cms很少提到RFC,使用上也有许多不规范之处;此外在程序注释和文档中可以看到很多新兴项目,有些在国内用中文搜索几乎找不到,少有人知,而他们可能是未来的主流,比如Kwalify 项目、composer项目、容器技术…等等它们都在大踏步走来
六、 Drupal是为中大型系统而生的,天生考虑到了服务器负载均衡问题,可以轻易实现应用服务器群集、数据库主从设计、文件服务器群集、缓存前端群集 ,当然做小型网站更是不在话下
七、 模块化设计实现超强的灵活性,系统依托钩子机制、插件机制、事件派发机制、服务定义机制将各模块连接在一起,用户不必改动发行核心就能在模块中实现几乎所有功能,也能轻易替换核心提供的几乎所有组件,遵循接口即可,实现了自己的需求又不影响系统的升级,就目前而言这种尺度的灵活性是非常罕见的,真正做到了面向接口开发、模块化
八、 Drupal走到今天已经很有名气,许多知名组织机构使用它,著名的有美国白宫、联合国、哈佛大学等等,世界五百强企业超过一半使用它,这将是你联系业务很好的名片,同时也彰显公司的实力,它足够强大,网罗各种需求
九、 这个世界正在高速融合,掌握了drupal可以让你在世界范围内找到工作,实现业务,前景更广阔
十、 最后一点也是我想说的最重要最充分的一点,这是其他系统难以做到的,让我用更多的篇幅来说明,简言之:drupal开源免费且已成气候。
drupal开源免费且已成气候:
在计算机发展历史上,有个现象:做到行业第一的项目或公司是一家独大,做到第二的能活下去,后面的艰难度日鲜有人知,而这似乎和技术无关,集成电路出现后,有许多的芯片架构,英特尔公司竞争到最后在PC上一家独大,AMD次之,操作系统出现伊始有数千种之多,现在个人电脑微软一家独大,服务器是linux的天下,这样的列子比比皆是,比如电商、即时通讯、搜索、杀毒软件等等,难道是被淘汰者技术不够先进吗?未必,微软实力强大,但在手机操作系统中,完败给安卓、英特尔在手机处理器市场占有率相去甚远,归因这是生态的力量!这种力量非常强大,甚至可以让不合理的压过合理的,比如我们现在使用的键盘,qwer字母布局其实并不合理,追溯历史仅仅是因为1860年制造打字机时为了避免制造工艺带来的问题才如此安排,后来人们根据字母使用频率制造出了更合理的DVORAK键盘,但始终成不了气候,只是因为qwer布局键盘已被广为使用,这让合理的先进的情何以堪呢?而目前drupal正处于这样一个优势地位,她是世界性的社区,开发者来自各个国家,多语种,每年都举行数千人聚集的大会,社区氛围良好,最新采用OOP的drupal8到目前为止的代码量已经非常海量,反复迭代后质量已很优异,想新建一个系统与之匹敌是非常非常困难的,况且她还在根据反馈以极高的频率迭代发展,许多知名工具直接集成drupal,比如phpstorm,许多书籍教程大量出版,许多公司或机构以她做生计,众多力量在宣传布道,她的影子随处可见,这是生态的力量,drupal正在走向行业的第一。
现在系统考虑的越来越多,越来越庞大,分工越来越细,比如html5前端就是个典型的列子,每一项都可以很深入,技术门槛越来越高,以前经常听到全栈工程师这个说法,现在谁能做到全栈呢?我们必须嵌入到一个分工体系之中,完成自己那一部分,协作才能出成绩,软件系统在变的庞大和复杂,这不是一个人能完成的,基于这点drupal正是所需的,她的每一个组件都来自优秀的人,围绕着她可以做许多许多的事情,前景广阔,试想一下当年数千种操作系统的时代,开发者没有选择Windows或Linux,将是什么处境,至少需要许多的时间去再学习,而人生时光有限,再者目前高速发展的社会能给自己这样的机会吗?
笔者注意到每当有关操作系统的新闻发布时,在评论里总会有人满怀民族情怀呼吁我国应该要开发自己的操作系统,我想中国人完全是有这样的能力的,但真的可以吗?应用软件才是人们要的墙上那个孔,操作系统只是钻孔机,众多的软件兼容怎么处理?用户习惯怎么处理?这似乎要重新走好远的路,理智的做法应该是拥抱开源,参与进来,成为开源的核心力量,少一些国别之鉴,毕竟我们先是生物,再是人,然后才是某一国的人,开源是未来,缔造者是来自多个国家的人们,开源中的项目沉淀着整个人类的汗水与智慧,而drupal是cms开源领域的佼佼者,drupal8非常注重国际化多语言,我们与其想要开发一个新的系统或者等待一个优秀的国产系统,不如活在当下扩展格局,现在就加入进来,想明白这点至少可以占得先机,“好风凭借力,送我上青云”。
第二个为什么:
为什么社区中许多小伙伴坚持分享、写作、推广?比如晴空、龙马、每日推荐的表哥等等人,包括云客自己,坚持每周都出一篇drupal8的源码分析文章,目前已出了四十多期了,还将继续,可能大家第一理解是这些人乐于贡献,比较无私,没错,但这只是一部分原因,每个贡献者都有各自的理由,云客在这里说说自己的理由,看完后也许你也会加入到这个群体中来:
一、 写出来的分享是给别人看的,更加是给自己看的,每个人的记忆都不可能记得曾经历过的每一个细节,好记性不如烂笔头,当不再记得的时候,曾经写出的分享将是自己最好的教程,由于和自己的记忆高度匹配,将快速恢复那些知识,写出来既利于人也利于己,那为什么不写呢?顺带说一句,基于这一点,云客的文章写的非常详细,目的就是为了避免将来不记得时再次读源代码浪费时间。
二、 当有节奏的做一些贡献的时候,会形成对自己的约束,做的事情相当于是对读者的一种承诺,需要去尽可能的完成,自然不会让自己偷懒,会让时间花费更充实更有意义
三、 做项目的时候经常会缺乏与项目匹配的人才,通过贡献这种方式,让别人了解自己,也让自己了解因此联系自己的人,会与许多同路人结识,当需要时能快速找到理想的协作者,共创项目,比如云客是做后端开发的,就需要前端人才的配合,无暇接手新项目时会将其介绍给能胜任且靠谱的小伙伴,在此非常期待认识各路愿意认识我的小伙伴
四、 Drupal是一个很大的系统,要掌握它需要一定的时间和精力,既然付出了就希望有所回报,回报的前提是社区更加壮大,系统更加优秀,使用者更多,市场空间大,红利共享,因此乐意帮助社区中同行的小伙伴
五、 再说一点,这也是最重要最主要的一点,如无此,可能会做一个好东西私藏、怕被超越、冷漠的旁观者,那就是价值观世界观:“人重要的是付出,所有的得到死后都将幻灭,唯有付出的将存留于世,伴随人类文明一直走下去,那代表自己曾经存在过,也代表自己继续活下去。”要说清楚这点需要稍多一点的篇幅:
一切都是从这几个问题开始的:我来自哪里?我是谁?我将去向何处?
这号称哲学三大终极问题,相信许多小伙伴都思考过,什么样的人生才是自己想要的呢?要怎么过好她呢?不妨聊聊。
首先,目前的科技已很发达,应该有听过人工心脏、电子义眼、人工耳蜗、机械手臂等等吧,这些东西已可以安装到人体,这就出现了一个问题:如果不停替换身体部件,那么这个人到什么程度不再是这个人了呢?到大脑吗?其实正常人的身体物质也是在不停的进行替换更新,关于此有个有趣的思想实验:特修斯之船,它描述的是一艘可以在海上航行很多年的船,称为特修斯号,长时间航行归功于不间断的维修和替换部件,只要一块木板腐烂了,它就会被替换掉,以此类推,直到所有的部件都不是最开始的那些了,那么最终产生的这艘船还是特修斯号吗?如果不是,那么在什么时候它不再是了?更进一步的,如果在这个过程中用船上取下来的老部件来重新建造一艘新的一模一样的船,那么两艘船中哪艘才是真正的特修斯号呢?
这已涉及到对“人”本质的认知,再从另外一个角度看:人类大脑也是现实中能找到的物质组成的,没有什么特殊的独有的物质元素,要是有一台机器可以操纵原子,甚至更小的粒子,那么它是否能按照已经存在的大脑原子空间排布顺序重建一个一模一样的大脑呢?如果能,那么说明包括大脑在内的所有身体器官都是硬件,它不能代表人,代表人的是排布顺序的信息,我想人应该是一种“软件式”的思维体,但如此一来能重建一个大脑就能重建第二个、第三个等等,那谁才是原来的那一个?能实现吗?数学这套终极法律允许这样的事情发生吗?空间可以一样,但时间总在流逝,她是变化的根本,复制操作需要时间,而这个时间内那个人已经演进了,新造的人永远追不上原来的那个人,即便使用上述重建复制也不能复制一个人,所以每个人是唯一的,那么人更准确的定义应该是:变化演进中的思维体。
云客的这个推论似乎解决了“我是谁?”这个问题,目前我还找不出破绽来,但“我来自哪里”呢?这涉及到另外一个问题:人是有智能的,那么智能在何时形成,可以精确到多短的时间?我们一致都会认为一个正常的成年人是有智能的,可以认为一个人类受精卵细胞是有智能的吗?如果有,那么细胞也有形成过程,终归来自基本物质,形成于何时呢?如果细胞没有智能,那么它从在子宫慢慢发育、出生、长大的过程中智能形成于何时?附带着何时才算是一个人?如果能给出时间,我会追问是形成于哪一刻?哪一分?哪一秒?这是人的来源不可避开的问题,类似于波浪形成于何时?一个水分子显然不能形成,两个呢?三个呢?显然很多个后加上外界扰动它形成了,原本在一个水分子时没有波浪这个事物,随着数量增多,波浪是无中生有而来,外力扰动而成,也许问多少个水分子能形成波浪是没有意义的,趋势累积而已,这似乎就是“我来自哪里”的答案。
我们“人”这个“软件式”的思维体和波浪一样,波浪是无中生有而来,外力扰动而成,而我们人就是无中生有而来,环境逐渐作用而成,“环境”也可看做是我们无中生有而来后接收到的信息,这些信息像原子一样可以组成分子,分子可以形成更大的分子,最终可以形成记忆和我们称为“文化”的大分子团,信息就像组成这些“演进中的思维体”的物质,人就是各种文化混合在一起构成的有机体,这个有机体附带着记忆,那么人要怎么过(也就是具备什么类型的行为)才有意义呢?在回答这个问题前需要先明白“意义”这个事物是有相对性的,一辆汽车被制造出来,它的存在意义相对于车主而言是要完成服务的使命,对于车厂工人而言是工作获得回报,对于钢铁、汽油、道路而言意义是什么呢?不同的参照有不同的意义,如果汽车是有意识的,那么只有它自己认可的意义才会指导它的行为,这需要选择一种首要意义,这种首要意义似乎应该来自本身存在的第一动因,就像汽车的第一意义来自于车主,被车主需要才是汽车存在的第一动因,于“人”而言,首要意义可以问问“文化”想要干什么,因为我们由文化缔造,文化的天性是要传递下去,至于最终想要干什么我们无从知晓,但可以肯定“传递”是“文化”想要的,这是我们的行为具备的意义之一;
有个词叫做“模因”,如果把文化当做一个生物,模因就是这个生物的基因,人与人之间的交流就是模因在进行复制,文化得以传递,而复制是有难易的,起到筛选作用,现存的模因都是经过竞争后得以存留,模因也会变异,源于交流时的细微改变,由此产生多样性,经过复制的难易得以筛选,更受欢迎的模因得以传递,“人”需要促进文化的生长,使她适应环境,得以传递,去调整和试错模因就是人类行为的又一意义之一,具体就是找出更受欢迎的文化,同时反过来让这种文化指导自己的行为。
换个角度看一看人类行为应该要完成的使命:人是“演进中的思维体,由模因组成”。明白这个道理后可以发现人是可以不死的,传统的死亡只是身体的消散,模因可以表达存在于纸上、书中、U盘、网络里。。。一旦它们被某个大脑读取,就传染,继续演进,从而这个演进中的思维体化整为零得以存留。在模因的传递中这个世界变成了一个众多个体里你中有我,我中有你的状态,混合链接成一个新的大物种,我不知道应该称这个物种叫什么,但可明确我是那的一部分
明白这些后再回头看一看最初的问题:人应该怎么活才有意义?也许是:
“改进自己的模因结构,变得更适合这个宇宙,去表达组成自己的模因,让它存在于书里、网络里、人脑中,这些代表了自己。努力付出,让最终形成的那个超级物种变得适应这个宇宙环境,长存下去,因为那也代表我自己。”
人生的意义在于付出,然后形成一种超然的存在,那也是得到。
讲了两个为什么后,那么来讲讲怎么做,相应的也有两个:
怎么学习drupal:
一、 首先是心态,drupal系统因为要涵盖许多的需求,要足够灵活强大,这不可避免的导致了系统很庞大,一个庞大的系统不是一天两天就能掌握的,要有学者心态,不要急功近利,换句话说就是不要急于求成,去感受她的美,欣赏她,理解她,长时间的投入或者说困难,成就了你的不可代替性、成就了高度,若有感觉到困难和不耐烦时想想这一点,再想想计算机科学界的前辈们,比如巴贝奇的一生。人生路上不要有好强之心,人当自强,世人常拿“成功”乱加比较,但没有意识到只有相同路径才可以相比,每个人的人生路都是不一样的,路有很多,只有和自己的昨天相比才有意义,和自己比叫自强,和他人比叫好强,自己选择了自己的路,不同路间的好强相比没有意义,徒增烦恼。人类社会、科技发展到了一些阶段,必然有个体迈出最后一步,从而散发出成功的光芒,这种成功绝大部分来自趋势累积过程中许许多多个体的努力,不应该全归于迈出最后一步的人,比如电商的成功可曾想过图灵、冯诺依曼等等前辈呢,不要执着于所谓的成功,那只是人类文明中的涟漪,选择自己的路,有趣的走,平静的看。
二、 要有高效的时间管理,方法之一是平时留意社区中哪些是靠谱的人,学习主要是自己的事,别人不能让你秒懂,但时常可以节约你的时间, 旁人的一句话或者一篇文章可能避免查找大量文献,那么谁是靠谱的人呢?在各类沟通平台时常回答别人问题的人、学习研究有深度的人、时常原创分享的人、维护组织社区的人等等,遇到问题先搜索,再向他们请教,但需要特别注意提问的详细程度,便于别人回答,能帮到你的人也能帮到别人,会有很多人去请教他们,他们时间也是有限的,换位思考,常怀感恩之心,平时注意重视友谊,共同发展社区
三、 英语很重要,平时尽量看英文源文档,可以安装翻译软件辅助,比如可以划词翻译的有道词典;坚持英文,慢慢的就能独立阅读了,国内很多文档是跟不上更新的,在php官网就经常有中文跟不上的情况,所以要习惯英语
四、 作为开发者,一定要先了解drupal是怎么使用的,才去研究代码,作为使用者多看社区文档
怎么贡献于社区:
一、 在写分享或开发模块前先搜索一下是否已有相关内容,在没有或者不佳的情况下才去做,这样更有意义,提高整个社区的效率。
二、 时常回答别人的问题,塑造个人品牌,做一个靠谱的人,利于他人也利于自己
三、 转发推广有利于社区发展的资料,吸引新人加入,参与者众多是生态发展的前提
四、 在技术方面对别的贡献者不要有攀比心态,甚至有不当行为,学习有先后,时间分配不一样,技术高低是很正常的事情,自强而非好强,都是同路人,有共同的方向,相互尊重。
五、 目前有大量资料等待翻译,在学习时,顺带帮助翻译
展望:
中国发展很快,drupal大有用处,国人可以做好开源接棒的准备,在计算机世界里华人可以有很大的贡献:
英特尔32位处理器是华人虞有澄博士领导开发、声卡之父沈望傅是华人、第一位打败人类国际象棋冠军的深蓝电脑开发者许峰雄是华人、破解MD5的王小云是华人…
还有许多许多,在drupal的世界里,核心代码贡献在等着越来越多的华人…
云客20170625 drupal深圳聚会分享,【云游天下,做客四方】,微信号:indrupal, qq群203286137
互动1
写的真好,受教了!感谢云客分享!
写的真好,受教了!感谢云客分享!