假设Stack Overflow域问题和以下事件定义:
UserRegistered(UserId, Name, Email)
UserNameChanged(UserId, Name)
QuestionAsked(UserId, QuestionId, Title, Question)
Run Code Online (Sandbox Code Playgroud)
假设事件存储的状态如下(按出现顺序):
1) UserRegistered(1, "John", "john@gmail.com")
2) UserNameChanged(1, "SuperJohn")
3) UserNameChanged(1, "John007")
4) QuestionAsked(1, 1, "Help!", "Please!")
Run Code Online (Sandbox Code Playgroud)
假设以下非规范化读取模型列出问题列表(对于SO的第一页):
QuestionItem(UserId, QuestionId, QuestionTitle, Question, UserName)
Run Code Online (Sandbox Code Playgroud)
以下事件处理程序(构建非规范化读取模型):
public class QuestionEventsHandler
{
public void Handle(QuestionAsked question)
{
var item = new QuestionItem(
question.UserId,
question.QuestionId,
question.Title,
question.Question,
??? /* how should i get name of the user? */);
...
}
}
Run Code Online (Sandbox Code Playgroud)
我的问题是如何找到提出问题的用户的姓名?或者更常见的是:如果我的非规范化读取模型需要在特定事件中不存在的附加数据,我应该如何处理事件?
我已经研究CQRS包括现有的样本SimpleSQRS格雷格年轻的Fohjin马克Nijhof的样品.但在我看来,他们只使用事件中包含的数据.
我有一个问题,我认为可能是直截了当但我似乎无法绕过它.
我有一个从一系列NSDictionaries加载的tableview.每个Dictionary都有一个标题(显示在行中)和一个关联的nssstring,表示一个viewcontroller,当选择该行时应该将其压入堆栈.换句话说,选择行"A"需要初始化"aViewController"的实例并将其推送到堆栈上,选择行"B"需要初始化"bViewController"的实例并将其推送到堆栈等.
我最初只是将所有可能的值硬编码到didSelectRow中.但我真的希望能够动态地动态生成viewController.我找到了几个类似问题的C++示例,这些示例使我得到了下面的代码.但我似乎无法做到正确,并且我不确定我是否正在寻找一个客观的解决方案.有人有什么想法?
这是didSelectRow代码不起作用:
Class cls = [selectedRow valueForKey:@"viewController"];
if (cls!= nil)
{
id myNewController = [[cls alloc] init];
}
[[self navigationController] pushViewController:myNewController animated:YES];
[myController release];
Run Code Online (Sandbox Code Playgroud) 为什么在二分法中最好用a计算a和b之间的中点c
c = a + (b - a) / 2.
Run Code Online (Sandbox Code Playgroud)
而不是更简单:
c = (a + b) / 2.
Run Code Online (Sandbox Code Playgroud)
所有变量都是浮点数.
我写了一个POS系统.我想在连续纸上打印,但我不知道如何实现这一目标.
我使用.net(C#).我尝试使用crystal report以及System.drawing类.
任何想法都会对我有所帮助......
背景:我目前正在使用一个使用MochaUI库的Intranet站点(使用虚拟桌面演示).我正在使用Mootools 1.2.4和MochaUI 0.9.7.在我的"虚拟桌面"实现中打开的窗口通过iframe加载其内容.在css和脚本方面,一些加载的页面非常大,因此当用户关闭窗口时,Window对象充分地被垃圾收集是很重要的.这显然是由图书馆照顾的(使用Firefox时它确实做得很好).
更新 最初发布的问题已从后续编辑/更新变得过长.标题不再准确,所以我也改变了.另外,请参阅下面的答案以获得部分解决方案.
以下是要点:
Chrome就像这样:
奇怪的是,预期的垃圾收集确实发生了
我是一名Java开发人员,正在考虑投入时间学习Scala以开发未来的应用程序.我已经阅读了很多关于Scala优于Java的优点,但它们有点抽象,真的在情感上把它卖给我.
有人可以建议一个应用程序的例子,它真的适合用Scala开发,而不是Java吗?
我在网上搜索过,但我找不到复制/剪切/粘贴选定文本的方法RichTextBox.
即使MSDN也没有答案.他们提供的代码不起作用:Copy()只显示在TextBoxes上,而不是RichTextBoxes.
我有一个带有“添加项目”按钮和一个列表视图的MainActivity类,以及一个带有文本框和“保存”按钮的AddItemActivity类。用户应单击“添加项目”,转到AddItemActivity屏幕,输入一个项目,单击“保存”,然后返回到更新的MainActivity屏幕。
(顺便说一句,我正在使用MonoDroid,但我认为这不是MonoDroid特定的问题)。
我的“添加项目”点击事件(在主要活动中):
private void addItemButton_Click(object sender, EventArgs e)
{
var intent = new Intent();
intent.SetClassName(this, "monoApp.AddItemClassName");
StartActivityForResult(intent, 0);
}
Run Code Online (Sandbox Code Playgroud)
我的“保存”点击事件(添加项目活动时):
private void saveButton_Click(object sender, EventArgs e)
{
var itemname = FindViewById<EditText>(Resource.id.itemName);
_repo.SaveItem(new Item() {Name = itemname.Text.ToString()});
Toast.MakeText(this, "You saved: " + itemname.Text, ToastLength.Short).Show();
var intent = new Intent();
SetResult(Result.Ok, intent);
Finish();
}
Run Code Online (Sandbox Code Playgroud)
然后回到主要活动:
protected override void OnActivityResult(int requestCode, Result resultCode, Intent data)
{
base.OnActivityResult(requestCode, resultCode, data);
RefreshTheList();
}
Run Code Online (Sandbox Code Playgroud)
第一次,这就像一种魅力。屏幕滑到“添加项目”,然后在完成时滑回到主屏幕。在第二次,它滑过,但随后滑回自己,如果让任何意义。然后,如果我再次点击保存,它将恢复正常。
如果视频有帮助,我已将所见内容的片段发布到TwitVid:http ://www.twitvid.com/W7XZC
基本上,我不希望它“滑回自身”,所以我在做什么错?