日々の仕事の中で、たくさんのプロジェクトに参加しているのに、あまりスキルが上がっていないような錯覚に陥ることがよくあります。
その理由としては、普段の業務内容がノンコア業務であり、むしろCRUDにおける「ネジ締め」の内容であることが考えられます。中核となる質の高いビジネスにアクセスできず、アーキテクチャ設計にも参加できないため、テクノロジーの成長が遅れています。
では、日々のプロジェクト開発において、技術レベルを継続的に向上させるにはどうすればよいでしょうか?
プロジェクトが多すぎることではなく、1 つのプロジェクトを実行し、1 つのプロジェクトを徹底的に理解することが重要です。
では、プロジェクトを徹底的に理解するにはどうすればよいでしょうか? ここで私は 2 つのレベルについて考えます。
- 共通のインフラストラクチャの実装に焦点を当てます。
- ビジネスコードの適切な実践に注意してください。
共通のインフラストラクチャの実装に焦点を当てる
プロジェクトやそのビジネス分野は異なりますが、インフラストラクチャの中には実際には似ているものもあります。したがって、ネジを締め終えた後は、これらの共通の基本事項の実装に注意を払うとよいでしょう。
注目に値する一般的なモジュール をいくつか示します。
- モジュール分割、依存関係、パッケージ構造分割
- ログイン認証
- 権限制御
- タスクのスケジュール設定 (スケジュールされたタスク)
- ロギングシステム
- コード生成 (ローコード)
- ゲートウェイ
- RPC (クロスシステム)
- メッセージセンター(キュー)
- キャッシュ
- 永続性 (ORM)
- ファイルストレージ
- アラートの監視 (可観測性)
- 冪等性
- 制限する
- 同時実行セキュリティ制御 (ロックの実装)
- 分散トランザクション
- 国際化(多言語化)
- バージョン管理 (共同アプローチ)
- 複数の組織
- サブデータベースとサブテーブル
ビジネスコードの適切な実践に注意を払う
プロジェクトごとに事業が異なり、事業範囲が広すぎてすべてを把握するのは難しいですが、基本的にはコア事業が存在します。したがって、ビジネス コードの開発がすべて CRUD であるわけではなく、いくつかの優れたビジネス プラクティスは依然として学ぶ価値があります。
注目に値するいくつかのビジネス慣行を次に示します。
- 受注事業
- 決済サービス
- ステートマシンソリューション
- ワークフローエンジン
- フラッシュセール事業
- 同時実行セキュリティ関連事業
- マスデータ関連事業
自社のCRUD開発だけで満足していたら、複数のプロジェクトに参加したとしても、複数の箇所にネジを打ち込んでいるようなものになってしまいます。
したがって、他の人がどのようにして飛行機を組み立てているかを学ぶのもよいでしょう。