【发布时间】:2021-10-14 04:00:52
【问题描述】:
https://martimm.github.io/gnome-gtk3/content-docs/tutorial/Application/sceleton.html,缩写:
在 Raku 中,重要的是要保持主程序很小。这是因为所有代码、程序和模块都被解析并编译成中间代码,由虚拟机执行。大多数时候是 MoarVM,但也有一个 JVM,以后可能还有其他的。无论如何,在运行之前,已编译的模块会保存到 .precomp 目录中,而不是程序中。这意味着程序总是在运行之前被解析和编译,这就是让它保持小规模的原因。
use UserAppClass; my UserAppClass $user-app .= new; exit($user-app.run);嗯,你不能比这更小......,或者也许使用这个单线;
exit(UserAppClass.new.run).其余代码在 UserAppClass 中定义。
很好。
-
现在,我们的程序需要接受参数。
sub MAIN会解析参数并免费生成$*USAGE,因此我们将使用sub MAIN。
我们将sub MAIN放入used by.raku程序.rakumod但我们得到.raku程序不知道参数。而sub MAIN在模块中时不会执行。
我们将sub MAIN放入.raku程序中,这样它就可以理解参数但它不再小了。 -
此外,该程序的嵌入式
POD可能预计驻留在.raku程序中。
将POD通过.raku程序.rakumod放入used 中,我们得到POD有点隐藏。
将POD放入.raku程序,它不再小了。 -
此外,这种方法是否有任何命名约定?
比如说,你有一个程序Report when your coffee is ready。它的sub MAIN在coffee-ready.raku中,而你在use和QueryCoffeeMachine.rakumod中。
您更改了文件的布局,现在对于同一个程序Report when your coffee is ready,您有一个coffee-ready.raku启动器、一个带有sub MAIN功能的coffee-ready.MAIN.rakumod和一个QueryCoffeeMachine.rakumod。
我相信QueryCoffeeMachine.rakumod保持不变,
我觉得coffee-ready.raku也应该保留这个名字,尽管它的内容改变了
但是coffee-ready.MAIN.rakumod应该怎么命名呢?
【问题讨论】:
标签: optimization command-line-arguments main raku precompile