lcolladotor / dots

6 stars 1 forks source link

Current best practices for ellipses? #1

Closed whtns closed 3 years ago

whtns commented 5 years ago

Hi!

I came upon your package after seeing the checkDots function in the Seurat package and googling around. I see that it's been a little while since you've updated here and I'm struggling to formulate a good search term. Do you still think that this package, dots, is the best approach?

Thanks!

lcolladotor commented 3 years ago

Hi @whtns,

Sorry for the very very late reply. I'm just going through https://lcolladotor.github.io/pkgs/ and noticing open issues.

dots is no longer actively maintained though I still use some of the key ideas behind it on Bioconductor packages such as derfinder (which motivated me to write dots back in the day). Spencer @snystrom recently developed https://snystrom.github.io/cmdfun which might be of interest to you. Inside of it, it also plays around with ... and does something similar to dots. cmdfun is actively maintained and Spencer is super responsive. So you might want to check his code or talk to him.

Overall with ..., it gets tricky because you might be hiding useful arguments from users, so you still have to explain them maybe in the details section of the Rd files. However, it can make it easier to pass arguments to other internal functions. At Bioconductor, they are now recommending functions to be 50 lines of code in length or shorter, to promote modularity.

Best, Leo

snystrom commented 3 years ago

I agree with Leo, ... should really only be used to pass parameters to internal functions (like if you wrap someone else's R function, then you can say in the docs "... any parameters passed to [link other function]"). Otherwise, I like to keep functions < 3 arguments (this clean code guideline is written for python, but generally applicable: here).

Happy to discuss more at https://github.com/snystrom/cmdfun/discussions.

whtns commented 3 years ago

These were both very informative. cmdfun looks useful. Thanks for your responses!