首页 | 乐园 | 淘宝店 | 社区 | 电驴 | 网页游戏 | 网址大全

VeryCD / 社区 / 不会游泳的鱼 / 精华

资源管理小组

相关主题

正在读取……

主题: 写给想从事 Web 开发的新人

相关分类: 经验分享

slsoft (组长) 2009/07/18 22:22:01 顶楼 举报

写给想从事 Web 开发的新人
很早就想把几年来积累的经验好好整理一下,趁今天睡不着就写个第一部分吧。很多程序员都看不起 Web 开发,认为它不复杂。恰恰相反,Web 开发是最复杂的。

前言

第一,Web 开发需要跨平台,不仅服务器可以跨平台,也要适应各种客户端,再复杂一点要适应各种协议。

第二,Web 开发要更上知识更新,每三个月都会有一次技术革命,所以不能跟着教科书学了,要跟着 Blog 学。各大公司布道者的 Blog 是必看的。像 Scot Gu, Scot Hansleman, John Greig 等等,他们的 Blog 应该像新闻一样,每天必看的。

第三,Web 开发存在各种无法控制的因素在呢,所以初始设计很重要。

第四,Web 开发的周期短,一般一个星期更新一次,来满足用户不断的要求,而且永远没有止境。

第五,Web 开发不止比开发效率,还要比拼开发思路。山寨网站基本不会让你新鲜一个月的。

第六,Web 开发的客户群太广了,所以文化多元化,用户体验等等因素很大程度决定了产品的生命。

第七,…… 太多了,等我以后整理完再补全。

Part 1,

很多人一开始都左右摇摆不定,学哪一种语言比较快,比较适合自己。其实如果单纯为了开发的话,选择那种语言都无所谓。如果是为了找工作,那么就要好好了解一下市场了。

第一,Web 开发要会什么?

从简单的写起,设置各种 web 服务器。不要告诉我你只知道 Apache, IIS。专业 Web 服务器有很多很多。当然这两个是基础的,说它们简单,其实是误导了。要调谐好是很大的一门学问,至少先跑起来再说。

HTML 年年再跟新,好的浏览器都支持最新的 scheme,所以做一个 Web 开发的程序员一定要打好扎实的基础。因为这是仅有的可以信得过。无论用什么语言,服务器,最终 Browser 只认识它们。

CSS 不会写,至少要看的懂。一般这连同一部分 HTML 都是设计者的工作。

Javascript, 这是 Web 2.0 最流行的东西,一旦信息离开了服务器。你就只能靠它来控制页面了。最麻烦的是不同的浏览器执行的效果都不太一样。幸好已经有很多现成的 Framework 让我们用,甚至可以说百花齐放。JQuery, Dojo, Ext, Motools, Prototype, Microsoft Ajax …… 太多太多,至少要会三四种,因为它们的长处都不一样的。

服务器端的选择太多了。我就只介绍我会的。

1,Ruby 人气上升最快的语言。一个日本人十几年前开发的脚本解释性的语言,比较接近英语的语法。所以有一部分 fans。其实语言本身并没有什么,它的成功是 Ruby on Rails 带给他的。RoR 是最早让 MVC 成熟并转化为强大生产力的功臣。有点就是开发速度快,运行速度也快,体积小。所以国外有句话就是说写 Ruby 开发通常写的代码只有其它语言的配置文件那样大小(含沙射影指的是 ASP.NET)。

2,PHP 是 Open Source 的大将,如果你只想建个山寨网,那么有大把大把的 PHP 源代码让你用。曾经有段时间,LAMP 都曾为了 Web 开发的代名词。现在虽然每况愈下,最主要自身没有太大突破,不过还是有很多很多程序员在使用。 cakePHP 也是一个不错的 MVC Framework,虽然有抄袭 RoR 之嫌。

3,ASP.NET,微软没有做不到的,因为太有钱了。任何技术在它手里都有翻版。无论你用 C# 或者 VB.NET 都差不多。开发相对简单,甚至不需要些 Javascript 就可以实现 Ajax。但是也很臃肿。不过不得不承认它是商务应用最为广泛的。通常身价会高一点。不过和 ASP.NET 相联系的很多技术都值得关注,Silverlight,无论你是用 javascript 或者用 C#, VB.NET, IronRuby, IronPython 都应该了解一下,因为这是趋势……已经有人成功的在 Silverlight 的 Container 下运行魔兽,就是把 3D 游戏集成到了网页中。只是运行效果太慢。这是和浏览器有关,相信不久之后就会实现一个浏览器就能完成所有的工作了。至于其它的一些新东东 Linq, Dynamic Data, Entity Framework 这些其实和技术创新无关,只是为它自己产品服务的。总之微软就是你要什么它都会给你。

4,Python,它出名大半靠了 Google,集成平台不错的可选对象,Android 刚发布,或许是一个机会。

5,Perl,太老牌了,学了没坏处,但不流行了,不过还有用。

6,Codefusion,部分吧,非主流。

7,Java,不适合做 Web 开发,说实话它让我很失望的,JVM 越来越大,执行效率还是很慢。JSP 是死定了,应用也越来越少了。

8,Flex,我用得不多,可以接受,如果客户要求我就用。但客户要求相对少,吃带宽。

8,我以前说过,每三个月都会有一次技术革命。竞争那么厉害,所以不要指望会以上那么几种就可以了……

如果你熟练的掌握了上面的那些,那我就泼你一点冷水,这些都只是 Web 开发的皮毛而已。真正的精髓在后面。下一次我要介绍的是工具。善其事必先利其器……

工具篇

第一部分,M$

没有想到会有人顶的说,现在很少说中文,本来语文表达能力就比较差,只要大家能看得懂就好。
以国外的收入水平,购买一年 MSDN 需要 2000-3000 RMB 左右,根据公司规模会有折扣的。其中就包括了 Vista, Visual Studio, Windows/Business Server 2008, SQL Sever 2008, Share point 2007, 总之涉及到开发的都会包括在呢。一般公司都会为每个程序员购买一套,是可以带回家安装的,因为至少每周一天可以在家工作。而且买软件的钱可以用来抵扣收入税。一般程序员都不太在乎这个钱。这样也能在网上及时下在到试用版和补丁。

大致讲一下国外开发的环境结构。一般每个程序员都直接连接到SVN或者其它的Source Control服务器,例如微软的 Team Foundation Server。可以使用open source的客户端,或者服务器,也可以使用online的,很多很多网站提供这样的服务。每天都会把自己的code更新的source control服务器上,然后由Builder服务器做一个daily builder,确保编译成功。如果需要阶段性测试,就会把编译好的deploy到Dev服务器上进行测试,测试通过后,就会放到Production服务器上。这是一般的流程。至于数据库的同步,也有很多软件,例如 Redgate 就是很不错的。

服务器的设置一般都是Lead developer或者administrator的事情,不过自己的机器就要自己照顾了。那么该装写什么软件呢?

第一,浏览器。IE, Firefox, Safari ……这是主流的,其它的如果你想做支持就装。在 IE 上要装 IE Developer Toolbar, Firefox 上要装 web developer, firebug, Greasemonkey等等,只要你觉得用得上的都可以装。

除了 Visual Studio,再装几个数据库服务器,需要开发什么就装什么。Libarary可以不装,又大又慢,就用online的好了,如果有更新,马上就知道。

Visual Studio 装了以后设置很重要,首先把字体给换了,从微软网站上下载Consolas,这是专为程序员设计的,容易看清。颜色根据自己的喜好也要调整,不要太亮,多使用点绿色,对眼睛好。

有的程序员喜欢用 JetBrain的东东,例如 Profiler, Resharp之类的,都不错。可以试一试,如果不喜欢就换回来。毕竟改变习惯很难的。

有一点就是应该熟记所有的快捷键,微软网上有下载A3大小的,打印出来贴在桌子边上。建议逐个逐个的记。我以前从来不用快捷键,后来进了公司以后,那些老外程序员在写代码时从来不会去摸鼠标的,通常一摸鼠标就表示你在“放松”了。后来下订决心把所有的快捷键给记下来了。说到这里,为了健康着想,一定要买一个硅胶的球,时常可以用了舒缓手指的紧张肌肉。如果可以,直接问老婆要一个不用的硅胶Bra也可以,把里面的东西拿出来,手指累的时候握几下。另外清洁剂和3M布要常备,经常擦拭键盘,因为键盘上是细菌最多的。通常程序员很可能一边吃东西一般敲键盘,不要把细菌都吃进去。一个要的键盘很重要,键程不能太短,这样手指敲击是缓冲少,容易受伤。也不能太硬,不然很容易疲劳的。指甲要经常剪,以免受伤。

从新说回软件上来,微软有很多open source的project,所以要经常上codeplex更进度。因为我现在主要从事web 开发,以前做过OpenGL和DX,但后来发现这样职业方向太狭窄了,所以换到web上来。个人见解而已。有一点就是微软的Practise & Pattern一定要经常去看的,几个libarary都是杰出程序员的结晶,虽然源代码可能一时看不懂,但只要会用也就OK了。使用那些libaray将会大大提高生产力。同时也要注意的是,不要什么好就都用上,要根据自己项目的规模来。不然把结构弄得过于复杂会影响开发进度的。Over design 和 Less design都不对,不过这个都是靠经验积累和好的leader引导的,急不来。

一个好的程序员要注意什么?程序员的责任就是按时实现business的要求。是一种服务性质的职业。所以一定要给自己充分的时间。如果你能在一个小时内完成,千万要给自己3个小时。

明天天还要上班,周末继续。


第二篇,MVC

可能我还是比较随性,想到什么就说什么的那种。所以有的地方会伤害到一些朋友的爱好。谁都喜欢自己认可的东西被大众接受。我也一样,这篇东西里的东西仅代表我个人观点,我不是一个很全面的程序员,有些领域我不熟悉,所以也千万不要怪。

这个星期经历了很大的变故,正如网上流传的那个关于 Sequoia Capital 的CEO会议那样,很多公司开始大裁员,我的 Team 就只剩下我和另一位同事了。萧条中……

不过工作还是要工作,虽然对被辞退的朋友,同事感到不平和惋惜,但生活还是要继续的。相对来说,中国的程序员生活应该还算稳定的吧?保佑国内的同行们!

现在微软主推的 MVC framework 已经集成到到 .NET 3.5 SP1,但我不提倡 ASP.NET 程序员马上使用他们,因为这个和传统的事件驱动的 ASP.NET 编程有很大的区别,而且执行效率并不是很理想,至少现在来说。不过这是微软的理念,他认为程序员不应该更多的考虑过多效率问题,可以通过增加服务器解决。其实这也是微软的一个圈套,让他的服务器能更多的销售。

Scott Gu 的Blog上有很多好的tutorial,而且很详细,跟着做就OK了,其实除了 MVC framework 本身,很早就有其它的 framework 实现了 MVC。很可能很多朋友还不清楚 MVC 把,其实它并非是一种语言或者编译器方面的技术,它是一种新的编程理念。M Model, V View, C Controler。决个例子吧。当一个用户的 request 抵达服务器时,服务器会根据 request 的内容分配相关的 model 给它,然后在这个 model 中处理,通过 controler 取得相应结果找出相应的 View 呈现给用户。其实这是更符合人们日常生活的逻辑的。例如要结婚,就要到民政局去,去土地局是办不了的,然后他们相应的工作人员给你办理,保安是不会给你办的对吧,那就是 controler,办理的结果就是你得到了一张结婚证,那就是 View。可能举例不是很贴切。不过这种结构很容易能从现实中抽象出来。对我们来说相对熟悉,也比较容易写结构。但不应该为了MVC而故意把程序写成MVC结构。试具体而定哦!

分享到开心网  分享到校内  收藏到QQ书签    订阅本主題RSS更新  美味书签

shishougang 2009/10/08 01:47:09 2楼 举报

学习了~~~


[+1] [0] [回复]


返回组首页


您可能需要登录以后才能回复!

关于我们 | 诚聘英才 | 著作权声明 | 合作信息 | 广告事务
沪ICP备05001009号
©2003 - 2009 VeryCD.com Some Rights Reserved.