我对这个问题的回答是"不".但我的同事不同意.
我们正在重建我们的产品,并在短期内做出许多关键决策.
在做我自己的一些工作时,我注意到我们有一些内部C++类来抽象一些POSIX API(线程,互斥,信号量和rw锁)和其他实用程序类.请注意,这些类是基本的,并且尚未从Linux移植(可移植性是重建的一个因素.)我们也使用POCO C++库.
我把它引起了我的同事的注意,并建议我们放弃我们的内部课程以支持他们的POCO等价物.我想充分利用我们已经使用的库.他们建议我们应该使用POCO实现我们的内部类,并在必要时进一步抽象出额外的POCO类,以便不依赖于任何特定的C++库(引用未来的未知数 - 如果我们想要使用不同的lib /框架,那该怎么办? QT或提升,如果我们选择的那个结果不好或开发变得不活跃,等等.)
他们也不想重构遗留代码,并且通过使用我们自己的类抽象POCO的部分,我们可以实现其他功能(经典OOP.)我可以理解这两个参数.但是,我认为,如果我们正在进行重新编码,我们应该变大,或者回家.现在是重构的时候了,它确实不应该那么糟糕,特别是考虑到我们的类和POCO(线程等)之间的相似性我不知道对于第二点说什么 - 我们应该只使用需要功能的扩展类?
我的同事也不想在整个地方乱丢POCO命名空间.我认为我们应该选择一个库/框架/工具包,并坚持下去.充分利用其功能.这不是典型的做法吗?我见过的唯一一个抽象整个框架的项目是Freeswitch(它为APR提供了自己的接口.)
一个建议是我们彼此暴露的API和潜在客户应该没有POCO,但它会出现在实现中(这是有意义的.)
我们中没有人真正拥有这些设计决策的经验,并且它在当前的产品中显示出来.从我年轻的时候就一直在这里,我有一些直觉让我来到这里,但也没有实际经验.我真的想避免解决已经解决的问题.
我认为我的问题归结为:在构建产品时,我们是否应该a)选择一个支配大部分代码的主导框架,以及b)期望该框架与产品紧密结合?这不是框架的重点吗?(框架或库是否更适合POCO?)
更一般地说,控制类和控制单元类之间有什么区别?按钮具有相同的层次结构,例如 - NSButton和NSButtonCell.
查看NSTextField绑定和NSTextFieldCell绑定的文档,它们都具有相同的"value"文档.为什么他们都有价值?一个可以存在而没有另一个仍然显示一个值?
显示为NSTextField内容的NSString或NSNumber.
显示为NSTextFieldCell内容的NSString或NSNumber.
因此,当我将文本字段或任何其他控件拖到我的UI中时,如何确定层次结构中的哪些对象实际绑定到?
在IB中有更复杂的控件在文档大纲中创建复杂的层次结构,尽管我已经搜索过,但我无法找到解释哪些对象应该关注并在绑定和连接方面使用的文档.
我将解决NSTextField/NSTextFieldCell的答案,但我真的想知道如何辨别构成控件的所有事物之间的差异以及在开发我的应用程序时应该关注的内容之间的差异.
鉴于SQL Server不允许在触发器中修改逻辑INSERTED和DELETED表,是否有一种简单的方法来更改单个列的值而不必重写整个insert语句?
例如,我应用触发器的表有20列.我想修改INSERTED表中一列(每行)的值,然后将该行插入表中.我是否可以这样做而无需编写带有19列的插入语句以及我正在修改其值的一列?
我已经看到很多关于将字符串映射到枚举的问题和答案,反之亦然,但是如何将一系列本地化字符串映射到枚举?
我应该只创建一个这样的扩展方法,从资源文件中返回正确的字符串吗?有没有办法本地化在这样的解决方案中使用的属性(如"描述")?
哪个是首选解决方案 - 扩展方法或属性.在我看来,这不是属性的预期目的.事实上,现在我考虑一下,如果我使用扩展方法,属性似乎就像我用来在资源文件中为我想要用来代替枚举值的本地化字符串指定一个键.
编辑 - 示例:
鉴于以下枚举,
public enum TransactionTypes {
Cheque = 1,
BankTransfer = 2,
CreditCard = 3
}
Run Code Online (Sandbox Code Playgroud)
我想要一种方法将每种类型映射到本地化的字符串.我开始使用枚举的扩展方法,该方法使用switch语句和对资源文件的强类型引用.
但是,每个枚举的扩展方法似乎不是一个很好的解决方案.我已经开始遵循此操作为每个枚举值创建自定义属性.该属性具有包含本地化字符串的资源文件的基本名称和键.例如,在上面的枚举中,我有:
...
[EnumResourceAttribute("FinancialTransaction", "Cheque")]
Cheque = 1,
...
Run Code Online (Sandbox Code Playgroud)
其中"FinanacialTransaction"是resx文件,"Check"是字符串键.我正在尝试创建一个实用程序方法,我可以从任何枚举中传递任何值,并让它返回该值的本地化字符串表示形式,假设指定了自定义属性.我无法弄清楚如何动态访问资源文件及其中的密钥.
我最近不得不从'dev'分支中撤出一项功能,因为该功能被搁置了直到以后。
为此,我创建了一个分支,该分支的父级在“ dev”提交前一个提交(第一个功能提交是从另一个分支压缩的合并),一个提交之前,然后我将所有从dev提交的功能提交精选到了“ dev”分支中。新分支。最后,我对开发人员进行了一个大型的还原提交,以删除那些经过精心挑选的提交。
现在,我想将新分支基于dev进行更新。如果我运行“ git rebase dev”,则新分支的头将变为大还原,因此该功能将丢失。
使用“ git rebase --strategy = ours dev”时,功能分支中的所有提交都将跳过,并显示消息“已应用:0001 ...”。
如何将Feature分支重新建立到dev上,以便将对Feature的所有提交都应用到dev的头上?
也许有比我在这里描述的方法更好的方法来进行此过程?
我想在执行错误查询时从SQL Server获取消息号和严重性级别信息.
例如,当用户尝试删除另一条记录引用的行,并且级联关系为"无操作"时,我希望应用程序能够检查错误消息547("DELETE语句与REFERENCE constraint ...")并向用户返回用户友好和本地化的消息.
在SQL Server上直接运行此类查询时,将打印以下消息:
Msg 547, Level 16, State 0, Line 1
<Error message...>
Run Code Online (Sandbox Code Playgroud)
在Asp.Net应用程序中,此信息是否可在事件处理程序参数或其他位置获得?
另外,我不认为有人知道在哪里可以找到SQL Server消息号的确切参考?
sql-server ×2
architecture ×1
asp.net ×1
attributes ×1
c# ×1
c++ ×1
cocoa ×1
enums ×1
frameworks ×1
git ×1
git-rebase ×1
nstextfield ×1
objective-c ×1
string ×1
triggers ×1