我有一个使用的系统匈牙利大多数变量名,这基本上意味着我有很多大的代码库 objQueue的,objCommon的,dtDataSet的等等.
有没有办法转换他们中的大多数?特别是,我想摆脱obj那些完全没有意义的烦人的,让变量名称看似相似,代码完全不可读.
有一个类似的问题,但它询问是否值得做替换.
像"保持原样"这样的答案对我没有任何用处,因为我肯定我需要这样做.
代码库非常大,我不想逐个重命名变量.我也不想运行查找和替换,因为我会得到错误的命中并进一步搞乱代码.
是否有任何自动化工具可以在Visual Studio中进行此类替换?还有一些针对Resharper的插件,不管怎样?
当我写东西时,一半的努力倾向于添加清晰简洁的调试输出,或者当需要调试时可以启用/禁用的功能.
调试功能的一个例子是下载器类,在这里我可以打开一个#define,让它"假装"下载文件,然后简单地把我送回去.这样我就可以测试用户下载文件时会发生什么,而不必等待网络每次都物理地抓取文件.这是很棒的功能,但#ifdefs的代码变得更加混乱.
我最终得到了一堆#define像
// #define DEBUG_FOOMODULE_FOO
// #define DEBUG_BARMODULE_THINGAMAJIG
// ...
Run Code Online (Sandbox Code Playgroud)
对于我想看的东西没有注释.代码本身就像是
- (void)something
{
#ifdef DEBUG_FOOMODULE_FOO
DebugLog(@"something [x = %@]", x);
#endif
// ...
#ifdef DEBUG_FOOMODULE_MOO
// etc
}
Run Code Online (Sandbox Code Playgroud)
这对于编写/维护代码非常有用,但它对代码的外观没有任何作用.
人们如何编写毫不费力的即时长期调试"东西"呢?
注意:我不仅在这里谈论NSLogging ......我也在讨论像上面假装下载这样的东西.
有人可以提供一些策略来组织我的项目,使其干净吗?说我有一堆活动; 是否可以将它们全部放入一个单独的包中,同时将其他类(如自定义适配器)放在另一个包中以更好地分离"逻辑"?
此外,在为布局创建XML文件时,如果我有某些活动的布局和自定义"行"的其他XML布局文件(与适配器一起使用),我将如何逻辑地分离布局XML文件我不想要将它们全部投入到res/layout中 - 当项目变得非常大时,它将成为一个巨大的麻烦.
我目前正在开发一个大约15年的Web应用程序.
它主要包含带有HTML :: Template模板的CGI perl脚本.
它有超过12 000个文件和大约260 MB的总代码.我估计不需要超过1500 perl脚本,我想摆脱所有未使用的代码.
实际上没有为代码编写测试.
我的问题是:
userequire我在考虑以下方法:
use和requireperl内置类warnings和/或strict模块import功能,并在特定位置输出文件名Devel::Coverperl模块并采用相同的方法并在进行手动测试而不是自动测试时分析代码lsof(?!?)我一直在读Robert C. Martin的清洁代码,并且发现了臭名昭着的声明:
避免使用类名称中的管理器,处理器,数据或信息等字样.
所以,很自然地,我试图-Info从我的一个班级名称中分解出来.现在,我已经看到了各种StackOverflow问题,询问在-Manager或的情况下该怎么做-Processor.我看到评论表明他们无法想象-Data一个好的班级名称.嗯,在我看来,-Data和-Info似乎更难分解出.特别是,例如在下面的类中.
我有一个Server类如下:
public class Server {
//What I would call ServerInfo
private int id;
private String name;
private String address;
private int port;
private int connections;
private int maxConnections;
private int status;
//Bunch of members that aren't ServerInfo, for example:
private ConcurrentHashMap<String, File> files = new ConcurrentHashMap<String, File>();
private List<String> filePaths = new List<String>();
/* ... */
public …Run Code Online (Sandbox Code Playgroud) 我有一个服务,用于@angular/http从API加载数据.我想为我Components使用这些数据创建检索数据的投影.
因此我写了以下代码:
getById(id: string) {
return this.http
.get(`https://my-api.io/${id}`)
.map(response => response.json())
.map(contracts =>
contracts.map(contract => # <- Nested map
new Contract(
contract['id'],
contract['description']
)
)
);
}
Run Code Online (Sandbox Code Playgroud)
在第6行中,我有一个嵌套的map-Statement,降低了我的代码的可读性.
题
我可以做得更好吗?在RxJS中是否有一个操作符,我可以使用它而不是创建这种嵌套?
提前致谢!
我并不总是写 make 文件,但是当我这样做时,我喜欢尝试把它们写好。试图使界面与其他开发人员可能期望的一致总是很困难的。我正在寻找的是所有常见的 make something clean (GNU) make 目标的摘要。
常见的清洁目标有哪些?
每个目标通常什么时候使用?
每个目标与其他目标相比如何?
我曾使用make clean,make clobber和make mrproper之前的系统。那些变得越来越极端;make clean只整理临时文件,make clobber摆脱大部分配置,make mrproper几乎回到刚刚签出的状态。这是正常的秩序吗?应该make mrproper始终删除生成的二进制文件和共享库以进行部署吗?
阅读建议将make distclean事情整理到准备制作分发包的程度。我想这会留下一些自动生成的版本标记文件、文件清单和共享库,但可能会删除您不想存档的临时文件?
make realclean当我在GNU MakeGoals 手册页上看到它时,它对我来说是全新的。正如它列出的那样distclean,clobber我猜它有类似的效果。我是否从未遇到过它,因为它是一个历史文物,或者只是我必须从事的一组项目的特定内容?
抱歉,这有点啰嗦。我找到了将一个目标与另一个目标进行比较的各种问题和答案,但似乎没有一个可以很好地概述。
我有一个.editorconfig文件,其中包含我的命名首选项。当我运行代码清理时,它会自动格式化除命名之外的所有其他首选项。当我将鼠标悬停在违反命名首选项的变量上时,它会告诉我它违反了哪一个,我可以右键单击将其更改为正确的格式,但是当像我的其他首选项一样运行代码清理时,这不会自动发生。
我是否缺少 VS 设置以.editorconfig在运行代码清理时自动应用命名首选项?
偏好通知示例:
编辑器配置命名首选项:
# Naming rules
dotnet_naming_rule.private_or_internal_field_should_be_underscore_prefixed_camel_case.severity = warning
dotnet_naming_rule.private_or_internal_field_should_be_underscore_prefixed_camel_case.symbols = private_or_internal_field
dotnet_naming_rule.private_or_internal_field_should_be_underscore_prefixed_camel_case.style = underscore_prefixed_camel_case
# Symbol specifications
dotnet_naming_symbols.class.applicable_kinds = class
dotnet_naming_symbols.class.applicable_accessibilities = public, internal, private, protected, protected_internal, private_protected
dotnet_naming_symbols.class.required_modifiers =
dotnet_naming_symbols.interface.applicable_kinds = interface
dotnet_naming_symbols.interface.applicable_accessibilities = public, internal, private, protected, protected_internal, private_protected
dotnet_naming_symbols.interface.required_modifiers =
dotnet_naming_symbols.method.applicable_kinds = method
dotnet_naming_symbols.method.applicable_accessibilities = *
dotnet_naming_symbols.method.required_modifiers =
dotnet_naming_symbols.property.applicable_kinds = property
dotnet_naming_symbols.property.applicable_accessibilities = public, internal, private, protected, protected_internal, private_protected
dotnet_naming_symbols.property.required_modifiers =
dotnet_naming_symbols.public_or_protected_field.applicable_kinds = field
dotnet_naming_symbols.public_or_protected_field.applicable_accessibilities = public, protected
dotnet_naming_symbols.public_or_protected_field.required_modifiers …Run Code Online (Sandbox Code Playgroud) 我在 Visual Studio 17.4.1 中对选项卡大小进行了以下设置:
当我使用Edit->Advanced->Format Document时,我得到以下结果:
我配置了代码清理,据称其中包含格式文档:
当我保存或显式使用它时,我得到以下结果:
是否有两个单独的“格式化文档”命令?我应该如何得到相同的结果?
code-cleanup ×10
android ×1
angular ×1
c# ×1
cgi ×1
coding-style ×1
compilation ×1
css ×1
debugging ×1
editorconfig ×1
gnu-make ×1
html ×1
iphone ×1
java ×1
makefile ×1
objective-c ×1
organization ×1
packaging ×1
perl ×1
refactoring ×1
resharper ×1
rxjs ×1
rxjs5 ×1