水平方向の問題を解決する能力を向上させる方法

水平的問題とは、簡単に言うと、パフォーマンス、スケーラビリティ、ユーザビリティ、テスト容易性、保守容易性、セキュリティ コンプライアンスなど、ビジネスとは関係のないソフトウェア システム内の技術的負債です。これらの質問はすべて非機能要件です。つまり、製品マネージャーは通常、これらの質問を要件文書に直接書きません。

しかし、時間の経過とともに、これらの技術的負債は必然的にチーム全体の負担となり、ソフトウェアの全体的な品質に影響を与えることになります。このとき、あなたは「チャンスはここにある」と認識しなければなりません。

ただし、水平方向の問題を解決するには、対応する専門知識が必要です。キャリアの初期段階にあり、毎日ビジネス ニーズに圧倒されている場合、水平的な問題を勉強したり研究したりする時間はどこにありますか?

また、個人的な休息や娯楽の時間を犠牲にしても、その選択は簡単ではありません。パフォーマンス、テスト容易性、拡張性、セキュリティなど、水平方向の問題が数多くあります。それでは、どの質問から始めるのがより良い選択でしょうか? それとも、すべてを少しずつ学びますか?

さて、水平方向の問題にエネルギーを注ぐと決めたと仮定すると、次に直面する問題は、水平方向の問題を解く方法を学ぶときにどこから始めればよいかということです。

  • 個人的な興味なぜなら、私たちは個人的な休息や娯楽の時間を、この分野の専門知識を学び、自分自身の能力の希少性を高めるために費やさなければならないからです。十分な関心がなければ、このプロセスは間違いなくそれほど楽しいものではなく、継続するのが困難になります。
  • 商業的価値を考慮してくださいつまり、この水平的な課題を解決することが、会社にどれだけの価値をもたらすのか。あなたが会社にもたらす価値が大きければ大きいほど、将来得られる機会報酬も大きくなります。さらに、会社はあなたの能力向上を促進するために喜んでお金を使います。
  • 競争環境、つまりこの分野における社内の人材の密度を考慮してください。人材が過剰に供給されている場合、既存の能力や関連する学歴では良い練習の機会を得ることが困難になる可能性があります。この場合、この分野には投資しないことをお勧めします。質の高い練習がなければ、学習したことはほとんど役に立ちません。

どちらの方向を選択する場合でも、自分の相対的な利点がどこにあるのかを明確に把握する必要があります。パートタイムのアーキテクトとして最も重要な価値は、水平方向の問題によって立ち往生しているチームのプログラマーが障害を取り除くのを支援することです。自分の相対的な価値が高くなるほど、より実践的な機会が得られ、横からの知識の雪だるま式がどんどん大きくなっていきます。

特に興味のある方向性がなければ、社内のチャンスは似たようなものなので、まずは自分を磨く分野を見つけたいと思っています。この場合、安定性から始めることをお勧めします

まず第一に、安定性はどの企業も避けられない問題であり、最も重要です。企業はソフトウェアの研究開発にお金をかけてきたので、最終的には安定したソフトウェアを作らなければなりません。

第二に、安定を行うことは、まず自分自身の利益になります。想像してみてください。作成したコードとサービスの安定性と信頼性が向上すれば、目覚ましに応答するために夜中にベッドから起きる必要がなくなり、生活が楽になるでしょう。このようにしてのみ、仕事の高いプレッシャーから逃れて、より深い問題を研究することができます。

最後に、安定性の問題とプログラマの日常的なコード作業との連続性は比較的大きく、安定性関連の変更を行いながら毎日の要件を送信できます。このようにして、いくつかの実践的な機会を得るために追加の権限をほとんど必要とせず、同時に実践から自信を獲得し続けることができます。

安定性というテーマは非常に大きく、次のようにいくつかの経験が共有されています。

1、 何も信用しない

コードが信頼できる理由は、コードが信頼できる環境で実行されていると決して信じないためです。そうは言っても、API が要求どおりに動作していることを確認するために、依存当事者を計測することを常に主張してください。特にインターネット時代においては、障害対応誤操作を減らす上で最も重要な部分となります。アラームを受信したら、サービスだけでなく、関連する強い依存関係の監視とログを確認するだけで、環境上の問題をすぐに解決できます。

2、 最も信頼できるもののみに頼る

複雑さが増すにつれて、システムの使いやすさは低下します。可用性の高いシステムを設計したい場合は、依存関係を最小限に抑える必要があります。

まず、依存関係を導入する必要がある場合は、最も信頼できる人物と最も信頼できるモジュールを選択する必要があります。この結論は、特にインターネット業界に当てはまります。インターネット業界の要求、サービス品質、およびプログラマの能力配分のほとんどは、2-8 原則の背後にある数学法則であるジップの法則原則に準拠しています。したがって、最も信頼できる部品を選択してください。

第二に、管理者の観点からは、障害が発生する前に、本当にシステムを保護し、正しい判断と指示を与えることができる人がターゲットにされる必要があります。安定性ガバナンスの分野では、すべての「スマート」な方法 (人材を借りない方法を意味します) が使い果たされたとき、システムの可用性を回復するための最後のわら、つまり人間の力が残っています。したがって、この能力を備えた人材を継続的に採用し、育成し、訓練し、保護する必要があります。

3、すべてのもの、特にデータは朽ちる

分散型の世界では、単純なロールバックでは解決できない運用環境の問題は、多くの場合、データ構成と頻繁に更新されるコードの不一致によって引き起こされます。この部分の問題については、迅速に止血するために、汚染された可能性のあるデータからオンライン システムをできるだけ分離する必要があります。これは実際には設計原則であり、設計ではデータ汚染を考慮する必要があります。複数の選択肢がある場合は、範囲が小さく、信頼性の高いデータ ソースを選択する必要があります。

4、生き残るためには、すべてが格下げされる可能性があります

多数の圧力テストと十分な計画を通じて、超一か八かのイベントが 100% 成功することが保証されます。

5 、コストを考慮しない可用性はでたらめです

中小企業では、安定性を追求するために反復速度や多額のキャッシュを犠牲にせず、安定性を達成するためにコストを管理する必要があります。安定性を築く際には、完璧を避けるようにしてください。世界には 100% の高可用性システムは存在せず、どの企業も 100% の高可用性システムを設計すべきではありません。高可用性のために支払った代償がビジネス競争での失敗であれば、高可用性は完全に意味を失います。

6、自分自身を救ってください!

障害対応の基本原則は、まず自助努力を意味します。それは飛行機に乗っているときに、他の人を助ける前に自分の酸素マスクを用意しておくように頼むようなものです。障害が発生した場合は、依存関係の強いパーティの復旧を待たずに、まず自分が担当するサービスの復旧を試みます。そうしないと、自分がバレルの中で最も短いボードになってしまったことに気づいてイライラすることになるでしょう。

水平的な能力は積めば積むほど良くなるわけではありません。企業が比較的大きな規模に成長すると、カバー範囲の広さよりも、水平的な機能の深さと希少性の方が重要になります。

この記事は5月のDay28の学習メモです 内容はGeek Timeの「郭東梅の建築講座」から引用しています この講座はオススメです

おすすめ

転載: blog.csdn.net/key_3_feng/article/details/130918371
おすすめ