-
-
Notifications
You must be signed in to change notification settings - Fork 13
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Better UX for DNS #12
Comments
That's fairly brittle since we already support a non-standard |
Cant we just limit this logic to dns? It wouldn't affect any other command. I just think that the UX benefit from this would be really worth it and make switching to our tool a lot easier. It literally becomes a drop-in replacement of dig |
Even though this command is unlikely to be used, there are so many edge cases to account in arg and flag parsing that the complexity would exceed the code written for the CLI already. For example, I cannot differentiate between Or having two flag parsing systems. Which one takes precedence in resolver here? Etc. Perhaps more shorthand flag usage would be an acceptable compromise? |
The --resolver part is not needed because thats the @9.9.9.9 part. So it would be something like this You can hardcode "+trace and +tcp" and look them as is without parsing every single + parameter. These are the only 2 flags, so no need to go through the whole spec.
Got an example? |
We still have to account for weird combinations like that.
That makes sense. Although I think it hugely defeats the purpose of making the command simpler to use if we are mixing dig flags, usual CLI flags and
Admittedly, it isn't super pretty. But I still feel a little on the fence about introducing a completely different format since it feels like unnecessary complexity both on the user and codebase. |
We're inventing a new format basically, as simple as it is it will never be simpler than what the user already knows. I think dig has the most unique format that most people are used to. The examples are just shorter, but they do nothing to help with the experience. My point is not that the current format is too long, but that it would be a lot easier for someone to start using us if we supported a familiar format.
How complex it would be? From my point of view it's basically a few hardcoded aliases. |
I disagree since giving users more options to achieve the same results makes things less simple. It's more complex because the user has to understand there are two ways to do the same thing. You'll have to write extra documentation for the quirk. If they want to use any of the other GP commands, they will have already learnt the regular format. I feel we should get more opinions on this to see if maybe my perspective is wrong here. If we implement this, it won't be very easy to revert once this tool is more popular. Will also add the shorthand flags for those who do want the convenience of typing less.
Now that I think about it more, yeah resolver and the two flags should be simple. As for choosing the DNS type, if we enforce an order such as |
I see the benefit here but have two concerns:
|
It should be as simple as this I think.
As a compromise we could also globally replace --resolver 1.1.1.1 with @1.1.1.1. That parameter is the most used dig parameter anyway. |
@didil What are your thoughts as an unbiased new user of the CLI? |
@jimaek a few comments:
|
|
It's a weird format no other CLI uses, hardly human friendly. Chatbots and command line tools are entirely different categories, and trying to match their format is just confusing. That said, I'm not much in favor of adding the dig format, either - it would add confusion over time as well. |
Lets start by adding an alias for |
How about we allow 2 formats? The current one and the dig format.
Current
globalping dns google.com --resolver 9.9.9.9 --type A --trace --protocol tcp
Dig format
globalping dns google.com @9.9.9.9 A +trace +tcp
This means the user doesnt have to learn a new format and just use the dig that everyone is used to.
The text was updated successfully, but these errors were encountered: