`
Joo
  • 浏览: 45292 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
文章分类
社区版块
存档分类
最新评论
阅读更多
    做Java也有三年了,一直做的企业开发.也一致关注互联网开发领域的技术动态.最近一直在考虑做企业应用和做互联网,他俩之间到底有多少异同,就JAVA领域来说,二者可公用的东西可谓不少,从前端技术到构架分层到后台持久化,从中间件使用到优化策略到建模设计(当然,非JAVA领域一样如此).既然如此,二者的区别究竟在哪?这样的区别又给各自带来怎样的特殊性?
    就一般我们提到的PV量/数据量/可用性/实时性要求等来说,虽然表面上的确如此,但是又好像不能作为二者分水岭的清晰界限.而且在这些方面,清一色的都是在说一件事:做互联网的比做企业应用的NB.我这里只想抛砖引玉,不想开口水仗,也不求能有正确答案(也不可能有).另外,也希望各自开发/构架/测试/运营相关人员能从自己感受出发说说二者技术上,影响上,趋势上的特点.
    题目有点虚大空,各位请不拘一格地开始.

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

    注解:这贴的另外一个目的,还在于让许多刚刚起步的程序员了解互联网开发和企业应用的区别的同时,了解二者各自需要怎样的人,这一点很重要,自我感受很深.因为一直做的企业应用,但内心却固执的认为做IT的理应以技术为上,在技术和业务知识二者中往往更倾向于前者的学习和加强,自身业务知识进步缓慢.另一方面,在解决问题时,也倾向于从纯技术角度看来问题,忽视业务层面因素,导致很多问题分析不在点上.到最后造成这样一个情景,就是一边努力加强技术,一边感叹学来的技术无用武之地,却在自己的缺口上不自知.这显然偏离了企业开发对于程序员的要求,同时也经常自我困扰职业规划找不到出路.因此,希望通过这个讨论让大家明白各自从事领域的侧重点,以及核心价值所在,抓住核心价值才能谈创造核心价值,不至事倍功半.
    在现在的公司高层宣导一句话,叫做"做具有攻击力的IT",意即做行业(企业)应用的人,除了IT技术(亦然很重要,我们这里牛人大把捞),还要能占到IT技术之上,看到所做事情之价值,分析将做事情之必要性,能与业务与需求PK,真正做到除了满足需求,更要能引领业务需求.
分享到:
评论
28 楼 yeshucheng 2010-03-18  
还别说,整体上我还是认同楼主说的一些观点。

理论上企业级应用和互联网他们直接是有交点的,这个交点看你如何界定。
企业级应用开发的侧重点和互联网还是不一样的。企业级应用它更偏向于业务的成熟度,然后技术围绕它而展开,所以这里就有一个所谓的稳定性和业务的熟悉度了。前面也有朋友说到企业应用一样有新技术的渗入,这个当然是不错的。但是前提还是在公司规模的大小有着至关重要的约束。国内多数应用级的开发都还是建立在稳定的订单,因此公司不会拿一个新技术去冲撞所谓的关系客户,毕竟它是跟钱过不去。至于说到互联网,它本身是一个新兴的事物(相对而言),那也就意味着它具备风险的渗入,也正是由于它的不可确定性,可以带来太多的新鲜事物,这里就有所谓的大家谈到比较多的前沿技术。作为我个人而言,做了企业级开发7年多,与此同时带着个人兴趣不断感受着互联网前沿技术,自己体会感觉互联网的水很深。要我真正去比较他们,只能说各个需求点不同而已。简单来说,企业级开发是什么?我脑子估计浮现的多半是一些关键字词:存储过程、报表、数据安全、验证、功能点、行业标准等等。那互联网呢?关键字:高并发、命中率、PV,用户体验、响应速度、商业模式等等。其实自己很早也想开一篇这样的帖子来跟大家探讨下。讲到最后,还是要说:兴趣是最大的老师!
27 楼 David0203 2010-03-17  
都是产品,侧重点不同。
互联网产品需求变更比较频繁,尤其业务部门比较白痴的话要面临着为了几千pv对系统动手术的风险。所以架构要考虑维护成本。企业应用业务流程相对稳定,组件化、可定制做的好的话相对来说比互联网项目省心的多。另外互联网项目要面临性能上挑战大一些。当然不排除企业应用也有大并发的需求,具体问题具体分析。本人做过企业应用做好互联网项目,打算以后不会去互联网公司了。个人意见而已。
26 楼 forsecond 2010-03-15  
认真看了这篇帖子,获益匪浅。
25 楼 Joo 2010-03-14  
fly_ever 写道
yimlin 写道
fly_ever 写道


企业应用:相当于做项目,最主要的是完成功能,考虑安全性,稳定性,不太注重用户的体验,因为是一些固定的用户,用到的技术也是当前比较稳定的技术,而不会去考虑最新技术。
互联网应用:相当于做产品,完成功能的同时,需要吸引更多的用户加入,因此需要很注重产品的细节,注重用户体验,会不断引进当前最新的技术,以保持该产品的竞争力。



这话说的....
就算企业应用也不都是千篇一律的,互连网应用也一样。

马云的alibaba和taobao,在很多人眼里算互连网应用,可是他们就不属于你说的,他们的成功在于商业模式上的成功,技术只是达到商业目的的一个手段。

退回来说, 难道企业应用就是不会引入新技术?


其实哪些是企业应用,哪些是互联网应用,其中的区分也不是很严格的,只能说是一般而论,当然不是千篇一律的。
比如说各个银行的网银系统,你说是企业应用还是互联网应用呢?据我所知,有很多人会因为某个银行的网银不好用而放弃成为该银行的客户。

我说企业应用更会考虑稳定性,因此应该说企业应用一般会引进稳定的技术,至于稳定的技术是不是新技术,那就不得而知了。



银行当然是企业应用 是什么会让你觉得它是互联网应用?就因为它使用了浏览器?
24 楼 fly_ever 2010-03-13  
yimlin 写道
fly_ever 写道


企业应用:相当于做项目,最主要的是完成功能,考虑安全性,稳定性,不太注重用户的体验,因为是一些固定的用户,用到的技术也是当前比较稳定的技术,而不会去考虑最新技术。
互联网应用:相当于做产品,完成功能的同时,需要吸引更多的用户加入,因此需要很注重产品的细节,注重用户体验,会不断引进当前最新的技术,以保持该产品的竞争力。



这话说的....
就算企业应用也不都是千篇一律的,互连网应用也一样。

马云的alibaba和taobao,在很多人眼里算互连网应用,可是他们就不属于你说的,他们的成功在于商业模式上的成功,技术只是达到商业目的的一个手段。

退回来说, 难道企业应用就是不会引入新技术?


其实哪些是企业应用,哪些是互联网应用,其中的区分也不是很严格的,只能说是一般而论,当然不是千篇一律的。
比如说各个银行的网银系统,你说是企业应用还是互联网应用呢?据我所知,有很多人会因为某个银行的网银不好用而放弃成为该银行的客户。

我说企业应用更会考虑稳定性,因此应该说企业应用一般会引进稳定的技术,至于稳定的技术是不是新技术,那就不得而知了。

23 楼 jkfzero 2010-03-13  
做了一年前端开发工程师,我感觉互联网和企业应用差别还是挺大的。
对于前端而言,互联网特点是——简介,经可能的让用户以最小的操作代价获得尽可能多的收益,而企业应用的特点是——强大,可以完成非常复杂的操作,毕竟这是工作,所以即使用户操作界面相对复杂用户还是有耐心完成操作流程的。
对于后台而言,互联网的特点是响应快速,承压性好。而企业应用的特点是稳定性好,事务处理严格。
从历史来看互联网引领技术发展潮流不是浪得虚名,当年Java不就是以最适合互联网应用而发展起来的么?而现在J2EE技术已经作为企业应用最为常见的技术了,做互联网的反而用Java不是很多了,所以我相信动态语言将来一定会在企业应用中大放异彩。
楼上的楼上那个项目产品的看法我也比较同意,企业应用的产品比较注重产品周期,注重功能需求,对进度,成本核算严格。而互联网的产品则是注重创新,注重小而快的迭代(很多网站上有的“我们每天都在进步”)。
22 楼 yimlin 2010-03-12  
fly_ever 写道


企业应用:相当于做项目,最主要的是完成功能,考虑安全性,稳定性,不太注重用户的体验,因为是一些固定的用户,用到的技术也是当前比较稳定的技术,而不会去考虑最新技术。
互联网应用:相当于做产品,完成功能的同时,需要吸引更多的用户加入,因此需要很注重产品的细节,注重用户体验,会不断引进当前最新的技术,以保持该产品的竞争力。



这话说的....
就算企业应用也不都是千篇一律的,互连网应用也一样。

马云的alibaba和taobao,在很多人眼里算互连网应用,可是他们就不属于你说的,他们的成功在于商业模式上的成功,技术只是达到商业目的的一个手段。

退回来说, 难道企业应用就是不会引入新技术?
21 楼 fly_ever 2010-03-12  


企业应用:相当于做项目,最主要的是完成功能,考虑安全性,稳定性,不太注重用户的体验,因为是一些固定的用户,用到的技术也是当前比较稳定的技术,而不会去考虑最新技术。
互联网应用:相当于做产品,完成功能的同时,需要吸引更多的用户加入,因此需要很注重产品的细节,注重用户体验,会不断引进当前最新的技术,以保持该产品的竞争力。
20 楼 berlou 2010-03-12  
侧重点和关注的市场不一样吧, 没有啥本质上的区别。
垃圾程序员到哪都不太会有出息。
19 楼 xtuhuajx 2010-03-12  
互联网和企业应用个人觉得各有长处,但是如果想自己创业的话应该往互联网这个方向发展可能好些!
18 楼 Joo 2010-03-12  
superheizai 写道
beeke 写道
我在互联网和企业应用各干了5年以上,两者区别还是蛮大的。随便说几点:

互联网:关注响应速度,网络安全,更新频繁。通常是分布式存储数据,也经常利用文件系统。多使用海量服务器提高并发量,大量使用开源服务器软件和数据库。

企业应用:关注数据安全,对数据精确性非常敏感。由于业务复杂造成繁琐的计算,很多地方会使用存储过程。多使用小型机甚至大机等集中处理,单表几千万甚至上亿条数据的随处可见。更信赖oracle/weblogic/websphere等商业软件。通常比较保守,不会采用最新的开源软件而是稳妥解决方案(我见到很多系统还跑在jdk1.3上)

从开发者角度来说:互联网对纯技术要求比较高。企业应用对业务要求比较高。但是很难说谁比谁NB,毕竟:复杂的业务模型同样需要强大的技术背景。OO、Pattern、DDD一样都不能少

当然,我说的企业应用特指银行保险电信之类的大型企业应用。
小型企业应用就没那么多讲究了。


不愧是老资格的见解!呵呵,我们单位的几个系统跑在1.4上。

我之前的公司用的1.6,现在的公司倒退到1.4,搞得我有时用泛型报错,郁闷...
不过在DB上写procedure倒的确是多,有近70%的逻辑都在DB层,每次生产上出了问题就去翻sql文件,密密麻麻的分析得头昏脑胀,一直想重构下都不知从何下手.正好就此展开,企业应用一定要把大量逻辑集中在DB层么.我觉得主要的原因是大部分的操作直接针对数据表的操作,可能500行的过程里面有400行都是DML,剩下的一丁点逻辑如果单独拿出来封装到java得不偿失,造成现在这种境况.

因此得出一个结论:企业应用业务多,数据DML多,除了较复杂的报表需要做ETL和预算外,大多都是简单的读写,于是将业务降低放到DB层和数据浆糊在一起;而互联网应用更多的是数据导向的,数据是重中之重,并且在直接数据之上还会做许多复杂的数据分析/重整/提取,比如分析某用户一段时间下的浏览历史,分析他的个人喜好,预测他可能的范围等等,并将结果放到缓存中提高命中率和响应效率,因此对算法的要求相对于OO更多一些.
17 楼 highriver 2010-03-12  
企业应用的PV怎么会上去呢,面对的用户数量级怎么能和互联网应用一样呢? 个人觉得,很多时候企业应用不会涉及到太多高性能方面的内容.
16 楼 Joo 2010-03-12  
comsci 写道
企业内部应用的系统和技术,在条件合适的情况下,极有可能转化为互联网应用,最开始的即时通信平台就是在企业内部使用的,后来才推广到互联网上面,这样的例子非常多,我们现在的互联网在初期也就是军事和科研部门内部通讯网络,就是一种企业应用,在条件成熟后,就可以推广到整个社会领域,成为广域条件下的应用


虽然可转化,但是决不仅仅是把口一开到internet上,企业应用就摇身一变成为互联网应用了.而更多的应该是一个量变到质变的过程.PV上去了,于是要考虑性能优化,考虑集群,考虑分布式缓存,分布式计算;数据量上来了,于是要考虑数据库垂直或水平切分,要考虑多点备份策略,考虑重新构建文件系统等等.更有甚者,可能从构架上都要动动筋骨才能适应互联网的需求,而这一切又必须对客户透明下切换,实施难度不一般.所以我觉得,如果真有你说的这种情况,那也只是说业务逻辑被迁移到互联网,而从底层技术上来说,可能已经脱胎换骨了.
15 楼 superheizai 2010-03-12  
beeke 写道
我在互联网和企业应用各干了5年以上,两者区别还是蛮大的。随便说几点:

互联网:关注响应速度,网络安全,更新频繁。通常是分布式存储数据,也经常利用文件系统。多使用海量服务器提高并发量,大量使用开源服务器软件和数据库。

企业应用:关注数据安全,对数据精确性非常敏感。由于业务复杂造成繁琐的计算,很多地方会使用存储过程。多使用小型机甚至大机等集中处理,单表几千万甚至上亿条数据的随处可见。更信赖oracle/weblogic/websphere等商业软件。通常比较保守,不会采用最新的开源软件而是稳妥解决方案(我见到很多系统还跑在jdk1.3上)

从开发者角度来说:互联网对纯技术要求比较高。企业应用对业务要求比较高。但是很难说谁比谁NB,毕竟:复杂的业务模型同样需要强大的技术背景。OO、Pattern、DDD一样都不能少

当然,我说的企业应用特指银行保险电信之类的大型企业应用。
小型企业应用就没那么多讲究了。


不愧是老资格的见解!呵呵,我们单位的几个系统跑在1.4上。
14 楼 NumbCoder 2010-03-12  
beeke 写道
我在互联网和企业应用各干了5年以上,两者区别还是蛮大的。随便说几点:

互联网:关注响应速度,网络安全,更新频繁。通常是分布式存储数据,也经常利用文件系统。多使用海量服务器提高并发量,大量使用开源服务器软件和数据库。

企业应用:关注数据安全,对数据精确性非常敏感。由于业务复杂造成繁琐的计算,很多地方会使用存储过程。多使用小型机甚至大机等集中处理,单表几千万甚至上亿条数据的随处可见。更信赖oracle/weblogic/websphere等商业软件。通常比较保守,不会采用最新的开源软件而是稳妥解决方案(我见到很多系统还跑在jdk1.3上)

从开发者角度来说:互联网对纯技术要求比较高。企业应用对业务要求比较高。但是很难说谁比谁NB,毕竟:复杂的业务模型同样需要强大的技术背景。OO、Pattern、DDD一样都不能少

当然,我说的企业应用特指银行保险电信之类的大型企业应用。
小型企业应用就没那么多讲究了。

比较认同你的看法
13 楼 comsci 2010-03-12  
企业内部应用的系统和技术,在条件合适的情况下,极有可能转化为互联网应用,最开始的即时通信平台就是在企业内部使用的,后来才推广到互联网上面,这样的例子非常多,我们现在的互联网在初期也就是军事和科研部门内部通讯网络,就是一种企业应用,在条件成熟后,就可以推广到整个社会领域,成为广域条件下的应用
12 楼 edge 2010-03-12  
两者在所处环境和目标上面均有比较大的差异,决定了其开发、架构等方面的不同。有兴趣可以看我的博客上面从架构的角度进行的分析。
11 楼 beeke 2010-03-12  
我在互联网和企业应用各干了5年以上,两者区别还是蛮大的。随便说几点:

互联网:关注响应速度,网络安全,更新频繁。通常是分布式存储数据,也经常利用文件系统。多使用海量服务器提高并发量,大量使用开源服务器软件和数据库。

企业应用:关注数据安全,对数据精确性非常敏感。由于业务复杂造成繁琐的计算,很多地方会使用存储过程。多使用小型机甚至大机等集中处理,单表几千万甚至上亿条数据的随处可见。更信赖oracle/weblogic/websphere等商业软件。通常比较保守,不会采用最新的开源软件而是稳妥解决方案(我见到很多系统还跑在jdk1.3上)

从开发者角度来说:互联网对纯技术要求比较高。企业应用对业务要求比较高。但是很难说谁比谁NB,毕竟:复杂的业务模型同样需要强大的技术背景。OO、Pattern、DDD一样都不能少

当然,我说的企业应用特指银行保险电信之类的大型企业应用。
小型企业应用就没那么多讲究了。
10 楼 highriver 2010-03-12  
互联网对性能的要求,用户体验更高一些.围绕产品在做.
企业开发很多时候是在做项目,比如在一些已经成功的项目基础上做二次开发.
做互联网有一点是让你时刻揣着一颗创业的心.
9 楼 jameswxx 2010-03-12  
     我觉得,目前国内的很多企业应用注重的都是系统的功能,而忽视了系统的性能,我说的是部分,如果冒犯到做企业应用的同学,实在不是有心的。 互联网应用不但要求功能的正确,还要求性能非常好。而且两者面对的用户基数是不一样的,显然,大部分互联网应用的用户要比企业应用的用户大很多。
    
      那么,系统的特性,就决定了两者的技术特点,正像上面一个朋友说的,企业应用有成熟的框架和实践经验,要做的只是针对一个具体的企业应用,来选择合适的解决方案。但是互联网应用仅仅要求这些是不够的,面对庞大的用户,有很多问题可能之前都没有很好的解决方案,需要自己摸索,而且负载均衡,安全,或者集群,存储问题,哪样都少不了。我再次强调,企业应用也有很有挑战性的应用,如金融系统,电信系统,但是这代表不了企业应用的全部,纵观国内,大部分的企业应用是什么状况,恐怕大家心里都清楚,而互联网应用是不能含糊的,是真刀实枪的。

相关推荐

Global site tag (gtag.js) - Google Analytics