Share Your Code

昨天在Github上看代码时.看到Glist 里面关于一段关于Shell Execution in Ruby的实现,forked记录很高,但你可以看得出Github Glist代码格式化和高亮展示做的固然很好,但关于同一个问题讨论的形式依然还是停留在不断在这个Glist 下面Add Comments的方式. 要知道要说清楚一个程序实现上逻辑或者思路,作为程序员也许文字并不是最佳的方式. 或者一个简单结构图就能清晰明了说明问题.

Share Your Code_第1张图片
A better way to describe your idea[via telerik]

这又让我联想到开发过程中的Code Review :

A:提高质量

B:及早发现潜在缺陷与BUG,降低事故成本

C:促进团队内部知识共享,提高团队整体水平

D:评审过程对于评审人员来说,也是一种思路重构的过程。帮助更多的人理解系统

Code Review 除了发现Bug,提升代码质量外. 我认为它最大的好处就是团队内部开发人员之间的能够为某个问题形成思考并达成最终的共识,或者换言之其实就是让两个有这完全不同经验的开发者在同一个问题解决方式上产生交集,并能交换彼此成功或者失败经验,这让我又想起早期第一次做结对编程[Pair Programming]时的体验,兴奋,而这就是源于短短一个小时结对过程中,通过交换彼此想法和经验并通过现场代码实践很好吸收和理解对方的思路. 这让我意识到短短一个小时简单讨论获得的成果,可能已经远远超过我自己花费数周时间去摸索解决问题的所得. 开发者之间除了本身不同技术成长路线之外,其实能力体现还在于是否能够快速吸取失败的经验,不断的修正,这个过程其实一直贯穿整个开发者生涯,为何结果却完全迥异? 这一切其实源于获取经验的[效率]和[方式],而Code Review和Pair Programming 都是减少这种障碍一种可选的方式之一. 而Github 的Glist 其实也是另外一种线上形式.而不可否认的是这种方式存在都能使开发者能够短期内获取更多开发经验获得快速成长的机会提供了可能.

不禁要问 难道没有更好的方式吗?

就如你所看,我在一个晚上时间里一直尝试去在现有网上去寻找,是否有人也想到这点并坐了很好的尝试,可惜的是我没有看到任何相关的成果出现,或者有些相关但还不足够的纯粹,再或者这么短时间内可能也没有机会能够真正找到. 如果你能够有机会知道和我下面描述想法已经有成型站点在做这件事,希望你能稍微抬手让我知道[站内私信].Let me know[email]

谈到上面种种需求,当天我一直在构思能否有一个更直接和更纯粹的方式,能够减少开发者之间关于经验的分享和交流的障碍. 并且能够针对某些问题能够以最佳解决方案来达成一个开发者群体之间的共识. 然后能够很好在社区和开发者之间传播,而直接减少同质问题筛选所浪费时间和精力.

well.正如有了上面需求,用了一些时间把我这个想法构思变成实实在在的原型图.当然这只是第一版原型图,很多细节都没做更加深入的考量,这些都没关系,如果有更多时间我回逐步的细化.

1.Share Your Code

A:技术领域分类

B:代码在线Code Review,任何用户都可以针对代码细节进行批注,批注的内容可以包含代码&文字&图片或其他说明元素.

C:针对一段代码Code Review 批注会设定Vote Up功能,用户第一次打开时,根据Vote Up票数由高到低递减进行排列,用户可以点击单个代码批注进入二级页面获取更详细的实现细节.

D:可以在这个代码增加评论,任何用户可以针对评论进行投票,投票原则是是否对你有用,评论根据Vote Up 票数由高到底排序.

于是乎一个大概主页的样子就出来了,我用mockups做的,很糙很多细节也都没考量

Share Your Code_第2张图片
Main Page [Via by chenkai]

上面部分针对code review部分,其实这部分主要意图是用来,由用户提出问题或者用户只是纯粹提交一段代码,任何用户都可以review并给出review建议的批注,批注的目的是用来改善代码或者代码的实现思路,并根据有用程度进行投票排序,针对带个批注用户可以点击more进去看到更加详细文字&代码或者其他元素描述实现. 当然针对这个问题也可以下面发起一些讨论.关于这个问题会被检索放在某个分类下或者归结某个主题之下.

2.Pair Programming Online

现在很多工具的方式,只是通过传统的评论方式来实现点对点沟通,well,如果我们能够在一段代码讨论上能够实现在线一对一或者一对多在线编程的方式来实现,是否能够更为直观一些.

A:能够同时邀请一个人或多人同时支持在线编辑同一段代码.并能够编辑历史记录进行回滚操作.

B:可以支持同时多人在线视频,面对通过方式来传递想法.

C:共同区域空白画板,出了公共代码编辑区域之外,我们需要一个公共画板用来阐述或展示相关内容,公共画板能够记录编辑的历史记录.

Share Your Code_第3张图片
Edit Code & Public Board[via by chenkai]

这是一个很小的想法,当然我也不知道这个想法能否实现,至少目前我没人看到有人在做这样的一件事,如果能够很好借助工具的力量,减少我们能够在沟通和获取知识以及宝贵经验的路上障碍,对我来说这或许是一件好事,注重经验价值,并乐于分享.这也许是这个工具核心的点,至于其他的因素 我可能会在花时间细化,这也知识一个非常糙的原型而已.当然如果你看到这篇文章也有很好想法,不方便在下面评论一块来交流.

本篇博客谢绝任何形式转载,违者必究.特此声明. via by chenkai 2014年12月09日00:10:11

你可能感兴趣的:(Share Your Code)