Exploring the OutSystems Universe: 10 Must-Read Articles
OutSystems is a powerful tool that enables businesses to create applications with unprecedented speed and efficiency. Whether you’re a seasoned developer or just dipping your toes into the world of low-code development, staying informed is key to harnessing the full potential of this platform.
I’ve hand-picked a collection of the top 10 OutSystems articles in Medium, that you should delve into. These resources will help you navigate the dynamic OutSystems environment with ease. From expert insights to practical tutorials, these articles serve as a complete guide to mastering OutSystems and discovering its endless potential.
In this article, I’ll try to take you on a journey through the heart of OutSystems’ knowledge repository.
Let’s dive in!
1. Clean Code
This Clean Code article, one of my favorites, shows that despite OutSystems being a low-code platform, it demands attention to clean code to prevent bugs and maintainability issues. Joost Landgraf discusses the significance of meaningful naming, the role of comments, and the characteristics of well-structured actions. By applying practices like breaking down actions, using informative comments, and adhering to one concept per action, developers can enhance their coding skills and produce maintainable code.
2. Permissions and Roles
The article, from Filipe Morais, covers role-based security in OutSystems React, outlining 10 key rules for protection. It emphasizes the significance of access roles, using JavaScript APIs for UI element visibility, securing aggregates and data actions, filtering data with GetUserId(), precautions when using screen variables, and the need to safeguard server actions with security checks. It underscores block protection, precautions for offline logic, and security reinforcement.
In addition to this article, if you want to delve deeper into this topic, the same author goes into more depth on the subject of permissions in 2 other articles (article 1 and article 2).
3. Architecture Naming Conventions
This article is crucial because it underscores the significance of adhering to naming conventions within OutSystems architecture. By promoting uniformity and ease of code maintenance, these conventions contribute to a streamlined development process.
This article, from Marco Arede, explains how these conventions aid in reducing the risk of architectural violations. It also emphasizes the role of clear naming in facilitating code comprehension within the application context.
Ultimately, the article serves as a comprehensive resource, consolidating dispersed information on naming conventions and their essential role in fostering a well-structured and manageable architectural framework.
4. Build a Good UI Pattern
This article, written by António Carvalho, unveils essential insights into crafting effective UI Patterns in OutSystems applications. By emphasizing scalability, adaptability, and ease of maintenance, the article guides developers toward constructing UI Patterns aligned with software engineering principles.
The article addresses key concepts such as the Law of Requisite Variety and advocates for agnostic and generic design, suggesting practices like including ExtendedClass parameters, considering widths and margins, and leaving controls to developers.
The emphasis on architecture, input parameters versus placeholders, and the distributed approach further underscores the article’s value in creating robust and flexible UI Patterns.
5. Security in REST APIs
In this article by João Sousa, the importance of security in REST APIs is discussed. The author highlights the significance of security considerations while working with REST services in OutSystems.
The article provides insights into security practices, discussing configurations and authentication options both during service exposure and consumption.
It underscores the user-friendly approach of implementing security measures in the OutSystems platform and highlights available Forge Components for common security scenarios.
The author’s comprehensive explanations and practical examples make this article a valuable resource for developers seeking to ensure the security of their REST APIs.
6. Where is your Data at OutSystems?
In this article by Claudia L Capitao, the significance of data in the context of OutSystems development is thoroughly explored. Starting from the importance of quality data in the survival of companies, the article covers various aspects of data modeling within the OutSystems platform, catering to both basic and advanced topics.
The author outlines the mapping of SQL concepts to OutSystems’ data model and explains where data is stored in the platform. From creating entities and attributes to handling primary keys, foreign keys, and relationship types, the article provides comprehensive insights.
Additionally, the author highlights the availability of Forge components to enhance database features and the integration of external databases. The article serves as a valuable guide for developers, encompassing fundamental principles while delving into more intricate details, making it a must-read for anyone working with OutSystems.
7. Timers vs BPT vs Light BPT
This article highlights the significance of various background processing tools in the OutSystems platform. It presents Timers, BPT (Business Process Technology), and Light BPT, each serving distinct purposes.
Timers are suitable for simple tasks and batch processing but require careful planning to avoid issues.
BPT is ideal for automating business processes with human activities.
Light BPT is a “newer” addition, excelling in processing large data batches due to its speed and efficiency, making it particularly useful for event-driven mechanisms.
This article, from William Antunes, helps developers choose the right tool for their specific solution needs.
8. OutSystems Multi-tenancy
The article “Working with OutSystems Multi-tenancy” by Fabrício Bonifácio explores the concept and implementation of multi-tenancy in OutSystems.
It introduces how to isolate data, configurations, and users using tenants, explains multi-tenant module options, creating tenants, managing entities, end-users, timers, and site properties within the multi-tenancy framework.
The article offers development tips and emphasizes the advantages and responsibilities associated with leveraging OutSystems’ multi-tenancy functionality. Fabrício’s light-hearted writing style makes learning about this complex topic engaging and accessible.
9. Best Practices for Developing High-Quality Apps
This article by Paul Schmeddes emphasizes the importance of developing high-quality OutSystems applications. It covers methods and tools for building robust, performant, and maintainable apps.
The article stresses the significance of documentation for maintainability, providing insights into project vs. system documentation and advocating for integrating documentation into the coding routine. It highlights establishing documentation standards, using tools like OutDoc, and exemplifies standards for module naming, application descriptions, and entity diagrams.
The article also delves into code reviews, testing practices, and validating and refactoring applications to ensure compliance with architecture standards.
The conclusion underscores the value of quality assurance through documentation, code reviews, testing, and validation in delivering successful OutSystems projects.
10. OutSystems Developer Cloud (ODC)
This article from Fábio Fantato, is a pivotal article discussing the future of OutSystems through the introduction of the ODC (OutSystems Developer Cloud) platform.
With insights from early access engagement, the article emphasizes ODC’s transformative impact on development, highlighting its cloud-native architecture, containerization, multi-tenancy, and advanced security features.
The shift from traditional module-based development to a domain-driven architecture is explored, underlining ODC’s potential to streamline application management, improve scalability, and foster a service-oriented approach.
This article, written by an OutSystems guru, is a significant resource for understanding the paradigm shift and the promising future of low-code development.
What about some bonus articles?
And for those hungry for even more knowledge and eager to explore beyond the horizon, I have a special treat for you — bonus articles that add an extra layer of expertise to your OutSystems journey. These additional resources delve into topics that complement and enhance your understanding of the platform and application development, opening doors to new possibilities and solutions.
a. External Databases Integration
This article, from Larisa Tanasa, explores essential strategies for integrating external databases in OutSystems applications. It addresses the complexity of integrating external data and its impact on application performance.
The article covers six approaches, including importing entities, using C# for high data volumes, employing stored procedures, creating consolidated views/tables, copying data to the OS server, and using Elasticsearch for unstructured data.
Each approach’s pros, cons, prerequisites, and benefits are discussed, providing developers with insights into selecting the best method based on data type, volume, and integration requirements.
b. Using BDD/TDD
This article by Rui Barbosa highlights the importance of Test Driven Development (TDD) and Behavior Driven Development (BDD) in the context of OutSystems development. It addresses common misconceptions about TDD and emphasizes its role in the development process, focusing on code behavior and constant feedback.
The article explains the TDD process and its stages (Red, Green, Blue), comparing TDD to traditional unit testing and explaining the benefits of BDD.
It concludes that while TDD requires an investment of time, the resulting code quality, discipline, efficiency, and consistency make it a valuable approach for OutSystems development.
The article also mentions available frameworks for TDD and BDD on the OutSystems Forge.
For those who are even more interested in this topic, I recommend the following trilogy of articles by João Proença (Article 1, Article 2, Article 3).
c. Code Review Best Practices
Published by Palantir, this article discusses best practices for code reviews, emphasizing their role in enhancing code quality, fostering team collaboration, and maintaining a positive company culture.
It covers the significance of code reviews, how to prepare code for review, the code review process itself, and practical examples of review comments.
While not directly related to OutSystems, the article provides crucial insights applicable to programming in general. It underscores the importance of peer reviews, explains the purpose of code reviews, offers guidelines for effective reviewing, and emphasizes the value of thoroughness, collaboration, and respectful communication during the review process.
When considering code review within the context of OutSystems, a valuable reference can be found in this document.
Final Remarks
In conclusion, these 10 must-read articles, +3 bonuses, provide an invaluable guide to navigating the OutSystems universe.
As you delve into the intricacies of clean code, permissions and roles, architecture naming conventions, external database integration, UI pattern design, REST API security, data management, background processing tools, and multi-tenancy, you’ll gain a comprehensive understanding of how to harness the full power of this dynamic platform.
By incorporating code reviews, high-quality app building, and leveraging the power of BDD/TDD tools, you’re ensuring your OutSystems projects are not only efficient but also resilient and scalable.
Moreover, the visionary “OutSystems Developer Cloud (ODC)” article by Fábio Fantato sheds light on the platform’s future, emphasizing its transformative potential and the shift toward domain-driven architecture.
By absorbing these insights, you’re equipping yourself to excel in the world of low-code development, master the nuances of OutSystems, and embark on a journey toward innovation and efficiency in application development. The path ahead is exciting — let’s explore it!
Do you have an article you’d like to share, or that you think is a must read? Share it here in the comments!