open source thinking
In my 2021 year -end review , I likened participating in open source to watering the trees in an orchard.
Everyone participating in an open source project is more like watering the fruit trees of an orchard together. Those who participate in this open source project belong to this orchard. The difference is that some landowners are responsible for this piece of fruit tree, others are responsible for that piece of fruit tree, sometimes I don't have time, you may water my fruit tree, and I will also help you, so that everyone maintains an orchard together . The fruit tree bears fruit, and everyone also harvests and shares it together.
This is open source from a contributor's perspective, which makes sense, but it's not mature enough.
First of all, everyone loves sweet and delicious fruit, but how does he know that if you water the fruit trees in your orchard, the fruit trees will bear fruit?
Secondly, it is difficult for fruit trees to bear fruit just by watering, and weeding, fertilizing, and pest control are also needed. Everyone likes watering.
Again, it's good for everyone to guard their own fruit trees, why should they water other people's fruit trees? Why maintain the same orchard together?
Finally, after everyone's long cultivation together, the fruit trees finally bear fruit. How can everyone share the joy of harvesting together?
These are the questions I have been thinking about for the past six months. To sum up:
What exactly does it mean to run an open source community?
This article will try to give some superficial answers from the perspective of an open source community operator. If there is anything inappropriate, I hope you will correct me in the comment area, thank you very much!
Motivation for participating in open source
Let’s look at the first question. Why do community developers participate in open source contributions?
Contributors are the most critical to the open source community. Contributors participate in open source projects and continuously contribute to the prosperity of the open source community and the success of open source projects. This is the meaning of the existence of the open source community, without the participation of developers. Community is like a lifeless backwater.
But why should developers get involved in the community instead of doing something else? Why should they be involved in this community and not that community?
Participating in community contribution is a kind of behavior. It is not fundamentally different from the reasons for other behaviors. It is affected by three factors:
- motivation
- ability
- hint
Competencies can be cultivated, tips can be passed on through the technical community, and motivation is what matters.
I think the main motivations for developers to participate in open source contributions are as follows:
- Practice: Use the open source community as a stage for practice, to hone your skills in certain aspects, so as to facilitate future job search or solve problems encountered in current work.
- Socialize: Use the open source community as an opportunity to meet friends and learn from the excellent developers in the community to help you grow quickly.
- Sense of belonging: By participating in the open source community, you can gain a sense of achievement, self-confidence, honor and belonging, enhance your influence, and hope to be recognized and respected by your peers.
- Business cooperation: Obtain business cooperation opportunities through open source communities, promote your own brand or reduce the cost of product development.
practice
In order to add luster to the resume, in order to find a better job, this is the most direct purpose, and probably the motivation for most developers to contact open source in the first place.
Many companies regard participation in open source projects as a bonus when recruiting. In a highly competitive market environment, how can job seekers stand out? In addition to a solid technical foundation, they have participated in well-known open source projects and contributed to becoming a Contributor or Contributor. Committer, this will definitely brighten the interviewer's eyes.
In order to learn new technologies, such as Vue3, TypeScript, component library construction, etc., some developers want to learn a new technology, but the company does not have similar projects to practice. It is a very good choice to participate in open source projects. You can choose yourself Open source projects that you want to learn and participate in, from fixing some document writing errors, to slowly fixing some simple bugs, to becoming a contributor to core features, this is definitely a good opportunity to practice.
The above motivations can indeed attract a large number of contributors, but this is not long-term. After finding a job, contributors are likely to leave the open source community. After the new technology is learned, they will also choose to leave, unless something else attracts them.
social contact
I think social is a very important factor.
Most developers do business in the company, only have access to a limited number of colleagues, and the social circle is generally very small.
They hope to share their insights with others, hope that they can help answer questions when they encounter problems, and hope to get guidance from their predecessors. Everyone has social needs and desires to discuss and communicate, which is not necessarily related to technology.
Although you can communicate with colleagues in the company, and communicate with others in technical communities (such as Nuggets) and various forums, the open source community is a near-perfect platform for communicating technology with people through code and practice.
If you encounter a problem or have a good idea💡, you can discuss it with others through issue; by inspecting other people's code, you can learn what others have done well, find out what others have done poorly, and by providing inspection opinions, let The other party gets the opportunity to improve; the code you write will be reviewed by others and benefit both parties in the same way.
Generally, open source communities of a certain scale will organize some online and offline activities to allow developers to have more connections and promote mutual understanding.
The DevUI open source community has organized a host conference before, and every time they invite some farmers to discuss the idea of component design, or some follow-up plans for the DevUI component library, or to share some new technologies.
This section needs to be maintained and deepened in the follow-up, so that everyone has more opportunities to communicate and learn. If there is an opportunity, I will also make appointments with some offline salons and face bases. Please drink coffee, "a cup of coffee absorbs the energy of the universe".
sense of belonging
Practice and socialize, attract developers to the community and feel good, but it must be something else that keeps developers in the community for a long time.
As developers gradually integrate into the community, they continue to connect with each other and participate in the interaction of the community, which will form the unique cultural atmosphere of the community, which is very important for the unity of developers.
Practicing, contributing, growing, and interacting with people in the community not only gives people a sense of achievement and honor, but also gives people confidence. When your ideas are recognized by the community, your advantages are seen and encouraged. Your kindness is rewarded, and that feeling creates a sense of belonging to the community that makes people want to stay.
The sense of belonging makes people feel that they belong to the community and are a member of it. In the community, their value and potential can be maximized, contributing to the community, making the community better, and helping others grow. This is the mission of the community, and the mission of the members of the community.
Business cooperation
The previous motivations are aimed at individual developers, while commercial cooperation is aimed at enterprise developers. Some enterprises will contribute to open source projects that are closely related to their own business, in order to reduce internal R&D costs through open source co-construction, or improve The competitiveness of their own products.
the other side of the contribution
Code is the core of an open source project. Since there are so many benefits to participating in open source, will developers only want to do the core thing, that is, submit code?
This is a very common problem faced by the open source community.
How many features have been developed, how much code has been committed, seems to be the only thing of real value.
I think it's like the relationship between fruit 🍒 and leaves 🍃.
For a tree🌲, every component is crucial. The roots must be deeply rooted to absorb more water and nutrients, the bark plays the role of protecting and transporting nutrients, and the leaves perform photosynthesis and respiration. The tree provides energy, the fruit provides the tree with the seeds for the next generation, and only when every part is healthy can the tree continue to grow and prosper.
The same goes for the open source community.
- Code is the basis for products to provide services
- Unit tests provide a quality net for the product
- Infrastructure such as CICD improves the efficiency of product development and release
- Code review creates more connections between community members, allowing everyone to learn and grow from each other
- Documentation makes the product more acceptable and usable by users
- Promote articles to spread the product and let more users get in touch with the product
Each link contributes to the success of open source projects and the prosperity of open source communities, and open source communities cannot only have code.
Why collaboration is possible
Participating in open source can also be like developing business in a company. Everyone is responsible for their own modules and has their own one-third of an acre of land, but this actually weakens the power of open source.
The essence of open source is to achieve the exchange and collision of ideas through collaboration, so as to inspire creativity and innovation, but why should everyone collaborate?
I think the reason is openness. Almost everything in open source projects is transparent and open. We can see other people's code, and see what is doing well and what is not doing well. It is precisely because there are bad ones. Or where we are not perfect, we have the opportunity to contribute.
It is sometimes difficult for me to see my own problems. You optimize a little, I improve a little, brainstorm, and work together to make open source projects better.
The other is the cultural atmosphere of the open source community. If the open source community encourages collaboration and communication, everyone will be willing to work together.
Gain and contribution are proportional
In the open source community, everyone is equal, regardless of your nationality, color, gender, age, background, or religion.
In the open source community, we only look at contributions, and whoever contributes the most has the right to speak.
Contribution here is not just code, it includes many aspects. Anything that contributes to the success of the project and the prosperity of the community is a contribution.
Contributions are not formed in a cluster, but are formed slowly over time. Contributions will gradually form the influence of the community with the accumulation of time.
Open Source Summary
Next, let's synchronize some of the achievements made by the DevUI open source community in the past six months.
The most surprising thing is:
- Vue DevUI实现
Table
/Tree
/DatePicker
/Form
,v1.0
版本发布要求 - React DevUI has completed a breakthrough from 0 to 1, and there are currently
32
components - Ng DevUI Weekly Downloads Breakthrough
1000
Nuggets
In the first half of the year, 15 articles were published, and the digging force value increased from 6975 to 9507
. Quickly upgrade Lv5
!
Indicator item | Index value |
---|---|
grade | Lv4 |
number of articles | 113 |
Digging force value | 9,507 |
Followers | 2,446 |
Likes | 5,020 |
number of readings | 448,803 |
The following is the Nuggets content data:
Ng DevUI
Due to the poor Angular ecology in China, Ng DevUI has been open sourced in 2019 to the present, and the data has not been enough for more than 3 years. Although we have worked hard to promote it in the community, we also preached for Ng:
Ng is easy to use, very standardized, and the threshold for getting started is not so high. By the way, you can also learn popular and advanced technologies such as TypeScript and RxJS.
However, there are very few developers participating in the contribution, the number of contributors has never exceeded 20, and the weekly download volume is also on the order of 100 all year round.
As the experience base of the entire HUAWEI CLOUD DevCloud commercial business and many internal services, Ng DevUI has been widely used for five or six years. It is a relatively mature Ng component library that has passed the test of time and a large number of users. Why is it used by so few people? Woolen cloth?
In the first half of this year, a small breakthrough was finally achieved:
Over 1000 downloads per week on npm
Although compared with material-ui
/ ng-zorro-antd
these excellent Ng component libraries in the industry, there is still a big gap, but it is the biggest encouragement in the past three years!
We also wrote an article to express our joy:
The weekly downloads of Ng DevUI exceeded 1000! 🥳
The following is a trend chart of Ng DevUI downloads:
Vue DevUI
Vue DevUI has been relatively popular since it was open sourced in 2021, and the community activity is also very high.
In the past six months:
- Contributor count increased from 54 to
72
- Star count increased from 110 to
361
- PR numbers from 411 to
1102
- Commit numbers from 1712 to
2587
- Download numbers from 1366 to
3989
v1.0
The official version will be released soon, please look forward to it!
If it works well, you will know after you try it. If you think it works well, you can give us a Star 🌟
It is not easy to use, and you are welcome to send us issues .
You are more welcome to join in and build together:
https://vue-devui.github.io/contributing/
React DevUI
React DevUI is an open source project initiated by Xie Jay , a member of the DevUI open source organization PMC, and currently has 32 components!
Welcome to experience and participate in the joint construction. The following is the official website of React DevUI
:
To learn more about React DevUI, you can refer to our previous articles:
You can also add the DevUI assistant WeChat: devui-official to pull you into our technical exchange group.
The seeds will eventually burst out
Let me share a little story with you. I am a green plant lover. In 2017, a new green plant 🪴 member joined my family. When it first came, it looked like this:
Over the years, we have continued to add new green plants, and many of them have withered. Only this one has experienced ups and downs, constantly withered and withered leaves, and continued to grow green in the coming year.
This year seems to be the most difficult for it, I keep seeing its leaves withering, one, two, from the first 20+ leaves 🍃, to only half a leaf at the end.
I also tried to rescue many times in the middle, watering, fertilizing, moving the location, changing the soil, and moving the flower pot, but still no improvement, the leaves are still withering one by one🥀.
When I removed its last golden dead leaf🍂, I lost confidence in it myself, and I put it on the balcony and didn't care about it.
I just remember that it was a long, long time ago that the last time I looked at it, it only had the last half of a leaf (really half a leaf, there are pictures to prove it).
Until two days ago, when I went to water other plants, I suddenly found that this green plant has magically grown new shoots!
After being pleasantly surprised, I took a picture of it, and it looks like this now (taken on July 9, 2022):
I don't know what the seeds of this plant have experienced in the dark and humid soil, how long they have waited, only know that it finally broke through, and I firmly believe that it will eventually become green again🍃.
Sometimes we are very similar to this green plant. Some things are difficult, vague, unknown, and we don’t know whether there will be results or not, and sometimes we don’t even know what to do to have results, and we will want to give up.
We know that it is easy to give up, we can't give up easily, we think of our original intention, we have paid a lot for this, we must persevere to the end, we know:
The seeds will eventually break out of the ground, and they will be greeted by warm sunshine, moist rain and the joy of growth!
Finally, I would like to share with you a very hard-core wilderness survival video series: Girls survive in the jungles of Southeast Asia without tools for 100 days , from the Up master of station B, Sparrow's Wild Journey .
In addition to the real, hard-core 100-day wilderness survival process itself, the following points are very moving to me:
- The blurted out of the Book of Songs, classic Tang poetry and Song poetry, modern poetry, these key lines are very suitable for the occasion
- Rich knowledge of Chinese herbal medicines, the morphological properties and functions of each herbal medicine are familiar, and the barrage says that the scumbag is a "walking Compendium of Materia Medica"
- In awe of nature and life, if you catch snakes, birds and other animals in the process of survival in the wilderness, they will release them, and they only eat fish, shrimps, crabs, wild fruits, etc.
- The most important thing is firm belief, amazing perseverance and strong psychological quality, as well as optimism and self-confidence shown in despair
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。