On 7/14/2015 8:23 AM, Benjamin Smedberg wrote:
> Aww, I was avoiding getting into this thread.
>
...
> The argument I am most sympathetic to is that this convention is a
> barrier to new contributors. Making new contributors productive, both
> employees and volunteers, is a very good reason to choose one style over
> another.
I have also avoided getting into this thread, as the whole premise seems
to me to be pretty clueless about what makes Mozilla code difficult for
newcomers.
I think I'm a pretty good authority on experience of newcomers, as I
spend a pretty good part of my Mozilla life tracing out Thunderbird
issues in core Mozilla code that I know very little about. Earlier in
the week it was the addon manager, today it is certificate handling. I
find the same thing over and over again that makes Mozilla code really
difficult to approach when you are not already an expert. And it has
nothing to do with whether you include the "a" in front of method
variables or not.
What is missing? The most basic description of what major functions do,
and how they are supposed to interact with the rest of code. If you
really to be "Making new contributors productive" then require that!
Examples:
1) Earlier this week, it was the addon code. Checkout XPIProvider.jsm No
description anywhere of what this is supposed to do or how it interacts
with other code. Yes there is detailed documentation of some of the
function calls, but nowhere can I understand the relationship of this to
AddonManager, which seems to pretty much do he same thing just from the
titles. Only by hours and hours of tracing out code can I figure out
their relationship (see bug 1183733 for the final result). Documentation
of function calls does not really help when, as a newcomer, you don't
understand the big picture.
2) Currently, looking at some sort of regression in certificate
management with STARTTLS. Look at TCPSocketChild.cpp for example, no
clue anywhere in that file what it is about. Or nsNSSCertificate.cpp no
clue what that really does, and the code does not give any hints.
So if you want to make things easier for newcomers, require that modules
have some sort of overview of what they are supposed to do, and how they
interact with other code. Don't waste time on code churn with style of
existing code.
:rkent
_______________________________________________
dev-platform mailing list
dev-platform@lists.mozilla.org
https://lists.mozilla.org/listinfo/dev-platform