Tag: 架构

为SQL查询设置默认模式

有没有办法为查询设置模式,以便在查询的其余部分中,我可以仅仅通过名称来引用表,而不必在模式名前添加它们? 例如,我想要做这样的事情: Use [schemaName] select * from [tableName] 而不是这个: select * from [schemaName].[tableName]

抽象工厂模式

C#中抽象工厂模式的好例子? C#中抽象工厂模式的优点是什么? 如何在抽象工厂模式中使用C#generics? 如何用抽象工厂模式进行unit testing?

如何在Node.js中最好地创build一个RESTful API

我是Node的初学者(通常是所有的后端Web开发),并且我已经开始在Node中编写一个RESTful API。 有几件事情我正试图让我的头脑。 我的应用程序使用Express和Mongoose,并使用express-resource模块轻松创build我的API资源的CRUD路由。 但是有一些我不高兴的事情,并认为我可以做得更好。 首先是mongoose。 如果我想为我的API编写testing,我没有办法将Mongoose强制存储到内存中。 所有的教程似乎指向mongoose,但是,我真的不知道我应该使用什么。 其次,我的资源似乎有很多样板代码。 这真的是在Node.js中创buildRESTful API的最好方法吗? 还有其他模块,可以帮助我创build我的CRUD路线吗? 我相信有一些方法可以直接从你的模式创buildCRUD路线,而不需要代码,但我真的不知道如何。 我已经看到了像Tower.js和CompoundJS(正式的RailwayJS)这样的项目,似乎这些解决scheme比我的问题解决得更多。 也许我应该使用它们,但我真的只想要Node.js应用程序是一个API,没有更多。 我正在处理独立于API的前端。 为了提供一些背景,这里是我目前的情况。 目前,我有一个在Mongoose中定义的模型: var mongoose = require('mongoose') , Schema = mongoose.Schema , Link var LinkSchema = new Schema({ uri: String, meta: { title: String, desc: String }, shares: [{ uid: Schema.Types.ObjectId, date: Date, message: String }] }) Link = module.exports […]

多个路由器与BackboneJs中的单个路由器

所有关于Backbone的例子我已经看到整个应用程序使用一个路由器,但是对于应用程序的每个单独部分(页眉,页脚,舞台,侧边栏)有一个路由器没有意义吗? 有没有人用多个路由器构build应用程序?您有什么经验? 让我们来考虑一个嵌套视图的复杂应用:当一个视图有自己的路由器来处理子视图的显示的时候,有没有比一个大的路由器通知主视图改变子视图更好的方法呢? 这个问题的背景:我已经看到很多骨干路由器和GWT中的ActivityMapper的相似之处。 ActivityMapper只负责为DOM中给定的路线和给定的容器获取正确的演示者。

服务层与商业层架构的Web应用程序?

我知道这可能听起来很愚蠢,但我发现很难理解服务层的需求及其与业务层的差​​异。 所以,我们使用的是asp.net mvc 2,并且有数据访问层,它可以完成数据库的全部查询,然后我们有业务层需要完成业务逻辑和validation。 最后我们有了基本上具有所有视图的表示层。 另外我们也有一些帮助器,DTO和viewmodel类作为我们库的一部分放在不同的文件夹中。 但是我已经尝试了解架构,看起来服务层是架构的重要组成部分。 我所知道的是服务层是调用所有function的东西。 但是我真的不能在我们的应用程序中看到服务层的需求吗? 或者它可能已经在那里,我不能看到它…任何人都可以解释一个例子如何服务层是重要的? 它与业务层有什么不同,因为从我看过的东西看起来很相似? 如果它在第一需要呢? 我们所要做的就是以最好的方式构build我们的应用程序,您的想法和经验是什么?

使用dependency injection与Roboguice?

我正在开发一个Android项目,我想知道什么是build立一个Android应用程序的好架构的build议。 我想使用Roboguice的dependency injection,我一直在阅读有关MVVM模式或MVC模式( Android MVVMdevise模式示例 )。 另外我知道roboguice有一个非常酷的基于Context的事件的提升和处理function,可以非常容易testing,因为代码是分离的。 任何关于工作devise模式的build议? 一个可testing和可扩展的架构,你曾经或开发?

为什么当我使用它们时,绝大多数vim颜色scheme看起来不像屏幕截图?

我已经下载了许多vim色彩模式,并试用了它们,但其中很多不像官方的屏幕截图。 例如,Vim自己的颜色模式 – desert应该是这样的: 但在我的vim中,许多颜色不会显示,例如背景。 但一些颜色模式正常工作。 这是为什么? 在:编辑 – >configuration文件首选项 – >颜色,我select“使用系统主题颜色”

如何公开一个集合属性?

每次我创build一个具有集合属性的对象时,我都会回到最好的方式来做到这一点? 公共属性与getter返回私有variables的引用 显式get_ObjList和set_ObjList方法每次返回并创build新的或克隆的对象 返回IEnumerator的显式get_ObjList和获取IEnumerator的set_ObjList 如果集合是一个数组(即objList.Clone())与List是否有区别? 如果返回实际的集合作为参考是非常糟糕的,因为它创build了依赖关系,那么为什么要返回任何属性作为参考? 任何时候,如果你暴露一个子对象作为参考,那么这个孩子的内部可以在没有父母“知道”的情况下被改变,除非孩子有一个属性改变的事件。 是否有内存泄漏的风险? 而且,不要select2和3打破序列化? 这是一个捕获22或者你有什么时候你有一个集合属性实现自定义序列化? 通用的ReadOnlyCollection对于一般用途来说似乎是一个很好的妥协。 它包装了一个IList并限制对它的访问。 也许这有助于内存泄漏和序列化。 但是,它仍然有枚举问题 也许只是依靠。 如果你不关心集合是否被修改,那么就把它公开为一个公共的访问者,通过#1的私有variables来公开。 如果你不希望其他程序修改集合,那么#2和/或#3更好。 隐含的问题是为什么一种方法应该被用于另一种方法,以及安全性,内存,序列化等方面的影响是什么?

事件处理程序和callback之间的区别

事件处理程序和callback函数有什么区别?

架构比MVC更适合networking应用程序?

我一直在学习Zend和我的新工作的MVC应用程序结构,并发现使用它只是困扰我的原因,我不能把我的手指。 然后,在我的学习过程中,我遇到了MVC:No Silver Bullet以及MVC和Web应用程序这个主题的播客 。 播客中的这个人对MVC作为一个Web应用程序架构提出了很好的build议,并且钉了很多让我头疼的东西。 然而,问题仍然存在,如果MVC不适合Web应用程序,那么是什么?