[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