プログラムを中心とした個人的なメモ用のブログです。 タイトルは迷走中。
内容の保証はできませんのであしからずご了承ください。

2016/09/30

GitLab を docker-compose で動かしてみる

event_note

2016/09/19

定義済みデリゲート

event_note

私は最初に猫でもわかるC#プログラミングという本でC#の勉強をしましたが、その中で唐突に Func やら Actionやらが登場し、ほとんど説明がなかったのでちんぷんかんぷんでした。
ネットで調べてやっとわかったのですが、ラムダ式を活用するためにも、ここらへんはしっかり説明しておいたほうがいいんじゃないかと思いました。
ラムダ式自体の説明は結構わかりやすかったんですけどね。
というわけで、ここに調べたことを自分なりにわかりやすくまとめておきます。

定義済みデリゲートとは?

デリゲート自体の理解は C における関数ポインタと同じだと考えればすぐに理解できました。
ただ、関数ポインタもそうですが、デリゲートの宣言というのはとても面倒です。
そのため、型パラメーターを使用し、汎用的に使用できるデリゲートが最初からいくつか定義されているようです。
これらのデリゲートのことを、定義済みデリゲートというようです。

どんなのがある?

いろいろあるようですが、よく使用するのは FuncAction だと思います。
簡単に言えば、

  • Func: 戻り値を持つメソッドのデリゲート
  • Action: 戻り値を持たないメソッドのデリゲート

となります。
どちらも引数の数に応じてオーバーロードされているようです。
詳細は参考URLを参照してください。

参考URL

2016/09/18

WPF + MVVM の勉強3:コマンドを実装する

event_note

2016/09/16

ナイーブソリューションとは何ぞや?

event_note

リーダブルコードを読むと書いてある以下の文章。

例えば、「ヒューリスティック」・「ブルートフォース」・「ナイーブソリューション」などがそうだ。コメントが長くてくどいと感じたら、こうした表現を使えないか確かめよう。

ヒューリスティックはコードコンプリートで何度も出てきましたし、ブルートフォースもよく聞きます。
しかし、ナイーブソリューションは初めて聞きました。
意味がわからなかったので検索してみると、日本語のページでは回答が見つかりませんでした。

仕方ないので、"naive solution" でググってみます。
英語苦手なんですけどね・・・。

いくつか見つけた中では、以下のページがそれっぽい回答でした。

「経験豊富なプログラマーが最初に思い付く解決手段」や「愚直な(安易な)解決手段」とでも言えばいいのでしょうか。
あまり自信がないので、原文を読まれたほうがよろしいかと思います。

2016/09/13

GitHub Gist のコードをブログへ埋め込むいろいろな方法

event_note

ブログなどにソースコードを載せる際、GitHub Gist を利用するととても便利です。
ここでは GitHub Gist のコードのいろいろな埋め込み方法をまとめてみます。

ファイル名を指定

ファイル名の最後に ?file=ファイル名 を追加すると、そのURLの中の特定のファイルだけを埋め込むことができます。
以前は1ファイルごとに New Gist から作成していたのですが、この方法を知ってからは出来る限りファイルをまとめて登録するようになりました。

しかし、デフォルトで出来るのはこれだけのようです。
その他の埋め込み方をするために gist-embed というのがあるようです。
これを使えば、例えば特定の行だけ埋め込んだり、ハイライトしたり、いろいろな埋め込み方ができます。

gist-embed の使い方

以下のページに使い方とサンプルがあります。

以下、個人的によく使うものを抜粋しておきます。

基本

<code data-gist-id="ID"></code>

ファイルの指定

data-gist-file="ファイル名"

フッターを消す

data-gist-hide-footer="true"

表示する行を指定

data-gist-line="2"
data-gist-line="2-4"
data-gist-line="1,3-4"

行のハイライト

data-gist-highlight-line="1,3,5"

2016/09/12

WPF + MVVM の勉強2:プロパティの変更通知を実装する

event_note

2016/09/11

WPF + MVVM の勉強1:データバインディング

event_note