[Ctk-developers] Libs/DICOM/Core/ctkDICOMModel.cxx : variables names with same naming as method names
Steve Pieper
pieper at bwh.harvard.edu
Mon Apr 12 14:44:37 UTC 2010
Hi Guys -
+1 on good naming conventions for variables (I like Julien's suggestions).
I also echo Julien's point that the coding convention should follow the
conventions of the parent classes. So code that inherits from vtkObject
should be VTK-style, QObject code should be Qt-style, etc. This will
follow the 'principle of least surprise' for a developer who picks up a
ctk Qt widget and wants to use it in their Qt code.
-Steve
On Apr/8/10 6:43 PM, Luis Ibanez wrote:
> Julien,
>
> I like your suggestion better than mine.
>
> The three approaches that you mentioned will
> make code much readable and maintainable.
>
> It will be nice to collect coding style guidelines
> somewhere... at least in a Wiki,... or in a text
> file to be included in the git repository.
>
>
> Luis
>
>
> -------------------------------------------------------------------------------
> On Thu, Apr 8, 2010 at 6:31 PM, Julien Finet<julien.finet at kitware.com> wrote:
>> Agree, I'm not a big fan of the 2 solutions you gave though.
>> When I remember to avoid variable shadowing, I have a couple of tricks to
>> rename problematic variables:
>> for example a variable named "row" could be renamed as:
>> - indexRow / itemRow / cellRow / childRow / parentRow ( who owns the
>> variable)
>> - rowToInsert/rowToDelete (action on the variable)
>> - newRow / oldRow / tmpRow ( lifetime of the variable)
>> - ....
>> There is almost always one prefix or suffix that can be added and gives more
>> information about the variable.
>> Julien.
>> On Thu, Apr 8, 2010 at 6:15 PM, Luis Ibanez<luis.ibanez at kitware.com> wrote:
>>>
>>> I see,
>>>
>>> It is too bad that Qt got satisfied with a lower quality bar.
>>>
>>>
>>> We can still avoid having local variables with the same
>>> names as member variables and member methods.
>>>
>>> For example,
>>> many of the offending warnings were fixed by replacing
>>>
>>> ambiguousvariablename
>>>
>>> with
>>>
>>> ambiguousvariablenameValue
>>>
>>> we could have as well used the more arcane
>>>
>>> ambiguousvariablename_
>>>
>>>
>>> Making good choices on names of methods, and variables
>>> is a an effective way of documenting the code.
>>>
>>>
>>> Luis
>>>
>>>
>>>
>>> -----------------------------------------------------------------------------------
>>> On Thu, Apr 8, 2010 at 6:08 PM, Julien Finet<julien.finet at kitware.com>
>>> wrote:
>>>> Hi Luis,
>>>> I understand your concern.
>>>> We can't change the name of the method index() as it is a virtual method
>>>> that has been declared in a Qt subclass.
>>>> And the problem we face here is that the Qt library doesn't care about
>>>> shadow variables. (and if I recall, they didn't plan on changing that).
>>>> We unofficially decided during the CTK Pre Hackfest that a CTK class
>>>> should
>>>> follow the naming convention of its derived class, Qt in this example.
>>>> Is that still OK for everybody ?
>>>> Setting up KWStyle seems like a good idea. Can we configure it in a way
>>>> to
>>>> check a style depending on a filename (ideally the style of the derived
>>>> class)
>>>> Julien.
>>>> On Thu, Apr 8, 2010 at 5:50 PM, Luis Ibanez<luis.ibanez at kitware.com>
>>>> wrote:
>>>>>
>>>>> I recall that at some point we discussed a
>>>>> naming convention for Qt-like classes, but
>>>>> I'm not sure if we arrived to a consensus.
>>>>>
>>>>>
>>>>> The file:
>>>>>
>>>>> Libs/DICOM/Core/ctkDICOMModel.cxx
>>>>>
>>>>> had an abundant use of local variables with
>>>>> names matching some member variables and
>>>>> member methods.
>>>>>
>>>>> A notable example:
>>>>>
>>>>> "index"
>>>>>
>>>>> I just committed a fix for most of them,
>>>>> but for the long run it will be great if we
>>>>> agree on some naming convention.
>>>>>
>>>>> I would vote against having a method of a C++ class
>>>>> to be called "index()" for example. :-)
>>>>>
>>>>> a more useful name will be "getIndex()", for example,
>>>>> or in this particular case, it looks like what the function
>>>>> is actually doing is generating an index, so good names
>>>>> could be
>>>>>
>>>>> ctkDICOMModel::generatgeIndex ( int row, int column, const QModelIndex
>>>>> & parentValue ) const
>>>>>
>>>>> or
>>>>>
>>>>> ctkDICOMModel::computeIndex ( int row, int column, const QModelIndex&
>>>>> parentValue ) const
>>>>>
>>>>> or
>>>>>
>>>>> ctkDICOMModel::produceIndex ( int row, int column, const QModelIndex&
>>>>> parentValue ) const
>>>>>
>>>>>
>>>>> There is already another
>>>>>
>>>>> createIndex(int, int, Node *)
>>>>>
>>>>>
>>>>> so it will be fine if we use
>>>>>
>>>>> ctkDICOMModel::createIndex ( int row, int column, const QModelIndex&
>>>>> parentValue ) const
>>>>>
>>>>> since the signature will be different.
>>>>>
>>>>>
>>>>> ---
>>>>>
>>>>>
>>>>> Do we have a document on coding style ?
>>>>>
>>>>> if we do,
>>>>> we probably should setup KWStyle testing
>>>>> before things get out of control.
>>>>>
>>>>>
>>>>>
>>>>> Luis
>>>>
>>>>
>>
>>
> _______________________________________________
> Ctk-developers mailing list
> Ctk-developers at commontk.org
> http://public.kitware.com/cgi-bin/mailman/listinfo/ctk-developers
More information about the Ctk-developers
mailing list