抽象化は読みやすさを提供する
4537 ワード
問題
あなたが意欲的な新しいプログラマーとしてあなたの旅を始めるとき、学ぶことの多くがあります、それのいくつかは本当に他のものが少しトリッキーであるかもしれない間、把握するのが簡単です.
その一つは抽象的な言葉で、それは恐ろしい言葉であり、時々私はフリックすることもあるので、私はそれを回すのが好きで、使い方の観点から見てみたい.
抽象化?
抽象化は多くの形で来ます.そして、それは大規模なシステムの部分の間で、より大きなスケールでしばしば使われます.
Abstraction
それで、抽象化は誰かに何かの概念を理解させるために使われます.
Abstractions offers the reader readability.
方法
そこで今日は、小規模の抽象化についてお話したいと思います.
プログラマとしての我々のプログラムは、私たちのために特定のことをするためにメソッド/関数に分割します.
しかし、読みやすさと単純さだけのために、それは再利用性のために必要でないけれども、我々はしばしばコードの別々のブロックを壊すことによって読者のためにコードを単純化する機会を逃します.
それで、(よく名前を付けられた)メソッドはコードのリーダーがそれがされる方法の代わりに起こっていることを把握するのを許します、したがって、詳細を隠している形で単純さを提供します.
一例
あなたの顧客に毎週のレポートで送られる電子メールで書式設定エラーを修正する必要があると言います、チケットの助けとしてsendreport ()メソッドの言及があります.
メソッドを検索してファイルを開き、すべての3500行の長いメソッドに直面します.
複数の人々が機能を追加することに関与しており、このコードの最後の数年間のバグを見つけるためにハードを修正することに関与しているという事実のために、それはすべて絡み合っている.
あなたは、探し始めましたか?
あなたは本当に座って、あなたが探しているものを見つけるためにコードのすべてを読む必要があり、それはどのようにうまくいけば、過去に複数回起こった何か他のものを壊すことなく、一部を変更するを参照してください.
代わりにあなたのsendreports ()メソッドがこのように見えたなら、あなたはあなたが探しているものを見つけるより簡単な時間を持ちますか?
あなたはレポートを計算するために行われるために必要なすべてのDB呼び出しを見なければなりませんでした.
/// Send weekly report to all customers
function SendReports() {
for(every customer in allCustomers) {
report = createReport(customer);
email = createEmail(customer, report);
sendEmail(email);
}
}
それから、あなたのシステムのどこかからcreateemail ()関数が使用されていなくても、それはさらに壊れてしまいました.
/// Creates a personalized email to the customer recipient,
/// and attaches the report.
function createEmail(customer, report) {
email = new Email();
email.headers = createEmailHeaders(customer);
email.body = createEmailBody(customer);
email.attachments.add(report);
return email;
}
それはあなたが現在興味を持っている関連部分を見つけるのはとても簡単でしょう.ああいや、これは私の現実です!
あなたが上記の例を見て、あなた自身のCodeBaseの類似したファイルの無数について考えるとわかるならば、私はあなたに残念に思います.
私たちの多くは古いシステムで働いています.
それを修正する方法?
あなたが進む方法を知らないならば、親指の良い規則はあなたがそれを見つけたより少しより良い状態でコードを残すことを試みることです.
したがって、問題に直面したときに、可能な場合は、問題を修正するときに、それが簡単に次の時間を作るために、コードのほんの一部を破ることを試みる.
テストはこの種の仕事をするときに大いに役立つでしょう.
どこで止まりますか。
さて、それはあなた自身の決定と単純なものを見つけるものに依存します、しかし、親指の良い規則は機能が可能な仕事の最小量をするべきです、そして、それをよくしてください.
あなたのCodeBaseのバグを修正する必要がある次の人について考えて、それは正しい場所を見つけるために可能な限り簡単にしてください、それはあなたかもしれない!
ハッピーコーディング!!)
Reference
この問題について(抽象化は読みやすさを提供する), 我々は、より多くの情報をここで見つけました https://dev.to/munchyydl/abstractions-offers-readability-22o4テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol