MVVM违反干吗?

看来,我做的ViewModels 像其他类似的可疑 ,他们似乎需要大量的代码重复,例如在我有一个当前的项目: SmartForm :表示要填写的数据表单的模型 ,具有以下属性: IDCODE 标题 描述 SmartFormFields的集合 等等 SmartFormControlView 视图 SmartFormControlViewModel ViewModel IDCODE 标题 描述 SmartFormFields的集合 等等 所以我的ViewModel基本上和我的Model一样 ,只是用了所有的OnPropertyChangedfunction来绑定View。 看来,我重构和扩展了这一点,我对我的模型做的每一个小的改变,我必须做一个 镜像改变的ViewModel 。 这似乎违反了模式的基本规则不要重复自己 。 我是不是正确地实现了MVVM模式,还是MVVM的一个固有特性,那就是Model和ViewModel之间总会有一对一的重复?

使用C#/ .NET分析工具来查找竞争状态/死锁

有没有一个分析.NET代码和发现竞争条件的工具? 我有一些代码有一个公共静态属性获取或创build一个私人静态字段。 它也有一个公共的静态方法,将该字段设置为null(…是的,我知道!) 由于这两种方法都没有锁,所以可以肯定的是,将来事情会变得非常糟糕。 我需要一个工具recursion地通过调用这些方法之一的东西,看看是否有任何东西在另一个线程上产生。 我正在寻找一个工具或者nDepend SQL脚本(如果这是可能的话)。

更正共享function分支的Git工作stream程?

我正在试图找出适合这种情况的正确的工作stream程: 在共享回购,我们有这些分支: -master -feature function分支是一个共享分支,因为许多开发人员正在共同开发一个新function。 他们正在积极推动他们对function分支的修改。 我试图避免“冲突地狱”的一天, function终于合并回到主 。 目前我看到一些select: 1) 主动合并主要 function ,并经常做。 但是,这不是build议在git文档中,我开始明白为什么。 当我尝试这个时,我似乎一遍又一遍地修复同样的冲突。 2) 以某种方式使用rebase。 我读过这个,但它看起来不会工作,因为function分支实际上是共享的。 只需要一名开发人员进行2次重组,其他开发人员也可能因为历史不匹配而产生冲突。 3) 将特性分支转换为集成分支,并让开发人员使用自己的独立function分支进行分派,以保持事物的稳定。 4)完全不同的东西?

从JSONArray转换为string,然后再返回

我需要将JSONArray对象存储为string,然后检索该string并将其转换回JSONArray。 如果我做: JSONArray jArray; String s = jArray.toString() JSONArray newJArray = new JSONArray(s); 我会回到同一个对象吗? 我试图在SQLite数据库中存储一个JSONArray。 这是我正在看的。 http://developer.android.com/reference/org/json/JSONArray.html#toString()

片段devise:通过在单个活动中显示/隐藏片段来适应多个屏幕布局?

我想了解如何使用Fragments来创build适应多个屏幕和布局的应用程序。 我研究了几个例子: Android开发人员指南中的碎片文档。 Google IO应用 来自ActionBar Sherlock的片段样本。 所有这些倡导多种Activity方法: 在大屏幕上,显示具有多个Fragment的单个Activity 在一个较小的屏幕上,分割多个Activity的Fragment 。 我想到了另一种方法 – 单一的Activity一: 有一个单独的Activity其中的所有Fragment 。 根据屏幕大小和方向,显示/隐藏适当的Fragment (使用FragmentTransaction.show() / FragmentTransaction.hide() )。 为了说明Android开发者指南使用的相同的“新闻文章列表/文章内容”示例: 使News活动包含ArticleListFragment和ArticleReaderFragment 。 在选项卡上,总是显示两个片段。 在电话中, ArticleReaderFragment最初是隐藏的。 从列表中select文章时,将隐藏ArticleReaderFragment并显示ArticleReaderFragment 。 有没有人使用类似的方法? 这种方法可能有什么实际的缺点吗? 与多重活动方式相比,这看起来好吗? 例如,片段不能在XML中显示/隐藏 – 为此, 必须使用FragmentTransaction 。 编辑1:描述一个假设的情景 想象一下,一个应用程序最多可以在屏幕上显示三个“窗格”。 此外,这些是要考虑的因素: 电话一次只能显示一个窗格(无论纵向/横向) 7英寸平板电脑可以显示2个窗格,纵向分割,横向分割横向模式。 10英寸的平板电脑可以显示2个窗格,纵向分割; 3个窗格在横向上水平分割。 为了简单起见,让电视屏幕摆脱讨论。 现在,翻译这个devise: 我们有三个片段:Frag1,Frag2和Frag3。 在最简单的情况下,所有三个片段都在一个Activity中(让我们称之为ActivityA)。 这是10英寸的风景。 另一个“简单”的情况是当每个片段在自己的活动 – ActivityA包含Frag1; ActivityB包含Frag2,ActivityC包含Frag3。 到目前为止,我们没有考虑任何与Android开发人员指南中提供的新闻阅读器示例显着不同的内容。 唯一的主要区别是有三个片段,而不是两个。 […]

获取适配器中的android上下文

在Internet上find的许多代码示例中, context都是在适配器的构造函数中获得的。 这个上下文被用来让一个inflater在getView方法中膨胀视图。 我的问题是为什么要在构造函数中获取上下文时,可以很容易地获得上下文 LayoutInflater inflater; @Override public View getView(int position, View convertView, ViewGroup parent) { if(inflater == null){ Context context = parent.getContext(); inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE); } … … return convertView; } 还有没有什么理由不使用上述方法,因为直到现在我还没有使用它的任何问题。

我的系统上有太多不同的Python版本,导致问题

在过去的几年中,我已经安装了许多Python版本的Python库。 为了让他们立即工作,我盲目地安装了他们,没有控制。 目前,当我尝试安装调用numpy,scipy和matplotlib的pynest时,它们导致问题。 挣扎之后,我将清理并重新安装Python和库。 经过调查,我发现Python 2.5 / 2.6 / 2.7 / 3.2在我的系统上,他们每个都有一些副本或其他东西:(我的操作系统== Mac OS X 10.7.5狮子 ) /Library/Frameworks/ /opt/local/Library/Frameworks/ /opt/local/bin/ /Applications/ /usr/local/bin/ /usr/bin/ /System/Library/Frameworks/ 我知道我疯了,有这些。 现在我删除了/System/Libarary/Frameworks (我从来没有从/System/Library/删除任何东西)。 在干净的工作之后, which python现在提供链接到/System/Library/Frameworks /usr/bin/python 。 现在,我重新安装Python是否是一个清晰的环境? 如何仔细检查,没有其他版本存在? 我应该如何重新安装,以确保他们和他们的图书馆不会到处都有,并且还有很多副本? 我想将一个干净的Python 2.7安装到一个合适的位置,并让我的系统确切地知道它在哪里,而不是在其他地方安装任何库。 请给我一些build议,如何以专业的方式来pipe理它。 为了您的信息,这里是我目前的$PATH ,我认为它应该被修改: /opt/local/bin:/opt/local/sbin:/opt/nest/lib/python2.7/site-packages:/usr/local/lib/python2.7/site-packages:/Library/Frameworks/Python.framework/Versions/2.7/bin:/usr/texbin:/Library/Frameworks/Python.framework/Versions/3.2/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/texbin:/Library/Frameworks/Python.framework/Versions/3.2/lib/python3.2/site-packages/django/bin:/usr/X11/bin:/opt/local/bin:/opt/local/sbin:/usr/local/lib/python2.7/site-packages:/Library/Frameworks/Python.framework/Versions/2.7/bin:/Library/Frameworks/Python.framework/Versions/3.2/bin 请让我知道如果你需要更多的信息。 谢谢! 更新 : 为什么我变得这么疯狂呢? 我相信这是因为我通过以下方式安装了东西: easy_install / macports / homebrew / fink / […]

累加器什么时候真的可靠?

我想使用累加器来收集关于我在Spark作业上操作的数据的一些统计信息。 理想情况下,当工作计算所需的转换时,我会这样做,但是由于Spark会在不同情况下重新计算任务,所以累加器不会反映真实的度量标准。 这里是文档如何描述这个: 对于仅在动作内执行的累加器更新,Spark保证每个任务对累加器的更新只应用一次,即重新启动的任务不会更新值。 在转换中,用户应该意识到,如果任务或作业阶段被重新执行,每个任务的更新可能会被应用多次。 这是令人困惑的,因为大多数操作不允许运行自定义代码(可以使用累加器),它们大多数都是从以前的转换(懒惰)中获得结果。 该文档还显示了这一点: val acc = sc.accumulator(0) data.map(x => acc += x; f(x)) // Here, acc is still 0 because no actions have cause the `map` to be computed. 但是,如果我们在最后添加data.count() ,这将保证是正确的(没有重复)或不? 很明显, acc并不是用于“仅在内部动作”,因为地图是一种转换。 所以它不应该得到保证。 另一方面,关于相关Jira票的讨论是关于“结果任务”而不是“行动”。 例如在这里和这里 。 这似乎表明,结果确实将被保证是正确的,因为我们正在使用acc之前和行动,因此应该计算为一个阶段。 我猜测这个“结果任务”的概念与所涉及的操作types有关,是最后一个包含操作的操作,就像在这个例子中,它显示了几个操作分成几个阶段(洋红,从这里拍摄的图像): 因此,假设在该链末端的count()动作将是同一个最后阶段的一部分,并且我将保证在最后一个映射上使用的累加器不会包含任何重复项? 澄清这个问题将是伟大的! 谢谢。

什么是file.slim.js苗条

请原谅我的无知,但我刚刚安装jQuery使用npm和jQuery文件之间有一个名为jquery.slim.js ,什么是slim ? 我知道min代表被缩小,但苗条对我来说是新的! 顺便说一句,我很确定slim是不是min因为还有另一个名为jquery.slim.min.js ,显然它比正常苗条文件更轻。 此外, slim文件包含jQuery 3testing版。 (这就是代码中的评论) 再次抱歉,这个愚蠢的问题,但我不知道。 UPDATE 我正在使用require来包含这些文件,在我不知情的情况下是否需要包含这个文件? 或不?

在哪里投放Clojure.Spec?

所以,我越来越深入Clojure.Spec 。 我偶然发现的一件事是, 在哪里放置我的规格 。 我看到三个选项: 全球规格文件 在大多数例子中,我在网上发现,有一个大的spec.clj文件,在主命名空间中需要。 它具有所有“数据types”和函数的所有(s/def)和(s/fdef) 。 优点: 一个文件来统治他们 魂斗罗: 这个文件可能很大 单一责任原则受到侵犯? 规范在生产命名空间 你可以把你的(s/def)和(s/fdef)放在生产代码的旁边。 因此,实现和spec在同一个命名空间中共存。 优点: 实施和规格的共同定位 一个命名空间 – 一个关注? 魂斗罗: 生产代码可能会变得混乱 一个命名空间 – 两个问题? 专用spec命名空间结构 然后我想,也许Specs是第三种代码(旁边的生产和testing)。 所以也许他们应该拥有自己的名字空间结构,就像这样: ├─ src │ └─ package │ ├─ a.clj │ └─ b.clj ├─ test │ └─ package │ ├─ a_test.clj │ └─ b_test.clj └─ spec […]