• 0 Posts
  • 24 Comments
Joined 1 year ago
cake
Cake day: June 26th, 2023

help-circle



  • For those of you who’ve never experienced the joy of PowerBuilder, this could often happen in their IDE due to debug mode actually altering the state of some variables.

    More specifically, if you watched a variable or property then it would be initialised to a default value by the debugger if it didn’t already exist, so any errors that were happening due to null values/references would just magically stop.

    Another fun one that made debugging difficult, “local” scoping is shared between multiple instances of the same event. So if you had, say, a mouse move event that fired ten times as the cursor transited a row and in that event you set something like integer li_current_x = xpos the most recent assignment would quash the value of li_current_x in every instance of that event that was currently executing.




  • A docstring is a comment that is used to annotate types/methods/classes/whatever and can be parsed by the IDE and used to provide various hints/assistance when writing code. Tooltips, parameter type suggestions, intellisense, etc. for things that aren’t native parts of the language all usually come from or can be supplemented by docstrings.

    The specific format of a docstring varies by language, but many of them prefix meaningful tokens with an @, like @type or @param.

    However, if your project is using GitHub it’s also quite common to mention users in comments by prefixing their username with an @, so several vscode GitHub extensions will make any “@{real username}” in a comment into a link to that user, which will show a small user tooltip when hovered.

    Edit: I appear to have conflated docstrings and docblocks, but then so has the initial post. I guess at some point “docstring” has just taken over to colloquially refer to all of it.





  • As someone in the dev team for a “business app”, we probably know about most or all of them, but they’re just not important enough for anyone in management to prioritize them as part of a sprint. It’s also possible no one has given us reproducible steps to make them happen, so we just straight up don’t know what to fix. Usually the former though.