[Development] Signal naming convention (was: A modest proposal: disable lower-case keywords...)
Max Paperno
max-l at wdg.us
Fri Feb 28 20:37:37 CET 2020
I humbly suggest, in general, that a signal name could be prefixed with
"sig", "sig_", "signal" or "signal_". "sigEmptied()" doesn't look
horrible IMHO, and should work semantically with any verb. Using
prefixes to signify meaning already has some precedence in C/C++ world
as well. And lastly even "dumb" syntax highlighters could pick up on
that pretty easily (even w/out access to, or needing to parse, any
header files to determine what is a signal), though of course there
could be "false positives" for any other words starting with "sig" (like
"significantElements()" :) ).
As a Qt user and frequent reader of other people's code (like on
StackOverflow for instance to answer questions, git repos, code reviews,
e-mails, etc, etc), it's clearly useful to know that a method call is a
signal vs. anything else. I'd rather not have to remember that "hot pink
color on SO highlighter" means it's a signal (and in many cases there's
no way for a highlighter or basic text editor to even determine that).
Cheers,
-Max (returning to lurk mode)
(This is not a reply to anyone in particular, just quoting the most
recent relevant bits below.)
On 2/28/2020 4:34 AM, Edward Welbourne wrote:
> On Thursday, 27 February 2020 21:51:18 CET Matthew Woehlke wrote:
>>> Taking a step back... I think some of the reason for the current
>>> situation has to do with API design. Which of these is easier to understand?
>>>
>>> if (map.empty())
>>> emptied();
>>>
>>> - vs. -
>>>
>>> if (map.isEmpty())
>>> emit emptied();
>>>
>>> One reads like plain English. The other is missing words in a way that
>>> can confuse readers.
>
> Allan Sandfeld Jensen (27 February 2020 23:03) replied:
>> That is how I see it too. It essentially violates Qt code guidelines. If it
>> was a normal method we would name it "emitEmptied()", so far we have just
>> lived with "emit emptied()" instead.
>
> Indeed; most of the case for "emit" can be answered by a sensible naming
> convention. Even the case of "functions that trigger signals" can be
> handled by that, when it really matters.
More information about the Development
mailing list