订阅业界RSS CSDN首页> 业界

专访邱俊涛:高级JavaScript程序员代码应结构清晰、模块化良好

发表于2013-05-29 06:16| 次阅读| 来源CSDN| 0 条评论| 作者张勇

摘要:JavaScript是一门广泛用于客户端Web开发的语言,社区之星第25期采访了资深开发者邱俊涛,就JavaScript学习、框架和轻量级开发等方面进行了分享,希望能给初学者以及JavaScript开发者在开发方式上带来新的收获。


在谈到敏捷开发时,邱俊涛认为那些一成不变,或者认为“只有这样才是敏捷,那样不是”的教条想法,都是绝不足取的

邱俊涛,2008年毕业于昆明理工大学计算机科学与技术专业,目前就职于ThoughtWorks。著有《JavaScript核心概念及实践》一书,对动态语言和函数式编程有很高的热情和兴趣。主要开发经历涉及J2EE,Web前端开发,Linux下的网络服务等方面。喜欢开源软件,热爱知识分享,崇尚简洁,轻量的设计和模式。

我是一个开源软件爱好者

CSDN:请和大家介绍下你及从事的工作。

邱俊涛:大家好,我叫邱俊涛,目前就职于ThoughtWorks,是一名软件工程师。如果加上毕业前为期一个月的实习的话,到现在我已经工作了5年了。在加入ThoughtWorks之前,我曾在另外两家IT公司工作过,涉及过的技术主要包括J2EE、Web前端和Linux下的服务开发等方面。

ThoughtWorks,工作主要内容仍然是开发,但是几乎每个项目的技术栈可能都会有所不同,因此可以尝试到各种框架,各种语言,以及和各种牛人一起开发和学习,这些都是非常有趣的体验。

CSDN:你首次接触计算机是什么时候?那个时候很多人都觉得解脱了,并开始痴迷于游戏,你为何会选择去钻研电脑技术?

邱俊涛:我首次接触计算机程序开发是在2004年的夏天(接触计算机是在2001年,但是真正做出一个可以运行的程序,则是在2004年),当时高中毕业,在等待录取通知书的期间,我去了石家庄找我的兄长邱俊锋。

邱俊峰当时也是在做软件开发,而且一度痴迷UNIX,他在他们公司的一台废弃已久且没有显示器的机器上安装了FreeBSD,然后把我安排在他同事一台闲置的机器上,这样我可以通过SSH登陆到那台FreeBSD服务器上。在他的指导下,我用FreeBSD下的开发工具cc/ld/make等编写出了第一个可以运行的程序——比打印“Hello,world”稍微“高级”一点——它可以计算两个数字的和。正是这次经历,使我对于基于命令行的、简洁的开发方式产生了浓厚的兴趣。

我觉得这种对于计算机软件的兴趣,或者说痴迷,和其他同学对于旅游、运动和打游戏等的痴迷并无二致,当然也无高下之分。只不过我正好找到了一个自己既感兴趣,又正好看起来不是那么“不务正业”的方向而已。

CSDN:能聊下你为什么喜爱在Linux以及Linux命令行环境做开发,它哪里吸引了你?

邱俊涛:首先,作为一个开源软件的爱好者,Linux本身就是一个最大的开源软件,而且运行于其上的绝大多数软件都是以开源的形式出现,这些事实无疑对我有很大的吸引力。相对于图形界面,命令行展现出的强大的可定制性和灵活性,可以极大的提高开发效率,命令行对于开发者有一种天然的吸引力:本质上来讲,它可以把命令理解为函数,命令的选项理解为参数,管道为函数调用链,这样的话,在命令行工作本身就变成了编程!

Linux下有许多很顺手的小工具可以帮助程序员完成日常的开发工作,以及一些服务运行状况的监控等。另外,当发现一些重复的工作时,可以编写一个脚本将命令组合在一起,然后再交给crontab来自动运行,可以节省程序员很多时间。

CSDN:毕业后你从事的第一份工作是什么?据说这份工作主要和Java相关,后来为什么会去学习JavaScript?当初做选择主要是基于什么考虑的?

邱俊涛:2008年,我大学毕业,在一家做报表产品的外企工作(Jinfonet),公司中大部分团队都使用Java开发,而我们组主要工作为基于Web报表的展现。也就是在这时候,我开始认真学习JavaScript,并真正把它当做一门编程语言来看待。几个月后,当我理清了JavaScript中众多容易被混淆的概念之时,我觉得应该把我的理解分享出来,于是就有了《JavaScript核心概念及实践》的前身,这个系列做出后发表在ITeye(当时还叫JavaEye),并且收到了很多鼓励和帮助。

坚持,让我在JavaScript路上越走越远

CSDN:工作后很多程序员有这样一种情况:对现状不满足,却又萎靡不振懒得改变,像你有没有这种情况?会去找一些项目来满足自己的兴趣和挑战欲望吗?平时都会干嘛?

邱俊涛:非常好的问题,我觉得是这样的:当你每天早上起床要去公司的时候,如果你内心沉重,打不起精神去工作;而到下班的时候,你恨不得立刻离开公司;在工作之余,你永远不希望同事或者其他人问你关于工作的任何事情;那你应该意识到:是时候做出改变了。事实上,改变不一定总是好的,但是如果工作无法让你感到快乐,而你又无力与这种现状斗争,那就需要改变了,套用一句老话:失去的只是枷锁,而得到的是整个世界

我自己也经历过这样一段时期:在第一家公司出来之后,我去了一个很大的公司,但是每天的工作内容非常无聊,毫无挑战,连续一周我每天这样问自己:“现在这种方式是我想要的吗?”,在得到了七次否定的回答之后,我就离职去另外一家公司。现在回想,那是我当年或者是我此生做的最明智的决策之一。这个经历可能是一个极端,可能大部分公司不会让人感觉到那么糟糕,可能一直处于“还好”或者“还行”的尴尬境地,这事实上也是一种非常危险的处境

比如我曾经呆过的一家公司,这是一家“还好”的公司,薪水不算丰厚,但是也不至于让员工“冻馁其妻子”,偶尔会出差几周,偶尔会加班,但一张一弛,不会让人觉得无法忍受。对于这种情况,我在工作之余通过不断的学习来充实自己,比如参加一些开源的项目,研究学习其他的技术,比如动态语言,并尝试在工作中使用,通过博客看一看别的程序员的工作方式、工作内容等。

如果你对现状不满,而又看不到立刻改变的方向,那么就应该去不断的学习。在学习到了新技术或者新理念之后,可以尝试在现有的环境中使用并推广。如果足够幸运,那么在得到很多认同感之后,可能会改善这种“萎靡不振”的状态;而如果你发现与环境格格不入且无法改变,那就可以尝试换一个环境,无论如何你可能觉得环境会很不舒适,但是不要自己放弃自己。

CSDN:首先恭喜你新书《JavaScript核心概念及实践》这个月出版,据说这本书和你在ITeye写博有关,能不能和大家回顾下这段经历?另外把博文整理成书有没有遇到什么困难?这段经历给你带来哪些收获和好习惯?此外新书为什么用杜虎符作为封面?

邱俊涛:谢谢!这本书最早发表在ITeye上,事实上是先有一些草稿后才逐篇发表的,但是每一章在发表之前都很粗糙,在发表之前都会进行很多的改动(以免有明显的错误误导初学者等),这样事实上也是一种潜在的促进。而几乎每一篇都有大量的留言,也有很多关注,没有这些读者的支持,这本书可能根本无法坚持到最后,在这里也郑重的感谢一下ITeye这个平台以及这个平台上的那么多热心读者。

说到困难,我觉得坚持本身是最大的困难,如果留意一下这个系列发表时间表的话你可能会发现,某些章节之间的跨度较大,而后来甚至有半年都没有更新。一方面是由于部分内容本身正在修改中,另一方面也是在纠结于继续写下去还是到此为止,很幸运最后终于坚持了下来,这样给自己的信心有很大的正面作用。也就是说,如果我写第二本书的话,最终能够写完的概率会增大一些。

另一个比较大的感受是:尽量将自己学习到的东西分享出去,一方面可以锻炼总结能力和表达能力,另一方面,当你可以很轻松的将一个复杂的技术描述清楚,并使得读者/听众也能明白的时候,那才是你真正掌握了该知识在做到这点之前,需要查阅很多资料,也需要自己动手去验证一些想法,但整个过程的收益会非常大。

虎符是古代用于调兵遣将的凭证,寓意JavaScript小巧但是功能强大。

0
0