SPECIALIST QUESTIONS
(SCENARIO-BASED) with 100%
correct answers ( graded A+)
"b) Creating a Server Action encapsulates the complex query logic
and improves organization, making the Preparation cleaner and
easier to maintain. While an Advanced Query might offer
performance benefits, it's less maintainable in the long run.
Caching could help, but optimizing the query itself is often the
better first step. Indexing is crucial for database optimization but
addresses the database itself rather than the OutSystems
application structure." - answer You have a screen with a complex
query in the Preparation that fetches data from multiple related
entities. Users complain about slow loading times. What's the best
approach to optimize this? a) Use an Advanced Query to combine
the data retrieval into a single database call. b) Create a Server
Action to encapsulate the query and call it from the Preparation.
c) Cache the Aggregate used in the Preparation to store the
results temporarily. d) Optimize the database by adding indexes
to the relevant attributes of the entities.
"c) Communication and coordination are paramount to avoid
merge conflicts. While working on separate modules can help, it
doesn't eliminate the possibility of conflicts when integrating
functionalities. LifeTime helps manage versions but doesn't
prevent conflicts entirely. More frequent publishing reduces the
scope of merges but requires more discipline and might disrupt
other developers." - answer A team of developers is working on a
large application. They frequently encounter merge conflicts when
,publishing their changes. What's the best practice to minimize
these conflicts? a) Have each developer work on a separate
module. b) Use LifeTime to manage versioning and deployments.
c) Communicate frequently and coordinate changes among team
members. d) Publish changes more frequently to reduce the size
of individual updates.
"a) OutSystems provides built-in support for OAuth 2.0, making it
the most efficient method. The other options are more complex
and less maintainable." - answer You are developing a mobile app
that needs to consume a REST API. The API uses OAuth 2.0 for
authentication. What's the most efficient way to handle this in
OutSystems? a) Use the built-in OAuth 2.0 client credentials flow.
b) Implement custom authentication logic using an extension. c)
Store the access token in a session variable. d) Manually add the
authorization header to each REST API call.
"b) Static Entities are designed for holding constant values,
making them ideal for this purpose. Site Properties are for
environment-specific settings, not application logic constants.
Local variables are not suitable for globally accessible values. A
separate database table is overkill for simple constants." - answer
An application uses several hardcoded values throughout the
logic. What's the best practice to improve maintainability? a)
Store the values in Site Properties. b) Create a Static Entity to
hold the values. c) Use local variables within each action. d) Store
the values in a separate database table.
"b) Minifying reduces file size, improving load times. Including it
as a resource ensures it's managed within the module. Server
Actions are for server-side logic, not client-side JavaScript.
Embedding in HTML is less maintainable. Breaking into smaller
,files can be beneficial but adds complexity." - answer A web
screen contains a large amount of JavaScript code that is slowing
down the page load. How can you improve performance? a) Move
the JavaScript code to a Server Action. b) Minify the JavaScript
code and include it as a resource. c) Embed the JavaScript code
directly into the HTML. d) Break the JavaScript code into smaller
files and load them dynamically.
d) All the options are crucial for preventing SQL injection. - answer
You are using an Advanced Query to retrieve data. How can you
prevent SQL injection vulnerabilities? a) Use EncodeSql for inline
parameters. b) Validate user inputs before including them in the
query. c) Use parameterized queries instead of concatenating
strings. d) All of the above.
b) Archiving to a separate Entity improves the performance of the
main Entity. Indexing a large Text attribute might not significantly
improve performance and can slow down writes. Compression can
help but adds complexity. Deleting data might not be desirable for
auditing. - answer You have an Entity with a large Text attribute
that stores historical data. Users rarely need to access this data.
What is the recommended approach for managing this data? a)
Keep the data in the same Entity and add an index to the Text
attribute. b) Move the historical data to a separate archive Entity.
c) Compress the Text attribute to reduce storage space. d) Delete
the historical data after a certain period.
b) Advanced Queries are optimized for bulk operations. For Each
loops are less efficient. Server Actions adding a layer of
abstraction don't provide the same level of performance as direct
SQL. Aggregates combined with Entity Actions are also less
efficient for bulk updates. - answer You need to perform a bulk
, update operation on a large dataset. What's the most efficient
method? a) Use a For Each loop and update each record
individually. b) Use an Advanced Query with an UPDATE
statement. c) Use a Server Action to iterate through the records
and update them. d) Use a combination of Aggregates and Entity
Actions.
c) Modifying the API is the most efficient approach if feasible.
Parsing the entire response is inefficient. OnAfterResponse can't
filter before data is received. Custom extensions add complexity. -
answer You are consuming a REST API that returns a large JSON
response. You only need a few fields from the response. How can
you optimize data retrieval? a) Parse the entire JSON response
and extract the necessary fields. b) Use the OnAfterResponse
callback to filter the response. c) Modify the REST API method to
return only the required fields. d) Use a custom extension to
handle the JSON parsing.
"c) Breaking down the logic allows the Timer to complete within
the timeout, and rescheduling ensures all parts run. Increasing
timeout might mask underlying performance issues. Optimizing is
ideal but might not always be enough. A dedicated server can
help but is a larger infrastructure change." - answer A Timer is
taking longer than its allocated timeout to complete. What's the
best approach to address this? a) Increase the timeout value for
the Timer. b) Optimize the Timer's logic to reduce execution time.
c) Break the Timer's logic into smaller chunks and reschedule. d)
Run the Timer on a dedicated server.
d) All options contribute to optimizing Extension performance. -
answer Your application uses several Extensions. How can you
improve performance in a production environment? a) Disable