2005年11月20日

Since it is to slow to access this website, I’ve change my blog to MSN spaces.

The URL is http://spaces.msn.com/members/mounttai9.

Thanks for all people who have paid attention here.

2005年10月27日

作者:Sam Brodkin


翻译:tetsu


版权声明:可以任意转载,转载时请务必以超链接形式标明文章原始出处和作者信息及本声明
作者:
Sam Brodkin ;tetsu
原文地址:
http://www.javaworld.com/javaworld/jw-08-2005/jw-0829-eclipse.html
中文地址:
http://www.matrix.org.cn/resource/article/43/43844_Eclipse_Hot_Key.html
关键词: Eclipse Hot Key


概要

Eclipse IDE 变得如此热门,以至于出现在许多工作简历中。但是,也正因为它的功能繁多,使得难于入手了。在这篇文章中,Sam Brodkin 分享了他最常用的一些Eclipse功能。他也提到了那些会让你的手指动的飞快的热键组合。在工作的时候,人们会怀疑你是在打电玩。(1,200字;2005年8月29日)

Eclipse最妙的地方是它的功能是如此的丰富。如果你找不到某项功能,要么是你没有好好的去找,要么有一个插件可以实现它。Eclipse最糟的地方也是它的功能如此的丰富。拥挤的工具条,臃肿的菜单,以及配置对话框都让我想起了拉比林特斯迷宫(译者注:Minotau’s labyrinth,希腊神户中的人身牛头怪,住在Labyrinth迷宫中,吃人们供奉的童男童女,最后被Theseus杀死)(尽管配置对话框在Eclipse3.1中已经好了很多)。甚至是有经验的Eclipse程序员也是慢吞吞,笨手笨脚的。我观察过无数的同事,当试图在Eclipse的navigation面板里找一个类的时候,不假思索的按下“Ctrl + Shift + T”(打开型别(open type))。其实,只要有意识的投入一点点时间,你也会不在笨手笨脚的,而成为热键高手。

精通Eclipse不单提高了你的效率,(我知道,按小时赚钱的签约人更喜欢文本编辑器),对你的求职简历也有好处。既然Eclipse已经越来越多的出现在Java工作说明上,那么在你的求职简历上也绝对是个好词。我把它放在我的个人简历上,就在POJO(简单初始Java对象)和POJI(简单初始Java接口)的中间。越来越多的公司转向Eclipse,因为它免费,而且为大多数程序员所接受。(除了那些少有的IntelliJ和Emacs的崇拜者)

因此,你的简历上并不都是帮助你提高编程效率的大话,在本文中,我将给你几条Eclipse高效的建议。注意:如果你是个在寻找初学者教程的新手,那么请参看资源部分。

Eclipse的快捷键组合功能

使用Eclipse的快捷键组合功能,让你看起来像是在打电玩。特别是让人想起《真人快打》(Mortal Combat)的感觉。要成为《真人快打》的高手,你必须记住大量的按键顺序。比如,要使出Sub-Zero Skeleton Rip,你必须依次按下和X键。这里的控制杆就是Ctrl,Alt,Shift,字母键,数字键和功能键的组合。

让我们按照使用频率来看看我最爱用的一些热键组合。(注:以下内容在Eclipse3.02及一上版本通过测试)

1. Control-Shift-T: 打开类型(Open type)。如果你不是有意磨洋工,还是忘记通过源码树(source tree)打开的方式吧。

2. Control-Shift-R: 打开资源(不只是用来寻找Java文件)。小提示:利用Navigator视图的黄色双向箭头按钮让你的编辑窗口和导航器相关联。这会让你打开的文件对应显示在导航器的层级结构中,这样便于组织信息。如果这影响了速度,就关掉它。

3. F3: 打开申明(Open declaration)。或者,利用Declaration Tab(在Java视图模式下,选择Windows –> Show View — > Declaration)。当你选中代码中的一个方法,然后按这个按键,它会把整个方法在申明方框里显示出来。

4. Alt-left arrow: 在导航历史记录(Navigation History)中后退。就像Web浏览器的后退按钮一样,在利用F3跳转之后,特别有用。(用来返回原先编译的地方)

5. Alt-right arrow: 导航历史记录中向前。

6. Control-Q: 回到最后依次编辑的地方。这个快捷键也是当你在代码中跳转后用的。特别是当你钻的过深,忘记你最初在做什么的时候。

7. Control-Shift-G: 在workspace中搜索引用(reference)。这是重构的前提。对于方法,这个热键的作用和F3恰好相反。它使你在方法的栈中,向上找出一个方法的所有调用者。一个与此相关的功能是开启“标记”功能(occurrence marking) 。选择Windows->Preferences->Java-> Editor-> Mark Occurrences,勾选选项。这时,当你单击一个元素的时候,代码中所有该元素存在的地方都会被高亮显示。我个人只使用“标记本地变量”(Mark Local Variables)。注意:太多的高亮显示会拖慢Eclipse。

8. Control-Shift-F: 根据代码风格设定重新格式化代码。我们的团队有统一的代码格式,我们把它放在我们的wiki上。要这么做,我们打开Eclipse,选择WindowPreferencesJavaCode Style,然后设置Code Formatter,Code Style和Organize Imports。利用导出(Export)功能来生成配置文件。我们把这些配置文件放在wiki上,然后团队里的每个人都导入到自己的Eclipse中。

9. Control-O: 快速概要(quick outline)。通过这个快捷键,你可以迅速的跳到一个方法或者属性,只需要输入名字的头几个字母。

10. Control-/: 对一行注释或取消注释。对于多行也同样适用。

11. Control-Alt-down arrow: 复制高亮显示的一行或多行。

12. Alt-down arrow: 将一行或多行向下移动。Alt-up arrow会向上移动。

其他的热键在菜单里有。你可以通过按下Control-Shift-L(从3.1版本开始),看到所有快捷键的列表。按下Control-Shift-L两次,会显示热键对话框(Keys Preferences dialog),你可以在这里自己设置热键。我欢迎你在Talkback部分发表你的Eclipse提示。

其他的Eclipse窍门

我总结了几个相关的小窍门:

锁定命令行窗口:在命令行视图中(Window  Show View  Other  Basic  Console),试试看用滚动锁定按钮来锁定控制台输出不要滚屏。

使用Ant视图:在我的Java或Debug模式下,我喜欢显示出Ant视图,这样我就可以迅速的运行Ant任务。通过Window  Show View  Other  Ant可以找到该视图。把Ant视图放在屏幕的一角, 通过“添加编译文件(Add Buildfiles)”按钮来添加build.xml文件。在3.1版本中,甚至支持Ant调试脚本语言。

自动遍历一个集合:for + Control-Space: 如果你还不知道,那么你应该记住Control-Space是自动完成功能。在Eclipse中,你还可以自动完成结构。在一个数组或集合范围内,试试看输入“for”然后按下Control-Space键。Eclipse会问你你想要遍历哪一个集合然后自动完成循环代码。

使用分级布局:在包浏览视图(Package Explorer view)中默认的布局(扁平式)方式让我困惑,它把包的全名显示在导航树(navigation tree)中。我更喜欢我源码的包和文件系统视图,在Eclipse中叫做分级布局(Hierarchical Layout)。要切换到这种模式,点击包浏览视图中向下的按钮,选择布局(Layout),然后选择分级(Hierarchial)。

一次显示多个文件:你可以一次浏览多个文件。把不在激活状态的编辑窗口拖到激活窗口的底部或侧边的滚动条上,就可以打开该编辑窗口。这是我能描述该窍门的最好方式了。

同时打开两个Eclipse:要将改动从一个CVS分支上合并到另外一个上,我喜欢通过同时打开两个工作目录(Workspace)不同Eclipse来实现。这样我可以通过比较CVS上的最新版本看到所有的变化(右键单击工程,然后选择Compare with  Lastest from HEAD)然后把每一个变化都合并到另外一个CVS分支上。启动多个Eclipse的最简单的方法是利用Eclipse Launcher。

Implementors插件:安装一个能够跳到一个接口的实现的插件。如果你是个dependency injection 粉丝,或者正在基于编写优良的接口工作,那么你需要一个这样的插件来加速代码导航。 你可以在SourceForge找到这个插件。

就像Modest Mouse乐队的歌曲“Out of Gas”唱的,“意见就像小猫,我已经送给别人”。这些是我的Eclipse小猫,希望你能给它找一个温暖的家。

关于作者
Sam Brodkin使一个自由Java技术者,住在荷兰的Rotterdam。Brodkin’s的正式职业开始于8年前的Sun公司。他工作内容是Sun Java System Web Server。他目前正致力J2EE软件开发,特别是可维护性和漂亮的代码。Brodkin是一个IntelliJ的狂热者很多年了,但是却被迫转到Eclipse来开发现在的项目。虽然从没被抓到过,不过他还是被人怀疑在上班的时候玩电子游戏。

2005年10月12日

今天早晨在sharp那里收到了小康的邮件,说我们的碧莲就要开始,征集我们三个人的信息,一时很不习惯。

我们的碧莲了。。进清华三年,一直习惯了坐在台下看毕业班学生演绎他们的离合悲欢,却未料到在年复一年的哀叹秋风中,岁月流逝,年华变老,转瞬也到我们说再见的年份。

三年的大学生活教给我很多东西,在我的人生履历上,注定是浓墨重彩,意象深刻的一笔;我不是一个甘于沉寂的人,在学校的三年,我每一天都选择做新的尝试,无数的日子在新鲜体验中度过,虽然最后不在学校推研了,我想我已经收获良多。

唯一的遗憾是:身处异地,不能亲身经历岁末的学生节和碧莲,不能和相处三年的兄弟姐妹们一起,为属于我们的“不眠之夜”而哭,而笑,而高歌,而欢呼。。。想你们!

2005年10月09日

欢迎访问Google中国招聘网站。正如我在《Google和中国――追随我心的选择》中写到的,Google是一个“令我震撼”的公司,因为它对技术创新的激情,对诚信善意的执著,对公众利益的关注,和对自由透明的企业文化的追求。今天的中国,同样让我无比振奋,不仅仅因为它繁荣的经济、活跃的市场,更因为成千上万充满智慧、理想、活力的中国青年。所以,“我选择了Google。我选择了中国。”

我在Google有两个目标: 一是使高深的技术变成任何人都能使用的产品,服务中国的大众,造福整个社会;二是培养最优秀的中国学生,提供环境让他们发挥自己的潜力。我们会致力组建一个卓越创新、真诚互助的团队,构建一个真正的“计算机科学创新实践者的乐园”。以创新产品研发为使命的Google中国工程研究院,将让我们的发明创造直接在互联网上“拿世界当实验室”。

我们要让每一位员工有机会“做最好的自己”。我们将会协助每个员工量身设计职业规划与培养计划;给每个员工安排资深导师和美国总部学习机会;让大家在技术,情商,语言、沟通、组织能力等各个方面得到综合全面的培训与锻炼;还将鼓励大家自由学习――作为Google的传统,会让每个员工可以用 20%的时间来做自己喜欢的事情。我将会亲自指导第一批应届毕业的新员工,从他们中培养出几十位世界一流的工程师和计算机科学家。

Google的哲学是“never settle for the best”,就是“只有更好”。在Google中国,“最好”只是另一个开始,创新与梦想没有极限。欢迎你申请加入我们!

很多在校的大学同学问我们:“我今年还没有到毕业班,但我很想知道,如果将来我想申请Google中国工程研究院,现在应该如何让自己做好准备?”下面是Google中国总裁李开复博士和其他一些Google资深的华人工程师给广大同学的建议。

(1)练内功。不要只花功夫学习各种流行的编程语言和工具,以及一些公司招聘广告上要求的科目。要把数据结构、算法、数据库、操作系统原理、计算机体系结构、计算机网络,离散数学等基础课程学好。不妨试试Donald Knuth的Art of Computer Programming里的题目,如果你能够解决其中的大部分题目,就说明你在算法方面的功力不错了。

(2)多实战。通过编程的实战积累经验、内化知识。建议大家争取在大学四年中积累编写十万行代码的经验。

(3)求实干。不要轻视任何的实际工作,比如一些看似简单的编码或测试。要不懈追求对细节一丝不苟的实干作风与职业精神。

(4)不放弃数学。数学是思维的体操,数学无处不在。尤其当你对一些“数学密集型”的领域有兴趣,例如视频、图像处理等等,你需要使它成为你的利器。

(5)培养团队精神,学会与人合作。

(6)激励创新意识,不为书本和权威所约束。

(7)有策略地“打工”。在不影响学业的前提下,寻找真正有意义的暑期工作或兼职。去找一个重视代码的公司,在一个好的“老板”指导下完成真正会被用户使用的程序。不要急于去一个要你做“头”而独挡一面的地方,因为向别人学习,是你的目的。打工和找工作一样,“不要只看待遇和职衔,要挑一个你能够学习的环境,一个愿意培养员工的企业,一个重视你的专业的公司,最后,要挑一个好老板。”

2005年10月08日

English oral introduction:
should from different kinds of topics. mainly about life, study, learning environment & people here.

first paragraph (about life here):
    I think life is convinient & comfortable here. We are treated specially here. For example, as the indian food is not very good for us chinese people, Infosys hires a chinese cook who has been working in HongKong as a cook, So every day, we can have meals in Chinese-Indian style. We have every meal for free. We are arranged to share a double room with an indian each, there are many useful facilities in the room, for example, the air-conditioner, the washing room. Bottles of pure water are also provided  for us chinese people for free. There is also a building called ECC in the campus, that means Employee Care Center. People can relax themselves inside. There are lots of facilities for exercising, such as basketball, swimming pool, table-tennis, badmiton, snooker, bowling. I prefer table-tennis most, and I feel proud to say I’m the one who plays table-tennis in our chinese batch. In the ECC building, all facilities are free for us chinese people except bowling, which is another thing in the campus not for free to us, and the other is the supermarket.

second paragraph (about study here):
    Talking about my study here. It’s efficient learning here. I think. We have every course for a very short time, but to some depth, of coz. For example, we learned most of the relationship Database Management System in about 4 days, covering the area of E-R model, structured-query-language as well as some basic concepts of Oracle series, we are going to take a special course mainly on Oracle series some days later. Up to now, we have had basic programming skill training, RDBMS section, introduction to web technologies, user-interface design, unix, javascript. We are also going to have the oracle section, jave programming section & j2EE section, there will also be a final project for us, in which we are asked to using J2EE structure to build a bank system. All these things I am learning here help me think a lot. For instance, I began to think some relationship between different materials in computer science area. I found that when there is something comman in a certain area, people always get the same thing and form it another concept, which is more general. We already learn Cascading Style Sheet in the html section, we also know the Entity-relationship model in RDBMS section, both of which are very general idea in a certain area. From this kind of view, we can also see that the whole computer science area is somewhat the same.

third paragraph (about learning environment here):
     I just talked about learning here is very efficient, I’m going to talk about the learning environment here more. We are going to have totally 3 months training & 4 months internship here. The training contain a sequency of courses, each of the courses last 1-6 days, covering most material of the J2EE structure, from system support, for example, unix system, to the actural use, or apperance of this technologies, I mean the web design. We have exercises after each class, of course, some of which are a little difficult, I should always stay late in the lab. Every body here do the same thing, of course. So even at about 11:00, you can see lots of people inside the lab programming or viewing the material taught in the day time. It is tense here, isn’t it? But it is helpful. Sometimes I think, after the busy here in Infosys, I can sure overcome any difficulty I encounter in my future, both in my study, or some other area.


fourth paragraph 

    omitted…

2005年10月06日

Copy from Intranet, I think it will surely be the most important thing recently for Infosys Mysore.

908 trainees joined the Infosys Mysore Development Center on September 19, 2005. It was a massive operation and all departments were geared to meet the magic figure of 1000.

Some interesting statistics:

  • Infosys is possibly the first IT company in the world to regularly handle inductions of such large a magnitude.
  • In fact, the Mysore facilities may well have set a world record for the largest number of check-ins handled by any reception desk in a single day!

2005年10月05日

I was so lucky yesterday to have my computer portal enalbed, so it meant that other people inside the classroom can access my computer by http protol, not so lucky enought, anyone who is outside the lab can not view the web. How securise here in Infosys. I made a little homepage then, which included all my works during my training, some reference books, some little games. I also included a link to here, my blog.

This is a view of my homepage here.

My homepage here

Another unhappy thing was: my system is using tomcat as a web server, and mysql as a database server. But if I want to build some program to interact with other persons on the web, or if I want to make my homepage dynanic, I still need something called plug-ins. So I think I’d better just submit the request and wait for some time to have my computer equiped with all the things I want.

Yesterday we were taking the html-javascript course. However, a wonderful day today, wasn’t it?

2005年10月04日

I thought I was going to get a high score but actually I didn’t. ZhangLiu also didn’t get a high score. Though both of us worked hard. Maybe something  was wrong in our learning process, as we seldom listened to the teacher in the class, we just read lots of book & did lots of exercise after class.

Next time, things will get much better, I’m sure.

2005年10月01日