nDiki : C#

2006年6月27日 (火)

「○○についてのお薦めの本、ありますか?」

たまに

「○○についてのお薦めの本、ありますか?」

と問われることがある。 ○○には C++ とか、C# とか Perl とかその他もろもろのコンピュータ関連キーワードが入る。

正直この質問は辛い。

コンピュータ関連の書籍は、今や大量に出版されているし陳腐化も激しいので相当マメにチェックしていないと人に紹介できるもんじゃない。

もちろん古典・定番もあることはあるが、こういう質問の時はたいがいこれには当てはまらない。 言語や開発環境なんかの本の質問はあるけれど、計算機数学とかアルゴリズムとかそういうのを求めてくる人などいないのである (大体そういうのに興味がある人は自分で探している)。

たまたま自分が詳してかつ最近リサーチをかけた分野については良書と呼べるものを知っている場合があるが、良いと思ったら自分でも買っているから既にその人に貸していたりする。

安直にコンピュータ書籍を紹介して欲しいという人は、よくわからないというのを理由に自分で探さず、しかもハズレを引いて金を払うことを非常に嫌っている。

一応質問されると Amazon.co.jp とかのぞいてみるのだが、その人のスキル・その人が求めているものまで理解していないので、結局徒労に終わるのである。 だいたいその程度なら、本人ができるはずなのだが。

ま、ようはケチらずどんどん読んで「この本はウンコだ」と言えるようになるのが一番ということだ。

で、なんかお薦めの本ありませんか?

スポンサード リンク
[ 6月27日全て ]

2007年9月25日 (火)

Visual C# 2005 Express Edition ではどれを Subversion リポジトリに突っ込めば良いか?

Visual C# 2005 Express Edition で Windows アプリケーションテンプレートによる構成は下記 (名前を Example で作成した場合)。

ファイル名対象
Example.slnoソリューションファイル (テキストファイル)
Example.csprojoプロジェクトファイル (XML ファイル)
Example.suoソリューションユーザオプションファイル (バイナリファイル)
Program.csoC# ソースファイル
Form1.csoC# ソースファイル
Form1.Designer.csoC# ソースファイル
Properties/AssemblyInfo.csoC# ソースファイル
Properties/Resources.Designer.csoC# ソースファイル
Properties/Settings.Designer.csoC# ソースファイル
Properties/Resources.resxoリソースファイル (XML ファイル)
Properties/Settings.settingso設定ファイル (XML ファイル)
bin/*
obj/*

バージョン管理する必要があるのは「対象」のファイルで良いのかな? Form1 などはすぐ名前変更になるけれど。

参考

追記

2007年12月4日
  • Properties/Resources.Designer.cs を追加。
[ 9月25日全て ]

2007年12月4日 (火)

今日のさえずり - ブレーカが落ちた

[ 12月4日全て ]

2007年12月27日 (木)

今日のさえずり - それ多分 Gmail spam フォルダの中

naney:2139517973

  • 09:33 MovaTwitter の設定がリセットされていた(ように見える)。再設定。[mb]
  • 09:53 原付兄ちゃんが、点滅している信号を渡っている人に「赤になります。ご注意ください。轢きますよ。」と淡々と警告してた。L:秋葉原[mb]
  • 10:06 原付の人ちょっとヤバい感じだった (暴力的とかいうのではなくて、ちょっといってるような)。 *Tw*
  • 10:07 出社したらオフィスの玄関を入ってすぐのオブジェにイルミネーションが。誰? (社長ではないらしい) *Tw*
  • 12:00 Perl の statement modifiers (if/unless/while/until/foreach) に慣れると、C# とかで if 文とか書くのかったるい。 *Tw*
  • 12:32 社長がいっていた「報告メールがまだ」、それ多分 Gmail spam フォルダの中 (同じメールがこの間 spam フォルダに入ってた)。 *Tw*
  • 13:08 NUnit 2.4.5 インストール。 *Tw*
  • 18:37 NUnitデータベースの CREATE/DROP テスト書いていてどうもうまくいかないと思ったら、Npgsql がデフォルトで接続プールしてて DROP を阻止していた模様。 *Tw*
  • 18:39 オフィスの皆が忘年会に出発したので静寂がおとずれた。 *Tw*
  • 19:11 [mixi] おすすめマイミクシィ巡回してみた。友達の友達が友達になるかというとどうかな。 http://indies.mixi.jp/recommend.pl
  • 23:55 の分の年賀状印刷完了。
[ 12月27日全て ]

2008年2月28日 (木)

今日のさえずり - ファミリー割引の相手がまだ(新)じゃないいちねん割引

  • 01:56 MovaTwitter で友達リストの更新が手動と一括に分かれているのに気がついた。
  • 02:12 ファミリー割引の相手がまだ(新)じゃないいちねん割引なんだよな。 http://tinyurl.com/2vesbh
  • 02:16 P3:PeraPeraPrv、他のクライアントみたいにメッセージの末尾に P3 を表す文字列を自動挿入できるといいのにな。
  • 12:11 久しぶりのデモがダメダメでしおしお。
  • 18:39 Linux 上で C# プログラミングすることにした。
  • 20:07 弁当屋でレジの前の人が、大きな声で「お、この間のお嬢さん」と辱しめられていた。[mb]
  • 20:35 ヨドバシカメラポイントカードIC eLIO 届いた。[mb]
  • 22:04 NTTドコモの支払いをヨドバシゴールドポイントカードIC eLIO に変更した。[mb]
  • 22:32 ISP の支払いをヨドバシゴールドポイントカードIC eLIO に変更した。
[ 2月28日全て ]

2008年3月6日 (木)

今日のさえずり - 京都小学校のコンピュータ室にいったら、Squeak が

2008年03月05日

naney:2311864816

  • 08:47 朝起きてエアコンつけたら、いきなりホットキープランプ点灯。故障しかけてるっぽい。[mb]
  • 11:33 しまった。昨日1件仕事のメールをプライベート用アドレスで送ってしまった。まいっか。
  • 13:02 家からもってきた雛あられがオフィスで人気。
  • 13:08 [photo] 小さいプリン貰った。 http://tinyurl.com/2urto7
  • 16:49 Debian 上で C# ライブラリを Emacs + Mono + NAnt + NUnit開発ビルドする道筋をまずつくった。
  • 18:45 ソニッケアーのブラシ買った。もう帰りの電車の中。[mb]
  • 18:52 この時間に酒臭い人が乗車してきた。さすが新橋。[mb]
  • 21:46 を会社に忘れてきた。しょうがないので同じものを処方されたのをもらった。明日返す。[mb]

2008年03月06日

  • 11:33 そういえばこの間京都小学校のコンピュータ室にいったら、Squeak がインストールされていた。使っているのか?
  • 12:53 オートペディアしてみた。 http://tinyurl.com/3ygonk
  • 14:18 サーバ上で svnadmin create してみたが何故か終了しない。何度かやっても駄目。バージョン上げてみるか。
  • 14:34 Subversion 1.3.0 から 1.4.5 (Red Hat Linux 8.0 用バイナリ) にあげたら、すんなり svnadmin create できるようになった。
  • 17:00 そうか C# って既にあるクラス名と同じ名前空間名を作れないのか。Perl の package と同じつもりでいたので、名前考え直しだ。
  • 18:20 昨日のお昼に注文した VQ1005 の注文確認メールがようやくきて一安心。
[ 3月6日全て ]

2008年3月7日 (金)

今日のさえずり - 秋葉原ガチャポン会館でカプセルシュウォッチ入手

  • 10:17 あれ、モバイル Gmail からの返信って送信アドレスが問答無用にデフォルトに設定したものになるって話だったけど、昨日送ったやつはきちんと受信したアドレスが送信アドレスになっていた。
  • 10:53 C# では C++ みたいに virtual つけておかないとオーバーライドできないのか。ちょっぴりはまってた。
  • 11:02 C# で、ある名前空間下で(システムだから)System ってクラス作ったんだけれど、global::System... とか面倒だということに後で気がついた。改名しよう。
  • 12:49 森山良子の CD 「春夏秋冬」買った。[mb]
  • 13:04 秋葉原ガチャポン会館でカプセル シュウォッチ入手。[mb]
  • 16:48 雷鳴。L:東京都千代田区東神田3-1-2
  • 18:51 あ、昼飲むの忘れてた。
  • 22:28 VQ1005 出荷メール来てた。明日には届くかな。
  • 22:40 [photo] CAPSULE SHOOTING WATCH http://tinyurl.com/ywharw
[ 3月7日全て ]

2009年3月13日 (金)

久しぶりの C++GNU Automake + CppUnit

ちょっとした文字列構文解析関係の C++ コードを書き始めた。 C++ は随分触ってなかったので「C++ で書き直すのを考慮してそれっぽく Perl で書くから後で書き直して」と最初は言っておいたのだが、それもあんまりだと思って C++ で書くことにした。

Debian GNU/Linux 上で書くので GNU Automake + CppUnit で。 「Perl + Test::Harness」や「Java + Eclipse + JUnit」や「C# + Visual C# + NUnit」などと比べるとやっぱりタルいな。

1つメソッド書くのに、

  • テストメソッドの宣言
  • テストメソッドの登録 (CPPUNIT_TEST())
  • テストメソッドの実装
  • メソッドの宣言
  • メソッドの実装

と 4ファイル5カ所編集しなければならない。 クラス追加時には Makefile.am にヘッダファイルとソースファイルをテストケース用のと含めて4ファイル書き加える必要があるし。

あー面倒。

でも C++ で書き始めると楽しいんだよなあ。

[ 3月13日全て ]

2009年8月20日 (木)

アクセサは foo と set_foo にしたい

オブジェクト指向プログラミングではほとんどの場合に必要となるアクセサについては命名規則にいくつかのパターンがある。

  1. 属性名に対して getter に get (get_)、setter に set (set_) をプレフィックスとしてつける。
  2. getter も setter も同じ名前とし属性名にする。
  3. setter のみ set (set_) を属性名にプレフィックスとしてつける。

1 番目は Java プログラミングでよく使われる。 またそれ以外でも広く使われている形式だ。 get と set 命名規則的に対になっていて規則的には美しい。 getter と setter を別々に検索するのも用意だし、プログラミング時にも誤解を招きにくい。

ただし例えば x、y、z のような短い名前の属性の取得の場合 obj->get_x などと、うるさい感じになってしまう。また obj->get_foo->get_var なども obj->foo->var などに比べてすっきり感がない。

2 番目は Perl でよく使われる。C# のプロパティへのアクセサは getter と setter が同じ名前になる。 呼び出し側ではコードが短くなりすっきりする。

ただし Perl の場合は引数の数を動的にチェックするために効率が若干犠牲になるのと、setter の機能が無いアクセサに引数を渡してもエラーにならないため見逃しやすいバグが潜んでしまう可能性があるなどの問題もある。Perl ベストプラクティスではこの形式ではなく1番目の形式を勧めている。

3 番目はあまり多くないかな。 getter に get がついていると個人的には重い印象を感じる。 getter を属性名だけにすることですっきりするとともに、setter は set_ と動詞がつくことでオブジェクトに働きかけるという印象を残すことができる。

命名規則が非対称なのでちょっと気持ち悪いといえば気持ち悪い。

Google C++ スタイルガイドではこの形式を採用している。

個人的には3番目がコードの見た感じにもすっきりしていて読みやすく、また getter と setter の区別も(1番目ほどではないにせよ)つきやすいので良いのではないかと思う。 2番目もよく使っていたのだが、しばらく3番目にしてみようかと思った今日このごろ。

[ 8月20日全て ]

2009年9月10日 (木)

今日のさえずり - バーコードって床屋でどのように頼むんだろう

naney:3907973852

2009年09月09日

  • 05:38 起床。 *P3
  • 05:53 湯船のゴミをさらうやつが欲しい。 *P3
  • 10:43 新しいエアコンのコンパネ設定いじってみた。室温表示できるのか。いいね。あと目の前の柱についているので時計も表示させた。 *P3
  • 12:26 PIXUS MP990 が9月8日に発表されて、PIXUS MP980 は型落ち。 *P3
  • 12:59 2009年9月7日の歩行: 6014歩、4.80km、45分、6.30km/h、消費 218.3kcal、脂肪燃焼 31.2g、3.2エクササイズ。 *P3
  • 13:01 2009年9月8日の歩行: 2176歩、1.66km、20分、4.83km/h、消費 76.5kcal、脂肪燃焼 10.9g、1.0エクササイズ。 *P3
  • 13:52 そろそろ TinyURL から bit.ly に移行するべきかな。 *P3
  • 14:25 ファミリーマートでチョコベビーに惹かれたが 102g も入っていたので諦めた。 [mb]
  • 16:29 ありがとうございます。 j.mp 知りませんでした。 RT @asaasa: @Naney bit.ly のエイリアスである j.mp も使うべき(とか言い放つテスト) ...ついったー公式も j.mp 正式サポートしないかなあ。 *P3
  • 17:36 前向き交流会につき早めに退社。 [mb]
  • 17:42 もう年賀はがきの予約始まっているのか。早いなあ。 [mb]
  • 17:58 バーコードって床屋でどのように頼むんだろう。 [mb]
  • 18:04 品川駅着。時間までエキュートのぞくか。 L:品川駅 [mb]
  • 18:26 そろそろお店に向かう。 L:品川駅 [mb]
  • 19:46 前向き交流会を一足お先に失礼したところ。 [mb]
  • 19:54 今日紹介してもらった西田文郎氏の本を購入。 [mb]

2009年09月10日

[ 9月10日全て ]

About Me

Naney Naney (なにい)です。株式会社ミクシィで SNS 事業の部長をしています。

nDiki1999年1月に始めたコンピュータ日誌を前身とする NaneyWeb 日記(兼パーソナルナレッジベース)です。ちょっとしたノートは nNote にあります。

※内容は個人的見解であり所属組織とは関係ありません。

月別インデックス
Process Time: 0.062985s / load averages: 1.18, 1.19, 1.07
nDiki by WATANABE Yoshimasa (Naney)
Powered by DiKicker