Skip to content
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

Develop abstract drone interface #5

Open
friend0 opened this issue Oct 8, 2023 · 0 comments
Open

Develop abstract drone interface #5

friend0 opened this issue Oct 8, 2023 · 0 comments
Assignees
Labels
enhancement New feature or request

Comments

@friend0
Copy link

friend0 commented Oct 8, 2023

Although this repository is named ST-DroneInterface, there aren't any real interfaces implemented.
Instead, most modules prefer a script-based runtime more common in experimental settings.

In software engineering, abstract interfaces are used to generalize functionality while hiding implementation details. In script-based implementations, developers are overexposed to the complexities of implementation when they may only need to understand high-level behaviors.

In order to make this code as reusable, grokkable, and testable as possible, I propose the implementation of an abstract Drone interface. The interface will define high level behaviors that maximize utility.
Once the definition of the interface is complete, we can do a concrete implementation class called STDrone that performs all the actions defined by the interface using code already written in this repository.

This is critical, foundational work that needs to happen before any further development occurs.

User Story:

As a drone controller developer
I only want to interface with high-level drone functionality without being concerned about implementation details
So that my code will work across all concrete drone implementations seamlessly
And so that I can test my code against simulated environments.

@friend0 friend0 added the enhancement New feature or request label Oct 8, 2023
@friend0 friend0 self-assigned this Oct 8, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

1 participant