Structuring Java applications is important for large projects with many developers. There are different approaches like putting everything in one package, packing by technical layers, or packing by feature. Packing by feature has better structure with high cohesion and low coupling, but public modifiers are needed which can leak internal information. Common problems are limited encapsulation and wrong method invocations due to leaked information. Solutions include using internal packages with interfaces/factories, API packages with conventions and code analysis, and Java Platform Module System. An example shows how implementation details can overwhelm and how to better hide information between modules.
ITARC15 Workshop - Architecting a Large Software Project - Lessons LearnedJoão Pedro Martins
Improving on a previous version of this session delivered in Lisbon, this deck describes the real experiences in architecting and developing a large software project that took 3 years to go live. It was presented at a 3,5hr ITARC2015 workshop in Stockholm, Sweden.
Architecting a Large Software Project - Lessons LearnedJoão Pedro Martins
In large projects, the Software Architect role includes both the client communication and requirements management, and the solution design itself, making sure technical quality is garanteed. This presentation describes the lessons learned with a highly successful project that took 3 years of development until its production phase, in technical, functional, and architeture aspects.
Presented at the 50th meeting of the Netponto Community in Lisboa, Portugal.
ITARC15 Workshop - Architecting a Large Software Project - Lessons LearnedJoão Pedro Martins
Improving on a previous version of this session delivered in Lisbon, this deck describes the real experiences in architecting and developing a large software project that took 3 years to go live. It was presented at a 3,5hr ITARC2015 workshop in Stockholm, Sweden.
Architecting a Large Software Project - Lessons LearnedJoão Pedro Martins
In large projects, the Software Architect role includes both the client communication and requirements management, and the solution design itself, making sure technical quality is garanteed. This presentation describes the lessons learned with a highly successful project that took 3 years of development until its production phase, in technical, functional, and architeture aspects.
Presented at the 50th meeting of the Netponto Community in Lisboa, Portugal.
10 clues showing that you are doing OSGi in the wrong manner - Jerome Molieremfrancis
This presentation aims to show common pitfalls in OSGi architecture and development and how to avoid them. It involves concrete use cases and their solutions. Antipatterns, bad designs , bad tooling will be presented during this session... This session is user oriented and aimed to give concrete feedbacks and good practices...
9 crucial Java Design Principles you cannot missMark Papis
Encapsulation, Polymorphism, Agreggation / Composition, Overloading, Inheritance vs Composition, DRY, Dependency Injection, Delagation, Law of demeter, Principle of leas knowledge,
CQ5 Development Setup, Maven Build and Deployment6D Global
Six Dimensions and 6D-Labs are pleased to distribute its 2nd CQ webinar "CQ5 Development Setup: Maven Build and Deployment" This webinar covers best practices in building and deploying CQ5 applications.
CQ5 Development Setup, Maven Build and Deploymentklcodanr
Six Dimensions and 6D-Labs are pleased to distribute its 2nd CQ webinar "CQ5 Development Setup: Maven Build and Deployment" This webinar covers best practices in building and deploying CQ5 applications.
Creating Large Scale Software Platforms with OSGi and an Extension Point Mode...Nuxeo
OSGi was selected by Nuxeo on the server side 4 years ago in order to create a platform for content management applications that could scale to meet the most challenging digital content use cases. This session will dive into the approach used, how the platform evolved over the past 3 years regarding OSGi, how Nuxeo built the extension system, how to leverage OSGi to create multiple assemblies from the same codebase, discuss how the UI has been modularized, and how the platform can now be deployed on traditional Java server containers and new ones like Eclipse Virgo.
Agility is the tool gilb vilnius 9 dec 2013tom gilb
Build Stuff 13, 9.12.2013 Monday 1600-1700,
Vilnius, Lithuania, #BuildStuffLT
‘Agility is the TOOL, not the Master’ : Practical Agile Systems Engineering Tools including My Ten Key Agile Principles and several case studies
How Microsoft ALM Tools Can Improve Your Bottom LineImaginet
Improved efficiencies, enhanced productivity, reduction of wasted time and effort, and improved team collaboration. Each of these benefits that result from adopting a successful ALM strategy will all help your bottom line. Come find out how at this free webinar!
Fighting legacy with hexagonal architecture and frameworkless phpFabio Pellegrini
Molto spesso capita di venire a contatto con applicazioni legacy piuttosto datate, i classici monoliti che sono cresciuti a dismisura nel tempo accumulando debito tecnologico.
A causa delle priorità di business delle aziende, non sempre si riesce ad allocare il budget e il tempo necessario per iniziare subito il processo di ristrutturazione architetturale e di rimodellazione dei dati che servirebbe.
In questo talk presenterò una soluzione che mi è capitato di adottare recentemente per iniziare a ridefinire la struttura di un progetto legacy, utilizzando un approccio basato su Domain Driven Design, architettura esagonale e l’utilizzo di PHP senza framework.
Vedremo come è stato creato un nuovo servizio “satellite” da zero, come sono state implementate le componenti principali, come si è tenuto il codice legacy ai margini dell’applicazione, come si è approcciato il testing, il tutto nell’ottica di poter spacchettare il monolite in microservizi in un secondo momento.
It's a very simple slide that describes a little bit about web frameworks. it Introduces with frameworks.
describes what is a web framework?, Degrees of activeness web frameworks, Some most popular web frameworks, Who should use a framework? Advantages and disadvantage of using a framework. and finally tells about the future of web frameworks
"Wszyscy" wiedzą (a amerykańscy naukowcy nawet udowodnili), że lekkie metodyki dobrze sprawdzają się w małych zespołach. Ale co w przypadku dużych projektów lub programów - czy tam też uzasadnione jest użycie Agile'a/Scruma/Kanbana/XP? Platforma TripCase od kilkunastu miesięcy rozwijana jest przez zespół liczący blisko 100 osób. Proces, którego używa zespół, cały czas ewoluuje i bezsprzecznie oparty jest na lekkich metodykach. W trakcie prezentacji autorzy podzielą się swoimi doświadczeniami związanymi z kształtowaniem "lekkiego" procesu, który działałby dla tak licznego zespołu.
Cyaniclab : Software Development Agency Portfolio.pdfCyanic lab
CyanicLab, an offshore custom software development company based in Sweden,India, Finland, is your go-to partner for startup development and innovative web design solutions. Our expert team specializes in crafting cutting-edge software tailored to meet the unique needs of startups and established enterprises alike. From conceptualization to execution, we offer comprehensive services including web and mobile app development, UI/UX design, and ongoing software maintenance. Ready to elevate your business? Contact CyanicLab today and let us propel your vision to success with our top-notch IT solutions.
We describe the deployment and use of Globus Compute for remote computation. This content is aimed at researchers who wish to compute on remote resources using a unified programming interface, as well as system administrators who will deploy and operate Globus Compute services on their research computing infrastructure.
10 clues showing that you are doing OSGi in the wrong manner - Jerome Molieremfrancis
This presentation aims to show common pitfalls in OSGi architecture and development and how to avoid them. It involves concrete use cases and their solutions. Antipatterns, bad designs , bad tooling will be presented during this session... This session is user oriented and aimed to give concrete feedbacks and good practices...
9 crucial Java Design Principles you cannot missMark Papis
Encapsulation, Polymorphism, Agreggation / Composition, Overloading, Inheritance vs Composition, DRY, Dependency Injection, Delagation, Law of demeter, Principle of leas knowledge,
CQ5 Development Setup, Maven Build and Deployment6D Global
Six Dimensions and 6D-Labs are pleased to distribute its 2nd CQ webinar "CQ5 Development Setup: Maven Build and Deployment" This webinar covers best practices in building and deploying CQ5 applications.
CQ5 Development Setup, Maven Build and Deploymentklcodanr
Six Dimensions and 6D-Labs are pleased to distribute its 2nd CQ webinar "CQ5 Development Setup: Maven Build and Deployment" This webinar covers best practices in building and deploying CQ5 applications.
Creating Large Scale Software Platforms with OSGi and an Extension Point Mode...Nuxeo
OSGi was selected by Nuxeo on the server side 4 years ago in order to create a platform for content management applications that could scale to meet the most challenging digital content use cases. This session will dive into the approach used, how the platform evolved over the past 3 years regarding OSGi, how Nuxeo built the extension system, how to leverage OSGi to create multiple assemblies from the same codebase, discuss how the UI has been modularized, and how the platform can now be deployed on traditional Java server containers and new ones like Eclipse Virgo.
Agility is the tool gilb vilnius 9 dec 2013tom gilb
Build Stuff 13, 9.12.2013 Monday 1600-1700,
Vilnius, Lithuania, #BuildStuffLT
‘Agility is the TOOL, not the Master’ : Practical Agile Systems Engineering Tools including My Ten Key Agile Principles and several case studies
How Microsoft ALM Tools Can Improve Your Bottom LineImaginet
Improved efficiencies, enhanced productivity, reduction of wasted time and effort, and improved team collaboration. Each of these benefits that result from adopting a successful ALM strategy will all help your bottom line. Come find out how at this free webinar!
Fighting legacy with hexagonal architecture and frameworkless phpFabio Pellegrini
Molto spesso capita di venire a contatto con applicazioni legacy piuttosto datate, i classici monoliti che sono cresciuti a dismisura nel tempo accumulando debito tecnologico.
A causa delle priorità di business delle aziende, non sempre si riesce ad allocare il budget e il tempo necessario per iniziare subito il processo di ristrutturazione architetturale e di rimodellazione dei dati che servirebbe.
In questo talk presenterò una soluzione che mi è capitato di adottare recentemente per iniziare a ridefinire la struttura di un progetto legacy, utilizzando un approccio basato su Domain Driven Design, architettura esagonale e l’utilizzo di PHP senza framework.
Vedremo come è stato creato un nuovo servizio “satellite” da zero, come sono state implementate le componenti principali, come si è tenuto il codice legacy ai margini dell’applicazione, come si è approcciato il testing, il tutto nell’ottica di poter spacchettare il monolite in microservizi in un secondo momento.
It's a very simple slide that describes a little bit about web frameworks. it Introduces with frameworks.
describes what is a web framework?, Degrees of activeness web frameworks, Some most popular web frameworks, Who should use a framework? Advantages and disadvantage of using a framework. and finally tells about the future of web frameworks
"Wszyscy" wiedzą (a amerykańscy naukowcy nawet udowodnili), że lekkie metodyki dobrze sprawdzają się w małych zespołach. Ale co w przypadku dużych projektów lub programów - czy tam też uzasadnione jest użycie Agile'a/Scruma/Kanbana/XP? Platforma TripCase od kilkunastu miesięcy rozwijana jest przez zespół liczący blisko 100 osób. Proces, którego używa zespół, cały czas ewoluuje i bezsprzecznie oparty jest na lekkich metodykach. W trakcie prezentacji autorzy podzielą się swoimi doświadczeniami związanymi z kształtowaniem "lekkiego" procesu, który działałby dla tak licznego zespołu.
Cyaniclab : Software Development Agency Portfolio.pdfCyanic lab
CyanicLab, an offshore custom software development company based in Sweden,India, Finland, is your go-to partner for startup development and innovative web design solutions. Our expert team specializes in crafting cutting-edge software tailored to meet the unique needs of startups and established enterprises alike. From conceptualization to execution, we offer comprehensive services including web and mobile app development, UI/UX design, and ongoing software maintenance. Ready to elevate your business? Contact CyanicLab today and let us propel your vision to success with our top-notch IT solutions.
We describe the deployment and use of Globus Compute for remote computation. This content is aimed at researchers who wish to compute on remote resources using a unified programming interface, as well as system administrators who will deploy and operate Globus Compute services on their research computing infrastructure.
Understanding Globus Data Transfers with NetSageGlobus
NetSage is an open privacy-aware network measurement, analysis, and visualization service designed to help end-users visualize and reason about large data transfers. NetSage traditionally has used a combination of passive measurements, including SNMP and flow data, as well as active measurements, mainly perfSONAR, to provide longitudinal network performance data visualization. It has been deployed by dozens of networks world wide, and is supported domestically by the Engagement and Performance Operations Center (EPOC), NSF #2328479. We have recently expanded the NetSage data sources to include logs for Globus data transfers, following the same privacy-preserving approach as for Flow data. Using the logs for the Texas Advanced Computing Center (TACC) as an example, this talk will walk through several different example use cases that NetSage can answer, including: Who is using Globus to share data with my institution, and what kind of performance are they able to achieve? How many transfers has Globus supported for us? Which sites are we sharing the most data with, and how is that changing over time? How is my site using Globus to move data internally, and what kind of performance do we see for those transfers? What percentage of data transfers at my institution used Globus, and how did the overall data transfer performance compare to the Globus users?
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoamtakuyayamamoto1800
In this slide, we show the simulation example and the way to compile this solver.
In this solver, the Helmholtz equation can be solved by helmholtzFoam. Also, the Helmholtz equation with uniformly dispersed bubbles can be simulated by helmholtzBubbleFoam.
Quarkus Hidden and Forbidden ExtensionsMax Andersen
Quarkus has a vast extension ecosystem and is known for its subsonic and subatomic feature set. Some of these features are not as well known, and some extensions are less talked about, but that does not make them less interesting - quite the opposite.
Come join this talk to see some tips and tricks for using Quarkus and some of the lesser known features, extensions and development techniques.
How to Position Your Globus Data Portal for Success Ten Good PracticesGlobus
Science gateways allow science and engineering communities to access shared data, software, computing services, and instruments. Science gateways have gained a lot of traction in the last twenty years, as evidenced by projects such as the Science Gateways Community Institute (SGCI) and the Center of Excellence on Science Gateways (SGX3) in the US, The Australian Research Data Commons (ARDC) and its platforms in Australia, and the projects around Virtual Research Environments in Europe. A few mature frameworks have evolved with their different strengths and foci and have been taken up by a larger community such as the Globus Data Portal, Hubzero, Tapis, and Galaxy. However, even when gateways are built on successful frameworks, they continue to face the challenges of ongoing maintenance costs and how to meet the ever-expanding needs of the community they serve with enhanced features. It is not uncommon that gateways with compelling use cases are nonetheless unable to get past the prototype phase and become a full production service, or if they do, they don't survive more than a couple of years. While there is no guaranteed pathway to success, it seems likely that for any gateway there is a need for a strong community and/or solid funding streams to create and sustain its success. With over twenty years of examples to draw from, this presentation goes into detail for ten factors common to successful and enduring gateways that effectively serve as best practices for any new or developing gateway.
Enhancing Research Orchestration Capabilities at ORNL.pdfGlobus
Cross-facility research orchestration comes with ever-changing constraints regarding the availability and suitability of various compute and data resources. In short, a flexible data and processing fabric is needed to enable the dynamic redirection of data and compute tasks throughout the lifecycle of an experiment. In this talk, we illustrate how we easily leveraged Globus services to instrument the ACE research testbed at the Oak Ridge Leadership Computing Facility with flexible data and task orchestration capabilities.
Into the Box Keynote Day 2: Unveiling amazing updates and announcements for modern CFML developers! Get ready for exciting releases and updates on Ortus tools and products. Stay tuned for cutting-edge innovations designed to boost your productivity.
Prosigns: Transforming Business with Tailored Technology SolutionsProsigns
Unlocking Business Potential: Tailored Technology Solutions by Prosigns
Discover how Prosigns, a leading technology solutions provider, partners with businesses to drive innovation and success. Our presentation showcases our comprehensive range of services, including custom software development, web and mobile app development, AI & ML solutions, blockchain integration, DevOps services, and Microsoft Dynamics 365 support.
Custom Software Development: Prosigns specializes in creating bespoke software solutions that cater to your unique business needs. Our team of experts works closely with you to understand your requirements and deliver tailor-made software that enhances efficiency and drives growth.
Web and Mobile App Development: From responsive websites to intuitive mobile applications, Prosigns develops cutting-edge solutions that engage users and deliver seamless experiences across devices.
AI & ML Solutions: Harnessing the power of Artificial Intelligence and Machine Learning, Prosigns provides smart solutions that automate processes, provide valuable insights, and drive informed decision-making.
Blockchain Integration: Prosigns offers comprehensive blockchain solutions, including development, integration, and consulting services, enabling businesses to leverage blockchain technology for enhanced security, transparency, and efficiency.
DevOps Services: Prosigns' DevOps services streamline development and operations processes, ensuring faster and more reliable software delivery through automation and continuous integration.
Microsoft Dynamics 365 Support: Prosigns provides comprehensive support and maintenance services for Microsoft Dynamics 365, ensuring your system is always up-to-date, secure, and running smoothly.
Learn how our collaborative approach and dedication to excellence help businesses achieve their goals and stay ahead in today's digital landscape. From concept to deployment, Prosigns is your trusted partner for transforming ideas into reality and unlocking the full potential of your business.
Join us on a journey of innovation and growth. Let's partner for success with Prosigns.
Listen to the keynote address and hear about the latest developments from Rachana Ananthakrishnan and Ian Foster who review the updates to the Globus Platform and Service, and the relevance of Globus to the scientific community as an automation platform to accelerate scientific discovery.
Enhancing Project Management Efficiency_ Leveraging AI Tools like ChatGPT.pdfJay Das
With the advent of artificial intelligence or AI tools, project management processes are undergoing a transformative shift. By using tools like ChatGPT, and Bard organizations can empower their leaders and managers to plan, execute, and monitor projects more effectively.
Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...informapgpstrackings
Keep tabs on your field staff effortlessly with Informap Technology Centre LLC. Real-time tracking, task assignment, and smart features for efficient management. Request a live demo today!
For more details, visit us : https://informapuae.com/field-staff-tracking/
TROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERRORTier1 app
Even though at surface level ‘java.lang.OutOfMemoryError’ appears as one single error; underlyingly there are 9 types of OutOfMemoryError. Each type of OutOfMemoryError has different causes, diagnosis approaches and solutions. This session equips you with the knowledge, tools, and techniques needed to troubleshoot and conquer OutOfMemoryError in all its forms, ensuring smoother, more efficient Java applications.
Paketo Buildpacks : la meilleure façon de construire des images OCI? DevopsDa...Anthony Dahanne
Les Buildpacks existent depuis plus de 10 ans ! D’abord, ils étaient utilisés pour détecter et construire une application avant de la déployer sur certains PaaS. Ensuite, nous avons pu créer des images Docker (OCI) avec leur dernière génération, les Cloud Native Buildpacks (CNCF en incubation). Sont-ils une bonne alternative au Dockerfile ? Que sont les buildpacks Paketo ? Quelles communautés les soutiennent et comment ?
Venez le découvrir lors de cette session ignite
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...Globus
Large Language Models (LLMs) are currently the center of attention in the tech world, particularly for their potential to advance research. In this presentation, we'll explore a straightforward and effective method for quickly initiating inference runs on supercomputers using the vLLM tool with Globus Compute, specifically on the Polaris system at ALCF. We'll begin by briefly discussing the popularity and applications of LLMs in various fields. Following this, we will introduce the vLLM tool, and explain how it integrates with Globus Compute to efficiently manage LLM operations on Polaris. Attendees will learn the practical aspects of setting up and remotely triggering LLMs from local machines, focusing on ease of use and efficiency. This talk is ideal for researchers and practitioners looking to leverage the power of LLMs in their work, offering a clear guide to harnessing supercomputing resources for quick and effective LLM inference.
Globus Compute wth IRI Workflows - GlobusWorld 2024Globus
As part of the DOE Integrated Research Infrastructure (IRI) program, NERSC at Lawrence Berkeley National Lab and ALCF at Argonne National Lab are working closely with General Atomics on accelerating the computing requirements of the DIII-D experiment. As part of the work the team is investigating ways to speedup the time to solution for many different parts of the DIII-D workflow including how they run jobs on HPC systems. One of these routes is looking at Globus Compute as a way to replace the current method for managing tasks and we describe a brief proof of concept showing how Globus Compute could help to schedule jobs and be a tool to connect compute at different facilities.
A Comprehensive Look at Generative AI in Retail App Testing.pdfkalichargn70th171
Traditional software testing methods are being challenged in retail, where customer expectations and technological advancements continually shape the landscape. Enter generative AI—a transformative subset of artificial intelligence technologies poised to revolutionize software testing.
2. Slide 2
Background
Our Product:
▪ Monolith
▪ More than 10 years of development
▪ More than 10 developers working on the project
Problems:
▪ Not possible to know/remember everything of the system
▪ Inefficient or even fail to find suitable reusable method
▪ Redundant code
▪ Wrong method invocation
▪ Runtime environment is not controlled by us
3. Slide 3
Outline
▪ Different approaches to structuring your application
▪ Pros and cons of each approach
▪ Common problems and solutions
▪ Example
4. Slide 4
Different approaches to structuring your application
▪ Everything in one or a few classes
▪ Packing by technical layers
▪ Packing by feature
▪ Grouping relevant features into module
5. Slide 5
Everything in one or a few classes
Concept: Putting all classes in one package
Pros:
▪ No-brainer design
Cons:
▪ Hard to maintain
▪ Hard to debug
▪ Changes are prone to error
6. Slide 6
Packing by technical layers
Concept: All classes in the package are of the same type, e.g. Service.
Collaboration among packages are usually required to complete a feature.
Pros:
▪ Easy and better structured
▪ Information is at certain level protected
▪ Changes sometimes can be localized to one layer
Cons:
▪ Low cohesion and high coupling
▪ High Ripple effects
▪ Modifiers have to be public for cross package access
▪ Internal information leaked via public modifier
7. Slide 7
Packing by feature
Concept: Classes get used together are putting together
Pros:
▪ Even better structured - high cohesion and low coupling
▪ Information is protected
▪ Minimizing ripple effects
Cons:
▪ Modifiers have to be public if we create sub-packages
▪ Internal information is leaked via public modifier
8. Slide 8
Grouping relevant features into module
Concept: Features having same domain concept are putting together
and form an multi-module project. This is used together with grouping
by feature / technical layers and inherits the pros and cons.
Pros:
▪ Most of changes can be isolated to one module
9. Slide 9
Common problems to different grouping approach
▪ Limited encapsulation
▪ public modifier is inevitable - enterprise application is unlikely to
be built without sub-packages
▪ Confusions and wrong method invocations due to leaked
information
10. Slide 10
Solutions
▪ internal package - works with interface and factory to get the
runtime instance (regulated by convention)
▪ api package - (regulated by convention and code analysis rule)
▪ Java 9 - Java Platform Module System whenever possible