小编Sid*_*war的帖子

你如何应用设计模式?

从书本的角度来看,你可能会说x设计模式适用于y场景,但我想在这里深入挖掘一下.所以这是我的疑问:

  1. 你什么时候开始决定使用设计模式?在编码之前,你们所有人都决定设计模式吗?
  2. 在完成编码(小型重构)后,是否有任何DP应用?在维护代码的同时应用DP吗?
  3. 在设计过程中主要应用的设计模式是什么?
  4. 在调整/重构代码时应用哪些DP?
  5. 是否有任何提示你应该应用DP(如太多ifs,双重调度,多线程)的代码中的提示(技术而非功能性的东西)?如果是这样,你能说出DP和他们的抓点吗?
  6. 你是否使用任何让你对你所编写的代码感觉良好的Micro-DP(即使其他人讨厌你:p)?

编辑:
我想补充一点,我通过"头部设计模式"阅读DP,虽然它是理解模式的最佳书籍之一.我认为我无法将Pizza示例转换为真实场景.

我认为这是关于DP的最有影响力的书之一,但我们仍然可以有一本书可以列举各种流行的商业场景,这些场景需要特定的模式以及该模式.我认为这种知识在很大程度上仍然隐含着.这样的书会是一个非常好的快速参考你不觉得:))

design-patterns

21
推荐指数
3
解决办法
7239
查看次数

SqlConnection如何管理IsolationLevel?

这篇MSDN文章指出:

隔离级别具有连接范围范围,并且一旦设置为与SET TRANSACTION ISOLATION LEVEL语句的连接,它将保持有效,直到连接关闭或设置了另一个隔离级别.关闭连接并返回到池时,将保留最后一个SET TRANSACTION ISOLATION LEVEL语句的隔离级别.重新使用池连接的后续连接使用在连接池时生效的隔离级别.

SqlConnection的类有任何成员可能持有的隔离级别.那么连接如何知道在哪个隔离级别运行?

我问这个的原因是因为以下情况:

  1. 我在Serializable模式下使用TransactionScope打开了一个事务,比如"T1".
  2. 打开T1的连接.
  3. T1完成/处理,连接返回连接池.
  4. 在同一连接上调用另一个查询(从连接池获取后),此查询以可序列化模式运行!

问题:

  1. 汇集连接如何知道与之相关的隔离级别?
  2. 如何将其还原回其他一些事务级别???

解决方案:
池化连接返回可序列化隔离级别的原因是由于以下原因:

  1. 你有一个连接池(让我们说CP1)
  2. CP1可能有50个连接.
  3. 从CP1中选择一个连接C1并使用Serializable执行它.此连接现在已设置其隔离级别.无论您做什么,都不会重置(除非此连接用于执行不同隔离级别的代码).
  4. 执行查询后,C1(Serializable)返回CP1.
  5. 如果再次执行步骤1-4,则使用的连接可能是除C1之外的其他连接,假设为C2或C3.因此,它的隔离级别也将设置为Serializable.
  6. 因此,慢慢地,Serialzable在CP1中设置为多个连接.
  7. 当您执行未进行显式隔离级别设置的查询时,从CP1中选择的连接将决定隔离级别.例如,如果此类查询请求连接并且CP1使用C1(Serializable)执行此查询,则此查询将在Serializable模式下执行,即使您未明确设置它.

希望能够澄清一些疑惑.:)

.net c# sql-server ado.net transactions

21
推荐指数
3
解决办法
1万
查看次数

如何覆盖window.open功能?

假设我有window.open(没有名称参数),散布在我的项目中,我想更改实现,以便在未指定名称的地方我将指定默认名称.

我想要做的是将我自己的方法挂钩到window.open,这样每当window.open运行时,它将在内部调用我自己的方法,然后调用window.open(带有name参数).

这可能通过Javascript?在这个窗口中是否会出现循环依赖问题.在调用我的自定义函数时,又调用了window.open函数?

Ps简单来说,我想要做的是覆盖window.open功能.

html javascript

16
推荐指数
3
解决办法
2万
查看次数

如何创建一个行为类似AppSettings部分的自定义部分?

我想在我的配置中有以下结构:

<MySection>  
  <add key="1" value="one" />  
  <add key="2" value="two" />
  <add key="3" value="three" />
</MySection>
Run Code Online (Sandbox Code Playgroud)

我有一个限制,MySection不能使用AppSettingsSection,因为它必须从不同的父自定义部分继承.我需要将此部分解析为NameValueCollection,以便在我调用类似的内容时:

ConfigurationManager.GetConfig("MySection")
Run Code Online (Sandbox Code Playgroud)

它应该返回一个NameValueCollection.怎么去做这个?我在NameValueConfigurationCollection上找到了一些信息,但这不是我想要的.

.net namevaluecollection

12
推荐指数
1
解决办法
1万
查看次数

未捕获错误:[$ injector:cdep]找到循环依赖项:$ templateRequest < - $ animate < - cfpLoadingBar < - $ http < - $ templateRequest < - $ compile

我有角度JS应用程序的问题我使用nuget从AngularJS 1.3.0 Beta升级到1.3.16并且我有以下错误:

angular.js:4183未捕获错误:[$ injector:cdep]找到循环依赖项:$ templateRequest < - $ animate < - cfpLoadingBar < - $ http < - $ templateRequest < - $ compile http://errors.angularjs.org/1.3 .16 / $ injector/cdep?p0 =%24templateRequest%20%... oadingBar%20%3C-%20%24http%20%3C-%20%24templateRequest%20%3C-%20%24compile

我尝试将$ injector添加到家庭控制器,但它没有解决问题.有人能帮助我吗?

(function () {
    'use strict';

    var app = angular.module('app');

    var HomeController = function ($scope, $location, $injector, authService, userInfoService, homeService) {
       };

    app.controller('HomeController', ['$scope', '$location','$injector','authService', 'userInfoService', 'homeService', HomeController]);

}());
Run Code Online (Sandbox Code Playgroud)

javascript dependency-injection angularjs

9
推荐指数
1
解决办法
1651
查看次数

1222死锁图中的ClientOption1和ClientOption2是什么意思?

我在 MSDN 文章中发现了以下内容:

客户端选项1 和客户端选项2。设置此客户端连接的选项。这是一个位掩码,其中包含有关通常由 SET 语句(例如 SET NOCOUNT 和 SET XACTABORT)控制的选项的信息。

我在哪里可以找到有关它们的更多信息?例如,在我的死锁图中,它们具有以下值:

clientoption1="673185824" clientoption2="128056"
Run Code Online (Sandbox Code Playgroud)

我能从中推断出什么信息?

sql-server deadlock

8
推荐指数
1
解决办法
741
查看次数

我们为什么要将接口与使用它们的类放在一起而不是那些实现它们的类?

我正在阅读罗伯特·C·马丁的一篇文章,并在一个地方给出了一个这样的例子:

第一张图显示两个包之间存在循环依赖关系.要删除此依赖项,将在第二个映像中添加新接口.B实现接口,Y使用它.马丁提出以下观点:

接口通常包含在使用它们的包中,而不是在实现它们的包中.

我的问题是,我们为什么要这样安排接口?这种方式包装接口背后的原因是什么?根据Common Closure Principle,一起改变的类应该保持在一起.在变化方面,接口是否更接近其实施者或其用户?

在此输入图像描述

oop design-patterns packages

8
推荐指数
1
解决办法
836
查看次数

SQL Server 2008 R2中的死锁问题(.Net 2.0应用程序)

有问题的Sql Server 2008 R2实例是一个重负载OLTP生产服务器.几天前出现了死锁问题,但仍未解决.我们收到了Xml死锁报告,其中列出了死锁中涉及的存储过程以及其他一些细节.我将首先尝试从这个xml中列出事实:

死锁涉及两个存储过程,例如SP1和SP2.据报道SP1在隔离级别运行的"序列化"SP2是在"READCOMMITTED"运行.

我们调查了以下内容:

  • 我们在SP或代码中将IsolationLevel SP1设置为"Serializable"吗? - 没有.

  • 是否其他SP的IsolationLevel是"Serializable"调用SP1? - 没有.

  • SP1使用的表是否被隔离级别为"可序列化"的任何其他SP调用? - 是的 有些SP将隔离级别设置为"可序列化"并访问与SP1相同的表,但我们不知道它们是否在死锁时运行,因为死锁
    报告仅显示SP1和SP2.

思路:
我们考虑了以下可能的原因:

  • 发生死锁是因为SP1正在运行为"可序列化". - 当我没有设置时,为什么这个SP在Serializable中运行?隔离级别是否升级(如锁定)?如果我们弄明白并将其作为ReadCommitted运行,问题是否会得到解决?

  • 任何其他SP正在运行,锁定SP1使用的表并导致SP1和SP2之间的死锁. - 这个SP不会列在死锁报告中吗?死锁报告能否错过这种依赖?如果是,那么我们可能只获得部分信息.但是,这仍然无法解决SP1在Serializable中的运行方式.

建议:

  • 如果此信息不足以解决问题,我如何从SQL Server获取更多信息以用于我的目的以及我应该尝试收集哪些信息?

  • 您在解决此问题时会采取的其他思路吗?

更新:
这是死锁的跟踪日志信息.我已经更改了SP等的名称,但已经检查并验证了更改不会遗漏任何相关信息.检查代码后面的注释以获取有关表等的更多信息.

?<EVENT_INSTANCE>
  <EventType>DEADLOCK_GRAPH</EventType>
  <PostTime>2010-09-07T11:27:47.870</PostTime>
  <SPID>16</SPID>
  <TextData>
    <deadlock-list>
      <deadlock victim="process5827708">
        <process-list>
          <process id="process5827708" taskpriority="0" logused="0" waitresource="KEY: 7:72057594228441088 (8d008a861f4f)"
                   waittime="5190" ownerId="1661518243" transactionname="SELECT" lasttranstarted="2010-09-07T11:27:42.657"
                   XDES="0x80bf3b50" lockMode="RangeS-S" schedulerid="4" kpid="2228" status="suspended" spid="76" sbid="0"
                   ecid="0" priority="0" trancount="0" lastbatchstarted="2010-09-07T11:27:42.657"
                   lastbatchcompleted="2010-09-07T11:27:42.657" clientapp=".Net SqlClient Data Provider"
                   hostname="xxx" hostpid="5988" loginname="xxx" isolationlevel="serializable (4)"
                   xactid="1661518243" …
Run Code Online (Sandbox Code Playgroud)

database sql-server deadlock sql-server-2008 sql-server-2008-r2

7
推荐指数
1
解决办法
3531
查看次数

如何下载主题的最新版本CSS文件?

问题是这样的:我们正在尝试为CSS实现版本控制方案,无论我们通过href访问CSS(如\ themes\ssss\abc.css),我们都会以编程方式将此链接附加到内部版本号(例如\ themes\ssss\abc.css?1011)以便在新版本中,客户端获取最新的css文件.

问题出现在主题上.例如,在App_Themes下,我们创建了一个名为MyTheme的主题文件夹; 现在无论在哪里使用这个主题,我们都需要将这个主题的CSS替换为最新的构建文件.怎么做?

.net html css asp.net

6
推荐指数
1
解决办法
538
查看次数

最令人难忘的节目视频/播客

您认为程序员必须观看哪些视频、播客、演示文稿?我正在观看Doug Crockford关于 JavaScript的讲座,想知道我还错过了什么。

我正在寻找可以从中学习的内容,因此发布的产品,例如 Windows 或 Mac,只是不要剪掉它。

podcast video

5
推荐指数
1
解决办法
2245
查看次数

如何在IIS 7中配置Http Handler?

这就是我想要做的事情:

  1. 我已经创建了一个类库项目,它有一个实现IHttpHandler接口的类.我们称这个类为ZipHandler.假设命名空间是Zip.
  2. 我希望每当有任何Http请求来获取zip文件时,无论请求是针对Asp.Net应用程序还是普通虚拟目录,我的ZipHandler都应该处理它.

查询:

  1. 是否有可能(应该在IIS 7中对集成管道等进行炒作)?
  2. 怎么做?

c# asp.net iis iis-7 httphandler

5
推荐指数
1
解决办法
1万
查看次数

如何在C#中获取动态对象的类型?

我有一个List<dynamic>,我需要将列表的值和类型传递给服务.服务代码是这样的:

 Type type = typeof(IList<>);
 // Type genericType = how to get type of list. Such as List<**string**>, List<**dynamic**>, List<**CustomClass**>
 // Then I convert data value of list to specified type.
 IList data = (IList)JsonConvert.DeserializeObject(this._dataSourceValues[i], genericType);
Run Code Online (Sandbox Code Playgroud)

_dataSourceValues:列表中的值

如果List的类型是dynamic(List<dynamic>),我如何将列表的类型转换为特定类型?

.net c# list dynamic

5
推荐指数
1
解决办法
2646
查看次数

C++从文本文件,逐字逐句或char字符中读取单词

我一直在谷歌上搜索并阅读我的书并尝试写出代码来阅读文本文件并逐个处理它,所以我可以按字母顺序排列它们并记住多少个单词使用的地方和使用了很多单词.我似乎无法使我的GetNextWord()函数正常工作,这让我发疯.

我需要逐个读取单词,如果是大写,则将每个字母转换为小写.我知道如何做到这一点,并成功地做到了这一点.它只是按字符逐字逐句地将它放入一个阻碍我的字符串中.

这是我最近的尝试:任何帮助都会令人惊讶,或者链接到关于如何逐字读取输入文件的教程.(Word是字母字符az和'(不)以空格,逗号,句号,;,:等结尾....

void GetNextWord()
{
    string word = "";
    char c;

    while(inFile.get(c))
    {
        while( c > 64 && c < 123 || c == 39)
        {
            if((isupper(c)))
            {
                c = (tolower(c));
            }
            word = word + c;
        }
        outFile << word;
    }
}
Run Code Online (Sandbox Code Playgroud)

c++ file-io textinput

4
推荐指数
1
解决办法
4万
查看次数