小编Jim*_*Jim的帖子

我怎样才能避免全球状态?

所以,我正在阅读谷歌测试博客,它说全球状态很糟糕,并且很难编写测试.我相信 - 我的代码现在很难测试.那我该如何避免全球状态呢?

我使用全局状态(据我所知)最重要的事情是在开发,接受和生产环境之间管理关键信息.例如,我有一个名为"Globals"的静态类,其静态成员名为"DBConnectionString".当应用程序加载时,它确定要加载哪个连接字符串,并填充Globals.DBConnectionString.我在Globals类中加载文件路径,服务器名称和其他信息.

我的一些函数依赖于全局变量.因此,当我测试我的函数时,我必须记住先设置某些全局变量,否则测试将失败.我想避免这种情况.

有没有一种管理状态信息的好方法?(或者我是否错误地了解全球状态?)

testing state global global-state

10
推荐指数
1
解决办法
1557
查看次数

基于字符串值在.NET中创建方法调用

现在,我的代码看起来像这样:

Private Sub ShowReport(ByVal reportName As String)
    Select Case reportName
        Case "Security"
            Me.ShowSecurityReport()
        Case "Configuration"
            Me.ShowConfigurationReport()
        Case "RoleUsers"
            Me.ShowRoleUsersReport()
        Case Else
            pnlMessage.Visible = True
            litMessage.Text = "The report name """ + reportName + """ is invalid."
    End Select
End Sub
Run Code Online (Sandbox Code Playgroud)

有没有办法创建使用我的方法命名约定来简化事情的代码?这是一些描述我正在寻找的伪代码:

Private Sub ShowReport(ByVal reportName As String)
    Try
        Call("Show" + reportName + "Report")
    Catch ex As Exception
        'method not found
    End Try
End Sub
Run Code Online (Sandbox Code Playgroud)

.net vb.net method-call

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

在远程部署MVC3时获取"CS0103:当前上下文中不存在名称'ViewBag'"

我知道这个错误已在其他地方发布,但提供的解决方案对我不起作用.

背景:

  • 我使用Visual Studio 2010 SP1使用带有Razor语法的MVC3创建了一个全新的项目.
  • 当我在本地运行项目时,一切正常.
  • 我在远程服务器上安装了MVC3并部署了该项目.

我收到以下错误:

Compiler Error Message: CS0103: The name 'ViewBag' does not exist in the current context
Source Error:
Line 1:  @model MyModels.AModel
Line 2:  @{
Line 3:      ViewBag.Title = "Home Page";
Line 4:  }
Line 5:  <script type="text/javascript">
Run Code Online (Sandbox Code Playgroud)
  • 我检查过,我的Views目录中有一个Web.Config文件似乎已完成.
  • 这不是升级的解决方案.我没有从之前的MVC测试版转到最终版本.
  • 我现在发疯了.如果需要,我很乐意提供更多信息.

deployment razor asp.net-mvc-3

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

减少ASP.NET菜单控件大小(没有第三方库)

我有一个相当简单的ASP.NET 2.0菜单控件使用站点地图文件和安全修整.只有21个菜单选项,但菜单的结果HTML高达14k.该网站托管在我们公司的内部网上,必须以有限的带宽服务于全球的人们,所以我想减小菜单的大小.

做这个的最好方式是什么?有没有人有好的参考?我有以下约束:

  • 解决方案不得引用任何第三方DLL文件(获得批准将是一场噩梦)
  • 必须使用IE 6

CSS和JavaScript都很好,只要它们与IE 6一起使用即可.

asp.net size menu

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

有没有办法将文件夹附加到vimrc中的PATH环境变量?

我正在运行便携式python和便携式gvim.当我运行gVimPortable时,我希望它将python附加到PATH环境变量.这是我在命令提示符下运行的命令:

path=%path%;C:\portable\PortablePython_1.1_py2.5.4
Run Code Online (Sandbox Code Playgroud)

有没有办法在vimrc文件或其他方式自动化?

vim

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

如何将变量传递到R markdown .Rmd文件?

我正在尝试创建一个通用的rmarkdown模板,用于对数据框进行分析.我希望能够将数据帧传递给rmarkdown文件,而不是每次都对其进行硬编码.

下面是我一直在尝试的片段.你可以看到在顶部我必须加载数据框(mtcars).我还手动识别自变量(ivs)和因变量(dvs).我想将这些作为参数传递给我.我正在尝试快速和脏的SPSS Explore功能版本."Explore.Rmd":

```{r}
library(ggplot2)
data(mtcars)
mtcars$am <- factor(mtcars$am, levels=c(0,1), labels=c("Manual", "Automatic"))
df <- mtcars
ivs <- c("cyl", "disp", "hp", "drat", "wt", "am", "qsec")
dvs <- c("mpg", "qsec")
```

Histograms
-------------------------------------

```{r}
for (v in union(ivs, dvs))
{
  hist <- ggplot(df, aes_string(x=v)) + geom_histogram()
  print(hist)
}
```
Run Code Online (Sandbox Code Playgroud)

我希望代码看起来像这样使用knitr或类似的东西生成HTML.

myDF <- read.delim("mydata.tab")
ivs <- c("iv1", "iv2", "iv3")
dvs <- c("dv1", "dv2", "dv3")
magic("Explore.Rmd", myDF, ivs, dvs) # <- how do I do this part?
Run Code Online (Sandbox Code Playgroud)

那么,是否可以使用静态rmarkdown文件并将参数传递给它?还是会有另一种方法来完成我想要做的事情?

r r-markdown

9
推荐指数
2
解决办法
9420
查看次数

定义数据访问层

似乎每个人都知道你应该明确区分GUI,业务逻辑和数据访问.我最近和一位吹嘘自己总是拥有干净数据访问层的程序员交谈过.我查看了这段代码,结果发现他的数据访问层只是一个包含一些SQL方法的小类(比如ExecuteNonQuery和ExecuteReader).事实证明,在他的ASP.NET代码页面后面,他有大量的SQL硬编码到page_load和其他事件中.但他发誓他正在使用数据访问层.

所以,我把问题抛出去了.您将如何定义数据访问层?

data-access-layer

8
推荐指数
2
解决办法
3419
查看次数

为什么我的PowerShell多维数组被解释为一维数组?

我有以下代码:

function HideTemplates($File, $Templates)
{
  foreach ($Template in $Templates)
  {
    Write-Host $Template[0] $Template[1] $Template[2]
  }
}

HideTemplates "test.xml" @(("one", "two", "three"))
HideTemplates "test.xml" @(("four", "five", "six"), ("seven", "eight", "nine"))
Run Code Online (Sandbox Code Playgroud)

它打印:

o n e
t w o
t h r
four five six
seven eight nine
Run Code Online (Sandbox Code Playgroud)

我想要它打印:

one two three
four five six
seven eight nine
Run Code Online (Sandbox Code Playgroud)

我在代码中做错了吗?有没有办法强制PowerShell以不同的方式使用单个项目来处理多维数组?

arrays powershell multidimensional-array

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

在PHP中,是否可以使用PDO获得1个dIMmensmensar数组?

这似乎应该(并且可能是)微不足道的.我有一个简单的查询:

SELECT Name From User;
Run Code Online (Sandbox Code Playgroud)

当我使用此代码运行查询时:

$rows = $preparedStatement->fetchAll(PDO::FETCH_ASSOC);
Run Code Online (Sandbox Code Playgroud)

$ Rows看起来像这样:

Array ( [0] => Array ( [Name] => Doug ) [1] => Array ( [Name] => John ) )
Run Code Online (Sandbox Code Playgroud)

是否有一种简单的方法可以使数组看起来像这样:

Array( Doug, John)
Run Code Online (Sandbox Code Playgroud)

php arrays pdo

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

如何使用R 2.15.2让Rtools在Windows上运行?

安装Rtools 3.0 for Windows后,我在R控制台上运行以下命令:

> library(devtools)
WARNING: Rtools is required to build R packages, but no version of Rtools compatible with R 2.15.2 was found.
(Only the following incompatible version(s) of Rtools were found:3.0)

Please download and install Rtools 2.16 from http://cran.r-project.org/bin/windows/Rtools/ and then run find_rtools().
> find_rtools()
WARNING: Rtools is required to build R packages, but no version of Rtools compatible with R 2.15.2 was found.
(Only the following incompatible version(s) of Rtools were found:3.0)

Please download and install …
Run Code Online (Sandbox Code Playgroud)

r

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