论坛首页 招聘求职论坛

面试时如何说明项目的架构

浏览 9325 次
精华帖 (0) :: 良好帖 (3) :: 隐藏帖 (0)
作者 正文
   发表时间:2010-06-19  

下面的对话都是在coderanch上看到的,感觉老外很有意思,也会遇到和我们差不多的问题,呵呵。

 

I have attended some interview recently. i came across with a common question in both the interviews.

我最近参加了两个面试,而且在两个面试中都被问到了一个常见的问题。

The Question is "Can you explain your current project architecture?"

问题就是:你能说说你现在项目的架构吗?

i have answered that question by explaining the different layers used and the technologies used for that layers.

我通过描述项目中不同的层和该层对应的技术来回答这个问题。

But i came to know that the interviewer is not satisfied with that answer.
So, someone please let me know what should i explain when i encounter that question.....!
但是我后来发现面试官对我的回答并不满意

所以,大家和我说说如果下次遇到那个问题我该怎么说


Thanks in Advance.....

先谢谢了。

 

 

A:

The term "project architecture" would need to defined, in my opinion. A "project" does not have an "architecture." An information system has an architecture. An "enterprise" software application has an architecture, not a project however.

术语项目架构应该先界定一下,在我看来,一个项目没有架构,但是一个信息系统有架构,一个系统级的程序有架构,但它们不是项目。

A project has a schedule, a budget, a scope, quality requirements, etc.

一个项目应该有日程表,预算,范围,质量要求等等

As indicated, software architectures are typically described via hardware/systems integration perspective, e.g. firewalls, security, routers, message queues, relational database management systems, etc.

软件架构明显地是通过硬件/软件整合来呈现的。例如:防火墙,安全,路由器,信息排队,关系数据库系统等。

JSP pages, servlets, XML, etc., are technologies used to build an "application." They are not part of an architecture. If your interviewer does not know this, then you may have difficulty in answering the question.

JSP pages, servlets, XML...这些是用于构建一个应用程序的技术,它们不是架构的一部分。如果你的面试官不知道这些,那么你可能会很难来回答这些问题了。

Good luck!

 

B:

By project architecture, i guess the interviewer was referring to the application architecture which would be in most cases an MVC architecture if its a web application.

通过项目架构...如果谈的是一个web程序,我猜面试官可能是想你提及架构中最常用的MVC

You started off well by explaining the different layer and the various technlogies used in every layer.You should have also explained little in-depth about the application functionality by mentioning the code flow.

你在开始谈了不同的层和每层用到的不同的技术,这样很好。你应该再深入一点地通过代码来谈谈程序的功能。

For eg. Lets say your application requires user to login to access it.In that case, you can explain how the validation is being implemented in the application by explaining the code flow like from JSP/JSF --> managed bean --> service layer (Interface) --> Impl class --> then DAO layer --> Impl class and finally checking in your database and passing the result back to the presentation layer by wrapping the result in DTO.

例如,假设你的程序需要用户登录来访问。这种情况下,你可以谈谈在程序中验证是如何通过代码实现的,JSP/JSF --> managed bean --> service layer (Interface) --> Impl class --> then DAO layer --> Impl class 最终在数据库中进行检查,然后将结果封装在DTO并返回到表现层。

Hope this helps !!

 

 

C:

I think what the interviewer meant was, describe the architecture used in your current or last project? This is a very common question to see how well you understand the bigger picture. If the question was not clearer, get it clarified before you go on to answer it. While answering, you could also query the interviewers as to you were on the right track.

我想面试官的意思是,描述一下你当前和过去的项目中用到的架构。这是一个查看你对架构的全局理解的非常常见的问题。如果问题不是很清楚,在回答之前再澄清一下。回答的时候,你应该在询问面试官你是不是对路啦。

-- You could talk about both physical and logical architectures.

你应该通过物理层面和逻辑层面来谈谈架构

-- Physical architecture is all about how many servers, load balanced, clustered, active-active versus active-passive, disaster recovery, etc. This includes the application servers, database servers, integration servers, etc.

物理层面无非就是谈谈有多少服务器,负载平衡,active-active versus active-passive(不知道是什么了),出现严重意外如何恢复等等.这包括了应用服务器,数据库服务器,整合服务器等.


-- Logical architecture is all about:

逻辑架构就是:

-- application/component A invoking application/component B using protocol X
-- Various tiers/layers of your application and how they interact with each other. For example, model, view, controller, data,
and integration tiers. Within tiers, you may have multiple layers like service layer, data access layer, etc.
-- Any batch processes.
-- Any integration with other systems, etc

程序的组件A通过协议X调用组件B

程序中的不同级/层,和这些层是如何相互协调工作的。例如model, view, controller, data和其他的整合层。在级中,你应该有不同的层如service层,数据访问层等

所有的批处理

所有和其他系统的整合等


Use simple box diagrams to give a bigger picture. You may also earn some brownie points by discussing not only the "how"s but also the "why"s.

用简单的图表来描述一下全局,你可能会因为不仅仅谈如何实现,而且还谈了为什么实现而获得额外的加分

 

 

 

他们说的也不一定都对,但是觉得会对大家有些作用吧,所以翻的很丢脸也发了。

   发表时间:2010-06-21  
楼主,我是来学习的
0 请登录后投票
论坛首页 招聘求职版

跳转论坛:
Global site tag (gtag.js) - Google Analytics