ホームページ Java &#&チュートリアル より優れたプログラマーになる: ヒント

より優れたプログラマーになる: ヒント

Sep 26, 2024 pm 05:06 PM

Become a Better Coder: Tips

無数の Python のベスト プラクティスがオンラインで流通しているため、それぞれについての意見は尋ねる人によって異なります。インターネットによって専門知識が民主化され、私を含め誰もが自分の意見を共有できるようになりました。ただし、この記事では、幅広いコンセンサスを獲得し、基本的であると広くみなされている 10 個の時代を超えた Python のベスト プラクティスに焦点を当てます。

パンダのチートシート

Git コマンドのチートシート

SQL インタビューの質問トップ 50

ヒント 1: 関数はパラメーターと戻り値の型を指定する必要があります
関数を定義するときは、引数の型と関数の結果が返すデータ型を常に指定する必要があります。これにより、あなたとチームの開発者の両方が、常に print ステートメントを使用して視覚的に理解する必要がなく、何が予想されるかを知るのに役立ちます。

ヒント 2: 関数は同じ抽象レベルである必要があります
同じ抽象レベルにある関数について話すとき、私たちは関数が明確に定義された単一のタスクを実行する必要があるという考えを指します。そのタスクは、関数全体を通じて一貫した抽象化レベルにある必要があります。言い換えれば、関数は特定のレベルの詳細または複雑さに重点を置く必要があり、すべての関数の操作は同じレベルで動作する必要があります。

ヒント 3: 関数は小さくする必要があります
関数は再利用可能であることを目的としています。そして、関数が大きくなるほど、再利用できる可能性は低くなります。これは、関数が 1 つのことだけを行う必要がある理由にも関係します。 1 つのことだけを行う場合は、小規模になる可能性が高くなります。

ヒント 4: オープンクローズの原則
オープンクローズ原則 (OCP) では、クラス、メソッド、または関数は拡張のためにオープンである必要がありますが、変更はできないと規定されています。これは、定義されたクラス、メソッド、関数は、コードを変更せずに簡単に再利用したり、複数のインスタンスに拡張したりできることを意味します。
新しい国ができるたびに、それを補完する新しい if ステートメントを作成する必要があるため、これは OCP に準拠していません。これは今では簡単に思えるかもしれませんが、考慮すべき国が 100 以上あると想像してください。それはどのように見えるでしょうか?

ヒント 5: コメントは絶対に避けてください
コメントには真実であるかのように偽る可能性があります。これらは、コードが実際に行っていることから、他の人が言っていることに読者の意識を逸らさせます。

時間が経ち、コードが更新または変更されると、これは非常に問題になる可能性があります。ある時点で、そのコメントは嘘になり、誰もが嘘のレンズを通して真実を観察しなければなりません。

コメントは絶対に避けてください。コメントは、せいぜい過去のあなたの考えを読者に継承させることになります。関数またはクラスが変更されても、ほとんどの場合、そのコメントは変更されません。おそらく、それらは読者が前向きに考えることを妨げます。

コメントは、作成者が適切に説明的なクラス、関数、または変数名を提供する精神力がなかったことを示します。これはプログラマーのやる気のない態度を暴露し、チームにそのような態度の継承を強います。

ヒント 6: マジックナンバーを避ける
マジック ナンバーはハードコードされた値であり、後の段階で変更される可能性がありますが、そのため更新が難しい場合があります。

たとえば、「ご注文」概要ページに過去 50 件の注文を表示するページがあるとします。ここでの 50 はマジック ナンバーです。これは、標準や慣例によって設定されたものではなく、仕様に概説されている理由に基づいて作成された数字であるためです。

ここで、50 個をさまざまな場所に保存します。SQL スクリプト (SELECT TOP 50 * FROM 注文)、Web サイト (最後の 50 個の注文)、注文ログイン (for (i = 0; i <) ; 50; i )) そしておそらく他の多くの場所。

ヒント 7: 深いネストを避ける

可読性を向上させるために、ループ、条件、または関数内のネストのレベルを制限します。

ヒント 8: パスのハードコーディングを避ける

ファイル パスや URL をハードコーディングしないでください。代わりに構成ファイルまたは環境変数を使用してください。

ヒント 9: クラスは少人数である必要があります

そうだ!クラスはできるだけ少人数にする必要があります。関数と同じです。

唯一の違いは、関数ではサイズがその関数の行数によって決定されるのに対し、クラスではそのクラス内の責任の数によって決定されることです。

通常、クラス名はそのクラスが持つ可能性のある責任の種類を表しますが、名前が曖昧だったり一般的すぎる場合は、クラス名に過剰な責任を与えている可能性が高くなります。

これは、クラスが変更する理由は 1 つだけ、つまり責任は 1 つだけであるべきであるという SRP (単一責任原則) に戻ります。

ヒント 10: 複雑な 3 項式を避ける

過度に複雑な 3 項式の使用は避けてください。コードをより理解しやすくするために、簡潔さよりも読みやすさを重視します。

以上がより優れたプログラマーになる: ヒントの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

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

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

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

会社のセキュリティソフトウェアはアプリケーションの実行に失敗していますか?それをトラブルシューティングと解決する方法は? 会社のセキュリティソフトウェアはアプリケーションの実行に失敗していますか?それをトラブルシューティングと解決する方法は? Apr 19, 2025 pm 04:51 PM

一部のアプリケーションが適切に機能しないようにする会社のセキュリティソフトウェアのトラブルシューティングとソリューション。多くの企業は、内部ネットワークセキュリティを確保するためにセキュリティソフトウェアを展開します。 ...

名前を数値に変換してソートを実装し、グループの一貫性を維持するにはどうすればよいですか? 名前を数値に変換してソートを実装し、グループの一貫性を維持するにはどうすればよいですか? Apr 19, 2025 pm 11:30 PM

多くのアプリケーションシナリオでソートを実装するために名前を数値に変換するソリューションでは、ユーザーはグループ、特に1つでソートする必要がある場合があります...

MapsTructを使用したシステムドッキングのフィールドマッピングの問題を簡素化する方法は? MapsTructを使用したシステムドッキングのフィールドマッピングの問題を簡素化する方法は? Apr 19, 2025 pm 06:21 PM

システムドッキングでのフィールドマッピング処理は、システムドッキングを実行する際に難しい問題に遭遇することがよくあります。システムのインターフェイスフィールドを効果的にマッピングする方法A ...

Intellijのアイデアは、ログを出力せずにSpring Bootプロジェクトのポート番号をどのように識別しますか? Intellijのアイデアは、ログを出力せずにSpring Bootプロジェクトのポート番号をどのように識別しますか? Apr 19, 2025 pm 11:45 PM

intellijideaultimatiateバージョンを使用してスプリングを開始します...

エンティティクラス変数名をエレガントに取得して、データベースクエリ条件を構築する方法は? エンティティクラス変数名をエレガントに取得して、データベースクエリ条件を構築する方法は? Apr 19, 2025 pm 11:42 PM

データベース操作にMyBatis-Plusまたはその他のORMフレームワークを使用する場合、エンティティクラスの属性名に基づいてクエリ条件を構築する必要があることがよくあります。あなたが毎回手動で...

Javaオブジェクトを配列に安全に変換する方法は? Javaオブジェクトを配列に安全に変換する方法は? Apr 19, 2025 pm 11:33 PM

Javaオブジェクトと配列の変換:リスクの詳細な議論と鋳造タイプ変換の正しい方法多くのJava初心者は、オブジェクトのアレイへの変換に遭遇します...

eコマースプラットフォームSKUおよびSPUデータベースデザイン:ユーザー定義の属性と原因のない製品の両方を考慮する方法は? eコマースプラットフォームSKUおよびSPUデータベースデザイン:ユーザー定義の属性と原因のない製品の両方を考慮する方法は? Apr 19, 2025 pm 11:27 PM

eコマースプラットフォーム上のSKUおよびSPUテーブルの設計の詳細な説明この記事では、eコマースプラットフォームでのSKUとSPUのデータベース設計の問題、特にユーザー定義の販売を扱う方法について説明します。

Redisキャッシュソリューションを使用して、製品ランキングリストの要件を効率的に実現する方法は? Redisキャッシュソリューションを使用して、製品ランキングリストの要件を効率的に実現する方法は? Apr 19, 2025 pm 11:36 PM

Redisキャッシュソリューションは、製品ランキングリストの要件をどのように実現しますか?開発プロセス中に、多くの場合、ランキングの要件に対処する必要があります。

See all articles