Design principles are a matter of the utmost importance for the software development, but unfortunately by far not all developers are closely acquainted with them. In this presentation we cover the basics of the core design and development principles.
Let’s be honest. Rails is hard. Many people have begun the Rails journey, to fall short of developing anything outside of a tutorial.
The bright side is that Rails starts to become your best friend, your swiss-army knife of web solutions, when you get past the initial hurdle of your first production application.
What separates those that make the cut from the wannabes? Get some insight into harnessing the Rails beast.
Lisa McCarty and Jeff Hanson share their expertise on how to develop videos to use as part of your product documentation or learning content. (The sample video on slide 3 may not run.)
The development difficulty of an application with many lines of code is well-known. Whenever several teams need to work on the same source code, there are going to be collisions and a waste of time. To deal with these and other problems, teams employ the microservices architectural approach.
In this talk we will discuss microservices, continuous delivery and how teams can work in such setup
The importance of search for modern applications is evident and nowadays it is higher than ever. A lot of projects use search forms as a primary interface for communication with a user. Though implementation of an intelligent search functionality is still a challenge and we need a good set of tools.
In this presentation, I will talk through the high-level architecture and benefits of Elasticsearch with some examples. Aside from that, we will also take a look at its existing competitors, their similarities, and differences.
Serverless architecture allows us to build and run applications with nearly no infrastructure configuration. Isn’t it a dream of a developer to concentrate on writing software and not be distracted by infrastructure duties?
CQRS and Event Sourcing are patterns which allow us to benefit from this approach.
In this talk we will dive into the world of Serverless computing for Java developers using Amazon Web Services and of course we will take a look at some existing pitfalls.
Let’s be honest. Rails is hard. Many people have begun the Rails journey, to fall short of developing anything outside of a tutorial.
The bright side is that Rails starts to become your best friend, your swiss-army knife of web solutions, when you get past the initial hurdle of your first production application.
What separates those that make the cut from the wannabes? Get some insight into harnessing the Rails beast.
Lisa McCarty and Jeff Hanson share their expertise on how to develop videos to use as part of your product documentation or learning content. (The sample video on slide 3 may not run.)
The development difficulty of an application with many lines of code is well-known. Whenever several teams need to work on the same source code, there are going to be collisions and a waste of time. To deal with these and other problems, teams employ the microservices architectural approach.
In this talk we will discuss microservices, continuous delivery and how teams can work in such setup
The importance of search for modern applications is evident and nowadays it is higher than ever. A lot of projects use search forms as a primary interface for communication with a user. Though implementation of an intelligent search functionality is still a challenge and we need a good set of tools.
In this presentation, I will talk through the high-level architecture and benefits of Elasticsearch with some examples. Aside from that, we will also take a look at its existing competitors, their similarities, and differences.
Serverless architecture allows us to build and run applications with nearly no infrastructure configuration. Isn’t it a dream of a developer to concentrate on writing software and not be distracted by infrastructure duties?
CQRS and Event Sourcing are patterns which allow us to benefit from this approach.
In this talk we will dive into the world of Serverless computing for Java developers using Amazon Web Services and of course we will take a look at some existing pitfalls.
JHipster is a trendy Yeoman generator that provides the possibility to create an AngularJS + Spring Boot project from the scratch in no time. I would like to share the idea of JHipster and a set of tools that it comprises. I will superficially cover scaffolding and the explicit tool, that makes scaffolding plain and easy to adopt, named Yeoman.
Started in October 2013, JHipster has grown and obtained a developing community, furthermore, it is growing rapidly as for the past year about 150 programmers contributed to it. During the presentation, I want to perform a live demonstration of creating a new project based on the aforementioned core and a few subsidiary technologies. Since JHipster includes a great deal of technologies it’s a good source of common practices.
Quality assurance and testing are very important in a life cycle of any application. Although, by far not all developers understand the significance of tests.
In this presentation, we cover the basic testing practices for developers. The following tools are discussed: JUnit, Mockito, Hamcrest, JsTestDriver, DBUnit, Arquillian, SoapUI, Selenium.
If you are looking for a robust content management tool, take a look at Hippo CMS. In this presentation the following points are addressed:
• ideas about the use of CMS;
• Hippo CMS architecture;
• tasks that are implemented by delivery tier, interface and content repository(JCR) in Hippo CMS.
Developing functional domain models with event sourcing (sbtb, sbtb2015)Chris Richardson
Event sourcing persists each entity as a sequence of state changing event. An entity’s current state is derived by replaying the events. Event sourcing is a great way to implement event-driven micro services. When one service updates an entity, the new events are consumed by other services, which then update their own state. In this talk we describe how to implement business logic using a domain model that is based on event sourcing. You will learn how to write functional, immutable domain models in Scala. We will compare and contrast a hybrid OO/FP design with a purely functional approach. You will learn how Domain Driven Design concepts such as bounded contexts and aggregates fit in with event-driven microservices.
SE2016 iOS Anton Fedorchenko "Swift for Server-side Development"Inhacking
Event: #SE2016
Stage: iOS
Data: 4 of September 2016
Speaker: Anton Fedorchenko
Topic: Swift for Server-side Development
INHACKING site: https://inhacking.com
SE2016 site: http://se2016.inhacking.com/
SE2016 Java Dmytro Panin "JHipster: Create a Spring Boot + AngularJS project ...Inhacking
Event: #SE2016
Stage: Java
Data: 3 of September 2016
Speaker: Dmytro Panin
Topic: JHipster: Create a Spring Boot + AngularJS project in no time
INHACKING site: https://inhacking.com
SE2016 site: http://se2016.inhacking.com/
Microservice Architecture with CQRS and Event SourcingBen Wilcock
In this slide deck I'll introduce you to the Command and Query Responsibility Segregation [CQRS] and Event Sourcing [ES] patterns for software architecture and explain why I think they're worth investing a little of your time in if you're building Microservices that need to scale gracefully.
Building and deploying microservices with event sourcing, CQRS and Docker (QC...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.
Developing microservices with aggregates (SpringOne platform, #s1p)Chris Richardson
The Domain Model pattern is a great way to develop complex business logic. Unfortunately, a typical domain model is a tangled, birds nest of classes. It can’t be decomposed into microservices. Moreover, business logic often relies on ACID transactions to maintain consistency.
Fortunately, there is a solution to this problem: aggregates. An aggregate is an often overlooked modeling concept from the must read book Domain Driven Design. In this talk you will learn how aggregates enable you to develop business logic for the modern world of microservices and NoSQL. We will describe how to use aggregates to design modular business logic that can be partitioned into microservices. You will learn how aggregates enable you to use eventual consistency instead of ACID. We will describe the design of a microservice that is built using aggregates, and Spring Cloud.
Developing event-driven microservices with event sourcing and CQRS (svcc, sv...Chris Richardson
Modern, cloud-native applications typically use a microservices architecture in conjunction with NoSQL and/or sharded relational databases. However, in order to successfully use this approach you need to solve some distributed data management problems including how to maintain consistency between multiple databases without using 2PC.
In this talk you will learn more about these issues and how to solve them by using an event-driven architecture. We will describe how event sourcing and Command Query Responsibility Segregation (CQRS) are a great way to realize an event-driven architecture. You will learn about a simple yet powerful approach for building, modern, scalable applications.
Slides about design which makes difference to your app. How design can make your application more flexible to adapt future changes without breaking things.
Software Developer Career Unplugged - GeeCon 2013Wojciech Seliga
This is my quite subjective take on various less technical aspects of a software developer career. I delivered this presentation and GeeCon 2013 (video hopefully coming soon) and quite compressed/abridged version at InfoSHARE.
How To Handle Your Tech Debt Better - Sean MoirMike Harris
Technical Debt, Legacy Code, Legacy Systems … whatever you want to call it, is a common problem. It needs to be surfaced to the people whose lives it affects the most: the users; stakeholders; purse holders; and any other recipients of a poor experience. Through awareness of these issues, these stakeholders can understand and endorse a need to change.
Human made systems which once met a need and now cannot change to meet our emerging needs become like a tail wagging a dog. Who is in control here? The system? We humans created these systems - we ought to be able to change them. Note: this doesn’t just apply to technology.
In this session, Sean introduces a simple yet effective way to identify and prioritise what to work on, in a way which makes most sense for stakeholders and custodians.
- Given by Sean Moir for Ox:Agile Conference 2019.
Becoming a better developer by using the SOLID design principlesKaterina Trajchevska
Learn the purpose of SOLID design principles and how to use them to write code that's easy to extend, maintain and understand.
Slides from the talk at Laracon EU.
Christian Heilmann - Seven Things to Do to Make You a Happier JavaScript Deve...Codemotion
Whether you like it or not, JavaScript is here to stay and has evolved from a fringe programming language to the most used one in our market. Its versatility both in use and in dealing with syntax are reasons why that is the case and why some people have a hard time getting their head around it. In this talk you'll learn a few tricks and ideas how you can cast aside your dislikes and worries and find a way to embrace the wild world of JavaScript.
JHipster is a trendy Yeoman generator that provides the possibility to create an AngularJS + Spring Boot project from the scratch in no time. I would like to share the idea of JHipster and a set of tools that it comprises. I will superficially cover scaffolding and the explicit tool, that makes scaffolding plain and easy to adopt, named Yeoman.
Started in October 2013, JHipster has grown and obtained a developing community, furthermore, it is growing rapidly as for the past year about 150 programmers contributed to it. During the presentation, I want to perform a live demonstration of creating a new project based on the aforementioned core and a few subsidiary technologies. Since JHipster includes a great deal of technologies it’s a good source of common practices.
Quality assurance and testing are very important in a life cycle of any application. Although, by far not all developers understand the significance of tests.
In this presentation, we cover the basic testing practices for developers. The following tools are discussed: JUnit, Mockito, Hamcrest, JsTestDriver, DBUnit, Arquillian, SoapUI, Selenium.
If you are looking for a robust content management tool, take a look at Hippo CMS. In this presentation the following points are addressed:
• ideas about the use of CMS;
• Hippo CMS architecture;
• tasks that are implemented by delivery tier, interface and content repository(JCR) in Hippo CMS.
Developing functional domain models with event sourcing (sbtb, sbtb2015)Chris Richardson
Event sourcing persists each entity as a sequence of state changing event. An entity’s current state is derived by replaying the events. Event sourcing is a great way to implement event-driven micro services. When one service updates an entity, the new events are consumed by other services, which then update their own state. In this talk we describe how to implement business logic using a domain model that is based on event sourcing. You will learn how to write functional, immutable domain models in Scala. We will compare and contrast a hybrid OO/FP design with a purely functional approach. You will learn how Domain Driven Design concepts such as bounded contexts and aggregates fit in with event-driven microservices.
SE2016 iOS Anton Fedorchenko "Swift for Server-side Development"Inhacking
Event: #SE2016
Stage: iOS
Data: 4 of September 2016
Speaker: Anton Fedorchenko
Topic: Swift for Server-side Development
INHACKING site: https://inhacking.com
SE2016 site: http://se2016.inhacking.com/
SE2016 Java Dmytro Panin "JHipster: Create a Spring Boot + AngularJS project ...Inhacking
Event: #SE2016
Stage: Java
Data: 3 of September 2016
Speaker: Dmytro Panin
Topic: JHipster: Create a Spring Boot + AngularJS project in no time
INHACKING site: https://inhacking.com
SE2016 site: http://se2016.inhacking.com/
Microservice Architecture with CQRS and Event SourcingBen Wilcock
In this slide deck I'll introduce you to the Command and Query Responsibility Segregation [CQRS] and Event Sourcing [ES] patterns for software architecture and explain why I think they're worth investing a little of your time in if you're building Microservices that need to scale gracefully.
Building and deploying microservices with event sourcing, CQRS and Docker (QC...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.
Developing microservices with aggregates (SpringOne platform, #s1p)Chris Richardson
The Domain Model pattern is a great way to develop complex business logic. Unfortunately, a typical domain model is a tangled, birds nest of classes. It can’t be decomposed into microservices. Moreover, business logic often relies on ACID transactions to maintain consistency.
Fortunately, there is a solution to this problem: aggregates. An aggregate is an often overlooked modeling concept from the must read book Domain Driven Design. In this talk you will learn how aggregates enable you to develop business logic for the modern world of microservices and NoSQL. We will describe how to use aggregates to design modular business logic that can be partitioned into microservices. You will learn how aggregates enable you to use eventual consistency instead of ACID. We will describe the design of a microservice that is built using aggregates, and Spring Cloud.
Developing event-driven microservices with event sourcing and CQRS (svcc, sv...Chris Richardson
Modern, cloud-native applications typically use a microservices architecture in conjunction with NoSQL and/or sharded relational databases. However, in order to successfully use this approach you need to solve some distributed data management problems including how to maintain consistency between multiple databases without using 2PC.
In this talk you will learn more about these issues and how to solve them by using an event-driven architecture. We will describe how event sourcing and Command Query Responsibility Segregation (CQRS) are a great way to realize an event-driven architecture. You will learn about a simple yet powerful approach for building, modern, scalable applications.
Slides about design which makes difference to your app. How design can make your application more flexible to adapt future changes without breaking things.
Software Developer Career Unplugged - GeeCon 2013Wojciech Seliga
This is my quite subjective take on various less technical aspects of a software developer career. I delivered this presentation and GeeCon 2013 (video hopefully coming soon) and quite compressed/abridged version at InfoSHARE.
How To Handle Your Tech Debt Better - Sean MoirMike Harris
Technical Debt, Legacy Code, Legacy Systems … whatever you want to call it, is a common problem. It needs to be surfaced to the people whose lives it affects the most: the users; stakeholders; purse holders; and any other recipients of a poor experience. Through awareness of these issues, these stakeholders can understand and endorse a need to change.
Human made systems which once met a need and now cannot change to meet our emerging needs become like a tail wagging a dog. Who is in control here? The system? We humans created these systems - we ought to be able to change them. Note: this doesn’t just apply to technology.
In this session, Sean introduces a simple yet effective way to identify and prioritise what to work on, in a way which makes most sense for stakeholders and custodians.
- Given by Sean Moir for Ox:Agile Conference 2019.
Becoming a better developer by using the SOLID design principlesKaterina Trajchevska
Learn the purpose of SOLID design principles and how to use them to write code that's easy to extend, maintain and understand.
Slides from the talk at Laracon EU.
Christian Heilmann - Seven Things to Do to Make You a Happier JavaScript Deve...Codemotion
Whether you like it or not, JavaScript is here to stay and has evolved from a fringe programming language to the most used one in our market. Its versatility both in use and in dealing with syntax are reasons why that is the case and why some people have a hard time getting their head around it. In this talk you'll learn a few tricks and ideas how you can cast aside your dislikes and worries and find a way to embrace the wild world of JavaScript.
5 unspoke rules of contributing to open source softwareMike Nelson
WordCamp 2017 Presentation, based on https://cmljnelson.wordpress.com/2017/10/04/five-unspoken-rules-of-contributing-to-open-source-software/.
Video is located at https://www.youtube.com/watch?v=6cMjq0PbXR8&feature=youtu.be
10 mistakes when you move to topic-based authoringSharon Burton
Topic-based authoring is the most cost-effective way to develop content in the "Do more with less" world we live in. It can help reduce localization costs, reduce project schedules, and help you better meet the needs of your users. It's a potential win/win for your company and your users. Makes you want to jump right in, doesn't it?
But moving to topic-based authoring can be one of the most expensive things you've ever done. In this talk, Sharon Burton will show you the top 10 mistakes made by companies and how you can avoid them. These mistakes can include missing deadlines, delivering poor quality content, or not integrating this content development strategy into the rest of the product development strategy.
If you're thinking about making this move, you'll learn what not to do; if you made the move and you're struggling, find out how to solve your problems. Either way, you really can't afford to miss this vendor-neutral discussion!
Navigating the Metaverse: A Journey into Virtual Evolution"Donna Lenk
Join us for an exploration of the Metaverse's evolution, where innovation meets imagination. Discover new dimensions of virtual events, engage with thought-provoking discussions, and witness the transformative power of digital realms."
AI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI AppGoogle
AI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI App
👉👉 Click Here To Get More Info 👇👇
https://sumonreview.com/ai-fusion-buddy-review
AI Fusion Buddy Review: Key Features
✅Create Stunning AI App Suite Fully Powered By Google's Latest AI technology, Gemini
✅Use Gemini to Build high-converting Converting Sales Video Scripts, ad copies, Trending Articles, blogs, etc.100% unique!
✅Create Ultra-HD graphics with a single keyword or phrase that commands 10x eyeballs!
✅Fully automated AI articles bulk generation!
✅Auto-post or schedule stunning AI content across all your accounts at once—WordPress, Facebook, LinkedIn, Blogger, and more.
✅With one keyword or URL, generate complete websites, landing pages, and more…
✅Automatically create & sell AI content, graphics, websites, landing pages, & all that gets you paid non-stop 24*7.
✅Pre-built High-Converting 100+ website Templates and 2000+ graphic templates logos, banners, and thumbnail images in Trending Niches.
✅Say goodbye to wasting time logging into multiple Chat GPT & AI Apps once & for all!
✅Save over $5000 per year and kick out dependency on third parties completely!
✅Brand New App: Not available anywhere else!
✅ Beginner-friendly!
✅ZERO upfront cost or any extra expenses
✅Risk-Free: 30-Day Money-Back Guarantee!
✅Commercial License included!
See My Other Reviews Article:
(1) AI Genie Review: https://sumonreview.com/ai-genie-review
(2) SocioWave Review: https://sumonreview.com/sociowave-review
(3) AI Partner & Profit Review: https://sumonreview.com/ai-partner-profit-review
(4) AI Ebook Suite Review: https://sumonreview.com/ai-ebook-suite-review
#AIFusionBuddyReview,
#AIFusionBuddyFeatures,
#AIFusionBuddyPricing,
#AIFusionBuddyProsandCons,
#AIFusionBuddyTutorial,
#AIFusionBuddyUserExperience
#AIFusionBuddyforBeginners,
#AIFusionBuddyBenefits,
#AIFusionBuddyComparison,
#AIFusionBuddyInstallation,
#AIFusionBuddyRefundPolicy,
#AIFusionBuddyDemo,
#AIFusionBuddyMaintenanceFees,
#AIFusionBuddyNewbieFriendly,
#WhatIsAIFusionBuddy?,
#HowDoesAIFusionBuddyWorks
Artificia Intellicence and XPath Extension FunctionsOctavian Nadolu
The purpose of this presentation is to provide an overview of how you can use AI from XSLT, XQuery, Schematron, or XML Refactoring operations, the potential benefits of using AI, and some of the challenges we face.
Transform Your Communication with Cloud-Based IVR SolutionsTheSMSPoint
Discover the power of Cloud-Based IVR Solutions to streamline communication processes. Embrace scalability and cost-efficiency while enhancing customer experiences with features like automated call routing and voice recognition. Accessible from anywhere, these solutions integrate seamlessly with existing systems, providing real-time analytics for continuous improvement. Revolutionize your communication strategy today with Cloud-Based IVR Solutions. Learn more at: https://thesmspoint.com/channel/cloud-telephony
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...Crescat
Crescat is industry-trusted event management software, built by event professionals for event professionals. Founded in 2017, we have three key products tailored for the live event industry.
Crescat Event for concert promoters and event agencies. Crescat Venue for music venues, conference centers, wedding venues, concert halls and more. And Crescat Festival for festivals, conferences and complex events.
With a wide range of popular features such as event scheduling, shift management, volunteer and crew coordination, artist booking and much more, Crescat is designed for customisation and ease-of-use.
Over 125,000 events have been planned in Crescat and with hundreds of customers of all shapes and sizes, from boutique event agencies through to international concert promoters, Crescat is rigged for success. What's more, we highly value feedback from our users and we are constantly improving our software with updates, new features and improvements.
If you plan events, run a venue or produce festivals and you're looking for ways to make your life easier, then we have a solution for you. Try our software for free or schedule a no-obligation demo with one of our product specialists today at crescat.io
A Study of Variable-Role-based Feature Enrichment in Neural Models of CodeAftab Hussain
Understanding variable roles in code has been found to be helpful by students
in learning programming -- could variable roles help deep neural models in
performing coding tasks? We do an exploratory study.
- These are slides of the talk given at InteNSE'23: The 1st International Workshop on Interpretability and Robustness in Neural Software Engineering, co-located with the 45th International Conference on Software Engineering, ICSE 2023, Melbourne Australia
Graspan: A Big Data System for Big Code AnalysisAftab Hussain
We built a disk-based parallel graph system, Graspan, that uses a novel edge-pair centric computation model to compute dynamic transitive closures on very large program graphs.
We implement context-sensitive pointer/alias and dataflow analyses on Graspan. An evaluation of these analyses on large codebases such as Linux shows that their Graspan implementations scale to millions of lines of code and are much simpler than their original implementations.
These analyses were used to augment the existing checkers; these augmented checkers found 132 new NULL pointer bugs and 1308 unnecessary NULL tests in Linux 4.4.0-rc5, PostgreSQL 8.3.9, and Apache httpd 2.2.18.
- Accepted in ASPLOS ‘17, Xi’an, China.
- Featured in the tutorial, Systemized Program Analyses: A Big Data Perspective on Static Analysis Scalability, ASPLOS ‘17.
- Invited for presentation at SoCal PLS ‘16.
- Invited for poster presentation at PLDI SRC ‘16.
Enterprise Resource Planning System includes various modules that reduce any business's workload. Additionally, it organizes the workflows, which drives towards enhancing productivity. Here are a detailed explanation of the ERP modules. Going through the points will help you understand how the software is changing the work dynamics.
To know more details here: https://blogs.nyggs.com/nyggs/enterprise-resource-planning-erp-system-modules/
Need for Speed: Removing speed bumps from your Symfony projects ⚡️Łukasz Chruściel
No one wants their application to drag like a car stuck in the slow lane! Yet it’s all too common to encounter bumpy, pothole-filled solutions that slow the speed of any application. Symfony apps are not an exception.
In this talk, I will take you for a spin around the performance racetrack. We’ll explore common pitfalls - those hidden potholes on your application that can cause unexpected slowdowns. Learn how to spot these performance bumps early, and more importantly, how to navigate around them to keep your application running at top speed.
We will focus in particular on tuning your engine at the application level, making the right adjustments to ensure that your system responds like a well-oiled, high-performance race car.
Mobile App Development Company In Noida | Drona InfotechDrona Infotech
Looking for a reliable mobile app development company in Noida? Look no further than Drona Infotech. We specialize in creating customized apps for your business needs.
Visit Us For : https://www.dronainfotech.com/mobile-application-development/
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.
GraphSummit Paris - The art of the possible with Graph TechnologyNeo4j
Sudhir Hasbe, Chief Product Officer, 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.
AI Pilot Review: The World’s First Virtual Assistant Marketing SuiteGoogle
AI Pilot Review: The World’s First Virtual Assistant Marketing Suite
👉👉 Click Here To Get More Info 👇👇
https://sumonreview.com/ai-pilot-review/
AI Pilot Review: Key Features
✅Deploy AI expert bots in Any Niche With Just A Click
✅With one keyword, generate complete funnels, websites, landing pages, and more.
✅More than 85 AI features are included in the AI pilot.
✅No setup or configuration; use your voice (like Siri) to do whatever you want.
✅You Can Use AI Pilot To Create your version of AI Pilot And Charge People For It…
✅ZERO Manual Work With AI Pilot. Never write, Design, Or Code Again.
✅ZERO Limits On Features Or Usages
✅Use Our AI-powered Traffic To Get Hundreds Of Customers
✅No Complicated Setup: Get Up And Running In 2 Minutes
✅99.99% Up-Time Guaranteed
✅30 Days Money-Back Guarantee
✅ZERO Upfront Cost
See My Other Reviews Article:
(1) TubeTrivia AI Review: https://sumonreview.com/tubetrivia-ai-review
(2) SocioWave Review: https://sumonreview.com/sociowave-review
(3) AI Partner & Profit Review: https://sumonreview.com/ai-partner-profit-review
(4) AI Ebook Suite Review: https://sumonreview.com/ai-ebook-suite-review
May Marketo Masterclass, London MUG May 22 2024.pdfAdele Miller
Can't make Adobe Summit in Vegas? No sweat because the EMEA Marketo Engage Champions are coming to London to share their Summit sessions, insights and more!
This is a MUG with a twist you don't want to miss.
8. How to make a good design?
▪ Let go of the ego
▪ Be unemotional
9. How to make a good design?
▪ Let go of the ego
▪ Be unemotional
▪ Do code reviews
10. How to make a good design?
▪ Let go of the ego
▪ Be unemotional
▪ Do code reviews
▪ A good design is the one that hides inherited complexity and eliminates the
accidental complexity
11. How to make a good design?
▪ Let go of the ego
▪ Be unemotional
▪ Do code reviews
▪ A good design is the one that hides inherited complexity and eliminates the
accidental complexity
Software is never written, it is always rewritten. As the
software that is relevant always must be changed
16. What is simple?
▪ Simple makes you concentrated
▪ Simple resolves only actual issues we know about
17. What is simple?
▪ Simple makes you concentrated
▪ Simple resolves only actual issues we know about
▪ Simple fails less
18. What is simple?
▪ Simple makes you concentrated
▪ Simple resolves only actual issues we know about
▪ Simple fails less
▪ Simple is easier to understand
20. Think YAGNI
Do we
need
it?
Day
1
We have to ask ourselves whether we need it today or not. If it's possible to
postpone something constantly for a few iterations maybe you don't need it at all.
21. Think YAGNI
Do we
need
it?
Day
1
Do we
actually
need
it?
Day
5
We have to ask ourselves whether we need it today or not. If it's possible to
postpone something constantly for a few iterations maybe you don't need it at all.
22. Think YAGNI
Do we
need
it?
Day
1
Do we
actually
need
it?
Day
5
We do
not
need it
Day
9
We have to ask ourselves whether we need it today or not. If it's possible to
postpone something constantly for a few iterations maybe you don't need it at all.
23. Cost of implementing
Smart Smarter
Much
smarter
Now correlation Later Result
X > Y Postpone
X == Y Postpone
X < Y ?
26. Coupling
▪ Coupling is what you depend on...
▪ Inheritance is the worst form of coupling
27. Coupling
▪ Coupling is what you depend on...
▪ Inheritance is the worst form of coupling
▪ "knock out before mock out“
28. Coupling
▪ Coupling is what you depend on....
▪ Inheritance is the worst form of coupling
▪ "knock out before mock out“
▪ Depending on a class is a tight coupling
29. Coupling
▪ Coupling is what you depend on....
▪ Inheritance is the worst form of coupling
▪ "knock out before mock out“
▪ Depending on a class is a tight coupling
▪ Depending on an interface is a loose coupling
30. Coupling
▪ Coupling is what you depend on....
▪ Inheritance is the worst form of coupling
▪ "knock out before mock out“
A good design has high cohesion and low coupling
▪ Depending on a class is a tight coupling
▪ Depending on an interface is a loose coupling
31. DRY ( Do not Repeat Yourself )
▪ Every piece of knowledge in a system should have a single unambiguous
authoritative representation
▪ It reduces the cost of development
36. Single responsibility principle
▪ A class should have only a single responsibility
▪ Cohesive class has single responsibility
▪ When you say "this class does this AND that" you have violated SRP
37. Single responsibility principle
▪ A class should have only a single responsibility
▪ Cohesive class has single responsibility
▪ When you say "this class does this AND that" you have violated SRP
▪ Long methods are bad
40. Commenting
▪ Comments are usually used to cover bad code
▪ When code is not self-evident refactor it
41. Commenting
▪ Comments are usually used to cover bad code
▪ When code is not self-evident refactor it
▪ Don't comment what, instead comment why
42. Commenting
▪ Comments are usually used to cover bad code
▪ When code is not self-evident refactor it
▪ Don't comment what, instead comment why
▪ A good code is like a joke
43. Commenting
▪ Comments are usually used to cover bad code
▪ When code is not self-evident refactor it
▪ Don't comment what, instead comment why
▪ A good code is like a joke
▪ Compose method pattern
45. Open-Closed Principle
▪ Two options - to make an enhancement
1. Change existing code
2. Add a small new module of code
46. Open-Closed Principle
▪ Two options - to make an enhancement
1. Change existing code
2. Add a small new module of code
▪ Nobody likes existing code
47. Open-Closed Principle
▪ Two options - to make an enhancement
1. Change existing code
2. Add a small new module of code
▪ Nobody likes existing code
▪ Software module should be open for extension but closed from modification
48. Open-Closed Principle
▪ Two options - to make an enhancement
1. Change existing code
2. Add a small new module of code
▪ Nobody likes existing code
▪ Software module should be open for extension but closed from modification
▪ Rely on abstraction and polymorphism
52. Liskov substitution principle
▪ Inheritance is overused
▪ If an object of B should be used anywhere an object of A is used then use inheritance
53. Liskov substitution principle
▪ Inheritance is overused
▪ If an object of B should be used anywhere an object of A is used then use inheritance
▪ If an object of B should use an object of A, then use composition / delegation
54. Liskov substitution principle
▪ Inheritance is overused
▪ If an object of B should be used anywhere an object of A is used then use inheritance
▪ If an object of B should use an object of A, then use composition / delegation
▪ Inheritance demands more from a developer than composition or delegation does
55. Liskov substitution principle
▪ Objects in a program should be replaceable with instances of their
subtypes without altering the correctness of that program
▪ The user of a base class should be able to use an instance of a derived class
without knowing the difference
56.
57. Interface segregation principle
▪ Many client-specific interfaces are better than one general-purpose interface
Alarm
Clock PCPhone TV Rooster…
Clock vs
59. Dependency inversion principle
▪ High-level modules should not depend on low-level modules. Both should depend
on abstractions
▪ Abstractions should not depend upon details. Details should depend upon
abstractions
60.
61. Dependency injection pattern
▪ Dependency inversion ≠ dependency injection
▪ Dependency injection pattern is an implementation of Dependency inversion
principle
*Single responsibility principle*
Cohesive class has single responsibility
When you say "this class does this AND that" you have violated SRP
Long methods are bad
*Open-Closed Principle*
Two options - to make an enhancement
1. change existing code
2. add a small new module of code
nobody like existing code
Software module should be open for extension but closed from modification
Rely on abstraction and polymorhism
*Liskov substitution principle*
Inheretence is overused
If an object of B should be used anywhere an object of A is used then use inheritance
If an object of B should use an object of A, then use composition / delegation
Inheritance demands more from a developer than composition or delegation does.
“objects in a program should be replaceable with instances of their subtypes without altering the correctness of that program.”
The user of a base class should be able to use an instance of a derived class without knowing the difference.
*Interface segregation principle*
many client-specific interfaces are better than one general-purpose interface
Clock example
Alarm
^
|
__________________________________________________________
| | | ....... |
TV Clock SPhone Wife
*Dependency injection principle*
A class should not depende on another class, they both have to depend on an abstraction (interface)
i.e. only one potential change in the software's specification should be able to affect the specification of the class
i.e. only one potential change in the software's specification should be able to affect the specification of the class
i.e. only one potential change in the software's specification should be able to affect the specification of the class
i.e. only one potential change in the software's specification should be able to affect the specification of the class
i.e. only one potential change in the software's specification should be able to affect the specification of the class