每天推荐一个 GitHub 优质开源项目和一篇精选英文科技或编程文章原文,欢迎关注开源日报。交流QQ群:202790710;微博:https://weibo.com/openingsource;电报群 https://t.me/OpeningSourceOrg

2018年11月5日:开源日报第242期

今日推荐开源项目:《选择组件 react-select》传送门:GitHub链接

推荐理由:这是用在 React 上的选择组件,顾名思义,它以一个用下拉菜单来选择选项的组件为基础,在此之上提供了诸如单选,多选,必选项和自定义样式这样的功能,可以满足大部分的需求,使用 React 的朋友可以考虑把它加入自己的收藏夹了。

示例:2018年11月5日:开源日报第242期

今日推荐英文原文:《Why Pair Programming Matters》作者:Anna Conaway

原文链接:https://medium.com/@annaconaway19/why-pair-programming-matters-7df529265692

推荐理由:今天我们来了解一下配对编程的重要性,实际上,最重要的应该是——Teamwork is fun!找人一起合作总是比一个人有意思的。

Why Pair Programming Matters

Three weeks into Flatiron School’s web development bootcamp and several pair programming assignments later, I am a total convert — pair programming is the way to go. Everyone’s had the terrible, grade school, group project experience where YOU end up doing all the work, so being forced to pair up when learning an entirely foreign (and difficult) skill, like computer programming, must be just as awful, right? Wrong!

2018年11月5日:开源日报第242期
“two person handshaking in front of MacBook Pro” by rawpixel on Unsplash

What is pair programming? The act of programming with a partner, where one person drives (or types out the code) while the other navigates (or dictates) the code being written.


Now, why should you do it? For me, pairing has been an especially helpful to my progress as someone new to the field, but the benefits can go far beyond one’s first few months in the field. These are a few of my favorite things:

Efficiency. Miriam-Webster defines efficient as “capable of producing desired results with little or no waste (as of time or materials).” Unless one of you is Michael Scott, with zero focus skills, having two brains to work on the same tough problem, parse it out and talk it through, will almost always lead to a faster and more abstract result than if you’d worked on it separately.

You’ll get smarter! Believe it or not, you can actually learn some things from your peers. Especially with languages like Ruby, where there are multiple ways to accomplish a single task, there’s a pretty high chance that your partner’s thought process will be different than yours. Soak it in and take that new knowledge into your next project!

Accountability. You both know this project is going in your portfolio and you both know that someone else (your partner) is looking at this code, literally all the time. This means there’s less likelihood for long distractions (though breaks are encouraged!) or lazy coding habits. Of course, this is assuming both parties are interested in succeeding, but even the laziest of programmers want to showcase a good body of work.

Better code. Similar to the point of getting smarter with a partner, the more you share your code and knowledge with one another, the more likely you’ll be able to abstract your code further and end up with better design, which is critical in Object-Oriented Programming. It also doesn’t hurt to explain your thought processes. As you talk through tougher concepts and explain them to someone else, they’ll sink in a little deeper for both parties.

Teamwork is fun! When you’re working toward the same goal in a field that you love, embrace the teamwork. Grade school group projects were partially awful because they were about a subject you cared 0% about, but you love programming, right!? The end product is the obvious goal but that doesn’t mean you can’t enjoy the process. Take time to learn about your partner, figure out how you each work best and use it to your advantage to make pair programming an enjoyable experience.

As much as pair programming can benefit a company’s employees or you as an individual, it’s not as widely used as it could be — ya know, why pay two people to do one job? But, from what I’ve learned and experienced, the long-term benefits can far outweigh the short-term, when everyone is on board.


每天推荐一个 GitHub 优质开源项目和一篇精选英文科技或编程文章原文,欢迎关注开源日报。交流QQ群:202790710;微博:https://weibo.com/openingsource;电报群 https://t.me/OpeningSourceOrg