[转]十五年,你积累了什么?

这是csdn里的一篇博客。。。以下是原文

十五年,你积累了什么? 收藏 此文于2010-04-27被推荐到CSDN首页
如何被推荐?
这件事弄得我挺郁闷的.

公司的兄弟部门要招一个JAVA平台的架构师,

一位来面试的兄弟简历上做了十五年的编程,十二年JAVA工作经历.经历过N多的公司.原面试的一个女同事经历较浅,怕罩不住,

请我帮她面试一下.

我看了一下简历,大多数时间在做CRM,工作流,办公系统类的项目,也有两家公司是国内比较知名的互联网应用的项目.

我面试的一贯原则不会问我自己懂的东西,而是看对方的行业经验去问他自己熟悉的东西.

下面是面试的内容:

谈谈一般工作流中流程引擎处理的对象模型.

答:我做的都是特定于某个需求的流程,不了解通用的工作流处理的原理.(十五年的经验不知道一点模型抽象,一直在造轮子).

谈谈WEB应用中大规模用户高并发需求的网站架构一般原则.

答:(内容不少,但主要是以一几点)

1.负载均衡,2 cache(自己介绍一个投票系统,用户投票数据直接放在cache中).3数据库读写分离.

如何做数据库读写分离,谈谈你做过的经验.

答:我自己没做过这些方案,就是看过这样的方案介绍.

如果新增数据也放在cache中,如何保证出现异常时数据不丢失?

答:我可以在容器关闭前写到数据库,平时每10分钟与数据库同步一次.

对于大规模用户的WEB应用,10分钟可能上百万的数据,要是突然当机来不及同步到数据库怎么办?

答:.......................没考虑过.

网站的负载均衡有哪些模型?

答:没有做过,按照我的理解就是多点分布.

[有人说面试架构师怎么会问下面这些问题,如果一个被面试的人根本没有真实的架构经验,下面该问什么?只能问他自己熟悉的东西]

那你自己最熟悉的技术点在哪方面?

答:JAVA技术方面,比如多线程.

OK,那我们聊聊JAVA技术.JVM底层技术有了解吗?

答:这个当然了解.

请用你知道的知识描述一下GC的工作原理.

答:一个对象没有引用的时候就可以被回收.

那么怎么知道对象没有引用了呢?

答:这个不知道.

GC是如何分代的?

答:什么分代?我不了解.

关于GC还了解哪些?

答:其它的不清楚,我记得只要对象没有引用就可以回收了.

OK,多线程方面,jdk5以后的concurrent包中的数据结构用过哪些?

答:数据结构是什么意思?

就是相当于java.util下面的容器类.

答:我用过threadpoolexecutor.

我问的是数据结构或叫容器,比如说List,Map这类的数据结构.

答:没有用过,我平时用的都是同步之类多线程(意思是1.5之前的并发编程类库).

OK,请简单画一下JAVA的内存模型.

答:内存模型?不了解,我画不出来.

那么请说说volitale关键字在JAVA5之前有什么作用.

答:没听说过这个关键字.

那么,进入同步块和离开同步块时,变量是如何同步的?

答:这些底层的东西我都不了解,主要是做应用层.。

主要做应用层,那么熟悉使用的框架吗?

[到了这里,只能问这些了]

答:是啊.struts,hibernate,spring这些框架比较熟悉。

hibernate中,l1,l2的cache,给一个经验值.

答:没有做过.

volecity中,如果我要在渲染到页面之前统一对内容进行拦截处理应该如何做?

答:做一个filter,在请求进来的时候拦截.

我说的是 velocity中渲染到页面之前的拦截.

答:这个我不知道.

那你谈谈你平时做哪些工作.

答:用jsp,struts,hibernate,spring做业务逻辑.

十几年都是做这些吗?

答:以前没有这些框架,就是用JSP连接数据库.

你使用这些"东西"这么久,有对这些"东西"的原理研究过吗?或者去读一下它们的源码.

答:没有.就是一直在用.

........................................................................................................................

下面我实在不想问了, 因为我的时间成本也很高的,浪费不起.(当时是在上班时间,和现在的休息时间闲扯不能比).

我真的为这个兄弟心酸,如果面试的是普通开发,我还可以理解,你是一个有十五年经验的人,十二年的JAVA工作经历,而且

你面试的是一个架构师.说实话当一个5000元左右的开发人员我还不愿意要,因为同样一个5000元的招一个没有经验的学生,

但发展潜力比他要大多了.但是他的要求是20000元的架构师职位.

我并不是说每个人都要有相同的积累和追求,象这位兄弟,如果去外包公司做应用开发,应该是一个很不错的有经验的开发

工程师。但是目前平均来说,做外包开发可能不会突破的收入。你要想改变,就要改变你努力的方向。

十多年的JAVA应用,你就是不想了解,也会被别人硬灌给你GC原理这些知识啊.你就是捂着耳朵也会漏进一些声音让你了解

一些并发包的数据结构啊.

我们在打造10亿用户的平台,他却连50万用户规模的方案不知道如何部署.不是我们不给机会,实在是兄弟你真的拿不出我们

需要的积累.

本文删除以下类型的评论:

1.匿名用户提的和本主题没关系的提问,有什么问题可以在别的地方提。

2.刚刚注册的马夹。

其他正常的ID的评论,即使您来骂我,我也会保留您的评论。

发表于 @ 2010年04月24日 11:55:00


本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/axman/archive/2010/04/24/5523746.aspx
[该贴被admin于2010-04-27 17:12修改过]

看了这些,我被震撼了;准确的说:被大哥和这哥们的对话震撼了;原因很简单:这哥们太能震撼了。
他就是一“杯具”。

我觉得也是一个前车之鉴吧。

如果只是为了编码而编码,那永远都是这样的水平。

就像一个泥瓦匠,只是为了砌砖而砌砖,顶多只是比刚学砌砖的人快点而已。
永远不可能成为一个建筑大师。

其实我也被震撼了,如果我们不追求软件的本质,编程思想的进阶,在中国的软件行业里面很容易就这样被“杯具”.

我们应以此为戒啊。

在jdon宣扬的先进的编程理念和思想,就很能让我们去深入本质,跟踪前沿。希望以后能多多和道友们交流,共同提高。

走软件这条路
就是要多学多想
15年啊~
太悲剧了……

2010年04月28日 09:09 "jentrees"的内容
我觉得也是一个前车之鉴吧。

如果只是为了编码而编码,那永远都是这样的水平。 ...


囧 其实我是感同身受,快5年的行业岁月里,我也是浑浑噩噩的混了几年。直到混迹jdon一段时间,才能感觉到什么是“道”。难怪古人说,朝闻道,夕死亦可。

没见过这么损人的.

有些人是不会说,但是会做,类似于不知道设计模式的名字,但处处用设计模式,但这哥们能被人损也因为没有量力而行。人贵有自知之明,所谓无知者无畏。

我对这次面试到是持有另一种看法。首先我认为一个架构师并不是一次简简单单的面试就可以决定的,其次打造10亿用户的平台只是简单的说了一下并发访问量,并不能说出数据量,还有我认为系统的伸缩性从架构方面上来讲,形成一定的规模以后需要的是硬件的支持和软件应用关系已经不大了。而且10亿用户,底层肯定不是会是纯Java,我认为加上C的实现效果应该更好。这篇文章似乎有些忽悠人的嫌疑。个人看法。

看资历,这哥们可能积累够了,可能主要是沉淀的不够!

这哥们就是一杯具

他可能有点冒失的去碰了一下他不太了解的职位。

既然大多数时间都在做CRM、工作流、办公类软件,那么他面对的业务模型和数据模型比较单一,不如楼主能侃。

一个广为人知的常识:我国的WEB系统里,论坛程序跑得最多的是discuz这个没有优良构架的、可能当时不支持面像对象的php做出来的东西,而Java大师们做的就是讲经论道。


2010年04月29日 23:05 "atester"的内容
我国的WEB系统里,论坛程序跑得最多的是discuz这个没有优良构架的、可能当时不支持面像对象的php做出来的东西,而Java大师们做的就是讲经论道 ...

评论事物时,我们有太多成者为王 败者为寇 观点,PHP做起来快,然后开源,会填补某个领域的空白,马上普及应用,确实能够获得成功,但是我们没看到有多少真正大型系统是依赖对开源PHP进行维护拓展出来的,关键是PHP做得快,后面就没戏了。

Discuz!X的研究和质疑一文中就指出Discuz架构的严重问题,每次升级都伤筋动骨,这是因为其根据没有软件架构之说,是流水帐而已,还有其插件很难做。

JiveJdon不算成功,但是也支持插件,架构先进,因为没人愿意潜伏去研究,就流于讲经论道层面了。从本人拓展维护JiveJdon经验来看,每次拓展JiveJdon都是一种享受,如果可以,我愿意用我剩余的一生时间来拓展它,滴水穿石。


2010年04月30日 06:52 "banq"的内容
JiveJdon不算成功,但是也支持插件,架构先进,因为没人愿意潜伏去研究,就流于讲经论道层面了。从本人拓展维护JiveJdon经验来看,每次拓展JiveJdon都是一种享受,如果可以,我愿意用我剩余的一生时间来拓展它,滴水穿石。 ...
其实这个就是一个易用性的问题。JiveJdon的设计的确是很好,就是学习曲线可能高了点了。我也是下了试用了下,尝试用NetBeans9来运行它(用glassfish做容器),但是因为没用过mysql和jboss,所以也觉得要掌握它需要花很多时间。从另一个角度想,也许jivejdon和这些工具也耦合了(每个人有用到的工具都不尽相同,ide可以用Eclipse、NetBeans、jbuilder。。。,数据库可以用db2,Oracle,MySQL,SqlServer。。。web容器可以用WebLogic,WebSphere,tomcat,jboss等。。实在多如牛毛)。无论是做系统设计还是框架设计,我想我们追求应该都是简单且好用的东西。只是有时候可能过于理想化了。

2010年04月30日 11:48 "Antinomy"的内容
就是学习曲线可能高了点了 ...

要么大家提升,要么我们被淘汰,就两种可能。

其实说实话,别说这个人,我想很多做了很我的程序员都不知道GC/jvm的工作原理吧,每个人所处的阶段和所做的应用不一样当然了解的就会不一样,一个做技术研发的和一个做应用的相比,当然了解的知识点就不一样,一个做web互联网产品和做基于B/S结构的企业级系统当然了解的知识点又不一样~~~