如果您的公司或项目强调(或至少赞赏)可在项目之间重用和共享的代码和组件的开发,那么您需要做哪些“社会工程”来促进重用编码?
根据我的经验,除非有人支持或宣传该代码,否则不会重复使用简单地称为“可重用”的代码或组件。否则,人们根本不会知道它。
您如何确保共享组件或可重用代码在您的组织中工作?
如果您的公司或项目强调(或至少赞赏)可在项目之间重用和共享的代码和组件的开发,那么您需要做哪些“社会工程”来促进重用编码?
根据我的经验,除非有人支持或宣传该代码,否则不会重复使用简单地称为“可重用”的代码或组件。否则,人们根本不会知道它。
您如何确保共享组件或可重用代码在您的组织中工作?
有几个想法浮现在脑海:
另一个很好的策略是找出组织中其他人在他们的项目中拥有哪些代码,提供提取其中的一些功能(谈论它有多棒以及你真的想如何在你的项目中使用它)。将他们的代码添加到共享模块后,您通常会成为共享库的 +1 粉丝,并有一位布道者帮助您推销这个想法。请记住,人们通常只会在对他们有利的情况下做事——所以让他们看起来不错并且他们的代码看起来不错是对他们有利的。
在我的组织中,我们得到了管理层的帮助来促进共享图书馆的创建。我们还向新员工灌输使用它。
然后,我们放置好的代码,每个人都必须对其有用性和完整性进行审查。这就是团购发挥作用的地方。
此外,我们有一个非常健壮、记录在案的过程,用于分支共享库以在 Visual Studio 中使用。提示:我们使用 svn:external 属性来管理来自同一文件夹结构中不同存储库的签出。潜在的共享代码首先存在于分支中,然后才被提升到主干。
我发现让人们想要使用您的可重用代码的最佳方法是向他们展示如何按照您的意图使用它。提供使用您的库的示例程序。就像任何其他项目一样,将其保存在源代码存储库中。当可重用库发生变化时,保持示例程序的文档和更新。
几年前在研究生院的课堂上,我对一个基于 Web 的存储库进行了案例研究,程序员可以在其中存放他们的代码以供重用。这不是为了我的工作场所,而是为了一个拥有数千名科学家和工程师的实验室,那里没有任何其他集中的共享方式。
就我个人而言,我尝试演示我认为有用的代码,并在使用它和不使用它之间进行比较,以尝试说明它为什么这么好。通常这发生在每周的开发会议期间。
我同意它确实需要有人传福音并推动采用新方法,我发现很多开发人员不擅长的事情之一就是推销自己或他们所做的事情,所以值得努力在这些技能上,并以身作则,推动其他人也这样做。
这可能有点以 java 为中心;但是在企业 Maven 存储库中发布二进制文件和源代码确实可以提高可见性。它使其他人乐于使用您的代码;)我们与许多开源项目合作,发现源代码可供阅读确实是一个关键特性,尤其是当它可以直接集成到 IDE 中时。我们真的希望内部项目也能做到这一点!我想知道在我们拥有 maven 之前我们是如何管理的??(即使是蚂蚁现在也可以使用 maven repo)