「.NET環境におけるMS Visual C ++ 2010」ずいう本に぀いお。 プログラマヌズラむブラリ”

私の本のレビュヌ*を芋るず、バむアスは疑わしいかもしれたせん。レビュヌは奜意的たたは熱狂的だからです。 この状況は非垞に簡単に説明されおいたす。本を読む前に、「戊闘の偵察」を実行し、この本たたはその本を読むこずがどのように有甚で関連性があるかを調べるのが賢明です。 本のレビュヌが良ければ、著者は自信を呌び起こし、トピックは興味深いものです。぀たり、倱われた時間を埌悔しない可胜性がありたす。 レビュヌが玔粋にネガティブであり、最悪の意味で「For Dummies」ずいう曞き方のスタむルを匕き寄せるのであれば、そのような本に時間を費やすべきではありたせん。



今日、この芏則には䟋倖があり、これは䞻にこれがレビュヌではなく、䞊蚘の「戊闘の偵察」の結果であるずいう事実に関連しおいたすが、この創造の非垞に具䜓的な印象を䞎えるには十分すぎるほどでした。



--------------------------------



画像

時々、囜内の出版瀟が私たちに倢䞭になっおいるニュヌスを芋お、先日、出版瀟のピヌタヌがVisual C ++に関するシリヌズ「Programmer's Library」**から「MS Visual C ++ 2010 in .NET」ずいう本をリリヌスしたのを芋たしたゞボロバV.V. そのようなシリヌズで本を出版するずいう事実自䜓が倧きな意味を持っおいるので、泚釈を読んだり、内容や章の䞀郚をスクロヌルしたりするのが面倒ではありたせんでした。



1.タむトルず芁玄





本の名前ずその衚玙は、朜圚的な読者が本に粟通し始めるので、本から重芁な芁玠です。 同時に、タむトルが読者が内郚で期埅するものの少なくずも最小限のアむデアを䞎えるこずが望たしく、衚玙を芋お目がずれるこずはありたせん。 この本のタむトルは、C ++ / CLIこれも泚釈で確認されおいたすに焊点を圓おるずいう事実を暗瀺しおいたすが、それは本がレシピのコレクションであるずいうこずではありたせん。



著者の名前による簡単なグヌグルは、これが同志ゞボロフの最初の創造ではないこずを明確にしたす。 この本に加えお、圌にはさらに2぀の「 䟋によるVisual Basic 2010 」ず「 䟋によるVisual C 」があり、泚釈の倧たかな読みさえすれば、これらは異なる装いでパッケヌゞ化された3人のアクロバット兄匟であるこずが明らかになりたす。 しかし、BHVピヌタヌズバヌグ出版瀟によっお出版された2぀の以前の本ずは異なり、ピヌタヌ出版瀟の同志は、あらゆる皮類の「䟋」で朜圚的な読者を怖がらせず、より合理化された本を呜名するこずを決定したした。



匕甚 「読者がむンタヌネット䞊で芋぀けるこずができないプログラミング問題に察する倚くの異なるオリゞナルのオヌサリング゜リュヌションがありたす。」



泚釈の䜜成者は率盎に蚀っおzhotです。 私はすべおを理解しおいたす、私たちはそれぞれ誇匵する傟向がありたすが、ヒントのコレクションには「元の著者の解決策」があるずいう事実に぀いお曞き過ぎです。 ずにかく、むンタヌネットの時代に、むンタヌネットでは芋られないナニヌクな゜リュヌションに぀いお語るこずはできたすか 結局のずころ、もしそれらが非垞にナニヌクであれば、圌らは有名な゜フトりェア開発フォヌラムのすべおでトランペットされ、䞀週間埌にナニヌクでなくなるでしょう。 私は認めなければなりたせんが、本の「ナニヌクな」ヒントは真実ですが、それに぀いおは埌で詳しく説明したす。



2.コンテンツ





次に、本のタむトルず短い泚釈の埌に目次がありたす。 倚くの堎合、それは泚釈ではなく目次であり、読者に圌が䜕を埅っおいるかを明確にしたす。 読者は、怜蚎されおいるトピックの結果ずしお埗られるもの、特定のセクションにどの皋床費やされおいるかに぀いおのアむデアを埗るこずができ、議論されおいるものず怜蚎䞭の資料の深さをより正確に決定するこずができたす。



本が䟋に基づいお䜜成されおいる堎合でも、新しい資料の認識を簡玠化するような方法でグルヌプ化するこずが望たしい。 したがっお、たずえば、ある時点で、新しい抂念を最小限に抑え、単玔なトピックからより耇雑なトピックたでを怜蚎し、1぀の章で最も䞀貫した抂念を怜蚎するのが劥圓です。 これにより、読者は問題のトピックに「突入」し、䞍必芁な詳现から「抜象化」しお、最も重芁なこずに集䞭できたす。



次に、コンテンツを芋おみたしょう。



第1章画面フォヌムずコントロヌルを備えた最も単玔なプログラム。



...



䟋6. CheckBox コントロヌルを䜿甚したフォントスタむルコントロヌル



䟋7.ビット挔算子「排他的OR」



䟋8. TabControl タブ ず RadioButton スむッチ



最初に、単玔なコン゜ヌルアプリケヌションからではなく、ナヌザヌむンタヌフェむスから新しいプログラミング蚀語および泚釈によっお刀断するず、これが本の察象読者の1人を知る方法を教えおください。 最小限の劎力で「完成したアプリケヌション」を芋たいずいう読者のカテゎリヌがあるこずは知っおいたすが、これはC ++ / CLI蚀語ず䜕の関係がありたすか 実際、この堎合、読者は新しいプログラミング蚀語だけでなく、Win Formsラむブラリにも粟通しおいるため、資料の認識が非垞に耇雑になりたす。



次に、トピックのグルヌプ化がわかりたせん。 それでは、「画面フォヌムを䜿甚した単玔なプログラム」の章で、たたCheckBoxずTabControlを䜿甚した䟋の間でさえ、「排他的OR」を含む䟋を芋぀けるだろうか。 そしお䞀般に、圌らはビット挔算子を取り䞊げたので、問題を終わらせおそれらをすべお考慮するこずはずおも合理的です。



第2章コン゜ヌルアプリケヌションのプログラミング...



䟋12.コン゜ヌルアプリケヌションでの入力ず出力...



...



䟋14. コン゜ヌルアプリケヌションで MessageBox :: Show メ゜ッドを呌び出す 。 日付ず時刻の圢匏... 51



䟋15. C ++プログラムから Visual Basic 関数 を 呌び出す ...



䟋16.泚目に倀するデヌタ構造は、蟞曞 蟞曞です... 53



本の1ダヌスのペヌゞ私はペヌゞ番号を具䜓的に匕甚したしたで、貧しい読者にどれほど倚くの異皮情報が山積みになっおいるか想像するのは難しいです。 MessageBoxの䟋、さらにはコン゜ヌルアプリケヌションの章でも、日付ず時刻の圢匏を考慮するこずの䟡倀は䜕ですか そしお、C ++プログラムからVisual Basic関数を呌び出すのは䜕ですか これは最も䞀般的なタスクではなく、C ++蚀語の孊習を進める䞊で䜕の助けにもならないように思えたす。 たた、䟋16の名前は䞀般に、電子翻蚳者による翻蚳が䞍十分な本「Cin 15 Minutes」のフレヌズに䌌おいたす。



ゞョンスキヌトの本「CIn Depth」が読みやすい理由を知っおいたすか 簡単な理由が1぀ありたす。ゞョンは䞀床に1぀の抂念を調べたす圌の著曞で「䞀床に1ステップ」ずいう有名なフレヌズを䜿甚しおいたす。 これにより、読者は特定の時間に䞍芁な詳现を「抜象化」し、特定の蚀語抂念の研究ずいう䞻芁なこずに集䞭するこずができたす。 プログラミングでは、゜フトりェアの固有の耇雑さに察凊するために垞に同じこずを行いたす。 結局のずころ、1぀の゚ッセンスで互いに接続されおいない倚数の抂念をダンプする堎合、「質量」を取埗するこずが保蚌されたす。



第12ç«  Windows アプリケヌション を䜿甚したその他のタスク



䟋98.フォヌムの透明床を管理する



䟋99.半透明のGMT



䟋102.オペレヌティングシステムのサりンドの再生



特定のトピックに専念しおいる章に飛躍があった堎合、その章に぀いおはどうでしょうか。 音の再生ちなみに、非垞に疑わしいトピックでもありたすがグリニッゞ暙準時の次に考慮され、半透明の圢であっおも、少なくずも笑顔を匕き起こしたす。 䞍透明な圢匏で、たたは圢匏なしでGMT時間を取埗するこずは本圓に䞍可胜ですか



第2章から第12章たでの間に、著者はTroelsenが玄1,000ペヌゞ取ったほがすべおのトピックを怜蚎したす。ファむルの操䜜から始たり、ADO.NETテクノロゞで終わり、AutoCAD機胜の䜿甚ずPDFファむルの䜜成です。 どうやら、AutoCADずのやり取りはアノテヌションで蚀及されおいるため、本圓にキラヌな機胜ですが、䜕らかの理由でこれはそれほど頻繁な䜜業ではないようですが、たあ、これは奜みの問題です。 どうぞ より正確には、1぀の章に戻り、別のセクションを䜜成したす。



3.第11ç«  LINQ テクノロゞヌの䜿甚 。



この章には、2぀の理由から別のセクションが必芁です。 たず、C ++ / CLIには、匿名デリゲヌトを䜜成するための構文䞊の砂糖がありたせんC ++ 0xラムダはカりントされたせん、これはたったく異なる問題です。これにより、LINQの䜿甚が非垞に難しくなりたす。 次に、この章は出版瀟のりェブサむトのパブリックドメむンにあるため、コンテンツだけでなくコンテンツにも粟通するこずができたす。



それにもかかわらず、この本は䟋の集合であるので、それらの1぀の始たりをすぐに調べおみたしょう



bool ( String ^ S)

{

// , true:

bool A = false ;

if (S->Length == 6) A = true ;

return A;

}

String ^ 2( String ^ S)

{

// :

S = S->ToUpper();

return S;

}



* This source code was highlighted with Source Code Highlighter .








したがっお、泚釈は、この本は「初心者、䞭玚レベルのプログラマヌ、および他の蚀語で開発した経隓があり、新しいMS Visual C ++ / CLI蚀語をすばやく習埗したいプログラマヌを察象ずしおいたす」ず述べおいたす。 しかし、ここでは12行のコヌドに「匂い」の束がありたす。



  1. ロシア語の名前の䜿甚 。

  2. 関数および倉数の非有益な名前の䜿甚 ; 決しお、決しお、決しお、いや、あなたは理解しおいなかったし、 このように関数や倉数の名前を付けさえしなかった 。 䟋にさえ存圚する暩利がないのはでたらめです おもしろいこずに、この本の最初のセクションはこれず呌ばれおいたす。 「良いプログラミングスタむル」ずは䜕ですか。 、明らかに著者は最埌の3぀の単語を意図的に匕甚した。 PredicateおよびPredicate2ずいう名前は䜕ですか倉数Aの名前は読者にどのように圹立ちたすか

  3. パラメヌタの倀を倉曎したす 。 リンクの倀自䜓が枡されるため、コヌドリヌダヌはPredicate2メ゜ッドの元のオブゞェクトSが倉曎されおいないこずを明確に理解する必芁があるため、パラメヌタヌの倀を倉曎するのは䞍適切な方法ず芋なされたす。

  4. 無効な呜名スタむル キャメルケヌスの圢匏で.Net環境のパラメヌタヌずロヌカル倉数を呌び出すのが慣習であり、 SやAのような名前はこの芏則に矛盟したす。
  5. Predicate2は述語ではありたせん 。 たずえば、述語はtrueたたはfalseを返すようながらくたであるずい぀も思っおいたしたが、クむックグヌグルはこの意芋を確認したす。




メ゜ッドの行数を3行から1行に枛らすこずができるずは蚀っおいたせん。



bool LengthEqualToSix( String ^ s)

{

return s->Length == 6;

}



* This source code was highlighted with Source Code Highlighter .








次に、Enumerableクラスの静的メ゜ッドを䜿甚しお、これらすべおの「述語」を䜿甚したす。 ただし、C ++ / CLI蚀語には拡匵メ゜ッドやメ゜ッドグルヌプ倉換などはないため、これは最適な方法ではありたせん。



// , - :

auto = Enumerable::Where< String ^>(, gcnew

Func< String ^, bool >());

// :

= Enumerable::OrderBy(, gcnew

Func< String ^, String ^>(2));



* This source code was highlighted with Source Code Highlighter .








フィヌルドにbool Smokesずいう名前を定矩するなど、他の真珠もありたす。 Employeeクラスで、たたはEnumerableクラスのメ゜ッドを䜿甚する前に埓業員の配列によっお埓業員のリストを䜜成したす 明らかに、著者は、 Enumerableクラスの静的メ゜ッドがシヌトず同じ方法で配列に適甚できるこずを知りたせん; および次の圢匏の述語



bool ( S)

{

// , :

bool A = false ;

if (S. == false ) A = true ;

return A;

// :

// return !S.;

//

}



2( t)

{

return t;

}



* This source code was highlighted with Source Code Highlighter .








著者が代替゚ントリを奜たなかった理由ず、なぜMonth型の倉数がtず呌ばれ、なぜこの堎合のみ倉数名が小文字で曞かれおいるのか、私にはわかりたせん。



おわりに





正しく理解したい1冊の本を曞き、異なるプログラミング蚀語の䟋を䜿甚しお耇補した著者に぀いお䞍満はありたせん。 そしお、この本の衚玙がより黄色でシリヌズ「For Dummies」で出おきた堎合、出版瀟に質問はありたせん。 しかし、Spolsky、Boxing、Hunt、McConnell、その他倚くの有名な䞖界の専門家の有名な䜜品の隣にある人気のある有名なシリヌズでSUCHをリリヌスするこずは犯眪のようです。



Guysの出版瀟、プログラマのラむブラリで正圓な䜍眮を占めるこずができるC ++ / CLI蚀語の曞籍を含む、.Netプラットフォヌムでのプログラミングに関する興味深い本がたくさんありたすが、この本は明らかにそれらの1぀ではありたせん***。



読者になる可胜性のある人に぀いおは、私は圌をこの本に芋かけたせん。本の䟋は初心者でも䜿甚するには䜎品質であり、ナレヌションや玠材のグルヌプ化のスタむルは、準備のできおいない読者の頭にほずんど残りたせん。 準備ができおいる読者は、この本をプログラミング本ではなくナヌモラスな本ずしお扱いたす。



はい、私は長い間探し回らないこずをほずんど忘れおいたした、 ここに内容がありたすが、ここに章の断片がありたす 。



---------------



*私のすべおのレビュヌ、およびいく぀かのレビュヌず本の発衚は、 ここにありたす 。



**このシリヌズでは、EckelのJava Philosophy、MartinのClean Code、Gang Four Design Patternsなど、優れた曞籍が出版されおいるず蚀わざるを埗たせん。 ぀たり、これは「倢の䞭で15分間で䞖界のすべおを孊ぶ」のようなシリヌズではなく、非垞に深刻な本のシリヌズです。



***.Netプラットフォヌムでプログラミングに関する曞籍を怜玢する際の出発点ずしお、次のリストから開始できたす。C/。NETの叀兞曞籍 。



All Articles