我将构建的软件将涉及"应用程序"在不同状态之间切换很多.某些任务可以完成,具体取决于应用程序所处的状态.我正在考虑使用枚举作为状态
public class Application
{
public int Id {get;set;}
public Status {get;set;}
}
public enum Status
{
[Description("New")]New = 1, [Description("Closed")]Closed = 2
}
Run Code Online (Sandbox Code Playgroud)
但后来我想也许在数据库中使用查找表是好的,因为状态会经常更新/重新排序
table status (id int pk, desc string, sort_order int)
table application (id int pk, status_id int fk)
Run Code Online (Sandbox Code Playgroud)
在我的情况下,我需要做的事情
if (application.Status == Status.New)
{ //do something }
else if (application.Status == Status.Closed)
{ //do other things }
Run Code Online (Sandbox Code Playgroud)
我认为以上情况更易于使用枚举.但是,当涉及到更新状态排序顺序或描述时,这将非常困难.
我应该使用反射根据查找表中的值动态创建枚举吗?或者我应该使用状态模式?我看到enum relfection的问题是性能影响.并且状态模式可以产生大量冗余代码.
你怎么看?提前致谢!
有没有办法从自定义任务访问 MSBuild 属性的值?
我知道我可以将它们全部发送,但最好不要:) 我正在尝试从TFS构建中执行此操作。
或者有什么方法可以访问当前正在运行的“构建脚本”?也许就像一个对象模型,然后从那里得到我需要的东西?
我已经阅读了一些有关贫血领域模型和关注点分离的问题.在贫血域对象上执行/附加域逻辑的最佳技术是什么?在我的工作中,我们有一个非常贫穷的模型,我们目前正在使用"帮助程序"类来执行域对象上的数据库/业务逻辑.例如:
public class Customer
{
public string Name {get;set;}
public string Address {get;set;}
}
public class Product
{
public string Name {get;set;}
public decimal Price {get;set;}
}
public class StoreHelper
{
public void PurchaseProduct(Customer c, Product p)
{
// Lookup Customer and Product in db
// Create records for purchase
// etc.
}
}
Run Code Online (Sandbox Code Playgroud)
当应用程序需要购买时,它将创建StoreHelper,并在域对象上调用该方法.对我而言,客户/产品知道如何将自己保存到存储库是有意义的,但您可能不希望在域对象上使用Save()方法.对于像Customer.Purchase(Product)这样的方法也有意义,但这就是将域逻辑放在实体上.
以下是我遇到的一些技巧,不确定哪些是好/坏:
处理此问题的最佳技巧是什么?我对DDD很新(我正在阅读埃文斯的书 - 所以也许这会打开我的眼睛)
我听说你应该使用em而不是像素来定义样式表中的大小和距离.所以问题是为什么在css中定义样式时我应该使用em而不是px?有一个很好的例子可以说明这一点吗?
是否有任何人有任何开源的经验,或相对便宜的java语音识别API?我几乎都在寻找能够将口语转化为文本的东西.
从sun上的java语音识别页面来看,它似乎已经相当死了.我的要求至少在linux上运行.
谁能推荐一些东西?纯Java将是一个奖励,否则可以考虑基于Linux的解决方案.因为这是一个家庭项目......越便宜越好.
CMU Sphinx As Amit指出CMU Sphinx http://cmusphinx.sourceforge.net/html/cmusphinx.php 我的问题是大量的单词错误率.训练似乎本身就是一个项目,我希望本周末能有一些力量去尝试.
IBM ViaVoice
2004年有一些关于Via Voice被开源的新闻公告.似乎新闻发布还为时过早,而且从未发生过.VIA Voice 在某些时候发布用于Linux,但似乎他们停止了.似乎留在IBM网站上的所有内容都是嵌入的ViaVoice.
IBM Websphere Voice
我想象这就是为什么ViaVoice(桌面)似乎停止了.IBM创建了这个商业解决方案,这个解决方案不仅仅需要分配一条腿和一条腿.只需使用它就可以使用你剩下的那些,至少在我使用websphere和他们的IDE之后.
Nuance
看起来他们仍然可以为linux创建产品.但我认为他们迷失了,并跟随IBM进入服务器市场.我不确定这个,他们的网站在查找有用的信息方面不那么友好.
开放思想/言论自由
这些人不断改变他们的项目名称.可能有些资金匮乏的公司一直在威胁他们,但我不知道.该项目看起来有点死.
我本周末可能会尝试训练狮身人面像,看看它是否想成为朋友.更糟糕的是,我会考虑使用微软的语音解决方案.它在过去对我有用,但它不是一个很棒的Linux解决方案.我可以通过葡萄酒使用它,但后来我将有两个独立的服务器......凌乱凌乱.
哦,对于语音/语音SpeechTechMag来说,这似乎是个好地方.他们有一个"年度参考",其中包含一些公司名单,这些公司以某种方式将自己与语音/语音联系起来.
我被要求制作一个"下载"按钮,在文件的同一页面上下载textarea的内容,浏览器的"另存为..."对话框显示出来.复制/粘贴可以很好地完成工作,但这是一个"要求".
现在,我只是将textarea的内容发布到服务器上,然后将它们Content-disposition: attachment打回来.有没有办法用客户端Javascript来做到这一点?
我需要能够创建一个带有20个奇怪的多项选择问题的测验类型应用程序.
我有3种型号:Quizzes,Questions,和Answers.
我想在管理界面中创建一个测验,并内联测验和答案元素.
目标是单击"添加测验",然后转移到包含20个问题字段的页面,每个字段有4个答案字段.
这是我目前的情况:
class Quiz(models.Model):
label = models.CharField(blank=true, max_length=50)
class Question(models.Model):
label = models.CharField(blank=true, max_length=50)
quiz = models.ForeignKey(Quiz)
class Answer(models.Model):
label = models.CharField(blank=true, max_length=50)
question = models.ForeignKey(Question)
class QuestionInline(admin.TabularInline):
model = Question
extra = 20
class QuestionAdmin(admin.ModelAdmin):
inlines = [QuestionInline]
class AnswerInline(admin.TabularInline):
model = Answer
extra = 4
class AnswerAdmin(admin.ModelAdmin):
inlines = [AnswerInline]
class QuizAdmin(admin.ModelAdmin):
inlines = [QuestionInline, AnswerInline]
admin.site.register(Question, QuestionAdmin)
admin.site.register(Answer, AnswerAdmin)
admin.site.register(Quiz, QuizAdmin)
Run Code Online (Sandbox Code Playgroud)
当我尝试添加测验时出现以下错误:
class 'quizzer.quiz.models.Answer'> has no ForeignKey to …Run Code Online (Sandbox Code Playgroud) 我在循环中有一个字符串,对于每个循环,它都填充了如下所示的文本:
"123 hello everybody 4"
"4567 stuff is fun 67"
"12368 more stuff"
Run Code Online (Sandbox Code Playgroud)
我只想检索字符串中文本的第一个数字,当然,我不知道长度.
提前致谢!
我正在尝试编写一个程序(在java中的概率),无需先解码就可以无损地连接多个jpeg.
我以为我会开始简单,尝试使用十六进制编辑器追加相同大小的2个jpegs,使用相同的设置压缩.
首先,我提取jpeg B的图像数据并将其附加到jpeg A.通过修改标题中指定的尺寸,我得到一个新的可识别图片(y轴上附加的jpeg A + jpeg B),可以进行显示.然而,尽管来自jpeg B的图像数据清晰可辨,但它似乎丢失了大量的颜色信息并且显然是不正确的.
所以我的问题是我错过了哪些步骤?我不认为我需要更改任何其他维度特定的标题值,所以也许我需要霍夫曼解码来自两个jpeg的图像数据,然后将它们附加在一起,然后重新编码该批次?
我花了一些时间阅读jpeg规格和标题等,但说实话,我已经超出了我的深度,可以用指针或两个指针!
非常感谢您的帮助.
感谢所有的建议.是的,这绝对是可能的,我应该在我原来的问题中提到jpegtran.我基本上试图复制jpegtran功能的这个方面,但在我自己的程序中使用它.我想我应该看一下jpegtran源代码,但我对C一无所知,而且对一般的编程知之甚少,所以逆向工程源代码说起来容易做起来难!