I'm aware that I'm opening a can of worms, but can we discuss PHPMD
rules?
I think those were never actually discussed, we just run then in Jenkins. So I think it's good idea to discuss coding style beyond indentation and whitespaces.
In particular, I find that to obey the maximum variable name (20 characters) rule, one has to sometimes abbreviate at the expanse of
clarity.
I think this is quite connected to line length as well. In case you have longer variable names and stick with current line length, the code will be a bit harder to read due to necessary wrapping, for example:
https://github.com/phpmyadmin/phpmyadmin/blob/master/libraries/browse_foreig...
I think the length of a variable name we should use is depend on variable scope and complexity of the code segment. Less complexity code segment may have shorten variable name while more complex code segment will have lengthy variable names. Same for the scope as well. I prefer to have bit lengthy variable since it will self describe the code even without the comments.
In case we care on the length, we can use comments on a variable initializing point, which describe the shorten variable clearly. As well as using camel case naming convention will save us from additional underscores ($getEntryById < $get_entry_by_id)
But as a standard we better have a limitation on the length of a variable name. But I think we better keep the limit more than 20 (what about 25 ?)
I agree. But is it possible to change the allowed length ? Here we are talking about PMD ( http://ci.phpmyadmin.net/job/phpMyAdmin/910/pmdResult/type.811406648/), so I believe that we can't…
Does that mean we must follow these PMD rules? Btw, I think customizing a PMD rule should be possible. Information in the documentation [0] will be useful for find that out. But I have no idea on how PMD works with Jenkins.
I see two possibilities here:
- abbreviate variable names (would make them even more difficult to
understand)
- improve the logic (I'll work on this case :) )
Looking at current long variable names, I see following patterns:
- pma prefix, is that really needed? [1]
No.
- return values from function called $something_somewhere_html, using just $result might be even better to understand in this context [2]
Agreed, when it's inside a function.
- some variables still being used as globals, thus needing to provide too much context in their names [3]
Usually a hint that this code segment needs refactoring.
- some probably legitimate usages of long name [4]
Agreed.
[1]:
https://github.com/phpmyadmin/phpmyadmin/blob/master/view_create.php#L95
[2]:
https://github.com/phpmyadmin/phpmyadmin/blob/master/libraries/DisplayResult...
[3]:
https://github.com/phpmyadmin/phpmyadmin/blob/master/libraries/mysql_charset...
[4]:
https://github.com/phpmyadmin/phpmyadmin/blob/master/libraries/DisplayResult...
[0] : http://pmd.sourceforge.net/pmd-5.0.5/howtowritearule.html