`
javatracker
  • 浏览: 25288 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

互联网网站架构升级----编程语言的转变

阅读更多

    目前互联网飞速发展,各种编程语言不断出现,越来越多的互联网创业团队选择这些具有高效开发效率语言,如Ruby、PHP、.Net等,而Java这种看起来比较笨重的语言似乎在互联网领域越来越落寞。

    然而随着公司的发展,特别是开发人员几十人、几百人甚至上千人的时候,这么多人维护一个项目将是一个噩梦,拆分在所难免。这个时候就要回过头来重新审视初始选择的语言及系统架构了,看这种语言能否应付大团队系统作战,是否有成熟的大型分布式解决方案,甚至是否会影响公司上市后的股价,于是架构升级开始进行。

    架构升级有三种,一种是在原有语言上进行升级,一种是前台继续沿用老的语言,后台转向更规范的,更能适应大团队作战的,有更多成熟解决方案案例的的语言,比如Java,还有一种是彻底的所有系统都转向某种语言。至于采用哪种策略,各个公司会根据投入和产出作出取舍,这里不是讨论哪种方案是最好的,没有最好的,只有最适合的。但不管采用哪种语言,业务拆分是在所难免的。

 

    先从编程语言方面来讨论一下架构升级,由于这里Java的社区,就将被转向的新语言定为Java,实际上有不少公司也确实是转向了Java。目前使用Ruby开发遇到瓶颈的公司应该不太多,但使用PHP和.Net做前期开发语言,中期遇到瓶颈正寻求突破的中型公司应该有一些。这些公司中有的进一步和相对封闭一点的语言(如.net)捆绑在一起,在老语言的基础上实现分布式架构;有的前端Web部分仍用老语言,后端核心业务被抽出用Java语言实现,同时引入Java基础框架和中间件来做底层支撑技术;而另一部分则彻底的完全倒向了Java系统。

 

    这三种方式有各自的好处和不足,大中型系统转向Java系统技术上不存在什么问题,毕竟已经有很多成熟的方案在大公司已经被多次证明是可行的,而且还有大量的开源组件来支持。语言的转变最大的问题来自于人,一批辛辛苦苦把网站一点一点做起来的、眼看着自己的劳动成果已经获得了用户的认可的、公司快要上市自己也将要收获果实的老开发人员,他们对这套系统有很深的感情,也有很大的利益,抛弃了老的语言,也就是抛弃了他们的劳动成果,也阻断了他们在这个公司的前途,甚至影响了他们即得的利益。这个时候他们面前只有两条道路可走,一条是离开,但辛辛苦苦熬了那么多年,眼看就快要上市了,此时离开肯定心有不甘;另一条就是向Java转变,但面对大批的空降而来的Java方面的高端人才,他们的优势是什么?也许你会说是业务,是的,是业务,他们本该拥有技术和业务两种优势的,现在就变成了一种,而这种优势又成了博弈的砝码,向左转可以结合Java的技术的优势使公司更上一层楼,但向右转就可以阻止Java技术来实现本公司的业务,使业务迁移失败,使公司被迫再次走上老语言开发之路,使自己重新获得技术和业务上的双重优势。

 

    实际上大部分转型公司的大部分人都会走上抵制新语言之路,这不是这些人有多么恶劣,这是人之常情,是利益所在。用Java每迁移成功一个项目,就等于埋葬了别人的一个成果,就阻断了别人的一块利益,是人都会有抵触情绪的。这时就要看公司对这些人做出怎样的补偿了,或升职加薪给期权,或使公司业务更快发展,新的业务的开拓可以减轻老员工的失落感。

 

    这时候公司通常会采取上面的三种策略方式,如果公司在原来已经有了大量技术上和高端人才上的积累,而且对在老语言上进行架构升级也比较有信心,那么公司一般会采取这种最稳妥的方式--在老语言的基础上进行架构改造。如果对老的语言进行大型分布式架构升级没有太大的自信,但又怕老开发人员产生大的阻力,同时对Java语言也没太大信心的话,就会对前端业务不动,先从后端改造开始,比如引入一些Java中间件产品,抽出一些稳定的核心应用用Java实现,后期再看是将所有系统都改成Java语言还是前后端采用两种语言。最后一种是由于本公司本来就没有什么基础技术的积累,对老语言的将来没多大信心或者觉得会影响公司将来的发展,那么公司将会下大决心将语言转变进行到底,为公司后期告诉发展打下良好的基础。

 

 

 

   

    

13
1
分享到:
评论
9 楼 uu4u 2010-10-06  
说的没错,我也曾这样把别人替代了。
事实上对于商业而言,都是求速度、和经济收入,但是一旦之前埋下的隐患快要爆发,发展速度下降、经济收入降低,动了老板的筋骨,他肯定要实施一种策略去改变现状,寻求一种符合趋势和降低成本的解决方案。
8 楼 tedeyang 2010-10-04  
确实,
语言转型总是是造成一批人的离职.
我经历过这种事.
7 楼 javatracker 2010-09-28  
木哥哥 写道
YY强身。


没YY,而是深处此种水深火热之中,有感而发。
6 楼 木哥哥 2010-09-28  
YY强身。
5 楼 blogaaa 2010-09-26  
很复杂也很简单的问题,老板的才华和魄力以及得力的助手
4 楼 javatracker 2010-09-25  
forchenyun 写道
ntyangxd 写道
为什么一定要转JAVA呢,给人很有自恋的感觉,很多大型网站还不是在用PHP,Python之类的。后台的优化又不代表一定是语言的优化,服务器软件,硬件,数据库,方方面面涉及的很多的。

你有点局限于语言了。

对php不了解,但是python你想让数百上千个人去维护,有点开玩笑了
语言不代表架构的优劣,但是语言背后的社区和opensource决定了你未来架构的走向,至少在国内是这样


恩,是的,我这里没说一定要转某种语言,而是有三种策略,在原有语言上升级,前端不转后端转,或者完全转,快速开发语言注定大团对作战比较麻烦,你要说一定在这个上面做那就要花大气力,而且大型系统这种语言的成果案例的多少、开源社区的支持、这方面人才的多少都是要考虑的。当然转语言也有很大风险,关键看公司实际情况。
3 楼 forchenyun 2010-09-25  
ntyangxd 写道
为什么一定要转JAVA呢,给人很有自恋的感觉,很多大型网站还不是在用PHP,Python之类的。后台的优化又不代表一定是语言的优化,服务器软件,硬件,数据库,方方面面涉及的很多的。

你有点局限于语言了。

对php不了解,但是python你想让数百上千个人去维护,有点开玩笑了
语言不代表架构的优劣,但是语言背后的社区和opensource决定了你未来架构的走向,至少在国内是这样
2 楼 ntyangxd 2010-09-25  
为什么一定要转JAVA呢,给人很有自恋的感觉,很多大型网站还不是在用PHP,Python之类的。后台的优化又不代表一定是语言的优化,服务器软件,硬件,数据库,方方面面涉及的很多的。

你有点局限于语言了。
1 楼 j2eeli 2010-09-25  
分析得有一定深度

相关推荐

    新版Android开发教程.rar

    ----------------------------------- Android 编程基础 1 封面----------------------------------- Android 编程基础 2 开放手机联盟 --Open --Open --Open --Open Handset Handset Handset Handset Alliance ...

    笔记记录分享网站论文-笔记记录分享网站-java-文档-论文

    1. **开发语言**:Java,作为一种广泛应用的编程语言,具有跨平台性、面向对象等特点。 2. **框架**:Spring Boot,简化了Spring应用的初始搭建以及开发过程,支持自动配置、外部化配置等特性。 3. **架构模式**:B/...

    技术篇-SOA架构体系(课程笔记)

    - 从面向对象编程到面向服务编程的转变,强调服务的提供而非具体对象的实现。 4. **IT架构的发展推动**: - 传统架构:基于消息传递的点对点模式,耦合度高。 - 过渡架构:企业应用整合(EAI),通过中心化的...

    VB+ACCESS 轻松升级为网络版应用程序 (CS架构).7z

    VB(Visual Basic)是一种由微软开发的面向对象的编程语言,它以其简单易学、开发效率高而受到许多初学者和专业开发者的喜爱。ACCESS则是微软的桌面数据库管理系统,提供了强大的数据存储和管理功能,特别适合小型到...

    大型网站架构演变和知识体系

    2. **编程语言与框架**:如Java、Python、Node.js等,以及对应的Spring Boot、Django、Express等开发框架。 3. **分布式系统**:理解CAP原理、一致性哈希、分布式锁等,以及如何设计高可用、容错的分布式系统。 4....

    Uber外卖平台国际化架构演化之路.pdf

    - Uber最初的架构是一个单体结构,从2009年开始逐渐转变为微服务架构,编程语言从Python/JavaScript转向Golang/Java,数据库从MySQL升级到Cassandra。 - Uber Eats的起点是基于微服务、Golang和Cassandra,但随着...

    asp和asp.net课件

    - **B/S架构**(Browser/Server):随着互联网的发展,B/S架构逐渐兴起,用户通过浏览器访问Web应用,无需在本地安装软件,降低了部署和维护成本。ASP.NET便是构建B/S应用的重要工具,它可以生成HTML响应,通过HTTP...

    C#.NET开发者指南计算机专业毕业设计外文翻译-中英文对照.docx

    【C#.NET 开发者指南】是一份针对C#.NET编程的详细教程,该文档包含了对.NET平台的全面介绍和C#编程语言的解析。文档的前言指出,.NET平台自发布以来受到了广大开发者和业界的高度关注,全球范围内有大量的开发者...

    asp jsp php动态网页开发技术研究

    随着互联网技术的迅速发展,用户对于网站的需求已经从简单的信息展示转变为更加个性化、交互式的体验。为了满足这些需求,传统的静态网页已经逐渐被动态网页所取代。动态网页能够根据用户的输入或服务器的状态变化...

    C#完全手册.pdf

    - **Microsoft.NET**:这是微软在2000年提出的一项战略,旨在推动互联网向一个更加统一、高效、安全的组件交互平台转变。.NET不仅仅是技术上的革新,更是对现有软件架构的一次颠覆性升级,它让软件不仅限于传统的...

    图书管理系统的设计及开发.docx

    - 图书管理系统通常由CS(Client-Server)架构向BS(Browser-Server)架构转变,以适应互联网的广泛使用和信息交流的需求。 - Oracle数据库被选中,因为其高效的数据检索能力、稳定性和良好的性能,适合处理大量...

    36-0-0软件工程概述1

    1. **新环境和新技术出现迫使软件升级**:科技的进步催生了新的操作系统、编程语言和开发工具。例如,云计算、大数据、人工智能等新兴技术的发展,要求软件能够与这些新技术兼容,提供更高效的服务。同时,移动...

    基于 Flex的企业内部管理系统的设计与实现

    它采用了面向对象的编程语言ActionScript 3.0,该语言内置了支持E4X(ECMAScript for XML)的XML操作类,使得Flex编写的客户端程序能够简单且高效地处理XML数据。Flex还提供了一个强大的用户界面组件库,使开发者...

    基于JAVA语言固定资产管理系统.doc

    随着互联网技术的迅猛发展,信息管理需求已经从简单的数据浏览与发布,向更加高效、便捷的服务转变。在此背景下,企业对固定资产管理提出了更高的要求,迫切需要通过信息化手段,提升固定资产的管理效率,降低管理...

    在线答题系统的设计与实现.pdf

    开发语言C#是.NET Framework的核心语言,具有现代编程语言的特性,如面向对象、类型安全和垃圾回收机制,使得代码编写更加简洁、高效。同时,C#与ASP.NET结合,为开发在线答题系统提供了强大的后盾。 数据库方面,...

    基于jsp的某游戏官方网站源码数据库论文.doc

    JSP(Java Server Pages)技术作为服务器端编程语言,以其与Java语言的无缝集成和动态网页生成能力,为系统的开发提供了便利。同时,数据库选用MySQL,这是一种高效、稳定的开源关系型数据库管理系统,能够有效地...

Global site tag (gtag.js) - Google Analytics