Wednesday, August 29, 2018

JTD-DesignerSeries-1-PlatformSkills



Trailhead Developer Modules [Beginner, Intermediate]

I will use my WebServices experience and will try to provide a learning pattern that may be helpful. I read that there are generally 2 approaches to designing interfaces, and there may be others as well, either Top-Down or Bottom-Up. Depending upon where you stand in the enterprise, Architecture or Delivery, you may want to manage a design a bit differently, but my take would be to go through most of the beginner developer modules if not all.

Platform Skills

Let's start by taking the basic understanding of the tools & technologies supported by the salesforce platform.

I. Lightning Experience
Improves productivity & coherence for sales & service teams, and simultaneously provides mobile friendly platform tools.
  1. Lightning Experience is next generation application upgrade for salesforce classic, and team should develop an understanding that transformation analysis is needed for migration from classic to lightning.
[Lightning Experience Basics]

II. Visualforce
UI framework for classic users, and getting supplemented with lightning components in lightning experience.
  1. Develop conceptual expertise of visualforce, complete modules with visualforce skills and deep dive into the visualforce section of developer guide.
[Visualforce Basics]

III. Apex
In Salesforce classic ecosystem, Visualforce components builds the UI layer, and Apex language defines the controller layer (MVC Architecture) that binds the UI to the Data Objects (sObjects).
  1. A programmer should build on the understanding of Object Oriented Principles, and deep dive into ‘how governor limits supports multitenant architecture’, ‘how to use SOQL & DML into apex to interact with sObjects persistence layer’. Apex Triggers enable developers to create processing constructs, and perform pre-processing / post processing logic on database events.
[Apex Basics & Database, Apex Triggers]

IV. Lightning Design System
Enables standard look and feel, required for enterprise applications, by providing components like Grid System, components like Card, Tile etc. It also suggest structured approach to creating different page layouts for salesforce apps.
  1. Lightning Design System supplemented with Remote Objects, Javascript remoting & Rest APIs to access Salesforce Data, helps builds components that can be composed to create apps on lightning platform.
[Lightning Design System]

V. Lightning Components
Simply said, lightning components is powering the lightning experience, rendered on client side just like other Javascript frameworks like Angular / React.

  1. Developers usually create the building blocks by creating component bundles [component, controller, helper...] by applying the design principles like loose coupling, composability. Coarse Grained components can communicate with each other by using platform services like lightning events, attributes, aura enabled server side controller methods.
  2. Lightning Components can then be configured or added to different containers like lightning pages, lightning app builder, salesforce mobile app to provide enriching lightning experiences.
[Lightning Components Basics, Lightning Component Core Concepts, Lightning Components Skills & Tools]

V. Lightning Data Service
LDS simplifies the data management tasks enabling related components to minimize server trips, cacheing data, handling consistency & notifications across multiple components.
  1. LDS can enable CRUD operations by building components that uses force:recordData. force:recordData uses attributes [recordId, targetFields] along with component attribute to retrieve the record of the sObjects.  
[Lightning Data Service Basics]

VI. Lightning Apps
Lightning Apps is a container service with standardization of lightning experience, which can be configured to provide custom branding & navigation. Lightning Apps can be composed from building blocks like Object tabs, lightning pages, standard & custom lightning components to provide rich functionality to users.
[Lightning Apps]

VII. Lightning Flow
Lightning Flow provides guided experiences, process automation & approval functions with tools like Process Builder & Cloud Flow Designer.
  1. Event based record changes, sending emails or chatter integration can be handled by creating simple processes using Process Builder.
  2. Cloud Flow Designer can enable complex tasks like guiding users through different visuals, passing collections as variables. Flows can be distributed through flow components & monitored through flow interviews.
[Lightning Flow]

Designer Aside
a) In classic upgrades, start reusing the lightning tools gradually for the new functionality and perform analysis & testing on existing functions to document feasibility analysis.

Links & References
a) https://trailhead.salesforce.com/modules/lex_migration_introduction
b) https://trailhead.salesforce.com/modules/visualforce_fundamentals
c) https://trailhead.salesforce.com/modules/apex_database
d) https://trailhead.salesforce.com/modules/lightning_design_system
e) https://trailhead.salesforce.com/modules/lex_dev_lc_basics
f) https://trailhead.salesforce.com/modules/lightning_data_service
g) https://trailhead.salesforce.com/modules/lightning_apps
h) https://trailhead.salesforce.com/modules/business_process_automation

No comments:

Post a Comment