rusackas commented on issue #35655:
URL: https://github.com/apache/superset/issues/35655#issuecomment-3433660513

   Agreed, memoization is key. 
   
   While I don't _personally_ know if this step requires a SIP, _per se_, since 
it's essentially a foundational step toward making our frontend codebase just 
_actually USE React_ like it should have for years :) That said it's a great 
place to discuss this for now, so maybe I'll take a moment to say where I think 
this effort probably leads (with a SIP along the way, when we get to the point 
of adopting new packages/architecture).
   
   So where I believe this ought to go in future steps is as follows:
   1) Get rid of all the sting-based controls in favor of components with props 
wherever needed
   2) Get rid of the config object controls in favor of props based on the 
current config options
   3) Get rid of this array-of-arrays layout method in favor of something like 
JSONForms (this would need a SIP)
   4) Add a proper state management layer around these JSONForms-driven control 
panels
   5) Make sure that all control panels use standardized sections/layouts, so 
they're all consistent
   6) Add proper linting/testing to make sure people stick to the pattern
   7) Update developer docs so people know how to build these things going 
forward
   8) Consider this pattern for adoption in other forms throughout Superset 
(Alerts & Reports, database connection modals, etc)
   
   Somewhere along that roadmap, there's a very intricate step: we should also 
standardized FormData so that control panels don't have their current 
misaligned contols/keys (metric, metrics, secondaryMetric, etc... there are 
lots) so that our schemas used to build charts and queries are all consistent 
for both DevEx and AIEx.
   
   Long ramble, but what you're up to here is VERY important. Just... start 
small... hammer on bits and pieces in small PRs to make sure our patterns don't 
run into unexpected roadblocks or snowball to any giant PRs that are hard to 
merge :D 


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to