本プロジェクトはSSHを経由してサーバログを閲覧するツールの開発プロジェクトです。
目的はサーバに存在するログを全量ダウンロードすることなく、検索・ハイライト等を行いながら閲覧することです。
本アプリケーションは MVVM (Model-View-ViewModel) パターン に従います。
-
Model
- ログエンティティやサーバ操作などを表現します。
- SSH接続・Linuxコマンド実行・ログ取得機能などを提供します。
- UI には依存しません。
-
View
- ログの検索・表示・SSH接続情報設定用 UI コントロールを表示します。
- 応答性の高い表示に専念し、見た目以外のロジックを持ちません。
- ビジネスロジックは含みません。
-
ViewModel
- View と Model の仲介を行います。
- UIから実行可能なSSH接続開始・ログ取得などのコマンドを公開します。
- View をファイルシステムから切り離し、テスト容易性を確保します。
この分離により、保守・拡張・テスト が容易になります。
- すべてのクラス / メソッド / プロパティに XML ドキュメントコメントを必ず付与すること。
- XML ドキュメントコメントは必ず日本語で記述すること。
- 明示的な指示がない限り、その他のコメントは追加しないこと。
.editorconfigの設定に従うこと。- Viewでは極力コードビハインドを利用せず、コマンドによりViewModelの処理を呼び出すこと。
- Viewでバインディングを行う際は、避けられない場合を除き
x:Bindを利用すること。 - ViewとViewModelはBindableReactiveProperty, ObservableListを利用してデータバインディングを行うこと。
- ViewModelは、ModelのReactivePropertyをBindableReactivePropertyに変換して公開すること。
- 無関係な箇所の修正は行わないこと。(コードフォーマットの修正や、コメント追加削除などを含む)
- 修正後にビルドが成功することを確認すること。