開発環境を準備する
まず最初に、開発環境を設定します。 私はまだ私が開発の私の旅を開始するときに覚えて、最も痛みを伴う期間は、プロジェクト(3つ以上のシステム)のこの種のような特別な開発環境を設 しかし、単純なdocker-composeを使用して、コンテナ技術に感謝します。ymlファイル、我々は我々が必要とするすべての主要なアプリケーション/コンポーネントをブート

それはどのように簡単です、参照してください?
開発/コーディング
楽しい部分を始めましょう、Goは私の最近の初演の開発言語ですが、なぜ私はそのシンプルさ、パフォーマンスとタイプセーフのため ここで私はGoの利点を説明するつもりはありません、あなたが興味を持っている場合は、チェックしてくださいGolang.org…..いつものように、私の前の投稿をチェックすると、
どのように構築するのですかMachineBox.io Go
を使用して100%の単体テストカバレッジを持つAPIあなたは知っているでしょう、私は同じアプリケーション構造を使用します。

1. Env構造体を作成して接続を構築します

2. インターフェイスの使用
Goチュートリアルや公式ドキュメントからインターフェイスの使用に精通しているかもしれません。 しかし、Goでインターフェイスを使用することの美しさは、型(多くの場合struct
)がそのインターフェイスの実装と見なされるように定義する必要があるメソッ

指定された型がそのインターフェイスのすべてのメソッドを実装すると、Goコンパイラはその型として使用できることを自動的に認識します。
3. ロギング
ロギングは難しい!
すでにアプリケーション制作サポートとして働いている場合は、相対機能。 アプリケーションの実行方法、いつ、どのようにこのアプリケーションが失敗したか、どのファイル、どの機能に関する情報を記録する開発者に感謝します。 (プラス+)

私はUber Zap libsを使用します。 そして、私はまた、異なるプロジェクトの異なるレベルで使用できるヘルパーにラッパーします。 私にとっては、私はメインの実装にロワーレバーエラーを返すことを好みます。

4. 単体テスト
単体テストを書くことで、コードが期待どおりに動作していることを保証することができ、バグや回帰がリリースまでずっと行われている場合よりもはるかに”高価”ではありません。
あなたはまだ#1インターフェイスの実装を覚えており、インターフェイスの実装に関する他の利点は、あなたが簡単にテスト可能なコードを書くのを助

単体テストのカバレッジは、私は100%のカバレッジをトレースするのに十分な狂気に使用し、興味のある主題ですが、私は私の教訓を学び、単体テストについて最も重要なのは次のとおりです:
あなたのコードについてどのように自信を持っており、CI/CD自動化がコーディングレベルの回帰バグを可能な限りキャッチするようにしてくださ

最終結果

サポートフェーズ
このパイプラインは週末にのみ構築され、設計、開発/コーディングの合計10時間としましょう。 ユニットテストカバレッジ、ログ記録、およびローカル統合テストのため。 しかし、私はその生産準備ができていると確信しています…
改善フェーズ
ここで欠けているのは、セキュリティ実装、環境レベル、コードレベルだけです。 これは生産に出荷したいと思えば最も重要な部分です。
この記事では、主に設計とビルドに焦点を当てています。 次の投稿は、サポートと改善にもっと焦点を当てます。 🙂
パート2: