我是Ruby的新手,我刚刚编写完程序。
该程序有大约350行代码,6种方法但没有类。它使用常量和全局变量。
例如,在单独的文件中是否具有全局变量/常量?我应该将所有方法拆分成不同的文件吗?
我拥有所有文件的文件夹应该是什么样的?
最后,我如何创建一个makefile(或rakefile,无论它叫什么。我有rake rubygem)
非常感谢
答案 0 :(得分:1)
对于初学者来说,以下就足够了。
lon_rs=(reshape(l2aRS.clon_RS,3560*2000,1));
lat_rs=(reshape(l2aRS.clat_RS,3560*2000,1));
RSsig0=(reshape(l2aRS.sig0_RS,3560*2000,1));
RS_s0=zeros(720,360);
QS_s0=zeros(720,360);
I=ceil(2*(lon_rs));
J=ceil(2*(lat_rs+90));
K=ceil(2*(l1cQS.clon_QS));
L=ceil(2*(l1cQS.clat_QS+90));
for ind1=1:720;
ind1
for ind2=1:360;
indsRS=find((I==ind1) &(J==ind2) &(RSsig0~=0));
len_temp1=length(indsRS);
if (len_temp1>0);
len_RS(ind1,ind2)=len_temp1;
RS_s0(ind1,ind2)=median(RSsig0(indsRS));
end;
indsQS=find((K==ind1) &(L==ind2) &(l1cQS.sig_QS~=0));
len_temp2=length(indsQS);
if (len_temp2>0);
len_QS(ind1,ind2)=len_temp2;
QS_s0(ind1,ind2)=median(l1cQS.sig_QS(indsQS));
end;
end;
end;
其中app.rb是您的主文件,您使用
运行项目ruby app.rb
LIB / 你有库文件lib1.rb和lib2.rb
假设您通过您的应用发推文,那么lib1.rb可能是tweet.rb
答案 1 :(得分:0)
我建议使用 Hoe :https://github.com/seattlerb/hoe
Hoe专注于以一种有用的形式保持一切 智能地提取它需要的东西。结果,没有 额外的YAML文件,配置目录,ruby文件或任何其他 您的版本中的文物,您将不会拥有。
我喜欢的是默认设置测试目录,运行SELECT DISTINCT b.[Entry No_] ,
a.[Starting Date],
b.[Posting Date],
b.[Item No_],
b.[Invoiced Quantity],
a.[Litre Conversion Factor],
a.[Unit Rate] ,
b.[Location Code],
a.[Excise Location],
a.[Excise Type Code],
a.[Unit Of Measure Code]
FROM [Spier Live$Value Entry] b
LEFT JOIN [Transfer Excise Tbl] a
ON a.[No_] = b.[Item No_]
AND b.[Location Code] = a.[Location Code]
AND DateDiff(y,b.[Posting Date],a.[Starting Date]) > -365 --DateDiff Year -365 for starting date
AND DateDiff(y,b.[Posting Date],a.[Starting Date]) < 0 --DateDiff Yer < 0 for posting date
WHERE b.[Posting Date] > '2013-02-26' --This is when the unit rate was entered
AND b.[Gen_ Bus_ Posting Group] IN ('LOCA','EXSA')
AND b.[Invoiced Quantity] <>0 --Removing all zero values
AND b.[Item No_] = 'F00335'
ORDER BY b.[Posting Date]
将运行测试。我需要我的rake
并填写测试。
Hoe设置包括Rakefile。 Rake由Hoe,Seattle.rb背后的同一组维护。信息:https://github.com/ruby/rake; docs:http://docs.seattlerb.org/rake/
如果适用于您的用例,Hoe允许您将项目转换为Gem。
Hoe有一堆插件:
Hoe有一个灵活的插件系统,允许你激活和 停用给定项目上可用的任务。锄头一直都是 部分分解为插件以使维护更容易 使您更容易关闭或替换您不想要的代码。
结构概述
lib/project_name.rb
安装&amp;设置强>
通过命令行安装:
project_dir/
History.txt
Manifest.txt
README.txt
Rakefile
bin/...
lib/...
test/...
设置项目:
gem install hoe
<强>文档强>
答案 2 :(得分:0)
“它使用常量和全局变量。”哦,不,拜托,不要这样做。你的生活变得毫无困难。
除非你没有其他选择,否则你真的需要避免使用全局常量和变量。他们很难保持秩序,并且在任何非平凡的计划中都会导致混乱。
将您计划中的所有内容整理为一个或多个module
或class
定义。给他们有意义的名字。您将使用module
作为“方法集合”容器,class
用于封装某个进程或某种实体的内容。
这种区别有时难以实现,但仔细考虑问题并尝试不同的方法是必要的。
我的Ruby代码的基础是一个名为bin/
的目录,适用于任何类型的可执行文件,lib/
用于库文件,test/
用于测试代码,README
用于测试代码文件来解释它的全部功能。最后两个特别重要,因为未经测试的代码只是麻烦,而未记录的代码甚至更糟。
如果您需要在日常工作中执行某种流程,则只需要Rakefile
。打包gem
就是这样,或者与Rails一样,管理数据库迁移。大多数项目不需要其中之一,但有时候只包含一个只运行测试或生成文档的项目。
Rakefile
的格式非常简单,其中有数百万个例子。找到一个能满足你需要的东西,并根据你的特定结构进行调整。