Prezentujący: Szymon Janikowski, Marcin Markowski z firmy ITLIBRIUM
Zapraszamy na itlibrium.com
Legacy boli. Czasami ujawnia się już po kilku miesiącach pracy zespołu. Jest jak choroba, która toczy naszą branżę. Często sami sobie na nią zapracowujemy…
Co robić, żeby nie zachorować? Jak poznać, że to się zaczyna? Jakich nawyków nabrać żeby się obronić?
Pokażemy dlaczego to właśnie Domain Driven Design jest często najlepszym środkiem zapobiegawczym:
* Jak wskazuje najlepsze miejsce na daną funkcjonalność w kodzie.
* Jak pozwala budować ogarnialnej wielkości building block-i
* Jak pozwala rozdzielić logikę na aplikacyjną i domenową
Alon Fliess: APM – What Is It, and Why Do I Need It? - Architecture Next 20CodeValue
So, you have a mature development process, and you also embrace DevOps. Your development team uses agile methodology. You use Git, and you have a continuous dev, test, and deployment process. But do you sleep well at night? Do you know that your services are up and running? That there are no availability, performance, and stability problems? Do you know if your customers are happy? The answer to all of those questions is precisely what APM systems provide.
Application Performance Monitoring systems have become the IDE of the Site Reliability Engineers (SRE) and, as a matter of fact, for the all DevOps team, including the Dev part. In this session, you will get to know the essence of the APM systems, the good, the bad, and the vision about their future.
Observability and more architecture next 2020Alon Fliess
You have a mature development process, and you also embrace DevOps. Your development team uses agile methodology. You use Git, and you have a continuous dev, test, deployment, everything process. But do you sleep well at night? Do you know that your services are up and running? That there are no availability, performance, and stability problems? Do you know if your customers are happy?
The answer to all of those questions is precisely what APM systems provide.
Application Performance Monitoring systems have become the IDE of the Site Reliability Engineers (SRE) and, as a matter of fact, for the all DevOps team, including the Dev part. In this lecture, you will get to know the essence of the APM systems, the good, the bad, and the vision about their future.
Building and deploying microservices with event sourcing, CQRS and Docker (Be...Chris Richardson
In this talk we share our experiences developing and deploying a microservices-based application. You will learn about the distributed data management challenges that arise in a microservices architecture. We will describe how we solved them using event sourcing to reliably publish events that drive eventually consistent workflows and pdate CQRS-based views. You will also learn how we build and deploy the application using a Jenkins-based deployment pipeline that creates Docker images that run on Amazon EC2.
This talk was given at the Berlin Microxchg conference and the Munich microservices meetup.
ATAGTR2017 Test Approach for Re-engineering Legacy Applications based on Micr...Agile Testing Alliance
The presentation on Test Approach for Re-engineering Legacy Applications based on Micro-service Architecture was done during #ATAGTR2017, one of the largest global testing conference. All copyright belongs to the author.
Author and presenter : Sandhya S
Intershop Commerce Management with Microsoft SQL ServerMauro Boffardi
Presentation during inPulse 2018 event, by Jens Kleinschmidt (Technical Product Manager / Architect of Intershop) , describing the choice of offering Microsoft SQL Server with the new 7.10 version of Commerce Suite.
Alon Fliess: APM – What Is It, and Why Do I Need It? - Architecture Next 20CodeValue
So, you have a mature development process, and you also embrace DevOps. Your development team uses agile methodology. You use Git, and you have a continuous dev, test, and deployment process. But do you sleep well at night? Do you know that your services are up and running? That there are no availability, performance, and stability problems? Do you know if your customers are happy? The answer to all of those questions is precisely what APM systems provide.
Application Performance Monitoring systems have become the IDE of the Site Reliability Engineers (SRE) and, as a matter of fact, for the all DevOps team, including the Dev part. In this session, you will get to know the essence of the APM systems, the good, the bad, and the vision about their future.
Observability and more architecture next 2020Alon Fliess
You have a mature development process, and you also embrace DevOps. Your development team uses agile methodology. You use Git, and you have a continuous dev, test, deployment, everything process. But do you sleep well at night? Do you know that your services are up and running? That there are no availability, performance, and stability problems? Do you know if your customers are happy?
The answer to all of those questions is precisely what APM systems provide.
Application Performance Monitoring systems have become the IDE of the Site Reliability Engineers (SRE) and, as a matter of fact, for the all DevOps team, including the Dev part. In this lecture, you will get to know the essence of the APM systems, the good, the bad, and the vision about their future.
Building and deploying microservices with event sourcing, CQRS and Docker (Be...Chris Richardson
In this talk we share our experiences developing and deploying a microservices-based application. You will learn about the distributed data management challenges that arise in a microservices architecture. We will describe how we solved them using event sourcing to reliably publish events that drive eventually consistent workflows and pdate CQRS-based views. You will also learn how we build and deploy the application using a Jenkins-based deployment pipeline that creates Docker images that run on Amazon EC2.
This talk was given at the Berlin Microxchg conference and the Munich microservices meetup.
ATAGTR2017 Test Approach for Re-engineering Legacy Applications based on Micr...Agile Testing Alliance
The presentation on Test Approach for Re-engineering Legacy Applications based on Micro-service Architecture was done during #ATAGTR2017, one of the largest global testing conference. All copyright belongs to the author.
Author and presenter : Sandhya S
Intershop Commerce Management with Microsoft SQL ServerMauro Boffardi
Presentation during inPulse 2018 event, by Jens Kleinschmidt (Technical Product Manager / Architect of Intershop) , describing the choice of offering Microsoft SQL Server with the new 7.10 version of Commerce Suite.
Clean Architecture as a term is around for a while. However, the path to implement it is not always clear nor easy to follow. When projects fail for reasons that are primary technical, the reason is often uncontrolled complexity. The complexity goes out of hand when the code lacks structure, when it lacks Clean Architecture.
In this presentation, I will show how to achieve consistency by
implementing Clean Architecture through structure, rather than relying on discipline only. We will look at some basic building blocks of an application infrastructure which will enforce the way dependencies are created, how dependency injection is used or how separation of the data access concerns is enforced.
Bootiful Development with Spring Boot and React - Dublin JUG 2018Matt Raible
Blog post: https://developer.okta.com/blog/2017/12/06/bootiful-development-with-spring-boot-and-react
GitHub repo: https://github.com/oktadeveloper/spring-boot-react-example
To simplify development and deployment, you want everything in the same artifact, so you put your React app “inside” your Spring Boot app, right?
But what if you could create your React app as a standalone app and make cross-origin requests to your API? A client app that can point to any server makes it easy to test your current client code against other servers (e.g. test, staging, production).
This session shows how to develop with Java 8, Spring Boot, React, and TypeScript. You’ll learn how to create REST endpoints with Spring MVC, configure Spring Boot to allow CORS, and create a React app to display its data.
Many programmers are dedicated and even obsessed with writing “good” code. We believe the most important feature of good code is its usability for developers.Good code is readable, concise, and easy to navigate. In this talk we will discuss why good code is valuable, and how to write better code.
WCF Data Services (formerly known as "ADO.NET Data Services") is a component of the .NET Framework that enables you to create services that use the Open Data Protocol (OData) to expose and consume data over the Web or intranet by using the semantics of representational state transfer (REST). OData exposes data as resources that are addressable by URIs. Data is accessed and changed by using standard HTTP verbs of GET, PUT, POST, and DELETE. OData uses the entity-relationship conventions of the Entity Data Model to expose resources as sets of entities that are related by associations.
While compute becomes faster and cheaper we are tempted to abandon sanity and shield ourselves from reality and laws of physics. The resulting mess of monstrous Slack instances rampaging across our RAM should makes us stop (because our computers did it already) and wonder where did we go wrong? Rising developer salaries and time to market pace are tempting us to abandon all hope for optimising our code and understanding our systems.
Contrary to what casual reader could think this is a deeply technical presentation. We will gaze into hardware counters, NUMA nodes, vector registers and that darkness will stare back at us.
All this to get a taste of what is possible on current hardware, to learn the COST of scalability and forever change how you feel when accessing invoice list in your local utilities provider UI so that after 20s of waiting all 12 elements will be displayed (surely Cthulhu must be eating their compute because it is NOT possible Tauron hosts it’s billing services on FIRST GEN IPHONE).
Service Oriented Architecture in Magento 2Max Pronko
During the Magento Meetup London I've had a chance to bring a very interesting for discussion. Service Oriented Architecture in Magento 2. Feel free to share, watch and ask questions if you would like to clarify the approach.
BizTalk Server (Integration and connectivity server technology) allows organizations to strategize their IT policy and support to easily connect disparate business systems. It is a development and run-time environment for business process management (BPM) and automation with BizTalk’s Extract, Transform and Load features. It plays a big role in integrating legacy systems of a company with newer IT strategic applications. The technology is based on upcoming Service Oriented Architecture (SOA) and Enterprise Application Bus (ESB). Currently there is a huge demand for BizTalk professionals. The module will concentrate on BizTalk techniques that are used in integrating various applications. A Vskills Certified BizTalk professional would have employment opportunities in all IT companies.
http://www.vskills.in/certification/Certified-BizTalk-Professional
Bootiful Development with Spring Boot and ReactVMware Tanzu
SpringOne Platform 2017
Matt Raible, Okta
To simplify development and deployment, you want everything in the same artifact, so you put your React app “inside” your Spring Boot app, right? But what if you could create your React app as a standalone app and make cross-origin requests to your API? A client app that can point to any server makes it easy to test your current client code against other servers (e.g. test, staging, production). This session shows how to develop with Java 8, Spring Boot, React, and TypeScript. You’ll learn how to create REST endpoints with Spring MVC, configure Spring Boot to allow CORS, and create an React app to display its data. If time allows we’ll cover authentication with OpenID Connect and deployment to Cloud Foundry.
This SolidWorks World 2010 presentation by Paul Gimbel from Razorleaf Corporation explores using the SolidWorks API and the tools available within SolidWorks and SolidWorks Simulation to validate automatically generated, and manually configured designs.
Enforce Consistency through Application InfrastructureFlorin Coros
When projects do fail for reasons that are primary technical, the reason is often uncontrolled complexity. The complexity goes out of hand when the code lacks structure. In large software projects where many developers work on the same code base one of the biggest challenge is to get consistency in code, to create development patterns for common problems, so you can control the complexity and size of the system.
In this session I will show how we can achieve consistency through structure, rather then relying on discipline only. We will look at some basic building blocks of an application infrastructure which will enforce the way dependencies are created, how dependency injection is used or how separation of the data access concerns is enforced.
As developers, our unique set of challenges is known in the community and we always look for ways in which we can reuse the code in the new project. However, in the traditional approach and especially in the custom markup structure, the reuse of code has not been easy. Especially, with the complex HTML and its correlated script and style, you may have ended up writing codes to provide customized UI controls. Using this approach has most of the times turned your pages into a real mess.
Events on the outside, on the inside and at the core (jfokus jfokus2016)Chris Richardson
This is the talk I gave at JFokus 2016 on event-driven microservices.
This presentation looks at the importance of events and the role that they play in applications. We describe how events are a key application integration mechanism and how they are used by applications to communicate with the outside world. You will learn how the microservices inside a system can use events to maintain data consistency. We discuss how easy it is to implement both of these mechanisms by developing your core business logic using an event-centric approach known as event sourcing.
Policy Injection in ASP.NET using Enterprise Library 3.0PhilWinstanley
Terminology and Buzzwords
The Policy Injection Application Block
what it does, how it works
Configuring Policies
Using Attributes
Extending the Block
custom Handlers and Matching Rules
Removing Uninteresting Bytes in Software FuzzingAftab Hussain
Imagine a world where software fuzzing, the process of mutating bytes in test seeds to uncover hidden and erroneous program behaviors, becomes faster and more effective. A lot depends on the initial seeds, which can significantly dictate the trajectory of a fuzzing campaign, particularly in terms of how long it takes to uncover interesting behaviour in your code. We introduce DIAR, a technique designed to speedup fuzzing campaigns by pinpointing and eliminating those uninteresting bytes in the seeds. Picture this: instead of wasting valuable resources on meaningless mutations in large, bloated seeds, DIAR removes the unnecessary bytes, streamlining the entire process.
In this work, we equipped AFL, a popular fuzzer, with DIAR and examined two critical Linux libraries -- Libxml's xmllint, a tool for parsing xml documents, and Binutil's readelf, an essential debugging and security analysis command-line tool used to display detailed information about ELF (Executable and Linkable Format). Our preliminary results show that AFL+DIAR does not only discover new paths more quickly but also achieves higher coverage overall. This work thus showcases how starting with lean and optimized seeds can lead to faster, more comprehensive fuzzing campaigns -- and DIAR helps you find such seeds.
- These are slides of the talk given at IEEE International Conference on Software Testing Verification and Validation Workshop, ICSTW 2022.
More Related Content
Similar to Dlaczego DDD skutecznie zapobiega chorobie legacy ?
Clean Architecture as a term is around for a while. However, the path to implement it is not always clear nor easy to follow. When projects fail for reasons that are primary technical, the reason is often uncontrolled complexity. The complexity goes out of hand when the code lacks structure, when it lacks Clean Architecture.
In this presentation, I will show how to achieve consistency by
implementing Clean Architecture through structure, rather than relying on discipline only. We will look at some basic building blocks of an application infrastructure which will enforce the way dependencies are created, how dependency injection is used or how separation of the data access concerns is enforced.
Bootiful Development with Spring Boot and React - Dublin JUG 2018Matt Raible
Blog post: https://developer.okta.com/blog/2017/12/06/bootiful-development-with-spring-boot-and-react
GitHub repo: https://github.com/oktadeveloper/spring-boot-react-example
To simplify development and deployment, you want everything in the same artifact, so you put your React app “inside” your Spring Boot app, right?
But what if you could create your React app as a standalone app and make cross-origin requests to your API? A client app that can point to any server makes it easy to test your current client code against other servers (e.g. test, staging, production).
This session shows how to develop with Java 8, Spring Boot, React, and TypeScript. You’ll learn how to create REST endpoints with Spring MVC, configure Spring Boot to allow CORS, and create a React app to display its data.
Many programmers are dedicated and even obsessed with writing “good” code. We believe the most important feature of good code is its usability for developers.Good code is readable, concise, and easy to navigate. In this talk we will discuss why good code is valuable, and how to write better code.
WCF Data Services (formerly known as "ADO.NET Data Services") is a component of the .NET Framework that enables you to create services that use the Open Data Protocol (OData) to expose and consume data over the Web or intranet by using the semantics of representational state transfer (REST). OData exposes data as resources that are addressable by URIs. Data is accessed and changed by using standard HTTP verbs of GET, PUT, POST, and DELETE. OData uses the entity-relationship conventions of the Entity Data Model to expose resources as sets of entities that are related by associations.
While compute becomes faster and cheaper we are tempted to abandon sanity and shield ourselves from reality and laws of physics. The resulting mess of monstrous Slack instances rampaging across our RAM should makes us stop (because our computers did it already) and wonder where did we go wrong? Rising developer salaries and time to market pace are tempting us to abandon all hope for optimising our code and understanding our systems.
Contrary to what casual reader could think this is a deeply technical presentation. We will gaze into hardware counters, NUMA nodes, vector registers and that darkness will stare back at us.
All this to get a taste of what is possible on current hardware, to learn the COST of scalability and forever change how you feel when accessing invoice list in your local utilities provider UI so that after 20s of waiting all 12 elements will be displayed (surely Cthulhu must be eating their compute because it is NOT possible Tauron hosts it’s billing services on FIRST GEN IPHONE).
Service Oriented Architecture in Magento 2Max Pronko
During the Magento Meetup London I've had a chance to bring a very interesting for discussion. Service Oriented Architecture in Magento 2. Feel free to share, watch and ask questions if you would like to clarify the approach.
BizTalk Server (Integration and connectivity server technology) allows organizations to strategize their IT policy and support to easily connect disparate business systems. It is a development and run-time environment for business process management (BPM) and automation with BizTalk’s Extract, Transform and Load features. It plays a big role in integrating legacy systems of a company with newer IT strategic applications. The technology is based on upcoming Service Oriented Architecture (SOA) and Enterprise Application Bus (ESB). Currently there is a huge demand for BizTalk professionals. The module will concentrate on BizTalk techniques that are used in integrating various applications. A Vskills Certified BizTalk professional would have employment opportunities in all IT companies.
http://www.vskills.in/certification/Certified-BizTalk-Professional
Bootiful Development with Spring Boot and ReactVMware Tanzu
SpringOne Platform 2017
Matt Raible, Okta
To simplify development and deployment, you want everything in the same artifact, so you put your React app “inside” your Spring Boot app, right? But what if you could create your React app as a standalone app and make cross-origin requests to your API? A client app that can point to any server makes it easy to test your current client code against other servers (e.g. test, staging, production). This session shows how to develop with Java 8, Spring Boot, React, and TypeScript. You’ll learn how to create REST endpoints with Spring MVC, configure Spring Boot to allow CORS, and create an React app to display its data. If time allows we’ll cover authentication with OpenID Connect and deployment to Cloud Foundry.
This SolidWorks World 2010 presentation by Paul Gimbel from Razorleaf Corporation explores using the SolidWorks API and the tools available within SolidWorks and SolidWorks Simulation to validate automatically generated, and manually configured designs.
Enforce Consistency through Application InfrastructureFlorin Coros
When projects do fail for reasons that are primary technical, the reason is often uncontrolled complexity. The complexity goes out of hand when the code lacks structure. In large software projects where many developers work on the same code base one of the biggest challenge is to get consistency in code, to create development patterns for common problems, so you can control the complexity and size of the system.
In this session I will show how we can achieve consistency through structure, rather then relying on discipline only. We will look at some basic building blocks of an application infrastructure which will enforce the way dependencies are created, how dependency injection is used or how separation of the data access concerns is enforced.
As developers, our unique set of challenges is known in the community and we always look for ways in which we can reuse the code in the new project. However, in the traditional approach and especially in the custom markup structure, the reuse of code has not been easy. Especially, with the complex HTML and its correlated script and style, you may have ended up writing codes to provide customized UI controls. Using this approach has most of the times turned your pages into a real mess.
Events on the outside, on the inside and at the core (jfokus jfokus2016)Chris Richardson
This is the talk I gave at JFokus 2016 on event-driven microservices.
This presentation looks at the importance of events and the role that they play in applications. We describe how events are a key application integration mechanism and how they are used by applications to communicate with the outside world. You will learn how the microservices inside a system can use events to maintain data consistency. We discuss how easy it is to implement both of these mechanisms by developing your core business logic using an event-centric approach known as event sourcing.
Policy Injection in ASP.NET using Enterprise Library 3.0PhilWinstanley
Terminology and Buzzwords
The Policy Injection Application Block
what it does, how it works
Configuring Policies
Using Attributes
Extending the Block
custom Handlers and Matching Rules
Similar to Dlaczego DDD skutecznie zapobiega chorobie legacy ? (20)
Removing Uninteresting Bytes in Software FuzzingAftab Hussain
Imagine a world where software fuzzing, the process of mutating bytes in test seeds to uncover hidden and erroneous program behaviors, becomes faster and more effective. A lot depends on the initial seeds, which can significantly dictate the trajectory of a fuzzing campaign, particularly in terms of how long it takes to uncover interesting behaviour in your code. We introduce DIAR, a technique designed to speedup fuzzing campaigns by pinpointing and eliminating those uninteresting bytes in the seeds. Picture this: instead of wasting valuable resources on meaningless mutations in large, bloated seeds, DIAR removes the unnecessary bytes, streamlining the entire process.
In this work, we equipped AFL, a popular fuzzer, with DIAR and examined two critical Linux libraries -- Libxml's xmllint, a tool for parsing xml documents, and Binutil's readelf, an essential debugging and security analysis command-line tool used to display detailed information about ELF (Executable and Linkable Format). Our preliminary results show that AFL+DIAR does not only discover new paths more quickly but also achieves higher coverage overall. This work thus showcases how starting with lean and optimized seeds can lead to faster, more comprehensive fuzzing campaigns -- and DIAR helps you find such seeds.
- These are slides of the talk given at IEEE International Conference on Software Testing Verification and Validation Workshop, ICSTW 2022.
GridMate - End to end testing is a critical piece to ensure quality and avoid...ThomasParaiso2
End to end testing is a critical piece to ensure quality and avoid regressions. In this session, we share our journey building an E2E testing pipeline for GridMate components (LWC and Aura) using Cypress, JSForce, FakerJS…
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...DanBrown980551
Do you want to learn how to model and simulate an electrical network from scratch in under an hour?
Then welcome to this PowSyBl workshop, hosted by Rte, the French Transmission System Operator (TSO)!
During the webinar, you will discover the PowSyBl ecosystem as well as handle and study an electrical network through an interactive Python notebook.
PowSyBl is an open source project hosted by LF Energy, which offers a comprehensive set of features for electrical grid modelling and simulation. Among other advanced features, PowSyBl provides:
- A fully editable and extendable library for grid component modelling;
- Visualization tools to display your network;
- Grid simulation tools, such as power flows, security analyses (with or without remedial actions) and sensitivity analyses;
The framework is mostly written in Java, with a Python binding so that Python developers can access PowSyBl functionalities as well.
What you will learn during the webinar:
- For beginners: discover PowSyBl's functionalities through a quick general presentation and the notebook, without needing any expert coding skills;
- For advanced developers: master the skills to efficiently apply PowSyBl functionalities to your real-world scenarios.
Essentials of Automations: The Art of Triggers and Actions in FMESafe Software
In this second installment of our Essentials of Automations webinar series, we’ll explore the landscape of triggers and actions, guiding you through the nuances of authoring and adapting workspaces for seamless automations. Gain an understanding of the full spectrum of triggers and actions available in FME, empowering you to enhance your workspaces for efficient automation.
We’ll kick things off by showcasing the most commonly used event-based triggers, introducing you to various automation workflows like manual triggers, schedules, directory watchers, and more. Plus, see how these elements play out in real scenarios.
Whether you’re tweaking your current setup or building from the ground up, this session will arm you with the tools and insights needed to transform your FME usage into a powerhouse of productivity. Join us to discover effective strategies that simplify complex processes, enhancing your productivity and transforming your data management practices with FME. Let’s turn complexity into clarity and make your workspaces work wonders!
GraphSummit Singapore | The Art of the Possible with Graph - Q2 2024Neo4j
Neha Bajwa, Vice President of Product Marketing, Neo4j
Join us as we explore breakthrough innovations enabled by interconnected data and AI. Discover firsthand how organizations use relationships in data to uncover contextual insights and solve our most pressing challenges – from optimizing supply chains, detecting fraud, and improving customer experiences to accelerating drug discoveries.
SAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdfPeter Spielvogel
Building better applications for business users with SAP Fiori.
• What is SAP Fiori and why it matters to you
• How a better user experience drives measurable business benefits
• How to get started with SAP Fiori today
• How SAP Fiori elements accelerates application development
• How SAP Build Code includes SAP Fiori tools and other generative artificial intelligence capabilities
• How SAP Fiori paves the way for using AI in SAP apps
Securing your Kubernetes cluster_ a step-by-step guide to success !KatiaHIMEUR1
Today, after several years of existence, an extremely active community and an ultra-dynamic ecosystem, Kubernetes has established itself as the de facto standard in container orchestration. Thanks to a wide range of managed services, it has never been so easy to set up a ready-to-use Kubernetes cluster.
However, this ease of use means that the subject of security in Kubernetes is often left for later, or even neglected. This exposes companies to significant risks.
In this talk, I'll show you step-by-step how to secure your Kubernetes cluster for greater peace of mind and reliability.
Dr. Sean Tan, Head of Data Science, Changi Airport Group
Discover how Changi Airport Group (CAG) leverages graph technologies and generative AI to revolutionize their search capabilities. This session delves into the unique search needs of CAG’s diverse passengers and customers, showcasing how graph data structures enhance the accuracy and relevance of AI-generated search results, mitigating the risk of “hallucinations” and improving the overall customer journey.
In his public lecture, Christian Timmerer provides insights into the fascinating history of video streaming, starting from its humble beginnings before YouTube to the groundbreaking technologies that now dominate platforms like Netflix and ORF ON. Timmerer also presents provocative contributions of his own that have significantly influenced the industry. He concludes by looking at future challenges and invites the audience to join in a discussion.
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...Neo4j
Leonard Jayamohan, Partner & Generative AI Lead, Deloitte
This keynote will reveal how Deloitte leverages Neo4j’s graph power for groundbreaking digital twin solutions, achieving a staggering 100x performance boost. Discover the essential role knowledge graphs play in successful generative AI implementations. Plus, get an exclusive look at an innovative Neo4j + Generative AI solution Deloitte is developing in-house.
Threats to mobile devices are more prevalent and increasing in scope and complexity. Users of mobile devices desire to take full advantage of the features
available on those devices, but many of the features provide convenience and capability but sacrifice security. This best practices guide outlines steps the users can take to better protect personal devices and information.
PHP Frameworks: I want to break free (IPC Berlin 2024)Ralf Eggert
In this presentation, we examine the challenges and limitations of relying too heavily on PHP frameworks in web development. We discuss the history of PHP and its frameworks to understand how this dependence has evolved. The focus will be on providing concrete tips and strategies to reduce reliance on these frameworks, based on real-world examples and practical considerations. The goal is to equip developers with the skills and knowledge to create more flexible and future-proof web applications. We'll explore the importance of maintaining autonomy in a rapidly changing tech landscape and how to make informed decisions in PHP development.
This talk is aimed at encouraging a more independent approach to using PHP frameworks, moving towards a more flexible and future-proof approach to PHP development.
106. public class Intervention {
[…]
public void finish(Collection<ServiceAction> serviceActions, PricePolicy pricePolicy)
throws BusinessException {
if (this.serviceActions != null)
throw new BusinessException("Nie można zakończyć interwencji więcej niż raz");
this.serviceActions = new ArrayList<>(serviceActions);
price = this.serviceActions.stream()
.map(pricePolicy::apply)
.reduce(Money.ZERO, Money::sum);
}
}
DDD v1
154. DDD v3
public class Intervention {
[…]
public void Finish(Collection<ServiceAction> serviceActions,
InterventionPricing interventionPricing)
throws BusinessException {
if (this.serviceActions != null)
throw new BusinessException("Nie można zakończyć interwencji więcej niż raz");
this.serviceActions = new ArrayList<>(serviceActions);
price = interventionPricing.getTotalPrice();
}
}
155. DDD v3
public class Intervention {
[…]
public void Finish(Collection<ServiceAction> serviceActions,
InterventionPricing interventionPricing)
throws BusinessException {
if (this.serviceActions != null)
throw new BusinessException("Nie można zakończyć interwencji więcej niż raz");
this.serviceActions = new ArrayList<>(serviceActions);
price = interventionPricing.getTotalPrice();
}
}
ZMIANA PARAMETRU