スキップしてメイン コンテンツに移動

”読んでるだけじゃ上手くなりませんから”と読みました。

著者 : Ian Griffiths
オライリージャパン
発売日 : 2013-11-29
読んで、書いて、書いて、読んで。
書いて困って、読んでときどき役に立つ。

ManagementとCoding、読書とCoding。
どっちもバランスが重要な気がする。

(以下抜粋。○:完全抜粋、●:簡略抜粋)
○readonlyフィールドは初期化されると二度と変更できませんが、
 これに対しconstフィールドは、定数として同じ値を定義するものです。
 readonlyフィールドの方が、はるかに柔軟性があり、
 どんな型であっても構いませんし値は実行時に計算されても構いません。(P.83)

○型パラメータとは、
 コンパイル時に別の型で置き換えることを可能とするものでプレースホルダーと呼ばれています。
 これにより1つの型を書くだけで、複数のバージョンの型を生成することが可能となります。
 これをジェネリック型と言います。(P.115)

●baseArg引数がDerivedもしくはDerivedから派生した型のインスタンスを参照していないときには変換が失敗し、
 InvalidCastExceptionをスローします。
 (中略)
 as演算子を使用して、例外発生のリスクなしに型変換を試みることができます。(P.165)

●配列初期化(P.132)
 ArrayInitializationプログラム参照。
 DeducingInitより、MoreSimpleInitのほうが安心してしまうところが、
 型推論によるプログラミングに慣れていない証拠かと思う。

○到達可能性がどのように決定されるかに関する重要な結論の一つは、
 GCは循環参照にもきちんと対応できることです。(P.193)

○構造体に対して最初にDisposeを呼び出しているとみなされています。
 これは、CallDisposeの個々の呼び出しが新しくボックスを生成するからです。
 実際には、変数dvを受け渡しているのではなく、
 それぞれの呼び出しの度に新しいボックスを受け渡しています。(P.221)

○デリゲート型をILDASMのようなリバースエンジニアリングツールを用いて見ると、
 それが.NETFrameworkのクラスライブラリにより提供される型なのか、
 自分で定義した型かわかります。
 自分で定義した型はMulticastDelegateと呼ばれる基底型から派生します。(P.256)

○Rxチームがこの名前を使うもう一つの理由は、
 コンピューティング全般に対して、
 とくにLINQやRxプロジェクトに対して多大な影響を与えたJohn McCarthyに対して敬意を払うためです(P.367)

コメント

このブログの人気の投稿

Excelのマクロの差分もGitHubみたいに見たいよね

なんやかんやでまだ残っているExcelマクロ。修正したはいいが、差分が・・・。 Google先生に聞いてみるとWinMergeでできるらしいが、なぜかうまくいかない。 そう、WinMergeもExcelもバージョンが新しくなっていたのでうまくいかなかったみたい。 前提は Excel 2013 WinMerge 2.14.0-jp63 over です。 以下差分を確認するための手順です。 WinMerge をインストール ここから WinMerge の2.14.0-jp-63 より新しいバージョンをダウンロード 画面に従ってぽちぽち押していけばいい。 ただし・・・このときに必ずカスタムインストールで プラグイン にチェックを入れること!!(このプラグインを利用します) WinMerge のプラグインの設定変更(やらなくてもOK) WinMerge を起動 プラグイン → プラグインの設定 → CompareMSExcelFiles.sct をダブルクリック ”ワークブックの情報を複数ファイルに展開する” にチェックを入れる Excel の設定変更 ファイル → オプション → セキュリティセンター → セキュリティ センターの設定 ボタンを押下 マクロの設定 を選択 ”VBA プロジェクト オブジェクト モデルへのアクセスを信頼する” にチェックを入れる WinMerge で差分を表示する WinMerge を起動して、比較したいファイルを二つ選択する プラグイン → 展開プラグインの選択 → ファイル展開プラグイ に CompareMSExcelFiles.sct を選択して OK ボタンを押下する 各シートの差分と合わせて、*.bas の形式でマクロの差分が表示される(はず)

間違ったフォーマットのプログラムじゃないんだけど

以下エラーに対し、 ファイルまたはアセンブリ 'SSPI'、またはその依存関係の 1 つが読み込めませんでした。間違ったフォーマットのプログラムを読み込もうとしました。 以下環境で対応した話です。 VisualStudio2012(C# ASP.NET MVC4.0) IIS7.5 とあるところのdllを使用中 ASP.NETをIISに発行しようとしたら、上記エラーが発生。 他のプロジェクトでは問題なく発行できているのに、 何かと思ってみたら、google先生に尋ねてみると、 DLLファイルの対象プラットフォーム(32bit/64bit)が異なる とのことでした。 このサイトでは対処方法として、 運用環境のプラットフォームに合わせ、適切なランタイムファイルを配布してください。 と記載されていますが、今回の私のようにとあるところのdllを使用している場合などは、 そうもいかない場合もあるでしょう。 そこでdllを変更できない場合には、 IISのアプリケーションプールの設定で、 32bitアプリケーションを有効化してあげることで対応できます。 以下手順です。 コントロールパネル → 管理ツール → インターネット インフォメーション サービス (IIS) マネージャー を起動します。 変更したいアプリケーションを右クリックして、詳細設定を選択します。 32ビットアプリケーションの有効化をTrueに変更します。 もう一度発行します。 ここまでです。 簡単だけど知らないとなかなかはまるかなって気がしますね。 独特のくせなのかもしれません。 そして、次なるエラー発生中です・・・。

SQLServer2008でのトランザクションログの切り捨て方

SQL Server 2008でとあるDBのトランザクションログが一杯に。 BACKUP LOG DatabaseName WITH TRUNCATE_ONLY を使ってトランケートしようとしたら、 'TRUNCATE_ONLY' はBACKUP オプションとして認識されません。 との冷たい返事。2008で廃止されていたのを忘れていた。 SQL Server 2008 で廃止されたデータベース エンジンの機能@MSDN そこでヌルデバイスを使用してバックアップを取得する方法で、切り捨てを試みる。 BACKUP LOG DatabaseName TO DISK = ‘nul’ GO するとまた冷たい返事。 現在、データベースのバックアップが存在しないので、BACKUP LOG を実行できません。 2008では過去にフルバックアップを取得しておかないと、ランザクションのバックアップが取得できないことを忘れてた。てなわけで、まずはデータベースのフルバックアップを取得して、 BACKUP DATABASE DatabaseName TO DISK = ‘nul’ GO もう一度トランザクションのバックアップをして、やっと切り捨てれた。最初から単純にしておけばよかった・・・。