2 ms·
Great stuff! My suggestion is to really leverage the possibilities opened up by the design choices that make Dark different - the structural editing and db/infr
by shalabhc 7y ago
Great stuff! My suggestion is to really leverage the possibilities opened up by the design choices that make Dark different - the structural editing and db/infra/editor integration. E.g.:
- Have multiple projectional views of the system, triggered on keypress, e.g. caller context, database context, handler context. So if I'm editing a function I should be able to see the handlers that are affected, also the call stacks up and down, even show function calls inlined, current live errors overlaid, etc.
- Easy example based testing. Can I just click on a function, type input values at the top, then dark shows my intermediate values and output, and then I mark a 'check' on this trace to stamp it as a test case? Then every related change (or a special button) runs affected tests and I can see what's failing. I didn't see any testing in the demo.
- History of each function, each handler, each table - absolutely need this, with 'blame'.
- Immediately live is nice but really you want to roll out some related changes together, and a 'diff' of a snapshot against another one is great. I should be able to see the db diff, the function diff and handler diff in one integrated view. Should be able to 'label current version', in addition to auto-save.
- Annotations - these should be allowed everywhere. I assume functions, AST nodes, tables, columns etc are already reified, so I should be able to link to them in free form annotation comments that I may put in the code or just floating around by themselves. Documentation needs to be integrated as well. At the very least I should be able to link to a function or table via an external hyperlink.
- A standard CRUD UI for DBs should be available.
- shalabhc 7y agoOne more for ya. - DB/field annotations for privacy - given it's 'one integrated system', can we attach a privacy attributes to fields or db and automatically hide them everywhere (even in the dev view?)
- pbiggar 7y agoGreat suggestions, you'll be happy to know many of these are on the roadmap, and some have already been done! > Have multiple projectional views of the system, Some amount of this works already (you can see callers and callees, you can see the DB schema); we want a callgraph view for sure, and I like the idea of seeing the handler at the bottom of the call stack. > Easy example based testing Yes, this is planned to work similar to traces, and it should be trivial to turn a trace into a test > History of each function, Yup, planned > 'diff' of a snapshot against another one is great. Planned, but low on the priority list compared to the other stuff you've mentioned. > Annotations Planned. We've implemented some grouping (similar concept but obviously different use cases to tagging). Some of these annotations would be automatic or semi-automatic. > A standard CRUD UI for DBs Planned :) > DB/field annotations for privacy We plan two aspects to this. There is the "PII indicator" which says this is PII and shouldn't be logged at all. Then there's access-control lists where we decide who (if anyone) can view certain attributes (eg: this dev is a contractor, do not show them live values). Thanks for all the suggestions!