我正在设计一个新的系统,我有很多接口随着系统的发展而增长.命名此接口的最佳做法是什么
ISomethingV01
ISomethingV02
etc
Run Code Online (Sandbox Code Playgroud)
我这样做
public interface ISomething{
void method();
}
Run Code Online (Sandbox Code Playgroud)
然后我必须添加方法2所以现在我做什么?
public interface ISomethingV2:ISomething{
void method2();
}
Run Code Online (Sandbox Code Playgroud)
或者以其他方式?
我之前询问过Version Cue 3和Subversion.我认为这是一个更好的问题,有人建议http://www.gridironsoftware.com/Flow/我希望这个问题将允许其他人加入并建议其他工具或提供使用Version Que与其他工具的具体建议.
我总是习惯用他们的主要/次要内部版本号检查Windows版本.奇怪的是,Windows 7和Server 2008 R2都返回相同的主要/次要版本号组合.
通过ver在命令提示符下键入来确认
在我工作的项目中,我们处理医疗账单.
每次状态对官方表单(我们的数据类表示)进行更改时,为了保持与以前表单的向后兼容性,我们添加新属性但保留旧属性,并具有使用的文档版本属性确定完成哪些验证以及显示它的UI操作.
这导致了项目生命周期内的繁琐课程(近5年的国家法定变更),而且根本不支持旧文档格式不是一种选择.
我想尝试为每个文档版本创建一个新类,但即使这样,我们也会有几个非常相似(虽然稍有改动)代码的副本.而ProgressNoteV16,ProgressNoteV17等类名看起来很可怕.
不能使用继承,因为这仍然会导致相同的问题(具有不再需要的属性的类).接口会使接口变得臃肿,这无法解决问题.
用于解决此问题的解决方案和最佳实践是什么?
首先,我认为这个论坛不适合我的问题,所以如果它在错误的地方,请在适当的地方请原谅和放置.我没有为我的问题找到合适的论坛.
我开发了一个C#应用程序(Win Forms).现在我需要处理它的版本编号.我无法弄清楚最好的方法是什么.我希望版本号简单,如1.2或1.2.1.我读到了关于SVN版本的内容,但在这个阶段看起来似乎并不那么令人困惑.应用程序有不同的版本类型 - 1个带安装程序,1个没有安装程序.
我认为发布版本和开发版本应该是相同的 - 如果我错了,请纠正我.它应该自动处理还是手动更改?处理应用程序版本编号的最佳,简单和简单方法是什么.
我有的是:
表现:
<uses-sdk
android:minSdkVersion="10"
android:targetSdkVersion="18" />
Run Code Online (Sandbox Code Playgroud)
资源:
View view = createViewFromWhatever();
Bitmap bitmap = loadSomethingAddMore();
Run Code Online (Sandbox Code Playgroud)
我搜索到的任何地方都是接受的,建议:
view.setBackgroundDrawable(new BitmapDrawable(bitmap));
Run Code Online (Sandbox Code Playgroud)
但它在API 18中已弃用.我对操作系统级别的框架错误和错过文档感到恐惧.我想要尊重他们所说的话,并且在遇到崩溃的情况下"这不是我的错"
我甚new BitmapDrawable(bitmap)至无法使用,而我需要new BitmapDrawable(getActivity().getResources(), bitmap).如果我将方法更改为推荐方式:setBackground(new BitmapDrawable(getActivity().getResources(), bitmap));
它会将消息标记为错误:
调用需要API级别16(当前最小值为10):android.widget.RelativeLayout #setBackground
作为一个解决方案,我可以检查运行用户的版本是什么,并执行if-else,而不是我将拥有代码 if(isAndroidVersion10()) else if () ...
任何解决方案可接受
如果我通过反射逃避弃用警告,我仍然有责任在崩溃的情况下,因为我已经使用不推荐的方法释放代码! - 我打电话的方式是不同的.
如果我忽略了Lint,那么它会在低版本的api中崩溃,进行测试.
Ofc我想支持API 10,所以不能从这里接受大部分答案
我们正在使用Bamboo 5.2进行持续集成.
源计划有几个额外的分支.每个分支都由git repo中的提交触发.
部署项目为每个分支配置了单独的环境,部署在成功构建源计划时自动进行.
当自动部署默认分支时 - 使用"发布版本控制"中定义的命名模式正确创建新版本(我们使用源计划变量来创建发布版本).
当自动部署任何其他分支时出现问题 - 我们使用默认版本获得新版本.正如Bamboo所说:"分支的发布将默认使用以构建结果的内部版本号为后缀的分支名称."
有可能覆盖这种方法吗?目标是从计划的变量设置发布版本(无论是默认计划变量还是分支计划变量),原因是我们有单个计划,配置了几个稳定的分支.
当我的主分支启用了GitHub分支保护时,我正在寻找一个很好的流程来管理我的项目的版本号.
在理想的世界中,当您合并到"发布"分支时,持续集成服务器将运行其测试,然后自动增加项目的版本号并返回到SCM系统.
但是,通过分支保护,您无法在没有Pull请求的情况下提交到您的分支,因此您有一个catch-22,当CI服务器尝试更新版本号时,CI服务器无法将其推送到受保护的分支.
我可以想到一些解决方法,所有这些都是次优的:
我希望还有其他我没有想过的选择.
我们使用的是Javascript和npm,但我认为这个问题与语言无关,例如,Java和Maven肯定存在相同的问题.
我有一个git仓库,我存储了我的个人文件.其中一些文档是LaTeX文件,有些甚至是PDF.我当然希望他们在我的文件回购中.
但是当我创建一个org-mode文档(*.org)时,我经常构建它,导致在调用org-mode文档时创建这些文件?:
我不想跟踪它们,因为它们是生成的文件,我有源代码,但我不能简单地忽略*.tex所有*.pdf文件,甚至不是所有文件.
可以在.gitignore被告知忽略名称为每个文件?.tex或者?.pdf是否有一个名为?.org同?是一个变量的任意字符串?
此时,我将 Go 1.11 模块用于多个存储库。现在我正在处理一个已经是 1.x 版本的问题。结合移动到 go 模块,我做了一些其他的重大更改,所以很明显是时候增加存储库的主要版本了。这意味着要使用第 2 版。
根据“go 命令”文档:
为了保持导入兼容性,go 命令要求主版本 v2 或更高版本的模块使用该主版本作为最终元素的模块路径。例如,example.com/m 的 v2.0.0 版本必须改为使用模块路径 example.com/m/v2,并且该模块中的包将使用该路径作为其导入路径前缀,如 example.com/m/v2 /子/包。以这种方式在模块路径和导入路径中包含主版本号称为“语义导入版本控制”。
这是否像更新我的go.mod文件的第一行一样简单,附加/v2到模块名称?或者我应该v2/在我的存储库中创建一个目录并将所有文件移动到那里?