Fra*_*ank 5 ide code-generation
拥有骨架或模板文件非常有用,您可以将其复制并用作新脚本或应用程序的基础.
例如,我使用以下的(带有自动插入模块的emacs在创建新文件时会自动打开相应骨架文件的副本).
Perl:
#!/usr/bin/perl -w
use strict;
use Getopt::Long;
my $verbose = 1;
GetOptions("verbose!" => \$verbose
) or die("options error");
Run Code Online (Sandbox Code Playgroud)
C++:
#include <iostream>
#include <stdexcept>
int main(int argc, char** argv){
try{
}
catch(std::exception& e){
std::cerr << e.what() << std::endl;
return EXIT_FAILURE;
}
return EXIT_SUCCESS;
}
Run Code Online (Sandbox Code Playgroud)
可以说,可以包括基本代码boost::program_options等.
你最喜欢的骨架文件是什么?
我的 Perl 模板如下所示:
如果我打开 .pm 模块:
use MooseX::Declare;
class What::Ever {
};
1;
Run Code Online (Sandbox Code Playgroud)
或者,如果不是在MooseX::Declare项目上:
package What::Ever;
use Moose;
1;
Run Code Online (Sandbox Code Playgroud)
如果它是 .pl 文件:
#!/usr/bin/env perl
use strict;
use warnings;
use feature ':5.10';
Run Code Online (Sandbox Code Playgroud)
由于我使用 autoinsert.el,它也会询问我是否要使用 FindBin;如果是这样:
#!/usr/bin/env perl
use strict;
use warnings;
use feature ':5.10';
use FindBin qw($Bin);
use lib "$Bin/../lib";
Run Code Online (Sandbox Code Playgroud)
必要的 emacs 代码位于我的 elisp 存储库中,网址为http://github.com/jrockway/elisp/blob/fd5d73530a117a13ddcde92bc1c22aba1bfde1f0/_local/auto-inserts.el。
最后,我认为您会更喜欢MooseX::Getopt而不是普通的 Getopt。这是一种更易于维护的编写“一次性”脚本的方法。(接下来的几行内容类似于:
use My::Script; # that's why we did the "use lib" thing
My::Script->new_with_options->run; # this parses the command line, creates a new object, and runs the script
Run Code Online (Sandbox Code Playgroud)
所有重要的代码都放在一个可以进行单元测试、粘合到 Web 应用程序等的类中)