`
810364804
  • 浏览: 819883 次
文章分类
社区版块
存档分类
最新评论

一个python程序员的ruby三日游(三)——构建工具

 
阅读更多

在构建上,Ruby比Python会强大些。

Ruby用的是Rake,Python兴许是scons,如果是用于python的话可以用shovel,这个Python就没有和一个好的标准,Rakefile算是Ruby的一个标准。


Rake简介

Make 是一个 UNIX® 的本机实用程序,是为管理软件编译过程而设计的。它十分通用,足以用于许多其他环境中,即使它已用于将文档编译成书,维护 Web 站点以及裁减发行版。但是,make 也有自身的约束。它具有自己的语法,这取决于制表符的(tabbed)和非制表符的(nontabbed)空白空间。许多其他工具已经进行了扩展,可以弥 补 make 的一些不足,如 Aegis 和 Ant,但这两者也都具有自己的问题。
Make 以及类似的工具都有改进的余地,但是它们都不可能让 Ruby 黑客十分开心。您从这里要去哪里?幸好,可以使用一些 Ruby 选项。Rant 是一个由 Stefan Lang 编写的工具(请参阅 参考资料)。Rant 仍处于开发周期的初级阶段,因此它可能还没有成熟到足以适用于每个人。Jim Weirich 编写的 Rake 是一个在 Ruby 社区中广泛使用的成熟系统。(转载保留Phodal's BlogPhodal'szenthink)
Rake 是用 Ruby 编写的,并使用 Ruby 作为它的语法,因此学习曲线很短。Rake 使用 Ruby 的元编程功能来扩展语言,使之更利落地适应自动化任务。Rake 附带的 rdoc 中列出了一些优点(请注意,前两个是诸如 make 的其他任务自动化工具所共有的):

  1. 用户可以用先决条件指定任务。
  2. Rake 支持规则模式来合并隐式任务。
  3. Rake 是轻量级的。它可以用其他项目发布为单个文件。依靠 Rake 的项目不需要在目标系统上安装 Rake。

Rakefile初步

安装Rake
gem install rake
不过通常这个是已经有了,在那之前建议用RVM进行Ruby的版本管理。
RVM简介

Ruby Version Manager,Ruby版本管理器,包括Ruby的版本管理和Gem库管理(gemset)。目前支持Ruby的大多数版本,有 1.8.7,1.9.1,1.9.2和RubyEnterpriseEditon,通过RVM可以很方便的在多个Ruby版本中快速切换。RVM同时 也支持JRuby。

RVM安装
curl -L https://get.rvm.io | bash -s stable
剩下部分可以参考网上写的指南大抵就是:
#列出已知的ruby版本
rvm list known
#安装一个ruby版本
rvm install 1.9.3
#这里安装了最新的1.9.3, rvm list known列表里面的都可以拿来安装。
#使用一个ruby版本
rvm use 1.9.3
#如果想设置为默认版本,可以这样
rvm use 1.9.3 --default

简单的Rakefile

task :default do
  puts "Simple Rakefile Example"
end

运行结果


Simple Rakefile Example
[Finished in 0.2s]

Shovel

官方是这么介绍的

Shovel is like Rake for python. Turn python functions into tasks simply, and access and invoke them from the command line. 'Nuff said.NewShovel also now has support for invoking the same tasks in the browser you'd normally run from the command line, without any modification to your shovel scripts.

那么就

git clone https://github.com/seomoz/shovel.git
cd shovel
python setup.py install 

与用官方的示例

有一个foo.py

from shovel import task

@task
def howdy(times=1):
    '''Just prints "Howdy" as many times as requests.
    
    Examples:
        shovel foo.howdy 10
        http://localhost:3000/foo.howdy?15'''
    print('\n'.join(['Howdy'] * int(times)))
shovel一下

        shovel foo.howdy 10

构建C语言的Hello,World

Makefile

C代码

#include<stdio.h>

int main(){
	printf("Hello,world\n");
	return 0;
}
一个简单的makefile示例

hello:c 
	gcc hello.c -o hello
clean:
	rm hello
执行:
make

就会生成hello的可执行文件,再执行

make clean
清理。

Rakefile

task :default => :make

file 'hello.o' => 'hello.c' do  
    `gcc -c hello.c`  
end  
  
task :make => 'hello.o' do  
    `gcc hello.o -o hello`  
end  
  
task :clean do  
    `rm -f *.o hello`  
end  

再Rake一下,似乎Ruby中的 Rake用来作构建工具很强大,当然还有其他语言的也可以,旨在可以替代Makefile

Scons

新建一个SConstruct

Program('hello.c')

Program('hello.c')
scons,过程如下


phodal@linux-dlkp:~/helloworld> scons
scons: Reading SConscript files ...
scons: done reading SConscript files.
scons: Building targets ...
gcc -o hello.o -c hello.c
gcc -o hello hello.o
scons: done building targets.

总结

Rakefile

分享到:
评论

相关推荐

    Python面试宝典(完整版),python程序员面试宝典pdf,Python

    《Python面试宝典》是为Python程序员准备的一份详尽的面试指南,旨在帮助求职者在面试过程中展现出扎实的Python基础知识和实践经验。这份文档涵盖了Python语言的核心概念、数据结构、控制流、函数、模块化编程、面向...

    Python基于Django的实战项目源码——美多商城.zip

    Python基于Django的实战项目源码——美多商城 Python基于Django的实战项目源码——美多商城 Python基于Django的实战项目源码——美多商城 Python基于Django的实战项目源码——美多商城 Python基于Django的...

    Python程序员面试算法宝典(带目录).rar

    《Python程序员面试算法宝典》是一本专门为Python程序员面试准备的指南,涵盖了广泛的数据结构和算法知识,旨在帮助读者在面试中展现出扎实的编程基础和解决问题的能力。这本书以PDF格式包含在"Python程序员面试算法...

    Python 程序员指南(PDF)

    《Python程序员指南》是一本专为初学者和有一定基础的Python开发者设计的教程,它深入浅出地介绍了Python语言的核心概念和技术。这本书旨在帮助读者掌握Python编程的基本技能,提升解决问题的能力,同时也为进阶开发...

    Python开发的程序员工具集合 主要包含数据库处理(源码)

    Python开发的程序员工具集合 主要包含数据库处理(源码)! Python开发的程序员工具集合 主要包含数据库处理(源码)! Python开发的程序员工具集合 主要包含数据库处理(源码)! Python开发的程序员工具集合 主要...

    使用Python Lua和Ruby语言进行游戏编程

    在本主题中,我们将探讨三种语言——Python、Lua和Ruby在游戏开发中的应用。 首先,Python以其简洁易读的语法和丰富的库支持而闻名,使其成为初学者和专业人士的理想选择。在游戏编程中,Python可以用于创建游戏...

    每个程序员都应该学习使用Python或Ruby

    在实际开发中,优秀的程序员能够维护大约2万行代码,而Python或Ruby开发者的生产力相当于其他语言开发者的五倍,这意味着一个开发者可以完成一个5人团队的工作量。 其次,Python和Ruby的设计哲学注重语言的可用性和...

    如何像python程序员一样思考

    《如何像Python程序员一样思考》是一本以Python语言为讲解工具的计算机科学导引教材,旨在帮助初学者快速掌握编程思维,理解数据结构与算法,并熟练运用面向对象的方法进行软件开发。本书不仅适用于希望学习Python...

    为什么你一定要学习Python或Ruby语言.pdf

    此外,考虑到一个程序员能有效维护的代码量上限,使用Python或Ruby可以让个人承担原本需要团队协作的工作。 与VB和PHP相比,Python和Ruby在语言设计上更加先进。虽然VB和PHP易于入门,但它们在处理大型项目时暴露出...

    python开发总结——c程序员python之路

    ### Python开发总结——C程序员的Python之路 #### 引言 随着软件开发领域的不断发展与变化,许多原本专注于C语言的开发者也开始转向学习Python这一高级语言。对于习惯了C语言的程序员而言,掌握Python不仅可以拓宽...

    Python 程序员指南part2

    由于发布的最大限制为10M,所以分开发,请把Python 程序员指南part1 和 Python 程序员指南part2,一起解压。

    [实训解析]Python 计算思维训练——SAR图像处理-第2关:读入一个目录下所有图像_5307.pdf

    "[实训解析]Python 计算思维训练——SAR图像处理-第2关:读入一个目录下所有图像_5307.pdf" 该标题表明,这是一个 Python 计算思维训练的实践解析,重点在于SAR图像处理,并且是第二关,主题是读取一个目录下所有...

    Python程序员指南.rar

    Python程序员指南.rarPython程序员指南.rarPython程序员指南.rarPython程序员指南.rarPython程序员指南.rarPython程序员指南.rarPython程序员指南.rarPython程序员指南.rarPython程序员指南.rarPython程序员指南.rar

    python面试宝典

    - 模块与包:模块是Python程序架构的一个核心概念,包可以看作是一个存放模块的文件夹。 2. Python特性 - 简洁明了的语法。 - 面向对象的编程语言,支持多范式编程。 - 强大的标准库支持。 - 丰富的第三方库。...

    python——省市区三级联动——自关联——数据——area.sql

    省市区三级联动——自关联——数据

    Wing IDE Pro 2022是Python程序员的专业和有效的IDE应用程序,以及使用高级工具测试、调试和编辑他们的源代

    Wing IDE Pro 2022是Python程序员的专业和有效的IDE应用程序,帮助他们创建脚本和独立的应用程序,以及使用高级工具测试、调试和编辑他们的源代码。 这是一个高效的应用程序,它使用了一个强大的高级Python开发编辑...

    Python、Lua和Ruby——脚本大P.K.1

    Python、Lua 和 Ruby 是三种广泛应用于游戏开发、脚本编写以及各种软件工程的高级编程语言。每种语言都有其独特的特性和优势,同时也存在一些不足之处。下面我们将详细探讨这些语言的特点。 首先,Python 是一种...

    Python程序员指南

    Python程序员指南!!!!!!!!!!!!

Global site tag (gtag.js) - Google Analytics