You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
I still don't feel qualified to provide feedback yet, but here are a few things I've been thinking about as I've been playing around with Dark off and on in the last two weeks. I haven't spent nearly enough time in the docs and haven't joined the Slack yet, so if any of these are already addressed there, I apologize.
I really like the ability to get onto any computer and pick up right where I left off (without needing to setup a dev environment). I didn't initially realize how convenient this would be.
The combination of trace driven development and the structured editor provides a very fast feedback cycle, which is enjoyable to work with.
While I like the structured editor, I'm realizing the way I approach writing code from scratch isn't very structured, so I often feel like I'm fighting with the editor. However, I saw in your February update the ability to press Alt+X (I primarily use Windows) and to wrap statements. This has been helpful. Times I feel like I'm fighting the editor are when I am trying to add anything to the beginning of a line or a function. For example, I was writing a function to extract the payload from a JWT and I started like this
String::split "." token
Then I realized I wanted to use a pipeline, so I wanted to move token to the line above, and then have String::split "." be the first part of the pipeline below it. So I deleted "token", pressed "Home" and then and the editor looked like this:
let _ = _
String::split "."
So I selected the top line (holding and pressing ) and then tried to type "token". Instead of replacing the let placeholder, the editor deleted it the line, put me back at the start of the String::split line and wouldn't allow me to type.
In instances like that, I find myself just deleting everything in the function and starting over. I feel like this is probably more of an issue with the way that I write code, but I find it happening pretty frequently.
4. Application environments - will there be the concept of different application environments (dev, staging, production) or is this supposed to be completely managed by feature flags?
5. Shared code - I remember seeing you or someone at Dark talk about this, but I cannot find it now. If I have a bunch of common functions (similar in scope to the built-in functions) will there be a way to share those between canvases?
6. Application secrets - where should I store application secrets (ie: API keys, certificates, etc)? Should I use a service like Azure Key Vault and make an HTTP request or does Dark plan on adding support for secrets?
7. Caching - I'm pretty sure this is part of accidental complexity, but maybe I'm wrong. Do you plan on adding support for caching or is this going to be implicitly built into the language/infrastructure? For example, I'm working on a user service that uses Open ID Connect. I need to fetch and cache the discovery document and public keys. Can I trust the built-in HTTP client to respect the cache headers it receives in the response to GET the document or should I be throwing that document in a DB with other cache type things? If I do that, I then need to handle expiration myself, etc. Just wondering if you have discussed/thought about this topic.
8. Application lifecycle - since the infrastructure is all abstracted away, an application doesn't really seem to have a lifecycle (ie: starting up, started, shutting down, etc). If I had code that I wanted to run once on application startup, would I put that in a cron job, run it once manually, and then schedule it to run whenever I need it to? I'm likely thinking about this incorrectly, as I should probably view a canvas as more of a functions style application rather than a traditional web application.
9. VIM emulation - it would be awesome to have a basic VIM emulation for the structured editor. This isn't important, but I do prefer to move around code this way.
reacted with thumbs up emoji reacted with thumbs down emoji reacted with laugh emoji reacted with hooray emoji reacted with confused emoji reacted with heart emoji reacted with rocket emoji reacted with eyes emoji
-
A user says:
Beta Was this translation helpful? Give feedback.
All reactions