リード:キャリアの移行後に非常に技術の心のようなものが絡まっているため長い時間が無い、技術上の記事を書いて。 -私は、コードウィンドウを見るたびにカラフルな心は、悲しんそれが生活の中で華麗な気分になると思い出しただろう; ない自信 -そう長く錆び背後にある技術を残す必要はありません(離れテクノロジーと学習から破ったことはありませんが、参加、私はフロントラインの練習の書き込みのコードを失いました)。今日は、ちょうど謙虚さの建築家としてだけでなく、地域セミナーのAWS(アマゾンクラウドサービス)、建築設計上のあなたのためのアマゾンAWSクラウドサービスにおける建築家と例数、多くのおなじみの概念に行き、本当、すべてがとても誠心誠意です。気まぐれだから、私は自分のアーキテクチャのキャリアの旅を見てみたいです。




アーキテクチャの主なポイントの独自の定義を募集、我々は、Baiduの百科事典は、「非常に良い要約したシステムアーキテクチャが必要との両方の全体的および局所的なボトルネックを制御し、特定のビジネスシナリオに基づくソリューションへの洞察力を与える、とニーズの多様性をターゲットにすることができますする必要があります「洗練された表情の異なる寸法を拡張:

  • ビジネスに精通している:技術自体は、顧客/ユーザーの問題を解決するための特定の使用シナリオに落下し、何の「値」ではありません。

  • しかし、また、地元のボトルの全体的な制御への洞察-neck:私たちは常に技術のために最適化されなければならない、しばしば隠されたバグを解決するために、一般的には、この文の深い意味「時期尚早な最適化は、諸悪の根源である」として、我々は明確にする必要があります地元の問題を解決するために必要なものを判断するためにグローバルに行きます。

  • 展開の異なる寸法:定数の変化、柔軟性、私たちのアーキテクチャのスケーラビリティの顔は、設計目標です。

これは、他の多くの点があるそのコア要素のアーキテクチャとは何かです。私のドリップ理解を見てください。


第一段階:アウトソーシングキャリア

技術者として本能的に、これはIT部門、「ランシャン」のスポークスマンになりますかのように、やって仕事をアウトソーシング反発している場合など。実際には、そうでない平均ローエンドアウトソーシング人材と成長なし、いくつかのアウトソーシング企業は、厳格な規格・基準は、コード、そこに標準化されている必要があり、特に用の注釈要件およびドキュメントを、一部だけでビジネスを行うため、これは、ビジネス機能とインターフェース設計の十分な分離を必要とします。私はそれがこの経験で標準化されたコードの習慣を形成し、機能的なインターフェイス、モジュール式の思考を持っています。

参考:Huawei社コード仕様ドキュメント、 Googleのオープンソースプロジェクトのスタイルガイド  ;ブック- 「コードコンプリート」


第二段階:スタンドアロンのソフトウェア開発

これは、ソフトウェアの独立した開発を担当する彼の最初の時間で、ビジネスを理解して、コードに頼る顧客との接触に入って来ました。このプロセスでは、深い印象の断片があり、ランダムにコード名の1000行に機能コードがアップ持って引き継ぐ私は霧を参照してください、コメントしませんでした。最後に、彼らは静かに、ビジネスロジックの唯一の明確な理解と、線でコード行のデバッグツールの使用を含め、リードタイムの多くを支払う泥の馬の数百を超える歩きました。私は、後半に自分に有利にするだけでなく、上規制する別のコード(名前とコメント)、小さな関数を適用するために1000行への分割の多くの機能、この怪物の分離の最初のフェーズを開始するには良い習慣を開発するために使用されますメンテナンスは、私はR&D人材を引き継ぐために、次の何もする必要はありませしたいと思います。この経験の間に、私は持つようになったの意識・ツールで書き出すことがいくつかのユーティリティ関数を(この期間はまた、オープンソースコードの多くを見て、ユーティリティ機能の多くを抽出します)。別の焦点は、上にある単一のプラグイン機構を使用するような動的ローディング機構プログラム(DLL)を使用して変更ローカルおよびアップグレードプログラムロジックの要素を表示するインターフェイスを調整するための柔軟性として、。

参考:鼻息とtcpdumpのソースプラグイン、完全にプログラムを実践する機構と、ブログ記事- 「生産性ツールを改善する」カテゴリ「」


第三段階:クライアント/サーバーサイドのプログラミング

C(B)/ Sは、コンタクトネットワークプログラミングアーキテクチャ、ウェブプログラミングの開始を意味します。彼の最大のステージ上でこれの影響はあるべき階層的思考絶妙なデザインは、いくつかの最大の階層セットを使用するネットワーク・プロトコル・スタックと使用のJava SSHフレームワークは深く、そのような後で考えを含め、階層的な思考をフルに活用するために設計された、独自のリアルタイムチャットシステムアーキテクチャとして、自分自身に影響を与えている階層化事業関係なく、技術プラットフォーム、自身が棚を豊かにするために、同社の技術を容易にしました。

参考:ブログ記事- 「愚見のIMシステムアーキテクチャ設計」、ソースgithub-技術プラットフォームの高性能TCPネットワーク・サーバ・プログラムのリモートプロシージャコールプロトコルTCPクライアントの実装フレームワーク


フェーズIV:Linuxシステムに、サーバー側のプログラミング

先のWindowsから自分自身、彼らの技術スタック全体的なシフトを見越して2011年にはさらに多くの熱狂的なインターネット/モバイルインターネットの嵐として、バックエンドサービスは、Linuxクライアント技術を搭載しているの90%以上は、あまりにも、断片化された場合Linuxでは、クライアントからサービス終了まで。彼の建築のキャリアのターニングポイントは一つだけを選ぶことができれば、私はこの段階を選ぶだろう。LinuxシステムおよびWindowsは、二つの異なる文化であり、「UNIXプログラミングのアート」この本は私の精神的な師匠が、私は4回よりも少ない読まないと言うことができます。私は本をやっていた多くの思想は、次のような、将来のための基礎とフレームワークのガイドラインとなっている「モジュール原則:使用シンプルなインターフェイスは、単純なコンポーネントに分割;」1つのワードの文章に凝縮「KISS -キープこれシンプルで、愚かな!と。」Martin Fowler氏とジェームズ・ルイスときは、まだ私はマイクロサービスの設計とたくさんの練習を行ってきたこれらのアイデアをもとに、マイクロサービスの概念を提案していません。

参考:ブログ記事- 「第三の読書」UNIXプログラミングのアート「--UNIX哲学」  「サーバアーキテクチャ」ゲートウェイサーバ「」


第五段階:ビルドインターネットプラットフォームレベルの製品

この段階では彼の役割は単なる技術者ではないので、しかし操作が行くだけでなくとしてとしてビジネスや製品設計に深く行ってきました。そして、アイデアは確かにある操作ガイダンスアーキテクチャ事業開発のアーキテクチャはゆっくりと発展させることができるよう、私たちは、完全にすべてのものを考慮することはできません。しかし、この時間は、アーキテクチャの適用範囲は、もはや単なる手続き上のフレームワークではありませんが、技術の選択、アーキテクチャ設計、パフォーマンスの最適化、セキュリティ、システムのリリース、運用、保守、監視、ビジネスデータ分析および事業全体のチェーンのためのその他のサポート。

参考:(などモバイルAPP、インテリジェントなハードウェア、Web開発、データベース、クラウドサービス、高い同時実行を含む)総括します




これらは、実際には、こまごまとし、ビットの多くは、これらが自分のアイデアや技術のキャリアを構成するからこそビットであり、今日の気まぐれの主要ノードのいくつかの思い出です。王はまた、すべての技術職が自分のプログラム猿の兄弟をつぶす尊重し、自分自身の技術スタッフを務めていました。