西西河

主题:【原创】也来说说Linux和Windows下的开发感受 -- 昔杨今雨

共:💬203 🌺502
全看树展主题 · 分页首页 上页
/ 14
下页 末页
家园 我毕业的时间比94可能还是要早那么一点

风兄是不是把我和什么人搞混了。

已经有一段时间没碰数据库了,最近的测试数据手头也没有。可能最近会做一些数据库效率的测试。根据我之前的经验,基本上Oracle的处理速度具体要看你的测试环境和逻辑复杂程度。Oracle内部操作的确是比较快,但是通常的商用系统业务逻辑都是定义在数据库外部的。在你的测试用例中,一个transaction,只查询4次数据库,更新一次数据库,这个有点理想化。一笔简单的转账,包括从源账户扣除,在目标账户记入,两边的流水记入,以及日志,就是5条写操作。加上花在事务协议上的时间,虽然现在的数据库和硬件都比几年前有所提高,但是如果业务逻辑在数据库外部,单PC节点800tps肯定是不可能的。

我们之前,曾经做过多币种的实时交易系统,里面的逻辑比较复杂。一笔简单的转账,需要更新10多张表。最后查询使用Cache,交易过程使用存储过程。单纯在数据库内部调用存储过程,在单PC服务器下面每秒钟大约可以做到60次左右,但是,从Java端调用,每秒钟就只能到10几次。当然,这是几年前的系统,现在应该性能有所提高。

现在使用一些Partition和Data Grid的配置或者第三方工具,可以大大提高查询和更新的速度。但是对于一些Cross join的交易,还是比较麻烦。而且,数据库昂贵的license,(特别是RAC和partition)也是一个负担。除了金融和博彩业,能用得起Oracle做网站存储解决方案的太少了。如果腾讯之类的企业采用oracle的解决方案,估计早就销声匿迹了。

对于技术差的看法。可能我们对技术差的定义不太一样。

没经验不是问题,只要有想法,有学习能力,有钻研能力,就是可造之材。个人而言,我挺喜欢和这一类的人工作。他们不应该被称为“技术差”,只是缺乏经验而已。正如你所言,缺乏经验可能往往也会成为一种优势。所以,对于工作有一段时间的“老兵们”来说,有的时候,能忘记自己所了解的东西,从头学起,也是一种能力。

但是,如果一个人工作了三五年,对于他自己所作的技术问题还是一知半解,这种“技术差”的员工,哪怕再有想法,从我目前的角度来看,我也只会去选择无视,即使最终可能采用的方法和他的类似。这里面有团队管理的问题,也有信任方面的问题。

通宝推:然后203,
家园 呵呵,楼主的意思应该是

现在的java让人进入的门槛越来越高了,没有了以前的简单快捷,不能够吸引入门级的人物。

其实本身把这些框架用熟了,也绝对不是生手就可以搞定的,并且这些框架就是几年前java僵硬死板下的必然产物,这些框架的出现不仅对java,就是对企业级开发都是革命性的

不过,也不得不承认,现在java加进去了太多的内容,太臃肿,不知道这会不会限制下一步的创新

家园 hehe

那个tansaction就是真实的case。一部分操作已经转换为异步处理了,所以核心平均下来就是这个数字。不过不是很确定我们统计方法是否有太大的差异。

我觉得这个数字非常普通了,在itpub上看到其他人做的测试,一般的pc服务器 跑tpc-c,oracle 10g,单节点做到900并发用户,事务完成时间1秒以内。按我的算法,tps也可以算900+了。

特意到tpc上差了一下,单cpu 4核 Intel Xeon E5420 - 2.5 GHz pc服务器,跑oracle11g,可以到4000tps左右, 所以我的数字其实一点都不夸张。

不过这些传统结构,对付几千到几万用户没什么大问题,上百万用户就完全死翘了,现在刚接触大规模的互联网应用,还在学习过程中。

家园 呵呵

做应用服务器的除了bea是独立的软件厂商,还有谁挣到大钱的?而且bea后面的硬件商是hp, 这也是后来bea市场大幅度下滑的核心原因。因为ibm的was直接就免费或者1折,bea玩不起。这个阴谋论不是我发现的,貌似已经讨论过很多回了。

jboss从来都不是ejb的主流供应商,准确的说,bea和ibm事实上放弃ejb以后,jboss才变成ejb的积极推动者。

EJB背后的背景就是顾教授说的,用硬件解决问题。这也是早期j2ee体系被设计的极其复杂庞大的原因,如果没有微软和php,python之类的竞争,这游戏可能还会继续下去。 本质上,我觉得这和spring没什么关系。

我当然承认,我个人的水平和rj还是有一定差距的,当以spring刚推出的时候来说,没感觉差距大到不可逾越,因为至少早期的spring里面,其实没多少革命性的东西,实现难度要低于当年的hibernate。

早期的spring核心是ioc,而当年诸多有特点的ioc都没有发展起来,这里面扣除技术的因素,市场意识还是要算上一份的,sping通过胶水的方式,联合简化了众多的开源产品,用你的话说,降低了开发门槛,这是他的一个主要优势。大致和spring推出相同的时间,我曾经和国外的一个开源作者聊过同样的话题,希望他的作品能也有类似的考虑,但是Y完全拒绝,挺好的一个东西,没2年就消失了。

rj有什么样的生意头脑我不好说,但是能把springsource买到这么高的天价,没几个人吧。

没兴趣炫耀啥,如果有人98年就在北京作出了hibernate等级的东西我只能无语,要知道java什么时候进入企业市场? 那时候jdbc的实现程度才到多少一点, 就这样吧。

家园 对这个趋势的分析相当透彻。

也不知道这个趋势是因为应用的复杂程度增加了,还是因为需要快速实现应用所导致的软件复杂程度增加的缘故。

以前的操作系统几张软盘就可以,现在需要几个G,很难想象这样的操作系统里面没有很多的垃圾代码或者是根本就死了的代码。

大部分的应用软件大概也是这种情况。反正硬件能力在提高,软件里多一些垃圾也就不是大问题了。

这种情况下,到后来肯定就会是只有少数的人有可能熟悉整个框架,而大多数的人只需要把现成功能组装一下就可以了。

要熟悉市场需求这点就显得更重要了。

呵呵
家园 Spring和EJB不同之处在于实现的技术上

我没有看过EJB的源代码,但是EJB3居然要用Annotation来实现DI,这就看出来底层的实现相差十万八千里。 EJB3可以模仿DI,但是任何一个写过IOC container的人都知道这不是那么回事。 实现一个IOC container的功能,用J2SE只需要大概一个小时左右(包括debugging)。

另外的一个差别是AOP。最重要的区别,是Spring的transaction全部是用AOP实现的,非常简洁。EJB完全依赖application server来实现。

差很远吧?

家园 那php的资源简直就是泛滥成灾了

你找个优秀的java论坛源码来看看

家园 比较完语言,比较Framework,然后再比较OS,老毛

病了

家园 能看出来老虎很有功底,而且不是仅对于java

我觉的java确实提供了一个平台,让大家在中间件技术上竞争发展。ejb2.0到ejb3.0的变化,很明显的表现出技术和设计思想的创新,检验,竞争的积极过程。

至于带项目嘛,其实怎么带都可以叫做带。30岁就不碰代码管管项目的也很多,外包项目应该比较典型吧。因为一般只使用自己熟悉的并且成熟的构架,或者是客户指定的构架,精力主要花在客户业务式样和人工成本控制上,因此可能倾向于不希望太快的看到更多更新的技术构架和设计思想,毕竟重点是向客户交货赚钱。

家园 这个玩艺我也做过一个.net实现的

零五年左右做的,很晚很晚。没招儿,跟您二位比不得。那是也才刚毕业嘛。

也是一半像helper,一半像hibernate。

最早写这个的灵感是公司买了一套代码,类似hibernate,然后看看加了访问控制,用sqlserver的role,approle和自己拼查询条件各实现了一次。从这开始就不能跨数据库了。(做.net的跨啥库啊,嘿嘿)

后来开始接小网站的活了,为了适应托管网站的条件,减少配置时间。给每个实体加了大量的元数据自动快速建表建视图,分配角色权限(网站的角色没集中),精简了配置,把详细配置数据和代码紧紧贴

再然后加了一堆接口,给每个实体增加建表,备份等功能。

考虑到hibernate操作实体类麻烦,我还留了一大堆位置能直接传sql,字段表明从对着的元数据里挑,反正跨不了平台了,可劲造。linq比较无耻,他竟然有办法增加语法,让编译器读懂sql,我不服我不服我不服。。。

还被大伙攻击为本来把存储和实现分开就是个进步,你咋又倒回去了。我说我就想适度降低自由度嘛。。。。linq学我做什么dependency。。。

再然后熊仔意外的碰上虚拟机这种每天可以做n个,干掉n个的工作环境,发现还是有点好处的,又不想学linq,拿着自己的这个小玩意用在乱七八糟的

自打以后不写数据库程序了,就写一篇浅薄之作供老鸟们笑笑。

家园 国外的资源共享很少用论坛

都是maillist多

家园 php的web应用资源多过java有原因的

准确的说,某些web方面的开源应用(cms,论坛,简单电子商务应用)和部署、维护以及二次开发的难易程度有关,和host资源的多寡以及价格有关,这几项因素往往会超越技术层面成为决定因素。php在某种意义上说,是web开发的领域语言,其 dirty and quick的编码模式、低伸的学习曲线、相对价廉的外包开发资源,这些都很对web应用用户群的胃口,而且host资源多且便宜,所以在这些web应用开始在网络上流行的时候,php占了很大的优势,也就积累了极大资源优势。

但是发展的看,这些web应用逐渐成长,在应用的深度和广度上都开始进化,在二次开发的难度、伸缩性这些技术层面纷纷面临一些瓶颈,所以现在的web开发和应用开始出现变数,php自身在进化,从php5开始,OO和相对重量级的开发方法在语言层面开始慢慢得到支持,开发方面,大量的框架开始出现,散乱的“直写”方法不再被推荐,php的开发者开始注重工程方面的东西,同时,python,ruby 为代表的动态语言也登上舞台,django、ruby on rails走到了聚光灯下面,host资源也越来越多,吸引了一批php和java的程序员,尤其是java的程序员,rails的热度很大程度是java程序员扯起来的。从java本身来说,现有的比较通行的使用ssh搭建web应用,还是略嫌厚重了一点,现在很多人多在对java越来越重的状况开始反思,所以小羊觉得,web应用的开发,乱世刚起,也许静观一段时间才能分辨出真正的王者,也许根本就是诸侯争霸,没有王者,又或者,他们会在web开发的M,V,C,前台或者后台纷纷找到自己的位置,从此和谐相处过着幸福的生活。

家园 今天很无聊,随便找点茬

On September 26, 2005, Sun Microsystems and the Java Specification Request 154 Expert Group issued a maintenance release of the Servlet API. Under normal circumstances, a JSR maintenance releases includes just a handful of nominally interesting specification clarifications. However, in this case, the release added several new features and changes, and made enough of an impact on servlets to justify a bump in the version number to Servlet 2.5。

这玩意哪来的10几年?发言是不是太猖狂了?

其他的不想多说,但是银行业一般传统来说对新技术使用比较保守,比如java语言的大规模使用,就比其他行业迟了3,5年。现在还挺多项目都是10多20年前开发的基于c, 扩吧。

家园 hehe, 会个老帖子

另外,国内环境所迫,很多程序员有故意写这种风格的代码习惯,这样可以有效保护自己的个人利益,虽然很无聊。

花旗国的洋IT民工也这样,程度有差别,不这样的是少数。

家园 找茬你也得有点敬业精神,对不对?

http://en.wikipedia.org/wiki/Java_Servlet

Servlet 1.0, 1997

Servlet 2.1, 1998, First official specification, added RequestDispatcher, ServletContext。

伸个懒腰,今年是公元的哪一年啊?

全看树展主题 · 分页首页 上页
/ 14
下页 末页


有趣有益,互惠互利;开阔视野,博采众长。
虚拟的网络,真实的人。天南地北客,相逢皆朋友

Copyright © cchere 西西河