天天看点

面试也有如坐春风

遇到一位好的技术人员,哪怕只是短短的交谈也会让自己受益匪浅,即使不能与其共事,却也能找到新的方向和动力

今天下午1:00去银泰网面试, 面试官很和蔼, 是一个具有良好素养的IT人士。 面谈了很多问题,主要是设计方面的。 虽然我有不明白的地方,但他没让我尴尬,有些他就直接说答案了,有的就给出提示,有的让我回去再寻求答案。可以说,通过这次面试,我学到了很多关于技术和非技术的东西。很佩服这样的职业人, 是我遇到的不到的excellent。

列表今天面试中的问题记录:

1. 开发过的项目的介绍

Windows service

多线程 死锁 异常导致线程终止的对策

Webservice rpc  不像windows service是自动启动并运行。 Webservice是在调用时才被执行, 提到了一个词,3个字,我给忘记了

--是幂等性。 2012-6-5 补充

2. 领域驱动(DDD)

与数据库驱动不同。 在开发阶段,不需要首先建立数据库, 首先建立domain,然后实现整个业务需求的程序开发。

问题:在尚没有建立数据库时, 如何判断程序是否符合了需求? 

答案:主要有2种方法判断。

我给的一个答案是:让开发人员描述对需求的理解,看是否有理解偏差, 然后进行codereview,看他的代码是否存在问题。 这是有缺陷的,因为即使程序编写没问题,也很难确保无bug。

此问题需要思考。

Domain-----POCO-----POJO

3. 敏捷开发

敏捷开发是一种理论层次的。

Scrum..........项目组中每个人都有一个角色..........

及时沟通;

每日立会,总结已完成的部分。如有问题,大家共同研讨解决方案。 安排当天的工作计划;

持续集成;

定期或不定期进行代码review, 提高团队技能。

4. O/RM

EF的理解

EF、ibatIS(目前为mybatis)、Linq to SQL的主要区别:

Linq to SQL我好像没用过。

EF与ibatiS的区别:

EF是基于context的。

ibatIS是将sql语句直接放到sqlmap。Xml文件中进行管理,sql显而易见,容易维护。EF不然

EF有延迟加载的功能。 Ibatis有缓存机制(默认是开启的), 

<select id="selectCommand" resultClass="java.util.HashMap">

        <![CDATA[ $querysql$]]>

</select>

诸如上面这种sql是动态传入的情况,可要注意了,如果sql有变化,可能会出问题的,需要设置属性:remapResults="true"

5. 设计思想

我列举了目前主管的java项目开发中经历的2个设计思想的应用。

6. 重构

比如一个方法有上千行代码, 要基于单一职责原则进行分解,易于维护

7. 数据库, sql优化

由于在好丽友供职时,主要做数据库开发,所有我有比较丰富的经验

8. MVC的理解

Java Web项目大都是MVC模式了

........VO

顺便讨论了项目的框架 velocity,struts ,spring spring的最新版本是3.1了,我用的是2.5

 简单列举并总结了一下,比较乱。 以后整理下。 通过这次面试,我发现我还有很多的不足,我也将上下而求索。遇到一位好的技术人员,哪怕只是短短的交谈也会让自己受益匪浅,即使不能与其共事,却也能找到新的方向和动力。

继续阅读