我不太确定我应该对一组分组的类做些什么.
我的情况:我有11个只与该类相关的类Character.cs,但所有这些类(包括Character.cs和CharacterManager.cs)都在命名空间内Models.Characters.
这是命名类的更"正确"或首选方式:
(例子):
CharacterDetails.cs
CharacterSprites
CharacterAppearance
CharacterClientRights
CharacterServerRights
要么:
Details.cs
Sprites
Appearance
ClientRights
ServerRights
(他们都注意到了Models.Characters(例如Models.Characters.CharacterDetails,Models.Characters.Appearance)
提前致谢.
我正在寻找一个忽略所有没有setter的属性的FluentNH(Fluent NHibernate)约定或配置:
它仍然会映射这些:
public class foo{
public virtual int bar {get; private set;}
}
Run Code Online (Sandbox Code Playgroud)
并省略这些:
public class foo{
public virtual int fizz{get;private set;}
public virtual int bar{get {return fizz;}} //<-------
}
Run Code Online (Sandbox Code Playgroud) 在Objective-C中定义私有和受保护方法的推荐方法是什么?一个网站建议在实现文件中使用私有方法的类别,另一个建议使用尾随下划线,或XX_其中XX是一些项目特定的代码.Apple自己使用什么?
那么受保护的方法呢?我读到的一个解决方案是在单独的文件中使用类别,例如CLASS_protected.h和CLASS_protected.m,但这似乎会变得非常臃肿.我该怎么办?
我一直在使用自定义委托类型和通用Action委托类型快乐地编写事件,而没有真正考虑我在做什么.
我有一些很好的扩展助手Action,EventHandler这使我倾向于使用那些预定义的委托类型而不是我自己的,但除此之外......
除了约定之外,是否有一个很好的理由支持EventHandler和EventHandler<T>优先于自定义委托类型或通用Action委托类型?
我正在做一个快速的项目,其中,我正在直接研究一个不断变化的模块.其他人直接依赖于模块,因此,我将公共接口存根并将其部署到我们的本地Nexus存储库中以0.0-SNAPSHOT供使用.
现在我已经完成了模块的第一次迭代,我试图重新部署更新的工件.阅读有关快照的内容,其他人声称快照应代表当前的主干.这是真的?
Maven在重新部署时会自动增加我的快照版本 - 所以,从那里开始0.0-SNAPSHOT,我0.0-SNAPSHOT只是,它是同一个快照的迭代3或4.什么时候应该翻到0.1-SNAPSHOT?是否有一个插件我可以用来自动化版本更改,而不是手动编辑我的pom?
在集成测试和我们的第一个系统版本的部署之后1.0-RELEASE,我的模块应如何进展?我应该将模块移动到1.0-SNAPSHOT其上并继续吗?是否应该遵循一种方法,还是由开发人员自行决定?
例如,如果我有一个传递所有验证的图像,例如尺寸,尺寸,类型等,但是当我必须处理它时,由于某种未知的原因,ImageMagick无论如何都会抛出一个错误...我应该如何处理?
ruby error-handling exception-handling ruby-on-rails conventions
如果我有一个对象Mode,根据通用/标准约定,调用变量mode是否可以接受?当我在我的CS课程(高中)期间提出一个假设的情况时,我的老师打断了我的问题,为什么我会在没有资本的情况下称一个与班级同名的对象?(这非常脱离背景,但我的假设情况与此无关.)
此外,我已经明白,如果我的老师说出这样的话,我通常应该这样做,以符合她所希望的惯例.我只是想知道一般情况下是否可以接受.
是否有一种Pythonic方式可以说"这个迭代中的任何元素都是如此"吗?或者,换句话说,是否有一个更清洁的版本:
if [True for x in mylist if my_condition(x)]:
...
Run Code Online (Sandbox Code Playgroud) 我只是尝试编译一些C++代码,这些代码TAB在字符串中使用了文字Tab字符(如我在键盘上按下键).令我惊讶的是,它汇编得很好.回想起来,我认为这是有道理的,因为它是一个像其他任何人一样的角色.
cout << "Tab: [TAB]";
Run Code Online (Sandbox Code Playgroud)
在此之前,我总是习惯\t在字符串中定义标签.
cout << "Tab: [\t]";
Run Code Online (Sandbox Code Playgroud)
显然,TAB在字符串中使用字面值的代码在可读性方面会受到很大的影响,但是\t除了约定之外还有其它技术原因吗?
假设我的代码中有以下方法:
public bool RemoveItem(Item item)
{
// Logic to remove a single item
}
public bool RemoveItems(List<Item> items)
{
// Logic for removing multiple items. Running over all items and calling RemoveItem will be inefficient in my case
}
public bool AddItem(Item item)
{
// Logic for adding single item
}
public bool AddItems(List<Item> items)
{
// Logic for adding multiple items
}
Run Code Online (Sandbox Code Playgroud)
有没有办法防止每个操作有多种方法?我有很多这样的方法.我希望以某种方式将每一对方法组合成一个方法.这样做有一个很好的方法吗?
我可以用单个项目创建一个列表,并且仅支持将列表作为参数的方法,但对我来说似乎很难看.
其他人怎么做呢?
conventions ×10
c# ×4
c++ ×1
events ×1
java ×1
list ×1
maven ×1
methods ×1
namespaces ×1
nexus ×1
objective-c ×1
python ×1
python-3.x ×1
ruby ×1
svn ×1
tabs ×1
versioning ×1
visibility ×1