做一个聪明的.net程序员
最近看了传智播客(http://net.itcast.cn/)的.net培训视频,感受颇深,忍不住要把感受写下来跟网友分享一下。
我从接触.net到现在已经至少过去了三五个年头,用.net也已经做了若干个大大小小的项目。在看培训视频之前我还在努力地学习.net的各种新的框架和控件(如Telerik UI,AJAX Control Toolkit,各种ORM框架等),一边硬着头皮学一边也在心里抱怨着IT技术更新太快。曾经还会为熟练使用.net自带的一大堆服务器控件和Linq To SQL而颇有成就感,现在却要面对一波又一波技术的更新浪潮,随着岁数的增长,也渐渐地感觉学起来越来越费劲了。
然而一看传智播客网站上的杨中科老师的.net培训视频,还没看完就有了一种醍醐灌顶的感觉,感叹这几年来真是被微软给惯坏了。为什么这么说呢,自打.net出了2.0以后我就开始关注和学习了,刚开始自然是找本书来看,那时候的书籍上记载的都是大篇幅阐述各种服务器控件的使用。其实在接触.net之前我都是用ASP来做网站项目的,当时使用ASP的感觉是写代码麻烦(几乎啥都要自己去实现),前端和后台的代码混杂起来致使阅读和维护不便,最大的缺点还是调试困难,不过现在看来最大的好处是做出来的网页干净(当时没觉得,虽然当时客户跟我反映说网页打开速度比好多知名的大网站还快,我也没去想那么多)。.net的出现带来了一大堆的封装好的服务器控件以及CodeBehind、ViewState、AJAX Extension控件等神奇的技术。当时微软号称ASP.net是ASP的升级版本,我也是举双手认同,从此开发和调试都方便了很多,因为开发网站可以像开发桌面应用程序那样拖控件,而调试也可以在后台代码里下断点来实现了,于是我从此开始放弃了ASP的进一步学习和使用。在实际的项目实践中,一开始由于项目需求并不是很复杂,开发过程进展总体来说比较顺利,开发调试效率都比以前用ASP提高了很多,这段时间持续了至少有两三年。但是随着项目规模的增大和对性能要求的提高,遇到的困难也越来越多,而且解决起来都感觉无从下手,因为我已经渐渐地形成了“拖控件改属性响应事件”的开发模式,遇到实现不了的需求就去网上搜控件的用法或找更好的替代控件,遇到渲染出来的客户端网页上ViewState内容太多也是束手无策,客户也渐渐发现了问题,不断跟我抱怨说还不如以前的项目(用ASP做的)做得功能强大且打开页面快。其实在看培训视频前我也已经开始质疑微软的.net,不过我想到的是出于.net本身的问题而不只是服务器控件的问题,因为用Web Form开发太久,当我想转到微软新推出的MVC开发模式时已经感觉很不习惯了,感觉太难学,因此我都已经开始动摇了对.net的信心,准备投靠目前更火热的PHP阵营。看了培训视频后,我总算明白了我的问题出在哪里了,原来是我被微软惯坏了,我已经不会用传统的Web开发模式来开发网站了,原来一直以来我都是在用开发WinForm的模式来开发网站,而且更要命的是我都没有深入研究和理解那些服务器控件和aspx页面渲染的原理。刚学会.net的时候还自以为很牛B,拖几个控件就能做出网站来,人家问我AJAX代码的问题,我直接说我不用写这些代码,直接用什么UpdatePanel控件就行了。现在想来太可笑了,正如杨老师所说的,这些服务器控件又难学又不好用,真正做项目的时候用这些控件的确很痛苦。
技术不断在更新,然而其底层的技术却多年来未曾改变,不管微软推出多少服务器控件和多少框架,像我这样的开发者们,千万要保持清醒的头脑,万变不离其宗,不应该盲目地花很多时间和精力去学习人家封装好的东西,而应该尝试自己去实现,做Web开发的朋友不要忘记了Web“请求-处理-响应”的本质。别人做出来的东西终究是别人的,哪怕开源的也好,维护起来还是很困难很痛苦,真正的高手应该学会自己写框架写控件,并且有选择性地使用别人封装好的东西。
联想到程序员自身的提高和发展问题,在学习技术的过程中,有好的老师提供正确的引导是多么的重要,少走几年弯路就意味着多赚几万块钱。总是听到不少老师在网上给学员培训时说诸如“没必要去学习原理,只要会用就行”之类的话,这就跟我当年刚学会拖控件就以为精通了.net一样可笑。都说IT行业技术发展迅速,其实真正迅速的还是在于应用层的东西,而这些东西我们真的没必要都去学。切记,封装是一把双刃剑,滥用者必然没有好下场。从今天起,做一个聪明的.net程序员。
做一个聪明的.net程序员的更多相关文章
- 如何成为一个优秀的java程序员
Java程序员有许多应遵循的守则或最佳实践方式.本文概述了每个开发者最应该遵循的10条守则或戒律,如果不遵循它们,将会导致灾难性后果. 1. 为代码添加注释(Add comments to your ...
- 做一名合格的程序员(learning of a previous team)
合格程序员的基本素质 作一个真正合格的程序员,或者说就是可以真正合格完成一些代码工作的程序员,应该具 有的素质. 1 团队精神和协作能力 把它作为基本素质,并不是不重要,恰恰相反,这是程序员应该具备 ...
- 一个优秀windows C++程序员的知识体系
思考一个优秀windows C++ 程序员该有哪些知识,可最终发现什么知识都不能少, 看下图: 除了上面知识,程序员还要不断学习, 保持对新知识的热情. 转自http://www.cppblog.co ...
- 一个优秀windows C++程序员的知识体系[转]
转自:一个优秀windows C++程序员的知识体系 思考一个优秀windows C++ 程序员该有哪些知识,可最终发现什么知识都不能少, 看下图: 除了上面知识,程序员还要不断学习, 保持对新知识的 ...
- 转:一个优秀windows C++程序员的知识体系
转自:http://www.cppblog.com/weiym/archive/2012/06/10/178287.html.根据自身的经历,觉得作者总结的很好. 思考一个优秀windows C++ ...
- 一个十年java程序员的心得
展望未来,总结过去10年的程序员生涯,给程序员小弟弟小妹妹们的一些总结性忠告 走过的路,回忆起来是那么曲折,把自己的一些心得体会分享给程序员兄弟姐妹们,虽然时代在变化,但是很可能你也会走我已经做过的1 ...
- 转 一个典型的 C++ 程序员成长经历:
1. 完整的学一遍 C++ 所有语言特性,典型书籍 "The C++ Programming Language" Part1, Part2, "C++ Primer&q ...
- 一个普通底层.NET程序员关于职场瓶颈期的思考,辗转自我提升/跳槽/转行之间
徒有工龄,没技术没学历没平台没家底,工作几年,无车无房无存款还前景不明. 时常有身边的亲友问怎么学开发怎么转互联网,说起IT行业都说工资高,动辄月薪上万动辄年薪几十万. 再看看自己,我可能是假的程序员 ...
- 一个10年Java程序员的年终总结,献给还在迷茫中的你
我越来越担心我作为一个Java程序员的未来. 恍然间,发现自己在这个行业里已经摸爬滚打将近10年了,原以为自己就凭已有的项目经验和工作经历怎么着也应该算得上是一个业内比较资历的人士了,但是今年在换工作 ...
随机推荐
- MSSQL索引优化
转自:http://blog.itpub.net/16436858/viewspace-589275/ http://www.cnblogs.com/jams742003/archive/2011/1 ...
- 剑指OFFER之矩形覆盖(九度OJ1390)
题目描述: 我们可以用2*1的小矩形横着或者竖着去覆盖更大的矩形.请问用n个2*1的小矩形无重叠地覆盖一个2*n的大矩形,总共有多少种方法? 输入: 输入可能包含多个测试样例,对于每个测试案例, 输入 ...
- SQL 表锁(转)
其实你可以使用事务处理 比方说在一个字段里面添加一个boolean 的字段当你要处理该字段的时候就 True 哪么别的人都不可以进行操作 如果是False 哪么就可以进行操作--呵可--我是这样的 ...
- struts2的action的知识点和利用action向页面注入值的操作
1. Action的顺序,会先搜索指定名字下的包的action,如果找不到会去搜索默认路径下的包下的action. 2. 如果没有给action设置值,那么action会有一些默认 ...
- Eclipse添加小工具_打开当前文件所在文件夹
CopyRight yuhuashi http://www.cnblogs.com/chuyuhuashi/archive/2012/05/06/2485831.html 默认情况下使用eclip ...
- iOS有关截图的操作
1.截取选中view的图片 //根据size大小创建一个基于位图的图形上下文 CGRect rect =view.frame; UIGraphicsBeginImageContext(rect.siz ...
- 处理get中的中文乱码情况
1 最基本的乱码问题.这个乱码问题是最简单的乱码问题.一般新会出现.就是页面编码不一致导致的乱码.<%@ page language="java" pageEncoding= ...
- Visual Studio 调用 Delphi DLL 会退出的解决方案
新写了一个 Delphi 的 dll 供 C# 程序调用,却发现在使用 Visual Studio 2012 进行调试时,程序会在调用后自动退出. 经过对比,只需要将工程属性中“调试”一页下的“启用 ...
- FZU 2169 shadow (用了一次邻接表存边,树形DP)
Accept: 28 Submit: 97 Time Limit: 1000 mSec Memory Limit : 32768 KB Problem Description YL是shadow国的国 ...
- 开发者必备,超实用的PHP代码片段(转)
此前,研发频道曾发布<直接拿来用,10个PHP代码片段>,得到了网友们的一致好评.本文,笔者将继续分享九个超级有用的PHP代码片段.当你在开发网站.应用或者博客时,利用这些代码能为你节省大 ...