微信号:importnew

介绍:伯乐在线旗下账号,专注Java技术分享,包括Java基础技术、进阶技能、架构设计和Java技术领域动态等.

2018 Java Nord 论坛回顾

2019-01-26 12:15 ImportNew

(给ImportNew加星标,提高Java技能)


来自:唐尤华

译自:https://dzone.com/articles/java-forum-nord-2018-retrospecive


2018年的 Java Nord 论坛,你错过了哪些精彩内容?


本文介绍了2018年9月24日,我在德国汉诺威参加的非商业性 Java 会议,该会议被称为“Java Nord 论坛”。演讲内容是德语,但演示文稿由图表和代码示例组成,便于非德语读者理解。在这里我列出了参加的演讲、PPT链接以及内容关键词。


1. 社交而非浪费:让我们一起聊聊 — Stefanie Reinicke,Jan-Christian Dammann 博士


这个演讲讨论了如何让开发团队变强的三个主题:


  1. 经验分享:

    • 编写文档

    • 在博客或论坛上发表专题文章

    • 组织技术会议

  2. 如何对合适的解决办法达成一致?

    • 主导有争议性的讨论

    • 组织 Q&A 环节

  3. 如何促进经验的分享?

    • 组织每天一次交流


2. 在 Java 中使用函数式编程也是可能的!— Falk Sippach


在这篇演示文稿中,介绍了一个验证信用卡号的 Luhn 算法的函数式编程案例。

函数式编程风格实现的 Luhn 算法具有直观、易于阅读的特点。不仅是函数式编程,演讲者的编程风格也让内容更容易理解,每个函数都被声明为一个单独的变量。

演示的例子使用了下列框架:


  • Vavr

  • Immutables

  • Lombok 项目


演讲中提到的其他框架有:


  • 函数式 Java

  • RxJava

  • Vertx

  • JOOQ

  • JDeferred


3. 自我管理42.0:充满激情的软件工匠如何优化生活并取得更大成就 — Steven Schwenke


报告分两部分。


第一部分,Steven Schwenke 把自我管理定义为一种与敏捷软件开发方法 SCRUM 类似的东西。他把每周计划定义为组织者模块,随身携带并在自己的日常活动中使用。我发现,自我管理42.0计划方法缺少的是自主性和自由度,因为每个任务都经过深思熟虑,并在组织者的书中进行了描述,这需要投入更多的努力和时间。


第二部分,演讲者介绍了一些书籍,这些书籍为开发自我管理方法的终极状态提供了有用的想法。


4. 微服务和宏体系结构:垂直应用架构中的三个关键设计问题 — Stefan Zörner


在这篇演示文稿中讨论了微服务和宏体系结构。 在建立基于微服务的系统之前,需要解决以下问题:


  • 与下面内容交互:

    • UI

    • 沟通与融合

    • I18N

    • 人类工程学

    • 验证

  • 底层部分:

    • 持久化

    • 安全性

    • 事务处理

    • 会话及状态处理

    • 事件和错误处理

    • 多线程

    • 缓存

  • 开发:

    • 敏捷软件方法

    • 版本控制系统

    • 持续交付和集成

  • 生产环境

    • 发布

    • 部署

    • 高可用性

    • 虚拟化

    • 可扩展性


垂直应用架构中的三个设计问题:


  • UI 问题?提出了两种方法:

    • 一个客户端与所有微服务通信

    • 每个微服务都有自己的 UI

  • 通信的形式应该是怎样的?

    • 同步 vs. 异步

    • 直接通信 vs. 间接通信

    • 通过一个例子进行讨论,组合了之前的一些条件,比如直接同步通信

  • 安全性

    • 集中式认证

    • 去中心化授权


演讲中提到的相关信息:


  • SCS:内建系统(Self-Contained System)

  • IPA:独立系统架构


5. Java 注解处理器让编写代码又好又轻松 — Gunnar Hilling


这篇演示文稿关于处理注解的 API。演讲中的注解示例创建一个接口的静态元模型。接着定义了一个验证使用正确性的注解验证器,同时给出了该测试接口实现的测试结果。


术语:


  • JavaPoet 是一个通过 API 创建 Java 代码的开发库。


不得不承认,这演讲的主题很有意思ーー对我来说很新鲜。老实说,关于使用这种编程方式的动机或好处,我没有任何结论。也许,我只是被标题中“又好又轻松”吸引了。


6. 通过测试容器进行集成测试 — Philipp Krenn


这个演讲的开场展示了一个场景,单元测试通过但系统功能模块仍然不对。这里提到的另一个基于模拟数据测试的问题(即针对特定测试用例人为创建的测试数据)。

接下来的演讲中,提到了一些框架和开发库(在演示文稿中提供了链接):


  • 嵌入式 Elasticsearch:一个简化 Elasticsearch 集成测试构建过程的工具

  • Flapdoodle.embed.process:在单元测试中提供一种平台无关的方式运行进程

  • Docker-maven-plugin

  • Moby Ryuk:指定时间延时清理 Moby 或 Docker 容器

  • 为测试容器进行 Elasticsearch 容器的 Docker 化


7. 结对编程与群组编程: 现代敏捷成功的基本要素 — Thomas Much


译注:群组编程(Mob Programming) 是一种软件开发方法。在这种方法中,整个团队在同一时间、同一空间、同一台计算机上处理同一件事情。这类似于结对编程,两个人坐在同一台计算机上,同时合作编写相同的代码。通过群组编程,可以在团队中的每个人之间实现协作,同时仍然使用一台计算机编写代码并将其提交到代码仓库中。


这个演讲关于结对编程和群组编程技术。演讲中解释了为什么结对编程对团队有好处,并介绍结对编程的实现方法。此外还介绍了群组编程,所有的团队成员,包括PO、QA 和 Dev Ops 都参与其中。


8. 闭幕式主旨演讲:持久的软件架构,数十年没有技术债务 — Carola Lilienthal 博士


  • https://www.youtube.com/watch?v=vp4YQJvafO8

  • https://www.youtube.com/watch?v=Nfzuy4L9_UM

  • https://www.youtube.com/watch?v=M6sprMtD6nA


这个演讲讨论了技术债务。我之所以熟悉这个主题,因为两年前在一个叫 JavaLand 2016 的会议上听过相关内容。


  • 软件项目中的技术债务,通过工具来分析软件找出不良架构

  • 接下来通过重构得到更好的软件

  • 良好的架构需要:

    • 良好的模块化

    • 清晰的层级

    • 在技术和功能层面具有良好的一致性

  • 监测不良架构的示例

  • 检测架构错误的工具,包括结构错误、层次错误、依赖关系错误


9. 总结


Java Nord 是一个为期一天的非商业会议,由位于德国北部的几个 Java 用户组(JUG)通过四个渠道组织起来,并且对 JUG 成员免费。


其中的一些演讲,可以从标题和描述中猜出大概内容,其他一些不是那么明显。不管怎样,学习新东西总是一种很好的体验。


在写这篇文章时,我发现几乎所有链接的演示文稿都是用德语写的,以前的会议并不是这样。但是,演讲中的代码和图表相信对所有开发者都是容易理解的。


看完本文有收获?请转发分享给更多人

关注「ImportNew」,提升Java技能

喜欢就点「好看」呗~


 
ImportNew 更多文章 浅析几种线程安全模型 分布式、高并发、多线程,到底有什么区别? 谈谈 Tomcat 请求处理流程 如何优雅的设计 Java 异常 哥们,你们的系统架构中为什么要引入消息中间件?
猜您喜欢 Python基础教程8:for 循环语句 Android ANR监控与分析 写给Android App开发人员看的Android底层知识(4) 每日安全动态推送(07-19) 刚刚,你的蛙儿子在华信智原给你寄来了明信片!