Pythonでは、モジュールにメイン関数がないhaveが、次のイディオムを使用するのが一般的な方法です。
def my_main_function():
... # some code
if __name__=="__main__": # program's entry point
my_main_function()
私はRubyがmain
メソッドを持っていることを持っていないことを知っていますが、いくつかあります私が従うべきベストプラクティスの種類?メソッドにmain
などの名前を付けますか?
主なメソッドに関するウィキペディアのページ は本当に私を助けません。
余談ですが、Pythonでは次のイディオムも見ました。
def my_main_function(args=[]):
... # some code
if __name__=="__main__": # program's entry point
import sys
sys.exit(my_main_function(sys.argv))
私は通常使用します
if __FILE__ == $0
x = SweetClass.new(ARGV)
x.run # or go, or whatever
end
はい、できます。それはあなたが何をしているかに依存します。
常に$PROGRAM_NAME
は$0
を使用するよりも読みやすくなっています。そのような "Perlのような"グローバルを目にする半分の時間、私はそれらを調べに行かなければなりません。
if __FILE__ == $PROGRAM_NAME
# Put "main" code here
end
ライブラリコードはlib /に、実行可能ファイルはライブラリコードが必要な場合はbin /に配置する必要があります。これには、RubyGemsのパッケージ方法と互換性があるという追加の利点があります。
一般的なパターンは、lib/application.rb(またはできればドメインに適した名前)とbin/applicationです。
require 'application'
Application.run(ARGV)
私の個人的な経験則は:瞬間
if __FILE__ == $0
<some code>
end
5行より長くなるので、main
関数に抽出します。これは、PythonとRubyコードの両方に当てはまります。このコードがないと、構造が悪いように見えます。