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

Reply via email to