Naming things: Phobos Programming Guidelines Propsal

Ary Borenszweig ary at esperanto.org.ar
Wed Jul 29 08:24:18 PDT 2009


Michel Fortin wrote:
> On 2009-07-29 10:53:59 -0400, Ary Borenszweig <ary at esperanto.org.ar> said:
> 
>> Michel Fortin wrote:
>>> It's interesting how the property debate is moving towards expressing 
>>> semantics and how sometime the English language doesn't express 
>>> things clearly -- empty (state) vs. empty (action) comes to mind.
>>>
>>> Now that the debate is moving towards how to name things, perhaps it 
>>> is time we establish a clear set of guidelines. Here's my attempt at it:
>>> <http://prowiki.org/wiki4d/wiki.cgi?DProgrammingGuidelines>
>>>
>>> It obviously lacks a few things, and doesn't fit half of today's 
>>> Phobos very well. But I hope this document can bring some consistency 
>>> to Phobos and other D projects. Feel free to discuss and improve the 
>>> document as you see fit.
>>
>> There's a paradox. :-P
>>
>> You say a class' name should be a noun. And you say a class' name 
>> shouldn't repeat it's base class name.
>>
>> Say you have an Action class, very common in UI toolkits and things 
>> like that. Now you have an action to connect two things. Two 
>> alternatives:
>>
>> 1. class Connect : Action {} // wrong, Connect not a noun
>> 2. class ConnectAction : Action {} // wrong, repeats Action
>> 3. ...?
>> 4. The universe expolodes.
> 
> I'd go with "ConnectAction" to make sure there's a noun. The rule 
> following the "don't repeat the base class name" one is aimed at 
> allowing this specific usage. It says:
> 
> """
> It is fine to repeat the base type name in the derived type name if the 
> derived type is only a specialization having the same function:
> 
>     class RemoteObject : Object { } // right
>     class TcpSocket : Socket { }    // right
> """
> 
> Obviously it doesn't seem too well worded. Any alternative suggestion?

I like it like that. It's a good rule. :)



More information about the Digitalmars-d mailing list