国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

ホームページ ウェブフロントエンド jsチュートリアル クリーン コードについて何を理解すればよいですか?

クリーン コードについて何を理解すればよいですか?

Jan 20, 2025 am 02:41 AM

ソフトウェア開(kāi)発のベスト プラクティスの詳細(xì): クリーン コードについての考察

優(yōu)れたソフトウェア開(kāi)発の実踐について研究を始めたとき、私は「クリーンコード」 (クリーンコード) を、コードを読みやすくするための単純なルールのセットとして想像しました。 部分的には、この認(rèn)識(shí)は正しいです。ただし、これらのルールは常にすべての種類(lèi)のコードに適用されるわけではなく、本を読んだだけでは完全に理解できないことは確かです。

O que eu entendo sobre Clean Code?

クリーンなコード: 継続的な旅

最近、ロバート C. マーティンによる古典的なクリーン コードを再読しましたが、私の理解は 6 年前に最初に読んだときとは大きく異なりました。 當(dāng)時(shí)大學(xué)生だった私には、提示された問(wèn)題や解決策の多くは完全に明確ではありませんでした。 これは大きな誤解です。きれいなコードは初心者向けではありません。

「...あなたが醫(yī)師で、手術(shù)に時(shí)間がかかりすぎるという理由だけで、手術(shù)に備えた手洗いをすべてやめるよう患者に要求されたらどうしますか? [...] プログラマーが要求に屈するのはプロフェッショナルとしてはふさわしくありません。紛らわしいコードを生成するリスクを理解していない偉大なマネージャーの意志です?!?/p>

この記事では、私の読んだ內(nèi)容から関連する點(diǎn)を強(qiáng)調(diào)し、実際の経験を共有します。

機(jī)能: 単一の責(zé)任

よく書(shū)かれた関數(shù)は、単一の責(zé)任を負(fù)う必要があります。つまり、1 つのことを?qū)g行し、それを適切に実行し、それだけを?qū)g行する必要があります。 複數(shù)の責(zé)任を 1 つの役割にグループ化すると、コードの読み取り、テスト、保守が困難になります。

複數(shù)の責(zé)任を持つロールの例 (保存とユーザーへの通知):

<code>function salvarUsuarioENotificar(usuario) {
    // Valida os dados do usuário
    if (!usuario.nome || !usuario.email) {
        throw new Error('Dados do usuário incompletos.')
    }

    // Salva no banco de dados
    bancoDeDados.salvar(usuario)

    // Envia um e-mail de boas-vindas
    emailService.enviarEmail(usuario.email, 'Bem-vindo!', 'Obrigado por se cadastrar!')
}</code>

リファクタリング後、特定の役割における各責(zé)任:

<code>function validarUsuario(usuario) {
    if (!usuario.nome || !usuario.email) {
        throw new Error('Dados do usuário incompletos.')
    }
}

function salvarUsuario(usuario) {
    bancoDeDados.salvar(usuario)
}

function enviarEmailDeBoasVindas(usuario) {
    emailService.enviarEmail(usuario.email, 'Bem-vindo!', 'Obrigado por se cadastrar!')
}

function processarCadastroDeUsuario(usuario) {
    validarUsuario(usuario)
    salvarUsuario(usuario)
    enviarEmailDeBoasVindas(usuario)
}</code>

各関數(shù)が単一の責(zé)任を持つようになり、コードがより読みやすくなり、保守が容易になりました。

コメント: わかりやすい名前を優(yōu)先します

コメントは便利ですが、重複を避けるためにわかりやすい名前を優(yōu)先してください。 明らかなコメントはコードを汚染します。

不要なコメントの例:

<code>/** Dia do mês **/
private number diaDoMes;</code>

より明確な名前とコメントなしで改善されました:

<code>private number diaDoMesAtual;</code>

オブジェクトとデータ構(gòu)造: カプセル化と明確性

優(yōu)れたオブジェクト指向設(shè)計(jì)は、操作の公開(kāi)と実裝の詳細(xì)の非表示に重點(diǎn)を置いています。 これによりカプセル化が促進(jìn)され、結(jié)合が減少し、メンテナンスが容易になります。

クラスでのカプセル化の例 Circulo:

<code>class Circulo implements Forma {
    private Ponto centro;
    private number raio;
    private number PI = 3.14159;

    public number calcularArea() {
        return PI * raio * raio;
    }
}</code>

異なる目的のために異なるスコープで変數(shù)を再利用することは避けてください。 より明確にするために、個(gè)別の変數(shù)を使用します。

エラー処理: 複數(shù)のチェックではなく例外

以前は、エラー処理には制限がありました。 現(xiàn)在、例外を使用すると、コードがよりクリーンになり、読みやすくなります。

複數(shù)の検証を含む冗長(zhǎng)コードの例:

<code>function salvarUsuarioENotificar(usuario) {
    // Valida os dados do usuário
    if (!usuario.nome || !usuario.email) {
        throw new Error('Dados do usuário incompletos.')
    }

    // Salva no banco de dados
    bancoDeDados.salvar(usuario)

    // Envia um e-mail de boas-vindas
    emailService.enviarEmail(usuario.email, 'Bem-vindo!', 'Obrigado por se cadastrar!')
}</code>

例外を使用したリファクタリング:

<code>function validarUsuario(usuario) {
    if (!usuario.nome || !usuario.email) {
        throw new Error('Dados do usuário incompletos.')
    }
}

function salvarUsuario(usuario) {
    bancoDeDados.salvar(usuario)
}

function enviarEmailDeBoasVindas(usuario) {
    emailService.enviarEmail(usuario.email, 'Bem-vindo!', 'Obrigado por se cadastrar!')
}

function processarCadastroDeUsuario(usuario) {
    validarUsuario(usuario)
    salvarUsuario(usuario)
    enviarEmailDeBoasVindas(usuario)
}</code>

単體テスト: 明確さと焦點(diǎn)

クリーンなテストは、明確、シンプル、そして一貫性がなければなりません。 少ない表現(xiàn)で多くの情報(bào)を伝えます。

テストの一般的な構(gòu)造: 構(gòu)築、運(yùn)用、検証。

クラス: SRP (単一責(zé)任原則)

クラスの名前は、その責(zé)任を反映する必要があります。 クラスは少人數(shù)で、目的は 1 つである必要があります。 SRP は、各クラスが 1 つの責(zé)任だけを持つことを保証します。

結(jié)論: クリーンなコードは旅です

クリーンなコードは一度に學(xué)習(xí)することはできません。それは実踐、反省、進(jìn)化を必要とする継続的な旅です。 真のスキルには経験と改善點(diǎn)を確認(rèn)する能力が伴います。 Kent Beck のルール (テスト、重複の回避、明確さ、クラスとメソッドの最小化) は貴重なガイドです。

以上がクリーン コードについて何を理解すればよいですか?の詳細(xì)內(nèi)容です。詳細(xì)については、PHP 中國(guó)語(yǔ) Web サイトの他の関連記事を參照してください。

このウェブサイトの聲明
この記事の內(nèi)容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰屬します。このサイトは、それに相當(dāng)する法的責(zé)任を負(fù)いません。盜作または侵害の疑いのあるコンテンツを見(jiàn)つけた場(chǎng)合は、admin@php.cn までご連絡(luò)ください。

ホットAIツール

Undress AI Tool

Undress AI Tool

脫衣畫(huà)像を無(wú)料で

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード寫(xiě)真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

寫(xiě)真から衣服を削除するオンライン AI ツール。

Clothoff.io

Clothoff.io

AI衣類(lèi)リムーバー

Video Face Swap

Video Face Swap

完全無(wú)料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡(jiǎn)単に交換できます。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無(wú)料のコードエディター

SublimeText3 中國(guó)語(yǔ)版

SublimeText3 中國(guó)語(yǔ)版

中國(guó)語(yǔ)版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強(qiáng)力な PHP 統(tǒng)合開(kāi)発環(huán)境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開(kāi)発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

Java vs. JavaScript:混亂を解消します Java vs. JavaScript:混亂を解消します Jun 20, 2025 am 12:27 AM

JavaとJavaScriptは異なるプログラミング言語(yǔ)であり、それぞれ異なるアプリケーションシナリオに適しています。 Javaは大規(guī)模なエンタープライズおよびモバイルアプリケーション開(kāi)発に使用されますが、JavaScriptは主にWebページ開(kāi)発に使用されます。

JavaScriptのマスターコメント:包括的なガイド JavaScriptのマスターコメント:包括的なガイド Jun 14, 2025 am 12:11 AM

ContureCrucialInjavascript formantaining andFosteringCollaboration.1)TheypindeBugging、Onboarding、およびUnderstandingCodeevolution.2)usesingle-linecomments for quickexplanations andmulti-linecomments fordeTeTaileddespransions.3)BestPractsinclud

JavaScriptコメント:短い説明 JavaScriptコメント:短い説明 Jun 19, 2025 am 12:40 AM

JavaScriptcommentsEareEssentialential-formaining、およびGuidingCodeexecution.1)single-linecommentseared forquickexplanations.2)多LinecommentsexplaincomplexlogiCorprovidededocumentation.3)clarifyspartsofcode.bestpractic

JSで日付と時(shí)間を操作する方法は? JSで日付と時(shí)間を操作する方法は? Jul 01, 2025 am 01:27 AM

JavaScriptで日付と時(shí)間を処理する場(chǎng)合は、次の點(diǎn)に注意する必要があります。1。日付オブジェクトを作成するには多くの方法があります。 ISO形式の文字列を使用して、互換性を確保することをお?jiǎng)幛幛筏蓼埂?2。時(shí)間情報(bào)を取得および設(shè)定して、メソッドを設(shè)定でき、月は0から始まることに注意してください。 3.手動(dòng)でのフォーマット日付には文字列が必要であり、サードパーティライブラリも使用できます。 4.ルクソンなどのタイムゾーンをサポートするライブラリを使用することをお?jiǎng)幛幛筏蓼?。これらの重要なポイントを?xí)得すると、一般的な間違いを効果的に回避できます。

JavaScript vs. Java:開(kāi)発者向けの包括的な比較 JavaScript vs. Java:開(kāi)発者向けの包括的な比較 Jun 20, 2025 am 12:21 AM

javascriptispreferredforwebdevelopment、whilejavaisbetterforlge-scalebackendsystemsandroidapps.1)javascriptexcelsininintingtivewebexperiences withitsdynAmicnature anddommanipulation.2)javaofferstruntypyping-dobject-reientedpeatures

JavaScript:効率的なコーディングのためのデータ型の調(diào)査 JavaScript:効率的なコーディングのためのデータ型の調(diào)査 Jun 20, 2025 am 12:46 AM

javascripthassevenfundamentaldatypes:number、string、boolean、undefined、null、object、andsymbol.1)numberseadouble-precisionformat、有用であるため、有用性の高いものであるため、but-for-loating-pointarithmetic.2)ストリングリムムット、使用率が有用であること

なぜの下部にタグを配置する必要があるのですか? なぜの下部にタグを配置する必要があるのですか? Jul 02, 2025 am 01:22 AM

PLACSTHETTHETTHE BOTTOMOFABLOGPOSTORWEBPAGESERVESPAGESPORCICALPURPOSESESFORSEO、userexperience、andDesign.1.IthelpswithiobyAllowingseNStoAccessKeysword-relevanttagwithtagwithtagwithtagwithemaincontent.2.iTimrovesexperiencebyepingepintepepinedeeping

DOMでのイベントの泡立ちとキャプチャとは何ですか? DOMでのイベントの泡立ちとキャプチャとは何ですか? Jul 02, 2025 am 01:19 AM

イベントキャプチャとバブルは、DOMのイベント伝播の2つの段階です。キャプチャは最上層からターゲット要素までであり、バブルはターゲット要素から上層までです。 1.イベントキャプチャは、AddEventListenerのUseCaptureパラメーターをTrueに設(shè)定することにより実裝されます。 2。イベントバブルはデフォルトの動(dòng)作であり、UseCaptureはfalseに設(shè)定されているか、省略されます。 3。イベントの伝播を使用して、イベントの伝播を防ぐことができます。 4.イベントバブルは、動(dòng)的なコンテンツ処理効率を改善するためにイベント委任をサポートします。 5.キャプチャを使用して、ロギングやエラー処理など、事前にイベントを傍受できます。これらの2つのフェーズを理解することは、タイミングとJavaScriptがユーザー操作にどのように反応するかを正確に制御するのに役立ちます。

See all articles