Last modified : 2014. 10. 13

Source code

KARAS の標準のコンバータは、アルゴリズムやそのソースコードを複数の言語で共有するようにコーディングされています。 したがって、各言語や環境下において最適化されていません。ソースコードは少なくない冗長性を持っています。 言い換えれば、ソースコードは最も簡単な方法で書かれていて、必要なときに直ぐに変更することができます。

このページでは KARAS の標準のコンバータが使うコーディングルールの一部を紹介します。

アルゴリズムは将来的に改善される可能性があります。 しかし、各言語や環境に対しての最適化は今後も行われないでしょう。

Code column

言語や標準クラスライブラリの制約がない限り、1行に含まれる文字はおよそ 100 に制限しています。 改行の位置については、状況によって変わります。

Naming rule

言語や標準クラスライブラリの制約がない限り、クラス名などは、次のルールで名前がつけられます。

  • 名前空間、クラス名、 定数 は UpperCamel case(Pascal) で命名されます。
    • 制約があるときは、lowerCamel case で定義されます。
  • 関数、インスタンス変数、ローカル変数 は lowerCamel case で命名されます。

Ruby などのいくつかの言語が、慣習的に snake_case を使うことを知っていますが、 KARAS のあらゆるコードは、snake_case を使いません。

Javascript は、外部ファイルを読み込む方法が制限されていることから、クラス名はすべて小文字で定義されています。

Regex

ECMAscript(Javascript) が正規表現の戻り読みを持っていないため、戻り読みを使っていません。 同じ理由で、名前付けされたキャプチャグループも使っていません。

Code block marks

if, for, try などのコードブロックを示す記号 {} は、どんな状況においても省略しません。 省略を許可すると、許可する場合と許可しない場合を設定する必要があるためです。

Operator

インクリメント/デクリメントのために、++ / -- を使いません。 Ruby がこの方法に対応していないためです。

if を用いて 値を確認するときは、必ず == を書きます。 また、Ruby では unless を使いません。

Overload

原則として、オーバーロードは利用しません。いくつかの言語で仕様が異なるためです。 したがって、引数の省略はできません。

Others

列挙型、ラムダ、匿名クラスは使われません。これらは処理の効率化やよりセキュアな設計のために使うことができます。 しかしながら標準のコードがこれらを使うことはありません。