软件设计

什么是功能重载的使用/优点?

功能重载的使用/优点是什么? 解决方案 IMO的主要优点是方法命名的一致性/在逻辑上执行非常相似的任务的功能,并通过接受不同的参数略有不同。这允许在多个实现中重复使用相同的方法名称。 重载:(好) function Person [] FindPersons(string nameOfPerson){...} function Person [] FindPersons( ..
发布时间:2017-05-12 18:51:31 软件设计

网页的字体(字体)选择?

今天我想到了字体(字体)的选择。我做了一个工作的网站,这个专业的风格指南,详细的颜色选择,字体选择,间距等。这是我第一次看到这样的东西,但我不得不承认,他们选择的看起来很好 现在我已经阅读过有关颜色理论的知识,所以我了解了补色和选择颜色方案,使用1,2或3种不同的颜色。所以对于我的宠物项目的东西,我也很好。 但是我没有真正看到任何有关Web上下文中字体选择的内容。我发现一些有关打印字体 ..
发布时间:2017-05-12 18:51:11 软件设计

如何使用petapoco创建DAL

我需要使用petapoco创建一个DAL和存储库。困难在于,我不知道它如何管理其连接。 如果我使用dapper,我知道连接过程如何流动,因为我控制它。我不知道用petapoco创建DAL的最佳做法是什么。 public class UserRepository { public IEnumerable全部() { var db = new PetaPoco.D ..
发布时间:2017-05-12 18:50:57 软件设计

覆盖在上下文中的父上下文中定义的bean

我们的应用程序需要支持多租户。每个登机客户可能潜在地覆盖在核心平台级别定义的一个或多个bean或一些bean的属性(通用代码/定义)。我想知道什么是最好的方法来解决这个问题。 解决方案 Spring允许你多次重新定义相同的bean名称,将给定名称处理的最后一个bean定义为获胜的bean定义。因此,例如,您可以有一个XML文件来定义您的核心bean,并将其导入到客户端特定的XML文件中,这 ..
发布时间:2017-05-12 18:49:40 软件设计

阻止IO与非阻塞IO;寻找好的文章

曾经有一次,我碰到了 Indy的简介文章和从那时起,不能停止思考阻止与非阻塞IO的关系。 寻找一些很好的文章,描述阻止IO和非阻塞IO的优缺点和如何在每种情况下设计您的应用程序以获得自然,易于理解和易于维护的代码。 想了解BIG图片... 解决方案 好的阻止IO意味着给定的线程在完全收到IO之前不能再做任何事情(在套接字的情况下,这个等待可能是一个长的时间)。 非阻塞IO ..
发布时间:2017-05-12 18:41:46 软件设计

Builder Vs装饰图案

从什么时候使用Builder模式?, 据说构建器模式适用于比萨饼示例。 为什么不装饰? 通过处理奶酪,Pepperoni,培根作为基础比萨饼上的额外装饰。 是因为必须单独制作奶酪/胡椒粉。我不认为,他们需要单独建造,因为他们可以现成的。 请详细说明。 我也在寻找一个很好的现实世界的装饰师模式的例子,以及为什么它是适合这个特定例子的原因。谢谢。 解决方案 从维基百 ..
发布时间:2017-05-12 18:40:28 软件设计

Ruby on Rails Editor for Windows

我喜欢在家里在我的Mac上使用Textmate,但是在工作(windows)上有一个很难找到的东西。 在Windows上使用Ruby on Rails的最佳编辑器是什么,让您对Textmate的外观和感觉最接近? 解决方案 您应该尝试 Intype 。它是在alpha阶段,目前没有TextMate的所有功能,但它看起来非常有希望。看看博客,论坛,并下载“不稳定的版本”。 我目前 ..
发布时间:2017-05-12 18:39:50 软件设计

MVC的替代方案

模型视图控制器的其他“设计方法”是什么? MVC似乎很受欢迎(SO是用它构建的,我知道的很多),但它是唯一的方法吗? 解决方案 还有很多其他的: Model View Presenter(MVP) 监督控制器 被动视图 模型视图ViewModel(MVVM) 这在WPF应用程序中很常见(尽管 Prism 使用MVP模式(通常)) ..
发布时间:2017-05-12 18:38:41 软件设计

客户号码,订单号码的最佳格式是什么?

一家大型国际公司部署了新的网络和MOTO(邮购和电话订单)处理系统。除此之外,您还需要设计订单和客户识别号码的格式。 您认为最好的格式是什么?请列出任何假设和注意事项。 接受的答案 Michael Haren的答案由于最多的投票而被选中,但请阅读其他答案和评论,因为他们使Michael的回答更加完整。 解决方案 所有数字或全部字母都可以。如果必须混合起来,那么确保没有不明 ..
发布时间:2017-05-12 18:37:45 软件设计

在哪里可以找到免费的WPF控件和控件模板?

我正在寻找一些有用的地方找到WPF控件/模板/样式库的建议。我知道通常的地方,如Infragistics,但在我看来,现在应该有一些社区的努力,以分享漂亮,干净,写得很好的控件WPF控件。 我在设计方面不是很大,很好的填写我的个人图书馆,并从设计更好的人那里得到一些很好的例子。 任何想法或建议? 解决方案 我强烈推荐 MahApps 这真是太棒了! ..
发布时间:2017-05-12 18:37:05 软件设计

事件驱动模型与反应堆模式有什么区别?

从维基百科反应堆模式文章: 反应堆设计模式是一种事件处理模式,用于处理由一个或多个输入同时发送到服务处理程序的服务请求。 它命名了几个例子,例如 nodejs , twisted , eventmachine $ b但是我以前了解的是受欢迎的事件驱动框架,所以使它们也是反应堆模式框架? 如何区分这些框架二?或者它们是一样的? 解决方案 反应堆模式比“事件驱动编程”更具体。 ..
发布时间:2017-05-12 18:36:51 软件设计

微服务架构与SOA之间的区别

我一直在阅读微服务架构,我试图看到它与常规SOA之间的区别(除了单独部署的服务之外)。任何人都可以告诉我这个差异,也许是微服务架构的专业人员和公司? 解决方案 我想你可以想到微型服务架构作为SOA专业化的风格。不要忘记,接受的视图之一是所有SOA真的是四个句子: 边界是明确的 服务是自主的 服务共享模式和合同,而不是类 服务兼容性基于策略 - Don Box,Micr ..
发布时间:2017-05-12 18:36:39 软件设计

你如何在C中实现一个类?

假设我必须使用C(没有C ++或面向对象的编译器),并且我没有动态内存分配,我可以使用什么技术来实现一个类,或者一个很好的近似类?将“类”隔离成一个单独的文件总是一个好主意吗?假设我们可以通过假定固定数量的实例来预分配内存,或者甚至在编译时间之前将每个对象的引用定义为常量。可以自由地假设我将需要实施哪个OOP概念(它会有所不同),并为每个OOP概念提出最佳方法。 限制: 我必须使用C而 ..
发布时间:2017-05-12 18:36:19 软件设计

为什么静态方法不是好的OO实践?

我正在阅读编程Scala 。在第4章开头,作者评论说Java支持静态方法,这是“不那么纯粹的OO概念”。为什么是这样? 解决方案 到目前为止还没有提到的静态方法不是很多OO的一个原因是接口和抽象类只定义非静态方法。静态方法因此不适合继承。 还要注意,静态方法无法访问“ super “,这意味着静态方法不能在任何实际意义上被覆盖。其实,他们根本不能被覆盖,只有隐藏。尝试这样: ..
发布时间:2017-05-12 18:33:13 软件设计

何时使用代理而不是继承?

有人可以解释什么时候我想使用代理而不是继承? 解决方案 当你想“复制” /暴露基类'API,你使用继承。 当您只想“复制”功能时,请使用委托。 其中一个示例: 您要创建一个名单。堆栈只有流行,推,偷看。您不应该使用继承,因为您不希望在堆栈中push_back,push_front,removeAt等功能。 ..
发布时间:2017-05-12 18:31:10 软件设计

指导您的异常处理政策的原则是什么?

在处理异常时涉及很多相关性。除了低级别API之外,例外情况涵盖硬件和操作系统提供的错误,程序员确定构成异常的一个阴暗区域,什么是正常条件。 您如何决定何时使用异常? 解决方案 异常应不用作在对象内部的方法之间传递信息的方法,在本地,您应该使用错误代码和防御性编程。 异常旨在从一个点传递控件其中检测到错误可以处理错误的地方(较高的堆栈)的错误,可能是因为本地代码没有足够的上下文来 ..
发布时间:2017-05-12 18:30:46 软件设计

设计问题:您将如何设计一个定期的事件系统?

如果您有责任建立一个支持重复事件的事件调度系统,您将如何做?何时删除重复事件时如何处理?如何看待未来的事件何时会发生? 创建活动时,您可以选择“每天重复”(或每周,每年等)。 我习惯了Ruby / Rails,但是您可以使用任何您想要表达设计的内容。 我在面试中被问到这个问题,无法想出 注意: 如果有必要可以评论或以其他方式将数据添加到一个定期事件的一个实例,那么该如 ..
发布时间:2017-05-12 18:29:44 软件设计

订购参数使用currying

我有两次最近重构的代码,以便更改参数的顺序,因为有太多的代码,像 flip 或 \x - > foo bar x 42 正在发生。 在设计功能签名时,什么原则可以帮助我充分利用咖喱? 解决方案 对于支持currying和部分应用程序的语言,有一个引人注目的一系列参数,最初来自Chris Okasaki: / p> 将数据结构作为最后一个参数 为什么?然后,您可以很好 ..

如何在没有ORM的情况下设计Java Web应用程序,而不需要嵌入式SQL

编辑:原始标题:关于使用ORM的好处的问题。 我想使用ORM进行学习,我尝试使用nhibernate。我正在使用教程,然后我有一个真正的项目。我可以去“老路”或使用ORM。我不知道我完全明白了好处。一方面,我可以在代码中创建我的抽象,以便我可以更改我的数据库,并且与数据库无关。另一方面,如果我实际上更改了数据库列,我必须更改我的所有代码。 为什么我的应用程序没有ORM,改变我的数据库和 ..
发布时间:2017-05-12 18:29:02 软件设计

Facebook架构

我一直在搜索关于Facebook的架构的文章/信息,挑战与挑战他们应对的方式他们用什么为什么他们使用他们如何扩展&他们做什么的设计决定等等。主要的基础是学习。了解处理这种大量流量的网站,在设计新网站时,会为建筑师等提供许多指标,以便牢记某些内容。我正在分享我发现的东西。 Facebook Science&社交图(视频) 在Facebook上缩放 Facebook Chat Archite ..
发布时间:2017-05-12 18:27:46 软件设计