php现在不好找工作了,我是该转到go还是java,听说php学java还是有一定难度的,到底有多难?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了php现在不好找工作了,我是该转到go还是java,听说php学java还是有一定难度的,到底有多难?相关的知识,希望对你有一定的参考价值。

php现在不好找工作了,我是该转到go还是java,听说php学java还是有一定难度的,到底有多难

参考技术A 从入门到可以进入项目大概需要好好学习将近一年左右。Java应用广泛,除非有一项很大的技术突破能够替代Java。在当下,Java被使用的场景非常多,网站、游戏、办公软件、新零售、云计算、芯片技术、数字经济等多个互联网领域都不开Java,拥有很好的就业前景。就算是小白也可以学会,先学习Java基础,先在网上找一找视频进行学习了解,千锋教育就有线上免费视频。 学习Java不算轻松容易,尤其是打算自学的朋友,没有专业人士的指导,没有系统的学习方案,如果自制力再稍微弱一点点,学习时间就得顺势延长,这也是很多新手学到一半放弃的原因。 多看看网上专业人士的学习方法和经验建议,让自己有个适应期,要想快速学会还是建议找一个专业适合自己的教育机构进行学习。千锋教育讲师均来自一线大厂兼具项目实战与教学经验,学科大纲紧跟企业需求,拥有国内一体化教学管理及学员服务,总部位于北京,在18个城市拥有22个校区,可以先看看这家机构免费的线上课程,觉得合适,可以到本地区的千锋机构进行咨询。官网客服迷途人士科技发烧友
2021-07-25·也许我没遇见你,但是我懂你!!迷途人士采纳数:40获赞数:47
向TA提问私信TA我建议学java。
1.现在企业级应用很多产品主流还是java 语言,这样你找工作的机会大一些,相对于java,go的话,大厂只有字节等一些公司,比较窄。
2.Java 的生态非常好,很多相依赖的产品都是基于java,体量比较大,不会说没就没。
3.Java 可以学的东西非常多,持续深入,能提高自己的高度。
参考技术B 不管怎么我都要说php是世界上最好的语言!不过现在Php是在走下坡路,这也是环境所逼迫,现在go与java的发展前景都不错,而Java和PHP在面向对象的思路上面是共通,所以php学java也没有那么难。当然了,go现在也比较火,相对于Java来说,go就业竞争小一点,go的优势在高并发,所以学什么关键在于你想学什么。 参考技术C 每个语言都有自己擅长的领域,不存在好坏之分,做网站首选php,做应用程序首选Java,人工智能首选python等,我是Java转php的,个人体验来说,两个语言是通的,很多的相似之处,没有你说的那么可怕,可以根据菜鸟,教程一步步走学习一下就知道。希望能帮到你! 参考技术D Go虽说比较新潮,但是市面上的岗位需求还是比不了Java,毕竟Java作为最受欢迎的编程语言之一,Java已经走过了20多个年头。从已经落寞的诺基亚到现在火热的电商系统,我们都能看到Java语言的身影。

选Go语言还是Java?知乎问答服务重构实践

作者 | 田晓旭
编辑 | Natalie
AI 前线导读:2019 年 3 月,Go 语言官方博客发布了 2018 年 Go 语言调查报告, 共有来自 103 个国家的 5883 名开发者参与到这次的调查中。调查结果显示,目前将 Go 语言作为日常使用的编程语言的受访者已经达到 50%,在工作中使用 Go 语言开发的人数从 68% 增加至 72%,且受访者普遍都拥有了 2 年以上的 Go 语言开发经验。

虽然绝大多数受访者表示 Go 语言是他们最喜欢的编程语言,也在积极实践,但不可否认的是,他们对于 Go 语言的使用熟练度远不如其它语言高。如何才能更好地让 Go 语言为我所用呢?我们采访了知乎业务架构组技术负责人姚钢强。

更多优质内容请关注微信公众号“AI 前线”(ID:ai-front)

选Go语言还是Java?知乎问答服务重构实践

据了解,知乎从 2017 年开始尝试使用 Go 语言来构建业务系统,目前知乎的问答、评论、文章、个人页、部分反作弊系统、部分搜索和商业的业务是使用 Go 语言进行搭建的,单元测试覆盖率一般在 70% 左右。

Go 语言在知乎的实践历程

从 2017 年开始使用 Go 语言构建业务系统到 2019 年使用 Go 语言重构老系统、开发新系统,这中间知乎一直在不间断的探索 Go 语言在企业中的实践。如果要把 Go 语言在知乎的实践历程划分成不同的阶段,姚钢强认为可以按照年份分为三个阶段:

2017 年,知乎技术平台和个别业务开始尝试使用 Go 语言构建自己的系统,但此时配套的基础设施并不完全,所以在这一年中,前架构团队开发了部分基础设施(RPC 框架、监控),并且使用 Go 语言重写了流量最大的内部 RPC 服务 member。

2018 年,随着知乎的发展,部分 Python 老服务资源消耗严重,于是团队开始针对评论和问答业务进行 Go 语言重写,在重写期间完善了基础设施(日志、降级、单元测试、Sentry),并确定了基础的代码组织结构。2018 年 7 月,知乎完成了评论业务的全部重写和问答业务主要流量接口的重写。2018 年底,知乎完成了关于问答业务 Python 与 Go 语言部分的基于业务的垂直拆分。

2019 年,知乎社区事业部开始针对占用资源较大的老 Python 业务进行 Go 语言重写,同时使用 Go 语言进行大部分新业务的开发。

知乎问答服务重构:Go 语言还是 Java?

问答服务是知乎目前对外流量最大的服务,之所以要重构的原因是随着知乎的发展,流量不断增加,原先使用 Python 构建的项目占用了太多的资源。

重构时是如何进行编程语言选型的呢?姚钢强表示:“我是 2018 年开始负责重构工作,当时我们主要是在 Java 和 Go 语言之间做选择,最终选择了 Go 语言的主要原因是当时在知乎 Go 语言的基础设施相对于 Java 更全面,RPC 框架、监控等基础设施已经完备。另外,知乎 Go 语言的群众基础更好,因为基础架构部门已经使用 Go 语言进行了一些 Proxy 的开发,工程师对于 Go 语言的兴趣更高。”

至于 Java ,姚钢强表示:“如果原先知乎是使用 Java 进行项目开发的话,可能也就不需要重构了。”

重构过程中遇到的挑战

与新建一个系统不同,项目重构更多的是变换过程,将之前的代码变换得到新的代码,而新代码的外部接口和输入输出还要和之前的代码保持一致。所以,项目重构面临的挑战很多,不仅要解决业务方面的问题,同时也要考虑与原有系统之间的关系。

知乎在重构问答服务时,主要的挑战有两个方面。

一是测试,问答服务是知乎很重要的项目,在保证单元覆盖的基础上,功能测试很复杂:读接口是同时发出请求,在线对比通过日志找出差异;写接口就必须在深入了解业务的基础上,与直接负责该业务的同事一起列出所有的 TestCase,先由两位工程师根据 TestCase 分别进行测试,然后交由 QA 进行二次验收;

二是之前的项目大量使用了 Python 的动态特性,尤其是类 GraphQL 的接口。所以,首先知乎团队分析了使用的类 GraphQL 接口,发现只有个别接口需要这种形式;其次,针对需要类 GraphQL 的解析进行一层抽象,单独一层(不使用反射)进行 URL 解析,然后将解析后字段对应到处理函数。

项目重构的收获

Go 语言重构项目完成之后,相比之前的 Python 项目,资源占用减少了 70% - 80% ,复杂接口的性能有 50% 左右的提升。在重构问答服务的过程中,知乎团队也对 Go 语言的基础组件和基础设施进行了完善。

据姚钢强介绍,目前业务中使用到的基础组件主要包括:

  • 基于 Thrift 的 RPC 框架;

  • 基于 go-chi 的 Web 框架;

  • 基于 Sentry 的错误排查系统;

  • 基于 go-resiliency 的降级;

  • 基于 testify 的单元测试;

  • 基于 go-runtime-metrics 的 runtime 监控;

  • 基于 Graphite Grafana 打点和监控;

  • 基于 Kafka 和 Beanstalk 的离线任务 ;

  • 基于存储统一接口(可替换存储)的 cache 库。

知乎的 Go 语言重构计划

据了解,Go 语言已经成为知乎内部项目技术选型的推荐编程语言,不仅新业务的开发会首选 Go 语言,同时也使用 Go 语言重构了很多其它项目。目前知乎对内流量比较高的会员、评论服务和对外流量最大的问答服务都已经完成了重构,文章、个人页等其他服务也完成了部分流量较大接口的重构。

知乎未来是否还有比较大的重构计划?姚钢强表示:“目前没有重构计划,因为我们重构的初衷是节省机器资源,而流量比较大的业务都已经完成了重构,如果再去做其它重构,投入产出比太低了。”

Go 语言重构项目经验总结

什么样的项目适合使用 Go 语言来进行重构呢?姚钢强认为:“如果是占用机器资源比较多,且之前是使用 Python、PHP、Ruby 构建的业务系统,那么使用 Go 语言重构会节省大量机器资源,提高性能。如果原先是使用 Java 构建的业务系统,那么不建议使用 Go 语言进行重构。”

在使用 Go 语言重构项目的过程中,姚钢强认为以下三点是值得注意的:

  • 重构业务系统的第一步永远是了解业务,所以必须要有负责当前业务的同学参与。如果没有了解业务就盲目进行重构,那么很容易出现 Bug,而且还可能导致未来系统难以维护;

  • 项目开发之前要统一代码规范,配置好自动化的严格静态代码检,并且统一错误日志格式,做好调用链路跟踪的打点;

  • 在放量阶段要谨慎一点,针对读接口要先对比,然后逐步灰度放量;针对写接口,要与业务方和 QA 确认好所有的业务 TestCase,工程师先自测,然后交给其他工程师或者 QA 做二次验证。

针对 Go 语言本身,姚钢强也有一些期待:“目前 Go 语言在业务开发方面与 Java 还有很大差距,很多基础组件都不完善,期待之后 Go 语言的基础组件能够更完善,在语法方面能够提供泛型与更好的错误处理。”

采访嘉宾

姚钢强,知乎业务架构组技术负责人。2013 年加入知乎,曾担任首页 Feed 工程技术负责人,通过构架优化使响应时间 P95 从 1.6s 降低到 700ms,稳定性由 99.9% 提升到 99.99%。2018 年开始负责社区业务架构组,与团队一起用 Go 重写了知乎主要的业务模块,完成节省机器资源 75%,并完善了公司的 Golang 基础设施。

今日荐文

被迫遵守法规?AMD停止向中国提供x86新技术授权


限时福利

AI技术通过各种智能终端离我们的用户更近了,它除了满足用户各种各样的需求,如智能翻译、语音指令等,还能不断提高我们的研发质量,如UI自动化测试框架、图像/视频的智能识别等。GMTC北京2019特别设置了移动AI专场,在本专题下,我们将看到各个顶尖技术团队是如何结合终端+AI技术,带来更好的用户体验的。更多议题详情可以点击下方“阅读原文”了解详情。

目前大会倒计时13天,门票即将售罄!感兴趣的同学可联系票务小姐姐咨询:18514549229(同微信)。


你也「在看」吗?

以上是关于php现在不好找工作了,我是该转到go还是java,听说php学java还是有一定难度的,到底有多难?的主要内容,如果未能解决你的问题,请参考以下文章

独立思考的价值

做软件开发的女生工作了3年裸辞结果工作不好找大家给我些意见吧

学GO语言好还是java语言好??

前后端分离了,前端人是该高兴还是痛苦?

Go-websocket

IntelliJ IDEA Cannot find declaration to go to