技術memo

関数型ゴースト

CSharp

すのとらさんを"なごやか"した話 #nagoyakaeru

弊社に来た人を迎撃する定例(?)イベント、今回はsunotora 迎撃会ということで、いつの間にか発表者にされていたので発表しました。 (前回は体調を崩して参加出来なかったりもしましたね。) 発表資料という名のgist (なお資料は予告なく消される可能性があり…

「同じようなswitch文があちこちにあると改修が困難」って本当?(Expression Problem)

概要 プログラムの設計では、よく「同じようなswitch文があちこちにあると改修が困難になる」と言われています。そういった場合は、「switchの分岐を、オブジェクトの多態性を利用して無くすべきだ」とも言われます。 しかし、それは本当でしょうか。「すべ…

IComparer<T>と、リフレクションを使用しないSortableなBindingListの実装

リストのソートなんて今時LINQでOrderBy/ThenByが使えるから十分、とはいえそうも行かないのがUI周りですね。 「Windows Formsでdata objectを定義してそのListをDataGridViewにDataBindしたら、ヘッダをクリックしてもソートしてくれないんですけど!」 そ…

基礎プログラミング演習(2)

前回の演習(基礎プログラミング演習(1) - 技術memo)と同メンバーで、また似たようなプログラミング演習問題をやってみる会を開きました。 問題 コマンドラインで動くじゃんけんゲームを作りましょう 仕様 初めに「出す手を入力してください(g:グー、c:チョキ…

業務プログラマーのための不完全にしてあまり意義のないプログラミングガイド

概ね、「比較的冗長な構文を持ち、ガベージコレクションを行い、シングルディスパッチを使う、クラスベースで静的型付けのオブジェクト指向言語で、実装を単一継承しインタフェースを多重継承する」ようなプログラミング言語の話です。 なお、以下のコード例…

ログ出力ライブラリlog4netを独自クラスでラップする(その他使い方メモ)

目的 log4netのインターフェースが何だか使いにくい、独自の関数でログに書き込みたい でも自作クラスでラップすると%location等のlog4netで出力する「書き込み場所」情報が全部独自クラスになってしまう エラー処理等、同じようなことを何度も作りたくない …

LINQでバッファリングしてみる

結局何がやりたいのかはよくわからなかったのですが、LINQ楽しいよLINQ、というお話です。たぶん。 前置き プログラムから動的に生成したSQLをDBに問い合わせすることって、よくあると思うんです。 例えばこういうSQLについて。 select * from product where…