JHUG的成员有机会参观我们(近)的新厂房,看到了大约70名非工人,包括一些新面孔,这是很棒的。对于那些不能参加的人,或者想知道在JHUG的聚会中到底讨论了什么,这里是每个演讲的摘要,以及每个演讲的链接。
第一个演示来自我们自己的Nikos Dimos (Linkedin)和瑞·米格尔·福特(Linkedin),分别领导采购和数据科学团队。Nikos谈到了可操作性的采购团队如何转移到微服务体系结构。他从一些基础开始,比如定义Monolith和Microservice体系结构,并解释它们何时适合。然后他深入研究了我们旧的单片架构中不断出现的具体问题,以及如何通过转向Microservices来缓解这些问题。他展示了新的架构是如何依赖于兔子MQ并使用Apache Kafka之类的工具来跟踪发生了什么服务调用以及如何进行服务调用。关键是要理解在Monolith和Microservices之间进行选择时的权衡,如何让测试变得更容易,以及当转移到Microservice架构时,你需要拥抱异步工作并充分利用它。你可以找到幻灯片在这里。
米格尔(他也是数据科学雅典他接着介绍了什么是数据科学以及我们用它来解决的问题,并介绍了他的团队经常使用的工具。第一个工具是Apache Tika,它是从多种文件类型中提取文本和元数据的工具包。他还演示了(代码可用来玩Github-分支开发)一些更高级的任务,如图像和链接提取。该演示继续使用PMML(预测模型标记语言)。我们的数据科学团队面临的一个常见问题是,用Python或R这样的语言开发和训练预测模型更容易,但随后这些模型需要移植到Java以用于生产。PMML是一种非常旧的交换格式,它允许我们将模型从一个平台传输(导出和重新导入)到另一个平台,这样模型就不需要从头开始开发和训练(这可能需要几天时间,具体取决于模型)。你可以找到幻灯片在这里。
第二个演讲是由mario Kogias (Linkedin),他谈到了代码可维护性。这次谈话是以那本书为基础的构建维护软件作者是Joost Visser等人。正如马里奥所指出的,这本书所提倡的方法并不是用鲜血写成的,而是一套从长远来看能够让我们的生活更轻松的最佳实践。从本质上讲,这次演讲强调了三个简单的日常习惯,比如方法最多保留15个LoC,明智地复制代码,以及使用封装保持方法签名简单。mario还描述了哪些重构操作(大多数ide都是开箱即用的)适合每种情况。最后,报告提到了代码分析工具,如更好的代码中心,PMD和美妙的SonarQube。这个演示也适合初级开发者。你可以找到幻灯片在这里。
第三个演讲是由Thomas Pliakas (Linkedin),他谈到了垃圾收集(GC)性能调优。我们都知道GC是在后台发生的事情,我们并不经常担心它。当我们这样做的时候,我们至少知道哪些是基本的垃圾收集器,它们使用什么算法以及它们执行的阶段是很有用的。Thomas首先介绍了我们从外部所看到的Java Heap (Eden, Tenured, Permgen)的子区域,以及为什么GC围绕对象的年龄进行运行。然后他继续解释了什么是Minor GC、Major GC和Full GC,以及常见垃圾收集器的细节。Thomas解释了调优GC之前要考虑的因素(延迟、吞吐量、容量),并继续对G1进行调优,这将成为默认设置。演讲结束时引用了一些参考资料,这些参考资料对于那些深入到有趣的GC世界的人来说是一个很好的起点。你可以找到幻灯片在这里。
总而言之,这是一次很棒的会面。感谢所有到场的人,当然还有Nikos, Miguel, mario和Thomas !
这篇文章是马科斯·弗拉卡基斯写的,在推特上找到他@fragkakis。
照片马科斯Pitsilos。