SlideShare ist ein Scribd-Unternehmen logo
1 von 40
| OS Tips and Tricks
OutSystems
Tips and Tricks
Project DO's and DON'Ts,
and what we can learn from comics
| OS Tips and Tricks| OS Tips and Tricks
Erik
Brzozowski
Senior OutSystems Consultant| Valuga
@
in
erik.brzozowski@valuga.nl
/erik-brzozowski-nl
| OS Tips and Tricks
Main topics
● Project
● Architecture
● Coding
● Processes Timers/BPT
| OS Tips and Tricks| OS Tips and Tricks
Project
| OS Tips and Tricks
Ask why
● Know the ultimate Goal
■ Design Sprint
● Know the problem you are solving
● Try to talk to everyone
■ Product owner
■ Techlead
■ Architect
■ Developers (also from other teams)
■ Users
| OS Tips and Tricks
Scary questions
● But is it possible?
● Will it work?
● Which option takes the least time?
● It’s only a temporary solution, it
doesn't have to be pretty
■ Nothing so permanent as a temporary
solution
Come up with suggestions and
solutions.
| OS Tips and Tricks
Backlog management
● Does this user story fit in the ultimate
goal
● Accept that some user stories will not be
built
● If you can’t prioritize this is an indication
that something is wrong
● Start with the most complex user stories
■ Bring the pain forward
| OS Tips and Tricks
Match with existing architecture
● When you know the what
● When you know the next thing
to build
● Recheck how this would fit in
the current landscape
| OS Tips and Tricks| OS Tips and Tricks
Architecture
https://xkcd.com/1667/
| OS Tips and Tricks
How to design
● Iterative process
■ Disclose
■ Organize
■ Assemble
3: Assemble 1: Disclose
2: Organize
iteration
| OS Tips and Tricks
Disclose
● User stories and roles
● Information architecture
● Integration technology
● UX expectations
3: Assemble 1: Disclose
2: Organize
iteration
| OS Tips and Tricks
Organize
● Group or split Business
concepts
● Place on a canvas
● Possibly disclose more
concepts
3: Assemble 1: Disclose
2: Organize
iteration
| OS Tips and Tricks
Assemble
● Match recommended
patterns
● Abstract external
systems
● Check the validation
rules
3: Assemble 1: Disclose
2: Organize
iteration
| OS Tips and Tricks
No side references
among orchestration
or end-user modules
● No end-user screens
● Read only entities
Assemble: Rule #1 layer modules (and applications)
● No business logic
● No core entities
● No role based logic
Core Layer
Core business services
Library layer
Non business services
End User Layer
User processes
Orchestration Layer
Cross application orchestration
No upward
references
| OS Tips and Tricks
Rule #2 don’t mix owners
Common application
Module 1 Module 3Module 2
Application 1
Module 1 Module 2
Application 2
Module 3Split
Who can make the call to
go to production?
| OS Tips and Tricks
Rule #3 don’t mix sponsors
One big application for 3 divisions
General
core 1
General
core 2
Core 1
Front end
division 1 Core 1
Front end
division 2 Core 1
Front end
division 3
Application
division 3
Application
division 2
Application
division 1
Common application
Core 1 Core 2
Core 1
Front end
division 1 Core 1
Front end
division 2 Core 1
Front end
division 3
Split
| OS Tips and Tricks
Most architectures start easy
What can go wrong?
● No time to refactor
● Architecture iterations stop
● No designs or documentation
● Team(members) change
● No patterns are used
● Violations are introduced
| OS Tips and Tricks| OS Tips and Tricks
Coding
| OS Tips and Tricks
Naming conventions
● Use meaningful names
● Use PascalCase
● Create folders for actions and for
structures
● Avoid empty labels
● Suffix foreign keys with Id
● Always group screens by name
● Set the name property of
TableRecords, ShowRecords and
ListRecords
| OS Tips and Tricks
Coding
● Always comment complex or
unclear logic
| OS Tips and Tricks
Coding
● Always comment complex or
unclear logic
● Keep action flows vertical and
clean
| OS Tips and Tricks
Coding
● Always comment complex or
unclear logic
● Keep action flows vertical and
clean
● Use static entities instead of
hard-coded values.
SearchEngines
| OS Tips and Tricks
Coding
● Always comment complex or
unclear logic
● Keep action flows vertical and
clean
● Use static entities instead of hard-
coded values.
● Encapsulate data formatting
using user actions
| OS Tips and Tricks
Coding
● Always comment complex or
unclear logic
● Keep action flows vertical and
clean
● Use static entities instead of hard-
coded values.
● Encapsulate data formatting using
user actions
● Reuse
■ logic by creating user actions
| OS Tips and Tricks
Performance
● JavaScript / CSS
■ Don’t have JS inside expressions,
better to move it to the screen
| OS Tips and Tricks
Performance
● JavaScript / CSS
■ Don’t have JS inside expressions,
better to move it to the screen
● Abuse of scope data / Ajax
■ Use refreshQuery to rerun previous
queries
| OS Tips and Tricks
Performance
● JavaScript / CSS
■ Don’t have JS inside expressions,
better to move it to the screen
● Abuse of scope data / Ajax
■ Use refreshQuery to rerun previous
queries
● Too many query calls in
preparation
■ Queries called inside a “foreach” in
the preparation or in expressions
inside table records
| OS Tips and Tricks
Entities (Datamodel)
● Aggregates
■ No SQL background knowledge required
■ Easy to create and maintain
■ SQL-dialect agnostic
■ Automatically optimised by platform
● Isolate large data types
● Indexes
| OS Tips and Tricks
Entities (Datamodel)
● SQL
■ Bulk operations (INSERT/UPDATE/DELETE)
■ Access to DBMS-specific features (rank, pivot leaf etc)
| OS Tips and Tricks
Caching
● Webblocks, queries and actions
■ Based on input parameters
● You can create a dummy input
parameter for cache invalidation
● Always keep business logic in mind
| OS Tips and Tricks
Code review
● Do a periodic code review
● You can always learn
● Also a good moment to ask, does the
architecture still fit?
● Use static code analysis tools
■ Example: Architecture Dashboard
■ It will always reveal improvement
■ Many improvement can be made in limited
time
| OS Tips and Tricks| OS Tips and Tricks
Processes Timers/BPT
| OS Tips and Tricks
Timers
● Single process run
● Set schedule
● Timers can’t use input
parameters
● Large batch processing
● Synchronisation patterns
BPT
● Align several operations
● Actions can run in parallel
● Manual actions can be
implemented
● Stop/Start on database events
● Wait activity
| OS Tips and Tricks
Timers:
● Timers should never
timeout
● Does not repeat work
● Ensures completeness
● Ensures data integrity
| OS Tips and Tricks
BPT - special cases
● Manage own reporting entities
■ Queries over process entities can be
slow
BPT - special cases
● Manage own reporting entities
■ Queries over process entities can be
slow
■ Create own entity
■ Update via callbacks
| OS Tips and Tricks
BPT - special cases
● Separate Process Logic from
Application Logic
■ Process and the application are
changing
■ Can lead to lock and time-outs
■ Move the attributes new entity in a one-
to-one relationship.
| OS Tips and Tricks
Combine timers with BPT
| OS Tips and Tricks
BPT light
● Light Processes are intended to be used for background processing
● Flow only contains 1 automatic activity
● Light BPT start on the creation of a database entity record
● 20 threads from the Light BPT
● Light Processes don’t create entries on BPT tables
| OS Tips and Tricks
| OS Tips and Tricks
Thank You!
@ inerik.brzozowski@valuga.
nl
/erik-brzozowski-
nl

Weitere ähnliche Inhalte

Was ist angesagt?

Extending OutSystems with Javascript
Extending OutSystems with JavascriptExtending OutSystems with Javascript
Extending OutSystems with JavascriptRitaDias72
 
Hands-On With Reactive Web Design
Hands-On With Reactive Web DesignHands-On With Reactive Web Design
Hands-On With Reactive Web DesignOutSystems
 
Create Amazing Reports in OutSystems
Create Amazing Reports in OutSystemsCreate Amazing Reports in OutSystems
Create Amazing Reports in OutSystemsOutSystems
 
BPM Patterns & Best Practices with OutSystems BPT
BPM Patterns & Best Practices with OutSystems BPTBPM Patterns & Best Practices with OutSystems BPT
BPM Patterns & Best Practices with OutSystems BPTGonçalo Borrêga
 
Building CRUD Wrappers
Building CRUD WrappersBuilding CRUD Wrappers
Building CRUD WrappersOutSystems
 
Technical Webinar: By the (Play) Book: The Agile Practice at OutSystems
Technical Webinar: By the (Play) Book: The Agile Practice at OutSystemsTechnical Webinar: By the (Play) Book: The Agile Practice at OutSystems
Technical Webinar: By the (Play) Book: The Agile Practice at OutSystemsOutSystems
 
Hands on With Advanced Data Grid
Hands on With Advanced Data GridHands on With Advanced Data Grid
Hands on With Advanced Data GridOutSystems
 
0 to 60 With Outsystems
0 to 60 With Outsystems0 to 60 With Outsystems
0 to 60 With OutsystemsOutSystems
 
OutSystems Front End Specialization - Study Help Deck
OutSystems Front End Specialization - Study Help DeckOutSystems Front End Specialization - Study Help Deck
OutSystems Front End Specialization - Study Help DeckFábio Godinho
 
Training Webinar: Fitting OutSystems applications into Enterprise Architecture
Training Webinar: Fitting OutSystems applications into Enterprise ArchitectureTraining Webinar: Fitting OutSystems applications into Enterprise Architecture
Training Webinar: Fitting OutSystems applications into Enterprise ArchitectureOutSystems
 
OutSystems Tricks & Tips for Complex UI Integrations
OutSystems Tricks & Tips for Complex UI IntegrationsOutSystems Tricks & Tips for Complex UI Integrations
OutSystems Tricks & Tips for Complex UI IntegrationsOutSystems
 
OutSystems Webinar - Building a Live Style Guide
OutSystems Webinar - Building a Live Style GuideOutSystems Webinar - Building a Live Style Guide
OutSystems Webinar - Building a Live Style GuideDaniel Reis
 
OutSystems User Groups - Introduction to OutSystems Architecture (Pune - 7 A...
 OutSystems User Groups - Introduction to OutSystems Architecture (Pune - 7 A... OutSystems User Groups - Introduction to OutSystems Architecture (Pune - 7 A...
OutSystems User Groups - Introduction to OutSystems Architecture (Pune - 7 A...OutSystemsNeo
 
Tenants: A Look Behind the Scenes
Tenants: A Look Behind the ScenesTenants: A Look Behind the Scenes
Tenants: A Look Behind the ScenesOutSystems
 
Training Webinar: Detect Performance Bottlenecks of Applications
Training Webinar: Detect Performance Bottlenecks of ApplicationsTraining Webinar: Detect Performance Bottlenecks of Applications
Training Webinar: Detect Performance Bottlenecks of ApplicationsOutSystems
 
Testing With OutSystems
Testing With OutSystemsTesting With OutSystems
Testing With OutSystemsOutSystems
 
Advanced Bootstrapping and Integrations - Chennai OutSystems User Group 27th ...
Advanced Bootstrapping and Integrations - Chennai OutSystems User Group 27th ...Advanced Bootstrapping and Integrations - Chennai OutSystems User Group 27th ...
Advanced Bootstrapping and Integrations - Chennai OutSystems User Group 27th ...OutSystemsNeo
 
Hardcore CSS Made Easy
Hardcore CSS Made EasyHardcore CSS Made Easy
Hardcore CSS Made EasyJosé Rosário
 
Integrate OutSystems With Office 365
Integrate OutSystems With Office 365Integrate OutSystems With Office 365
Integrate OutSystems With Office 365OutSystems
 

Was ist angesagt? (20)

Extending OutSystems with Javascript
Extending OutSystems with JavascriptExtending OutSystems with Javascript
Extending OutSystems with Javascript
 
Hands-On With Reactive Web Design
Hands-On With Reactive Web DesignHands-On With Reactive Web Design
Hands-On With Reactive Web Design
 
Create Amazing Reports in OutSystems
Create Amazing Reports in OutSystemsCreate Amazing Reports in OutSystems
Create Amazing Reports in OutSystems
 
BPM Patterns & Best Practices with OutSystems BPT
BPM Patterns & Best Practices with OutSystems BPTBPM Patterns & Best Practices with OutSystems BPT
BPM Patterns & Best Practices with OutSystems BPT
 
OutSystems Platform Troubleshooting
OutSystems Platform TroubleshootingOutSystems Platform Troubleshooting
OutSystems Platform Troubleshooting
 
Building CRUD Wrappers
Building CRUD WrappersBuilding CRUD Wrappers
Building CRUD Wrappers
 
Technical Webinar: By the (Play) Book: The Agile Practice at OutSystems
Technical Webinar: By the (Play) Book: The Agile Practice at OutSystemsTechnical Webinar: By the (Play) Book: The Agile Practice at OutSystems
Technical Webinar: By the (Play) Book: The Agile Practice at OutSystems
 
Hands on With Advanced Data Grid
Hands on With Advanced Data GridHands on With Advanced Data Grid
Hands on With Advanced Data Grid
 
0 to 60 With Outsystems
0 to 60 With Outsystems0 to 60 With Outsystems
0 to 60 With Outsystems
 
OutSystems Front End Specialization - Study Help Deck
OutSystems Front End Specialization - Study Help DeckOutSystems Front End Specialization - Study Help Deck
OutSystems Front End Specialization - Study Help Deck
 
Training Webinar: Fitting OutSystems applications into Enterprise Architecture
Training Webinar: Fitting OutSystems applications into Enterprise ArchitectureTraining Webinar: Fitting OutSystems applications into Enterprise Architecture
Training Webinar: Fitting OutSystems applications into Enterprise Architecture
 
OutSystems Tricks & Tips for Complex UI Integrations
OutSystems Tricks & Tips for Complex UI IntegrationsOutSystems Tricks & Tips for Complex UI Integrations
OutSystems Tricks & Tips for Complex UI Integrations
 
OutSystems Webinar - Building a Live Style Guide
OutSystems Webinar - Building a Live Style GuideOutSystems Webinar - Building a Live Style Guide
OutSystems Webinar - Building a Live Style Guide
 
OutSystems User Groups - Introduction to OutSystems Architecture (Pune - 7 A...
 OutSystems User Groups - Introduction to OutSystems Architecture (Pune - 7 A... OutSystems User Groups - Introduction to OutSystems Architecture (Pune - 7 A...
OutSystems User Groups - Introduction to OutSystems Architecture (Pune - 7 A...
 
Tenants: A Look Behind the Scenes
Tenants: A Look Behind the ScenesTenants: A Look Behind the Scenes
Tenants: A Look Behind the Scenes
 
Training Webinar: Detect Performance Bottlenecks of Applications
Training Webinar: Detect Performance Bottlenecks of ApplicationsTraining Webinar: Detect Performance Bottlenecks of Applications
Training Webinar: Detect Performance Bottlenecks of Applications
 
Testing With OutSystems
Testing With OutSystemsTesting With OutSystems
Testing With OutSystems
 
Advanced Bootstrapping and Integrations - Chennai OutSystems User Group 27th ...
Advanced Bootstrapping and Integrations - Chennai OutSystems User Group 27th ...Advanced Bootstrapping and Integrations - Chennai OutSystems User Group 27th ...
Advanced Bootstrapping and Integrations - Chennai OutSystems User Group 27th ...
 
Hardcore CSS Made Easy
Hardcore CSS Made EasyHardcore CSS Made Easy
Hardcore CSS Made Easy
 
Integrate OutSystems With Office 365
Integrate OutSystems With Office 365Integrate OutSystems With Office 365
Integrate OutSystems With Office 365
 

Ähnlich wie OutSystems Tips and Tricks

Liferay portals in real projects
Liferay portals  in real projectsLiferay portals  in real projects
Liferay portals in real projectsIBACZ
 
Monitoring and automation
Monitoring and automationMonitoring and automation
Monitoring and automationRicardo Bánffy
 
Building Sustainable Software: An Introduction to Software Engineering
Building Sustainable Software: An Introduction to Software EngineeringBuilding Sustainable Software: An Introduction to Software Engineering
Building Sustainable Software: An Introduction to Software EngineeringMuhammad Shehata
 
Software Defect Prevention via Continuous Inspection
Software Defect Prevention via Continuous InspectionSoftware Defect Prevention via Continuous Inspection
Software Defect Prevention via Continuous InspectionJosh Gough
 
Indix Engineering Culture Code (2015)
Indix Engineering Culture Code (2015)Indix Engineering Culture Code (2015)
Indix Engineering Culture Code (2015)Rajesh Muppalla
 
Keeping code clean
Keeping code cleanKeeping code clean
Keeping code cleanBrett Child
 
Effective cplusplus
Effective cplusplusEffective cplusplus
Effective cplusplusMark Veltzer
 
Technical Practices for Agile Engineering - PNSQC 2019
Technical Practices for Agile Engineering - PNSQC 2019Technical Practices for Agile Engineering - PNSQC 2019
Technical Practices for Agile Engineering - PNSQC 2019Moss Drake
 
Keeping business logic out of your UIs
Keeping business logic out of your UIsKeeping business logic out of your UIs
Keeping business logic out of your UIsPetter Holmström
 
Introduction to Test Automation
Introduction to Test AutomationIntroduction to Test Automation
Introduction to Test AutomationPekka Klärck
 
RandomTest - Random Software Integration Tests That Just Work for C/C++, Java...
RandomTest - Random Software Integration Tests That Just Work for C/C++, Java...RandomTest - Random Software Integration Tests That Just Work for C/C++, Java...
RandomTest - Random Software Integration Tests That Just Work for C/C++, Java...dcieslak
 
Test driven development : software process
Test driven development : software process Test driven development : software process
Test driven development : software process Amin Taheri
 
Picking the right architecture and sticking to it
Picking the right architecture and sticking to itPicking the right architecture and sticking to it
Picking the right architecture and sticking to itPetter Holmström
 
Demise of test scripts rise of test ideas
Demise of test scripts rise of test ideasDemise of test scripts rise of test ideas
Demise of test scripts rise of test ideasRichard Robinson
 
The Professional Programmer
The Professional ProgrammerThe Professional Programmer
The Professional ProgrammerDave Cross
 
'Effective node.js development' by Viktor Turskyi at OdessaJS'2020
'Effective node.js development' by Viktor Turskyi at OdessaJS'2020'Effective node.js development' by Viktor Turskyi at OdessaJS'2020
'Effective node.js development' by Viktor Turskyi at OdessaJS'2020OdessaJS Conf
 
How to establish ways of working that allows shifting-left of the automation ...
How to establish ways of working that allows shifting-left of the automation ...How to establish ways of working that allows shifting-left of the automation ...
How to establish ways of working that allows shifting-left of the automation ...Max Barrass
 
Integration strategies best practices- Mulesoft meetup April 2018
Integration strategies   best practices- Mulesoft meetup April 2018Integration strategies   best practices- Mulesoft meetup April 2018
Integration strategies best practices- Mulesoft meetup April 2018Rohan Rasane
 
Writing Software that Scales by Default
Writing Software that Scales by DefaultWriting Software that Scales by Default
Writing Software that Scales by DefaultJoseph Kossi Abokpoe
 

Ähnlich wie OutSystems Tips and Tricks (20)

Liferay portals in real projects
Liferay portals  in real projectsLiferay portals  in real projects
Liferay portals in real projects
 
Monitoring and automation
Monitoring and automationMonitoring and automation
Monitoring and automation
 
Building Sustainable Software: An Introduction to Software Engineering
Building Sustainable Software: An Introduction to Software EngineeringBuilding Sustainable Software: An Introduction to Software Engineering
Building Sustainable Software: An Introduction to Software Engineering
 
Software Defect Prevention via Continuous Inspection
Software Defect Prevention via Continuous InspectionSoftware Defect Prevention via Continuous Inspection
Software Defect Prevention via Continuous Inspection
 
Indix Engineering Culture Code (2015)
Indix Engineering Culture Code (2015)Indix Engineering Culture Code (2015)
Indix Engineering Culture Code (2015)
 
Keeping code clean
Keeping code cleanKeeping code clean
Keeping code clean
 
Effective cplusplus
Effective cplusplusEffective cplusplus
Effective cplusplus
 
Technical Practices for Agile Engineering - PNSQC 2019
Technical Practices for Agile Engineering - PNSQC 2019Technical Practices for Agile Engineering - PNSQC 2019
Technical Practices for Agile Engineering - PNSQC 2019
 
Keeping business logic out of your UIs
Keeping business logic out of your UIsKeeping business logic out of your UIs
Keeping business logic out of your UIs
 
Requirements Analysis
Requirements AnalysisRequirements Analysis
Requirements Analysis
 
Introduction to Test Automation
Introduction to Test AutomationIntroduction to Test Automation
Introduction to Test Automation
 
RandomTest - Random Software Integration Tests That Just Work for C/C++, Java...
RandomTest - Random Software Integration Tests That Just Work for C/C++, Java...RandomTest - Random Software Integration Tests That Just Work for C/C++, Java...
RandomTest - Random Software Integration Tests That Just Work for C/C++, Java...
 
Test driven development : software process
Test driven development : software process Test driven development : software process
Test driven development : software process
 
Picking the right architecture and sticking to it
Picking the right architecture and sticking to itPicking the right architecture and sticking to it
Picking the right architecture and sticking to it
 
Demise of test scripts rise of test ideas
Demise of test scripts rise of test ideasDemise of test scripts rise of test ideas
Demise of test scripts rise of test ideas
 
The Professional Programmer
The Professional ProgrammerThe Professional Programmer
The Professional Programmer
 
'Effective node.js development' by Viktor Turskyi at OdessaJS'2020
'Effective node.js development' by Viktor Turskyi at OdessaJS'2020'Effective node.js development' by Viktor Turskyi at OdessaJS'2020
'Effective node.js development' by Viktor Turskyi at OdessaJS'2020
 
How to establish ways of working that allows shifting-left of the automation ...
How to establish ways of working that allows shifting-left of the automation ...How to establish ways of working that allows shifting-left of the automation ...
How to establish ways of working that allows shifting-left of the automation ...
 
Integration strategies best practices- Mulesoft meetup April 2018
Integration strategies   best practices- Mulesoft meetup April 2018Integration strategies   best practices- Mulesoft meetup April 2018
Integration strategies best practices- Mulesoft meetup April 2018
 
Writing Software that Scales by Default
Writing Software that Scales by DefaultWriting Software that Scales by Default
Writing Software that Scales by Default
 

Mehr von OutSystems

Innovating at the Speed of Business in the High-Bandwidth World of Digital Media
Innovating at the Speed of Business in the High-Bandwidth World of Digital MediaInnovating at the Speed of Business in the High-Bandwidth World of Digital Media
Innovating at the Speed of Business in the High-Bandwidth World of Digital MediaOutSystems
 
Beyond “Location”: Informing Real-Estate Decisions Through Innovative Technology
Beyond “Location”: Informing Real-Estate Decisions Through Innovative TechnologyBeyond “Location”: Informing Real-Estate Decisions Through Innovative Technology
Beyond “Location”: Informing Real-Estate Decisions Through Innovative TechnologyOutSystems
 
Beyond Digital Transformation: A Mandate for Disruptive Innovation in the Age...
Beyond Digital Transformation: A Mandate for Disruptive Innovation in the Age...Beyond Digital Transformation: A Mandate for Disruptive Innovation in the Age...
Beyond Digital Transformation: A Mandate for Disruptive Innovation in the Age...OutSystems
 
From Core Systems to Mobile Apps: Digital Transformation from the Inside-Out
From Core Systems to Mobile Apps: Digital Transformation from the Inside-OutFrom Core Systems to Mobile Apps: Digital Transformation from the Inside-Out
From Core Systems to Mobile Apps: Digital Transformation from the Inside-OutOutSystems
 
Orchestrating the Art of the Impossible Using Low-Code to Automate Manual Wor...
Orchestrating the Art of the Impossible Using Low-Code to Automate Manual Wor...Orchestrating the Art of the Impossible Using Low-Code to Automate Manual Wor...
Orchestrating the Art of the Impossible Using Low-Code to Automate Manual Wor...OutSystems
 
Fast and Furious: Modernizing Clinical Application
Fast and Furious: Modernizing Clinical ApplicationFast and Furious: Modernizing Clinical Application
Fast and Furious: Modernizing Clinical ApplicationOutSystems
 
Enrich Visually Google Map Information With Layers
Enrich Visually Google Map Information With LayersEnrich Visually Google Map Information With Layers
Enrich Visually Google Map Information With LayersOutSystems
 
Unattended OutSystems Installation
Unattended OutSystems InstallationUnattended OutSystems Installation
Unattended OutSystems InstallationOutSystems
 
Speed up Development by Turning Web Blocks Into First-Class Citizens
Speed up Development by Turning Web Blocks Into First-Class CitizensSpeed up Development by Turning Web Blocks Into First-Class Citizens
Speed up Development by Turning Web Blocks Into First-Class CitizensOutSystems
 
Responsive Ui with Realtime Database
Responsive Ui with Realtime DatabaseResponsive Ui with Realtime Database
Responsive Ui with Realtime DatabaseOutSystems
 
RADS - Rapid Application Design Sprint
RADS - Rapid Application Design SprintRADS - Rapid Application Design Sprint
RADS - Rapid Application Design SprintOutSystems
 
Pragmatic Innovation
Pragmatic InnovationPragmatic Innovation
Pragmatic InnovationOutSystems
 
Troubleshooting Dashboard Performance
Troubleshooting Dashboard PerformanceTroubleshooting Dashboard Performance
Troubleshooting Dashboard PerformanceOutSystems
 
No API? No Problem! Let the Robot Do Your Work! Web Scraping and Automation W...
No API? No Problem! Let the Robot Do Your Work! Web Scraping and Automation W...No API? No Problem! Let the Robot Do Your Work! Web Scraping and Automation W...
No API? No Problem! Let the Robot Do Your Work! Web Scraping and Automation W...OutSystems
 
Neo in Wonderland: Essential Tools for an Outsystems Architect
Neo in Wonderland: Essential Tools for an Outsystems ArchitectNeo in Wonderland: Essential Tools for an Outsystems Architect
Neo in Wonderland: Essential Tools for an Outsystems ArchitectOutSystems
 
Measure Customer Experience of Your OutSystems Web and Mobile Applications
Measure Customer Experience of Your OutSystems Web and Mobile ApplicationsMeasure Customer Experience of Your OutSystems Web and Mobile Applications
Measure Customer Experience of Your OutSystems Web and Mobile ApplicationsOutSystems
 
Link Users to Your Specific Page in a Mobile App With Deeplinks
Link Users to Your Specific Page in a Mobile App With DeeplinksLink Users to Your Specific Page in a Mobile App With Deeplinks
Link Users to Your Specific Page in a Mobile App With DeeplinksOutSystems
 
Setting up a Tech Innovation Lab in a Traditional Grocery Retail Environment
Setting up a Tech Innovation Lab in a Traditional Grocery Retail EnvironmentSetting up a Tech Innovation Lab in a Traditional Grocery Retail Environment
Setting up a Tech Innovation Lab in a Traditional Grocery Retail EnvironmentOutSystems
 
Intro to the Data Grid
Intro to the Data GridIntro to the Data Grid
Intro to the Data GridOutSystems
 
How to Attract and Train Talent in Highly Competitive Markets
How to Attract and Train Talent in Highly Competitive MarketsHow to Attract and Train Talent in Highly Competitive Markets
How to Attract and Train Talent in Highly Competitive MarketsOutSystems
 

Mehr von OutSystems (20)

Innovating at the Speed of Business in the High-Bandwidth World of Digital Media
Innovating at the Speed of Business in the High-Bandwidth World of Digital MediaInnovating at the Speed of Business in the High-Bandwidth World of Digital Media
Innovating at the Speed of Business in the High-Bandwidth World of Digital Media
 
Beyond “Location”: Informing Real-Estate Decisions Through Innovative Technology
Beyond “Location”: Informing Real-Estate Decisions Through Innovative TechnologyBeyond “Location”: Informing Real-Estate Decisions Through Innovative Technology
Beyond “Location”: Informing Real-Estate Decisions Through Innovative Technology
 
Beyond Digital Transformation: A Mandate for Disruptive Innovation in the Age...
Beyond Digital Transformation: A Mandate for Disruptive Innovation in the Age...Beyond Digital Transformation: A Mandate for Disruptive Innovation in the Age...
Beyond Digital Transformation: A Mandate for Disruptive Innovation in the Age...
 
From Core Systems to Mobile Apps: Digital Transformation from the Inside-Out
From Core Systems to Mobile Apps: Digital Transformation from the Inside-OutFrom Core Systems to Mobile Apps: Digital Transformation from the Inside-Out
From Core Systems to Mobile Apps: Digital Transformation from the Inside-Out
 
Orchestrating the Art of the Impossible Using Low-Code to Automate Manual Wor...
Orchestrating the Art of the Impossible Using Low-Code to Automate Manual Wor...Orchestrating the Art of the Impossible Using Low-Code to Automate Manual Wor...
Orchestrating the Art of the Impossible Using Low-Code to Automate Manual Wor...
 
Fast and Furious: Modernizing Clinical Application
Fast and Furious: Modernizing Clinical ApplicationFast and Furious: Modernizing Clinical Application
Fast and Furious: Modernizing Clinical Application
 
Enrich Visually Google Map Information With Layers
Enrich Visually Google Map Information With LayersEnrich Visually Google Map Information With Layers
Enrich Visually Google Map Information With Layers
 
Unattended OutSystems Installation
Unattended OutSystems InstallationUnattended OutSystems Installation
Unattended OutSystems Installation
 
Speed up Development by Turning Web Blocks Into First-Class Citizens
Speed up Development by Turning Web Blocks Into First-Class CitizensSpeed up Development by Turning Web Blocks Into First-Class Citizens
Speed up Development by Turning Web Blocks Into First-Class Citizens
 
Responsive Ui with Realtime Database
Responsive Ui with Realtime DatabaseResponsive Ui with Realtime Database
Responsive Ui with Realtime Database
 
RADS - Rapid Application Design Sprint
RADS - Rapid Application Design SprintRADS - Rapid Application Design Sprint
RADS - Rapid Application Design Sprint
 
Pragmatic Innovation
Pragmatic InnovationPragmatic Innovation
Pragmatic Innovation
 
Troubleshooting Dashboard Performance
Troubleshooting Dashboard PerformanceTroubleshooting Dashboard Performance
Troubleshooting Dashboard Performance
 
No API? No Problem! Let the Robot Do Your Work! Web Scraping and Automation W...
No API? No Problem! Let the Robot Do Your Work! Web Scraping and Automation W...No API? No Problem! Let the Robot Do Your Work! Web Scraping and Automation W...
No API? No Problem! Let the Robot Do Your Work! Web Scraping and Automation W...
 
Neo in Wonderland: Essential Tools for an Outsystems Architect
Neo in Wonderland: Essential Tools for an Outsystems ArchitectNeo in Wonderland: Essential Tools for an Outsystems Architect
Neo in Wonderland: Essential Tools for an Outsystems Architect
 
Measure Customer Experience of Your OutSystems Web and Mobile Applications
Measure Customer Experience of Your OutSystems Web and Mobile ApplicationsMeasure Customer Experience of Your OutSystems Web and Mobile Applications
Measure Customer Experience of Your OutSystems Web and Mobile Applications
 
Link Users to Your Specific Page in a Mobile App With Deeplinks
Link Users to Your Specific Page in a Mobile App With DeeplinksLink Users to Your Specific Page in a Mobile App With Deeplinks
Link Users to Your Specific Page in a Mobile App With Deeplinks
 
Setting up a Tech Innovation Lab in a Traditional Grocery Retail Environment
Setting up a Tech Innovation Lab in a Traditional Grocery Retail EnvironmentSetting up a Tech Innovation Lab in a Traditional Grocery Retail Environment
Setting up a Tech Innovation Lab in a Traditional Grocery Retail Environment
 
Intro to the Data Grid
Intro to the Data GridIntro to the Data Grid
Intro to the Data Grid
 
How to Attract and Train Talent in Highly Competitive Markets
How to Attract and Train Talent in Highly Competitive MarketsHow to Attract and Train Talent in Highly Competitive Markets
How to Attract and Train Talent in Highly Competitive Markets
 

Kürzlich hochgeladen

8257 interfacing 2 in microprocessor for btech students
8257 interfacing 2 in microprocessor for btech students8257 interfacing 2 in microprocessor for btech students
8257 interfacing 2 in microprocessor for btech studentsHimanshiGarg82
 
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfLearn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfkalichargn70th171
 
AI & Machine Learning Presentation Template
AI & Machine Learning Presentation TemplateAI & Machine Learning Presentation Template
AI & Machine Learning Presentation TemplatePresentation.STUDIO
 
VTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learnVTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learnAmarnathKambale
 
Right Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsRight Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsJhone kinadey
 
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...panagenda
 
Direct Style Effect Systems - The Print[A] Example - A Comprehension Aid
Direct Style Effect Systems -The Print[A] Example- A Comprehension AidDirect Style Effect Systems -The Print[A] Example- A Comprehension Aid
Direct Style Effect Systems - The Print[A] Example - A Comprehension AidPhilip Schwarz
 
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...harshavardhanraghave
 
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...Health
 
A Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxA Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxComplianceQuest1
 
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️Delhi Call girls
 
How To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.jsHow To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.jsAndolasoft Inc
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providermohitmore19
 
5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdfWave PLM
 
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsUnveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsAlberto González Trastoy
 
Optimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVOptimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVshikhaohhpro
 
Azure_Native_Qumulo_High_Performance_Compute_Benchmarks.pdf
Azure_Native_Qumulo_High_Performance_Compute_Benchmarks.pdfAzure_Native_Qumulo_High_Performance_Compute_Benchmarks.pdf
Azure_Native_Qumulo_High_Performance_Compute_Benchmarks.pdfryanfarris8
 
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected WorkerHow To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected WorkerThousandEyes
 

Kürzlich hochgeladen (20)

8257 interfacing 2 in microprocessor for btech students
8257 interfacing 2 in microprocessor for btech students8257 interfacing 2 in microprocessor for btech students
8257 interfacing 2 in microprocessor for btech students
 
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfLearn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
 
AI & Machine Learning Presentation Template
AI & Machine Learning Presentation TemplateAI & Machine Learning Presentation Template
AI & Machine Learning Presentation Template
 
VTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learnVTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learn
 
Right Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsRight Money Management App For Your Financial Goals
Right Money Management App For Your Financial Goals
 
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
 
Direct Style Effect Systems - The Print[A] Example - A Comprehension Aid
Direct Style Effect Systems -The Print[A] Example- A Comprehension AidDirect Style Effect Systems -The Print[A] Example- A Comprehension Aid
Direct Style Effect Systems - The Print[A] Example - A Comprehension Aid
 
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
 
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
 
A Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxA Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docx
 
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
 
How To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.jsHow To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.js
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service provider
 
Microsoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdfMicrosoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdf
 
5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf
 
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsUnveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
 
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICECHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
 
Optimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVOptimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTV
 
Azure_Native_Qumulo_High_Performance_Compute_Benchmarks.pdf
Azure_Native_Qumulo_High_Performance_Compute_Benchmarks.pdfAzure_Native_Qumulo_High_Performance_Compute_Benchmarks.pdf
Azure_Native_Qumulo_High_Performance_Compute_Benchmarks.pdf
 
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected WorkerHow To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
 

OutSystems Tips and Tricks

  • 1. | OS Tips and Tricks OutSystems Tips and Tricks Project DO's and DON'Ts, and what we can learn from comics
  • 2. | OS Tips and Tricks| OS Tips and Tricks Erik Brzozowski Senior OutSystems Consultant| Valuga @ in erik.brzozowski@valuga.nl /erik-brzozowski-nl
  • 3. | OS Tips and Tricks Main topics ● Project ● Architecture ● Coding ● Processes Timers/BPT
  • 4. | OS Tips and Tricks| OS Tips and Tricks Project
  • 5. | OS Tips and Tricks Ask why ● Know the ultimate Goal ■ Design Sprint ● Know the problem you are solving ● Try to talk to everyone ■ Product owner ■ Techlead ■ Architect ■ Developers (also from other teams) ■ Users
  • 6. | OS Tips and Tricks Scary questions ● But is it possible? ● Will it work? ● Which option takes the least time? ● It’s only a temporary solution, it doesn't have to be pretty ■ Nothing so permanent as a temporary solution Come up with suggestions and solutions.
  • 7. | OS Tips and Tricks Backlog management ● Does this user story fit in the ultimate goal ● Accept that some user stories will not be built ● If you can’t prioritize this is an indication that something is wrong ● Start with the most complex user stories ■ Bring the pain forward
  • 8. | OS Tips and Tricks Match with existing architecture ● When you know the what ● When you know the next thing to build ● Recheck how this would fit in the current landscape
  • 9. | OS Tips and Tricks| OS Tips and Tricks Architecture https://xkcd.com/1667/
  • 10. | OS Tips and Tricks How to design ● Iterative process ■ Disclose ■ Organize ■ Assemble 3: Assemble 1: Disclose 2: Organize iteration
  • 11. | OS Tips and Tricks Disclose ● User stories and roles ● Information architecture ● Integration technology ● UX expectations 3: Assemble 1: Disclose 2: Organize iteration
  • 12. | OS Tips and Tricks Organize ● Group or split Business concepts ● Place on a canvas ● Possibly disclose more concepts 3: Assemble 1: Disclose 2: Organize iteration
  • 13. | OS Tips and Tricks Assemble ● Match recommended patterns ● Abstract external systems ● Check the validation rules 3: Assemble 1: Disclose 2: Organize iteration
  • 14. | OS Tips and Tricks No side references among orchestration or end-user modules ● No end-user screens ● Read only entities Assemble: Rule #1 layer modules (and applications) ● No business logic ● No core entities ● No role based logic Core Layer Core business services Library layer Non business services End User Layer User processes Orchestration Layer Cross application orchestration No upward references
  • 15. | OS Tips and Tricks Rule #2 don’t mix owners Common application Module 1 Module 3Module 2 Application 1 Module 1 Module 2 Application 2 Module 3Split Who can make the call to go to production?
  • 16. | OS Tips and Tricks Rule #3 don’t mix sponsors One big application for 3 divisions General core 1 General core 2 Core 1 Front end division 1 Core 1 Front end division 2 Core 1 Front end division 3 Application division 3 Application division 2 Application division 1 Common application Core 1 Core 2 Core 1 Front end division 1 Core 1 Front end division 2 Core 1 Front end division 3 Split
  • 17. | OS Tips and Tricks Most architectures start easy What can go wrong? ● No time to refactor ● Architecture iterations stop ● No designs or documentation ● Team(members) change ● No patterns are used ● Violations are introduced
  • 18. | OS Tips and Tricks| OS Tips and Tricks Coding
  • 19. | OS Tips and Tricks Naming conventions ● Use meaningful names ● Use PascalCase ● Create folders for actions and for structures ● Avoid empty labels ● Suffix foreign keys with Id ● Always group screens by name ● Set the name property of TableRecords, ShowRecords and ListRecords
  • 20. | OS Tips and Tricks Coding ● Always comment complex or unclear logic
  • 21. | OS Tips and Tricks Coding ● Always comment complex or unclear logic ● Keep action flows vertical and clean
  • 22. | OS Tips and Tricks Coding ● Always comment complex or unclear logic ● Keep action flows vertical and clean ● Use static entities instead of hard-coded values. SearchEngines
  • 23. | OS Tips and Tricks Coding ● Always comment complex or unclear logic ● Keep action flows vertical and clean ● Use static entities instead of hard- coded values. ● Encapsulate data formatting using user actions
  • 24. | OS Tips and Tricks Coding ● Always comment complex or unclear logic ● Keep action flows vertical and clean ● Use static entities instead of hard- coded values. ● Encapsulate data formatting using user actions ● Reuse ■ logic by creating user actions
  • 25. | OS Tips and Tricks Performance ● JavaScript / CSS ■ Don’t have JS inside expressions, better to move it to the screen
  • 26. | OS Tips and Tricks Performance ● JavaScript / CSS ■ Don’t have JS inside expressions, better to move it to the screen ● Abuse of scope data / Ajax ■ Use refreshQuery to rerun previous queries
  • 27. | OS Tips and Tricks Performance ● JavaScript / CSS ■ Don’t have JS inside expressions, better to move it to the screen ● Abuse of scope data / Ajax ■ Use refreshQuery to rerun previous queries ● Too many query calls in preparation ■ Queries called inside a “foreach” in the preparation or in expressions inside table records
  • 28. | OS Tips and Tricks Entities (Datamodel) ● Aggregates ■ No SQL background knowledge required ■ Easy to create and maintain ■ SQL-dialect agnostic ■ Automatically optimised by platform ● Isolate large data types ● Indexes
  • 29. | OS Tips and Tricks Entities (Datamodel) ● SQL ■ Bulk operations (INSERT/UPDATE/DELETE) ■ Access to DBMS-specific features (rank, pivot leaf etc)
  • 30. | OS Tips and Tricks Caching ● Webblocks, queries and actions ■ Based on input parameters ● You can create a dummy input parameter for cache invalidation ● Always keep business logic in mind
  • 31. | OS Tips and Tricks Code review ● Do a periodic code review ● You can always learn ● Also a good moment to ask, does the architecture still fit? ● Use static code analysis tools ■ Example: Architecture Dashboard ■ It will always reveal improvement ■ Many improvement can be made in limited time
  • 32. | OS Tips and Tricks| OS Tips and Tricks Processes Timers/BPT
  • 33. | OS Tips and Tricks Timers ● Single process run ● Set schedule ● Timers can’t use input parameters ● Large batch processing ● Synchronisation patterns BPT ● Align several operations ● Actions can run in parallel ● Manual actions can be implemented ● Stop/Start on database events ● Wait activity
  • 34. | OS Tips and Tricks Timers: ● Timers should never timeout ● Does not repeat work ● Ensures completeness ● Ensures data integrity
  • 35. | OS Tips and Tricks BPT - special cases ● Manage own reporting entities ■ Queries over process entities can be slow BPT - special cases ● Manage own reporting entities ■ Queries over process entities can be slow ■ Create own entity ■ Update via callbacks
  • 36. | OS Tips and Tricks BPT - special cases ● Separate Process Logic from Application Logic ■ Process and the application are changing ■ Can lead to lock and time-outs ■ Move the attributes new entity in a one- to-one relationship.
  • 37. | OS Tips and Tricks Combine timers with BPT
  • 38. | OS Tips and Tricks BPT light ● Light Processes are intended to be used for background processing ● Flow only contains 1 automatic activity ● Light BPT start on the creation of a database entity record ● 20 threads from the Light BPT ● Light Processes don’t create entries on BPT tables
  • 39. | OS Tips and Tricks
  • 40. | OS Tips and Tricks Thank You! @ inerik.brzozowski@valuga. nl /erik-brzozowski- nl

Hinweis der Redaktion

  1. introduction, background story, why connected to OutSystems.
  2. https://www.outsystems.com/-/media/A49C3F1FB3BC4280904093BB45B151DC.ashx 7 rules explained in a 20 minutes read. I will highlight one rule Rule 1: Ask Why Rule 2: The Small Crisis Rule 3: Challenge the Status Quo Rule 4: Be helpful Rule 5: 80/20 Rule 6: Communicate to be understood Rule 7: Excel 2:10 PM Harrald Spooren RADS - Rapid Application Design Sprint TECH II
  3. Challenge the proposed solutions -- > Examples where it is technically possible but you are fixing problems of other systems. You are adding legacy in you own application. This will cause problems in the future
  4. https://www.outsystems.com/learn/lesson/1220/the-architecture-design-process/?LearningPathId=8
  5. https://www.outsystems.com/learn/lesson/1220/the-architecture-design-process/?LearningPathId=8
  6. https://www.outsystems.com/learn/lesson/1220/the-architecture-design-process/?LearningPathId=8
  7. https://www.outsystems.com/learn/lesson/1220/the-architecture-design-process/?LearningPathId=8
  8. Copy/Paste can create unexpected references!
  9. https://www.slideshare.net/OutSystems/fitting-outsystems-applications-into-enterprise-architecture
  10. https://www.slideshare.net/OutSystems/fitting-outsystems-applications-into-enterprise-architecture
  11. Result: Poor service extractions Unmanageable dependencies Inflexible solutions Weak reference through web services, when transaction is not an issue Keep granularity when integrating with large APIs ... Split by functional groups
  12. Session Variables using large data types (Each web request loads session context which takes longer with large data types, causing contention in the session data model with the increase of concurrent users. This is even more important when you use AJAX, as that technology invariably increases the number of requests. )
  13. Session Variables using large data types (Each web request loads session context which takes longer with large data types, causing contention in the session data model with the increase of concurrent users. This is even more important when you use AJAX, as that technology invariably increases the number of requests. )
  14. https://success.outsystems.com/Documentation/Best_Practices/Performance_Best_Practices/Performance_Best_Practices_-_Queries
  15. https://success.outsystems.com/Documentation/Best_Practices/Performance_Best_Practices/Performance_Best_Practices_-_Queries
  16. Screens and Web Blocks can also be cached and it is usually better to cache at the boundaries of a “service” (on the UI, on the web service response) as databases already have excellent caching mechanisms and correct indexing is usually enough. But caching business logic and results rendering can give you that extra degree of performance. Just make sure the logic you’re caching is not designed to have external side effects (database changes etc). Cache screens and weblocks. Databases already have great caching mechanisms, so we do not need to worry about that much, in particular if we have a good indexing support. Caching business logic and results, in particular if you have kind of repetitive hits can be extremely helpful as well. Careful with the side effects, namely when it affects the database. https://success.outsystems.com/Documentation/Best_Practices/Performance_Best_Practices/Improving_performance_with_distributed_caching
  17. https://www.outsystems.com/learn/lesson/925/scale-queries-over-process-entities/?LearningPathId=0
  18. https://www.outsystems.com/learn/lesson/925/scale-queries-over-process-entities/?LearningPathId=0 https://www.outsystems.com/learn/lesson/926/separate-process-logic-from-application-logic/?LearningPathId=0
  19. Billing process flow requires polling an external system (for example, SAP) until a condition is satisfied; it can then be released and proceed its normal process flow. https://www.outsystems.com/learn/lesson/922/terminate-idle-processes/?LearningPathId=0
  20. https://www.outsystems.com/forums/discussion/41063/light-processes-under-the-hood/ 2:15 PM Miguel Melo Launching a BPT Process on Entity Update E1.03