我正在开发一个应用程序.它处于初始阶段,因此表中的记录数量不大,但稍后它将在同一个表中有大约100万条记录.
我想知道在编写select查询时我应该考虑哪些要点,这将从表中获取大量数据,因此它不会降低性能.
看过Rob Conery的Kona应用程序的样本后,我发现他正在使用IoC - ISession,他有数据层代码和服务,他在操作数据存储区中的数据时需要执行一些额外的业务逻辑.例如,我们可能不仅仅是向DB添加记录,而且还改变了另一条记录的属性,增加了一些计数,取回了一些东西等等.我们需要将这些额外的代码放在一边,并将它放在那些服务中.
例如,他有一个操纵客户的CustomerService.这要求我们将ISession实例发送到CustomerService,以便CustomerService可以使用它来访问数据存储区.
现在另一种方法是将其他代码放在Customer类本身,并将ISession(或IRepository,无论我们使用的术语)发送到该类.而且没有任何服务.通常,Customer,Order,Product等类是Model类,因此会导致大/重模型类.
我的问题是,哪种解决方案更好?到目前为止,我没有必要,因为我在控制器中有大部分代码,但现在随着应用程序的增长,我需要对此做出决定并清理控制器.
目前我有: - 具有业务逻辑的胖控制器, - 非常原子的存储库, - 非常干净的模型和视图模型.
我应该转到: - 超薄控制器, - 包含更多代码的存储库, - 具有业务逻辑代码的模型(特别是我的模型类包含Add(),Remove()等方法,例如Customer.Remove()??)
或者 - 苗条的控制器, - 原子库, - 仍然是干净的模型, - 服务(以封装其他任何不属于前者的东西).
有人可以告诉我Joomla中模块和组件之间的基本区别是什么?
如果可能的话,请告诉我们一些例子,以便于理解.
任何人都可以告诉我如何发送图像作为通讯中的主体部分.如何从后端添加任何图像,以便当我向订阅者发送简报时,我想要显示的图像作为邮件的主体部分.
实际上我所说的是我有一个表格,我可以在其中输入文字,并且文本在通讯中很顺利.现在我想在表单中添加图像,这样我就不需要写任何东西,只有图像将作为邮件的主体部分邮寄到邮件中.
非常感谢.你们一直非常支持我.
当我在加载数据时通过UITabBarController按钮进行选项卡时,我得到一个例外.我怎样才能解决这个问题?
如何在加载数据之前禁用按钮,以避免引起异常?
我尝试传递一个结构的指针,该结构从函数'bar'返回给函数'foo_write'作为返回值.但是我得到'foo = POINTER(temp_foo)'行的错误消息'TypeError:必须是ctypes类型'.在ctypes在线帮助中,我发现'ctypes.POINTER'仅适用于ctypes类型.你知道另一种方式吗?你会推荐什么?
C:
typedef struct FOO_{
int i;
float *b1;
float (*w1)[];
}FOO;
foo *bar(int foo_parameter) {...
void foo_write(FOO *foo)
Run Code Online (Sandbox Code Playgroud)
Python与ctypes:
class foo(Structure):
_fields_=[("i",c_int),
("b1",POINTER(c_int)),
("w1",POINTER(c_float))]
temp_foo=foo(0,None,None)
foo = POINTER(temp_foo)
foo=myclib.bar(foo_parameter)
myclib.foo_write(foo)
Run Code Online (Sandbox Code Playgroud) 根据文档,该方法String.valueOf(Object obj)返回:
如果参数是
null,那么一个字符串等于"null"; 否则,obj.toString()返回值.
但是当我尝试这样做时怎么样:
System.out.println("String.valueOf(null) = " + String.valueOf(null));
Run Code Online (Sandbox Code Playgroud)
它会引发NPE而不是?(如果你不相信,请亲自尝试!)
Exception in thread "main" java.lang.NullPointerException
at java.lang.String.(Unknown Source)
at java.lang.String.valueOf(Unknown Source)
怎么会发生这种情况?文档对我说谎吗?这是Java中的一个主要错误吗?
我在我的项目中使用eclipse,在弄乱我的eclipse设置时,我启用了Javascript支持.现在eclipse抱怨JQuery库中有错误,并且不让我编译项目.有谁知道如何关闭javascript验证?
我收到错误:
名为's'的局部变量不能在此范围内声明,因为它会给's'赋予不同的含义,'s'已在'子'范围内用于表示其他内容.
static void Main(string[] args)
{
string s = "hello"; // Line 1
var test = new[] { "abd", "def" }.Select(s => s.StartsWith("a")); // Line 2
}
Run Code Online (Sandbox Code Playgroud)
为什么?
我猜想第1行的's'会被'.Select(s => ..'第2行中的'decleration)阴影但是 - 据我所知 - 事实并非如此......
PS我不确定是否用正确的术语表示 - 如果有更好的单词/短语,请纠正我.
有很多网页在那里暗示让svn外部看起来像git子模块的hackish方法.我已经读过一些关于差异的说法,但这似乎不是很基础:
Git子模块链接到另一个项目的存储库中的特定提交,而svn:externals总是获取最新的修订.
为什么这种差异会使它们根本不相容?我们可以假设没有合理的默认值,例如大多数svn:externals指向永不移动的标签吗?
php ×2
api-design ×1
asp.net-mvc ×1
c ×1
c# ×1
components ×1
ctypes ×1
eclipse ×1
email ×1
git ×1
git-svn ×1
iphone ×1
java ×1
javascript ×1
joomla ×1
jquery ×1
lambda ×1
linq ×1
module ×1
newsletter ×1
null ×1
objective-c ×1
oracle ×1
overloading ×1
performance ×1
pointers ×1
python ×1
select ×1
structure ×1
svn ×1
syntax ×1
validation ×1