小编Car*_*ter的帖子

什么时候重构代码?

在手:
1.你永远没有时间去做.
2."上下文切换"在精神上很昂贵(很难留下你正在做的事情).
这通常不是一件容易的事.
人们总是害怕你会破坏现在正在发挥作用的东西.

另一方面:
1.使用该代码容易出错.
2.随着时间的推移,您可能会意识到,如果您在第一次看到代码时重构了代码,那么从长远来看,这将节省您的时间.

所以我的问题是 - 实际上 - 你什么时候决定重构你的代码?

谢谢.

language-agnostic refactoring

4
推荐指数
3
解决办法
431
查看次数

在进行测试驱动开发之前的注意事项

我开始使用JavaScript的测试驱动开发,但我想在我的不同项目中开始使用它.

我想知道什么是典型的错误以及如何避免它们?

此外,我想知道我应该阅读什么,以使测试驱动开发更容易学习并应用于我的代码.

提前致谢.

tdd unit-testing js-test-driver

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

适用于Android的runOnUiThread()方法

我习惯调用runOnUiThread()来确保在UI线程上运行一段代码.我希望 UI线程中启动一段代码同样轻松.该方法应该是什么样的?

multithreading android

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

“仅在有意义的地方子类”的详细解释是什么?

来自名为“如何设计良好的 API 及其重要性”的演示文稿

我被困在演示文稿的第 25 页,其中写着:

为了便于实现,公共类不应子类化其他公共类

它给了我们一个例子(Java语法):

Bad:    Properties extends Hashtable 
        Stack extends Vector

Good:   Set extends Collection
Run Code Online (Sandbox Code Playgroud)

但为什么这些例子有好有坏呢?

java inheritance api-design subclass

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

nodemon - 忽略文件和路径

我正在使用节点js和nodemon模块.

问题:如果我在前端更改文件,服务器将自动重启.

预期:如果我更改路径中的几个js或几个文件,它不应该重新启动服务器.

我尝试了以下代码:

nodemon --ignore'public/javascripts/template_files/*.js'

但上面的代码不起作用.如果我更改template_files文件夹中的任何js文件意味着服务器一次又一次地重新启动.

node.js nodemon

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

Eclipse视觉指示编辑行

我已经使用Eclipse很长一段时间了.它有它的问题,但我似乎总是回到它.

几年前我使用IntelliJ,因为客户需要它.我喜欢IntelliJ的一个小问题是,如果自上次提交以来编辑了一行,它在装订线中显示了一个视觉指示器.我真的很想在Eclipse中看到这个.

我错过了明显的吗?

eclipse

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

这条线有什么问题?

我试图删除所有"从一个名为s1的字符串,我有这条线

s1=replace (s1, """, "")
Run Code Online (Sandbox Code Playgroud)

但我得到一个编译错误,说它期待列表分隔符或)

我该如何解决?提前致谢.

string vb6

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

何时删除新弃用的代码?

我花了一个月的时间编写了一个精心设计的支付系统来处理信用卡支付和电子资金转账.我的工作在生产服务器上使用了大约一个月.客户最近告诉我,他不再想使用电子转账功能.

因为我必须与信用卡网关进行接口和通信的方式与电子资金转帐api完全不同(例如,cc公司在http请求之后立即给出交易响应,而eft公司在提交后5个工作日提供交易响应http请求),我花了很多时间编写自己的API来抽象常见的函数调用

功能支付(金额,pay_method,pay_freq)

function updateRecurringSchedule(user_id,new_schedule)

等等..

现在客户想要放弃EFT功能,我对这个抽象支付API的所有工作都已过时.

我正在考虑是否应该废弃我的工作.这是我的专业人士与骗子现在报废它:

PRO 1:消除代码膨胀

PRO 2:新开发人员不需要学习MY API.他们只需要阅读CC公司的API

PRO 3:因为EFT公司没有处理定期付款时间表,退款和验证,所以我编写了自己的应用程序来执行此操作.虽然CC公司的API允许此功能,但我选择使用我的,以便我可以简化我的代码.既然EFT已经不在了,我可以删除所有这些令人困惑的代码,只需依靠CC公司的系统来管理定期计费,付款时间表,退款,验证等......

CON 1:虽然我可以删除EFT代码,但仍需要时间来删除整合不同支付系统的整个框架.

CON 2:关于PRO 3,构建将支付系统与CC公司更紧密地集成在一起的功能需要时间.

CON 3:我觉得不安全地删除所有这些工作.我不认为我会再次使用它.但是,由于一些莫名其妙的原因,我现在"不能立即"删除这项工作.

CON 4:还有数据库的问题.如果我删除了我的业务逻辑代码,然后规范化数据库(最终将使用新的数据库模式),由于数据迁移问题,很难恢复此功能.然而,如果我将现有代码保留在现有数据库中,那么开发人员维护起来会更麻烦,但不必担心丢失任何内容.

所以我的问题是,我应该删除一个月值得近期的发展吗?如果是,我应该立即这样做还是等待X时间才这样做?

其他细节 我添加了CON 4

refactoring

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

如何编写更高效的代码

世纪的问题?我基本上想知道如果我将这段代码写成几个不同的变量或者我使用的是小数组,哪个会更有效.

int x = 34;
int y = 28;
int z = 293;
Run Code Online (Sandbox Code Playgroud)

VS

double coordinate[3] = {34, 28, 293};
Run Code Online (Sandbox Code Playgroud)

我有一个坐标结构,我将按以下方式使用:

typedef struct coordinates_t {
    double x = 0.0;
    double y = 0.0;
    double z = 0.0;

} coordinates;


typedef struct car_t {
    coordinates start; // car starting point
    coordinates location; // car current Location
    coordinates targCarVector; // Vector to car from target
    coordinates altitude; // Altitude of car
    coordinates distance; // Distance from car start to current position
} …
Run Code Online (Sandbox Code Playgroud)

c performance premature-optimization

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

为什么java中的静态方法只接受其方法中的final或非final变量,而不是静态?

为什么java中的静态方法只接受其方法中的final或非final变量,而不是静态?

例如,我有以下方法:

public static void myfunc(int somethig)
{                                      
  int a=10;                            
  final int b=20;                      
  static int c=30;   //gives Error why?
}
Run Code Online (Sandbox Code Playgroud)

java android

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