this post was submitted on 25 Nov 2023
40 points (95.5% liked)
Programming
17492 readers
36 users here now
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
Rules
- Follow the programming.dev instance rules
- Keep content related to programming in some way
- If you're posting long videos try to add in some form of tldr for those who don't want to watch videos
Wormhole
Follow the wormhole through a path of communities !webdev@programming.dev
founded 1 year ago
MODERATORS
you are viewing a single comment's thread
view the rest of the comments
view the rest of the comments
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!