u盘 puppy
It’s Open Source Week at SitePoint! All week we’re publishing articles focused on everything Open Source, Free Software and Community, so keep checking the OSW tag for the latest updates.
这是SitePoint的开源周! 我们整周都在发布有关开源,免费软件和社区的文章,因此请继续检查OSW标签以获取最新更新。
This article is by guest authors Christian Heilmann and Rita Zhang. SitePoint guest posts aim to bring you engaging content from prominent writers and speakers of the JavaScript community.
本文由特约作者Christian Heilmann和Rita Zhang撰写。 SitePoint访客帖子旨在为您带来来自JavaScript社区的杰出作家和演讲者的引人入胜的内容。
Open Source is much more than making something available to the public. It is not only about your code, it is also about licenses, understanding participation and herding cats a.k.a. dealing with community issues. In this article we will briefly look at the benefits of open sourcing your code and the pitfalls to avoid.
开源不仅仅是向公众提供某些东西。 它不仅与您的代码有关,而且还与许可证,了解参与以及与社区问题打交道有关。 在本文中,我们将简要介绍开放源代码的好处以及避免的陷阱。
Open Source is probably the most exciting thing that happened to our market and is responsible for the explosive growth of the web. Most of our servers are open source technology, a lot of browser code is, and even our editors are written in JavaScript these days. It is our duty to treat Open Source with respect and release quality instead of chucking code over the wall and hoping that magic happens.
开源可能是我们市场上发生的最令人兴奋的事情,它是网络爆炸性增长的原因。 我们的大多数服务器都是开源技术,许多浏览器代码都在使用,甚至这些天我们的编辑器都使用JavaScript编写。 我们有责任尊重开放源代码并释放其质量,而不是将代码丢在墙上,并希望魔术能够发生。
What follows are ideals and advice to follow. You might not have time or desire to follow all of it. That’s fine. What’s not fine is trying to play in an open world and be dogmatic about it. Open Source has mushroomed into a huge part of our world and people make mistakes. Let’s be as open as the code we release. Let’s deal with mistakes like we deal with bugs: collaboratively make them vanish.
接下来是要遵循的理想和建议。 您可能没有时间或不想跟随所有这些。 没关系。 尝试在开放世界中玩耍并保持教条主义是不好的。 开源已经席卷了我们世界的很大一部分,人们犯了错误。 让我们像我们发布的代码一样开放。 让我们像对待错误一样处理错误:通过协作使它们消失。
Getting a free puppy is great but it also comes with responsibilities. You need to feed it, take it out for walks, groom it and play with it — even when you’re busy. The way you treat the puppy defines what kind of dog it will become. How much it trusts humans, how easy it is to play with, how protective and helpful towards humans it is. The same applies to releasing and consuming open source code. With one small difference: puppies are very forgiving. The open source community less so. There is a lot of tension to be aware of. We’ll cover some of that here, but first let’s point out an important thing when it comes to JavaScript and Open Source.
养一只免费的小狗很棒,但也要承担责任。 您需要喂食它,出去散步,修饰并玩耍,即使您很忙。 您对待小狗的方式定义了它将成为哪种狗。 它对人类有多信任,与之玩耍多么容易,对人类有多大的保护和帮助。 这同样适用于发布和使用开源代码。 两者之间的差别很小:幼犬非常宽容。 开源社区就不是这样。 有很多紧张需要注意。 我们将在此处介绍其中的一些内容,但首先让我们指出有关JavaScript和开放源代码的重要事项。
Just because something is available doesn’t mean it is free or open. If I forget to lock my bike, you’re not invited to ride it. If I put a sign on it saying “community bike, feel free to ride, but please keep it clean and fix it” we are getting closer to what open and free means in terms of software. The great thing about software is that it can be copied without losing quality. The great thing about JavaScript on the web is that anyone can see it. Many luminaries of JavaScript learned their craft by looking through other people’s code. That doesn’t mean though that you can copy and paste it and call it yours – unless its license explicitly allows you to. I’ve spent far too much time in conversations with clients where they asked me how to protect JavaScript from being seen by others. That’s like asking for water that isn’t wet. JavaScript is a great candidate language for releasing open source code. You are already visible; you may as well make it legal to re-use.
仅仅因为有可用的东西并不意味着它是免费的或开放的。 如果我忘记锁我的自行车,则不会邀请您骑自行车。 如果我在上面贴上“社区自行车,可以随意骑行,但请保持清洁并修理”的标语,那么我们在软件方面已经接近开放和免费的含义。 关于软件的伟大之处在于它可以被复制而不会降低质量。 网络上JavaScript的伟大之处在于任何人都可以看到它。 许多JavaScript专家都通过查看其他人的代码来学习他们的技术。 但这并不意味着您可以将其复制并粘贴并称为您的文件-除非其许可明确允许您这样做。 在与客户的对话中,我花了太多时间,他们问我如何保护JavaScript,以防止他人看到。 就像要不湿的水一样。 JavaScript是发布开放源代码的绝佳候选语言。 您已经可见; 您也可以使其合法使用。
Now, why would you bother to share your code with the world when you could become a millionaire by keeping it all to yourself? Well, there are quite a few benefits:
现在,当您将代码全部保留给自己成为百万富翁时,为什么还要与世界分享代码呢? 好吧,有很多好处:
Other people have good ideas, too. A lot of my code has been greatly improved by allowing people to contribute. They came up with solutions I hadn’t thought of. They helped me write terser, easier to understand code. They found issues I hadn’t considered. And I didn’t have to pay for any of that!
其他人也有好主意。 通过允许人们做出贡献,我的许多代码都得到了很大的改进。 他们想出了我从未想到的解决方案。 他们帮助我编写了更简洁易懂的代码。 他们发现了我从未考虑过的问题。 而且我不必为此付出任何代价!
It is a litmus test of your code. People have different environments than me and can test my code for me, inform me of issues, or — even better — fix them for me. It is impossible to hide sloppy code in plain sight. Knowing that I make my code available makes me worry more about code quality and thus a better developer.
这是对您的代码的试金石。 人们所处的环境与我不同,可以为我测试我的代码,将问题告知我,或者甚至更好地为我解决。 不可能在视线中隐藏草率的代码。 知道我可以使用我的代码后,使我更加担心代码质量,从而成为一名更好的开发人员。
You become part of something bigger. Your code being used in other projects is a very exciting (and at times scary) thing. It is a great feeling to empower others to build things that they on their own couldn’t have built. As is seeing your work being used by people you thought were much better than you.
您成为更大事物的一部分。 您在其他项目中使用的代码是一件非常令人兴奋(有时甚至令人恐惧)的事情。 增强他人的能力是一种很棒的感觉,他们可以自己建造自己无法建造的东西。 看到您的作品被您认为比别人更好的人们所使用。
Your work lives on — no matter what. If you’re unable or unwilling to keep maintaining your code and you want to move on, having open sourced it means you’re in luck. You share the responsibility with a community and they benefit from your initial work.
无论如何,您的工作都会继续下去。 如果您无法或不愿意继续维护代码而又想继续前进,那么开源就意味着您很幸运。 您与社区共同承担责任,他们将从您的最初工作中受益。
You find like minded people to collaborate with. One of the huge benefits of open sourcing your code is that you find people who are willing to work with you on something you’re excited about. This is invaluable for finding new jobs, hiring exactly the right people or having a foot in the door of another company when you want to reach them. As a larger corporation, open sourcing your code means you can pick new hires from the contributing community. These are people who are already in the know and excited about your product. This cuts down on months of on-boarding and thus means a lot of money saved.
您会发现志趣相投的人与之合作。 开源代码的巨大好处之一是,您会找到愿意与您一起工作的人,这些事情会让您感到兴奋。 这对于寻找新工作,聘请合适的人或在想要找到他们时踏入另一家公司的大门来说是无价的。 作为大型公司,将您的代码开源,意味着您可以从贡献社区中选择新员工。 这些人已经对您的产品有所了解并为之兴奋。 这减少了几个月的入职时间,因此意味着节省了很多钱。
You learn about tools of the trade. Releasing a JavaScript project these days has become much more complex than offering a zip of your script. There are all kinds of preset files for different editors, package managers and ways to automatically test your scripts. If you don’t want to get into all of that yourself, you can ask contributors to help you out. No need to get into the nitty-gritty of solutions you’re not comfortable with when you can share responsibilities.
您将了解交易工具。 如今,发布JavaScript项目比提供一个zip脚本要复杂得多。 各种各样的预设文件适用于不同的编辑器,程序包管理器以及自动测试脚本的方式。 如果您不想自己动手,可以请贡献者为您提供帮助。 当您可以分担责任时,无需深入了解您不满意的解决方案。
As you can already see, a lot of these benefits are not related to writing code. They come from dealing with other people in a respectful and professional manner.
正如您已经看到的,其中许多好处与编写代码无关。 他们来自以尊重和专业的态度与他人打交道。
Whilst this all sounds great, there are also niggles with Open Source to consider. You’re making your work and subsequently yourself open to the public. This means you need to prepare for a few things that may be hard to deal with at first.
尽管这一切听起来不错,但也有一些要考虑开放源代码的地方。 您正在做自己的工作,随后又向公众开放。 这意味着您需要准备一些一开始可能很难处理的事情。
Strong opinions voiced badly. A lot of initial feedback you tend to get when you open source your products can be — to put it mildly — harsh and overly abbreviated. There are many people who have very defined and limited opinions on “how things should be done, or it is not proper Open Source” and get a kick out of pointing these out wherever they can. Don’t get disheartened by that. Look these people up and if you’re just one of many to get the same brutal response you know there is a different agenda at play here.
强烈的意见令人沮丧。 当您开源产品时,往往会得到很多初始反馈,这可能有点过分苛刻且过于缩写。 有很多人对“应该如何做,或者它不是适当的开放源代码”有非常明确和有限的意见,并竭尽所能指出这些问题。 不要为此感到沮丧。 抬头看看这些人,如果您只是得到相同残酷React的众多人中的一员,您就会知道这里面有不同的议程。
Everybody has an opinion. There isn’t shortage on any open source project of comments, issues tracked or pull requests telling you that something should be done differently. The art here is not to give in to all of them. This is sometimes actually impossible. The trick is to throw it out to the vote and only apply them when enough people agree or disagree. Don’t chase after constant change — it will be a time sink you can’t get out of.
每个人都有意见。 在任何开源项目中,评论,跟踪的问题或请求请求告诉您应该以不同的方式进行操作的地方都不乏不足。 这里的艺术不是要屈服于所有人。 有时这实际上是不可能的。 诀窍是将其付诸表决,只有在足够多的人同意或不同意时才适用。 不要追求不断的变化-这将是您无法摆脱的时间浪费。
It’s not about you any more. It is tough to let go of your work and see it going in different directions than you might have planned. Yes, directions – plural. That’s what forking is for. For the good of the project, you might have to give in to the wisdom of the masses. If changing how some part of your project works or is maintained yields lots of good contributors, it is worth it. Remember that by open sourcing something, you future proof it. If you’re not there for the project any longer, others need to take over. That may mean that you need to be OK with the project working differently than your initial approach.
不再和你有关。 放开您的工作并看到它朝着与计划相反的方向发展是很困难的。 是的,方向–复数。 那就是分叉的目的。 为了项目的利益,您可能不得不屈服于大众的智慧。 如果更改项目的某些部分的工作方式或维护方式可以产生很多好的贡献者,那是值得的。 请记住,通过开源采购某些东西,您将来就可以证明这一点。 如果您不在该项目中,则其他人需要接管。 这可能意味着您需要在项目工作上与最初的方法有所不同。
You will code less and write more. Once your project kicks off, you will spend more time answering issues and comments and looking over pull requests than coding. Your responsibility starts moving from writing great code to reviewing contributions ensuring that what gets added doesn’t include security or maintenance issues. Instead of battling a parser and VM, you start dealing with human agendas in exchange for code.
您将减少编写代码,编写更多代码。 项目启动后,与编码相比,您将花费更多的时间来回答问题和评论,以及查看拉取请求。 您的责任开始从编写出色的代码开始,到审查文稿,以确保添加的内容不包含安全或维护问题。 与争夺解析器和VM的战斗相反,您开始处理人的议程以换取代码。
You won’t do everything. Try as early as possible to delegate and trust people to do parts of the project without your supervision or control. This is tough at first but frees you to do much more later. If you start the project as a team, have defined roles and stick to them.
您不会做任何事情。 在没有您的监督或控制的情况下,尽早委托并信任人们去做项目的一部分。 刚开始时这很困难,但是以后您就可以做更多的事情。 如果您以团队形式启动项目,请定义角色并坚持下去。
This is no place for jealousy. One thing that can happen a lot is that your product will be used in other people’s products and they become a great success. It can even happen that a fork of what you did with a direction you disagree with becomes a much bigger success. In the worst case someone will make a lot of money with a commercial product based on your work. Or create something that will be bought by another company for a lot of money. Don’t get discouraged by that. There is a lot of randomness in this and it is not your mistake that made that happen. Stay in touch, be happy for the success of other people and good things will come back to you.
这不是嫉妒的地方。 可能发生的很多事情是您的产品将用于其他人的产品中,并且它们取得了巨大的成功。 甚至可能发生的事情是,如果您对自己不同意的方向所做的努力变得更加成功,那将是一件大事。 在最坏的情况下,有人会根据您的工作通过商业产品赚很多钱。 或者创建一些可以被另一家公司大量购买的东西。 不要因此而灰心。 这有很多随机性,并不是您的错误导致了这种情况的发生。 保持联系,为其他人的成功而高兴,美好的事物会再次出现。
Regarding that last point, there is a very important part of open sourcing your products. And it is the toughest, most vehemently discussed and confusing part: licensing your code.
关于最后一点,在开源产品中有非常重要的一部分。 这是最困难,最激烈和最令人困惑的部分:许可代码。
As a developer, most of us see laws, licenses and agreements as something we want to stay as far away from as possible. However, licensing your open source code matters in many ways:
作为开发人员,我们大多数人都认为法律,许可和协议是我们希望尽可能远离的事物。 但是,对您的开源代码进行许可在许多方面都很重要:
You protect yourself. A clear license doesn’t only make sure that people can’t use your code in ways you didn’t intend. It also means that a security breach based on your software doesn’t land you in jail, as this is clearly covered in the license.
您保护自己。 明确的许可证不仅可以确保人们不会以您不希望的方式使用您的代码。 这也意味着基于软件的安全漏洞不会使您入狱,因为许可证中明确涵盖了这一点。
You define the level of re-use. Depending on the license, you define if people can build commercial products based on your work or not. You define if people need to list you as a contributor to their projects or not. You make sure that some uses of your code are illegal, whereas others are perfectly fine.
您定义重用级别。 根据许可证,您可以定义人们是否可以根据您的工作来构建商业产品。 您可以定义人们是否需要将您列为他们的项目的贡献者。 您确保对代码的某些使用是非法的,而另一些则完全可以。
You give a clear message who can contribute. Hard-core contributors of Open Source won’t work on projects with a certain license. Commercial users of open source projects can’t use code unless it has a license that allows them to. By picking the right license you limit or extend who can work on your project. It also protects you from other people getting rich with your work without getting a share.
您明确指出谁可以贡献力量。 开源的核心贡献者将无法在具有一定许可的项目上工作。 开源项目的商业用户不能使用代码,除非它具有允许他们使用的许可证。 通过选择正确的许可证,您可以限制或扩展可以从事您的项目的人员。 它还可以保护您,防止他人因您的工作而致富,而又无法分享。
Luckily, the plight of picking the correct license has been a constant discussion in the open source community. There are a lot of great resources to work from, like http://choosealicense.com, https://tldrlegal.com or https://tldrlicense.com. Be sure to choose wisely as changing a license later is tough, and sometimes impossible.
幸运的是,选择正确许可证的困境一直是开源社区中不断讨论的问题。 有很多不错的资源可以使用,例如http://choosealicense.com、https://tldrlegal.com或https://tldrlicense.com。 确保选择明智,因为以后更改许可证很困难,有时甚至是不可能的。
If some of this sounds daunting, don’t despair. It is not as tough as it sounds, I just wanted you to be prepared for what’s coming your way. And I wanted to ensure that releasing something open source is not about making it available. It is not you giving the world a gift. It is you sharing your work with the world and being open to changing it in the process.
如果其中有些听起来令人生畏,请不要绝望。 它并不像听起来那样艰难,我只是希望您为即将发生的事情做好准备。 而且我想确保发布某种开源产品并不是要使其可用。 不是您给世界一个礼物。 您是与世界共享您的工作,并愿意在此过程中进行更改。
That way I wanted to ensure that in order to be great open source publisher, you can add some extra work to your initial release to make sure that people can help you and you don’t run into some very obvious mistakes that result in discouraging initial feedback. A lot is about answering questions before they come up. So here goes:
这样,我想确保为了成为出色的开源发行商,您可以在初始发行版中添加一些额外的工作,以确保人们可以为您提供帮助,并且您不会遇到会导致不利于初始发行的明显错误反馈。 在出现问题之前,有很多关于回答问题的知识。 因此,这里去:
With GitHub, we get an incredible tool to release open source software these days. Not only do we get Git, a tool to contribute code safely without overriding each other’s work. We also get an issue tracker, a Wiki to explain and write docs and GitHub Pages to show an executable version of your code right where the source lives.
有了GitHub,这些天我们就拥有了发布开源软件的强大工具。 我们不仅获得了Git,它是一种安全地编写代码而又不会覆盖彼此工作的工具。 我们还提供了一个问题跟踪程序,一个用于解释和编写文档的Wiki,以及一个GitHub Pages以显示源代码所在位置的可执行代码版本。
In order to make it as easy as possible for people to contribute, it makes sense to have a few things in place:
为了使人们尽可能容易地做出贡献,有一些适当的做法很有意义:
A great README. This is the first thing people look at. Explain early on what the project does and who it is for. Point to all the other parts listed here and make sure to keep it up-to-date with the latest information.
很棒的自述。 这是人们首先要看的东西。 尽早说明该项目的用途和用途。 指向此处列出的所有其他部分,并确保将其与最新信息保持同步。
Information on how to run it. Most developers won’t contribute to a project they can’t run themselves. Make sure you define how to try the project yourself, listing all dependencies and environment setup necessary.
有关如何运行它的信息。 大多数开发人员不会为自己无法运行的项目做出贡献。 确保定义自己尝试项目的方式,列出所有必需的依赖项和环境设置。
Have a sensible changelog. It shows how you fixed issues, added features and the overall cadence of the project.
有一个明智的变更日志。 它显示了您如何解决问题,增加的功能以及项目的整体节奏。
Code guidelines. Describe briefly how you coded the product, what your settings and environments are to ensure that code contributed complies with this. This may spark some discussion, but it makes sure the final product is much easier to maintain.
代码准则。 简要说明如何编码产品,设置和环境是什么,以确保所贡献的代码符合此要求。 这可能会引起一些讨论,但可以确保最终产品的维护更加容易。
Tests. Have ways to automatically test your code and run a series of tests before contributing. This makes sure that contributors have an extra step to take before submitting code that breaks the whole project.
测试。 在贡献之前,有办法自动测试您的代码并运行一系列测试。 这样可以确保在提交破坏整个项目的代码之前,贡献者可以采取额外的步骤。
Feedback channels. Give people a chance to contact you outside of the normal development flow. This gives them a chance to report bad behaviour of others, ask you about commercial agreements, or just say “thank you” without adding to the noise of already busy communication channels.
反馈渠道。 让人们有机会在正常的开发流程之外与您联系。 这使他们有机会举报他人的不良行为,向您询问商业协议,或者只是说“谢谢”,而不会增加本已繁忙的通信渠道的噪音。
Contribution guidelines. Explain how to write a pull request or issue that is most likely to cause the community (which initially is just you) to deal with them as painlessly and quickly as possible. There is nothing worse than an issue that lies unanswered or with lots of “we need more info”. The less unanswered issues, the more inviting your project is.
贡献准则。 说明如何编写最有可能导致社区(最初只是您)尽可能轻松地处理请求的请求或问题。 没有什么比没有解决的问题或存在很多“我们需要更多信息”的问题更糟糕的了。 未解决的问题越少,项目的吸引力就越大。
Beginner bugs / features. If you have a way to flag up simple problems as “beginner bugs”, do so. This is a great way for someone new to join the project and learn about it whilst fixing a small issue. It feels good to get into a group by removing an obstacle — however trivial. Much more than just trying to find a foothold and being overwhelmed by how great everybody else is.
初学者的错误/功能。 如果您有办法将简单问题标记为“初学者错误”,请这样做。 对于刚接触一个小问题的新人来说,这是一个很好的方式来参加该项目并了解它。 通过消除障碍进入小组是一件很不错的事-多么微不足道。 不仅仅是试图找到立足点并被其他所有人的强大所淹没。
Consider a contributor code of conduct. This may sound over the top but defining what you expect and not expect people to say to one another is a good start to get a healthy and creative community. It also allows admins to block people from contributing without any drama as there is a clear guideline.
考虑一个贡献者行为准则。 这听起来似乎很重要,但是定义您的期望而不期望人们互相说是一个健康,富有创造力的社区的良好开端。 由于有明确的指导原则,它还允许管理员阻止人们在没有任何戏剧性的情况下做出贡献。
Not all these are strictly necessary and sometimes are overkill. They are a great help though for your project to scale and grow. If you want to see a great example repository with all these things in place, check out Microsoft’s Visual Studio Code on GitHub. If you’re thinking about a Code of Conduct, the TODO group offers a template.
并非所有这些都是严格必要的,有时甚至是过大的。 尽管它们对您的项目进行扩展和扩展,但它们是一个很大的帮助。 如果您想查看一个包含所有这些内容的出色示例存储库,请查看GitHub上的Microsoft Visual Studio Code 。 如果您正在考虑《行为准则》,则TODO小组提供了一个模板 。
It is great to see your product used in a commercial product. If someone like Google, Facebook or Microsoft uses your script, it is quite the boost. However, this also means you need to ensure that certain things are in place, or there is no way for this to happen. These are generally great things to have, but they are a show-stopper for commercial users unless you provide them.
很高兴看到您的产品用于商业产品。 如果像Google,Facebook或Microsoft这样的人使用您的脚本,那将是很大的帮助。 但是,这还意味着您需要确保某些事情已经准备就绪,否则将无法实现。 通常,这些都是很棒的东西,但是除非您提供它们,否则它们对于商业用户来说是一个阻碍。
Make sure your product supports internationalisation. Have a way to translate strings, make sure the layout can shift from left to right to right to left. Allow for support of non-ASCII input.
确保您的产品支持国际化。 有一种翻译字符串的方法,请确保布局可以从左到右,从右到左移动。 允许支持非ASCII输入。
Make sure your product is accessible with various input devices. Accessibility is a legal requirement for large corporations and it will get audited.
确保可以通过各种输入设备访问您的产品。 对大型公司而言,可访问性是一项法律要求,它将受到审核。
Make sure your product is not fixed to one environment. Sometimes a big player would love to use your product, but can’t as you developed it for your computer, not the world at large.
确保您的产品未固定在一种环境中。 有时候,大公司会喜欢使用您的产品,但是当您为计算机而不是整个世界开发产品时却不能。
Make sure your product has a license that allows for commercial use. This should be obvious, but many products can’t be re-used because of an initial license that is too strict.
确保您的产品具有允许用于商业用途的许可证。 这很明显,但是由于最初的许可证太严格,许多产品不能重复使用。
If you want to learn more about this, there is a great talk by Chris Dias at Enterprise JS about how Microsoft built Visual Studio Code on top of open source projects and the problems that caused.
如果您想了解更多信息, Enterprise JS上的Chris Dias进行了精彩的演讲,内容涉及Microsoft如何在开源项目之上构建Visual Studio Code以及所引起的问题。
With all that out of the way, I hope you are still up for releasing your work as Open Source. It is not only good for your code; it is also great for you to grow as a contributor to our market.
综上所述,我希望您仍然可以将您的作品作为开源发布。 它不仅对您的代码有好处; 成长为我们市场的贡献者也很重要。
Releasing Open Source means you get known and take on more responsibility. Having a successful open source project is a stepping stone into great jobs with more responsibilities. You show that you care and that you want to do more. Herding a community around your project and dealing with feedback and contributions is great exercise for a role of lead developer, team lead or department head. You push yourself to be more of a human developer than just a code developer. When I hire developers who worked on Open Source, I look how they interacted with others. I prefer hiring those who work well with others to those who created the most amazing contributions. Scalable teams need people to work with each other. This is a great way to work on that skill.
发布开源意味着您将广为人知并承担更多责任。 拥有成功的开源项目是承担更多责任的出色工作的基石。 您表明自己在乎,并且想要做更多的事情。 在首席开发人员,团队负责人或部门负责人的角色下,建立一个围绕您的项目的社区并处理反馈和贡献是一项很好的练习。 您要推动自己成为更多的人类开发人员,而不仅仅是代码开发人员。 当我聘请从事开源工作的开发人员时,我会看看他们如何与他人互动。 我更喜欢雇用那些与他人合作良好的人,而不是那些做出了最惊人贡献的人。 可扩展的团队需要人们相互合作。 这是锻炼该技能的好方法。
But what about you? Are you contributing to Open Source already? If not, what’s stopping you? Let me know in the comments below.
那你呢 您已经在为开源做贡献了吗? 如果没有,那么阻止您的是什么? 在下面的评论中让我知道。
翻译自: https://www.sitepoint.com/open-sourcing-javascript-code/
u盘 puppy
相关资源:完整免费!商城系统源码