- 浏览: 83347 次
文章分类
- 全部博客 (136)
- 我的技术资料收集 (98)
- 具体技术 (1)
- 的技术资料收集 (4)
- All Articles (1)
- 机器学习 Machine Learning (1)
- 网络编程 (1)
- java (2)
- ava (1)
- 零散技术 (1)
- C# (3)
- 技术资料收集 (1)
- CQRS (1)
- 数据库技术(MS SQL) (1)
- .Net微观世界 (1)
- Oracle SQL学习之路 (1)
- C/C++ (1)
- JS/JQ (1)
- Js封装的插件/实例/方法 (2)
- 敏捷个人 (2)
- Javascript (1)
- 程序设计---设计模式 (1)
- Bug (1)
- 未知分类 (1)
- 程序设计 (1)
- Sharepoint (1)
- Computer Graphic (1)
- IT产品 (1)
- [06]JS/jQuery (1)
- [07]Web开发 (1)
- .NET Solution (1)
- Android (3)
- 机器学习 (1)
- 系统框架设计 (1)
- Others (1)
- 算法 (1)
- 基于Oracle Logminer数据同步 (1)
- 网页设计 (1)
- 原创翻译 (1)
- EXTJS (1)
- Jqgrid (1)
- 云计算 (1)
最新评论
我是企业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,转载请注明。
发表评论
-
C#WebBrowser控件使用教程与技巧收集--苏飞收集 - sufeinet
2013-06-28 12:07 1063原帖地址:http://www.cnblogs.com/suf ... -
[翻译] Oracle Database 12c 新特性Multitenant - Cheney Shue
2013-06-28 11:43 618原帖地址:http://www.cnblogs.com/ese ... -
memcahd 命令操作详解 - 阿正-WEB
2013-06-28 11:37 467原帖地址:http://www.cnblogs.com/azh ... -
面向过程的代码符合大众的思维方式吗? - 史蒂芬.王
2013-06-27 10:28 588原帖地址:http://www.cnblogs.com/ste ... -
面向过程的代码符合大众的思维方式吗? - 史蒂芬.王
2013-06-27 10:28 554原帖地址:http://www.cnblogs.com/ste ... -
RPG游戏之组队测试 - zthua
2013-06-27 10:22 554原帖地址:http://www.cnblogs.com/zth ... -
IT人们给个建议 - SOUTHER
2013-06-26 14:06 521原帖地址:http://www.cnblogs.com/sou ... -
Java向前引用容易出错的地方 - 银河使者
2013-06-26 14:00 490原帖地址:http://www.cnblogs.com/nok ... -
使用Func<T1, T2, TResult> 委托返回匿名对象 - 灰身
2013-06-26 13:54 794原帖地址:http://www.cnblo ... -
【web前端面试题整理03】来看一点CSS相关的吧 - 叶小钗
2013-06-25 10:45 781原帖地址:http://www.cnblogs.com/yex ... -
Windows 8 动手实验系列教程 实验6:设置和首选项 - zigzagPath
2013-06-25 10:27 614原帖地址:http://www.cnblogs.com/zig ... -
闲聊可穿戴设备 - shawn.xie
2013-06-25 10:21 560原帖地址:http://www.cnblo ... -
CentOS下Mysql安装教程 - 小学徒V
2013-06-23 15:24 605原帖地址:http://www.cnblogs.com/xia ... -
vmware安装ubuntu12.04嵌套安装xen server(实现嵌套虚拟化) - skyme
2013-06-23 15:18 832原帖地址:http://www.cnblogs.com/sky ... -
之前专门为IE6、7开发的网站如何迁移到IE10及可能遇到的问题和相应解决方案汇总 - 海之澜
2013-06-23 15:12 943原帖地址:http://www.cnblogs.com/wuz ... -
Android学习笔记--解析XML之SAX - 承香墨影
2013-06-23 15:01 405原帖地址:http://www.cnblo ... -
SQL Server 性能优化之——T-SQL TVF和标量函数
2013-06-19 09:32 666原帖地址:http://www.cnblogs.com/Boy ... -
Nginx学习笔记(二) Nginx--connection&request
2013-06-19 09:26 657原帖地址:http://www.cnblogs.com/cod ... -
从郭美美霸气侧漏看项目管理之项目经理防身术
2013-06-19 09:20 496原帖地址:http://www.cnblogs.com/had ... -
1、图解Oracle Logminer配置使用
2013-06-18 10:37 1605原帖地址:http://www.cnblogs.com/shi ...
相关推荐
WordPress是一个全球范围内广泛使用的开源内容管理系统(CMS),它为用户提供了构建网站的强大平台,特别适合博客爱好者和初学者。"老赵茶馆"是一个专门为WordPress设计的主题,旨在提供一种简洁、易用且具有个性化...
老赵的"MVC入门讲解视频"为我们提供了一个深入浅出的学习平台,帮助初学者理解并掌握这一核心概念。以下是关于MVC框架及其在ASP.NET中的应用的详细解析。 **MVC模式的基本概念** 1. **模型(Model)**:模型是应用...
老赵水库实施细则(1).doc
老赵水库实施细则.doc
即当判断是IE6浏览器时,通过JavaScript中的window.location方法跳转到一个专门的页面。这种做法在Web开发中很常见,通常用来引导用户使用更合适的浏览器访问网站。 4. 如何绕过页面跳转:作者发现老赵博客的跳转...
作为一个能同时开发 win32/win64/andorid/ios/osx的语言开发工具,Delphi表示不服……我们不就是编译的ios文件体积大点么... 所以为delphi开发者提供一个REST client的Demo,完整功能的短信服务和主账号读取服务。...
总结来说,".NET 学习资源--C#基础"是一个很好的起点,它涵盖了编程旅程中的关键概念——控制流结构。熟练掌握这些基础,你将能够构建出具有逻辑性的、响应用户输入的程序。随着你对C#的深入学习,你将逐步解锁更多...
关于区块链的架构的介绍 适合互联网业内人士了解区块链相关的知识
赵劼(老赵,Jeffrey Zhao),作为盛大创意部的一员,凭借其在编程领域的丰富经验与独到见解,成为了一个备受尊敬的技术专家。他的优秀课件《为什么 Java 不如 C#》在 IT 社区中广为流传,不仅因其对两种语言对比的...
文章中提出了一个关于养鸡专业户的逻辑问题,需要通过分析给出的条件来确定养鸡数量的排序。 **详细解释:** 根据题目描述,可以通过逻辑推理得出以下结论: - 老赵 + 老钱 = 老孙 + 老李 - 老赵 + 老李 > 老钱 + ...
首先4个喷头可以共线,剩下2个分别与已共线的4个中的一个连接,再加1根,总共4根。 6. 工艺品制作问题:小王和小X每天制作甲部件和乙部件,10天内最多能制作多少工艺品?答案是C.700。小X全做甲部件,共600个,小王...
WordPress作为一个开源的内容管理系统(CMS),在全球范围内广泛应用于各类网站的搭建,尤其是博客领域。它的强大在于丰富的插件和主题库,允许用户根据需求定制自己的网站外观和功能。"简洁清爽"这一主题正是...
这篇故事虽然名为《这事很简单的幽默故事》白雪公主童话故事,但实际上与经典的童话故事白雪公主并无直接关联,而是以一个现代的、具有讽刺意味的情节展开。故事讲述了老赵为儿子赵能寻找对象的困扰,因为他的破旧...
这篇素材讲述了上海市上海师范大学附属中学高中语文教学中的一段故事,涉及了老赵一家的生活、奋斗和家庭教育的现状。老赵和他的家庭经营着一家麻辣烫小店,他们在城市边缘努力生存,同时也展现了坚韧和乐观的精神。...
C/S:要求客户的电脑上必须要安装一个客户端:qq、360、快播等..... B/S:要求客户的电脑上只需要安装一个浏览器。 4、IDE IDE指的就是我们的开发工具。 5、vs的学习 1)、启动VS a、双击图标 b、调出cmd,输入 ...
单例模式确保一个类只有一个实例,并提供一个全局访问点。该模式适用于系统中只需要一个实例的情况,例如日志记录器、数据库连接等。 #### 2.2 工厂方法模式 工厂方法模式定义了一个用于创建对象的接口,但允许子类...
15. **垃圾回收(Garbage Collection)**:C#的内存管理由垃圾回收机制自动处理,开发者无需手动释放内存。 16. **多线程**:C#提供Thread类和其他工具来支持多线程编程,用于提升程序性能。 17. **枚举(Enum)**...