Qboxへの貢献
ご協力いただきありがとうございます。
これらのガイドラインは、スキルレベルに関わらず、皆様が最大限の方法で私たちを支援していただくために役立ちます。ご自身の貢献方法に関連するすべての内容をお読みいただき、記載されていない点についてはご自身の判断で判断していただくようお願いいたします。
ぜひ、当社の貢献者行動規範 。
読んだ後もまだ質問がある場合は、ぜひ参加してくださいQbox Discordサーバー 。
問題
バグを報告したり、新しい機能や改善をリクエストしたりするには、新しい問題を開いてください。
質問がある場合、このフォーラムは適切な場所ではありません。ぜひご参加ください。Discordサーバー 代わりにあそこで聞いてみてください。
新しい問題を開く前に:
- 検索 既存の問題の場合、あなたと同じ問題をすでに経験している人がいるかもしれません。重複した問題はクローズされます。
- 問題を報告しようとしているリソースの最新リリースをダウンロードし、すでに修正されていないことを確認してください。すでに修正済みの問題は無効とみなされ、クローズされます。
新しい問題を開く際は、適切なフォームの種類を選択し、ご記入ください。ご提供いただく情報が多いほど、新しい問題への対応がスムーズになります。無効な問題や正しいフォームに従っていない問題は、無視されるか、場合によっては終了されることがあります。
プルリクエスト
コードを投稿するには、新しいプル リクエストを開きます。
お好みのエディタをご使用いただけますが、VSコード 以下の拡張機能を使用します:
コードの貢献が初めての場合は、チェックして、マークされた問題を修正してみてください。good first issue。
コードを投稿したいが何をすればいいかわからない場合は、マークされている問題を確認してください。help wantedこれらは私たちが実際に必要お手伝いします。
既存の問題とは関係のないコードを投稿したい場合は、自分で問題を開くか、Discordサーバー 特に新しい機能や大規模なデザインを追加する予定がある場合は、弊社のチームと話し合い、変更が必要かどうかを確認してください。
プルリクエストを開く前に:
- あなたの貢献が私たちのコード規約以下に説明します。プルリクエストを開くと、コードがそれらに従ってチェックされます。
- プルリクエストは小さく、焦点を絞ったものにしてください。もしそうでない場合は、複数の小さなプルリクエストに分割してください(小さなプルリクエストのマニフェスト )。
- 変更が機能し、既存の機能に影響がないことを確認するために、変更をテストすることをお勧めします。
プルリクエストを作成する際は、テンプレートに従い、変更内容を必ず説明してください。GitHub の問題に関連する内容の投稿を希望する場合は、その旨も必ず記載してください。
コード規約
以下は、コードを投稿するときに従わなければならない規則です。
コミットメッセージの規約
- コミット メッセージの最初の行は最大 72 文字にする必要があります。
- コミットメッセージとプルリクエストのタイトルは以下に従う必要があります慣習的コミット 。
- 使用
fix:バグを修正するとき。 - 使用
feat:新しい機能を導入するとき。 - 使用
refactor:機能を変えずにコードを変更する場合。 - 使用
chore:変更によって本番環境のコードが変更されない場合。 - 追加
!コードを変更し、APIの互換性を損なう変更を導入する場合は、機能の種類/スコープの後に を追加してください。また、コミットメッセージの最後に、2行の改行で区切られたフッターを追加することもできます。BREAKING CHANGE:、そして重大な変更点について説明します。
- 使用
Lua 規約
一般的なスタイル
- 4 スペースのインデントを使用します。
- グローバル変数よりもローカル変数を作成することを優先します。
- 同じ操作を繰り返さないでください。複数の場所で同じ操作を使用している場合は、柔軟な関数に変換してください。
- エクスポートされた関数は適切に注釈を付ける必要があります(LuaLS アノテーション )。
- 利用する oxlib 生活を楽にするために、ネイティブの呼び出しよりもライブラリ呼び出しを優先してください。
- 機能をオプションまたはカスタマイズ可能にする必要がある場合は、設定オプションを使用してください。設定は他のコードによって変更されるべきではありません。
最適化とセキュリティ
- 考慮する このLuaパフォーマンスガイド 。
- 不要なスレッドを作成しないでください。常にイベントをトリガーするより良い方法を見つけるようにしてください。
- 長めに設定する
Waitplayer が範囲外の場合、距離チェック ループを呼び出します。 - サイクルを無駄にしないでください。ジョブ固有のループは、そのジョブのプレイヤーに対してのみ実行される必要があります。
- 可能であればクライアントを信用しないでください。特に取引を伴う。
- セキュリティと最適化のバランスをとります。
- 使用
#(vector3 - vector3)の代わりにGetDistanceBetweenCoords()。 - 使用
myTable[#myTable + 1] = 'value'の代わりにtable.insert(myTable, 'value')。 - 使用
myTable['key'] = 'value'の代わりにtable.insert(myTable, 'key', 'value')。
私たちは
- 使用
camelCaseローカル変数と関数用。 - 使用
PascalCaseグローバル変数と関数用。 - 頭字語は混乱を招きやすく、文脈に依存する可能性があるため、使用を避けてください。
- 説明的に記述し、読者にとってわかりやすいものにします。
- ブール値には接頭辞として
is、has、areなど - 配列には複数形の名前が必要です。
- ブール値には接頭辞として
JavaScript/TypeScript 規約
以下のことを検討してくださいGoogle JavaScript スタイルガイド そしてGoogle TypeScript スタイルガイド 。