2009-02-02 83 views
5

將骨架或模板文件複製並用作新腳本或應用程序的基礎很有用。什麼是你喜歡的各種語言的骨架文件?

例如,我用下面的人(emacs的與自動插入模塊,當我創建一個新的文件將自動打開相應的框架文件的副本)。

的Perl

#!/usr/bin/perl -w 

use strict; 
use Getopt::Long; 

my $verbose = 1; 

GetOptions("verbose!" => \$verbose 
) or die("options error"); 

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; 
} 

可以說,一個可能包括boost::program_options基本代碼等

什麼是你最喜歡的框架文件?

回答

3

我的Perl的模板是這樣的:

如果我開的.pm模塊:

use MooseX::Declare; 
class What::Ever { 

}; 

1; 

或者,如果不是在MooseX::Declare項目:

package What::Ever; 
use Moose; 

1; 

如果它是一個.pl文件:

#!/usr/bin/env perl 
use strict; 
use warnings; 
use feature ':5.10'; 

由於我使用autoinsert.el,我也有它問我是否要使用FindBin;如果是這樣:

#!/usr/bin/env perl 
use strict; 
use warnings; 
use feature ':5.10'; 

use FindBin qw($Bin); 
use lib "$Bin/../lib"; 

必要emacs的代碼是我在http://github.com/jrockway/elisp/blob/fd5d73530a117a13ddcde92bc1c22aba1bfde1f0/_local/auto-inserts.el的elisp庫。

最後,我想你會更喜歡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 

所有重要的代碼放在一個類,它可以進行單元測試,粘到Web應用程序等)

+0

很酷,我不知道MooseX。謝謝! – Frank 2009-02-02 03:56:55

3

唯一的框架文件我已經是爲LaTeX。

\documentclass{article} 
%\documentclass[11pt]{amsart} 
\usepackage[dvips]{graphicx} 
\usepackage{amsmath} 
\usepackage{amssymb} 
\usepackage{amsthm} 
\usepackage{cancel} 
\oddsidemargin0cm 
\topmargin-1cm 
\textwidth16.5cm 
\textheight23.5cm 
\parskip1ex 
\parindent0ex 
\begin{document} 
\title{ ... } 
\author{ ... } 
\date{ ... } 
\maketitle 

\end{document} 

顯然我用這個寫數學論文。

否則,我總是從頭開始。我無法想象哪種編程語言的必要基礎架構比您可以保留在大腦中的時間長,或者需要20秒以上才能輸出。

+0

將您生命中創建的文件數量乘以每行文件的4行樣板文件....我認爲您會發現值得讓您的編輯人員進行打字。 – jrockway 2009-02-02 03:55:55

0

當我編寫將成爲OSS的代碼時,我有一個簡單的鍋爐板模板,可以輸入許可證文本的許可證和URL。鍋爐板有作者的細節,和其他廢話硬編碼。

對於商業開發,我有一個公司信息的鍋爐板,並在其中的標準版權聲明。

我不保留任何標準骨骼,因爲我發現我只是剪出內容並添加了自己的內容。大多數情況下不同,只要用手甩開骨架就可以更換骨架。

1

在visual studio中,它們被稱爲項目文件;我目前最喜歡的是Windows應用程序;-)

+0

仍然沒有幽默感 - 非常傷心 – 2009-02-02 18:12:19

1

的Java

package edu.vt; 

import org.apache.commons.logging.Log; 
import org.apache.commons.logging.LogFactory; 

public class Template 
{ 
    private Log log = LogFactory.getLog(getClass()); 

    /* Constructors 
    ***************************************************************************/ 

    public Template() 
    { 
    } 

    /* Accessors/Mutators 
    ***************************************************************************/ 

    /* Local Methods 
    ***************************************************************************/ 
} 

package testing.edu.vt; 

import edu.vt.Template; 
import junit.framework.TestCase; 
import org.apache.commons.logging.Log; 
import org.apache.commons.logging.LogFactory; 

public class TemplateTestCase extends TestCase 
{ 
    private final Log log = LogFactory.getLog(getClass()); 

    public TemplateTestCase(final String name) 
    { 
     super(name); 
    } 

    protected void setUp() 
    { 
    } 

    protected void tearDown() 
    { 
    } 

    public void testLifeCycle() throws Exception 
    { 
     assertTrue(true); 
    } 
} 
+0

你真的需要所有這些******* ...評論,特別是考慮到你可以跳到任何方法定義與幾個按鍵? – jrockway 2009-02-02 05:07:33

1

Python是簡單的,但如果你輸入的東西用快捷方式的名稱,例如,它仍然可以幫助:

import sys 
import numpy as np 
import pylab as pyb 
import matplotlib.pyplot as plt 
import matplotlib as mpl 

但只是不這樣做:import sk新消息報。

1

Bourne Shell中

#!/bin/sh 

usage() { 
cat <<EOF 
    $0 <cmd> 
cmd: 
    samplecmd 
EOF 
} 

cmd=${1} 
shift 

case ${cmd} in 
    samplecmd) 
     arg1=${arg1:-${1}} # arg list takes precedence over env var 
     if [ "x${arg1}" = "x" ] ; then 
      usage 
     fi 
     samplecmd ${arg1} 
     ;; 
    *) 
     usage 
     ;; 
esac 

我喜歡做小幫手腳本這樣的記錄我在shell中鍵入命令。

相關問題