koalazak / rest980

REST interface to control your iRobot Roomba 980 via local server on your lan.
MIT License
293 stars 62 forks source link

Does this still work? #79

Closed ZipingL closed 5 months ago

ZipingL commented 5 months ago

I understand that this project was initiated prior to the recent updates to the iRobot app. However, I'm curious, is it still functional? I attempted to run it, but it appears that no API calls are successful since the Roomba is rejecting all connections.

I've also noticed that this package is significantly outdated. Interestingly, I wasn't aware that express handlers could be written in such a unique, or to put it simply, 'artistic' layout of directories and handlers. These handlers seem to be agnostic to absolute paths due to some middleware magic. This is a minor point, but it's worth exploring why this isn't considered a best practice in code writing.

Firstly, using an outdated package can introduce a host of issues. Such packages may harbor security vulnerabilities that have been addressed in newer versions. They might also lack features or enhancements introduced in later versions, potentially limiting your application's functionality. Moreover, outdated packages may not be compatible with newer versions of other software or libraries you're using, leading to possible conflicts and bugs.

Secondly, the 'artistic' layout of directories and handlers you mentioned could cause confusion and inefficiency. While it may seem innovative and unique, it can render the codebase difficult to navigate, particularly for new developers joining the project. It's generally advisable to adhere to a standard, widely-accepted directory structure for a given language or framework. This approach simplifies code comprehension and maintenance.

Thirdly, the practice of making handlers agnostic to absolute paths due to middleware may seem ingenious, but it can result in unexpected behavior and make the code more challenging to debug. Absolute paths are explicit and eliminate ambiguity, which is why they're typically preferred. Depending on middleware to resolve paths can complicate the code and make it harder to understand, especially if the middleware's behavior changes in future versions.

Lastly, it's crucial to clearly indicate on GitHub when repositories are in a state of disrepair. This can be easily accomplished by archiving the repository, which signals that the project may not be operational and might require additional work to restore functionality. Thank you

koalazak commented 5 months ago

answering your question: yes.