我有一个看起来像这样的方法:
private double GetX()
{
if (Servings.Count > 0)
{
return Servings[0].X;
}
if (!string.IsNullOrEmpty(Description))
{
FoodDescriptionParser parser = new FoodDescriptionParser();
return parser.Parse(Description).X;
}
return 0;
}
Run Code Online (Sandbox Code Playgroud)
我有另一个看起来像这样的方法:
private double GetY()
{
if (Servings.Count > 0)
{
return Servings[0].Y;
}
if (!string.IsNullOrEmpty(Description))
{
FoodDescriptionParser parser = new FoodDescriptionParser();
return parser.Parse(Description).Y;
}
return 0;
}
Run Code Online (Sandbox Code Playgroud)
有没有办法巩固这个,因为唯一不同的是属性名称?
码
下面的代码计算线性回归的斜率和截距,以防止数据泄漏.然后,它将方程应用于y = mx + b相同的结果集,以计算每行的回归线的值.
如何连接两个查询,以便计算数据及其斜率/截距而不执行该WHERE子句两次?
问题的一般形式是:
SELECT a.group, func(a.group, avg_avg)
FROM a
(SELECT AVG(field1_avg) as avg_avg
FROM (SELECT a.group, AVG(field1) as field1_avg
FROM a
WHERE (SOME_CONDITION)
GROUP BY a.group) as several_lines -- potentially
) as one_line -- always
WHERE (SOME_CONDITION)
GROUP BY a.group -- again, potentially several lines
Run Code Online (Sandbox Code Playgroud)
我SOME_CONDITION执行了两次.如下所示(通过STRAIGHT_JOIN优化更新):
SELECT STRAIGHT_JOIN
AVG(D.AMOUNT) as AMOUNT,
Y.YEAR * ymxb.SLOPE + ymxb.INTERCEPT as REGRESSION_LINE,
Y.YEAR as YEAR,
MAKEDATE(Y.YEAR,1) as AMOUNT_DATE,
ymxb.SLOPE,
ymxb.INTERCEPT,
ymxb.CORRELATION, …Run Code Online (Sandbox Code Playgroud) 作为一个系统管理员,我最终每隔一段时间做一些简单的临时编程.我一直在努力学习,所以一般来说,下面的代码中是否有任何内容可以作为不良实践或其他不必要的内容跳出来?
具体来说,最后的3个if语句感觉就像我在不必要地复制代码一样.是否有任何方法可以进一步缩短它而不会过度复杂化?
<?php
define('TAKEN', 'Match: One');
define('AVAIL', 'Match: No Matches');
define('DATAMINE', 'Data mining count exceeded');
$ch = curl_init("http://co.za/cgi-bin/whois.sh?Domain=example");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_HEADER, 0);
$output = curl_exec($ch);
function search_whois($findit) {
global $output;
if (strpos($output, $findit) === false)
return false;
if (is_int(strpos($output, $findit)))
return true;
}
if (search_whois(TAKEN))
echo "Domain is taken.\n";
if (search_whois(AVAIL))
echo "Domain is available.\n";
if (search_whois(DATAMINE))
echo "Blocked for datamining, try again later.\n";
// var_dump($output);
?>
Run Code Online (Sandbox Code Playgroud) 在这种情况下是否可以避免代码重复?(Java代码)
void f()
{
int r;
boolean condition = true;
while(condition)
{
// some code here (1)
r = check();
if(r == 0)
break ;
else if(r == 1)
return ;
else if(r == 2)
continue ;
else if(r == 3)
condition = false;
// some code here (2)
r = check();
if(r == 0)
break ;
else if(r == 1)
return ;
else if(r == 2)
continue ;
else if(r == 3)
condition = false;
// some code here …Run Code Online (Sandbox Code Playgroud) 这将是一个有点抽象的问题.
我正在研究一个数据访问层框架,它需要区分表,它的抽象模式/布局和具体的表记录.我担心由于这种区别,会有很多代码重复.我可能需要一些方法来避免这种情况.
+-----------+
| Foo |
+-----------+
| +Id: Guid |
+-----------+
Run Code Online (Sandbox Code Playgroud)
请注意,此图可以描述以下任何一种:表模式,具体表或具体表记录,具有Id类型的字段Guid.
把它翻译成代码,我会得到很多类似的类型(成对的三种).我将使用接口来保持示例简短; 我要展示的是类型的相似性:
// these interfaces only need to be implemented once:
interface ISchemaField<T> { string Name { get; } }
interface ITableField<T> { string Name { get; }
int Index { get; } }
interface IRecordField<T> { string Name { get; }
int Index { get; }
T Value { get; set; } }
Run Code Online (Sandbox Code Playgroud)
// these three interfaces are an …Run Code Online (Sandbox Code Playgroud) c# data-access-layer code-duplication separation-of-concerns
我在不同模型的 ajax 响应之间有重复的 js.erb 代码。我想通过将参数传递到 js.erb 部分来重构重复的 js.erb 代码。
如何从 js.erb 文件呈现 js.erb 部分?
我有5个C#文件,共有20个using指令.我想摆脱这个代码重复,特别是因为这20个使用指令在逻辑上属于一起.在C或C++中,我会创建一个包含这20个包含文件的额外头文件.这个额外的头文件充当一个层,然后一次包含20个其他文件.
不幸的是我不知道如何在C#中做到这一点.有什么建议?
我找不到如何在 Javascript 中删除代码重复(基本上是我在 Java 中使用基类实现的)。
具体示例是(至少)以下代码,它对所有规范文件(以及潜在的页面对象,因为我正在量角器中使用该模式进行测试)都是通用的:
var chai = require("chai");
var chaiAsPromised = require("chai-as-promised");
chai.use(chaiAsPromised);
var expect = chai.expect;
Run Code Online (Sandbox Code Playgroud)
我可以做一些有希望随处可得?我尝试在量角器配置中在规范之前加载一个文件:
specs: [
'e2e/helpers/commonDefinitions.js',
'e2e/**/*.spec.js'
]
Run Code Online (Sandbox Code Playgroud)
或使用beforeLaunch或onPrepare(但想要一个函数,不确定如何以这种方式公开变量),但没有成功。
但是,对于这种代码重用,我更喜欢通用的 Javascript 方法。
有什么好的方法可以避免在任何地方重复这种常见的代码,尤其是在测试中(mocha、karma、protractor)?
我正在结束一个python项目,我正在考虑用pro/lite版本发布它.当然,我不希望重复的代码存在,但我不能发布一个免费版本,其中许多专业版的功能仅在几个if检查时被禁用:代码用于Blender附加组件,因此如果功能仍然存在,将很容易编辑并转换为专业版.
使用Git/Pycharm维护这样的项目的最佳方法是什么(或者我最好不要担心精简版)没有重复的代码?我已经读过使用多个Git分支不是要走的路.
我确实意识到关于这个话题有很多类似的问题.然而,其中许多涉及使用Xcode,而且还有更多没有明确的答案.不要误会我的意思,我知道我可以通过多种方式做到这一点 - 但我正在寻找最好的方式,最干净的方式.
我将 Sonarqube 与 Jenkins 一起使用来检查各种违规行为。有两个类A和B,它们有很多重复的代码。我知道并接受这一点。因此,我想忽略这些违规行为。但是,我仍然希望了解来自其他类(例如 C)的重复代码。我只想忽略A和之间的重复代码B。我怎样才能做到这一点?
code-duplication ×10
c# ×3
java ×2
.net ×1
.net-3.5 ×1
ajax ×1
base-class ×1
code-reuse ×1
erb ×1
flow-control ×1
git ×1
ireport ×1
javascript ×1
jquery ×1
mysql ×1
php ×1
postgresql ×1
pycharm ×1
python ×1
sonarqube ×1
sql ×1
testing ×1