选择技术方案权衡时,考虑对其可控性很重要

以前,看一些资料,比如一个公司选择什么类型的数据库系统,是mysql还是postgrelsql,mongdb等,不仅仅是看符合自己需求。而一个关键点也是非常重要的:持续的技术支持。

 

如果php后面没有成立官方公司来运作,相信不会有多少公司愿意继续采纳。由于拥有了官方公司作为技术支持,以后遇到bug,一些新的问题,都可以让他们提供技术方案,他们会不断的升级。我觉得mysql也是这样子,大家选择它,有官方技术支持。

 

而有些技术,没有成立官方公司来运作,你都无法确定你用了它后,指不定哪天就不开发了。而且如果公司很小,哪天就倒闭了,就没法提供技术支持了。

你用他们的东西,出现一些莫名其妙的问题,根本不知道找谁解决。自己去看代码。可能语言不同。没人解决这个问题。

 

当然会想到,假设没有社区和官方公司提供技术升级,那么我们可以自己修改。实际上有些是可以改,但是大部分我们是改不了的。比如我们自己会去修改mysql的源码吗?没有人他们的作者更熟悉这个数据库,当对这个系统非常熟悉后,就完全可以自己按照需求进行修改。不熟悉,可控性不强了。

 

有个数据库路由层软件,叫amoeba,当时一个人写的,是一个开源免费使用的软件。后来作者在阿里巴巴工作。阿里巴巴也用了这个软件来实现数据库分布式数据库的路由功能。

由于他后来从阿里巴巴离职后,,又重新写了一个cobar(现在已经开源出来了)。

 

其实我当时在想,为什么又重新写一个?浪费时间。其实内部就是考虑到可控性。没有提供持续的技术支持,后面确实麻烦。出了问题都不知道怎么找。自己参照他的功能写一个,应该可以做到自由修改。

 

 

直到我遇到一个亲身的例子:我用websaver保存技术资料,叫做网博士。但是这个软件是个人作者,后面一直没更新了。我的技术资料保存90M文件,某天操作网博士突然卡死了,崩掉。重新打开。估计是书籍文件出现混乱了。后来一直都打不开。由于官网已经停止开发这款软件了。我在使用中遇到问题,真的不知道去找谁解决。

 

 

我总结的教训是:用大公司支持的技术方案,至少所冒的风险少些。出了问题,遇到bug,可以提交给官方,他们会解决。进行升级。

尤其是数据库系统,涉及到数据丢失,损失将会非常惨重。在选择合适的数据库系统的时候,最好考虑有没有足够的后续技术支持,无论是官方还是社区技术支持都好。

 

像mongodb,成立了公司来运作这个数据库,使得很多公司不用存在很多顾虑去使用这个新出来的数据库系统。毕竟后续支持多。有些数据库系统,虽然可用。但是根本没有成立官方来做后续的技术升级和维护工作。完全不敢去用(linux有社区是一大亮点),这也就是为什么一些大的技术公司在考虑技术工具选型的时候偏向于选择有厂商支持的工具。就是为了减低风险。我看postgresql大部分公司没有使用,也是考虑一个成熟的技术支持方面。谁愿意冒这个风险呢?跟网博士一样的。

 

一个技术经理,或者架构师,面临着很多技术工具可以选择,选择什么样的工具方便以后,也确实要考虑。

 

 

源于一次资料丢失的教训:90m大小的网博士wsb文件,现在打不开,点击就卡死,cpu占有率老高,达到了25%,实在没辙了。因为这个软件已经停止更新,没法寻求技术帮助。这90m的资料,是心得笔记和网络上重要文章的收集与整合,对个人开发而言比较重要,人的记忆有限,当时就是靠知识笔记管理软件来记录一些东西。

 

预防方式如下

 

鉴于网博士已经停止更新和升级。大体上不要使用该软件作为主要点。减少对此软件的依赖性。


1、让网博士每隔3天自动备份一次。或者可以减低到1天备份一次。这样即便意外造成损失了。也不会影响很多。



2、以前的资料仍然放到网博士,使用网博士的快速搜索功能挺好的。新的资料大体可以慢慢迁移到云笔记之类的网络工具。至少有官方技术对数据进行维护。丢失的可能小。


3、不要把鸡蛋放到一个篮子里去。这样子很危险。可能辛辛苦苦积累的技术资料和成果性东西,要么是丢失了,要么却是损坏打不开的情况发生。由于缺乏官方技术支持,根本不知道找谁去恢复数据。

网博士的书籍,尽量建立成exe格式的,而不要是wsb格式。exe格式至少通用点。出现损害应该不限于网博士才能读取。

我会使用麦库记事本来保存网页。它的也有搜索功能。


4、虽然网博士不再更新,但是原来的老版本还是能够正常使用。本地也有这个软件的安装程序。

所以,如果我把书籍备份放到360云盘进行备份,避免某天笔记本磁盘损害的事情发生。

5、策略上,我在使用网博士的时候,最好控制书籍的大小。书籍文件太大,就可能出现问题。导致现在打开处理的时候

都耗费很多内存,处理起来耗死。

方法:以专题的形式来建立书籍。而非所有技术资料都放到一个"技术知识"一个书籍中去。比如session的研究,做成一

个小书籍。以后方便生成电子书,给别人看。自己也方便保存。

思想为:知识之间相互独立,关联性少为好。把重要的数据独立出来,不要跟其他数据都混杂在一起,因为一旦混起来,

其他数据出现问题(那部分文件损坏之类的不可预料和异常性问题),这部分重要的数据也会受到影响。

在网博士中,将session方面的知识点,单独做成一个书籍,就可以避免总部出现问题,殃及到这部分数据不能正常使用。


6、教训:没有任何一种技术方案能够确保数据万无一失。这都不是技术方面的问题。发现这是哲学上或者生活上处理事情的规律。
以前,我以为a软件用着挺好的啊,还能进行备份,没有任何问题。觉得以后干脆就一直使用他好了,而且他还可以自动

备份书籍的。现在丢失一次数据之后,才发现,不要过度依赖于某个软件。我最好还是用其他工具也保存一些。

这种经验可以用到网站的数据备份上面去。多个节点总是减少风险。

一旦丢失,可能有些时候技术方案都没法恢复。自己到那个时候就会非常懊悔。所以我们能够做的就是,尽量进行备份,

不仅仅是备份,要备份到多棵树上面去,万一一个节点坏了,虽然会有损失,也不至于全部没了。

posted @ 2013-10-14 01:04  王滔  阅读(840)  评论(0编辑  收藏  举报