On Habré publish the translation of articles about participation in open source products and it seems that life is full of enthusiasts somewhere abroad. It’s scary for a newcomer to participate in large projects, that he must have curators there and his pull request will go
through all the circles of hell with him.
The experience of a friend, a novice in open source, suggests otherwise. His first pull request
# 11680 was taken to the stellar spring-boot without discussion and without a single comment from the maintainers. His fixes will be available in version 2.0.0.RC1
')
Not gods burn pots. Arguments about the possibility of becoming a contributor to a large project on github ...
The first thing that stops the action of an adult person is fear and insecurity. But what if I can't do it, and what if they do laugh at me — have you ever had such thoughts when you were doing something new for the first time in a large team?
Does this keep the Internet troll from publishing? And what is boxing by correspondence? All these YouTube videobatly seriously? The virtual environment is hardly the project's maintainer - an unbridled psychopath and knows where you live ... Is it
still scary?
Doctors have a joke that there are no healthy people, there are under-examined. Similarly, in the world of open source - there is no perfect code, there is a smell in every module - code smell. How to detect it to a beginner, is the code purity criteria always subjective? There are tools for static code analysis sonarqube, pvs-studio, SpotBugs, code inspection in Idea. Try running them on a familiar project and you will be surprised!
Are you lazy?
Finally, you came up with an “innovative JS framework with widgets”. Do you think, putting it on github, will it be immediately stolen, obfuscated and sold in Skolkovo? I understand that you spent your free time. Imagination draws how you will attract investment and buy yourself a red Ferrari. Do you have a monetization model and development plan for your “secret” project? How popular and unique this idea is. How quickly will the code and idea get out of date? Can the project develop without you?
Sorry to give it away for free?
For some, giving your code to the public domain is a new chance to get an interesting job, bugfixes from the community and feedback from professionals. Of course, this will not happen by itself, and efforts must be made. For me, this is better than the principle "Dog in the hay." Maybe you should take a chance by supplying the project with the necessary viral license?
Returning to the story of
Andrew and his contribution to open source.
We studied together at the university, he is from our department, 3 courses younger than me. With interest I did laboratory assignments in programming and specialized disciplines, I spent my free time behind the compiler and books.
But after the university and the military department he was called to serve. This time from his developer career has been lost. When he returned, it was not easy for him to find a job in his specialty without work experience after university. You cannot gain experience without work; you don't take a job without experience - a vicious circle. A small town where they live with his wife is not replete with IT vacancies. Worked as a sysadmin in a bank. Then, for the sake of working as a programmer, I started driving to work 80km from home. And so far it goes to work ... At work there is absolutely no time for open source - there was a project in a large integrator to dig from fence to lunch. Development and training was mainly in his free time. He is very clever and purposeful, but the resume and the time of service turn against him when he passes through the millstones of HR formalities.
Recently I got into conversation with Andrey and told him about the results of the analysis of the spring boot code in sonarcloud. We occasionally have discussions about technology and the development process.
He offered to help with the improvement of the boot code. He doubted that his pull request would be accepted into such a large project. I recommended him to concentrate on correcting one type of defects and to take into work a not very complex code smell. He chose
"String function use should not be optimized for single characters" .
The essence of this “code smell” is that, in the
java.lang.String object, there are methods
indexOf and
lastIndexOf , which can be called with the char parameter along with String from one character and for the case of a string with one character they work more efficiently.
Not effective:
String myStr = "Hello World";
It is better to write this:
String myStr = "Hello World";
As a result - it slightly improved what many java developers use in their daily work. I hope that Andrei will have the opportunity in the future to improve the open source tools and frameworks that he uses at work with his colleagues!
On Habré, there are definitely people who can help you with advice. So I met
raiym first on github, and then here.
lany talked about the fate of his HuntBugs project and how you can use static code analysis from Idea on the command line.
My main advice to newbies is not to be afraid of open source and try to correct the code “with a nice one”. Follow Andrey's example!
And what keeps you from contributing to open source?