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 の世界を席巻する理由
簡単に言えば、入札とは、検索エンジンで広告スペースを購入して、自分の製品やサービスを販売することを意...
最近、エマーはLexun Mobile Expert Forumの編集部の同僚に簡単なSEOスキルの...
チャネル 1: 検索エンジンプロモーション海外にはGoogle、Bing、Yahoo、Yandex、...
中国新聞社ITチャンネルによる地図中国新聞社、7月17日(ITチャンネル左盛丹) 課金するべきか、し...
先日、A5チャットイベントにゲストが招かれ、ウェブマスター向けのドメイン名投資について講演しました。...
onetechcloud は最近、米国トリプルネットワーク AS9929、米国トリプルネットワーク ...
それは戦争に向かう行軍のようなものです。戦場に到着したり敵に遭遇する前に最後まで粘り強く戦わずに、途...
zgovpsは本日、ロサンゼルスデータセンターでVPSの販売を正式に開始しました。デフォルトでは、3...
2018年最もホットなプロジェクト:テレマーケティングロボットがあなたの参加を待っています「人がいる...
昨日マイクロソフトはSkyDriveをリリースし、今日グーグルはGoogle Driveをリリースし...
検索エンジンにおけるウェブサイトのランキングは、多くの要因によって決まります。すべてをまとめることは...
[[419258]]目次スナップショットを作成する定期的なスナップショットとバックアップLongho...
インターネット時代においては、口コミによるマーケティングが重要です。 Qiying インターネット ...
「今、私たちは金鉱のような存在で、多くの人が来て掘りたがっています。」 5月15日、小紅書の創業者Q...
みなさんこんにちは。私は徐子宇です。私はこれまで、企業サイトのSEO最適化業務に携わってきました。正...