`

我要喷一个自认为很垃圾的网站架构 - 老赵【苏州】

阅读更多
原帖地址:http://www.cnblogs.com/laozhao8/p/3160346.html

我是企业it,满怀信心的想要尽自己的最大努力把公司的企业信息化做到最好,包括OA,CRM,HR,ERP,以及面向客户的,面向互联网的app,user interface,囊括的内容比较多,要花很多时间投入和人力投入。

尤其是面向互联网的网站,做网站的都知道,无论从用户体验,技术架构,框架的选型,大数据等细节都不能忽视。

我是一个程序员,没有官衔,但是我的思考范围和管理思想并没有停留在一个普通的程序员层面上,我关注着技术细节,理论深入,底层概念,原理,项目计划,节点,里程碑,用户体验,大数据,服务器部署,容错,负载均衡,数据同步,互相学习,分享,科普培训。

 

恰好,我们做的某一个网站并没有达到以上的30%,我忍了很久了,今天我要开喷!

我来阐述一下其中一个网站的概况:

1.项目背景:为生产型企业/贸易型客户提供业务数据服务,在线下订单,我们公司内部有专门的内部系统进行产品生命周期的数据管理,我现在说的网站要呈现大量的业务数据,提供统计,财务分析,各种报表的呈现,为客户提供一般数据,概率的功能统计

2.最终用户:我们内部人员,传统企业用户,淘宝卖家

3.技术:asp.net,sliverlight,wcf,webservice,json,jquery

4.控件工具:devexpress,radcontrols(silverlight),ligerUI

5.系统架构:普通3层

 

先说技术和框架的选型:

  首先我要狂喷的就是淘宝模块的页面,全部用的是devexpress,当然这里不是我做的

    我想问问:

    1.devexpress用在最终用户是互联网用户的环境中合适吗?

    2.devexpress对浏览器的兼容性邋遢的简直一踏糊涂,你们相信吗?他妈的官网竟然说devexpress兼容IE10,我去年买了个表你们相信吗?

    3.devexpress asp.net服务器控件生成的代码多的一塌糊涂,你们也都有体会吧?这里就有一个asp.net页面在vs里的.aspx页面4000多行代码乱七八糟,js没有被封装到处都是我看的下去吗?生成到浏览器6000多行那个加载速度我能够忍受吗?

    4.dev服务器控件对ie7,ie8,ie9,ie10里的细节功能在这几种浏览器里面均存在一些兼容性问题而无法去更改你们能直视吗?

    5.当用户进了这个网站发现自己点这里点那里没反应那种焦急而不得不问技术人员怎么回事,技术人员给解决兼容性问题想死的心都有了的情绪我很爽吗?

    6.当用户继续使用发现仍然存在一些兼容性问题已经没有继续使用的决心的时候给公司带来的利益影响,难道这就是我们的初衷吗?

    这里是技术选型的问题,我不否认dev是非常优秀的,微软推荐的控件,但是!这里是互联网用户使用的,而不是内网使用的,我们不能选择优秀的控件而并非适合我们自己产品的、傻瓜似得控件来提高我们的开发效率,而是应该站在互联网用户的角度来想,我的用户体验,页面展现速度怎么养最快,保证兼容性最好。互联网用户!!!IE6-10,firefox,google,国产的搜狗,360,等等,谁他妈知道用户到底使用什么浏览器???谁他妈知道最终用户的网速怎么样,一个页面6000多行代码,密密麻麻,我开一个页面要等20秒,想让用户吐血吗?

    写到这里我憋的内伤。

 

再说数据方面:

    1.其中一些业务模块数据的展示,打包式的返回一个数据集,最大包括8张表,放到session,数据能上20M,用dev gridview展示,自动分页。也就是说第一次我在某一个页面随随便便查询出20M的数据放到内存中,让gridview去展示其中的10条数据,第二次,第三次以及以后都不用去DB取数据,而是从内存中取数据直接绑定到gridview。当下一次我改变了查询条件才从DB取数据,那我想问:用户只想看一个主表数据,而现在带出来了8张表的数据,那我资源是不是严重浪费,效率是不是大打折扣,我就为了看一下主表数据,你大爷的给我带8张表的数据,让我足足等了50秒钟。用户他妈的容易吗?我们自己是10M光纤,你怎么用户不是他大爷的24k小猫!!!你让用户要等多久?当应用程序等待超时,页面无响应,或者报错,这是我们想看到的吗?

    2.一些grid绑定数据的方式,我想说这是刚学习asp.net的做法,拖一个数据源控件,绑上,没了!!!就他妈这样没了!!!你们知不知道每次刷新页面数据源控件都要去后台取一次数据自动分页自定义的10条数据,你知不知道每次切换页数的时候数据源控件又他妈的从DB取一次数据,你知不知道当这笔数据有10000条的时候用户第一次只看到了10条数据而你从DB去取10000条数据,你让24k的小猫用户怎么活?

    3.再说服务方面,一些sliverlight页面直接去自动生成wcf服务,自动生成dataset,wcf安全方面配置比较复杂这是wcf学者人人皆知的,不熟悉这门技术为什么要去冒这么大风险一定要用他,就为了方便,自动生成数据源,直接绑定数据,不需要人工干预分页!!!让我们做技术的怎么看的下去?

    4.总结:一些傻瓜似的工具,控件看似提高了开发效率,实际上在某些场合,比如说互联网用户的环境根本他妈的不适合!

  

继续说服务器部署方面:

    1.血淋淋的例子:给用户提供的webservice竟然给我部署在win7下面,同学们给我看清楚了,是win7下面,尼玛。。。这是天大的笑话吗?

    2.说网站:网站的用那么多,用户数上升比较快,网站就部署到了一台虚机,没有备份服务器,没有容错措施,挂了就挂了,解决问题,数据库也是在同一台虚机里面,总之无论是DB挂掉,还是程序挂掉,都无法工作了,我想面向互联网用户的业务系统你总得做个容错,至少部署两台应用程序服务器吧,数据库你总得部署两台用来同步吧,这不是普普通通的企业宣传网站,这是业务系统,这和企业利益挂钩,这和企业的收益挂钩,我们要通过网站来下定单来赚钱的,网站一挂,用户如果跑了怎么办?谁负责?老板不懂技术,但是我们技术人员想想,如果我是老板,我会技术,我会这么做吗?我们这样做合理吗?

 

然后我们说说管理方面:

    1.作为一个部门经理,项目经理,产品经理的企业IT小团队来讲,作为一个管理者,有责任,有义务要将本职工作做好,做项目的同时要做好项目管理,最起码要做计划,里程碑,节点,需求分析,设计,各种文档,测试工作。目前的情况:没有计划,只有大概计划,什么时候做完,这样的目标对于老板来说是可以的,但是对于我们团队内部是没有任何计划的,时间长了,大家没有时间概念,每天能做多少做多少,做不完明天继续做,如果养老还可以,但是对于年轻人,我想这样的团队是不适合生存的,太威胁生存了,即使我自己对自己要求严格,无论从技术方面,还是对自我管理方面要求算是比较高;但是一个团队来说,我日。。。这叫团队吗?这叫没有领导的羊群。让一头狼去领导一个羊群的战斗力比一只羊去领导一群狼的战斗力强不知道多少倍。

    2.提升:这里为什么要讲提升?领导写代码写了十多年,这里其实有很多这样的例子,很多程序员到了很大年纪水平还是工作两年的那个水平,我想这不是智商的问题,还是态度的问题,理念的问题。没有提升的概念,只会做项目,对底层不了解,只会用,不知原理。虽然,对工具的使用熟练有很强的战斗力,但是一个工具出了问题,由于不会造这个工具,我们不知道去怎么面对突如其来的变故,不能解决,也没有能力去解决问题,对工具底层的不了解,造就了一个又一个的悲剧,那怎么办?换工具?对吧,换工具。。。呵呵。。。

     自己的水平不高,怎么去培养后辈,怎么去培养手下,我不知道为何一个工作十多年的程序员,水平为什么还是。。。唉,看下一点。

    3.编程之命名:一般程序都有自己的命名规范

      3.1.控件命名:button:btnSave,btnClose,但是现在我看到有人没有规范,bntsave,btnclose甚至已长串的词组没有区分大小写

      3.2.变量命名:bool isOpen,bool Is_Open,这种算是比较有规范的命名吧,但是我又看到了:boo isopen,bool blnisopen,我日。。。大家看到了吗?最后面一个命名方式,我反应半天明白了bool blnisopen前3个字符bln,这不正是boolean的缩写吗?这倒也算了,竟然还不驼峰。。。怎么说也得区分下词组吧,不然看着多累啊。

      3.3.属性命名,和3.2变量命名类似,一会是驼峰,一会是帕斯卡命名法,一会又大小写不分。我说到有些围观者心里去了,你别笑,说不准你丫的就是这样命名的。

    4.编程之注释:这他妈也是老生常谈的问题了,为什么我们就他妈不能动动手写个注释,你想让你后面的人看不懂无法维护吗?我想问时间长了你自己看得懂吗?你是不是也要去调试好久才恍然大悟,我他妈原来是这么个意思。我想说,写注释吧,你以后忘记这段程序去调试的时间远远大于你写注释的时间。具体怎么注释就不说了,不好意思说。

    5.编程之try catch:我想说别老把这个东西当个玩具,时不时来一句try catch,你不知道这玩意有时候虽然不会带来灾难性故障,但是却带来无法弥补的损失。丫的一会一个try catch,你为什么在一个方法体中用那么多try catch,并且这个方法体不是用来为控件赋值的方法体,一个很一般的功能性的方法体竟然有很多个方法体,我是不是要觉得你的水平有问题?

 

唉,说了这么多,我也发泄完毕了,心里舒服多了,我没别的意思,只是想表达一下自己的愤愤不平,我真的没有见过这样玩的。

都是一些大家经常在说的问题,说了一遍又一遍,争了一轮又一轮,说来说去还是他妈的这些问题,但是就这一些简简单单的问题,就还他妈的发生,这究竟是为什么?

我们生在天朝,但是又没有能力离开天朝,我们都知道天朝不好,但是活在当下却又无可奈何,只能在网上喷,这就是中国人。我也是一个小型组织的普通IT民工,我发泄不了,因为我不是领导者,我怕得罪人,我还没有能力去引领潮流,毕竟我的经验尚浅,就不卖弄了,但是我仍会会在工作中无微不至的去关心我写的每一句代码,命名的每一个变量,做好我自己的事情,同时也要去想办法引导,改善一些错误的做法。

尼玛刚进博客园不久,不知道怎么去在编辑器里做一些比较有层次感的段落分层,就大概这样写吧。


本文链接:http://www.cnblogs.com/laozhao8/p/3160346.html,转载请注明。

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics