Hacker News new | ask | show | jobs
by typicaljoe 5390 days ago
Ideally build some of your main functionality as an extensions. You'll quickly discover pain points if you have to live with the same API and contexts as a 3rd party. I just recently rewrote TaffyDB to a version allowing extensions and a key goal was to build most if not all of the public default methods as extensions.
2 comments

Thanks for the suggestion. The system is already mostly module-ized with a few glaring exceptions that need to be fixed.

My big problem is how do I let customers modify the modules themselves, without actually modifying the module? E.g. I'd like to some how give them the ability to, say, add company specific fields to the pre-existing User module and database, without actually modifying the User module source. I'm not sure how to handle the database.

This is the goal for me so future updates can be seamless, no matter how extensively customized their actual version of the application is.

Agreed, eating your own dog food is a great way to find pain points in your api.