我正在设计一个新的系统,我有很多接口随着系统的发展而增长.命名此接口的最佳做法是什么
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)
或者以其他方式?
更新20100224我真的不需要某些供应商网站的一些蹩脚的定义.我正在寻找的是实际实施以及实际实施这些东西的人们在日常IT /业务周期中面临的挑战.
更多内容如下:
没有创建/采用退休策略:显然需要创建一个.我对您如何创建此策略并将其出售给管理层感兴趣.您看到的所有成本/收益是多少?您是否对客户重新编码要求与内部支持要求进行BE分析?您是否为古代API的内部支持成本分配了$ value?
生产IT支持的影响:您如何与生产IT团队合作以部署策略.他们喜欢什么,是什么让他们疯了?
软件:你们软件的人喜欢做什么,业务告诉他们做什么以及他们实际做了什么?什么最适合他们?
质量保证:质量保证如何处理测试.恩.如果您创建了一个处理多个版本的服务,QA会在每次对其中一个版本进行更改时对所有内容进行完全回归吗?
DBA:你的dba如何处理对于向xml响应添加字段的数据记录至关重要的常见过程?您是否有单一的proc或者您是否根据架构或其他方式进行分支和分段?
原始笔记
我正在收集有关不同Web服务版本控制策略的优缺点的信息.该业务尚未确定Web服务退役策略,由于产品变更,客户需求变更和合作伙伴集成变更,我的Web服务确实发生了重大变化.
我正在寻找维护独立独立或多个/集成版本的优缺点,以及这对业务的影响,包括开发人员支持/开发人员集成资源,生产IT支持,软件,QA和DBA.
任何见解,经验,资源或想法都表示赞赏.
我的问题与Team Foundation Server(TFS)有关,具体来说,在进行"获取最新版本(递归)"之前,有没有办法知道服务器上哪些文件已经更改?
在Visual Source Safe(VSS)中,您可以执行"获取"(我认为),它会向您显示正在考虑更新的所有文件以及我们在服务器上更改了哪些文件(因此会在更新期间更新)得到).这个功能似乎完全没有了!
此外,当我在TFS中执行"获取最新版本"时,似乎没有任何事情发生任何通知,除了暂时的进度条模糊.我原本预计会在最后通知没有更新,或者n个文件已更新.相反,我必须在Visual Studio的TFS输出中查看发生了什么.这是正确的吗?
非常感谢提前!
安迪.
REST资源版本控制的最佳实践是将版本信息放入HTTP请求的Accept/Content-Type标头中,使URI保持不变.
以下是用于检索系统信息的REST API示例请求/响应:
==>
GET /api/system-info HTTP/1.1
Accept: application/vnd.COMPANY.systeminfo-v1+json
<==
HTTP/1.1 200 OK
Content-Type: application/vnd.COMPANY.systeminfo-v1+json
{
“session-count”: 19
}
Run Code Online (Sandbox Code Playgroud)
请注意,MIME类型中指定了版本.
这是版本2的另一个请求/响应:
==>
GET /api/system-info HTTP/1.1
Accept: application/vnd.COMPANY.systeminfo-v2+json
<==
HTTP/1.1 200 OK
Content-Type: application/vnd.COMPANY.systeminfo-v2+json
{
“uptime”: 234564300,
“session-count”: 19
}
Run Code Online (Sandbox Code Playgroud)
有关更多说明和示例,请参见http://barelyenough.org/blog/tag/rest-versioning/.
是否有可能在基于Java的JAX-RS实现中轻松实现此方法,例如Jersey或Apache CXF?
目标是让几个@Resource类具有相同的@Path值,但是根据MIME类型中指定的实际版本提供请求?
我一般都研究过JAX-RS,特别是Jersey,并没有发现它的支持.泽西岛没有机会以相同的路径注册两个资源.需要实现WebApplicationImpl类的替换以支持它.
你能提出什么建议吗?
注意:需要同时提供同一资源的多个版本.新版本可能会引入不兼容的更改.
问题
将此文件树视为我的开发存储库.
- foo/
- .git/
- [...]
- bar/
- backupclient.py
- supersecretstoragecredentials.ini
对于开发,supersecretstoragecredentials.ini需要使用有效凭据填写 - 而我仍然需要在存储库中保留它的干净版本,以便其他用户可以轻松设置其凭据.
可能的解决方案
.gitignore supersecretstoragecredentials.ini并创建一个supersecretstoragecredentials.ini-example,
supersecretstoragecredentials.ini-example到supersecretstoragecredentials.ini.backup.pygit会忽略该位置,例如 supersecretstoragecredentials_local.ini.正如kan指出的那样,这两种解决方案类似,但在工作流程方面并不完全相同.
还有其他选择吗?是否git拥有某种功能来协助解决这类问题?
根据这里的答案:我应该卸载哪些(如果有的话)最近的Windows更新来重新启动Silverlight或纠正其他问题?,我卸载/重新安装Silverlight并重新启动.但是,现在,我收到了一个编译错误,即:
"未找到导入的项目"C:\ Program Files(x86)\ MSBuild\Microsoft\Silverlight\v5.0\Microsoft.Silverlight.CSharp.targets".确认声明中的路径是否正确,以及该文件存在于磁盘上."
它指向*.csproj文件中的这一行:
<Import Project="$(MSBuildExtensionsPath32)\Microsoft\Silverlight\$(SilverlightVersion)\Microsoft.Silverlight.CSharp.targets" />
Run Code Online (Sandbox Code Playgroud)
我完全不明白这是做什么的; 如果这是远方可以理解的东西,我需要做些什么才能解决这个难题?
当我尝试安装Silverlight 4工具时(因为有人表示是/解决方案,例如在Silverlight 4:解析Microsoft.Silverlight.CSharp.targets时未找到?),我得到"安装要求:
必须先安装与Silverlight Tools 4的语言版本匹配的Visual Studio 2010或Visual Web Developer Express 2010或Visual Phone Developer Express 2010,然后才能继续安装Silverlight Tools.Silverlight Tools提供其他语言版本http://go.microsoft.com/fwlink/?LinkId=177432."
我确实安装了VS 2010(SP1).我甚至安装了VS Express(2012)用于Web!
基于另一个提示,我还安装了Silverlight 4 SDK,但是在尝试现在只打开项目时,我得到了"你需要在打开Silverlight项目'Bla'之前安装最新的Silverlight Developer运行时." 它让我安装了Silverlight 5(再次).
我这样做了,但我重新启动了,并且......仍然得到同样的错误消息...
根据我在这里得到的线索:http://connect.microsoft.com/VisualStudio/feedback/details/573750/the-imported-project-path-microsoft-webapplication-targets-was-not-found
我在csproj文件中替换了这一行:
<Import Project="$(MSBuildExtensionsPath32)\Microsoft\Silverlight\$(SilverlightVersion)\Microsoft.Silverlight.CSharp.targets" />
Run Code Online (Sandbox Code Playgroud)
......这一个:
<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
Run Code Online (Sandbox Code Playgroud)
......而且我比以前更进一步,但我不知道最后一次改变是否是必要的改动,或者如果上面列举的所有步骤都是必要的.除了影子,很可能没有人知道.
实际上,简单地添加该行(无需替换另一行),项目编译,但似乎失去了对Razor或其他东西的了解,因为它失败了这个YSOD:
Server Error in '/TLDReporter' Application.
Compilation Error
Description: An …Run Code Online (Sandbox Code Playgroud) 我有一个休息端点用于返回有关应用程序的信息(到目前为止只有应用程序版本)但到目前为止这个信息是硬编码的,并且很容易忘记更改它.我最好从pom或manifest文件中检索app版本.有没有带来这种功能的项目?
假设我们使用gRCP/Protobuf来连接许多应用程序.这些应用程序是以自己的速度在自己的团队中开发和发布的.随着时间的推移,将在定义的界面上使用不同版本的相同应用程序的不同版本(例如,在用户PC上安装的桌面应用程序).
虽然Protobuf旨在允许向后兼容,但有没有办法知道哪个版本的接口在不同的点运行?
最简单的实现是使接口版本等于app版本.但是,由于使用了许多语言,在所有语言中实现应用程序版本并非易事.
那么版本界面如何让服务器知道客户端版本?我认为服务器应该能够登录
来自AppName v.version的DATETIME连接[using interface v.version]
我需要在页脚中以xyz格式显示我的 React 应用程序的版本。
如果我想增加x或y或z,我需要在每次部署应用程序时增加此版本,通过提供一个选择。
我该如何实现这一目标?:)