SpringFramework 5에서 선보이는 Reactive와 같은 핵심기능이 Spring Data, Spring Security, Spring WebFlux프로젝트에 녹아져 있는지 살펴봅니다. 또한 이러한 기능들이 어떻게 여러분의 시스템의 반응성을 높이고 효율적으로 동작하게 하는지 알아봅니다.
CDI portable extensions are one of greatest features of Java EE allowing the platform to be extended in a clean and portable way. But allowing extension is just part of the story. CDI opens the door to a whole new eco-system for Java EE, but it’s not the role of the specification to create these extensions.
Apache DeltaSpike is the project that leads this brand new eco-system by providing useful extension modules for CDI applications as well as tools to ease the creation of new ones.
In this session, we’ll start by presenting the DeltaSpike toolbox and show how it helps you to develop for CDI. Then we’ll describe the major extensions included in DeltaSpike, including 'configuration', 'scheduling' and 'data'.
Microservices - java ee vs spring boot and spring cloudBen Wilcock
A short presentation on the clear differences in approach between the top two Java frameworks for microservices, service orientation and web-service development - Java EE (JEE) and Spring (Spring Boot and Spring Cloud).
SpringFramework 5에서 선보이는 Reactive와 같은 핵심기능이 Spring Data, Spring Security, Spring WebFlux프로젝트에 녹아져 있는지 살펴봅니다. 또한 이러한 기능들이 어떻게 여러분의 시스템의 반응성을 높이고 효율적으로 동작하게 하는지 알아봅니다.
CDI portable extensions are one of greatest features of Java EE allowing the platform to be extended in a clean and portable way. But allowing extension is just part of the story. CDI opens the door to a whole new eco-system for Java EE, but it’s not the role of the specification to create these extensions.
Apache DeltaSpike is the project that leads this brand new eco-system by providing useful extension modules for CDI applications as well as tools to ease the creation of new ones.
In this session, we’ll start by presenting the DeltaSpike toolbox and show how it helps you to develop for CDI. Then we’ll describe the major extensions included in DeltaSpike, including 'configuration', 'scheduling' and 'data'.
Microservices - java ee vs spring boot and spring cloudBen Wilcock
A short presentation on the clear differences in approach between the top two Java frameworks for microservices, service orientation and web-service development - Java EE (JEE) and Spring (Spring Boot and Spring Cloud).
Learn how we built search for Bitbucket Cloud using a Microservices approach, leveraging the foundation we shipped in Bitbucket Server. Hear about the challenges faced when building search for millions of users, building on top of the Bitbucket Connect platform, the approach the team took, and the lessons we learned.
Stefan Saasen, Bitbucket Architect, Atlassian
Microservices with Spring and Cloud FoundryAlain Sahli
Cloud Foundry allows developers to deploy easily and often their applications. This is a great thing but it is only a part of the whole picture. In order to smoothly scale an application some patterns and basic architecture concepts must be taken into consideration. With Spring Boot, applications can be split into smaller parts called Microservices, which can be scaled in a more fine-grained manner. In addition Spring Cloud provides tools to quickly build some of the common patterns in distributed systems (e.g. configuration management, service discovery, circuit breakers).
Node Summit 2016: Web App ArchitecturesChris Bailey
While Node.js is becoming the platform of choice for web-scale applications, enterprises are resistant to change and have legacy applications based on other technologies, typically Java. Emerging web application architectures bring together the web-scale and integrated browser characteristics of Node.js with the transactional nature of Java to deliver high-performance, engaging web applications. Learn how the complimentary characteristics of Node.js and Java are being used to build the next generation of web applications.
JOHN HUMPHREYS VP OF ENGINEERING INFRASTRUCTURE SYSTEMS, NOMURA
Spring Boot is a modern and extensible development framework that aims (and succeeds!) to take as much pain as possible out of developing with Java. With just a few Maven dependencies, new or existing programs become runnable, init.d-compliant uber-JARs or uber-WARs with embedded web-servers and virtually zero-configuration, code or otherwise. As an added freebie, Spring Boot Actuator will provide your programs with amazing configuration-free production monitoring facilities that let you have RESTFUL endpoints serving live stack-traces, heap and GC statistics, database statuses, spring-bean definitions, and password-masked configuration file audits.
Java Microservices with Spring Boot and Spring Cloud - Denver JUG 2019Matt Raible
A lightning talk I gave at the Denver JUG meetup on December 11, 2019. This presentation shows how to build a secure microservices architecture with Spring Boot and Spring Cloud. It also shows you how you can generate the same architecture using JHipster. It's based on three blog posts I wrote:
* https://developer.okta.com/blog/2019/05/22/java-microservices-spring-boot-spring-cloud
* https://developer.okta.com/blog/2019/05/23/java-microservices-spring-cloud-config
* https://developer.okta.com/blog/2019/08/28/reactive-microservices-spring-cloud-gateway
Learn how we built search for Bitbucket Cloud using a Microservices approach, leveraging the foundation we shipped in Bitbucket Server. Hear about the challenges faced when building search for millions of users, building on top of the Bitbucket Connect platform, the approach the team took, and the lessons we learned.
Stefan Saasen, Bitbucket Architect, Atlassian
Microservices with Spring and Cloud FoundryAlain Sahli
Cloud Foundry allows developers to deploy easily and often their applications. This is a great thing but it is only a part of the whole picture. In order to smoothly scale an application some patterns and basic architecture concepts must be taken into consideration. With Spring Boot, applications can be split into smaller parts called Microservices, which can be scaled in a more fine-grained manner. In addition Spring Cloud provides tools to quickly build some of the common patterns in distributed systems (e.g. configuration management, service discovery, circuit breakers).
Node Summit 2016: Web App ArchitecturesChris Bailey
While Node.js is becoming the platform of choice for web-scale applications, enterprises are resistant to change and have legacy applications based on other technologies, typically Java. Emerging web application architectures bring together the web-scale and integrated browser characteristics of Node.js with the transactional nature of Java to deliver high-performance, engaging web applications. Learn how the complimentary characteristics of Node.js and Java are being used to build the next generation of web applications.
JOHN HUMPHREYS VP OF ENGINEERING INFRASTRUCTURE SYSTEMS, NOMURA
Spring Boot is a modern and extensible development framework that aims (and succeeds!) to take as much pain as possible out of developing with Java. With just a few Maven dependencies, new or existing programs become runnable, init.d-compliant uber-JARs or uber-WARs with embedded web-servers and virtually zero-configuration, code or otherwise. As an added freebie, Spring Boot Actuator will provide your programs with amazing configuration-free production monitoring facilities that let you have RESTFUL endpoints serving live stack-traces, heap and GC statistics, database statuses, spring-bean definitions, and password-masked configuration file audits.
Java Microservices with Spring Boot and Spring Cloud - Denver JUG 2019Matt Raible
A lightning talk I gave at the Denver JUG meetup on December 11, 2019. This presentation shows how to build a secure microservices architecture with Spring Boot and Spring Cloud. It also shows you how you can generate the same architecture using JHipster. It's based on three blog posts I wrote:
* https://developer.okta.com/blog/2019/05/22/java-microservices-spring-boot-spring-cloud
* https://developer.okta.com/blog/2019/05/23/java-microservices-spring-cloud-config
* https://developer.okta.com/blog/2019/08/28/reactive-microservices-spring-cloud-gateway
Java EE 8 Presentation given at NYC Java SIG on May 4, 2017. This presentation provides the latest information on the forthcoming release of Java EE 8 in June.
Abstract:
Jini has served Orbitz well, but at the cost of tight coupling due in part to shared code and Java™ platform serialization rules. To improve agility, Orbitz is migrating to a RESTful Web services architecture using protocol buffers to define message formats. The result is loosely coupled services with autonomous lifecycles supporting evolvability and innovative mashup-style development.
This session is intended for experienced architects and tech leads who are familiar with distributed systems and data encoding methods.
It covers
• Using document schemas to constitute language-neutral contracts
• Using standard HTTP plumbing and intermediaries
• Implementing a reverse proxy for request routing based on RESTful URLs
• Applying OLAs for governance and service isolation
• Writing automated service layer tests to ensure backward compatibility
Front End Development for Back End Developers - UberConf 2017Matt Raible
Are you a backend developer that’s being pushed into front end development? Are you frustrated with all JavaScript frameworks and build tools you have to learn to be a good UI developer? If so, this session is for you! We’ll explore the tools of the trade for frontend development (npm, yarn, Gulp, Webpack, Yeoman) and learn the basics of HTML, CSS, and JavaScript.
This presentation dives into the intricacies of Bootstrap, Material Design, ES6, and TypeScript. Finally, after getting you up to speed with all this new tech, I'll show how it can all be found and integrated through the fine and dandy JHipster project.
In this fully-loaded session we will give you an update on all things Spring. We will talk about the latest features in Spring Framework 4.2 which was released this summer, and also provide an outlook to what is coming with Spring 5 in 2016.
Next, Spring Boot 1.3 is on the horizon and adds many new features. We will go over those and explain how Spring Boot helps you build production-ready Spring applications.
And then we add Spring Cloud to the mix and explain the various modules.
Reactive programming is gaining momentum for a while now using RxJava, Vert.x and other frameworks. By a short delay, spring finally adopts reactive programming to its core. During this presentation, we will briefly explore the changes in Spring 5 and will dedicate most of the time to discuss and demonstrate reactive programming using Spring 5.
Welcome to presentation on Spring boot which is really great and relatively a new project from Spring.io. Its aim is to simplify creating new spring framework based projects and unify their configurations by applying some conventions. This convention over configuration is already successfully applied in so called modern web based frameworks like Grails, Django, Play framework, Rails etc.
node.js 실무 - node js in practice by Jesang YoonJesang Yoon
Sharing 4 years of experience about node.js - A google chrome V8 engine javascript based web server technology. This slide covers about wide range of knowledge about node.js learned from 4 years of production, experiment, test & failures
4년 동안 node.js 서버 프로그래밍을 경험한 내용을 간략하게 정리해 보았습니다. node.js 를 접하시는 분들에게 도움이 되었으면 합니다.
A complete boot camp for beginners who want to learn Spring Boot.
In this course, you'll learn how we can create web services and cover all the topics of Spring Boot, Spring Framework, and many others.
If you've some experience in Java and want to be a Software Engineer or Java Developer using Spring, you're on right way.
Just read and practice, in the end of this course you'll have a great knowledge of Spring boot, a backend knowledge.
Course outline:
JPA, Hibernate, Spring, Spring Framework, H2 Database, PostgreSQL, MySQL.
#SpringBoot
#SpringFramwork
#MySQL
#PostgreSQL
#MySQL
#H2
#JPA/Hibernate
#Webservices
Happy Java SE 8 was released! But for the Java EE?
This materials shows the current status of EE 6/7 with SE 8, and some limitation in current EE 7 app servers with 8.
This session materials is for the Japan Java Users Group (JJUG) CCC 2014 Spring session. #jjgc_ccc #ccc_r11
From the AJUG meeting: http://www.meetup.com/atlantajug/events/222312943/
Oc 20, 2015
In this fully-loaded session we will give you an update on all things Spring. We will talk about the latest features in Spring Framework 4.2 which was released this summer, and also provide an outlook to what is coming with Spring 5 in 2016.
Next, Spring Boot 1.3 is on the horizon and adds many new features. We will go over those and explain how Spring Boot helps you build production-ready Spring applications.
And then we add Spring Cloud to the mix and explain the various modules
This is an adaptation of the presentation given at the SpringOne 2008 conference in Hollywood, FL. It contains some updates on project status, and also information about the recently published book "Spring Python 1.1"
This slideshow is licensed under a Creative Commons Attribution 3.0 United States License.
<3탄>스프링 부트를 사용한 마이크로 서비스 개발 (로컬 환경) | 페어 프로그래밍 데모 (테스트 작성)
이번 세션에서는 Spring Boot를 사용한 웹 애플리케이션 개발에 대해 소개합니다. 이때 제작되는 애플리케이션은 Pivotal에서 풀타임으로 사용하고 있는 페어프로그래밍을 통해 테스트부터 작성하는 핑퐁 페어등을 소개합니다. 두명이 함께 코드를 작성하는 환경을 통해 빠른 사업환경의 변화를 수용할 수 있는 개발 업무가 Pivotal에서는 어떻게 다른지 살펴봅니다.
이번 밋업에서는 다양한 프로젝트에서 도메인에 따라 데이터를 분리한 경험이 있는 엔지니어들이 직접 마이크로서비스에 대해 이야기 합니다. 특히 피보탈의 APAC에서 Application Transformation 을 주도하는 팀의 Sumant Singh Rana와, Satya Ranjan 두 수석 엔지니어들, 그리고 이들과 현재 한국에서 함께 프로젝트를 진행하고 계신 피보탈 한국 김영태 상무님이 함께 하십니다.
마이크로서비스에서 도메인 모델에 따른 데이터의 분리와 적절한 데이터 저장소의 선택은 가장 먼저 고려되어야 할 사항입니다. 피보탈은 다양한 엔터프라이즈 고객과의 프로젝트 수행을 통해 체계화된 서비스를 보유하고 있으며, 본 밋업에서는 그 경험과 과정을 공유하는 시간이 될 것입니다.
<1탄>왜 마이크로 서비스인가 - 마이크로서비스로 구성된 애플리케이션 소개
Session abstract:
이번 세션에서는 무엇이 마이크로 서비스고, 어떤 철학과 사상을 가지고 있는지 알아봅니다. 세션이 종료되면 참석하신 분들은 마이크로 서비스의 구성에서 어떤 내용이 중요한지 알게 됩니다. 전체 시리즈로 진행되는 첫 세션 입니다.
Session agenda:
-실 서비스용 데이터베이스를 종료한다면 어떤 일이 벌어질까
-마이크로서비스와 마이크로서비스가 아닌것
-어떻게 시작해야 하나
-마이크로서비스 애플리케이션 소개
-클라우드 네이티브(클라우드 최적화란)
Pivotal Dojo 서비스는 조직이 클라우드로 전환하기 위해 플랫폼 팀을 균형있게 구성하고 애자일하게 운영할 수 있는 방법을 체득할 수 있게 도와줍니다. 이번 세션에서는 이 Dojo서비스와 실제 사례에 대해 소개하며 기업이 지속가능한 혁신이 가능케 하는 방법에 대해 알아봅니다.
Pivotal Concourse를 활용한 CI/CD pipeline automated build-up & Workflow managemen...VMware Tanzu Korea
현업의 업무요청에서부터, 개발/검증/배포에 관련한 일련의 업무 과정을 하나의 Ticket으로 관리하여, 개발 생애주기 전체를 관리하는 방법에 대해 설명합니다. Concourse CI를 기반으로, 미리 만들어진 CI/CD pipeline Template을 통해 현업의 업무 요청을 Ticket 단위로 처리하여, Ticket 별로 개발 업무 과정을 자동화 할 수 있도록 구성한 사례를 공유합니다. Pivotal PAS를 통해, 개발 산출물에 대한 Build 및 Delivery가 Dev.Test/ Staging Test/ Production Deply 순서로 진행되어, 단계별 승인권자에 의해 별도의 결재 처리 없이 배포가 진행 될 수 있도록 간편화하였습니다. 형상관리에 대한 Version 전략 및 Branch 전략을 포함하고 있어서, 개발 설계 단계에서부터 쉽게 이해하고 사용 할 수 있도록 구성하였습니다.
넷플릭스에서는 높은 속도로 데이터를 제공하기 위해서 뿐만 아니라 멀티 리전의 데이터 가용성을 바탕으로한 전체 서비스 가용성 유지를 위해 캐시를 사용하고 있습니다. 이 앞의 세션에서 보았던 마이크로서비스 구조를 염두해 둘때 한가지 가장 간단한 변화는 외부 클라이언트로 부터 유입되는 단 하나의 요청에 대한 응답을 만들기 위해 다수의 내부 서비스들로 부터 데이터를 확보해야 하며, 이는 다수 서비스들에 대한 요청과 응답으로 이루어지게 됩니다. 내부 네트워크 성능, 데이터 저장소의 응답속도등의 복합적인 영향으로 인해 마이크로 서비스는 쉽게 느려질 수 있으며, 이는 보통 '팬아웃 효과'로 알려져 있습니다. 뿐만 아니라 다수 서비스간의 데이터 정합성 유지, 필요에 따라 각 서비스간 데이터의 다운타임 없는 이동, 증가하는 데이터량에 동시에 증가하는 데이터 소스의 부하, 그리고 이런 것들을 모두 감안한 데이터 복제 등을 처리해야 할 필요가 있습니다. 본 세션에서는 넷플릭스에서는 이런 문제를 어떤 방식으로 해결하는지, 그리고 스프링 부트, 스프링 클라우드를 비롯한 피보탈의 기술을 사용해서 어떻게 빠르고 쉽게 사용할 수 있는지에 대해 알아봅니다.
본 세션에서는 Pivotal이 추구하는 Any App, Every Cloud, One Platform 전략에 대하여 살펴보고, 이러한 전략이 마이크로 서비스와 같은 클라우드 네이티브 IT 환경을 구성하는데 어떻게 도움을 줄 수 있는지 살펴 봅니다. 특히 Kubernetes, Istio, Envoy 등의 다양한 오픈소스를 어떻게 활용하고 플랫폼에 흡수하여 운영할 수 있는지 살펴 봅니다.
Domain Driven Design 기반의 마이크로서비스 디자인 방법론에 대해 설명을 하고 피보탈이 권장하는 모노리스 애플리케이션의 마이크로서비스 전환 방법론에 대해 살펴봅니다. 또한 실제 마이크로서비스 프로젝트에서 발생할 수 있는 우려사항들에 대해서도 국내 프로젝트 경험을 바탕으로 짚어봅니다.
클라우드 네이티브 IT를 위한 4가지 요소와 상관관계 - DevOps, CI/CD, Container, 그리고 MSAVMware Tanzu Korea
최근 IT 시장은 ‘클라우드 네이티브’ 라는 컨셉을 적극적으로 받아들이면서 혁신의 속도를 높이기 위해 여러가지 노력을 기울이고 있습니다. 본 세션에서는 ‘클라우드 네이티브’ 를 이루는 4가지 요소인 DevOps, CICD, Container, MSA 를 간략하게 살펴보고 MSA 가 나머지 클라우드 네이티브 3 요소와 어떻게 상호작용하여 고객 여러분의 비즈니스에 도움이 되는지 알아봅니다. 그리고 MSA 로 이행하기 위한 조직면에서의 요건과 기술 면에서의 요건을 살펴봅니다.
굿 소프트웨어 컴퍼니로의 여정(Journey To Be a Good Software Company)VMware Tanzu Korea
본 발표자료는 Pivotal Korea에서 주최한 Cloud Native Day 2019 Seoul 컨퍼런스의 기조연설 발표자료입니다.
발표자: 사친 쉬리다르(Sachin Shridhar), 서비스 및 CSO 부사장, Pivotal America & APJ
발표자 소개: 사친 쉬리다르는 피보탈 아시아태평양&일본(APJ) 및 미국 지역의 커스터머 석세스 조직(CSO) 그룹의 부사장입니다. CSO는 솔루션 아키텍처, 구현, 딜리버리, 컨설팅 및 교육을 포함한 모든 리전의 테크니컬 서비스를 책임지고 있는 그룹입니다. 사친은 고객의 소프트웨어 기반 환경으로의 전환을 돕기 위해, 피보탈 오퍼링을 운영하여 소프트웨어 개발을 기업의 핵심 역량 및 이점으로 만드는 일을 하고 있습니다. 사친은 업계에서 20년 이상, 아시아 태평양 및 일본 전역의 시장에서 10년 이상을 보냈습니다. 그는 테크놀로지 기업의 서비스 및 솔루션에 오래된 경력을 가지고 있으며, 고객과 파트너가 기술 제공을 통해 성공할 수 있도록 지원해 왔습니다. 피보탈 이전에는 5년 넘게 레드햇의 아시아태평양&일본 서비스 담당 부사장으로 근무하면서 프리세일즈, 컨설팅 및 교육 비즈니스를 주도했습니다.
목차:
Why MicroServices
Who has done it
Why Pivotal
Pivotal은 개발자 생산성을 높이고 운영비용을 줄이면서 성공적인 비지니스를 할 수 있도록 개발 환경의 혁신 문화와 플랫폼을 제공하고 있습니다.
본 세션에서는 플랫폼의 구조와 효과에 대해 소개하며 기업이 진정한 기술선도 업체로 발전해 갈 수 있도록 혁신적은 플랫폼 *PAS, *PKS를 소개합니다.
*PAS: Pivotal Application Service로 개발자에게 기능 구현 속도를 높이고, 운영 팀은 세계 최고 수준의 가용성을 제공해주는 서비스입니다.
*PKS: Pivotal Container Service로 Kubernates의 배포, 관리, 모니터링, 업데이트 등을 자동화하고 Pivotal에서 관리해주는 서비스입니다
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf91mobiles
91mobiles recently conducted a Smart TV Buyer Insights Survey in which we asked over 3,000 respondents about the TV they own, aspects they look at on a new TV, and their TV buying preferences.
Connector Corner: Automate dynamic content and events by pushing a buttonDianaGray10
Here is something new! In our next Connector Corner webinar, we will demonstrate how you can use a single workflow to:
Create a campaign using Mailchimp with merge tags/fields
Send an interactive Slack channel message (using buttons)
Have the message received by managers and peers along with a test email for review
But there’s more:
In a second workflow supporting the same use case, you’ll see:
Your campaign sent to target colleagues for approval
If the “Approve” button is clicked, a Jira/Zendesk ticket is created for the marketing design team
But—if the “Reject” button is pushed, colleagues will be alerted via Slack message
Join us to learn more about this new, human-in-the-loop capability, brought to you by Integration Service connectors.
And...
Speakers:
Akshay Agnihotri, Product Manager
Charlie Greenberg, Host
State of ICS and IoT Cyber Threat Landscape Report 2024 previewPrayukth K V
The IoT and OT threat landscape report has been prepared by the Threat Research Team at Sectrio using data from Sectrio, cyber threat intelligence farming facilities spread across over 85 cities around the world. In addition, Sectrio also runs AI-based advanced threat and payload engagement facilities that serve as sinks to attract and engage sophisticated threat actors, and newer malware including new variants and latent threats that are at an earlier stage of development.
The latest edition of the OT/ICS and IoT security Threat Landscape Report 2024 also covers:
State of global ICS asset and network exposure
Sectoral targets and attacks as well as the cost of ransom
Global APT activity, AI usage, actor and tactic profiles, and implications
Rise in volumes of AI-powered cyberattacks
Major cyber events in 2024
Malware and malicious payload trends
Cyberattack types and targets
Vulnerability exploit attempts on CVEs
Attacks on counties – USA
Expansion of bot farms – how, where, and why
In-depth analysis of the cyber threat landscape across North America, South America, Europe, APAC, and the Middle East
Why are attacks on smart factories rising?
Cyber risk predictions
Axis of attacks – Europe
Systemic attacks in the Middle East
Download the full report from here:
https://sectrio.com/resources/ot-threat-landscape-reports/sectrio-releases-ot-ics-and-iot-security-threat-landscape-report-2024/
Transcript: Selling digital books in 2024: Insights from industry leaders - T...BookNet Canada
The publishing industry has been selling digital audiobooks and ebooks for over a decade and has found its groove. What’s changed? What has stayed the same? Where do we go from here? Join a group of leading sales peers from across the industry for a conversation about the lessons learned since the popularization of digital books, best practices, digital book supply chain management, and more.
Link to video recording: https://bnctechforum.ca/sessions/selling-digital-books-in-2024-insights-from-industry-leaders/
Presented by BookNet Canada on May 28, 2024, with support from the Department of Canadian Heritage.
DevOps and Testing slides at DASA ConnectKari Kakkonen
My and Rik Marselis slides at 30.5.2024 DASA Connect conference. We discuss about what is testing, then what is agile testing and finally what is Testing in DevOps. Finally we had lovely workshop with the participants trying to find out different ways to think about quality and testing in different parts of the DevOps infinity loop.
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024Tobias Schneck
As AI technology is pushing into IT I was wondering myself, as an “infrastructure container kubernetes guy”, how get this fancy AI technology get managed from an infrastructure operational view? Is it possible to apply our lovely cloud native principals as well? What benefit’s both technologies could bring to each other?
Let me take this questions and provide you a short journey through existing deployment models and use cases for AI software. On practical examples, we discuss what cloud/on-premise strategy we may need for applying it to our own infrastructure to get it to work from an enterprise perspective. I want to give an overview about infrastructure requirements and technologies, what could be beneficial or limiting your AI use cases in an enterprise environment. An interactive Demo will give you some insides, what approaches I got already working for real.
Elevating Tactical DDD Patterns Through Object CalisthenicsDorra BARTAGUIZ
After immersing yourself in the blue book and its red counterpart, attending DDD-focused conferences, and applying tactical patterns, you're left with a crucial question: How do I ensure my design is effective? Tactical patterns within Domain-Driven Design (DDD) serve as guiding principles for creating clear and manageable domain models. However, achieving success with these patterns requires additional guidance. Interestingly, we've observed that a set of constraints initially designed for training purposes remarkably aligns with effective pattern implementation, offering a more ‘mechanical’ approach. Let's explore together how Object Calisthenics can elevate the design of your tactical DDD patterns, offering concrete help for those venturing into DDD for the first time!
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered QualityInflectra
In this insightful webinar, Inflectra explores how artificial intelligence (AI) is transforming software development and testing. Discover how AI-powered tools are revolutionizing every stage of the software development lifecycle (SDLC), from design and prototyping to testing, deployment, and monitoring.
Learn about:
• The Future of Testing: How AI is shifting testing towards verification, analysis, and higher-level skills, while reducing repetitive tasks.
• Test Automation: How AI-powered test case generation, optimization, and self-healing tests are making testing more efficient and effective.
• Visual Testing: Explore the emerging capabilities of AI in visual testing and how it's set to revolutionize UI verification.
• Inflectra's AI Solutions: See demonstrations of Inflectra's cutting-edge AI tools like the ChatGPT plugin and Azure Open AI platform, designed to streamline your testing process.
Whether you're a developer, tester, or QA professional, this webinar will give you valuable insights into how AI is shaping the future of software delivery.
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...UiPathCommunity
💥 Speed, accuracy, and scaling – discover the superpowers of GenAI in action with UiPath Document Understanding and Communications Mining™:
See how to accelerate model training and optimize model performance with active learning
Learn about the latest enhancements to out-of-the-box document processing – with little to no training required
Get an exclusive demo of the new family of UiPath LLMs – GenAI models specialized for processing different types of documents and messages
This is a hands-on session specifically designed for automation developers and AI enthusiasts seeking to enhance their knowledge in leveraging the latest intelligent document processing capabilities offered by UiPath.
Speakers:
👨🏫 Andras Palfi, Senior Product Manager, UiPath
👩🏫 Lenka Dulovicova, Product Program Manager, UiPath
The Art of the Pitch: WordPress Relationships and SalesLaura Byrne
Clients don’t know what they don’t know. What web solutions are right for them? How does WordPress come into the picture? How do you make sure you understand scope and timeline? What do you do if sometime changes?
All these questions and more will be explored as we talk about matching clients’ needs with what your agency offers without pulling teeth or pulling your hair out. Practical tips, and strategies for successful relationship building that leads to closing the deal.
22. Java API for JSON Binding (JSON-B) 1.0 – JSR 367
New HttpMessageConverter for JSON-B in Spring5
@Bean
public HttpMessageConverters customConverters() {
Collection<HttpMessageConverter<?>> messageConverters = new ArrayList<>();
JsonbHttpMessageConverter jsonbHttpMessageConverter = new JsonbHttpMessageConverter();
messageConverters.add(jsonbHttpMessageConverter);
return new HttpMessageConverters(true, messageConverters);
}
23. Servlet 4.0 – Server Push
Server pushes resources to Clients, efficient way to transfer
resources using HTTP/2
@GetMapping("/pushbuilder")
public String getPage(PushBuilder builder) {
builder.path("/scripts.js").push();
builder.path("/styles.css").push();
return "index";
}
24. Servlet 4.0 – HttpServletMapping
Provide Runtime Discovery of URL Mappings
@GetMapping("/servlet4")
public void index(final HttpServletRequest request) {
HttpServletMapping mapping = request.getHttpServletMapping();
System.out.println(mapping.getServletName());
System.out.println(mapping.getPattern());
System.out.println(mapping.getMappingMatch().name());
System.out.println(mapping.getMatchValue());
}
25. Bean Validation 2.0 – JSR 380
1.1 was introduced in 2013, lacking of supports for new Java8, 9.
! New JDK Types Including LocalTime, Optional and etc
! Lambda
! Type Annotation
! @Email, @Positive, @PositiveOrZero, @Negative, @NegativeOrZero,
@PastOrPresent, @FutureOrPresent, @NotEmpty, and @NotBlank.
27. Spring 5 – XML Configuration Changes
Streamlined to use unversioned Schema
28. Spring 5 - Logging Enhancement
spring-jcl replaces Commons Logging by default
! Autodetecting Log4j 2.x, SLF4J, and JUL (java.util.logging) by
Class Loading
30. Spring 5 - Component Scanning Enhancement
Component scanning time reduced by index, improving Start Up Time
• META-INF/spring.components is created at Compile Time
• @Indexed Annotation
• org.springframework.context.index.CandidateComponentsIndex
• -Dspring.index.ignore=true to fall back to old mechanism
@Target({ElementType.TYPE})
@Retention(RetentionPolicy.RUNTIME)
@Documented
public @interface Component {
String value() default "";
}
@Target({ElementType.TYPE})
@Retention(RetentionPolicy.RUNTIME)
@Documented
@Indexed
public @interface Component {
String value() default "";
}
32. Spring 5 - Component Scanning Enhancement
• JMH Result, ClassPath Scanning versus Index Scanning
• Noticeable Differences in having more classes
https://github.com/snicoll-scratches/test-spring-components-index
33. Spring 5 - Functional Bean Configuration
Support for Functional Bean Registration in
GenericApplicationContext, AnnotationConfigApplicationContext
! Very efficient, no reflection, no CGLIB proxies involved
! Lambda with Supplier act as a FactoryBean
34. Spring 5 - Functional Bean Configuration
@Autowired
GenericApplicationContext ctx;
@Test
public void functionalBeanTest() {
ctx.registerBean(Person.class, () -> new Person());
ctx.registerBean("personService", Person.class,
() -> new Person(), bd -> bd.setAutowireCandidate(false));
ctx.registerBean(”carService", Car.class,
() -> new Car(), bd -> bd.setScope(BeanDefinition.SCOPE_PROTOTYPE));
}
35. Spring 5 – JSR 305
SPR-15540 Introduce null-safety of Spring Framework API
• Becomes Kotlin Friendly (-Xjsr305=strict as of 1.1.51)
https://github.com/spring-projects/spring-framework/commit/f813712f5b413b354560cd7cc006352e9defa9a3
36. Spring 5 – JSR 305 Nullable
New Annotation org.springframework.lang.NonNull,
org.springframework.lang.Nullable leverages JSR 305
@Target({ElementType.METHOD, ElementType.PARAMETER, ElementType.FIELD})
@Retention(RetentionPolicy.RUNTIME)
@Documented
@Nonnull
@TypeQualifierNickname
public @interface NonNull {
}
37. Spring 5 – Spring MVC
HTTP/2 and Servlet 4.0
• PushBuilder
• WebFlux
• Support Reactor 3.1, RxJava 1.3, 2.1 as return values
• JSON BINDING API
• Jackson 2.9
• Protobuf 3.0
• URL Matching
38. Spring 5 – HTTP/2 Support Containers
! Tomcat 9.0
! Jetty 9.3
! Undertow 1.4
ex. Spring Boot
<dependency>
<groupId>org.apache.tomcat</groupId>
<artifactId>tomcat-juli</artifactId>
<version>9.0.1</version>
</dependency>
39. Spring 5 MVC – Multipart File Size
MaxUploadSizeExceededException will be thrown for multipart
size overrun
• Default Value
• Two Properties(Default Value)
• spring.servlet.multipart.max-file-size=1MB
spring.servlet.multipart.max-request-size=10MB
40. Spring 5 MVC – URL Matcher changed
PathPatternParser is alternative to Traditional AntPathMatcher for
URL Matching
• org.springframework.web.util.patterns.PathPattern
Examples:
/pages/t?st.html —/pages/test.html, /pages/tast.html /pages/toast.html
/resources/*.png — matches all .png files in the resources directory
/resources/** — matches all files underneath the /resources/ path, including /resources/
image.png and /resources/css/spring.css
/resources/{*path} — matches all files underneath the /resources/ path and captures their relative
path in a variable named "path"; /resources/image.png will match with ”path" -> "/image.png", and /
resources/css/spring.css will match with ”path" -> "/css/spring.css"
/resources/{filename:w+}.dat will match /resources/spring.dat and assign the value "spring" to
the filename variable
41. Spring 5 MVC – Throwing Exception from Controller
ResponseStatusException is Introduced to throw Exception in
MVC
• SPR-14895:Allow HTTP status exceptions to be easily thrown from
Controllers
• ResponseEntity(HttpStatus.BAD_REQUEST)?
@GetMapping ( "/throw" )
public void getException () {
throw new ResponseStatusException( HttpStatus. BAD_REQUEST , "request invalid." );
}
42. Spring 5 WebFlux – WebClient
Reactive Web Client introduced in Spring 5, alternative to
RestTemplate
! AsyncRestTemplate is deprecated
WebClient client= WebClient.create();
Mono<Person> person=client
.get()
.uri("http://jay-person.cfapps.io/{name}",name)
.retrieve()
.bodyToMono(Person.class);
43. Spring 5 WebFlux –WebTestClient
@RunWith(SpringRunner.class)
@SpringBootTest
@AutoConfigureWebTestClient
public class MicrometerApplicationTests {
@Autowired
WebTestClient client;
@Test
public void testWebClient() {
client.get().uri("/person/Jay")
.exchange()
.expectBody(Person.class)
.consumeWith(result -> assertThat(result.getResponseBody().getName()).isEqualTo("Jay Lee"));
}
44. Spring 5 WebFlux – Server
RouterFunction is introduced for functional programming
RouterFunction<?> route = route(GET("/users"), request ->
ok().body(repository.findAll(), Person.class))
.andRoute(GET("/users/{id}"), request ->
ok().body(repository.findOne(request.pathVariable("id")), Person.class))
.andRoute(POST("/users"), request ->
ok().build(repository.save(request.bodyToMono(Person.class)).then())
);
46. Spring Boot and Cloud
Spring Boot 2.0 will be GA in Feb 2018
! Spring Cloud Finchley Release Train based on Spring Boot 2.0
! Spring Cloud Gateway
! Spring Cloud Function