上周,我做了几次面试,要招几名有5年工作经验的高级Java开发人员。但当面试结束后,我感觉到,各种框架(frameworks)使开发变得容易,但同时,也使程序员变笨。
每个人都会在他们的简历中罗列出几乎所有的新框架,他们能“熟练的使用Spring,Hibernate,Web Services等”。
下面是面试的过程。
我: 你在你最近的项目中使用了Spring。使用Spring有什么好处?
应试者: 我们使用XML配置出bean信息,Spring能够帮我们实例化这些bean,供我们使用。
我:如果Spring只是用来创建对象,那我们干嘛要用它?我们可以直接使用“new”来实例化各种依赖关系。为什么我们还要在XML里配置类的名字、要从Spring里取对象?
应试者:如果改天我们又需要对接口做另外一种实现,我们开发出实现后,更改一下XML配置,就能使用我们的新实现了。我们不需要去修改Java类和重新编译它们。
我:可是既然你写出了新的Java类,你必然要重新编译你的项目。
至于XML里的变化,99%的时间里你的XML都是打包在 war 或 ear 文件里的。
所以,你只需要运行一下ant脚本,把你所有的变更都包在war文件里就行了。你的“如果使用XML就不需要编译”的观点是站不住脚的。
应试者:唔,但依赖注入的设计模式建议采用这种做法。
我:好吧。我们就先聊到这。人力资源部会给你打电话的。
面试另外一个家伙:
我:你能描述一下你最近开发的项目、以及使用到的技术吗?
应试者: 那是个XYZ系统,我们使用了Spring,Hibernate,REST WebServices。
我:那好。你能解释一下RESTful吗?
应试者:我们使用@RequestMapping(value=”/url”, method=”POST”)来开发RESTful应用。我们还使用了PUT,DELETE方法。
我:哦,那RESTful个什么概念?”
应试者: 我不是说了吗,如果你使用 @RequestMapping(value=”/url”, method=”POST”),你就是在开发RESTful应用。
我:哦,你对Hibernate如何?
应试者:我这两年一直在使用Hibernate。我对Hibernate很熟悉。
我:跟JDBC比起来,Hibernate有什么优势?
应试者:使用Hibernate,我们不需要写任何跟数据库交互的东西,Hibernate会帮我们处理这些。
我:那Hibernate怎么能知道你的项目需要如何的存取?
应试者:如果我们使用了Hibernate,它会帮我们完成存储,更新,取数据等数据库操作。
我:哦,哦。你在业余时间会读一些技术相关的博客吗?.
应试者:当然,我对Hibernate的深入掌握就是这样学会的。
我:非常好,很高兴见到你。我们的人力资源部会给你打电话的。
面试过程就这样 …,
我绝对相信各种框架会提高程序员的工作效率。但程序员也应该努力去了解这些框架是如何工作的。你并不需要理解各种框架的所有内部工作原理。如果你非常的擅长Servlets和JSP,那你就很容易理解诸如Struts,Spring MVC等Java Web框架。如果你不了解这些基础知识,很显然,所有你的回答只能是“框架/标记/XML帮我们做了这些”。
我强烈建议所有刚开始职业生涯的Java程序员都要认真学习Java核心,Servlets,JSP知识。只有这样你才能正确的理解各种框架的工作原理。
[整理自网络]
分类目录
- arch/management (17)
- computer (38)
- java/j2ee (305)
- lnmpa (237)
- mac/iphone/ipad/android (11)
- mysql/oracle/postgresql (126)
- os/software (74)
- other (518)
- python (6)
- redis/memcached/mongo (31)
- sitebuild (143)
随便看看
标签云
程序员 创业 人生箴言 eclipse 快捷键 术语 索引 unix命令 vim wordpress java学习笔记 环境变量 oracle内置函数 index 人生 数据类型 nohup tuxedo mysql学习笔记 MS-DOS命令 servlet spring 职场进阶 职业进阶 服务器选购 服务器选型 apache JPA MongoDB 注解 tomcat 子女教育 jquery maven JVM aix命令 网络营销 java异常 seo 人生规划 关键字 css 网络推广 struts 系统优化 成长 frame iframe bluehost jdbc select 我的信仰 oracle函数 cookie HashMap 站长工具 乱码 ArrayList secureCRT jsp session tail find halt 事务 oracle单记录函数 算法 URL window table javascript操作表单元素 String 字符串处理 健康 http 域名 情感 more google A记录 域名解析 netstat 弹出对话框 弹出窗口 框架集 框架 excel 字符串 javascript函数 showModalDialog nginx number 数组 sql frameset 开源程序 java数组 软件 oracle服务友情链接
收藏链接