小编Rob*_*t P的帖子

尼曼的13条最低限度诫命的来源在哪里?

我有一个页面(第1页),日期为1989年2月2日,我的前任老板向我提出,概述了尼曼的13条最低限度的诫命.(他认识到他们已经过时了,这使得它更像是一种考古学而非现代的指导方针.)如果你还没有看到它们,它们如下:

  1. 你应该充分评论你的代码,以便解释你的意图.男人不会单独依靠助记符.
  2. 你应该将数字常量等同于有意义的符号名称.说清楚,避免异教徒的图标.
  3. 你应该描述你模块中的所有输入和输出.善待你的软件兄弟和sistren可能必须维护你的模块.
  4. 你应该充分描述你的修改.期待你的peeren成为读者是一种罪恶.无论如何,精神阅读是一种罪.
  5. 你应该提供你的汇编代码的伪代码解释.确实,装配不是Cobol.
  6. 每个模块只有一个入口和一个出口点.有许多进入和退出点的人应该期望他们的身体发展相同.
  7. 在开发之前,你应该设计你的代码.确实,确实如此.
  8. 你要与你的peeren一起审查你的代码.祝福是温顺的,因为他们将继承目标代码.
  9. 您应记录您的设计并向维护代码的所有人提供文档.实际上,拒绝的人会在地狱中永远地调试操作系统.
  10. 你能够接受有意义的批评他们的代码.如果你为自己的代码感到羞耻,那么你应该成为一名职业投手.
  11. 在将代码放入库控制之前,您应彻底(原文如此)测试您的代码.圣经中遗漏的一部分是上帝通过调试作为disel引擎控制器一部分的大型8096汇编语言程序来测试约伯的地方.整个事情在发布之前没有经过测试.更糟糕的是,Job必须使用英特尔工具.
  12. 在可能的情况下,您应避免使用全局数据结构.塔楼应该被命名为巴别塔,程序不应该.
  13. 当你的汇编程序员无法匹配最佳编译的二十世纪晚期代码的效率时,你应该使用高级语言.谨防那些认为装配总是比良好的编译器能够产生的效率(速度和尺寸)更高效的假神.你必须非常善于设计和编码才能真正利用汇编语言.

我已经在互联网上搜索了这些诫命或尼曼的诫命的来源,并且它一直在杀我试图找到更多关于这个以及他可能不得不说的任何其他内容.我唯一的另一个线索是,在左下方,有首字母"DEN" - 我假设N代表尼曼,但我没有别的东西来识别文本.所以,

A.谁是尼曼?(程序员?老师?顾问?公司的随机人员?)

B.这页是什么?(旧的编程指南?一些公司手册?当天回来的一些BBS?)

C.其余部分在哪里?(还有更多吗?还有什么?这是一个独立的东西吗?)

为了回应这些评论,我的老板已经过去了,但在此之前,他已经在这家公司工作了很长时间,灰熊和所有人.根据论文的颜色,我很确定日期(1989年)大致是印刷日期.

language-agnostic history methodology

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

说明你不应该写入Program Files区域的指南在哪里?

关于SO的许多问题都说"Windows开发人员指南"或"Windows设计指南"说你不应该将临时或程序数据写入Program Files区域,但据我所知,它们实际上都没有链接到一个文档那说得那么多.搜索MSDN没有结果.Windows将使该区域为只读,因此它可以由操作系统强制执行,但这并不意味着开发人员不会尝试在那里写入(例如,当移植较旧的,XP和早期的程序时).

我意识到在Windows开发的最后阶段提出这个问题似乎很奇怪(因为,正如下面指出的评论者所说,已经被操作系统强制执行了十多年),但有时需要一份文件来满足人们的需求. .

考虑到这一点,Microsoft是否发布了一份文档,说明我们不应该将应用程序数据写入Program Files区域,如果是,那么它在哪里?

windows

11
推荐指数
1
解决办法
2739
查看次数

Boo能为你做什么?

试图获得一个侧面项目的爱好,让我从C#的9-5工作中获得动力并且正在考虑Boo.一些?

  • 你和Boo有什么经历?
  • 你用Boo或者做过什么样的应用程序/项目
  • 什么是Boo能够做到的?

猜猜是网络世界,想要掌握桌面应用程序等等.

boo

10
推荐指数
2
解决办法
1595
查看次数

Perl正则表达式匹配中数字符号(#)的含义是什么?

perl中以下语句的含义是什么?

($script = $0) =~ s#^.*/##g;
Run Code Online (Sandbox Code Playgroud)

我试图理解operator =〜以及右侧的声明#^.*/## g.

谢谢

perl

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

在计算机语言基准游戏中提高Perl的chameneos-redux的速度

曾经看过计算机语言基准游戏(以前称为Great Language Shootout)?

Perl目前在那里有一些相当健康的比赛.在我看来,可能还有一些地方可以改善Perl的分数.最大的一个是现在的chameneos-redux脚本 - Perl版本运行的语言最差:比C基线解决方案慢1,626倍!

关于如何制作和优化程序有一些限制,并且Perl的解释运行时惩罚,但是1,626次?必须有一些东西可以让这个程序的运行时间缩短.

看一下源代码挑战,如何提高速度?

optimization perl

9
推荐指数
1
解决办法
521
查看次数

如何按排序顺序读取目录中的文件?

当我使用opendir,readdir和读取Perl中的目录时closedir,该readdir函数似乎没有以任何特定顺序读取文件(我可以告诉).

我正在读取一个目录,该目录包含以epoch timestamp命名的子目录:

1224161460
1228324260
1229698140
Run Code Online (Sandbox Code Playgroud)

我想以数字顺序读取这些目录,这将把最旧的目录放在第一位.

当我使用时readdir,它读取的第一个是1228324260,这是中间的一个.我知道我可以将目录内容放在一个数组中并对数组进行排序,但是我可以传递一个选项readdir来按排序顺序读取吗?或者可能是一种更优雅的方法来实现这一点,而不是将所有内容推入数组并对数组进行排序 可能还有模块可以做到这一点,但很难在我们的环境中安装模块,所以除非它是一个内置模块,否则我宁愿不使用模块......

谢谢!

编辑 根据要求,我发布了我正在使用的代码:

opendir( my $data_dh, $data_dir ) or die "Cannot open $data_dir\n";
while ( my $name = readdir($data_dh) ) {
    next if ( $name eq '.' or $name eq '..' );
    my $full_path = "${data_dir}/${name}";
    next unless ( -d $full_path );
    process_dir($full_path);
}
closedir($data_dh);
Run Code Online (Sandbox Code Playgroud)

directory perl getdirectories readdir

8
推荐指数
3
解决办法
2万
查看次数

如何找出执行Perl脚本的脚本,程序或shell?

我如何确定哪个脚本,程序或shell执行了我的Perl脚本?

示例:如果从shell(为每种类型的shell定制)执行,我可能希望具有人类可读输出,如果从另一个perl脚本调用脚本,则可能需要不同类型的输出,如果从诸如一个持续集成服务器.

动机:我有一个工具可以根据shell执行它来改变输出.我通常将此行为作为脚本的选项实现,但此工具的设计不允许选项.其他shell具有指示正在运行的shell的环境变量.我正在开发一个支持Powershell的补丁,它没有这样的特殊变量.

编辑:这些答案中有许多恰好是特定于Linux的.不幸的是,Powershell适用于Windows. getppid,$ENV{SHELL}变量和炮轰ps将在这种情况下无济于事.此脚本需要跨平台运行.

shell powershell perl

7
推荐指数
2
解决办法
2523
查看次数

如何在数组引用中使用索引作为Perl中的方法引用?

类似于关于迭代子例程引用的问题,并且作为回答关于OO调度表的这个问题的结果,我想知道如何在引用中调用方法引用,而不是先删除它,或者甚至是否可能.

例如:

package Class::Foo;
use 5.012;   #Yay autostrict!
use warnings;

# a basic constructor for illustration purposes....
sub new { 
    my $class = shift;
    return bless {@_}, $class;
}

# some subroutines for flavor...
sub sub1 { say 'in sub 1'; return shift->{a} }
sub sub2 { say 'in sub 2'; return shift->{b} }
sub sub3 { say 'in sub 3'; return shift->{c} }

# and a way to dynamically load the tests we're running...
sub …
Run Code Online (Sandbox Code Playgroud)

perl reference

6
推荐指数
1
解决办法
207
查看次数

如何确保使用Module :: Build安装没有扩展名的文件?

我正在将继承的软件集合转换为基于Module :: Build的发行版.

lib.pm文件外,这些目录还包含模块所需的某些外部文件.这是很容易保证有扩展名的是被复制的一起.pm使用的文件Module::Buildadd_build_element方法.

但我对如何处理没有扩展名的文件感到困惑.如何.pm在安装期间确保这些文件也与文件一起复制?有没有办法告诉Module::Build复制下的所有内容lib

perl module-build

6
推荐指数
1
解决办法
187
查看次数

我应该在Perl中使用带有opendir的词法目录句柄吗?

几乎普遍当人们在SO(或其他地方)上发布关于Perl和从文件中读取的问题时,如果任何涉及旧式开放的代码

open FH, ">file.txt" or die "Can't open for write, $!";  # OLD way, do not use!
Run Code Online (Sandbox Code Playgroud)

因不使用词法文件句柄而大喊大叫.众所周知,

open my $fh, ">", "file.txt" or die "Can't open for write, $!"; # new hotness
Run Code Online (Sandbox Code Playgroud)

是在现代Perl中打开文件句柄的正确方法.目录处理怎么样?在最近的一些SO问题中,人们提出了涉及的问题opendir,并发布了类似的代码

opendir DIR, "/directory" or die "Can't get the directory, wtf?! $!"; # ???
Run Code Online (Sandbox Code Playgroud)

的perldoc页显示

opendir(my $dh, $some_dir) || die "can't opendir $some_dir: $!";
Run Code Online (Sandbox Code Playgroud)

作为例子.

我们是否应该建议人们为opendir使用词法目录句柄?

perl

5
推荐指数
1
解决办法
644
查看次数