软件绝对领域

2007年2月18日

http://thekaiway.com
posted @ 2007-11-12 16:53 _Kai_ 阅读(274) | 评论 (0)编辑 收藏
原文地址
下午无聊翻译一下,看看ruby官方怎么和java对比

相同点:

类似于java,在ruby中:

    内存管理都是由GC(garbage collector)负责。
    都是强类型语言。
    都有public,private,protected的方法可见性之分。
    都有嵌入式文档工具(ruby的叫做RDoc)。rdoc生成的文档看起来非常像由javadoc生成的。


不同:

于java不同的是,在ruby中:

你不必编译代码,你只需要直接运行代码。
Gui开发包不同。比如,ruby的用户会尝试WxRuby,FXRuby,Ruby-GNOME2,或者基于Ruby Tk库。
你要在定义任何事物(像class)后面加上关键字end,而不是用花括号({})来包围代码块。
使用了require代替了import。
所有的成员变量(属性)都是private级的。在类外访问任何事物要通过方法调用。
什么都是对象,包括2和3.14159。
没有静态类型检查。
变量名都只是标签,它们没有与类型相关。
不用声明变量类型,你只需要赋值给新的变量名就可以了(例子,a = [1,2,3] 相当于 int[] a = {1,2,3};)。
没有类型强制转换这个概念,只管调用方法就好了。
用 foo = Foo.new( "hi") 取代这样新建对象的方法 Foo foo = new Foo( "hi" )。
构造方法一直都叫“initialize”,不是和class同名的方法。
使用“混入” 代替 “接口”。
YAML 比 XML 更受欢迎。
这里用nil代替null。
==和equals()方法处理方法不同。当你想要测试相等性时就使用 == 操作符(就像Java的equals()方法)。当要想要知道两个对象是否是同一个时就使用equal?()方法(就像Java中的==)。
posted @ 2007-10-07 19:55 _Kai_ 阅读(611) | 评论 (0)编辑 收藏
     摘要: 早上看了Ruby论坛中有人(blackanger)写的TDD by Ex这本书里的资金例子,自己也想写一写。和他不同,我是全过程详细写出来。第一次用Ruby写代码,第一次用Ruby的Unit框架,而且下午睡醒后迷迷糊糊写的,可能有很多错误,请多多指正。  阅读全文
posted @ 2007-10-03 21:02 _Kai_ 阅读(834) | 评论 (0)编辑 收藏
在Ubuntu下通过apt包管理器安装ror环境是很方便的。我自己写了一个脚本:

sudo apt-get install build-essential gcc g++ libssl0.9.8 libssl0.9.8-dbg libssl-dev build-essential
sudo apt-get install ruby
sudo apt-get install libzlib-ruby rdoc ri irb ruby1.8-dev
sudo apt-get install libzlib-ruby
sudo apt-get install rubygems
sudo gem update --system
sudo gem install rails -y
sudo gem install rails --include-dependencies
sudo gem install mongrel -y
sudo gem install mongrel_cluster --include-dependencies
sudo apt-get install libopenssl-ruby
sudo apt-get install libgd-ruby1.8 libyaml-ruby libzlib-ruby
sudo apt-get install imagemagick
sudo apt-get install libmagick9-dev ruby1.8-dev
sudo gem install RMagick  -y


直接把上面的一串保存在一个文本文件中,然后用sh命令执行就可以一步安装完成了。

我发现网上很多在安装gem的命令都是错的,在Ubuntu里gem包不是ruby的gem,ubuntu下gem包的解释如下:
Graphics Environment for Multimedia - PureData library
Gem is a loadable library for puredata, which adds OpenGL graphics rendering
and animation to Pd.  Pd is a graphical programming language and computer
music system.

这个包和ruby一点关系都没有。正确的应该是rubygems包。不知道为什么到处有人都是写sudo apt-get install gem的,很多都是转载,有的连转载都不声明,直接试都不试把错的东西直接贴出来。

另有人说源里的gem很过时,其实也不会。
posted @ 2007-08-31 12:28 _Kai_ 阅读(1981) | 评论 (0)编辑 收藏


转载自:http://blog.csdn.net/bvbook/archive/2007/08/20/1751786.aspx


一、148 页

英文: We check that the name is present and unique
原文:我们首先检查用户名与密码都不为空  

二、148页
                        
英文:We check that the name is present and unique
原文:我们首先检查用户名与密码都不为空
改为:我们首先检查用户名不为空
                
三、153页

代码中 flash[:notice] 应为flash.now[:notice]

四、310页
                        
列表中第二个“使用save方法时”应为“使用save!方法时“
                        
五、407页
                        
英文:Instead, they provide a regular (and simple) interface to a set of resources.
原文:它们只要为一组资源提供一个普通(并且简单)的接口就行了
改为:它们只要为一组资源提供一个规则(并且简单)的接口就行了
                
六、408页

两处的 /article/1 应为/articles/1
                                
七、456页
                        
原文:默认配置下,cache 只有在产品环境下才生效
改为:默认配置下,cache 只有在生产环境下才生效
                
八、535页
                        
原文:这个辅助方法就是把 remote_function 一个remote_function
改为:这个辅助方法就是把一个remote_function

九、554页
                        
原文:表单可以这些方法交互以提交用户输入的内容
改为:表单可以与这些方法交互以提交用户输入的内容
                
十、106页 代码
                
@product = Product.find(params[:id])
应为        
product = Product.find(params[:id])
110、117相应的代码也需要改正。


我自己还发现了:
P119
代码

    <%= form_remote_tag :url => { :action => :add_to_cart, :id => product } %>  
     <%= submit_tag "Add to Cart" %>  
    <% end %>  
应为:
代码
   <%= form_remote_tag :url => { :action => :add_to_cart, :id => product } %>  
      <%= submit_tag "Add to Cart" %>  
   <%= end_form_tag %>  


106页
代码
@product = Product.find(params[:id])
应该是
product = Product.find(params[:id])
                        
                        

                

posted @ 2007-08-28 16:07 _Kai_ 阅读(450) | 评论 (2)编辑 收藏
前天用我的X1650GT和同学换了一块7300GT,在Ubuntu折腾了一下,终于如愿以偿地开启了Compiz Fusion的效果,并且用gDesklets在桌面加了一些实用工具挺好玩的。

过程也挺折腾的,先是安装了ati的显卡驱动后要装nv的驱动碰到问题,然后再是开启特效后窗口没有了边框。在安装ati驱动后装nv的驱动先要删除几个库文件(libGL.so),看他提示哪个就删除哪个,然后nv驱动才可以正常安装。nv显卡开特效的边框的问题 只要运行一下sudo nvidia-xconfig --add-argb-glx-visuals就OK了。

现在上图看看:









 




posted @ 2007-08-28 16:03 _Kai_ 阅读(640) | 评论 (0)编辑 收藏
用了Ubuntu7.04一个多星期了觉得挺很不错,很多方面比在windows下好很多。方便的硬盘安装。一开始是在家里的电脑安装的,之后把硬盘拿到学校的电脑一插上去就可以用了,只需在命令行界面配置显卡和校园网就OK了。Ubuntu的硬件的兼容性真是没得说,还有人还制作了一个可以放在U盘的精简版本。Linux的整个系统加上所有的常用软件比windows加上所有常用软件的磁盘占用小很多。

记得刚刚接触电脑的时候就用了一段时间的RH9,觉得很神秘很帅。后来来到学校后发现校园网上不到网,用xrgsu要么掉线要么上不到,试了sesu和fc都是这样。因为万恶的锐捷又不能用虚拟机上网。这次是因为有个师兄用ubuntu7.04成功的上到了所以我又用回了Linux,用回了久违的VI。我不知为什么学了vi和emacs两个编辑器,但是一直都用不惯emacs,vi就用得很顺手。Linux下的编辑器就好在可以双手不离开键盘,不用去用到鼠标,不过太久没有用了,时不时手还是会想去摸鼠标,然后想一想手又缩回来按快捷键。

Ubuntu的中文社区很活跃,中文的资料又多得不得了,一般有什么问题搜索一下就可以查找到。

Ubuntu下用得最爽的是FireFox,好像没有windows下的内存泄漏现象。Linux下的BT软件就不怎样,还是用wine+比特精灵比较好。相对于bt,linux下的电驴软件就很厉害了,MLDonkey很快,最高能过1M/s。

下载安装软件,Ubuntu继承了Debian系的apt-get系列的方便,很大得方便了我这类懒人。只要一个命令就可以简单地在非图形界面安装软件,而且自动安装软件源中最新的版本,一并安装配置。只是把软件安装到哪里要自己去查找,有时是挺麻烦的,比如在安装后要修改配置文件的时候,特别是安装时文件分得很散,在配置radrails时要求输入rails和rake的路径。不过用了一段时间后熟悉了目录的配置之后就要找程序文件就简单多了,程序文件一般放在/usr/bin下。

不过有时一些软件还是自己手动安装好。第一有个权限问题,我的电脑还是主要用来做开发和学习的,而且又是我自己一个人用,对于Linux系统一向来的用户安全机制对我来说有点多余。自动安装的一些软件,有时要设置权限,比较麻烦。第二就是版本问题,软件源里的软件虽说都是稳定版本,但是我有时想要新一点的版本,比如Eclilpse3.3,NetBeans6。

在开发时最大的好处就是编码问题在Linux下对utf-8的支持很好。还有好像一些ide在Linux下好像速度快一点,还有ruby也是,反应快了很多。正在试着Gvim+rails.vim的感觉。不过还是习惯eclipse。Linux下的软件,要么是gtk的,要么是Qt,要么java的,感觉上至少比win32程序用起来觉得舒服一点,完全是心理作用。

最后有两件事让我不爽,一个是特效开不到,我的显卡是Ati 的X1650,万恶的ati官方驱动不支持XGL,开源驱动又不支持X1650。另一件事是我用eva和QQ2006上了几天之后登录的时候竟然说我“您的IP不能用低版本的QQ”,真是万恶的腾讯。我最后找了飘云版的QQ2007(因为不带键盘锁)才能用wine跑QQ2007。用wine+qq的时候发现打字那个提示框很快会不见,我用的是fcitx,还有我不能发起语音请求,发起时qq会崩溃,别人发起我接受就正常。

Ubuntu好好玩。

posted @ 2007-08-22 17:22 _Kai_ 阅读(598) | 评论 (0)编辑 收藏
这个暑假过了一大半了,过得比较郁闷。

今天是暑假第一次在家上网,因为家里电脑坏了,主板拿去保修,修了20天后拿回来发现坏得更严重,又要不知道修到什么时候。(体验了华硕的售后实在不敢恭维)只好上个星期叫同学在网上帮我买了块二手主板,现在终于有电脑用一下。

暑假前已经计划好了要做什么,就是要把这个学期还没有做好的几个应用做好它,把picocontainer的1.0版的代码分析和文档汉化做完(在期末考试前因为无聊所以就做了这个事),还有再写一些有趣的代码,比如一个简单的XML仓库。

读书的计划提前完成了,看完了《领域模型驱动》,《web开发敏捷之道》(新鲜热辣),《Ruby for rails》。看了一半《对象设计》,还有把《重构》又看了一遍。

还好带了一些英语资料,手机里也存了一些英语的对话,每天背一篇短文,没事练习听着英语大声念几句。感觉还好。

今天看了一下敏捷大会的消息,又看了一下Thoughtworks里的强人的博客,觉得毕业后去那里的希望很渺茫。英语又差,技术和那些强人差了几个数量级,看来要更加更加努力。
posted @ 2007-08-14 00:05 _Kai_ 阅读(311) | 评论 (0)编辑 收藏
今晚想update一下rails,结果在升级gem时出现错误。搜索了一下找到答案

升級Rubygems到0.9.2时,會產生一個Error:

ERROR:  While executing gem ... (NoMethodError)
    undefined method `refresh' for #<......>

解决方法:
删除掉source_cache文件,win是在$ruby安装目录\lib\ruby\gems\1.8,linux是在/usr/local/lib/ruby/gems/1.8/source_cache下。

运行gem update --system升级

转载自:http://www.cnzxh.net/blog/Index.php?do=readArticle&articleId=145
posted @ 2007-08-13 23:42 _Kai_ 阅读(472) | 评论 (0)编辑 收藏
     摘要: JCreator是个轻量级的JAVA开发工具,对JAVA文件,JSP文件和XML文件编辑有比较好的支持。因为真的是很轻量级,所以功能也很弱,没有 JUnit集成,也没有代码格式化。我自己也是用管了eclipse,其中的JUnit当然是最常用的功能,其余常用功能还有重构和代码整理和格式化。有时要改一点代码或者实验一些代码又不可能打开一个eclipse那么笨重的工具,但是用比如JCreator,又太弱。所以我就想着把JUnit和代码格式化功能集成到JCreator中。

......  阅读全文
posted @ 2007-05-10 00:06 _Kai_ 阅读(2709) | 评论 (11)编辑 收藏

大名顶顶的JUnit是Kent Beck和Erich Gamma编写的用java语言实现的单元测试框架。

JUnit3


JUnit3的用法比较简单,就是实现继承框架中TestCase的测试用例(一般实践中命名为XxxTest),然后在其中加入以testXxx命名的测试方法。然后就可以用JUnit框架中的Runner运行测试。

而且在JUnit的测试中如果要加入初始化方法就把方法命名为setup(),如果要加入清理方法就把方法命名为downDown()。
如果要将几个测试用例作为一个集合一次运行就实现一个有public static Test suite()方法签名的方法,在其中创建一个TestSuite实例,然后调用方法addTest把一个个测试用例加入到集合中。


JUnit4

JUnit4在3的基础上融入了JDK1.5的注释特性,大大得改进和强化了JUnit框架。将测试方法由之前的通过继承TestCase确定测试类和通过命名方法确定测试方法的测试编写方式转变为由注释确定这些方面。

常用的注释:
@Before:初始化方法
@After:清理资源
@Test:测试方法
@BeforeClass:针对所有测试,只执行一次,且必须为static void
@AfterClass:针对所有测试,只执行一次,且必须为static void

只要有在类中要测试的方法前加入@Test,这个类就是一个测试用例。而加了对应注释的方法就是各个功能方法,比如初始化和清理。

JUnit4相对以前的增强体现在以下的注释中:

@Test(expected=Exception.class):异常测试,断言异常必定产生

@Test(timeout=n):要求测试在允许超时时间(n秒)中完成

@Ignore:忽略某个测试方法

@Parameters:提供参数测试,也就是用一组参数测试代码


而且JUint4对ant1.7以下的版本有兼容性问题。


以上讲的JUnit用法就是最最常用用法。







posted @ 2007-04-28 23:40 _Kai_ 阅读(1760) | 评论 (0)编辑 收藏
有机会可以接到一个小型商务平台的项目,最近就开始做一个平台的一些基础组件,比如新闻发布模块和用户管理模块。开发团队只有我和另一个同学,一共两个人。而我们对XP开发过程比较有兴趣,刚刚好可以进行结对编程和TDD。

开发已经进行了一个星期左右,已完成新闻发表模块中的新闻管理模块。因为完全没有经验,而且开发时间不够(只能在没有课的上午或者下午开发),开发进度很慢。但是自我感觉不错,因为体验了以前没有体验过的开发过程,从中学到了很多东西。

在整个开发过程中,我们始终坚持“测试先行”原则。首先列出要完成的任务清单,用JUnit写出相应测试代码,然后运行测试,出错,伪实现,重构。一般都是两个人,一个人持有键盘,写一个钟左右的代码,然后一边讨论一边写代码。在完成了一段代码之后有种神奇的感觉,好像不知不觉中代码就被写出来了,这可能是TDD神奇的地方。先写出符合需求的测试,接着按照测试来写代码,就是这么简单。

不过完成了新闻发布模块之后,经过讨论,决定下一步完成前台的UI。对于UI的开发,平时例子学习了不少,自己写的toycode也写了一些,但是在实际应用开发中对我们还是比较陌生。一开始准备用简单的JSP和Servlet来做前端,但是在前端控制器中代码实现有点混乱,现在就卡在UI这里了,最后经过讨论决定用WebWork作前端控制器。

以前在看K.Back的《解析极限编程》时,看到他把结对编程描述的很神奇:
结对程序员:
  • 使彼此都专注于任务
  • 一起头脑风暴,讨论系统的精化
  • 理清思路
  • 在搭档陷入困境时要主动,这样才能减少挫折
  • 使彼此都对团队的实践负责
经过实践之后,就很清楚地体会到k.Back讲到的结对的好处。

五一应该还会继续完成这个项目,而且是一边做一边学。


posted @ 2007-04-28 20:40 _Kai_ 阅读(487) | 评论 (0)编辑 收藏
     摘要: 假期学完了Servlet和JSP,现在来复习一下。

Servlet和JSP,作为JavaEE的重要技术之一,表现层的核心技术之一。其中包括了什么,如何使用。

第一部分 技术背景:
...............................................

(待续未完)  阅读全文
posted @ 2007-03-27 23:18 _Kai_ 阅读(152) | 评论 (0)编辑 收藏

这个学期的学习要好好规划。尽量提高时间的利用率,让自己学习生活得更加有效率。

学习内容:
  • TDD测试驱动开发方法
  • 6种类别重构手法
  • 设计模式的完整学习(主要是除了12个核心模式之前的11个)
  • UML和OOA,OOD

  • WebWork
  • Spring
  • Ioc容器,AOP
  • JUnit技巧(结合TDD的核心概念)

  • 敏捷和XP的内容
  • J2EE核心模式
  • Hibernate学习
实践部分:
  • 用Java重写以前用C++写过的一个图书馆管理系统(LMS)
  • 用Java的XML,JDBC包写一些toy code
学习的内容,有优先级,越上越高。而实践部分尽量在学期末完成,而在实践中先用OO的方法做简单的初步分析和设计,然后用TDD,在构建过程中使用Ant,Eclipse,CVS,JUnit等工具。因为这个学期还要考四级,所以时间会比较紧。

每个星期把计划写在一张纸上,然后每天完成计划后作一个标记。

一天一小步,一星期一中步,一个月就可以踏出一大步。
posted @ 2007-03-27 22:23 _Kai_ 阅读(1068) | 评论 (1)编辑 收藏

OOD应该遵循的十一个基本原则,摘取自Robert C. MartinThe Principles of OOD一文 http://www.butunclebob.com/ArticleS.UncleBob.PrinciplesOfOod

类设计原则:

  1. SRP,单一职责原则,一个类应该有且只有一个改变的理由。
  2. OCP,开放封闭原则,你应该能够不用修改原有类就能扩展一个类的行为。
  3. LSP,Liskov替换原则,派生类要与其基类自相容。
  4. DIP,依赖倒置原则,依赖于抽象而不是实现。
  5. ISP,接口隔离原则,客户只要关注它们所需的接口。

包内聚性原则:

  1. REP,重用发布等价原则,重用的粒度就是发布的粒度。
  2. CCP,共同封闭原则,包中的所有类对于同一类性质的变化应该是共同封闭的。 
  3. CRP,共同重用原则,一个包中的所有类应该是共同重用的。

包耦合性原则:

  1. ADP,无环依赖原则,在包的依赖关系图中不允许存在环。
  2. SDP,稳定依赖原则,朝着稳定的方向进行依赖。
  3. SAP,稳定抽象原则,包的抽象程度应该和其稳定程度一致
posted @ 2007-02-22 23:32 _Kai_ 阅读(625) | 评论 (0)编辑 收藏
我的JAVA之路就是从考SCJP开始。

起源
一切都是源于CSDN上的SCJP的广告,那是在国庆长假前几天看到的。在2006年下半年,学生考SCJP是优惠价450。那时就想着趁着这个时机考个证来傍身,优惠800哦。顺便可以开始学习JAVA。

开始学习JAVA
然后就在网上买了几本书,都是很多人都推荐的《Thinking in JAVA 3e》,《Core Java 7e》1,2卷,《Effective Java》。那时还完全不懂,不买Effective JAVA早知道买Java Puzzlers,因为其实Puzzlers是Effective的第二版,两位作者都是就职于Google的JAVA达人。而另外两本书用来入门还不错,两本书都有大量的代码例子,看代码来学习也许是最好的学习编程的方法了。TIJ这本书讲了很多编程技巧和JAVA的一些原理,而CJ这本书讲了很多在应用方面的技巧,两本书都很生动很有趣。

以前C++上我花了很大的精力在学习,一开始接触电脑就在学C++,有两年的C++学习时间。所以对JAVA的语法和面向对象概念能比较好的适应。对C++和JAVA比较直观的比较就是,JAVA的库比起C++的标准强大太多太多了,C++只提供了一些常见的数据结构和算法,而Java几乎提供了所有的基础功能。还有JAVA的API文档相当齐全,对方方面面都讲得很详细,而且有中文化,这相对于学习速度有很大提高。

小插曲
一开始我就计划好,用一个半月的时间学习JAVA基本的知识,然后用一个月的时间复习考试。如果计划延误了就算了,不考了。计划其实不是很顺利,10月份因为学生会很多事要做,而且刚好学校要进行本科评估,抓的比较严不可以太常逃课,又刚刚好有朋友拉我去作一些商业活动。这时忽然因为和女朋友吵架了,所以心情很不好,有些自暴自弃,一下子把身边的事全部推了,把学生会的职务也辞了(在他们的挽留下虽然最后没有辞成功只是暂时离开学生会),什么都不理,专心地学习。结果进度又拉了上来,大概在十一月底就完成了基本的学习。

复习
在十一月份买了那本Sun Certified Programmer for Java 5(Exam 310-055),这是对考试有极大帮助的一本书。这本书的作者就是大名鼎鼎倍受好评的《Head First》系列的作者,也是SCJP的出题人。这本书对055考试中每个考点,哪些必考哪些不考,而且对知识做了很细致的整理。里面的题目也出的很好,基本每个考点都有十几道题目,我基本可以维持在六十多的正确率。随书还附送一个模拟器,模拟真正的考试环境。之后因为对Lang包中的一些类还有一些疑惑就买了一本《The Java Programming Language 4e》。买来这本书初看上去好像讲得很泛很蜻蜓点水式,但是看下去之后发现这正是这本书的最大优点,几乎对JAVA语言的每个方面都有一个明确的概念,这对理解各个细节有很大作用。

QQ群
在一次偶然的机会,在一个论坛上看到了有一些准备考SCJP的人组织的QQ群,在里面认识了一些人。有些考过的,有些和我一样准备考的。在这个群里经常有人提问题,之后就是一大群人在这里热烈地在讨论,气氛好不热烈。这可能也是我考试成功的一个因素,不过我倒是在群里经常为人回答问题的那个

报名

在十二月份,就去问了一些通过考试的人,具体怎样报名,考试时怎样。最后决定去广州天河那里考试,因为我爸爸在那里工作。而时间定在十二月份倒数第二个星期五。选在倒数第二个星期是因为为了给自己多点时间准备,而不选最后一个星期是要以防万一。结果最后一个星期真的发生了很大件事--地震,这次地震使得沟通中国大陆和美洲的光纤断了,考试中心也因为这样无法正常考试。

因为这次考试优惠活动sun要求提前一个星期去报名。于是我在女朋友的陪伴下一起去广州报名。报名时,我就选了055的中文考试。报完名回来之后开始后悔了,听到有些人说中文是用机器翻译的有些地方根本看不懂在说什么,还有后悔报了055因为发现知道考scjp的人几乎都是报035,而有几个报055的好像都没有通过。在考试前就这么一直在想来想去,弄到自己很紧张。

最后冲刺
在最后一个星期里,我一直都很紧张。我把那本scjp考试指南每一章最后的总结都看了一遍,把以前做错的题又在看了一下研究一下自己为什么错,哪个方面的知识点不清楚然后再巩固一下。然后做一下模拟器,感受一下考试时的感觉。做了一次模拟器之后很失望,因为第一次做了之后成绩只有百分之四十多而已,离考试通过的分数还有十个百分点。这件事使我自己更加紧张。但最后两天,女朋友特地跑过来和我聊天开导我,使我自己放松了很多。在倒数第二天因为该看的也看完了,所以没事看了一下035的TestKing。

决战考试
我是提前一天去广州的,准备第二天早上就去考试。去到广州之后本来想着在我爸宿舍那里再看一下书,但是下午睡了一觉然后吃了饭后就自己去了购书中心那里逛了几个钟。结果脑子里都装了很多spring,stucts的东西,整个晚上都在思考这些技术。晚上回爸爸宿舍那里,爸爸和一些同事就打边炉和喝酒,弄到很晚快一点钟才去睡觉,好像躺了一个钟左右才睡着。

第二天早上起来之后就发现头痛,开始有点慌了,怕头痛等一下考试发挥不好。我就吃了很多薄荷糖,这是一直的习惯,一紧张就要吃薄荷糖。在八点半时就打了辆的去考场那里。到了那里之后,那个招待的人还说:“哇,正好九点,那么准时。”她说完后就去考试那间房间里开电脑下载试卷。考试前还要签一张考试协议书,保证不能作弊,然后发一张做了标记的草稿纸。有一个人是和我同时考的,他比我晚来了十分钟左右。和他聊了一下,原来他是从事JAVA开发的。他听说我只是个大二的学生,就带有一点嘲讽的口气对我“SCJP是需要实际开发经验的。”一听他这么说,我就怀疑这个人没什么技术的,之后他就去和招待小姐聊天。而且他还问有没有api文档可以看,这时我可以肯定他只是一个白痴。考试是在一间有几部电脑的房间里进行的,房间里有监视器,考试时只有考生没有监考人员。

开始考试了,一开始要回答一些关于你对JAVA技术的了解情况,比如你对某个方面的掌握情况如何。有人说这会影响你考试试题的难度,我觉得这不大可能,因为试题一早就下载到考试系统中了。再仔细研究一下,发现windows的一些功能键都被拦截了,比如任务管理器和win键。回答完那些调查问题就开始答题了,73道题目之外还有几个调查问题,比如你是在哪里知道sun的scjp考试之类的问题。

我的答题策略是按照SCJP学习指南里讲的策略。第一遍先把简单得可以一下子得出答案的题作完,第二遍把第一遍没有做的题写完,第三遍把做了标记的题目再作一次,第四遍检查。考试中发现中文汉化的还可以,有几道题翻译的有点怪,还有一道拖放题,题目竟然因为空间不够写了一半,那道题我记得是考线程(Thread)的。还有拖放题有些问题,就是只要打开了之后不管你有没有回答完系统都认为你已经回答了,而且在回答完之后再次打开,之前填的答案会丢失,所以每道我都做了记号并把答案记下来。完成之后考试时间还剩一个钟多一点,我狠心地按下了完成按钮结束考试。从决定按下到走出考试的房间知道结果之前,心一直猛跳,很紧张很紧张。走去考试的房间后,就向那个负责安排考试的那个人说我考完了,她叫我稍等一下,她去拿打印报告。考试答案是发送到一个考试总的中心,然后分析答案,再传真考试报告到你考试的那个考试中心的,这个过程总的时间只有几秒。过了一分钟左右,我看到她拿来了成绩报告,她先在上面盖一些章。我很紧张地问她过了没有,她轻描淡写说过了。等到我拿到考试报告时,有点失望,因为只考了67%,只比通过百分率高了9个百分点,我怀疑是我在最后检查时把很多题目改错了。走出考试中心后我马上打电话给我女朋友和妈妈,告诉他们结果。那时真的很兴奋。而走出考试那个房间时,另外一个考试那个人才回答到五十几题,他在考试时在很多题目都是一直拿鼠标在答案选项那里一直猛点。我有点幸灾乐祸,估计他是通不过。

收获体会
通过这次考试我比较好得掌握了JAVA语言的一些基础(只是一些而已),其实在一边学习复习时,写了很多toy code(比如一些文件操作工具等),充分地理解了一些用法和机制。打下了比较好的JAVA基础。

不过通过考试之后会更累。因为还有很多很多JAVA知识要学习,就像读的书越多,学的东西越多,越会发现自己的无知,然后又去读更加多的书学习更多的知识。之后马上就指定新的学习计划和学习任务,如,JDBC,XML编程,JDNI,JSP和Servlet,EJB,各种框架,等等。

考到这个证之后好像没什么成功感,因为发现很多人都考了这个证,所以可能之后会考SCEA(SUN认证架构师)。有些人为了SCJP,报了035,然后把时间都用在背题上,之后通过考试之后就到处炫耀。因为035的题库网上有,而且才只有二百多道题左右,所以很多人都可以通过这个方法轻松的通过这些考试,以致于把SCJP这个认证的可信度真实度都拉低了。055现在还没有题库,而且考试范围比035多了4个考试内容,所以比较少人考。

感谢
能够通过这次的考试,除了我自己的努力,也离不开女朋友和爸爸妈妈的支持,谢谢他们。特别是女朋友在我紧张迷茫时开导了我,鼓励了我,让我能够用比较好的心态面对考试。婷婷我爱你。
posted @ 2007-02-20 23:47 _Kai_ 阅读(1448) | 评论 (1)编辑 收藏
     摘要: 摘要
Cactus是Jakarta的子项目之一,是对JUnit的一个扩展。Catus是Java EE容器内测试的事实标准。
Cactus是针对集成单元测试的开源框架。可以在容器内对JAVA EE服务器端组件(如JSP,Servlet,EJB,数据库等)进行细粒度的单元测试。
Cactus工作原理。。。
  阅读全文
posted @ 2007-02-19 23:19 _Kai_ 阅读(530) | 评论 (0)编辑 收藏

 

 

按农历算,今天是今年的第一天,今天我的Blog也开通啦。

Blog是记录自己成长过程的地方,是发表自己对各种技术的看法的地方,是推广自己想法的地方。

记得有人说过有技术还不行,还要能把自己对技术的想法和感悟写出来。侯捷有句很经典的话:“我手写我心!”

新年的愿望:
我要更加努力,变得更强!

posted @ 2007-02-18 00:53 _Kai_ 阅读(165) | 评论 (0)编辑 收藏

公告

码农一枚

欢迎大家发E-mail到 与我讨论关于软件开发的各种看法。

最新Blog地址:http://thekayway.com/

导航

<2007年2月>
28293031123
45678910
11121314151617
18192021222324
25262728123
45678910

统计

常用链接

留言簿(2)

随笔分类(21)

随笔档案(18)

常去的地方

技术站点

朋友的Blog

搜索

最新评论

阅读排行榜