1. 良いコードについての私の意見1. 良いコードとは何か?『デザインパターンの美しさ』を読んだことがある人は、さまざまなデザインパターンを駆使し、デザインパターンの 6 つの基本原則に準拠したコードが良いコードだと考えるかもしれません。 「Clean Code」を読んだことがあるなら、良いコードの基準の 1 つは簡潔さであると考えるかもしれません。 Spring のソースコードをよく勉強している人は、精巧な設計、高度な抽象化、柔軟な構成が良いコードだと思っているかもしれません。ちょうど本のように、千人の読者の目には千のハムレットがあり、誰もが自分の認識に基づいて独自の判断を下すでしょう。 2. 良いコードとは上で述べたように、良いコードに対する認知基準は人によって異なります。私が良いコードだと思うものも、私の認知レベルによって制限されます。たぶん、今日は良いコードだと思うかもしれませんが、認知力が向上するにつれて、別の日には別のアイデアが浮かぶでしょう。私の現在の認識では、良いコードの特徴は次のようになると思います。 可用性 はい、正しく読みました。優れたコードは使用可能で機能する必要があります。コードが見た目だけ良く、あらゆる種類の派手なコーディング技術やスキルを使用していても、動作しない場合は、存在する意味を失ってしまいます。したがって、優れたコードの最も重要な特徴は使いやすさです。 読みやすさ 優れたコードの2番目の特徴は読みやすさだと思います。コードを書くときに対象とするユーザーには 2 つの種類があります。最初のタイプはコンパイラ用です。 2 番目のタイプは、それを保守するプログラマー向けです。最初のタイプのユーザーの場合、文法仕様に準拠している限り、認識されて実行されます。 2 番目のタイプのユーザーは、後期段階でもメンテナンスとアップグレードを継続するプログラマーです。それを維持する人々がこのコードを理解できない場合、その長期的な存在にはほとんど意味がありません。 その他の優れた機能 保守性、スケーラビリティ、再利用性、強力な堅牢性、テスト可能性など。 優れたコードには、ここで挙げきれないほど多くの優れた機能があります。 3. コンピューター上でコードを踊らせる原点に戻って、コードを書く目的は何でしょうか?それは、コンピュータが理解できる命令を通じて、私たちが考えていることや望んでいることをコンピュータに伝え、コンピュータが私たちに代わってやりたいことを実行できるようにすることです。優れたコードは、私たちが望むことを簡単に達成できるだけでなく、それを迅速かつ効率的かつ完全に実行することもできます。コンピューター上で一緒にコードを踊らせてみましょう。 2. なぜそれを行うのですか?2020 年のメーデー休暇中、皆がメーデー休暇の楽しい時間を楽しんでいたとき、突然 hbase からアラームが届きました。 hbase 全体の IO 圧力がボトルネックに近づき、データの読み取りと書き込みに直接影響を及ぼしました。 hbase の一時的な拡張では、ほとんどサポートできませんでした。この開発傾向によれば、ビジネスピークが発生すると、HBase の読み取りと書き込みがビジネスチェーン全体のボトルネック問題を直接引き起こすことになります。大量のバーガンデータをリアルタイムでhbase+solrに書き込むことで発生する高いIO圧力を解決するために、Redisをベースにした軽量の分散バランス消費キューを設計しました。このキューは、一定のルールに従ってバーガンデータを異なるキューに分割し、バッチデータ重複排除を実現してから、バッチでhbase+solrに書き込み、hbase+solrのIO圧力を軽減します。 3. やり方コンポーネントの全体的な設計アイデア: コンポーネント全体は、主にマスター (マスター ノード)、ライター (データ書き込みノード)、ワーカー (作業ノード) の 3 つのコア モジュールに分かれています。 設計メカニズム: 弱い中心メカニズム。構成されたノードは、マスター (メイン ノード)、ライター (データ書き込みノード)、またはワーカー (作業ノード) になることができます。可用性が高く、単一のマシンまたは単一のポイントによるボトルネックの問題がありません。 マスター(マスターノード)の責任:
ライター(データ書き込みノード)の責任:
ワーカー(作業ノード)の責任:
偉大な Linux の達人はかつてこう言いました。「言葉は安いものだ、コードを見せてくれ。」 IV.私たちがやったこと1. コンポーネント全体のパッケージ構造図2. 簡潔なコード構造
プロジェクト全体には合計 60 個のクラスと 1,623 行のコア コードがあります。クラスあたりの平均コード行数は 27.05 で、最大クラスでもコード行数は 200 行以下です。 3. 強力なスケーラビリティフック コールバック メソッドの設計により、システムにアクセスするユーザーは独自のコールバック実装メソッドをすばやく挿入して、ビジネス機能を迅速に拡張できます。 4. オンラインログ表示のスクリーンショットログファイル マスターキュー割り当てログ ワーカーデータ消費ログ ライターキュー負荷検出ログ Redis コンシューマー キュー モニタリング ダッシュボード 5. 当社のメリットコンポーネントがオンラインで展開されると、hbase サーバーはインジケーターの変化を監視し、全体的な hbase 使用レベルを約 50% 最適化します。 HBase IOPS 使用状況の監視 HBase CPU 使用率の監視 VI.私たちの展望
7. 私の理解優れたコードは、読みやすい優れた記事と同じように、人々に第一印象を与えます。記事によってスタイルやジャンルが異なり、コードによってプログラミング スタイルの要件も異なります。 Python は厳密なインデントを持ち、詩のように整然として対照的です。 C 言語は、散文のように手続き型であり、深い芸術的概念を持っています。 Java 言語はオブジェクト指向であり、各登場人物のアウトラインを作成できる小説を書くようなものです。しかし、記事のジャンルが何であれ、読みやすさやわかりやすさは非常に重要です。記事が読みやすく理解しやすい場合にのみ、より多くの読者を引き付け、記事を広めることができます。コードについても同様です。保守性と可読性も非常に重要です。コードの可用性を確保し、コードのシンプルさと保守性を向上させることによってのみ、コードをコンピューター上でより長く実行できるようになります。 |
<<: テンセントクラウドがTecho Hub全国技術ツアーイベントを開始、コンピューティング技術のネタバレを事前に最初にチェック
>>: クラウドネイティブが SaaS の世界を席巻する理由
WeChatマーケティングの概念の台頭により、数え切れないほどのeコマース事業者や起業家が、従来のT...
米国ロサンゼルスのHostyun VPSに、AMD Ryzen 9 5950X、Samsung 98...
中国中央ラジオテレビの毎年恒例の3.15ガラがこのほど終了した。今回の3.15では「土穴」ザワークラ...
中国では、見知らぬ人とのソーシャルネットワーキングは、出会い系サイトによるPCインターネット時代を経...
ハイブリッド クラウドへの道は、多くの場合、一連の偶然と事故によって舗装されています。 Red Ha...
A5 Webmaster Network (admin5.com) は 8 月 29 日、有名なウェ...
9月22日、多くのウェブマスターが、Baiduのサイトコマンドを使用したところ、自分のウェブサイトの...
大企業でも中小企業でも、アプリをゼロから宣伝するには、起業プロセスを経る必要があります。常に、人員が...
locvps のヨーロッパ VPS には、ロシアの cn2 gia (レビューを参照) だけでなく、...
私は長い間 SEO チュートリアルを書いていませんでしたが、多くの友人がそれについて不満を抱いていま...
プライベート、ハイブリッド、マルチクラウド コンピューティングのリーダーである Nutanix (N...
Softshellweb は台湾の VPS を提供しており、価格設定からすると実際には安価な台湾の ...
Microsoft Hyper-V はどの Windows 10 デスクトップでもすぐに利用可能であ...
この世代の若者は、ライブ放送室でますます熱狂的に遊んでいます。紫秀溝ナイトクラブが人気を博した後、6...
『コンテンツ マーケティング』の第 4 章「The Unique 'You'」で、著...