为什么我要在tomcat和gwt上面使用java portlet?portlet是否会减少或不需要我使用jsp和jsf?Jboss是portlet进化文化的一部分吗?Jboss是否满足portlet jsrs?
什么portlet实现/品牌将在gae java和gae python上运行?由于来自php cms文化的同伴压力,portlet规格是否?
.net中portlet和portlet jsr的等价物是什么?
我想使用bts和bt x86汇编指令来加速Mac上C++代码中的位操作.在Windows上,_bittestandset和_bittest内在函数运行良好,并提供显着的性能提升.在Mac上,gcc编译器似乎不支持这些,所以我试图直接在汇编程序中执行它.
这是我的C++代码(注意'bit'可以> = 32):
typedef unsigned long LongWord;
#define DivLongWord(w) ((unsigned)w >> 5)
#define ModLongWord(w) ((unsigned)w & (32-1))
inline void SetBit(LongWord array[], const int bit)
{
array[DivLongWord(bit)] |= 1 << ModLongWord(bit);
}
inline bool TestBit(const LongWord array[], const int bit)
{
return (array[DivLongWord(bit)] & (1 << ModLongWord(bit))) != 0;
}
Run Code Online (Sandbox Code Playgroud)
以下汇编程序代码可以工作,但不是最优的,因为编译器无法优化寄存器分配:
inline void SetBit(LongWord* array, const int bit)
{
__asm {
mov eax, bit
mov ecx, array
bts [ecx], eax
}
}
Run Code Online (Sandbox Code Playgroud)
问题:如何使编译器完全优化bts指令?如何用bt指令替换TestBit?
我很好地掌握了单元测试,DI,模拟以及所需的所有设计主要优点,以尽可能接近完整的代码覆盖范围(单一责任主体,在我编码时考虑'我将如何测试'等等. ..).
我最近的应用程序,我没有编写真正的TDD代码.在编写代码时我记住了单元测试,并在编写代码,重构等之后编写了我的测试.当它很容易做时我做了TDD ...但是我没有像我现在这样做......这是我第一个充分利用DI,模拟框架等的项目,以及第一个完全代码覆盖的项目 - 随着我的进展,我从中学到了很多东西.我很想分配到我的下一个项目,所以我可以从头开始完全编写TDD代码.
我知道这是一个广泛的问题,我已经通过示例和XP Unleashed订购了TDD,但我希望简要概述一下如何设计/编写一个大型应用程序来进行TDD.
你是否编写了整个应用程序,只使用了存根代码?(例如,编写所有函数签名,接口,结构,并编写整个应用程序但不编写任何实际实现)?我可以想象它适用于中小型,但这在大型应用程序中是否可行?
如果没有,你会如何编写系统中最高级别功能的第一次单元测试?让我们举例说 - 在一个Web服务上,你有一个名为DoSomethingComplicated(param1,...,param6)的函数暴露给世界.显然,首先为AddNumbers()之类的简单函数编写测试是微不足道的 - 但是当函数位于调用堆栈的顶部时,如此?
你还做前期设计吗?显然你仍然想做'架构'设计 - 例如,一个流程图显示IE与IIS交谈,它通过WCF与Windows服务进行通信,该服务与SQL数据库进行通信...显示所有SQL表及其字段的ERD,等......但是课堂设计呢?课程之间的相互作用等?你是在预先设计这个,还是继续编写存根代码,在你进行时重构交互,直到整个事物连接起来并且看起来它会起作用?
任何建议都非常感谢
首先发帖所以请温柔:)
在ASP.NET MVC中创建用户控件时,构造代码的最佳方法是什么,以便调用使用用户控件的视图的控制器不必全部了解控件?我想知道在ASP.NET MVC中使用用户控件时保持DRY的好方法.
请注意,此问题仅适用于需要在回发上进行特殊处理和逻辑的用户控件.我没有问题为用户控件创建好的DRY代码,这些用户控件既可以是视图(使用RenderPartial),也可以需要一些预处理来创建适当的ViewModel(使用RenderAction).
此外,此问题仅适用于在应用程序中实现可重用控件.此时我并不担心应用程序之间的可重用性.
举一个具体的例子,假设我想创建一个"快速添加"用户控件,其中包含三个输入字段,名字,姓氏和公司名称以及提交按钮.使用QuickAdd功能时,应独立于控件所在的页面执行以下步骤:
实现DRY的主要问题与调用包含局部视图的视图的所有控制器有关,最终必须有一个Action方法来处理来自Quick Add的表单提交.即使我将用于处理信息的逻辑分解为单独的控制器并从每个其他控制器调用该方法,但是调用具有可重用控件的视图的每个控制器都必须具有该知识,这似乎是一种负担.
我看到的另一个选项是让可重用控件始终提交给特定的操作方法/控制器但是然后该控制器无法知道如何为调用包含的视图的特定控制器适当地重新填充模型可重复使用的控制(在步骤4中).
我知道MVC 2中存在子控制器的讨论(来自这个问题ASP.NET MVC - 包含用户控件),但由于它还没有,在保持DRY的同时构建代码以实现最大可重用性的最佳方法是什么?
是否有必须让所有控制器调用使用可重用控件的视图的控制器(具有上述特性),还必须有一个Action方法来处理来自控件的信息?
首先,我是Git的新手.
我使用Finder在Mac上本地删除了一堆文件.我希望我删除的文件不再显示在当前分支中,但它们确实如此.
任何Git用户都知道更新索引的命令吗?
我发布了来自其他网站的图片,我宁愿在我的服务器上安装这些图片,以防他们的服务器突然死亡.假设该文件位于"www.www.www/image.gif",如何安全地将其复制到我的目录"images"?
我用PHP写.
谢谢!
可能重复:
在Eclipse中,如何在终止进程后更改透视图?
让Eclipse自动切换到调试透视图,同时调试是一个很棒的功能 - 相反可用吗?我希望它在终止调试会话时自动返回Java透视图.返回Java透视图的键盘快捷方式也可以提供帮助.
如果我有一个包含大量打印语句的函数:
即.
def funA():
print "Hi"
print "There"
print "Friend"
print "!"
Run Code Online (Sandbox Code Playgroud)
我想做的是这样的事情
def main():
##funA() does not print to screen here
a = getPrint(funA()) ##where getPrint is some made up function/object
print a ##prints what funA would normally print at this step
Run Code Online (Sandbox Code Playgroud)
因此,当调用funcA时,它不会进行任何打印,而是输出到对象.然后我打印对象以获得结果.有办法做到这一点吗?我也不想触摸原来的功能.
我希望这是有道理的.
为什么会这样?
def LoadPackageList():
try:
#Attempts to load package list... Adds each neccessary attribute into array
print("Loading Package List... please wait")
packages = []
packagelisturl = os.getcwd() + "packages.list"
dom = minidom.parse(urllib.urlopen(packagelisturl))
try:
for eachattributeofpkglist in dom.GetElementsByTagNameNS(packagelist, 'packages'):
packages.append({
'title': node.getAttribute('title'),
'shortname': node.getAttribute('shortname'),
'dlurl': node.getAttributes('dlurl'),
'description': node.getAttributes('description'),
'tags': node.getAttributes('tags'),
'infopage': node.getAttributes('infopage'),
'quality': node.getAttributes('quality'),
'id': node.getAttributes('id')
})
except LoadPackageListFailed:
print("Loading Package List failed... try again soon or manually update this release!")
Write2ErrorLog(LoadPackageListFailed)
#Indent Here Fails
def Usage():
#prints usage and closes
print …Run Code Online (Sandbox Code Playgroud)