计算机编程技术之设计思想——不再迷信某些设计思想
前言
首先解释下“不再迷信”不是不信和不用,而是为了更好的思考与使用。
故事起源与最近用Python做的类似于网盘的项目。由于之前更多使用的是高级语言(C#,Java),这种面向企业级的语言为得就是解决繁琐且负责的企业需求。于是设计模式的运用是必要也是必须。但是由于最近的工作内容更多的偏工具,脚本,自动化。使用的C#就比较少了。
用Python的过程当中需要为方法传一个数组,突然恍惚了一下“针对于复制出来的数组使用时是默认是值传递还是引用传递呢?”。
类似于:

小菜之前一直以为只有通过ref才可以呢。类似于:

没想到效果竟然一样。于是就思考由于语言有自己的特性,习惯性的解决惯性可能会影响我们的一些判断和发挥。
由于做的是国外项目,陆陆续续的会看一些老外的代码,参加一些老外培训,查阅代码的过程当中,会发现一些有意思的东西,其中一点就是,老外似乎不怎么迷信某些常见的设计思想。
比如:
代码重用。
以前在公司也会有很多的大牛,或者其他的一些例子,其中代码重用的呼声很高。在这次的项目中我会经常见到DB的Connection几乎会在每个WorkFlow中见到,我想如果是我以前设计的话一定会单独建一个类库去处理所有的数据访问相关的工作,在上层代码肯定不会见到DB的操作,这样才能更好的实现面向对象的某些要求,也更能体现出作为程序员的能力,但是他们这样做肯定是有原因的,我在想如果将我的那个思想放在这里会怎样呢?
首先由于目前的项目的整个Process的周期很长,于是会有不同的人陆陆续续参与进来,也有很多人会调离出去。也会有不同新的WorkFlow陆陆续续加进来。DB操作的封装首先会造成新接手的人员对Process的理解成本,同时加大了Debug的成本;其次由于项目不同的WorkFLow会连接不同的DB之上,同时每个WorkFlow设置有不同的TimeOut时间于是当我们需要在封装那里去实现更多的配置信息时,实现的复杂度也就提高了,复杂度提高代表出错率提高了。最后如果某一个节点需要更优的处理比如引进NoSql,Hadoop我们同样需要在封装端加更多的方法和配置,于是编代码变成了“便”代码。
后来我想起之前犯过一个错误使用MongoDB的时候我在底层修改我的数据连接用来适配SqlServer和MongoDB,在程序使用是报了一个mongoDb的使用错误类似于事物的,后来找了好多希望通过C#实现对MongoDB的这个错误的实现,结果徒劳了。其实MongoDB的API已经是封装好的了我们在用代码封装一次并不能体现我们聪明。
最后加一个类似于年终总结的东西:
其实不太喜欢写更多有代码的例子,首先是代码写的并不好,分享给大家也没什么意义。第二一个本人也是喜欢看一些思想上的东西大段的代码也是很少看的简单的推荐几个大牛的Blog,读他们的文章会得到不同的写代码的乐趣,就像中奖和当父亲高兴的不同。
话说当时面试的时候老大问我未来两年的计划是什么?我说要脱离“微软”程序员,做个程序员,在做软件工程师。他问“有什么不同吗?
”我说微软的技术栈里我最喜欢的是C#还有VS,不喜欢WCF的复杂,不喜欢WinServer管理,不喜欢SqlServer的分布式,不喜欢IIS的Debug。
然后我是一个属于编程语言爱好者,语言榜单前10几名都了解过,但不够深入,也不想深入,我了解的目的不是为了说有多牛,而是为了知道我真正喜欢什么和为什么喜欢,同时给自己一个理由,理由真的很重要。有人喜欢高贵典雅的教堂,有人喜欢鸟语花香的郊外。
程序员更多的是解决问题,而工程师我认为应该显得更加厚重,比如我喜欢那些领域涉猎广的大牛:计算机,软件,硬件,网络,各种协议,各种标准,经济,政治,历史...也就是说有人把把编程当工程,有人当工具,有人当玩具。
回首做开发的两年算是对编程入了门也更加热爱这个行业了,新的一年争取成为软件工程师,由于工作的变化有机会做Windows Azure的东西,微软的云平台是个想的开放的平台,当时老大说Windows Azure最大的错误就是叫“Windows",同时微软开源公司也在上海成立。所以新的一年微软会在开源方向走的更多,微软技术栈的同学们也应该接触一些开源的东西。如果说之前对于开源世界只是打开了一扇窗,希望明年能够走出自己的门去拥抱。
快要回家了,较兴奋。想了一下并不是因为快要回家所以兴奋,更多是因为回家之后将迎来崭新的一年,崭新的未知,之前一直以为人会因为未知而恐惧或者恐惧未知。但是现在想想同样因为未知而兴奋,而充满想象,为什么呢?主要是场景不同,在《电锯惊魂》的场景中,每一种未知都是更大的恐惧,而在旅行的列车上,前方更让你充满想象,用春哥的话就是:当你向着阳光奔跑时,脸上怎会看到感伤?即使是感伤,也是对于奔向的是希望的远方,快乐的向往。
本文来源 我爱IT技术网 http://www.52ij.com/jishu/5477.html 转载请保留链接。
- 评论列表(网友评论仅供网友表达个人看法,并不表明本站同意其观点或证实其描述)
-
