我目前正在撰写正式的研究报告,我将在此报告中包含代码.
问题:是否有可接受的方式在研究报告中显示代码?我在考虑字体,间距等问题,以及代码是应该在文档内部还是在附录中显示.
代码将是JavaScript和PHP.代码的所有部分都不会超过25行(因此它们仅仅是片段).将有大约六个片段.每个片段都有几个段落,解释代码中发生的事情,并讨论其优缺点.
我没有与提交报告的机构联系,也没有关于如何格式化代码的公布指南(请不要质疑这些要点).
我一直在研究Lucene 2.9特别是重做令牌流API之间的差异,它只是发生在我身上它特别难看,相比旧的只是返回一个新的或重新填充给定的值,如果你重用说Token.
我没有做任何分析,但似乎使用MAP来存储属性并不是那么有效,并且更容易创建一个包含值等的新值类型.TokenStream和Attribute的东西看起来像对象池,这几乎是不必要的这些天来,对于简单的值类型,如文本标记.
我对HTML的最大抱怨是换行符在元素之间增加了一点点空间.(jsFiddle.)
这可能会破坏子元素大小完全适合父母的布局.
我在某处读到你可以删除这个隐式填充 - 同时仍然保持代码有些清晰 - 通过使用这样的注释:
<!--
--><div>Foo</div><!--
--><div>Bar</div><!--
--><div>And so on...</div><!--
-->
Run Code Online (Sandbox Code Playgroud)
这有效,但我觉得必须有一个更好的解决方案.还有什么方法可以解决断线填充问题?
我管道一个字符串并处理For-EachObject如下:
"Test" | % { $_.Substring(0,1) }
Run Code Online (Sandbox Code Playgroud)
使用单个管道项目似乎是错误的For-EachObject,部分原因是它对未来的代码维护者有误导性.但是,我不知道任何其他方式来捕捉字符串,同时说"它只是一个单项".例如,这不起作用.
"Test" | $_.Substring(0,1)
"Test" | { $_.Substring(0,1) }
Run Code Online (Sandbox Code Playgroud)
如何处理单个对象,同时表明我只期望一个?
以上是我实际想要完成的简化版本.我得到了维基百科文章的第一段,它是将结果保存到文件的更大函数的一部分.
curl "www.wikipedia.org/wiki/Hope,_British_Columbia" |
select -expand allelements |
? { $_.id -eq "mw-content-text" } |
select -expand innerHTML |
% {
$i = $_.IndexOf("<P>");
$j = $_.IndexOf("</P>");
$_.Substring($i, $j - $i) -replace '<[^>]*>'
}
Run Code Online (Sandbox Code Playgroud)
需要处理单个对象的部分遵循select -expand innerHtml表达式.管道是我的首选方式,因为在curl部件周围放置多个括号似乎很难看.
curl 是 Invoke-WebRequestselect 是 Select-Object-expand 是 ExplandProperty? 是 Where-Object% …我一直在解剖一些代码,我看到了一些我以前从未见过的东西,我想知道这是不是一个好/坏的做法,如果这是正常的.
基本上有一个头文件,带有类定义,用于具有一堆(大约90个)纯虚函数的类.这些虚函数有很多,所以它们都放在一个单独的文件中,然后包含在类定义中,如下所示:
class Foo
{
public:
virtual ~Foo() {};
#define FOO_VIRTUAL_IMPL = 0
#include "Foo_prototypes.h"
};
Run Code Online (Sandbox Code Playgroud)
#if ! defined(FOO_VIRTUAL_IMPL)
# define FOO_VIRTUAL_IMPL
#endif
virtual void doSomething() FOO_VIRTUAL_IMPL;
virtual void doSomethingElse() FOO_VIRTUAL_IMPL;
Run Code Online (Sandbox Code Playgroud)
使用定义宏也是常见的(即允许相同的包含文件用于纯虚拟和普通虚拟功能)?是经常使用这种东西,还是只是为了节省一点时间/精力的小黑客?
我想这些东西让代码看起来对我来说不太可读,但可能只是因为我不习惯这些技巧,一旦我习惯了它们,我就会更好地阅读这种代码.
有问题的代码是Interactive Brokers的C++ API,如果有人关心在上下文中看到它.相关文件是:EWrapper.h和TestCppClient.h以及EWrapper_prototypes.h.
这更多是一个关于如何处理具有类型改变副作用的函数的开放问题TypeScript。我知道并且强烈同意这样的观点:函数应该尽可能减少副作用(如果有的话)。
但有时,需要就地更改对象(及其类型) ,而不是使用另一个静态类型创建它的新副本。我最常遇到的原因是可读性、效率或减少行数。
由于我最初的示例过于复杂且过于复杂(希望如此),这里是一个非常基本的示例:
type KeyList = 'list' | 'of' | 'some' | 'keys';
// Original type (e.g. loaded from a JSON file)
interface Mappable {
source: { [K in KeyList]: SomeNestedObject },
sourceOrder: KeyList[];
}
// Mapped Type (mapped for easier access)
interface Mapped {
source: { [K in KeyList]: SomeNestedObject },
sourceOrder: SomeDeepObject[];
}
// What I have to do to keep suggestions and strict types all …Run Code Online (Sandbox Code Playgroud) javascript side-effects code-readability typescript typescript-typings
当我开始在我的代码中添加更多跟踪时,我意识到它增加了很多混乱.我知道Visual Studio允许你隐藏和显示代码,但是,我希望能够将组代码转换为"跟踪"代码,然后隐藏它并随意显示,因为我正在阅读代码.我想它可以按文件或每个类或每个函数执行此操作.
有没有办法做到这一点?你们做什么的?
添加一些说明
隐藏当前功能允许您执行此操作,除非隐藏代码时,您无法判断其是否跟踪.您也不能说"隐藏所有跟踪代码"和"显示所有跟踪代码",这在阅读函数时非常有用,具体取决于您要执行的操作.
我必须根据用户输入创建报告.用户回答一个问题,然后根据答案我在树状结构中向左或向右走,并提出一个新问题.一些节点将有相同的问题,但不同的孩子.我不确定在代码可读性方面最好的方法是什么?
我想避免巨大的控制结构,因为它将是非常难以理解的,像这样:
if() {
if() {
if() {
if() {
...
}
}
else {
if() {
...
}
}
}
else {
...
}
}
else {
if() {
if() {
if() {
...
}
}
else {
if () {
...
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
有没有更好的方法来处理它?这是我树如何看的图像

我有一个很长的表达,它不适合我的屏幕,我想写几行。
new_matrix[row][element] = old_matrix[top_i][top_j]+old_matrix[index_i][element]+old_matrix[row][index_j]+old_matrix[row][index_j]
Run Code Online (Sandbox Code Playgroud)
如果我只是换行,Python 会给我“缩进”错误。有没有办法在屏幕上“适应”长表达?
查看Checkstyle 文档中的GenericWhitespaceCheck,
左尖括号 (
<):
- 仅在通用方法定义中应以空格开头。
- 在方法名称或类型名称之前不应以空格开头。
- 在所有情况下都不应该跟有空格。
右尖括号 (
>):
- 在所有情况下都不应该以空格开头。
- 在几乎所有情况下都应该跟有空格,除了菱形运算符和方法名称之前。
我不确定我是否完全理解为什么后面<不应该跟一个空格以及为什么>前面不应该跟一个空格的原因。
换句话说,为什么Map<String>公约结束了Map < String >?
这仅仅是因为随着参数数量和深度的增加,没有空格的版本更具可读性。
比如,Map<String, List<String>>比,更易读Map < String, List < String > >?
另外作为一个一般问题,是否有一些存储库/指南可以解释 Checkstyle 约定背后的原因?
code-readability ×10
coding-style ×2
javascript ×2
readability ×2
algorithm ×1
c# ×1
c++ ×1
checkstyle ×1
html ×1
java ×1
layout ×1
newline ×1
php ×1
powershell ×1
python ×1
report ×1
side-effects ×1
trace ×1
typescript ×1
whitespace ×1