您最喜欢的各种语言的骨架文件是什么?

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等.

你最喜欢的骨架文件是什么?

jro*_*way 3

我的 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 应用程序等的类中)