PHPNW17:回顾

PHPNW 2017 会议于 9 月 30 日至 10 月 1 日的周末在曼彻斯特会议中心举行,我也参加了。PHPNW 现在已经运行了 10 年,看起来这将是最后一次(稍后会详细介绍)但今年和以往一样好。

今年的开幕主题演讲是Rasmus Lerdorf(@rasmus)(PHP 的原始创建者)。他向我们介绍了从 1980 年代他的第一台计算机到现代 PHP 7 以及 PHP 中(或即将推出)的一些新功能的计算经验的历史。有趣的是,当 PHP 开始出现时,当时的大型 Web 脚本语言是 perl,它使用 cgi-pm 运行,但它充满了安全问题。perl 社区花了 8 个月的时间创建了一个 apache 模块 (mod_perl),此时每个人都转移到了其他系统,如 PHP。他表示,对 Apache 的缓慢采用(以及发布时模块中的一两个主要安全漏洞)是对 perl 使用的最后一击,也是它垮台的开始。他对 PHP7 的研究以及在该领域的未来工作表明 PHP7 的性能比旧的 PHP5.x 版本高得多。

Rasmus 计算出世界上有 20 亿个站点,由大约 1000 万台机器组成,其中 50% 运行 PHP。由于从 PHP5.x 到 PHP7.x 的采用率为 5%,这意味着世界使用的能源比以前减少了 750KWH,这相当于约 3.75 亿吨二氧化碳。随着 PHP7 的 100% 采用,这将增加到 75 亿吨二氧化碳。这个事实得到了一些笑声,但这是一个重要的信息。通过使用更少系统资源的更高性能语言,我们可以在运行站点时花费更少的精力作为一个行业。

最后,Rasmus 向我们展示了 PHP 7.2 中的一些功能,其中包括一些令人惊奇的功能,例如死代码消除 (DCE),其中未使用的代码将从已编译的二进制文件中删除。他还向我们展示了 Phan,这是他构建的 PHP 静态分析工具,可以让人们发现愚蠢的错误,并有助于将代码重构为对 PHP7.x 友好。

紧接着我们有了Rowan Merewood (@rowan_m) 和Connecting to people - 创建跨设备用户体验。这是对用户登录服务的几种不同方式以及对使用它们的统一方法日益增长的期望的观察。通过使用 Google Credential Management API 将用户凭据从一个平台(模块应用程序)交叉传播到另一个平台(网站),最终解决了所解决的问题。除了 Goole 员工对 Google 产品的依赖之外,这是对密码后时代的用户凭据以及如何解决其中一些问题的有趣观察。主要信息是连接用户的正确位置是他们现在所在的位置。

短暂的咖啡休息后,我去看了Chris Riley (@giveupalready) 和他的演讲核动力软件安全。在简要介绍了运行核电站之后,Chris 开始使用一个系统,该系统允许您分析应用程序的所有攻击向量并尝试解决它们。这是一个非常有趣的演讲,我将把我在这次会议中学到的一些东西带到我的工作场所。

午餐是通常的美味佳肴。年复一年,会议有一些我在会议上品尝过的最好的食物,这取决于曼彻斯特会议中心的工作人员的技能。

替补无法参加会议的演讲者是Stefan Koopmanschap(@skoop) 谁做了一个关于地狱项目的会议。他经历了他多年来从事的一些项目,并告诉他们在某些方面出了什么问题。这是对一些项目的一个非常有趣的观察,从所有这些例子中脱颖而出的主要问题是缺乏良好的文档。有时它不够技术并导致系统协同工作出现问题,有时它没有事先达成一致,因此可能会发生范围蔓延。其他一些带回家的课程是确保开发人员有一些准备时间来掌握项目并准备与您不熟悉的人一起工作。Stefan 确实说过,一个成功的项目不必按时交付。

接下来是使用Derick Rethans (@derickr)调试您的设置。这是关于如何了解(Linux)系统内正在发生的事情的图片,以便可以解决问题。这是对 strace、lsof、gdb、valgrind 和 ulimt 的介绍。所有这些工具都以某种方式显示了系统交互,并且稍微扩展我的工具库是很棒的。

当天的最后一个会议是与Georgiana Gligor 的智能可扩展内容分发。在本次会议中,Georgina 研究了如何在平台之间分发内容。这意味着将内容更像是代码而不是内容,并使用新内容构建应用程序。我发现这种方法有点令人困惑,但我会进一步研究它,看看它是否有轮子。

经过一些抽奖和无数的感谢之后,是晚上社交的时候了,在那里我和很多人聊天,直到我需要赶火车回家。PHPNW 社区非常友好和热情,即使在过去 10 年之后,我仍然每年都会结识新朋友。Lancashire Hotpots 也在夜间演出。

周日早上的第一个时段(宿醉时段)是与Amo Chohan和他的演讲12 Tried And Tested Top Tips For Better Testing。尽管起步较早,但阿莫精力充沛,演讲非常精彩。关于编写最佳测试和使用 PHPStorm 自动创建许多测试,有很多小技巧和窍门。这就像拥有专用测试工具或使用数据提供程序一样简单。一个有趣的概念是底特律测试(测试真实物体)和伦敦测试(使用模拟)之间的区别。

接下来是Chris Riley 的另一场演讲,他谈到了微服务与分布式单体。在这里,Chris 研究了微服务的概念(与单体服务相比)以及以这种方式创建服务的好方法和坏方法。这是一个非常微妙的主题,Chris 做了一个很好的尝试,展示了构建微服务的好方法,并展示了一些过去出现问题的好例子。

当天的倒数第二节是MySQL 最糟糕的做法:Andrew Moore一起将您的系统带到它的膝盖(@mysqlboy)(几乎没有出现)。Andrew 与 Digital Ocean 合作,在 MySQL 以及人们如何在设置方面出错,从而导致问题的产生方面表现出丰富的知识和经验。这可以是非常简单的事情,例如没有将正确的 sql_mode 变量设置为更复杂的事情,例如测试和检查复制设置。他还表明,为这项工作选择正确的工具很重要,而且 MySQL 并不擅长作为消息队列,而专门为完成这项工作而设计的工具要好得多。这是我日常职业生涯中的一个重要考虑因素,我总是尝试退后一步,分析我们正在尝试做的事情,以及所选系统是否是该工作的正确工具。

最后,闭幕主题演讲由John Cleary (@TheRealBifter) 发表并被称为因为热爱代码。我从本地用户组认识约翰,甚至让他在我运行的 Drupal 用户组中担任演讲嘉宾,因此很高兴他正在做闭幕主题演讲。他谈到了《高效能人士的7个习惯》这本书,并从这本书中选出了前3名。这就是以终为始,双赢思维,先理解后被理解。他的信息本质上是听取人们的意见。

所以最后我需要解决我之前提到的一些问题。Jeremy 和 Rick 非常感谢地结束了这次活动,然后说 PHPNW 将暂时暂停。我不得不说,我对这个消息并不完全感到惊讶。在会议期间,我正忙于设置 NW Drupal 用户组 Unconference,并且有大量工作要做和准备,即使是像这样的小型活动。PHPNW 是一个更大的会议,有很多事情要做,也有很多钱要筹集。我听说 PHPNW 团队今年很难找到赞助商,我们也遇到了同样的问题。最重要的是,有几个人在活动开始前将他们的生活搁置了几个月,所以休息一下重新评估事情可能是最好的,如果只是关于 PHPNW 组织者的心理健康。也就是说,明年将没有 PHPNW 真是太遗憾了,我真的,真的希望它在未来几年会回来。

宣布这一消息后,John Cleary 站上舞台,将一张照片交给 Jeremy 和 Rick,上面有 10 年的 PHPNW 会议标志和许多组织者和演讲者的签名。在此之后,Jeremy 和 Rick 得到了大约一分钟的起立鼓掌。我之前已经在 PHPNW 的其他评论中说过这一点,但是房间里对 PHPNW、Jeremy、Rick 和其他组织者有很多爱。我要感谢整个 PHPNW 会议团队多年来的努力,你们真的对我的个人和职业生活产生了积极的影响。

总的来说,这是一次非常棒的活动,我很自豪能够参加 PHPNW 会议 10 年。我每年都学到很多东西,我真的希望看到 PHPNW 在未来回归。

附带说明一下,如果您有任何关于 PHPNW 会议的故事,那么 Jeremy 已经设置了一个 PHPNW Penflip 来从社区中捕捉其中的一些故事。这可以与您通过会议本身学到的东西一样小,以帮助您的工作获得新工作。一个非常好的主意,很多人已经做出了贡献。