使用过程中的会话状态是邪恶的,当涉及到缩放的Web应用程序(不群发挥出色,炸弹出来的时候服务器回收).
假设你只需要保持的少量信息在会话状态,什么是使用加密的Cookie项用于此目的,而不是特定状态的服务器/数据库的的缺点?
显然使用cookie会产生少量的网络开销,显然你是在假设客户端浏览器/移动设备上启用了cookie的情况下运行的.
您可以通过方法看到其他哪些陷阱?
对于简单,可扩展且强大的会话,这是一个很好的选择吗?
Effective Java(第二版),第4项,讨论使用私有构造函数来强制执行非实例化.这是本书中的代码示例:
public final class UtilityClass {
private UtilityClass() {
throw new AssertionError();
}
}
Run Code Online (Sandbox Code Playgroud)
然而,AssertionError似乎不是正确的抛出.没有任何东西被"断言",这就是API如何定义AssertionError的使用.
Throwable在这种情况下,通常会有不同的情况吗?通常只会抛出一个Exception带有消息的将军吗?或者为此编写自定义是否常见Exception?
这是非常微不足道的,但我认为从形式和标准的角度来看,我只是对它感到好奇.
我正和同事谈话,并且出现了null的主题.他在幕后告诉我,在.NET中它只是一个非常小的数字.我一直认为对象只是没有指向堆上任何内存的指针,但我不确定.
所以我希望社区可以为我们清理它; P
所以,我正在使用jdbc与MySQL数据库通信.对于许多表和许多查询/视图,我创建了一个类,它封装了表的一行或查询/表结果.对DB的访问返回这样一个类的一个对象(当我确切地知道只有一个匹配的行时)或这些对象的Vector.
每个类都有一个工厂方法,该方法从ResultSet的一行构建一个对象.需要大量的ResultSet.getXXX()方法,以及关于哪个值在哪个列中的详细记账,特别是在更改表/查询/视图布局之后.
创建和维护这些对象是一项无聊,工作密集且令人头脑麻木的任务.换句话说,一种由工具完成的任务.它应该读取SQL(MySQL变体,唉)并生成Java代码.或者,至少,给我一个表/查询/视图的表示(XML?DOM?),允许我自己进行java代码生成.
你能说出这个工具吗?
例如:
sizeof(char*)返回4一样int*,long long*,我已经竭尽所能.这有什么例外吗?
在我提到的一篇相关文章中,我发现自定义HTML帮助程序在开发时非常有用.例如,当我需要分页"网格"时,我有一个我可以调用的自定义助手Html.Pager().
有些人指出HTML助手违反了MVC模型.就个人而言,我认为它与现有助手没有任何不同,例如Html.Textbox()或Html.ActionLink().
我还在尝试更多地了解MVC,所以所有观点都值得赞赏.
以下为什么不工作(Python 2.5.2)?
>>> import datetime
>>> class D(datetime.date):
def __init__(self, year):
datetime.date.__init__(self, year, 1, 1)
>>> D(2008)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: function takes exactly 3 arguments (1 given)
Run Code Online (Sandbox Code Playgroud)
我想创建一个类似datetime.date但具有不同__init__功能的类.显然我的功能永远不会被调用.相反,原来datetime.date.__init__被调用并失败,因为这需要3个参数,而我正在传递一个.
这里发生了什么?这是一个线索吗?
>>> datetime.date.__init__
<slot wrapper '__init__' of 'object' objects>
Run Code Online (Sandbox Code Playgroud)
谢谢!
当我解释我的问题时,请耐心等待.如果您已经了解扩展切片列表索引,请跳至粗体标题.
在python中,您可以使用切片表示法索引列表.这是一个例子:
>>> A = list(range(10))
>>> A[0:5]
[0, 1, 2, 3, 4]
Run Code Online (Sandbox Code Playgroud)
你还可以包括一个步幅,它就像一个"步骤":
>>> A[0:5:2]
[0, 2, 4]
Run Code Online (Sandbox Code Playgroud)
步幅也允许为负,意味着元素以相反的顺序检索:
>>> A[5:0:-1]
[5, 4, 3, 2, 1]
Run Code Online (Sandbox Code Playgroud)
可是等等!我想看看[4, 3, 2, 1, 0].哦,我明白了,我需要减少开始和结束指数:
>>> A[4:-1:-1]
[]
Run Code Online (Sandbox Code Playgroud)
发生了什么?它将-1解释为位于数组的末尾,而不是开头.我知道你可以达到以下目的:
>>> A[4::-1]
[4, 3, 2, 1, 0]
Run Code Online (Sandbox Code Playgroud)
但是你不能在所有情况下使用它.例如,在已传递索引的方法中.
是否有任何好的pythonic方法使用具有负步幅的扩展切片以及包含序列的第一个元素的显式开始和结束索引?
这是我到目前为止所提出的,但似乎并不令人满意.
>>> A[0:5][::-1]
[4, 3, 2, 1, 0]
Run Code Online (Sandbox Code Playgroud) 是否可以通过IoC容器而不是通过其常规流程来使WCF运行时实例化服务?(另外,考虑到容器的类型生活方式配置与服务的InstanceContextBehavior之间可能发生冲突,这种方法会不是很糟糕?)
我知道我可能会完全提出错误的问题.我的目标是通过容器提供的方法拦截工具实现AOP方法(例如,方法输入/退出日志记录,性能计数和调用限制,所有这些都涉及我不想插入到服务实现中的逻辑和依赖项).我想WCF提供了其他方法来解决这个问题,所以我也很想知道其他推荐的方法.