Naming things: Phobos Programming Guidelines Propsal

Michel Fortin michel.fortin at michelf.com
Wed Jul 29 08:15:55 PDT 2009


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?


-- 
Michel Fortin
michel.fortin at michelf.com
http://michelf.com/




More information about the Digitalmars-d mailing list