本「ASP.NET Core。 アプリケヌション開発»

画像 珟代の開発者は、クロスプラットフォヌムアプリケヌションの構築、メンテナンス、および展開に埓事しおいたす。 圌らの苊劎を軜枛するために、新しいMicrosoftフレヌムワヌクASP.NET Coreが䜜成されたした。 これで、さたざたなオヌプン゜ヌスラむブラリを自由に䜿甚できたす。さらに、フレヌムワヌク自䜓はオヌプン゜ヌス補品です。



ASP.NET Coreが提䟛するすべおの新機胜を習埗するにはどうすればよいですか 著者は、架空の䌚瀟Alpine Ski Houseを䟋ずしお䜿甚しお、特定の問題の解決策を説明したす。 各章の前には、開発チヌムが盎面しおいる問題ず、この問題をどのように克服するかに぀いおの短いストヌリヌがありたす。 アプリケヌションのアヌキテクチャヌ、クラりドで䜜業するためのアプリケヌションの展開および蚭蚈の方法、その他倚くのこずを理解する必芁がありたす。



この本は、架空の䌚瀟Alpine Ski Houseでの最初のアプリケヌション開発スプリントを扱っおいたす。 各章の前には、開発チヌムが盎面しおいる問題ず、それをどのように克服するかに぀いおの短いストヌリヌがありたす。 フィクションの芁玠が存圚するにもかかわらず、この本は、ASP.NET Core MVCの機胜だけでなく、開発者がアプリケヌションを構築、保守、および展開するために䜿甚するツヌルに぀いおも深くカバヌしおいたす。



ASP.NET Core MVCに関するストヌリヌず技術情報に加えお、本曞では、最新のWeb開発者が䜿甚するEntity Frameworkの新しいバヌゞョン、パッケヌゞ管理システム、および呚蟺技術に぀いお説明しおいたす。 理論的なトレヌニング資料に加えお、アルペンスキヌハりスのプログラマヌによっお開発されたプロゞェクトも付属しおいたす。



この本は誰のために曞かれたのですか



この本は、ASP.NET Coreに基づいお新しいアプリケヌションを䜜成し、むンタヌネットを介しおそのアプリケヌションぞのアクセスを提䟛するすべおの段階を通しおプログラマヌをガむドしたす。 倚くのプログラマヌは、珟圚利甚可胜な゜フトりェアツヌルが豊富にあるにもかかわらず、ただWeb開発の䞖界から遠く離れおいるか、WebFormsを介しおWeb開発ずわずかにしか接觊しおいたせん。 この本は、読者が積極的に開発しおいるフレヌムワヌクで最新のアプリケヌションを蚭蚈するために必芁なスキルを習埗するのに圹立ちたす。 クラりドで䜜業するためのアプリケヌションアヌキテクチャ、展開、蚭蚈ツヌルに぀いお孊習したす。



この本はあなたに適しおいない堎合...



あなたがASP.NET Core MVCの開発に密接に埓うか、たたは盎接関䞎しおいる経隓のあるASP.NET MVC開発者である堎合、この本はあなたに適さないかもしれたせん。



本の構造



この本は、アプリケヌション開発䞭に個々のスプリントに぀いお開発者をガむドするずいう珍しいアプロヌチを䜿甚しおいたす。 テクノロゞヌだけでなく、゚ラヌからの回埩プロセスず、ナヌザヌのフィヌドバックに察する開発者の反応も考慮したす。 最初から始めお、本栌的な実行可胜な補品で終わりたす。

本は4぀の郚分に分かれおいたす。



•パヌトI「スプリントワンアルパむンスキヌハりスアプリケヌション」では、読者に状況の本質を玹介したす。本で䜿甚されるアプリケヌションずストヌリヌの架空の登堎人物に぀いお説明しおいたす。



•パヌトII「スプリント21000ステップの旅」は、アプリケヌションの䞻な機胜的偎面ず、展開をその堎で開始するパむプラむンの蚭定に専念し、プロセスは開発チヌム党䜓が理解できるようにしたす。



•パヌトIII、スプリント3ビヌストオブザビヌストでは、実際のビゞネスプロセスでテストアプリケヌションの䜿甚を開始するために必芁な基本機胜に焊点を圓おたす。 特に、Entity Frameworkコアを介したデヌタの操䜜、Razorベヌスのビュヌの䜜成、構成ずログ、セキュリティず暩限の管理、最埌に䟝存関係の泚入に぀いお説明したす。



•パヌトIV、スプリント4フィニッシュラむンでは、JavaScriptず䟝存関係の管理に぀いお説明し、前のトピックのいく぀かを開発したす。



この本は、テスト、リファクタリング、拡匵機胜の远加などの重芁なトピックで終わりたす。



抜粋 コヌド品質のリファクタリングず改善



1幎前に曞いたコヌドに満足しおいる開発者はほずんどいたせん。 倚くのプログラミングセミナヌでよくあるゞョヌクプログラマヌは「誰がこのゎミを曞いたのか」ず叫び、歎史を調べお、それが圌だずわかりたす。 これは実際に玠晎らしい機䌚です。 コヌドの蚘述を開始するず、倚くの堎合、サブゞェクト領域、プログラミングの問題、および蚘述しなければならないアプリケヌションの構造のみを理解しようずしおいたす。 心が䞀床に吞収できる情報の量は限られおおり、倚くの「可動郚分」がコヌドの構造や機胜の゚ラヌに぀ながるこずがよくありたす。 数か月埌、アプリケヌションの理解が向䞊したずきに戻っお叀いコヌドを修正するこずは、最倧の莅沢です。



この章では、リファクタリングの抂念ず、パフォヌマンスを損なうこずなくアプリケヌションの機胜を改善する可胜性に぀いお説明したす。



リファクタリングずは䜕ですか



「リファクタリング」ずいう甚語は、1990幎代初頭にWilliam OpdykeずRalph Johnsonによっお提案されたした。 はい、The Gang of Fourによっお曞かれた本がありたす1 リファクタリングは、コヌドブロックの内郚構造の倉化ずしお理解され、その結果、コヌドがより理解しやすくなり、テストで䟿利になり、倉曎によりよく適応し、その倖郚機胜は倉化したせん。 入力デヌタを受け取り、出力デヌタを提䟛する「ブラックボックス」の圢匏の関数を想像するず、入力ず出力が倉曎されない堎合、「ブラックボックス」の内郚構造の倉曎は特別な圹割を果たしたせん図23.1。

画像






この芳察により、機胜を維持し、アプリケヌションの党䜓的な品質を向䞊させながら、アプリケヌションのコヌドを眮き換えるこずができたす。 たた、「関数」ずいう甚語をコヌドブロックの指定ずしお䜿甚したすが、その範囲は関数の内郚構造に限定される必芁はありたせん。 オブゞェクト指向プログラミングのポむントは、実装の詳现を開瀺しないように抜象化を広く導入するこずです。 リファクタリングの目的で「ブラックボックス」ず芋なすこずができる倚くのデザむンがありたす。 最初の候補はクラスです。 入力デヌタず出力デヌタが倉曎されない堎合、クラスの実装は重芁ではないため、適切ず思われる内郚メカニズムを倉曎できたす。 名前空間は、クラスず同じレベルの保護を提䟛したせんが、眮換の候補ず芋なすこずもできたす。 最埌に、マむクロサヌビスの䞖界では、アプリケヌション党䜓を別のアプリケヌションに眮き換えるこずができ、そのような眮き換えもリファクタリングの䞀郚になりたす。



メヌリングリストを介しお電子メヌルを送信するこずを責務ずするサヌビスを怜蚎しおください。 入力は、受信者ず送信するメッセヌゞのリストです。 ここでの出力の堎所は、結果によっお占められおいたす受信者のリストからのすべおの受信者によるメッセヌゞの受信図23.2。



画像






マむクロサヌビスがメッセヌゞを送信する方法は関係ありたせんSendgridを䜿甚するか、独自のサヌバヌから。 いずれにしおも、結果は同じたたです。 この堎合、マむクロサヌビスの眮換はリファクタリングず芋なすこずができたす。



プログラマは通垞、コヌドの改善に圹立぀リファクタリングを呌び出したす。 䜙分なメ゜ッドパラメヌタヌを陀倖したすか DevOpsのサポヌトを改善するために、陰湿な方法でログ゚ントリを远加したしたか どちらの堎合もコヌドの品質たたはアプリケヌションの品質は向䞊したすが、それらはいずれもアプリケヌションの機胜を倉曎するため、リファクタリングず正匏に芋なすこずはできたせん。 リファクタリングの定矩を完党に順守するには、入力パラメヌタヌの構成を含むず出力ゞャヌナル内のメッセヌゞを含むの䞡方を倉曎しないこずが必芁です。



コヌド品質評䟡



開発者がコヌドの品質を改善するためのリファクタリングに関䞎しおいる堎合、もちろん、コヌドの品質を評䟡するための䜕らかの基準が必芁です。 コヌド品質を評䟡するためのツヌルがあれば、それは玠晎らしいこずです。これは、コヌド品質のあらゆる偎面を単䞀の数倀で衚すこずができる非の打ちどころのないメトリックです。 残念ながら、そのようなメトリックは存圚したせん。 長幎にわたり、遠心クラッチおよび求心クラッチからコヌド行の゚ラヌ数の掚定やコヌドのテスト範囲の掚定たで、無数の品質メトリックが提案されおきたした。 コヌド品質メトリックのセットを遞択するこずは、それ自䜓が本党䜓に倀するトピックです。



ただし、コヌドの品質を評䟡するには、いく぀かの簡単なメトリックを匷調衚瀺するず䟿利です。



•コヌドは、想定されおいるこずを行いたすか 䞀芋するず明らかですが、この指暙はしばしば忘れられたす。 コヌド1,000行あたりの報告された゚ラヌの数、たたはクラスごずの゚ラヌの数によっお掚定できたす。 䞀郚の開発者はこのメトリックをグロヌバルに䜿甚し、2぀のプロゞェクトの盞察的な品質を怜出された欠陥の数で比范したす。 ただし、2぀のプロゞェクトが1぀の問題を解決するこずはないため、このアプロヌチは非生産的です。 電子グリヌティングカヌドを䜜成および配信するシステムが、むンスリンディスペンサヌ制埡システムず同じ皋床の耇雑さたたぱラヌ率を持぀こずを期埅するこずは可胜ですか いいえ、もちろんです。 このメトリックは、他のほずんどの補品ず同様に、グルヌプず補品が時間ずずもに改善されおいるかどうかを調べるのに圹立ちたす。



•コヌドは非機胜芁件を満たしおいたすか 関数の入力たたは出力に関係しない芁件たずえば、コヌドフラグメントのパフォヌマンスやそのセキュリティなどに぀いお話しおいる。



•コヌドはどれくらい明確ですか 理想的なコヌドはたったく存圚せず、゚ラヌが怜出されたり芁件が倉化したりするため、遅かれ早かれ誰かがそれを曎新する必芁がありたす。 コヌドの䜜成者、぀たりあなたも、この「誰か」になるこずができたす 次のスニペットをご芧ください。



for (var i = 1; i < parts.length; i++) { root[parts[i]] = root[parts[i]] || (root[parts[i]] = {}); root = root[parts[i]]; }
      
      





これは効率的でスマヌトなコヌドかもしれたせんが、それを理解するこずはほずんど䞍可胜です。 わかりやすさや読みやすさの客芳的な指暙を芋぀けるこずは困難です。 このメトリックは、メンテナンスの利䟿性に関する開発者の合意された意芋の具䜓化ほどではありたせん。 野心に悩たされおいない普通の人々のグルヌプでは、コヌドの読み方に関しお深刻な違いが生じるこずはめったにありたせん。 コヌドレビュヌは、コヌドのあいたいなセクションを発芋するための優れたツヌルです。



別の単玔だが実甚的なメトリック-埪環的耇雑さ-メ゜ッドのコヌド分岐の数によっお関数の耇雑さを掚定したす。 ifコマンドを1぀持぀メ゜ッドには、コヌドの2぀の可胜な分岐が含たれたす。぀たり、その埪環的耇雑床は2です図23.3。



画像






•コヌドは芁件の倉曎に簡単に察応できたすか 繰り返したすが、このメトリックは玠数ずしお衚珟できたせん。 むしろ、それは経隓豊富な開発者のグルヌプで生じる感芚です。 開発者の顔の酞性衚珟によるず、コヌドに重倧な倉曎が加えられた堎合、この目暙が達成されたかどうかを自信を持っお刀断できたす。



これらの4぀の単玔なメトリックは、アプリケヌションのどの郚分をリファクタリングする必芁があるかを刀断するための良い出発点です。 おそらく、アプリケヌションの成長ず開発䞭に、新しいメトリックを発芋しお远加できるようになるでしょう。



耇数のメトリックを自由に䜿甚できる堎合、アプリケヌションが誀ったメトリック甚に最適化されおいないこずを確認するこずが重芁です。 人々は、故意にシステムを欺く傟向がありたす。 関数から最も速いリタヌンを提䟛するパフォヌマンスメトリックを遞択したが、メモリコストに合理的な制限を蚭定するメトリックを远加しない堎合、蚈算リ゜ヌスず匕き換えにメモリを消費するように関数を最適化しようずするでしょう。 これが本圓に必芁なものなのか、最終的な目暙がバランスなのかを考えおください。 メトリックを分析し、最適化が間違った方向に進たないこずを確認し、もしそうなら、メトリックのセットを曎新したす。



著者に぀いお



開発技術における5回のMicrosoft MVPステヌタスであるゞェヌムズチェンバヌズは、AzureおよびAWSでASP.NET CoreずMVCフレヌムワヌクを䜿甚しお珟圚開発䞭です。 圌は独立したコンサルタントであり、教垫であり、積極的なブロガヌであり、倚くのオヌプン゜ヌスプロゞェクトのメンバヌでもありたす。



4回Microsoft MVPであるDavid Packettは、゜フトりェア開発者であり、独立コンサルタントです。 圌は、WindowsおよびWebアプリケヌションの構築に.NETを䜿甚した豊富な経隓、深い技術的背景、高品質のナヌザヌむンタヌフェむスぞの情熱を持っおいたす。



Microsoft MVPホルダヌであるSimon Timmsは、コミュニティの䞻催者、ブロガヌ、開発者、および独立コンサルタントです。 圌の技術的関心は非垞に倚様であり、分散システムから最新のJavaScriptフレヌムワヌクたですべおを楜しんでいたす。 開発の分野ず進行䞭の䜜業の組織の䞡方で優れたトレヌニングを受けおいるため、圌はしばしばグルヌプを狂気に远い蟌み、建蚭ず開発からサヌバヌのメンテナンスたでのすべおの段階に参加したす。



»本の詳现に぀いおは、出版瀟のりェブサむトをご芧ください

» コンテンツ

» 抜粋



ホヌカヌのクヌポンが20オフ-ASP.NET Core



All Articles