Are you interested in using Domain-Driven Design (DDD) to create maintainable and scalable software, but not sure how to get started? Or perhaps you've heard that DDD is only suitable for complex domains - and when starting out, you're not sure if your project will need it?
Join me for a live coding demonstration in C# that will show you how to apply Test-Driven Development (TDD) from the very beginning of a project so you can bring DDD in when you need it.
We'll start with the simplest possible implementation – a basic CRUD system to help a university handle student enrolments. We'll gradually add more complex requirements, such as the need to ensure courses don't become over-enrolled, which will prompt us to do some code-smell refactoring and lead us to things that start to look like the DDD tactical patterns of repositories, aggregates, and domain services.
In implementing these requirements, inspiration will strike! What if the model were changed - what if we allowed all enrolments and then allocated resources to the most popular courses as required so we never have to prevent a student from enrolling? We'll now see how the TDD tests and the neatly refactored domain models make it much easier to embark on this dramatic change - in other words, how much more maintainable our DDD codebase has become.
17:45 - 18:15 |
Registration |
17:45 - 18:15 |
Welcome Words |
17:45 - 18:15 |
IntelliJ IDEA-based IDEs Tips & TricksMikhail Vink / Hadi HaririAn IDE is so much more than an editor, yet people still seem to compare one to another. This session looks at IntelliJ IDEA and shows tips and tricks that will make you a more efficient and productive developer (most of the tips’n’tricks are also applicable to all IntelliJ IDEA-based IDEs, such as WebStorm, PhpStorm, PyCharm, and others). From searching for symbols to having a smooth workflow when working with version control, the presentation examines all the aspects that make it possible to have a pleasurable development experience. You’re guaranteed to leave this session knowing things you probably didn’t even know existed and were afraid to ask whether they did. |
17:45 - 18:15 |
Registration |
17:45 - 18:15 |
Welcome Words |
17:45 - 18:15 |
IntelliJ IDEA-based IDEs Tips & TricksMikhail Vink / Hadi HaririAn IDE is so much more than an editor, yet people still seem to compare one to another. This session looks at IntelliJ IDEA and shows tips and tricks that will make you a more efficient and productive developer (most of the tips’n’tricks are also applicable to all IntelliJ IDEA-based IDEs, such as WebStorm, PhpStorm, PyCharm, and others). From searching for symbols to having a smooth workflow when working with version control, the presentation examines all the aspects that make it possible to have a pleasurable development experience. You’re guaranteed to leave this session knowing things you probably didn’t even know existed and were afraid to ask whether they did. |
17:45 - 18:15 |
Registration |
17:45 - 18:15 |
Welcome Words |
17:45 - 18:15 |
IntelliJ IDEA-based IDEs Tips & TricksMikhail Vink / Hadi HaririAn IDE is so much more than an editor, yet people still seem to compare one to another. This session looks at IntelliJ IDEA and shows tips and tricks that will make you a more efficient and productive developer (most of the tips’n’tricks are also applicable to all IntelliJ IDEA-based IDEs, such as WebStorm, PhpStorm, PyCharm, and others). From searching for symbols to having a smooth workflow when working with version control, the presentation examines all the aspects that make it possible to have a pleasurable development experience. You’re guaranteed to leave this session knowing things you probably didn’t even know existed and were afraid to ask whether they did. |
Хади Харири, руководитель Developer Advocacy
Представьте себе, что всё, что мешает вам разрабатывать софт, вдруг исчезло. Никто не следит за тем, чем вы заняты каждую минуту, в какое время приходите на работу и уходите с нее. Вы предоставлены самому себе. Всё волшебным образом встает на свои места, и ваша продуктивность достигает заоблачных высот. Идеальные условия, не так ли? В JetBrains большинства этих помех не существует. Но работать в отсутствии барьеров, оказывается, не так уж просто. Нельзя устранить все ограничения и надеяться, что рабочие процессы будут протекать сами по себе, без сучка без задоринки. Мы поговорим о преимуществах и недостатках этого подхода и способах решения типичных проблем, возникающих при устранении барьеров (если это вообще возможно).
Роман Елизаров, разработчик языка Kotlin
Мы поговорим о традиционных проблемах масштабирования серверных приложений на JVM и о том, как их можно решить с помощью асинхронного кода, который теперь как никогда просто писать благодаря корутинам в Котлине. Мы увидим, как дизайн, основанный на корутинах и структурной многозадачности, позволяет избежать традиционных проблем асинхронного кода, связанных с управлением ресурсами, обработкой ошибок и отменой запросов.
Денис Ушаков, руководитель разработки WebStorm
Екатерина Пригара, продакт-менеджер WebStorm
За последние несколько лет JavaScript-экосистема сильно изменилась. Чтобы WebStorm и другие IDE JetBrains были по-настоящему полезны JavaScript-разработчикам, мы не можем не реагировать на эти изменения.
Мы расскажем, как в команде WebStorm мы выбираем, какие языки, фреймворки и инструменты будем поддерживать; как следим за развитием технологий, находим компромиссы и придумываем новые возможности для продукта. Также вы узнаете, как устроена IDE изнутри и как организован процесс ее разработки.
Тагир Валеев, технический руководитель команды поддержки языка Java в IntelliJ IDEA
Проект IntelliJ IDEA начинался как среда разработки для Java, и в настоящее время поддержка этого языка остается одной из лучших на рынке. Казалось бы, за восемнадцать лет развития уже можно было сделать все, остается только поддерживать новые версии языка да исправлять мелкие баги в очень частных случаях. Однако команда поддержки Java постоянно реализует новые улучшения. Я расскажу, что же можно улучшать после стольких лет работы, что мы сделали недавно, и чего еще в поддержке Java нет, но хотелось бы.
Леонид Хачатуров, разработчик
В этом докладе я расскажу о том, как написать full-stack приложение на Kotlin. Мы рассмотрим различные технологии из мира Kotlin, делающие этот язык таким мощным и удобным инструментом: создадим мультиплатформенный проект, переиспользующий код между Kotlin/JVM и Kotlin/JS, напишем фронтенд с помощью удобных DSL для React и CSS и воспользуемся корутинами для клиент-серверного взаимодействия.
Триша Ги, Developer Advocate
Хотите знать IDE как свои пять пальцев? Понимать, чем IDE отличается от редактора и как с ее помощью разобраться в семантике ваших приложений? Хотите научиться входить в состояние «потока», использовать имеющиеся инструменты максимально эффективно и продуктивно? Тогда вы обратились по адресу.
Андрей Старовойт, старший разработчик WebStorm
TypeScript продолжает набирать популярность и осуществлять мечту JavaScript-разработчиков о языке с развитой системой типов и знакомым синтаксисом.
Я расскажу, как развивалась система типов в TypeScript и как это повлияло на то, какие возможности в поддержке языка доступны в WebStorm. Покажу интересные рефакторинги и инспекции, которые доступны в WebStorm для TypeScript, и как они могут помочь писать код лучше и быстрее.
Chris is a Startup CTO Coach helping startups realise their vision and new CTOs flourish in their roles. He also supports executives & boards with strategic technology advice, and engineering teams with training, mentoring and consulting in architecture, quality, domain-driven design and test driven development.
He is a regular meetup & conference speaker (e.g. NDC, YOW!, DDD EU, Serverless Days) and to support teams using Domain-Driven Design, he recently launched
contextive.tech & co-founded the Domain-Driven Design Australia meetup.He is the technical co-founder of
Inloop, home of Australian Fintech success stories Flexischools and LaternPay (recently acquired by NAB).