Spring Bootに基づくアプリケーション開発仕様の構築
4973 ワード
1.規範の意義と作用符号化仕様は、チーム開発の協力効率を最大限に向上させることができる 符号化仕様は、1つのソフトウェアのメンテナンスコストを可能な限り削減することができ、そのライフサイクル全体において、 を最初の開発者によってメンテナンスするソフトウェアはほとんどありません.符号化仕様はソフトウェアの可読性を改善することができ、開発者にできるだけ早く新しいコード を徹底的に理解させることができる.規範的なコードは開発者に良いコード習慣を身につけることができ、さらに厳格な思考を鍛えることができる 2.コード倉庫仕様
2.1共通コンポーネント共通コンポーネントは、通常、Javaライブラリを指し、特定の問題を提供するハンドラパッケージ を提供する.パブリックコンポーネント倉庫アドレス:https://git.company.com/java-library-group 共通コンポーネントの座標命名仕様 パケット番号:com.company.library固定取値 コンポーネント名:name nameコンポーネント名定義 コンポーネントバージョン:x.y.z x.y.zコンポーネントの実際のバージョンに基づいて を定義します.
2.2サービスコンポーネントサービスコンポーネントは、通常、独立して配置、実行、メンテナンス可能なサービスパッケージ を指す.サービスコンポーネント倉庫アドレス:https://git.company.com/server-microservice-group アプリケーションコンポーネントの座標命名仕様 パケット番号:com.company.server固定取値 コンポーネント名:name nameコンポーネント名定義 コンポーネントバージョン:x.y.z x.y.zコンポーネントの実際のバージョンに基づいて を定義します.
3開発環境規範開発環境:JDK 1.7+ 開発ツール:IntelliJ IDEA 2017(Lombok Pluginのインストール) 構築ツール:Maven 3.x コード管理ツール:Git/tortoiseGit 4.プロジェクト構造規範
4.1簡単な説明
プロジェクト対応コード・ウェアハウスのウェアハウスです.プロジェクト構造とは、Mavenに基づいて作成されたプロジェクト・ディレクトリ構造です.共通コンポーネントプロジェクトで、通常はMaven通常プロジェクトが作成されます.サービスコンポーネントプロジェクト.通常、1つのMaven集約プロジェクトが作成され、集約プロジェクトディレクトリの下に、サービスコンポーネントプロジェクトのコンポーネントとして機能するMaven集約プロジェクトを継承する複数のMavenモジュールが作成されます.
4.2項目名要件 英語名、倉庫、プロジェクト、プロジェクトルートディレクトリ、コンポーネント(共通コンポーネント、サービスコンポーネント)の名前 として使用中国語名称、コードウェアハウスの説明 用プロジェクト名とコードウェアハウス名が一致する 定義 プロジェクト名は、通常、チームの責任者によって決定されます. 例 プロジェクト中国語名:顔データ倉庫 プロジェクト英語名:data-warehouse-face プロジェクトディレクトリ名:data-warehouse-face プロジェクト倉庫住所:https://git.company.com/server-microservice-group/data-warehouse-face.git 初期バージョン:1.0.0 の例は、上述の情報に基づいて、サービスコンポーネントのMaven座標命名を決定するサービスコンポーネントである: .
4.3モジュールの命名要件 モジュール名:{プロジェクト名}-{モジュール名}モジュール名簡潔体現職責 モジュール名モジュールコンポーネント名 例 顔データウェアハウスのデータアクセスモジュール名:data-warehouse-face-access 4.4プロジェクトディレクトリプロジェクトディレクトリMaven約定ディレクトリフォーマット に従う
4.5ソースディレクトリソースディレクトリ:{プロジェクトディレクトリ}/src/main/ パッケージ定義ディレクトリ:src/main/assembly コードディレクトリ:src/main/java リソースディレクトリ:src/main/resources /db:データベース・スクリプトのアーカイブ /data:内部依存データアーカイブ ドキュメントディレクトリ:src/main/docs スクリプトディレクトリ:src/main/bin run-manage.sh実行管理スクリプト(パラメータstart,stop,status,help info制御プログラムで実行) sh:サービスコンポーネント起動スクリプト sh:サービスコンポーネント停止スクリプト
5.コード仕様
5.1パッケージ仕様プロジェクト基本パッケージ:com.company.{プロジェクトの英語名(長時間で適切に簡略化)}.{モジュール名(オプション)} config:構成クラス startup:サービス起動に関連するクラス client:クライアント実装に関するクラス を提供する common:共通クラス、定数クラスの定義、コンポーネント entity:データベース関連エンティティクラス model:データモデルクラス(パラメータモデル、データ転送モデルなど) control:制御層インタフェース service:サービス層 dao:データベース・アクセス・レイヤ 5.2ログ SLF 4 jインタフェース を統一的に使用する.
5.3異常処理運転時異常:パラメータチェックなどにより運転時異常を回避または投げ出す、ログ記録 検査異常:検査異常は捕獲、処理、ログ記録 が必要である
5.4インタフェース定義原則 インタフェースアドレス定義は、意図 を示す.インタフェースアドレスの定義は明確で、簡潔で、曖昧ではない 同じサービスコンポーネントのインタフェース定義は、一貫性 を有する.
形式 制御クラスの最上位アドレスフォーマット:/{最上位分類名}、例えば:/libraryライブラリ関連インタフェースの最上位アドレス インタフェース定義Swaggerを使用するAPI注記 完全な要求情報、要求方法、要求アドレス、パラメータオプション、インタフェース記述 リクエスト方式 GET URL-Params POST Form-Data POST RequestBody(JSON形式) POST Mulitpart
応答方式 統合応答モデル
5.5補助工具文字列処理:apache common-lang 3 時間日付処理:joda-time JSON処理:Gson,Fastjson コレクション拡張ツール:guava ファイルとストリーム処理:commons-io コーデック:commons-codec 推奨:オープンソースコンポーネント を可能な限り使用する
5.6コード注記クラス、インタフェース、列挙最上位注釈 インタフェースメソッド注釈 静的方法注釈 開示方法注釈 クラスの属性フィールド注釈 定数注記 は、以上の に限定するものではない.
6.コード制御仕様
6.1引き抜き原則強制 毎日作業開始 約定 提出前に を引き出す
6.2提出原則強制 コミットコードは、構築に成功する必要があります(たとえば、コンパイル、パッケージ化) コミットコードは完全でなければならない(例えば、ファイルを少なくする) コミットコードは、ローカルテンポラリファイル(target,logs,.idea,*.iml,distなど) に無視する必要があります.
約定 機能コミット を完了修正Bug修正提出 競合解決コミット 毎日終了仕事提出
6.3注釈の提出強制 中国語記入注釈 注記今回の提出変更を反映する .
約定 注記接頭辞の追加を説明し、接頭辞は以下の である.[作成]通常、プロジェクト作成時に を使用します.[新規] [修正] [削除] [修復-number]修復Bug使用、numberはBug番号
7.構築規範
7.1共通コンポーネント構築仕様構築出力コンポーネントパッケージ 出力コンポーネントソースパケット を構築する.構築は、会社のプライベート倉庫 に公開された.
7.2サービスコンポーネント構築規範サービスコンポーネントパッケージの名前:{コンポーネント名}-{バージョン番号}-bin.zip エンジニアリングルートディレクトリに出力dist/{コンポーネント名}-{yyyyyMMddHH}ディレクトリ を構築する.
2.1共通コンポーネント
2.2サービスコンポーネント
3開発環境規範
4.1簡単な説明
プロジェクト対応コード・ウェアハウスのウェアハウスです.プロジェクト構造とは、Mavenに基づいて作成されたプロジェクト・ディレクトリ構造です.共通コンポーネントプロジェクトで、通常はMaven通常プロジェクトが作成されます.サービスコンポーネントプロジェクト.通常、1つのMaven集約プロジェクトが作成され、集約プロジェクトディレクトリの下に、サービスコンポーネントプロジェクトのコンポーネントとして機能するMaven集約プロジェクトを継承する複数のMavenモジュールが作成されます.
4.2項目名
com.company.server
data-warehouse-face
1.0.0
4.3モジュールの命名
4.5ソースディレクトリ
5.コード仕様
5.1パッケージ仕様
5.3異常処理
5.4インタフェース定義
5.5補助工具
5.6コード注記
6.コード制御仕様
6.1引き抜き原則
6.2提出原則
6.3注釈の提出
7.構築規範
7.1共通コンポーネント構築仕様
7.2サービスコンポーネント構築規範