Meltwater攻城狮 | 2019全栈工程师节 (Full Stack Fest) 体验

作者:Joel Carlback, Meltwater高级软件工程师

今年9月,我前往巴塞罗那郊外的锡切斯小镇,以了解有关技术未来的更多信息。Full Stack Fest是每年一次的工程师大会,涉及广泛的技术主题(前端,后端,测试,新语言等)。我在那里是为了从演讲者精选的列表中吸收一些知识和灵感。在这篇文章中,我将介绍我最喜欢的演讲。

在过去的几年中,我习惯于为参加的会议撰写总结的帖子。我发现编写这些摘要可以使我在活动中做更好的记录,并加深自己的学习经验。它还使我可以与团队中的其他开发人员共享内容。我希望这份总结对您也有用。

我最喜欢的演讲

Full Stack Fest对我而言最吸引人的方面是它是“Single Track”环节。主题非常广泛,有机会听到内容非常丰富的优秀演讲者。

讨论涉及许多不同的软件开发方面以及即将发生的事情。如果您想查看所有演讲的录音,可以在Full Stack Fest的YouTube频道上找到它们。

Ashley Williams:用于Web开发人员的构建工具

Ashley谈到了她在为开发人员开发工具时学到的一些东西。根据她的经验,我们喜欢一款工具的理由来自三大方面。

工具熟悉度,工具本身的野心和工具捷径。到目前为止,熟悉度是最常见的原因,占了大约80%。这导致了“陌生度预算 (strangeness budget)”的概念。

哪里有创新,哪里就会让人产生陌生感。如果您希望人们使用您的工具/语言/ API,请不要在“陌生度预算”上花费过多,会产生使用户产生疏远感的风险。构建事物很容易-实际上促使人们使用它很困难!

关于工具构建的另一个有趣观点是形式主义会在某种程度上阻碍您的想法。阿什利(Ashley)提到了一篇名为“there’s more to mathematics than rigour and proofs的文章”及其对学习的三个阶段的描述。

严谨之前的阶段:学习形式主义以形成直觉。基于经验主义。
严谨的阶段:形式主义。基于理论主义。
严谨之后的阶段:利用形式主义恢复直觉。基于实际应用场景和“大局观”。

当然,您可以将这些阶段转换为数学以外的其他领域。大多人在第二阶段陷入瓶颈,这会阻碍您构建出色的和对开发人员友好的工具。

HTML5规范中的这句话明确说道:

在发生冲突的情况下,最终用户优先,其次是作者,其次是实现者,其次标准制定者,最后才是理论上的完满。

不要忘记考虑人与环境方面的因素。例如,周围有来自不同背景的人,就不会对以前的知识有太多假设。

我从Ashley的演讲中获得的主要收获是:

● 考虑一下您的开发人员在UX方面可能会有的潜在含义和级联效果。这将影响解决方案的构建方式。反过来,这些解决方案也会影响其他方面。

● 赋能用户固然好,赋能使能者则更佳!

Sara Soueidan:应用的可访问性:构建更多可访问的前端的实用技巧

这个演讲如其名,非常实用,讨论了许多非常实用的秘诀,可用于改善网站的可访问性。

从语义HTML的重要性到如何设置SVG图像样式,应有尽有。样式复选框,以及如何使用aria-属性使站点可用于更多用户。网络适合每个人,包括对于盲人友好的屏幕阅读器。

这里有几个要点:

● 使用语义HTML-不要将div用于按钮等。不要漏掉标题!

● 使用HTML 地标角色 (landmark roles)

● 对图片使用替代文字

● 有重点突出显示(您可能要覆盖默认样式)。这将使使用键盘导航站点更加容易。

推荐资源(博客)

● 萨拉·索伊丹(Sara Soueidan):

https://www.sarasoueidan.com/tags/accessibility/

● 斯科特·奥哈拉 (Scott O’Hara):

https://www.scottohara.me/

Lin Clark:使用WASI将WebAssembly在web外部运行

在参加Full Stack Fest之前,我对WebAssembly的概念(官方站点)比较模糊。

另外,我必须承认我很怀疑。这只是最新的流行词,对吧?在这次会议之后,我现在对WASM的用例和潜力有了更好的了解。这要归功于Lin的演讲(以及Steve Klabnik的演讲)。

WASM用于为Web编译其他语言(Rust,C ++等),以在浏览器中启用新的用例。这点很赞。但我认为,更酷的是WASI及其潜力。WASI是WebAssembly系统界面,用于在Web外部运行WebAssembly的界面。这是一种新的,开放的,更安全的尝试,它出自著名的Java标语“写一次,到处运行”。

WASI尝试指定WebAssembly软件使用的虚拟OS系统接口。这个想法是使WebAssembly代码以一种可移植且安全的方式在浏览器外部运行。

这个演讲进行了一个演示,演示了用rust编写的html库的markdown,并编译为WebAssembly。然后在Rust程序中使用了它,最后在python脚本中使用了相同的WebAssembly库

该演示对我产生了巨大的影响。这项技术的可能性和潜力是惊人的。如果您可以使用一种编程语言来编译库,然后将其用于几乎所有其他语言(支持Web汇编),该怎么办?哇!

Docker的联合创始人之一对WASI也有这样的看法:

Lin的讲话使我对WASI和WASM感到非常兴奋。

Daniel Stenberg:HTTP / 3-基于QUIC的HTTP是下一代

cURL的创建者介绍了HTTP从版本1到1.1,v2以及进行中的v3的历史。

Daniel还谈到了有关Internet和协议的一系列有趣的问题和挑战。协议演变的一个大问题是,有如此多的设备(服务器,路由器,防火墙,设备)连接到互联网,并运行旧软件。

这些硬件设备认为它们“知道”互联网和协议。由于许多设备会丢弃或破坏流量,因此这可能会阻止新协议正常工作。此问题的名称是Ossification,它只是阻碍更快,更安全和更高效的Internet的众多问题之一。

HTTP / 3试图解决HTTP / 2无法解决的几个问题。最著名的TCP行头阻塞。为了解决引入新协议的问题-QUIC。HTTP / 3在QUIC上运行,而QUIC建立在UDP之上。Daniel还写了一本(免费的)书,其HTTP / 3解释了更多细节。

大量有趣的关于网络协议的信息,以及许多接地气的小技巧!

结论

跪谢 Full Stack Fest 2019的组织者,演讲者和所有参与者。我受到冲击,留下了很大的启发。

总的来说,这是一次很棒的会议,期待再次参加。“Single Track”环节,所有演讲嘉宾以及活动场地都很棒!。

如果您参加了Full Stack Fest 2019,您最喜欢的演讲是什么?您能推荐您真正喜欢的会议吗?欢迎在下面发表评论。