41
How do you manage code snippets?
(lemm.ee)
Welcome to the main community in programming.dev! Feel free to post anything relating to programming here!
Cross posting is strongly encouraged in the instance. If you feel your post or another person's post makes sense in another community cross post into it.
Hope you enjoy the instance!
Rules
Follow the wormhole through a path of communities !webdev@programming.dev
I create proper libraries. I don't do snippets because they make code dirty, redundant and difficult to read on the long run.
I actively discourage people in my team to use snippets copy and pasted everywhere themselves. If it's reusable code, it should be usable by everyone and well tested
This. Replace commonly used code snippets well written code that reduces them to one or two lines of code and take advantage of auto-complete in your IDE.
For the rare case where that doesn't make sense... I'm I'll ususally find (or create) an extension/plugin for my IDE. Something that can be smarter than any snippet.
The only case I use snippets for is for debug code that I use often. Sometimes there are things I find myself doing a lot for debugging that don't have any reason to be in code (e.g. nicely formatting certain objects for debug purposes)
Write a function or macro so you can reuse them. The project I work on has dozens of debug assisting code paths. Here are two examples: normally when talking to the db you'll call
run($sql, $boundVariables)
on a handle. Alternatively you can calldebug($sql, $boundVariables)
to have the handle run the query normally then rerun the query prefixed withEXPLAIN (blah,blah)
to get the execution plan. We also haveassembleEmulatedQuery($sql, $boundVariables)
which will manually replace all the binding tokens in the SQL with their values, do some string escaping and return a big honking string that you can dump into the database... that last one is useful for performance tuning since it can be used to easily capture expensive query forms. Also - assembleEmulatedQuery will throw an exception on our production environment because it's unsafe due to the potential of SQL Injection.Build debugging functions and add tests over them - future you will thank you!