热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

做后台是选择Java、Go,还是PHP?

做,后台,是,选择,java

0f5af97849833e95964c36b793c4be127210d640

我们都知道,大部分有过4年以上的工作经验的前端最起码接触过后台的,不管是java,php,python或者说.net,很多人就会去扩展第二第三语言,你可以去问问他们,基本都有过了解,但这个了解不是完全会去写,而且了解一个过程。

但是对于所有学前端的小伙伴,我建议的是一定要学习和了解一门后台语言。

可以选择Go

对于一个研发团队来说,项目成败的关键因素是:成本、质量和时间!

1、人力资源的成本人力资源是研发团队最重要的资源,也是唯一的资源。其成本不仅仅是团队要支付的薪资代价。也包括获得资源的难易程度,例如招聘和培训的速度。以及维持资源,也就是保持员工满意度或者说士气的代价,也就是管理成本。(上述成本不仅指钱,时间也是非常昂贵的成本)

Golang有一系列特点,使它既容易上手,又易于维护。Golang可以让初阶和中阶工程师,经过少许培训,就写出相当不错的代码。直接点说,一票1-2年经验少许灵性的年轻工程师转Golang,只要少许指导,很快就可以写出高并发高负载能力生产级别的代码,而且质量相当有保证。而同样的工程,如果用C++或java等语言,则需要至少3-5年经验的工程师来完成,同时质量还是要让人担心。

8bcf5c8d8bd4dc13df40cf71c5e5d943ecb355f3

那么,对于团队特别是成长型的或创业团队来说,现在有Golang这样一种语言,可以让大量初阶和中级工程师承担主要开发工作,还能保证相当优秀的结果,从资金成本和时间成本控制的角度,简直就是美梦成真。

2、项目研发的效率说到高并发高负载,让我不能不想起nginx。nginx在2004年从web server领域横空出世,所向披靡。精巧严谨易于维护和扩展的代码结构,也是教科书级别的。

但是要知道,一个用C写出一个nginx,是需要世界上最优秀的工程师的。这样的工程师,不仅团队里面没有,连遇到一个都很难。可现在,我再告诉你,一个使用Golang的中级工程师,就已经可以写出性能与nginx相近的高并发高负载应用。而且不仅性能相近,而且需要的代码行数和开发时间也短很多。

可以选择Java

Java是元老级别的语言了,Java能做很多事情:写网站后台,写安卓程序,写嵌入式系统。至于做后台有以下优缺点:

优点:性能好,适合大中项目,跨平台,安全性高,稳定可靠,运行效率高(尤其是JIT的出现之后差距更大了),不容易犯错(强类型、预编译、必须拦截异常等等),能有效的提高复用度,提升性能和吞吐能力,能规避安全问题。

200bc14e4383cae8a51204d594612a451c7ec769

缺点:开发复杂,开发和发布的效率相对较低,维护成本高,开发人员费用高

选择Python

因为python很灵活,一定程度上函数也可以传参和注入,所以代码的灵活性要大的多,而Java在Java 8之前是无法做到函数传参的,所以这种情况下,Java开发者只能写大量的匿名类去注入代码块(这点相比,还是ruby块代码注入更牛逼,不是吗)。python自带了函数的curry化以及迟滞运算方式,以及闭包语法更容易实现,所以在一定层面上python还是比java难掌控的。当然python最好的还是duck typing属性,作为动态语言专有的特性,python可以让对象摆脱静态语言范式的约束,随意的给程序打补丁,所以程序扩展性更好。同时,作为解释型语言,服务器热部署这块,python肯定有优势,一旦程序出问题,直接覆盖原有的源文件就行,而Java 的服务器热部署基于classloader的切换,其中像tomcat这种服务器的热部署(也就是reload功能)其实很容易造成JVM heap爆掉,且完全依赖服务器后台线程对各代码文件的时间戳扫描,所以热部署这块python优于java。

1ebeee86632ac4f9071a9eb728ef38c2baf41518

优点:

  • 1、 Python作为动态语言更适合初学编程者。Python可以让初学者把精力集中在编程对象和思维方法上,而不用去担心语法、类型等等外在因素。而Python清晰简洁的语法也使得它调试起来比Java简单的多。至于哪个更“优雅”纯属个人喜好,但对于初学编程的人Python更直观应该没什么异议。

  • 2、Python有一些Java没有的强大的架构2.1. Advanced Python Constructs,可以表达非常复杂的Logic

  • 3、 Python有非常强大的支持异步的框架如Eventlet Networking Library,而据我所知Java要实现这些功能要麻烦的多。也因此Python适合一些可扩展的后台应用。(但除此以外Python可扩展性是不如Java的)

  • 4、Python作为脚本语言,更适合开发小的应用,而且极其适合在应用发展初期时用来做原型

缺点:

由于Python的优点也无可避免会有牺牲———由于是动态语言,比Java还慢。你可以想象一下编译器对于没有typing的变量,需要一个一个check具体type所耗得时间。而Java相比起C++等等本来就不快,可想而知更慢的效果… 但很多人觉得Python code更短小精悍,所以实际跑起来不见得比Java耗时。

可以选择php

1)、网站开拓是PHP说话最擅长的,没有任何说话可以与其对抗。

PHP的快速,开拓成本低,周期短,前期保护费用低,开源产物丰盛,PHP已经是国际大部门Web项手段首选,以至良多公司从其它说话(如ASP,JAVA)转到了PHP。不只国际的腾讯、百度、淘宝、京东、点评网、糯米网,以至国外的大型网站例如facebook、youtobe、google也需求用PHP来停止开拓。毫无疑问,PHP已成为各IT公司首选的互联网编程说话,被誉为WEB开拓首选手艺,所以此刻若是做网站,毫无疑问企业就用PHP。在“互联网+”的大期间中,企业几近都在用php说话停止WEB开拓!

5da54424798057dc3f5f9ba981f10381ec472923

2)、PHP可以对App停止数据传输,在移动互联网期间照旧有广发的用武之地。

今朝最经常使用的手机APP开拓,主如果用iOS和Andriod两大类。但手机App按照其适用性,需求快速开拓,复杂便利,这与PHP的开拓肉体不谋而合。同时PHP完善支撑RESTFULL法则,更适合手机App接口的挪用标准,故经常使用来作为手机App数据传输对象。这也意味着,PHP在手机互联网期间一样有着遍及用武之地!

3)、Hybrid App的出世,完成PHP法度圭表标准员也可以开拓手机App!

Hybrid App前台采取同化式开拓,其后端采取PHP开拓即可。这类开拓方式可以不用学Object-c,也不用学Android,也就意味着PHP法度圭表标准员只需把握前端常识(Html5、Css3、Javascript)也可以开拓手机APP。该种编制开拓出来的APP客户端,不只其后果与原生安卓和iOS一样,而且还可以兼容安卓手机和iOS手机,大大着落移动端开拓成本,深受企业接待。Hybrid App的出世,为PHP说话在“互联网+”期间注入了壮大性命力。

2357466e350e4a5b1e4172509c0d0c1325a0d533

总结

当然还有很多语言后台开发,如:C、rails、asp.net等。讨论哪个语言更好,就像在争论姚明和刘翔谁是更优秀的运动员。因为各自的坐标象限不同,常常会陷入一个难有结论怪圈。 如果你是前端程序员,想学习后台语言,建议结合自己的项目和公司多去思考一下,前提是学以致用,选择合适的才是重要的。


原文发布时间为:2018-09-28

本文作者:yuer

本文来自云栖社区合作伙伴“终端研发部”,了解相关信息可以关注“终端研发部


推荐阅读
  • Java和JavaScript是什么关系?java跟javaScript都是编程语言,只是java跟javaScript没有什么太大关系,一个是脚本语言(前端语言),一个是面向对象 ... [详细]
  • Android中高级面试必知必会,积累总结
    本文介绍了Android中高级面试的必知必会内容,并总结了相关经验。文章指出,如今的Android市场对开发人员的要求更高,需要更专业的人才。同时,文章还给出了针对Android岗位的职责和要求,并提供了简历突出的建议。 ... [详细]
  • 本文比较了eBPF和WebAssembly作为云原生VM的特点和应用领域。eBPF作为运行在Linux内核中的轻量级代码执行沙箱,适用于网络或安全相关的任务;而WebAssembly作为图灵完备的语言,在商业应用中具有优势。同时,介绍了WebAssembly在Linux内核中运行的尝试以及基于LLVM的云原生WebAssembly编译器WasmEdge Runtime的案例,展示了WebAssembly作为原生应用程序的潜力。 ... [详细]
  • 这是原文链接:sendingformdata许多情况下,我们使用表单发送数据到服务器。服务器处理数据并返回响应给用户。这看起来很简单,但是 ... [详细]
  • 本文介绍了RPC框架Thrift的安装环境变量配置与第一个实例,讲解了RPC的概念以及如何解决跨语言、c++客户端、web服务端、远程调用等需求。Thrift开发方便上手快,性能和稳定性也不错,适合初学者学习和使用。 ... [详细]
  • Google Play推出全新的应用内评价API,帮助开发者获取更多优质用户反馈。用户每天在Google Play上发表数百万条评论,这有助于开发者了解用户喜好和改进需求。开发者可以选择在适当的时间请求用户撰写评论,以获得全面而有用的反馈。全新应用内评价功能让用户无需返回应用详情页面即可发表评论,提升用户体验。 ... [详细]
  • Tomcat/Jetty为何选择扩展线程池而不是使用JDK原生线程池?
    本文探讨了Tomcat和Jetty选择扩展线程池而不是使用JDK原生线程池的原因。通过比较IO密集型任务和CPU密集型任务的特点,解释了为何Tomcat和Jetty需要扩展线程池来提高并发度和任务处理速度。同时,介绍了JDK原生线程池的工作流程。 ... [详细]
  • 本文介绍了南邮ctf-web的writeup,包括签到题和md5 collision。在CTF比赛和渗透测试中,可以通过查看源代码、代码注释、页面隐藏元素、超链接和HTTP响应头部来寻找flag或提示信息。利用PHP弱类型,可以发现md5('QNKCDZO')='0e830400451993494058024219903391'和md5('240610708')='0e462097431906509019562988736854'。 ... [详细]
  • 本文介绍了在Windows环境下如何配置php+apache环境,包括下载php7和apache2.4、安装vc2015运行时环境、启动php7和apache2.4等步骤。希望对需要搭建php7环境的读者有一定的参考价值。摘要长度为169字。 ... [详细]
  • Google在I/O开发者大会详细介绍Android N系统的更新和安全性提升
    Google在2016年的I/O开发者大会上详细介绍了Android N系统的更新和安全性提升。Android N系统在安全方面支持无缝升级更新和修补漏洞,引入了基于文件的数据加密系统和移动版本的Chrome浏览器可以识别恶意网站等新的安全机制。在性能方面,Android N内置了先进的图形处理系统Vulkan,加入了JIT编译器以提高安装效率和减少应用程序的占用空间。此外,Android N还具有自动关闭长时间未使用的后台应用程序来释放系统资源的机制。 ... [详细]
  • 一句话解决高并发的核心原则
    本文介绍了解决高并发的核心原则,即将用户访问请求尽量往前推,避免访问CDN、静态服务器、动态服务器、数据库和存储,从而实现高性能、高并发、高可扩展的网站架构。同时提到了Google的成功案例,以及适用于千万级别PV站和亿级PV网站的架构层次。 ... [详细]
  • 恶意软件分析的最佳编程语言及其应用
    本文介绍了学习恶意软件分析和逆向工程领域时最适合的编程语言,并重点讨论了Python的优点。Python是一种解释型、多用途的语言,具有可读性高、可快速开发、易于学习的特点。作者分享了在本地恶意软件分析中使用Python的经验,包括快速复制恶意软件组件以更好地理解其工作。此外,作者还提到了Python的跨平台优势,使得在不同操作系统上运行代码变得更加方便。 ... [详细]
  • 目录浏览漏洞与目录遍历漏洞的危害及修复方法
    本文讨论了目录浏览漏洞与目录遍历漏洞的危害,包括网站结构暴露、隐秘文件访问等。同时介绍了检测方法,如使用漏洞扫描器和搜索关键词。最后提供了针对常见中间件的修复方式,包括关闭目录浏览功能。对于保护网站安全具有一定的参考价值。 ... [详细]
  • 本文简述了数据库的概念、作用及发展阶段的特点。数据管理技术的发展经历了人工管理阶段、文件系统阶段和数据库系统阶段,分别描述了各个阶段的特点。数据库、数据库管理系统和数据库系统的含义和联系也进行了简述。数据库是长期存储在计算机内、有组织、可共享的大量数据的集合,而数据库管理系统是整个数据库系统的核心部分,负责统一管理和控制用户对数据库的操作。数据库系统是以数据库为基础的应用系统。总结了数据库的保存方式、管理方式、共享性和独立性等特点。 ... [详细]
  • 初识java关于JDK、JRE、JVM 了解一下 ... [详细]
author-avatar
天涯老许_137
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有