虽然我对CSS和HTML有所了解,但我是一名完整的编程初学者.
我想学习Python.我下载了很多源代码,但文件数量和复杂性让我很困惑.我不知道从哪里开始.我应该寻找特定的订单吗?
谢谢.
编辑:对不起伙计们,我忘了提到我已经有了在线教程和几本书.我基本上我不太明白如何"拆除"和理解复杂的源代码,以掌握编程技术和概念.
EDIT2:谢谢你们非常快速的评论.对此,我真的非常感激.这个网站太棒了.
我们可以使以下Ruby代码更短,同时更具可读性吗?
height = do_some_calc
height = 128 if height == 0
Run Code Online (Sandbox Code Playgroud) 大多数情况下,当在程序中创建多个使用彼此的类时,我只想包含减少混乱所需的最少数量的头文件.
例如,假设类C继承自包含类A的类B.现在当然,因为类B包含类A作为成员,所以它需要包含a.h在中b.h.但是,让我们说C也需要包含a.h.像我一样懒惰,我只是包括b.h(C需要包括其中),并且由于b.h已经包含a.h,我不需要包含更多内容,并且它编译得很好.对于我的.cpp文件也是如此:我只包含标题,标题中包含的任何内容都将自动包含在我的.cpp文件中,所以我不在那里包含它.
这是我的坏习惯吗?它是否会降低我的代码的可读性?
我正在处理一个中等大小的C文件,我需要处理3种不同的独有条件.(如果存在条件1,则执行此操作,如果存在2则执行其他操作,同样).所以,在该文件的许多地方,我需要做if/else检查 - 看起来很脏.我有50个地方在做这些检查.
是否有更好的方法,使代码看起来更干净?
我真的很讨厌和IComparer一起工作- 直到今天,经过多年与.Net的合作,我仍然经常被那些1和-1混淆.
我可以用一些不言而喻的名称替换比较结果值,而不必在每次比较调用后将输出整数转换为其他值吗?
我试着像这样定义一个枚举:
public enum ComparerResult
{
ALessThanB = -1,
Equal = 0,
AGreaterThanB = 1
}
if(comparer.Compare(a, b) == ComparerResult.ALessThanB)
Run Code Online (Sandbox Code Playgroud)
但是,如果没有演员阵容,那当然不会编译.
这当然也适用于IComparable.CompareTo.
谢谢你的想法
有没有办法改进Sublime text 2的花括号包装?例如,我有以下PHP代码:
$isThisPointless = true;
$uselessString = 'Meh.';
$uselessInt = 83;
Run Code Online (Sandbox Code Playgroud)
假设我想将它包装在if语句中.所以我继续,选择代码并按'{'和Sublime Text神奇地用大括号包装它.大!只是,缩进是一团糟.现在我的代码更像是:
{$isThisPointless = true;
$uselessString = 'Meh.';
$uselessInt = 83;}
Run Code Online (Sandbox Code Playgroud)
虽然我期望实现这一目标:
{
$isThisPointless = true;
$uselessString = 'Meh.';
$uselessInt = 83;
}
Run Code Online (Sandbox Code Playgroud)
谷歌搜索建议使用bracketeer插件.我尝试使用它,虽然它删除了丑陋的缩进,它仍然没有按我想要的方式缩进块.
有没有办法让Sublime Text做到这一点?
我已经搜索了很长一段时间了,我找不到答案,之后我转向了你们.我正在使用Atom IDE,我的查询非常简单 - 我想要从代码块的开头到结尾运行的垂直模糊行,这样可以提高代码的可读性.我已经在谷歌上进行了几次搜索以获得答案,但我无法得到解决方案.
我不想折叠代码.我只想要那些令人敬畏的台词.
这是什么:
我想要的是什么:
先感谢您.
对项目进行维护我遇到了代码,我觉得这些代码很难读,我希望重构,以提高可读性.
功能是需要按顺序执行的长链操作.只有在上一个操作成功时才应处理下一个操作.如果操作不成功,则需要设置相应的消息.返回的类型是布尔值.(成功的真/假).就像所有被调用动作的返回类型一样.
基本上它归结为这样的事情.
string m = String.Empty; // This is the (error)Message.
bool x = true; // By default the result is succesful.
x = a1();
if(x) {
x = a2();
}
else {
m = "message of failure a1";
return x;
}
if(x) {
x = a3();
}
else {
m = "message of failure a2";
return x;
}
//etcetera..etcetera...
if(x){
m = "Success...";
}
else{
m = "Failure...";
}
return x;
Run Code Online (Sandbox Code Playgroud)
我的问题是:处理这种逻辑的更好的结构/模式是什么?
主要目标是:
c# algorithm maintainability design-patterns code-readability
如今,我切换到声纳报告以进行静态代码检查和性能改进。在规则部分,我发现我的方法的认知复杂性很高。
您可以在声纳中找到认知复杂性错误,方法如下:转到“ 项目”->“问题”选项卡->“规则”下拉菜单->“认知复杂性”
下面的屏幕截图为您提供了声纳项目的参考:
我没有任何方法来计算和减少方法的认知复杂性。最后,我找到了计算复杂度的准确方法,我将在下面的文章中回答。请退房。
我有以下情况:
string = "abc"
if (string[1] == "b" and string[2] == "c") or (string[1] == "c" and string[2] == "b"):
print("ERROR")
Run Code Online (Sandbox Code Playgroud)
是否有解决方案以pythonic方式缩短此时间?我看到这(string[1] == "b" and string[2] == "c")是的相反陈述(string[1] == "c" and string[2] == "b")。也许我可以使用?
code-readability ×10
algorithm ×2
c# ×2
coding-style ×2
if-statement ×2
python ×2
.net ×1
atom-editor ×1
brackets ×1
c ×1
c++ ×1
class ×1
code-folding ×1
editor ×1
include ×1
indentation ×1
kotlin ×1
optimization ×1
ruby ×1
sonarqube ×1
sublimetext2 ×1