Kotlin Helsinki User Group’s Kick-Off event
Title: Kotlin in 42 minutes
Spring I/O 2017
Title: Splitting component containers to simplify dependencies
Abstract: The bigger a monolithic application, the larger the dependency set. Adding or changing dependencies becomes a tricky task. Similarly, the complexity is in a number of beans and their dependencies in components container.
In this talk, we’ll discuss a way to simplify things by splitting component containers into smaller ones. We’ll see how to split a monolithic ApplicationContext into a number of sub-contexts, how to isolate sub-context internal beans, clear their APIs and avoid non-trivial dependencies.
Each sub-context can have its own classpath, which tackles the dependency hell problem. After being divided, a monolithic system becomes easier to split into a set of micro-services or processes. From the talk, attendees will learn several practical tips and tricks on how to split component containers into smaller ones
Title: Generating Kotlin Code for Better Refactorings, Tests, and IDE Support [CON3575]
Abstract: An IDE is so much more than an editor. It helps developers a lot only if it knows something about the code. There are many ways to extend an IDE. This session shows how to extend an IDE without writing any IDE-specific code. It discusses how to create an API library (DSL) in Kotlin (an open source JVM language) and a code generator to empower IDE integration. It also covers applications such as semantics, tests, project models, and refactorings.
Title: Building Self-Contained Toolset with Gradle
Abstract: Consider a toolset which helps to edit configuration files. For a given list of configuration files it generates source code in Kotlin. From the compiled source code it generates configuration files back. Editing the generated source code in IDE helps to view, change, refactor and test configuration easier. The setup of such a toolset from scratch is usually complicated. It contains a tricky IDE configuration, dependency resolution, source code compilation, classpath construction and test running.
The complexity makes such a toolset hard to use in practice and in continuous integration. Our goal is to simplify the setup. For this purpose we created an opensource Gradle plugin which will be discussed in this talk. The talk contains examples and tips that illustrate how one can hide and reuse tricky details and turn a domain specific toolset into a easy-to-use self-contained piece of software.