我正在尝试设置可重用代码的存储库.我在想每个可重用的代码模块都有一定的"成熟度"等级.评级将定义为可重用代码位于特定要求集中的级别.最高成熟度级别将是预定义要求集中的最高标准度.
例如:
等级; 要求; 描述
等级0; 代码合法使用; 该代码在商业行业/多个合同/等中使用是否合法?
1级; 基本代码行并满足0级要求; 原型代码,第三方工具等等
2级; 具有功能界面和注释,符合1级要求; 每个类和函数的足够文档; 能够从评论
等级3 确定功能; 遵守编码标准,符合2级要求; 遵循定义的编码标准并通过代码检查实用程序测试
级别4; 包括测试用例并满足3级要求; 有足够的测试用例来测试代码
级别5的所有功能; 经再利用委员会批准,符合4级要求; 由重用专家和同行审核并验证其符合所有成熟度级别
我想知道这个成熟度级别是否应该是一个层次结构,为了进入下一个级别,你需要满足所有以前级别的要求(如上所示)?
或者它是否应该是满足下一级别的要求的子集?
例如,我们满足x个y要求,我们可以进入下一个级别(要求与上面提到的相同).
等级0,满足6个要求中的0个
等级1,符合6个要求中的1个
......
我在子集方法中看到的问题是一些要求应该具有更强的权重,并且在这种方法中不会被考虑(除非我开始具体如此,满足b和x中的y等).但随后它可能会变得复杂起来.
有没有人以前做过这个,如果有的话,你是如何设置你的图书馆的?您是否拥有所有或其他结构的成熟度?任何投入将不胜感激.
我正坐在这里写一个我以前写过的函数,在地球上的某个地方.这是非常普遍的没有尝试过,我想知道为什么我不能只是去一个网站并搜索一个功能,然后我可以在2秒内复制并粘贴到我的项目中,而不是浪费我的一天重新发明轮.
当然有一些你可以使用的库,但你在哪里找到这些库,当它们不存在时,是否有一个像我描述的网站?
可能是某种类型的wiki包含任何人都可以编辑和改进的免费代码?
编辑:我可以编写好的代码,我只是不知道怎么做.因此,例如,现在,我正在尝试在太空中本地化机器人/汽车/点.我知道有一种方法可以做到这一点,只是基于距离和距离.三角测量和三角测量.如何编码这是一个不同的故事.一个可以拥有伪代码的网站,一步一步如何做到这一点将是非常有用的.它还可以确保最佳解决方案,因为每个人都可以编辑它.我也在用Matlab写作,我讨厌它,因为它很古怪,增加了我创建像我描述的网站的愿望.
我正在做一个可以管理FOSS的来源,其中一个是Black Duck Software,也是ohloh.net.我想知道是否有人知道相似的工具?
目前我正在对我的所有精灵进行静态引用,并在SimpleBaseGameActivity的OnCreateResource方法中加载和初始化它们,但是现在我必须在spirtes上覆盖onAreaTouched监听器以及在初始化Sprite时我可以覆盖它的方式.但我有一个静态方法为每个精灵创建Atlas和Texture Region.我在我的场景类中使用这些精灵,我想在那里覆盖onAreaTouched.我可以在我的场景中为特定的精灵注册TouchArea,这样就可以完成但是我想以某种方式覆盖OnAreaTouched,以便可以完成代码的可重用性.这是我目前正在创建和加载精灵的方式.
defualtCageSprite = createAndLoadSimpleSprite("bg.png", this, 450, 444);
Run Code Online (Sandbox Code Playgroud)
这是我的方法createAndLoadSimpleSprite.
public static Sprite createAndLoadSimpleSprite(String name,
SimpleBaseGameActivity activity, int width, int height) {
BitmapTextureAtlas atlasForBGSprite = new BitmapTextureAtlas(
activity.getTextureManager(), width, height);
TextureRegion backgroundSpriteTextureRegion = BitmapTextureAtlasTextureRegionFactory
.createFromAsset(atlasForBGSprite, activity, name, 0, 0);
Sprite sprite = new Sprite(0, 0, backgroundSpriteTextureRegion,
activity.getVertexBufferObjectManager());
activity.getTextureManager().loadTexture(atlasForBGSprite);
return sprite;
}
Run Code Online (Sandbox Code Playgroud)
现在,如何在不丢失代码可重用性的情况下覆盖某些精灵的onAreaTouched.
最近,在阅读这篇博文之后,我有一个危险的想法.这个想法可以这样表达:
我不需要C++标准库提供的大部分内容.那么,为什么我不实现一个不太通用但更易于使用的版本?
作为一个例子,使用STL吐出大量难以理解和损坏的编译器错误.但是,我不关心分配器,迭代器等.那么为什么我不花几个小时来实现一个易于使用的链表类,例如?
我想从StackOverflow社区了解到的是:对于C++中的大多数现有功能而言,"滚动我自己"有哪些危险,可能的缺点和可能的优势?
编辑:我觉得人们对这个想法误解了我.当时的想法是要了解自己是否可以实现一个非常小的一组被大大简化STL功能-更多的项目来教我关于数据结构等.我不建议从头开始重新发明整个车轮,只是我需要和想要了解的部分.我想我想弄清楚的是,使用STL的复杂性是否需要创建更小,更简单的版本.
重新使用提升或类似.
我编写的大部分内容都是针对大学的,我们不允许使用外部库.所以它可以是C++标准库,也可以是我自己的类.
这个问题的客观性.
这个问题不是主观的.也不应该是社区维基,因为它不是民意调查.我想要具体的论点,强调我的方法可能出现的一个优点或一个缺点.与流行的看法相反,这不是意见,而是基于经验或良好的逻辑论证.
格式.
请为每个答案发布一个缺点或一个优势.这将允许人们一次评估个人想法而不是所有想法.
请...
没有宗教战争.我不是任何语言的粉丝.我用任何适用的东西.对于图形和数据压缩(我目前正在研究的),似乎是C++.请限制您对问题的回答,否则他们将被低估.
我在Eclipse中有多个Java项目.我想从我的旧项目中重新使用我的新项目中的一些类.Eclipse中最好的方法是什么?
即是可以在我的新项目的构建路径中添加另一个"项目文件夹"吗?
我在Haskell中遇到了关于建模继承的这个问题,它提醒我,我有一个更复杂的版本同样的问题.我将从那里采用这个例子,因为它比思考我自己更容易.
假设您的程序包含多种类型:
data Camera = Camera ...
data Light = SpotLight ... | DirectionalLight ...
data Object = Monster ... | Player ... | NPC ...
Run Code Online (Sandbox Code Playgroud)
现在你想要实现一些基本的物理,所以你希望它们都具有位置和速度,比如某种类型Vec3.
执行此操作的一种方法是Physical使用pos和vel函数声明类型类,并为其创建所有类型的实例.但这意味着你必须修改所有类型以包含两个Vec3s,如果你已经定义了很多很好的类型,那么这很烦人,而你只想在顶部粘合一些功能.Chris Taylor提出的基于镜头的解决方案也有同样的问题.
一个对我来说更整洁的解决方案是声明一个新类型的构造函数,
data Physical a = Physical a Vec3 Vec3
Run Code Online (Sandbox Code Playgroud)
然后你只需要执行pos,vel以及Functor实例一次,你得到所有现有的类型声明.
但是......这并不是很好.如果您现在希望能够将对象绘制为蓝色或绿色或紫色,则可能需要使用颜色执行相同操作:
data Coloured a = Coloured a Colour
Run Code Online (Sandbox Code Playgroud)
但是现在,如果你有一个Coloured Physical Camera,你必须fmap一个不同的次数取决于您是否想看看它的颜色和它的位置,或者它的焦距.和a Coloured Physical Camera应该是一样的Physical Coloured …
我写了大量的python脚本,我发现自己重复使用了我为其他项目编写的代码.我的解决方案是确保将代码分成逻辑模块/包(这是给定的).然后我让它们设置为setuptools并在PyPI上发布它们.这允许我的其他脚本总是拥有最新的代码,我得到一种温暖的模糊感觉因为我不重复自己,而且我的开发通常不那么复杂.我也感觉很好,可能有人在那里发现我的代码方便他们正在处理的东西,但它主要是出于自私的原因:)
对于所有的pythonistas,你如何处理这个?你使用PyPI或setuptools(easy_install)吗?或者是其他东西?
我是SSIS/C#的新手(我通常是一名Java开发人员),如果这是一个非常愚蠢的问题,请道歉.
本质上问题是:我有两个数据流任务,它们加载数据并将它们导出为传统的平面文件格式.格式化由脚本任务(C#)完成.
我想做的是在两者之间分享一些共同的代码.例如,我可以创建一个公共基类,然后为我的两个不同的脚本任务扩展它.
然而,似乎SSIS并没有真正为此做好准备.
有谁知道是否有办法完成我想做的事情?
我正在使用AngularJS + Karma.
configService管理我的应用程序的设置(例如背景颜色,它在调试模式下,一般权限......).它使用$ http加载初始数据.我成功地为服务编写了测试,但我的指令和控制器使用它.
当我为指令编写单元测试时,我必须模拟服务.
我知道我能做到:
spyOn(configService, 'getBackgroundColor').andCallFake(function (params) {
return "red";
});
Run Code Online (Sandbox Code Playgroud)
但该服务有25多种方法和初始数据加载.我不想在每个测试套件中编写(并维护)这个spyOn的东西.更重要的是,我使用$ http在工厂加载数据,这也应该被嘲笑.如果我只是注入服务并模拟调用,我仍然会发出http get请求.
您认为重用模拟的最佳方法是什么?
code-reuse ×10
c# ×2
c++ ×2
java ×2
algorithm ×1
andengine ×1
android ×1
angularjs ×1
buildpath ×1
eclipse ×1
haskell ×1
jasmine ×1
karma-runner ×1
mixins ×1
open-source ×1
python ×1
reusability ×1
ssis ×1
unit-testing ×1