猿创征文|从PHP到Java后端技术成长之路

源起

我上大学的时候,专业是软件工程,学习了计算机相关的基础课,也简单学习了Java相关的知识。毕业那年,Web 开发火热,当时入职是互联网创业公司,职位是PHP研发的工程师,创业公司,业务迭代快速,PHP由于开发快速,适合当时的公司业务。

在此期间,熟悉了LAMP架构,LAMP架构是指Linux + Apache + MySQL + PHP。是当时非常流行且实用的架构。

后面,个人跳槽到现在的互联网电商公司。刚开始,也是从事PHP相关的研发工作。伴随着公司业务的发展,公司的研发架构也由PHP迁移到Java。公司为什么会选型成为Java?谈一下我个人的理解。

  1. Java是一门强类型语言,编译后的执行效率高。
  2. Java的生态非常强大,应用广泛,对于很多的业务需求,都有良好的开源技术框架支持,可以大大提升研发效率。
  3. Java在国内的学习者较多,对人才的招聘相对容易。

从PHP转型Java

猿创征文|从PHP到Java后端技术成长之路_第1张图片

我总结了一张服务架构图,可以看到,PHP和Java都是在服务层的应用。UI,网关,数据存储都是相同,PHP相关的研发经验,在转型过程中很有帮助。

如何转型呢?首先,我解决的首要问题是语法问题。PHP是弱类型语言,Java是强类型语言。学习Java语法,直接阅读官方文档The Java Tutorials 即可,也可以阅读中文开发文档即可。

熟悉了基本语法之后,实际业务都是使用框架开发。目前,Java Web领域中的事实标准就是 Spring, 这是我们必须要熟悉并了解的研发框架。这时候的主要参考资料是 Spring 官方文档,建议大家读原版文档,提升自己的英文阅读能力,理解好一手知识。

架构升级

我们之前的系统基本是LAMP架构的,经过大约两年左右的时间,逐步迁移升级到了Java微服务架构。在这两年多的架构升级迁移中,踩过很多坑,以下是我的三点最佳实践经验,希望你少踩坑。

  1. 技术架构升级之前,首先是确认需要升级的部分。研发同学首先可以从服务调用的日志分析出请求方来源。接下来,我们需要和调用方同学沟通,现在的提供的技术服务是否满足当前的业务应用场景?使用过程中是否有觉得需要改进的地方?公司有无其他团队提供了相似的或者更加完善的功能?明确了这三个问题,我们可以找到真正需要迁移的部分。
  2. 微服务合理划分。我们系统原先的技术是单体架构,这次架构升级采用了微服务架构。微服务的好处有开发独立,上线独立,容易部署和扩容。在技术架构初期,我们按照业务场景,拆分了用户微服务,权限微服务,报表微服务等。当时团队同学多,业务发展快,微服务确实提升了效率。然而,好景不长,最近2年,互联网整体的趋势是降本增效,关停非主营业务。在这个大环境下,业务场景收缩,团队同学减少,无法维护那么多微服务,我们又将微服务合并,减少资源占用,提升服务的可维护性。总结回顾,微服务拆分,不要太细,要结合团队,业务发展实际情况,做合理的拆分。
  3. 使用合理设计模式,提升工程质量。设计模式是软件开发人员在软件开发过程中面临的一般问题的解决方案。这些解决方案是众多软件开发人员经过相当长的一段时间的试验和错误总结出来的。我们在服务升级实践中主要采用了模版设计模式统一流程减少重复代码采用策略设计模式优化多重 if条件判断等

总结

经历了这次技术架构升级,我完成了从PHP研发工程师转型到了Java工程师,丰富研发技术栈。接下来,需要继续加深自己对项目中相关技术的深入理解,源码分析阅读,提升架构设计能力。在技术方面之外,逐步提升自己的外部沟通能力。夯实基础,长风破浪会有时,直挂云帆济沧海

你可能感兴趣的:(java,php,微服务)