我继承了一个怪物.
它伪装成.NET 1.1应用程序处理符合医疗保健索赔支付(ANSI 835)标准的文本文件,但它是一个怪物.正在处理的信息涉及医疗保健索赔,EOB和报销.这些文件包含在前几个位置具有标识符的记录,以及根据该类型记录的规范格式化的数据字段.一些记录ID是控制段ID,它分隔与特定类型的事务相关的记录组.
为了处理文件,我的小怪物读取第一条记录,确定即将发生的交易类型,然后根据当前正在处理的交易类型开始处理其他记录.为此,它使用嵌套的if.由于存在多种记录类型,因此需要做出许多决定.每个决策都涉及一些处理和2-3个其他需要根据以前的决策做出的决定.这意味着嵌套if有很多巢.这就是我的问题所在.
这个嵌套if是715行长.恩,那就对了.七百五十条青少年线.我不是代码分析专家,因此我下载了几个免费软件分析工具,并得出了McCabe Cyclomatic Complexity评级为49.他们告诉我这是一个非常高的数字.在亚特兰大地区的花粉数量很高,其中100是高标准,新闻称"今天的花粉数量是1,523".这是我见过的箭头反模式最好的例子之一.在最高处,压痕深度为15个标签.
我的问题是,你建议采用什么方法来重构或重组这样的东西?
我花了一些时间寻找想法,但没有什么能给我一个良好的立足点.例如,用保护条件代替等级是一种方法.我只有其中一个.一窝下来,十四去.
也许有一种设计模式可能会有所帮助.指挥链会成为接近这个的方法吗?请记住,它必须保留在.NET 1.1中.
感谢您提出的所有想法.
我在实现一个嵌套类时遇到了麻烦,该类的构造函数是用一些封闭类的私有数据成员初始化的.
例:
Header File:
class Enclosing {
//...Public members
//...Private members
int x, int y
class Inner; // Declaration for nested class
};
Impl. File:
// Stuff...
class Enclosing::Inner {
explicit Inner() : foo(x), bar(y) // foo and bar are data members of Inner
//...
};
Run Code Online (Sandbox Code Playgroud)
我收到一个invalid use of non-static data member错误.当涉及到其封闭类的成员的嵌套类访问时,是否有一些我缺少的东西?
我在理解如何基于以下模型构建视图模型时遇到问题
(我将模型简化为更清晰)
public class Hit
{
public bool On { get; set;}
public Track Track { get; set; }
}
public class Track
{
public ObservableCollection<Hit> Hits { get; set; }
public LinearGradientBrush Color { get; set; }
public Pattern Pattern { get; set; }
}
public class Pattern
{
public string Name { get; set; }
public ObservableCollection<Tracks> Tracks { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
现在,我的问题是,如何构建ViewModels ..
我需要通过模型保持原始关系,beacaus我在Pattern上有一个Serialize()方法,将它序列化为XML文件..(带有相关的Tracks和Hits)
为了能够将模式绑定到用户控件和它的嵌套模板,我还应该有一个带有ObservableCollection <TrackViewModel>的PatternViewModel,对于TrackViewModel和HitViewModel来说也是如此...我需要在查看不属于业务对象的模型(颜色和更多..)
在视图模型上复制模型的所有关系对我来说似乎不是一件好事......并且在编写视图模型时跟踪所有这些关系也更容易出错.
谁有更好的方法/解决方案?
我在bash脚本中嵌套引号有困难
argv="su -c '$RVM_PATH wrapper $config_rvm \'$PASSENGER_RVM_BIN $command $options\'' web"
eval $argv
Run Code Online (Sandbox Code Playgroud)
以上得到了我
eval: line 162: unexpected EOF while looking for matching `''
eval: line 163: syntax error: unexpected end of file
Run Code Online (Sandbox Code Playgroud) 下面的示例代码在Visual C++中编译得很好:
class Test {
private:
struct {
struct {
int privateData;
};
};
};
int main(int, char **)
{
Test test;
test.privateData = 0;
return 0;
}
Run Code Online (Sandbox Code Playgroud)
但为什么?我期望编译器错误,因为privateData函数main应该无法访问该成员,因为它应该private像它的容器容器一样.我知道无名结构不是官方C++的一部分,但这个设计是asinine.
顺便说一句,我也试图改变private成protected和struct成union:它看起来像编译器拒绝兑付匿名结构和联合嵌套在另一个匿名结构或联合内部的访问修饰符.
有人可以解释这个功能吗?
我无法找到执行以下操作的方法:
让我们在我的application.html.erb中说我有以下内容
<div id="one" >
<%= yield %>
</div>
Run Code Online (Sandbox Code Playgroud)
然后我想要另一个布局文件asdf.html.erb
<div id="two">
<%= yield %>
</div>
Run Code Online (Sandbox Code Playgroud)
我想要最终输出
<div id="one>
<div id="two">
<%= yield %>
</div>
</div>
Run Code Online (Sandbox Code Playgroud)
可能吗?谢谢.
在JUnit 5中,有一个新的注释:@Nested.
我理解它是如何工作的,我理解为什么我们使用嵌套类,我只是不明白为什么我们需要在测试中使用嵌套测试类.
我有大多数页面的默认布局_Layout.cshtml.但是对于某些页面组,我希望稍微修改一下默认布局.我知道我可以将该文件复制一下,但这意味着复制代码并维护两个布局,99%的代码相同.
我想继承默认的布局,如下所示:
LayoutInherited.cshtml:
Layout = "~/Views/Shared/_Layout.cshtml";
ViewBag.BodyContentClassSpecial = "";
@section header{
<style>
#body-content {
width: 90%;
margin: 0 auto;
}
</style>
Run Code Online (Sandbox Code Playgroud)
}
可以这样做吗?
我在R中有以下数据结构:
df <- structure(
list(
ID = c(1L, 2L, 3L, 4L, 5L),
var1 = c('a', 'b', 'c', 'd', 'e'),
var2 = structure(
list(
var2a = c('v', 'w', 'x', 'y', 'z'),
var2b = c('vv', 'ww', 'xx', 'yy', 'zz')),
.Names = c('var2a', 'var2b'),
row.names = c(NA, 5L),
class = 'data.frame'),
var3 = c('aa', 'bb', 'cc', 'dd', 'ee')),
.Names = c('ID', 'var1', 'var2', 'var3'),
row.names = c(NA, 5L),
class = 'data.frame')
# Looks like this:
# ID var1 var2.var2a var2.var2b var3
# 1 …Run Code Online (Sandbox Code Playgroud) 我正在寻找解决方案。目前,我有两个元素列表:
column_width = ["3", "3", "6", "8", "4", "4", "4", "4"]
fade = ["100", "200", "300"]
Run Code Online (Sandbox Code Playgroud)
我想要实现的是创建for循环,它将为我提供以下输出:
column-3-fade-100
column-3-fade-200
column-6-fade-300
column-8-fade-100
column-4-fade-200
...
Run Code Online (Sandbox Code Playgroud)
嵌套for循环对我不起作用:
for i in fade:
for c in column_width_a:
print("column-{0}-fade-{1}".format(c, i))
Run Code Online (Sandbox Code Playgroud)
还有其他产生此输出的方法吗?