Comments (8)
Some notes from my experience so far:
- Initially, it was confusing that many things in files that are in very different locations in the code base refer to each other.
- Perhaps explain more the organization strategy behind the different main sections, like "commonUI" vs "core".
- This may be just me, but there are often long chains of related functions calling each other, and when I had to modify the behavior, I had a hard time remembering to look for the highest level function in the call chain to change. I also sometimes had a hard time finding the connections between the functions. But, that is important because the implementation of the functions along the chain may change later.
- One very helpful thing that you could add might just be documentation that is not in paragraph format like in the current developer guide. I would just like a list of all the functions and members of each kind of object there is, and descriptions of what they are and how they're used.
- Also, the current developer guide pdf's words that are in 'code font', rather than the normal text, are not searchable. (Depending on the pdf viewer.)
- I do appreciate that there is some example code.
- I am still slightly confused about what "domainObject" refers to in different situations.
- The tutorials are helpful, but only really for designing new views. It doesn't help much with gaining understanding of how the other parts of the application work.
- The general idea of 'telemetry' in this context is kind of confusing. It is hard to figure out what the difference between the various ways of dealing with telemetry are. e.g., what is the difference between just "Telemetry" and the "Telemetry Service"? There are many "Telemetry Thing"s which seem related, but in an unclear way.
This is just stuff off of the top of my head, and also I have no idea if these apply to everyone.
from openmct.
I found another instance where the developer guide can be confusing.
For action contexts, all that the guide says about them is that "An action context is a JavaScript object with the following properties:
- domainObject: The domain object being acted upon.
- selectedObject: Optional; the selection at the time of action (e.g. the dragged object
in a draganddrop operation.)"
But, I have found instances which refer to action contexts having other properties. The implementation of getActions takes an action context, and uses context.category and context.key.
from openmct.
Here are just a couple pain points:
- No guide for the UI and front end for the HTML/CSS part of Open MCT Web. Not sure if this is applicable or needed for developers, however would be helpful to any front end development
- Found it difficult to follow the plot controller & subplot functions/features, such as zooming.
- If the developer guide could have for references to which files or functions are key for gestures, browse navigation, etc it would be helpful for future developers as a place to start looking. I found it occasionally difficult to find which files or functions I wanted at first.
from openmct.
Marking resolved - considering this feedback now in the context of #69
from openmct.
Reopening to solicit additional feedback from @akhenry; would like to get some first impressions
See also #69
from openmct.
Some random thoughts
- The path that data takes from telemetry source to visualisation is a little arcane. I've implemented a new telemetry source now (the public MSL REMS data) and I'm still not confident I completely understand how a plot gets telemetry from providers.
- The dependency management approach makes it difficult to follow a dependency to its source. A component declares a dependency by name, but figuring out what that is at runtime can be tricky. After a while you get a feel for where things live, but initially it involved searching all of the bundle.json's to find where that dependency is defined. This is a problem more broadly with dependency injection, and this approach does have its strengths, but it can make following the code difficult.
- Generally speaking, there is quite a lot of indirection and abstraction in the framework. Again, it makes for a really powerful and extensible platform, but it does make the learning curve pretty steep.
from openmct.
Representations and views are confusing for a new developer. Can we combine these or do away with them entirely?
from openmct.
Completed in context of #263
from openmct.
Related Issues (20)
- [PreviewAction] Use API instead of importing PreviewAction.js HOT 1
- Feature to create generic conditional sets for telemetry which can have fixed enum values. HOT 4
- Paste frequently does not work in notebook entries HOT 1
- Remove all usage of deprecated Time API methods HOT 4
- [Time List] Expanded Mode does not handle small horizontal spaces well
- Plugin for batch creation of condition sets and widgets
- Bundle the web workers HOT 7
- Condition Sets don't allow removal from their composition HOT 4
- `renderWhenVisible` console error on quick navigation away from complex display HOT 1
- No view labels in historical data action view HOT 1
- Add our ROS plugin in the Community Section of the OpenMCT page
- [Conditional Styling] Visibility option on Conditional Styling is broken HOT 2
- The HTML example doesn't work if I import the dist openmct.js file via node_modules HOT 5
- String filters on Views seem to work for HIstorical telemetry but not for Realtime telemetry
- A way to exclude default plugins?
- [Example User Plugin] Unable to pass in just one argument, out of order method call
- Synchronize time conductor feature for plots not working
- Lost Time conductor clocks/time system compatibility checks
- "Save to Notebook Snapshots" button appears in the main view even if the Notebook plugin isn't installed
- Plots are respecting independent time context settings, even if not enabled
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from openmct.