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 の世界を席巻する理由
3 色の図は、安価、安定性、高速性は共存できないことを示しています。高い要件がない場合は、安価で使い...
racknerdは現在、AMD高周波シリーズ、AMD超マルチスレッドシリーズ、Intel超大型ハード...
今日、ビデオとアクセス制御の統合、クラウドの使用、スマート分析の力により、物理的なセキュリティが変革...
世界的危機における事業中断による損失を最小限に抑えることを目指す公衆衛生上の緊急事態に直面し、多くの...
「インターネット信用認証」、「信用組合」、「電子商取引信用認証」…2010年以来、国内の何十万ものウ...
Host Cat は、ここで海外の Windows システム VPS を紹介する記事を書いています。...
ウェブサイトの検索エンジン最適化(略してSEO)は、ウェブサイトのランキングとトラフィックを向上させ...
背景OpenTelemetry プローブOpenTelemetry (略して Otel、最新バージョ...
myRSK は 2009 年から現在まで力強く存続してきましたが、この Web サイトは今にも暴走し...
SEO に最適化されたウェブサイトについて言えば、まず頭に浮かぶのは「1 つの中心、2 つの基本ポイ...
WeChatは、月間アクティブユーザー数が10億人に達し、15歳から40歳までのユーザーをカバーし、...
ほとんどのウェブマスターは、新しいウェブサイトがオンラインになったらすぐに Baidu に登録される...
Vagex の登録受付が開始されました。公式 Web サイト (http://vagex.com/)...
私は自分のウェブサイトを宣伝した経験と、よく使ういくつかの方法を皆さんと共有したいと思います。最初は...
247-host.com は 2004 年から運営されており、仮想ホスティング、再販業者、VPS (...