PHP-Swoole-与-JavaGo-等技术选型答疑

4次阅读

共计 1206 个字符,预计需要花费 4 分钟才能阅读完成。

来自 SwooleVIP 群内一位成员的问题

  1. 感觉 Swoole 越来越复杂了,虽然特性也变得更强,可惜在项目组里面根本推不动,而且协程后需要注意事项也很多,稍不注意可能就是连接忘了回收,连接错乱的风险 (当然有defer 之类的可以规避)
  2. PHP 的,基本上都是半路出家,或者大部分培训机构的,不招他们进来吧,项目赶不完,招他们吧,都是得过且过的学习性格。
  3. 稍微高端一点的特性,几乎推不动,他们还会反问,花时间看这个,为啥不学 go 呢?毕竟 go 是官方自带
  4. 搞得我们现在新项目 (国内龙头电商),基本上都用Java 了,也不知道咋说。。。用 PHP 确实太多只会做简单crud

Rango 回答

  1. Swoole4现在是越来越简单了,现在的协程比以前的异步回调好用。你应该使用社区内成熟的框架,比如 HyperfSwoftEasySwooleMixPHP。直接基于 Swoole 开发很容易犯错,这需要开发者具备更高的素质。而基于框架之上开发应用,无论是 Swoole 还是 JavaGo 对于使用者来说难度是一致的。
  2. 大多数 JavaGo 的工程师其实也都是用别人写好的框架,所以简单。如果是自行写一个多线程的 Java 框架,类似于Spring,这很困难。
  3. 也不只是 PHP 的工程师是 CRUD,大部分做JavaGo 的程序员也一样是在做 CRUD 的工作。并没有什么差别。提升对整个技术栈的理解深度、技术把控能力才是最重要的。
  4. Swoole4 的协程 和 Go 完全一样,但是 PHP 语言更简单易用。Go是强类型静态语言,没有泛型支持,面向对象也不完整,更适合搞底层软件的开发,各种组件生态也没有 PHP 丰富。如果你是从事服务器端应用开发用 Go 效率远不如PHP
  5. 编码、工程实践、抽象、业务理解、服务治理(包括性能、稳定性、健壮性、可用性、可扩展性)、架构设计,这些方面的能力与语言无关,编程语言对于优秀的工程师来说只是一个顺手的工具。掌握两个一模一样的技能,比如用 PHP、Go、Java 开发服务器后台程序的技能几乎是同质化的,实际上意义不大,浪费了时间
  6. PHP是很多有优势的,可以让工程师不再花时间用在对于语言技术栈的学习上,熟练掌握 PHP 整个技术栈只需要 2-3 年即可,其他的语言虽然功能上更强大,但是需要程序员花费更多时间用在学习语言 API、运行原理、各种类库和工具上。时间需要3-6 年才能达到精通的水平。
  7. PHP工程师因为精通这门技术更容易,反而可以把宝贵的时间投入到更高层面的工作上。PHP-FPM的健壮性是有目共睹的,算得上是工业级的技术。而 Swoole 目前也越来越成熟了,健壮性也越来越高。
  8. Swoole是一个帮助 PHP 工程师在 PHP-FPMWeb 编程 之外功能范围的一个扩展,PHP工程师可以获得更大的操作空间。而不必花时间去重新学习一门新的编程语言技术栈,这通常需要几年时间才能完成,而学习掌握 Swoole 一般来说 3-5 个月即可,毕竟 Swoole 其实也是 PHP 技术栈范畴之内。
正文完
 0