• 朔州:为母亲河清淤化污 重还塞上绿洲美丽 2019-07-23
  • 古天乐力压刘德华 首度斩获香港电影金像奖最佳男主角 2019-07-23
  • 我们在星星上再次相遇——2017凤凰年度好书发布 2019-07-21
  • 经济日报多媒体数字报刊 2019-07-21
  • 618史上最壕“买家”现身 Google以 5.5亿美元投资京东 2019-07-20
  • 【理上网来·喜迎十九大】不忘初心、继续前进,勇于全面深化改革 2019-07-20
  • 习近平主持上海合作组织青岛峰会小范围会谈 2019-07-18
  • 第536期:每天喝多少绿茶才有健康效应? 2019-07-17
  • 中兴通讯:美国商务部制裁极不公平,不能接受! 2019-07-17
  • 九个字带您感知十九大报告的民生温度 2019-07-13
  • LADY咔咔(42) 别克GL6不看广告看疗效 2019-07-10
  • 全国失信被执行人联合惩戒效果不断显现 2019-07-09
  • 外媒关注“特金会”严密安保:朝方自带卫生间 2019-07-06
  • 三江源通天河流域发现两千年前岩画 2019-07-04
  • 专题:信仰凝聚力量 弘扬社会主义核心价值观 2019-07-04
  • 网站开发里面选择语言的考量因素有哪些?

    日期:2019-06-20 11:37:59 作者:果冻 出自:辽宁快乐12直选走势图

    辽宁快乐12直选走势图 www.rfqk.net 如何将Node与现有的架构融合以面对新的无线场景,并更好地提升开发效率,我们主要阐述了在当前成熟的体系下向Node演进的一个思路,当然这并不是唯-路径。

    也有很多程序员讨论是否要将后端的Java体系全部替换为Node体系,这就涉及Java技术栈和Node技术栈的比较,以下是笔者关于该问题的思考。

    image.png

    我们从语言特性、开发效率和成本因素三个方面比较Java与作为后来者的Node。

    语言特性

    JavaScript作为Node上运行的语言,和Java相比,优缺点很明显。JavaScript语法简单,很容易编写基于事件的驱动的实现,但是JavaScript基于面向对象的描述能力偏弱,不像Java是真正的面向对象语言,同时JavaScript对数据类型的定义也比较单一,要么是数值类型要么是字符类型。

    很明显,Java更擅长构建复杂逻辑的大型应用程序。在语言运行效率上,JavaScript原本是解释执行,Java是编译执行,但由于Node做了优化,所以两者运行效率差别不大。

    开发效率

    开发效率可以从语言的复杂度、程序员培养、开发工具包的丰富性以及编码效率几个方面比较。

    语言的复杂度

    从开发角度来看,Java和JavaScript都不需要关心内存的管理,都是基于虚拟机来管理内存;从并发角度来看,JavaScript是基于事件触发的,而Java是基于线程的,因此JavaScript更占优势;此外,JavaScript是无阻塞IO的,在I/O效率上比Java有优势(尽管Java8也将更好地支持异步I/O)。

    程序员培养

    目前Java语言仍然是仅次于C语言的第二大编程语言,而JavaScript排在第10位,Java程序员队伍要比JavaScript大很多,很显然招聘Java程序员要比招聘JavaScript程序员更容易。

    开发工具包

    很多时候-个语言的开发效率要看这个语言的支持工具包和组件的丰富性,Java经过这么多年的发展,工具类库已经非常丰富,几乎任何你想要的工具类库都能在网上找到。JavaScript虽然也发展了很长时间,但是基于JavaScript的工具类库主要集中在前端,能够直接用于Node的仍然很少。

    当然Node的社区非?;钤?,可以预见Node的工具类库增长也会非常迅速。但是要达到Java的规模尚需时日。

    编码效率

    Java语言的运行基于JVM,但是Java的部署效率稍差;JavaScript使测试更加简单,但是debug机制仍然不完善。

    image.png

    成本因素

    前面主要是从技术角度考虑,但是如果要从成熟的Java体系迁移到Node,成本也是一个重要的考虑因素。首先是学习成本。如果公司大部分是Java程序员,现在要迁住Node,很明显这个学习成本会非常巨大,即使这个迁移是渐进式的,长期来看仍然是要将一部分Java程序员替换成Javascript程序员。

    先不管程序员是公司内部培养的还是从外部招聘的我们都可以算一下公司招聘一名程序员的成本有多大:一名普通工程师的年薪假定为10万元,猎头费一般是年薪的20%以上,也就是2万元、再加上一个月的实习成本1万元,加在一起约3万元。这对于有1万名以上开发人员的大公司而言,人力成本可想而知。

    如果招聘应届生,由于应届生的培养周期更长,学习成本会更高。其次是环境成本。公司的基础服务产品如中间件是基于Java开发的,如果要替换成Javascript,必然要再另外开发,还得开发配套的运维工具等,这个成本也可想而知。最后是维护成本。Java和Javascripti都是基于容器运行的,和V8引擘相比,程序员显然对JVM更熟悉。另外,从排查问题的难易程度来看,针对JM的工具显然更完善。

    人的因素

    对于一家成熟的公司而言,假如现有的Web系统都改用Node实现、必然会有很多Java工程师要从事Node的开发,因为已有的前端工程师人数肯定支撑不了现有业务的发展。我们假定一部分Java工程师愿意学习Javascript并成为全栈工程师,那么他们是否也愿意用两种不同的语言完成同一个任务呢?正常来说,如果能用同一个任务分成神不同的方式来完成的必要性就会大打折扣。

    所以从这些角度来看,要让一家很成熟的公司切换语言是非常困难的。尽管替换技术栈很困难,但是无论如何都应该统一技术栈,尤其是主流的网站建设业务开发,更应该使用统一的技术栈这就像秦始皇统一语言一样所带来的好处显而易见。

    (编辑:果冻)



    上一篇:企业网站制作核心??榧氨匦胍⒁獾娜阋?/a> 下一篇:网站制作里分布式网站会遇到的典型问题
    18585853123
    在线留言
  • 朔州:为母亲河清淤化污 重还塞上绿洲美丽 2019-07-23
  • 古天乐力压刘德华 首度斩获香港电影金像奖最佳男主角 2019-07-23
  • 我们在星星上再次相遇——2017凤凰年度好书发布 2019-07-21
  • 经济日报多媒体数字报刊 2019-07-21
  • 618史上最壕“买家”现身 Google以 5.5亿美元投资京东 2019-07-20
  • 【理上网来·喜迎十九大】不忘初心、继续前进,勇于全面深化改革 2019-07-20
  • 习近平主持上海合作组织青岛峰会小范围会谈 2019-07-18
  • 第536期:每天喝多少绿茶才有健康效应? 2019-07-17
  • 中兴通讯:美国商务部制裁极不公平,不能接受! 2019-07-17
  • 九个字带您感知十九大报告的民生温度 2019-07-13
  • LADY咔咔(42) 别克GL6不看广告看疗效 2019-07-10
  • 全国失信被执行人联合惩戒效果不断显现 2019-07-09
  • 外媒关注“特金会”严密安保:朝方自带卫生间 2019-07-06
  • 三江源通天河流域发现两千年前岩画 2019-07-04
  • 专题:信仰凝聚力量 弘扬社会主义核心价值观 2019-07-04
  • 一码中特一肖中特 澳门五分彩手工计划 山西11选5复式投注表 河南十一选五中奖奖金领取 极速飞艇是官网吗 香港赛马会直播网 广西快乐10分开奖分布图开奖结果 今天甘肃快三开奖查询结果 36选7福利彩票走势图 江苏体彩十一选五app 陕西快乐十分怎么玩法介绍 福建36选7兑奖规则 福建十一选五开奖记录 炸金花三张牌游戏下载 爱彩乐软件下载