转一个不错的文章,该怎么解决
转一个不错的文章
来自:http://blog.joycode.com/haacked/archive/2009/05/14/115575.aspx
我是一个网络应用程序员
【原文地址】I’m a Web Developer At Heart http://www.haacked.com/archive/2009/05/07/18616.aspx
【原文发表日期】 Mar 7, 2009
曾经有一位年轻的程序员写email问我说如何能成为一个成功的开发人员。我一开始是这样回答的:
我不清楚.你为什么不去问一个成功的开发人员呢?
但而后我想,这样的回答其实仅仅是机巧有余,不是么?我这么老虚伪地故作谦逊是和谁在故弄玄虚呢?毕竟,“clever hack”这个概念就是以我来命名的(译注:注意Phil Haack的姓氏),而显然发明这个词汇的人还及不上我1/10的魅力,这点从他创造这个词组的时候故意地漏掉了一个字母a这件事上也更加可见一斑。当然,这个,还只是发生在我发明了Test-Driven Design,因特网,以及大家所呼吸的空气之前的一些小打小闹。
(对那些幽默理解不能的朋友们,请注意,我并没有真正发明Test-Drive Design)
于是我开始仔细考虑这个问题并对自己说:“假设我是一个成功的软件程序员,那我应该会做哪些事来达到那个目标呢?”然后当我开始思索各种学习提高的方法时,有一件事是显而易见的,那就是参与一些开源软件的项目。
如果说我的职业生涯中有一件事年复一年地使我获益良多,那就是我参与了很多开源的项目。参与开源项目使我有机会广泛地接触各类的问题和技术,而这些问题和技术在日常的工作中我通常不会面对。
在我进一步进行探讨前,我必须声明这个帖子不是我用来回答年轻的程序员们的问题的帖子。不,那样的帖子还是等其他的场合吧。而且我也许会起个陈词滥调又莫测高深的名字比如:“给年轻的开发者们的一些意见”。我的意思是,这样的题目是不是听上去真的既无聊又自大?我对着镜子严肃地说:“拜托你还是冷静点吧。”不过镜子里的那个家伙也许最终还是会这么来一篇的,没办法…
只是,这篇不是那样的帖子。相反,这篇与好为人师的话题很不相干,因为我很擅长一件事,那就是跑题。
在聊到关于开源软件的话题时,我很自然地想到了我参与的第一个开源项目 – RSS Bandit (w00t w00t!) RSS Bandit是一个由Dare Obasanjo和Torsten Rendelmann开发的一流的RSS聚合软件。我那时候才刚刚开始接触博客之类的概念,然后一下子就被Dare的直爽而又有深度的博客以及他的可爱的孩子,RSS Bandit(他现在有一个真正的孩子了,祝贺你,老兄)吸引住了。
那时候我还没怎么做过Windows客户端的程序开发。我主要是用老版本的ASP以及早期的ASP.NET在开发网络应用。我于是想通过RSS Bandit来磨练下自己并顺便学习一下Winform的开发。Winform这种状态持续化(stateful)的编程模型让我觉得很新鲜(译注:因为那时基于HTTP的网络应用基本都是stateless的,当然后来有了ViewState等等的技术)。这将是很有趣的一个尝试。
很多新人程序员接触一个开源项目时都梦想着自己很立马开发出引人注目令人惊奇的新功能,由此博得群众的欢呼喝彩,总统因此以你来命名一个国定假日,而且你所有的敌人都立刻自惭形秽并把他们的孩子改名跟你姓了。
但一个真正好的贡献者会收起他/她的骄傲感然后扎扎实实地从一些小事,甚至是琐事开始做起。比如很多开源项目都很需要很好的帮助文档,一部分原因也是因为最吸引眼球的是开发那些新的功能于是没人有兴趣来写那些个劳什子的文档了。
我就是这么开始的。我先开始写了一篇文章:getting started with RSS Bandit. Dare注意到了,于是问我愿不愿意参与完善文档的建设,我欣然同意了。他给了我提交的权限(我想我应该是Dare和Torsten后第三个有提交权限的人),于是我很努力地编写各式的文档。事实上,很多我当年写的内容仍然在那里,比如这个我当年用过的巨自恋的程序截图。; )
慢慢地,我得到了越来越多的信任,并被允许做一些bug的修正和一些小的功能块。我负责的第一个主要的功能是实现可配置的键盘快捷键,还挺不错。
(小小逸事一则。我和这两位在RSS Bandit上合作了多年,但却从没有亲自面会过Dare一直到刚刚在Las Vegas举行的今年度的Mix大会上。真的!而我早先在德国于Torsten见过面。)
(译注:我和Phil不同,两年前加入微软的时候,我就和Dare有过几面之缘,也和他的group合作过不短的时间。不过我一直都没有意识到他就是我用过的第一个聚合阅读器的作者,直到看到Phil的这篇文章,呵呵)
我那时真的很喜欢RSS Bandit方面的工作,那几乎成了我的一个爱好,占去了我不多的业余时间里的剩余空闲。我想你可以说RSS Bandit的工作使我免受了洛杉矶街头流氓团伙的不良影响,当然我也没试过去加入那些团伙,而估计他们也不会要我。不过渐渐地,我意识到了一些事。尽管起初的那种学习了解状态持续化编程模型的兴奋感犹在眼前……
我意识到我并不喜欢这种模型。
事实上,我发现这个模式很陌生也很难掌握。我总是遇到一些奇怪的使我脑筋打结的怪问题,比如用户单击了一个按钮后,此按钮仍然保留了它之前的状态。那时我就会想,“为什么我需要手动清除按钮的状态呢?为什么在用户进行一个动作之后这个状态不自行消失呢?”我开始意识到我的问题在于我的思维一直还是遁寻着网络应用程序员的模式,而不是客户端应用程序员的模式。
就与一个客户端程序开发者转向网络程序开发时感觉相似(比如网络程序中,因为状态不是持续化(stateless)的,所以你必须在响应每个请求后都重设所有控件的状态),一个此前专注于网络程序的开发者会发现客户端程序的开发是一件很费脑筋的事,因为所有的系统状态都像那个酒吧里最漂亮的小妞身边的那个跟屁虫一样 ---- 他就是赖在那里不从你眼前消失。
于是我才意识到,从骨子里来说,我其实是一个网络应用程序员并且我情愿Make web, not war(译注:这个我实在不想翻译,译了也没意思,呵呵,太搞了,你自己看video吧)。所以大概就是在那个时候,我开始了Subtext项目,因为我内心里还是更希望做一个网络的应用。最终,我不再使用RSS Bandit,而是转向了在线的聚合阅读工具,就是Google Reader(有点讽刺,呵呵),而其中最主要的原因,就是在线的阅读工具使我可以随时随地看到我订阅的内容,并且一直保持最近更新的状态,而我也不需要在每一台新的电脑上进行同步或者安装一个程序。
所以说我虽然更喜欢(或者说也许是更习惯于)网络应用的状态非持续化的编程模式,我同时也为网络应用本身的状态持续化的特性所吸引,也即,我所拥有的数据的状态不是绑定在任何一台特定的终端上的而是存储在一个无所不在的网络平台上,而我又可以随时随地地使用这个平台(当然,网络应用也有它自身的问题和课题,比如网络服务当机的问题)
与此同时,我也会不时地抽空关心一下RSS Bandit的最新进展。它确实也有很多Google Reader所没有的很酷的功能,比如它可以从聚合器客户端直接通过Comment API来发表评论,还有它可以订阅需要身份验证的聚合。而且我觉得Dare正在努力把RSS Bandit引向一个全新的更有竞争力的方向。
所有我说的这些其实只是想说明,如果你想成为一个更好的程序员,那就找一个你感兴趣的开源项目,然后参与进去(比如这个,:) ,因为也许它就会引导你发现自己的本质是何种类型的开发者。就如我所最终了然的,我从内心深处是一个网络应用的程序员。
------解决方案--------------------
纯接分,文儿太长,而且是设想式的...看了还没一段,看不下去了 - -
------解决方案--------------------
------解决方案--------------------
我是有时间才看
先顶着.
现在眼睛快睁不开了.
------解决方案--------------------
来自:http://blog.joycode.com/haacked/archive/2009/05/14/115575.aspx
我是一个网络应用程序员
【原文地址】I’m a Web Developer At Heart http://www.haacked.com/archive/2009/05/07/18616.aspx
【原文发表日期】 Mar 7, 2009
曾经有一位年轻的程序员写email问我说如何能成为一个成功的开发人员。我一开始是这样回答的:
我不清楚.你为什么不去问一个成功的开发人员呢?
但而后我想,这样的回答其实仅仅是机巧有余,不是么?我这么老虚伪地故作谦逊是和谁在故弄玄虚呢?毕竟,“clever hack”这个概念就是以我来命名的(译注:注意Phil Haack的姓氏),而显然发明这个词汇的人还及不上我1/10的魅力,这点从他创造这个词组的时候故意地漏掉了一个字母a这件事上也更加可见一斑。当然,这个,还只是发生在我发明了Test-Driven Design,因特网,以及大家所呼吸的空气之前的一些小打小闹。
(对那些幽默理解不能的朋友们,请注意,我并没有真正发明Test-Drive Design)
于是我开始仔细考虑这个问题并对自己说:“假设我是一个成功的软件程序员,那我应该会做哪些事来达到那个目标呢?”然后当我开始思索各种学习提高的方法时,有一件事是显而易见的,那就是参与一些开源软件的项目。
如果说我的职业生涯中有一件事年复一年地使我获益良多,那就是我参与了很多开源的项目。参与开源项目使我有机会广泛地接触各类的问题和技术,而这些问题和技术在日常的工作中我通常不会面对。
在我进一步进行探讨前,我必须声明这个帖子不是我用来回答年轻的程序员们的问题的帖子。不,那样的帖子还是等其他的场合吧。而且我也许会起个陈词滥调又莫测高深的名字比如:“给年轻的开发者们的一些意见”。我的意思是,这样的题目是不是听上去真的既无聊又自大?我对着镜子严肃地说:“拜托你还是冷静点吧。”不过镜子里的那个家伙也许最终还是会这么来一篇的,没办法…
只是,这篇不是那样的帖子。相反,这篇与好为人师的话题很不相干,因为我很擅长一件事,那就是跑题。
在聊到关于开源软件的话题时,我很自然地想到了我参与的第一个开源项目 – RSS Bandit (w00t w00t!) RSS Bandit是一个由Dare Obasanjo和Torsten Rendelmann开发的一流的RSS聚合软件。我那时候才刚刚开始接触博客之类的概念,然后一下子就被Dare的直爽而又有深度的博客以及他的可爱的孩子,RSS Bandit(他现在有一个真正的孩子了,祝贺你,老兄)吸引住了。
那时候我还没怎么做过Windows客户端的程序开发。我主要是用老版本的ASP以及早期的ASP.NET在开发网络应用。我于是想通过RSS Bandit来磨练下自己并顺便学习一下Winform的开发。Winform这种状态持续化(stateful)的编程模型让我觉得很新鲜(译注:因为那时基于HTTP的网络应用基本都是stateless的,当然后来有了ViewState等等的技术)。这将是很有趣的一个尝试。
很多新人程序员接触一个开源项目时都梦想着自己很立马开发出引人注目令人惊奇的新功能,由此博得群众的欢呼喝彩,总统因此以你来命名一个国定假日,而且你所有的敌人都立刻自惭形秽并把他们的孩子改名跟你姓了。
但一个真正好的贡献者会收起他/她的骄傲感然后扎扎实实地从一些小事,甚至是琐事开始做起。比如很多开源项目都很需要很好的帮助文档,一部分原因也是因为最吸引眼球的是开发那些新的功能于是没人有兴趣来写那些个劳什子的文档了。
我就是这么开始的。我先开始写了一篇文章:getting started with RSS Bandit. Dare注意到了,于是问我愿不愿意参与完善文档的建设,我欣然同意了。他给了我提交的权限(我想我应该是Dare和Torsten后第三个有提交权限的人),于是我很努力地编写各式的文档。事实上,很多我当年写的内容仍然在那里,比如这个我当年用过的巨自恋的程序截图。; )
慢慢地,我得到了越来越多的信任,并被允许做一些bug的修正和一些小的功能块。我负责的第一个主要的功能是实现可配置的键盘快捷键,还挺不错。
(小小逸事一则。我和这两位在RSS Bandit上合作了多年,但却从没有亲自面会过Dare一直到刚刚在Las Vegas举行的今年度的Mix大会上。真的!而我早先在德国于Torsten见过面。)
(译注:我和Phil不同,两年前加入微软的时候,我就和Dare有过几面之缘,也和他的group合作过不短的时间。不过我一直都没有意识到他就是我用过的第一个聚合阅读器的作者,直到看到Phil的这篇文章,呵呵)
我那时真的很喜欢RSS Bandit方面的工作,那几乎成了我的一个爱好,占去了我不多的业余时间里的剩余空闲。我想你可以说RSS Bandit的工作使我免受了洛杉矶街头流氓团伙的不良影响,当然我也没试过去加入那些团伙,而估计他们也不会要我。不过渐渐地,我意识到了一些事。尽管起初的那种学习了解状态持续化编程模型的兴奋感犹在眼前……
我意识到我并不喜欢这种模型。
事实上,我发现这个模式很陌生也很难掌握。我总是遇到一些奇怪的使我脑筋打结的怪问题,比如用户单击了一个按钮后,此按钮仍然保留了它之前的状态。那时我就会想,“为什么我需要手动清除按钮的状态呢?为什么在用户进行一个动作之后这个状态不自行消失呢?”我开始意识到我的问题在于我的思维一直还是遁寻着网络应用程序员的模式,而不是客户端应用程序员的模式。
就与一个客户端程序开发者转向网络程序开发时感觉相似(比如网络程序中,因为状态不是持续化(stateless)的,所以你必须在响应每个请求后都重设所有控件的状态),一个此前专注于网络程序的开发者会发现客户端程序的开发是一件很费脑筋的事,因为所有的系统状态都像那个酒吧里最漂亮的小妞身边的那个跟屁虫一样 ---- 他就是赖在那里不从你眼前消失。
于是我才意识到,从骨子里来说,我其实是一个网络应用程序员并且我情愿Make web, not war(译注:这个我实在不想翻译,译了也没意思,呵呵,太搞了,你自己看video吧)。所以大概就是在那个时候,我开始了Subtext项目,因为我内心里还是更希望做一个网络的应用。最终,我不再使用RSS Bandit,而是转向了在线的聚合阅读工具,就是Google Reader(有点讽刺,呵呵),而其中最主要的原因,就是在线的阅读工具使我可以随时随地看到我订阅的内容,并且一直保持最近更新的状态,而我也不需要在每一台新的电脑上进行同步或者安装一个程序。
所以说我虽然更喜欢(或者说也许是更习惯于)网络应用的状态非持续化的编程模式,我同时也为网络应用本身的状态持续化的特性所吸引,也即,我所拥有的数据的状态不是绑定在任何一台特定的终端上的而是存储在一个无所不在的网络平台上,而我又可以随时随地地使用这个平台(当然,网络应用也有它自身的问题和课题,比如网络服务当机的问题)
与此同时,我也会不时地抽空关心一下RSS Bandit的最新进展。它确实也有很多Google Reader所没有的很酷的功能,比如它可以从聚合器客户端直接通过Comment API来发表评论,还有它可以订阅需要身份验证的聚合。而且我觉得Dare正在努力把RSS Bandit引向一个全新的更有竞争力的方向。
所有我说的这些其实只是想说明,如果你想成为一个更好的程序员,那就找一个你感兴趣的开源项目,然后参与进去(比如这个,:) ,因为也许它就会引导你发现自己的本质是何种类型的开发者。就如我所最终了然的,我从内心深处是一个网络应用的程序员。
------解决方案--------------------
纯接分,文儿太长,而且是设想式的...看了还没一段,看不下去了 - -
------解决方案--------------------
------解决方案--------------------
我是有时间才看
先顶着.
现在眼睛快睁不开了.
------解决方案--------------------