(给ImportNew加星标,提高Java技能)
来自:唐尤华
译自:https://dzone.com/articles/java-forum-nord-2018-retrospecive
本文介绍了2018年9月24日,我在德国汉诺威参加的非商业性 Java 会议,该会议被称为“Java Nord 论坛”。演讲内容是德语,但演示文稿由图表和代码示例组成,便于非德语读者理解。在这里我列出了参加的演讲、PPT链接以及内容关键词。
经验分享:
编写文档
在博客或论坛上发表专题文章
组织技术会议
如何对合适的解决办法达成一致?
主导有争议性的讨论
组织 Q&A 环节
如何促进经验的分享?
组织每天一次交流
函数式编程风格实现的 Luhn 算法具有直观、易于阅读的特点。不仅是函数式编程,演讲者的编程风格也让内容更容易理解,每个函数都被声明为一个单独的变量。
演示的例子使用了下列框架:
Vavr
Immutables
Lombok 项目
演讲中提到的其他框架有:
函数式 Java
RxJava
Vertx
JOOQ
JDeferred
报告分两部分。
第一部分,Steven Schwenke 把自我管理定义为一种与敏捷软件开发方法 SCRUM 类似的东西。他把每周计划定义为组织者模块,随身携带并在自己的日常活动中使用。我发现,自我管理42.0计划方法缺少的是自主性和自由度,因为每个任务都经过深思熟虑,并在组织者的书中进行了描述,这需要投入更多的努力和时间。
第二部分,演讲者介绍了一些书籍,这些书籍为开发自我管理方法的终极状态提供了有用的想法。
在这篇演示文稿中讨论了微服务和宏体系结构。 在建立基于微服务的系统之前,需要解决以下问题:
与下面内容交互:
UI
沟通与融合
I18N
人类工程学
验证
底层部分:
持久化
安全性
事务处理
会话及状态处理
事件和错误处理
多线程
缓存
开发:
敏捷软件方法
版本控制系统
持续交付和集成
生产环境
发布
部署
高可用性
虚拟化
可扩展性
垂直应用架构中的三个设计问题:
UI 问题?提出了两种方法:
一个客户端与所有微服务通信
每个微服务都有自己的 UI
通信的形式应该是怎样的?
同步 vs. 异步
直接通信 vs. 间接通信
通过一个例子进行讨论,组合了之前的一些条件,比如直接同步通信
安全性
集中式认证
去中心化授权
演讲中提到的相关信息:
SCS:内建系统(Self-Contained System)
IPA:独立系统架构
这篇演示文稿关于处理注解的 API。演讲中的注解示例创建一个接口的静态元模型。接着定义了一个验证使用正确性的注解验证器,同时给出了该测试接口实现的测试结果。
术语:
JavaPoet 是一个通过 API 创建 Java 代码的开发库。
不得不承认,这演讲的主题很有意思ーー对我来说很新鲜。老实说,关于使用这种编程方式的动机或好处,我没有任何结论。也许,我只是被标题中“又好又轻松”吸引了。
这个演讲的开场展示了一个场景,单元测试通过但系统功能模块仍然不对。这里提到的另一个基于模拟数据测试的问题(即针对特定测试用例人为创建的测试数据)。
接下来的演讲中,提到了一些框架和开发库(在演示文稿中提供了链接):
嵌入式 Elasticsearch:一个简化 Elasticsearch 集成测试构建过程的工具
Flapdoodle.embed.process:在单元测试中提供一种平台无关的方式运行进程
Docker-maven-plugin
Moby Ryuk:指定时间延时清理 Moby 或 Docker 容器
为测试容器进行 Elasticsearch 容器的 Docker 化
译注:群组编程(Mob Programming) 是一种软件开发方法。在这种方法中,整个团队在同一时间、同一空间、同一台计算机上处理同一件事情。这类似于结对编程,两个人坐在同一台计算机上,同时合作编写相同的代码。通过群组编程,可以在团队中的每个人之间实现协作,同时仍然使用一台计算机编写代码并将其提交到代码仓库中。
这个演讲关于结对编程和群组编程技术。演讲中解释了为什么结对编程对团队有好处,并介绍结对编程的实现方法。此外还介绍了群组编程,所有的团队成员,包括PO、QA 和 Dev Ops 都参与其中。
https://www.youtube.com/watch?v=vp4YQJvafO8
https://www.youtube.com/watch?v=Nfzuy4L9_UM
https://www.youtube.com/watch?v=M6sprMtD6nA
这个演讲讨论了技术债务。我之所以熟悉这个主题,因为两年前在一个叫 JavaLand 2016 的会议上听过相关内容。
软件项目中的技术债务,通过工具来分析软件找出不良架构
接下来通过重构得到更好的软件
良好的架构需要:
良好的模块化
清晰的层级
在技术和功能层面具有良好的一致性
监测不良架构的示例
检测架构错误的工具,包括结构错误、层次错误、依赖关系错误
Java Nord 是一个为期一天的非商业会议,由位于德国北部的几个 Java 用户组(JUG)通过四个渠道组织起来,并且对 JUG 成员免费。
其中的一些演讲,可以从标题和描述中猜出大概内容,其他一些不是那么明显。不管怎样,学习新东西总是一种很好的体验。
在写这篇文章时,我发现几乎所有链接的演示文稿都是用德语写的,以前的会议并不是这样。但是,演讲中的代码和图表相信对所有开发者都是容易理解的。
看完本文有收获?请转发分享给更多人
关注「ImportNew」,提升Java技能
喜欢就点「好看」呗~