タグ

ブックマーク / pg-kura.hatenablog.com (8)

  • キャメルケースよりスネークケースで。 - 偏見プログラマの語り!

    プログラムを書くとき、たいていは何らかの命名規則に従って識別子を書くわけですが、その種類はだいたい 2 つじゃないかと思います。 ・スネークケース:スペースをアンダースコアに置き換えた表現。( chocolate_pie, candle_cake, ... ) ・キャメルケース:スペースを詰めて次の語を大文字から始める表現。( chocolatePie, CandleCake, ... ) プログラムってのは名前が 8 割とか言うひともいますけども、なんだかんだと複合語を記述する場面は死ぬほどありますし、しかも多くのプログラミング言語がスペースをトークンの区切りとしている以上、何かルールを設けないといけないんですよね。そうしないと「複合語の中にあるスペース」と「トークン区切りとしてのスペース」を区別できない。区別できないっていうかプログラム書けない。 で、どういうルールで書くかっていうと標

  • プログラミングをゲーム的な演出で学ばなくても、ゲームの中にプログラミングを見出す事はできる - 偏見プログラマの語り!

    Final Fantasy Tactics というゲームがある。1997 年に発売されたゲームなんだけど、当時これを僕はプレイしまくっていた。 僕はこのゲームでひたすらキャラクタの育成にのめり込んでいた。キャラクタを育成するためには経験値を溜める必要があるんだけど、経験値は何か行動をしないと獲得できない仕組みになっている。で、キャラクタ育成っていうと単純で退屈そうな作業なんだけども、当時の僕はこれが面白くてしょうがなかった。面白くしている最も大きな理由は、経験値獲得ルールにある。 経験値は何か行動をすれば獲得できるのだが、行動したからといって何も効果を生まない場合は経験値が獲得できない、という制約が課せられているんである。例えば、攻撃してダメージを与えれば経験値獲得するが、攻撃に失敗すると経験値も無し。HP を回復させれば経験値獲得するが、既に HP が満タンなら経験値は無し。武器防具を盗

    プログラミングをゲーム的な演出で学ばなくても、ゲームの中にプログラミングを見出す事はできる - 偏見プログラマの語り!
    yogasa
    yogasa 2014/02/27
  • 何故プログラマやってるのか - 偏見プログラマの語り!

    あけましておめでとうございます。 昨年の暮れ、「kura さんがプログラマを続ける動機は何?」っていう問いを受けました。その問いをしてきた人は医療系のプロダクトに全力投球しているプログラマです。彼は、過去に医者に世話になった経験から何らかの恩返しがしたいという思いと、それによって病に人生を削られる人たちをできるだけ少なくしていきたいという願いをモチベーションにして日々頑張っているのですが、僕からはそういう "踏み込んだ思い" のようなものを聞いたことが無かったから不思議だったんだろうと思います。 で、問いを受けて少し考えてしまったんですが、そういう意味での動機って僕には無いような気がします。そういう意味っていうのは、例えばゲーム開発している人にはゲームが好きで好きでしょうがない人がいたりするじゃないですか。また一方で、プログラムというものが好きだとかソフトウェアの技術的な興味が尽きない人っ

    何故プログラマやってるのか - 偏見プログラマの語り!
    yogasa
    yogasa 2013/01/01
  • C 言語にポインタがある理由は省メモリ化・高速化・開発作業の省力化です - 偏見プログラマの語り!

    前回の記事『プログラム初心者にC言語のポインタを不意ながら教える羽目になったなら、こう教えると良いよ』でポインタの教え方を書きました。ソレに対して「そもそもどうしてポインタっていう仕組みがあるの?」という質問をもらったので、つらつらと書こうと思います。稿は「ポインタがある理由の教え方」ではなく「ポインタがある理由」です。分かっている人には相当に退屈な文章ですのでそういう人は読まずにお帰りください。 で、えーと、結論だけ先に言うと省メモリ化のため、次に速度アップのため、そして生産性アップのためです。 1. メモリは有限である。 マシンに搭載されているメモリには限りがあります。メモリ空間は広大ですが、無限ではないのです。 好き放題にどんどんメモリを使ってデータを格納するわけにはいかないというわけです。しかしプログラムは計算のためにメモリ空間を占有します。仮に↓こんな感じに、わずかな有限メモ

  • プログラム初心者にC言語のポインタを不本意ながら教える羽目になったなら、こう教えると良いよ - 偏見プログラマの語り!

    僕がプログラミングに触れた当時は、プログラミングといえば「まず C 言語」でした。それから 10 年以上が経ちました。学校の授業や企業の研修では未だに C 言語を教えているところがあるようです。関数型プログラミング言語という波が来ている 2012 年にもなって未だに C 言語をやっているというのはまるで進歩が無く残念な気もしますが、比較的多くのプログラマに浸透している共通言語を最初に教えるというのは、一方では喜ばしい事だと解釈する事もできるのかもしれません*1。まぁとにかく、意にせよ不意にせよ現場で プログラム初心者に C 言語を教える羽目になった 人がたくさんいて、プログラム初心者なのに C 言語を学ばざるを得なくなった 若者がたくさんいるということです。 C 言語を教えるときに避けて通れないのがポインタで、プログラム初心者が C 言語を学ぶときにやたらとつまずく人が多いのがポインタ

    プログラム初心者にC言語のポインタを不本意ながら教える羽目になったなら、こう教えると良いよ - 偏見プログラマの語り!
  • Web プログラミングってこんな感じじゃなかろうか - 偏見プログラマの語り!

    この歳になって初めて Web プログラミングの現場を見て、刺激的な毎日を送らせていただいています。さて、仕事をしていて一番強く感じるのは前職での開発(スタンドアロンパッケージソフト開発をしていた会社の文化)との違いです。で、Web 開発とは何たるかを表現したくて悶々としていたのですが、ある程度整理ができてきたので文章にしてみようと思います。僕はアカデミックな話よりも現場の話をしたいので、いくつもレイヤをまたいだ文章になります。そのため稿では具体的な技術の詳説とかアジャイル的な用語が飛び交う説明とかはありません。そういうのを期待している人は読まないでください。 ・Web に限らず、お仕事プログラミング全般で共通のこと プログラムを知らない人がイメージする開発というものは、粘度をこねたりくっつけたりするような作業じゃないでしょうか。つまりそれは、知識さえあれば難しいものではなく、モチベーショ

    Web プログラミングってこんな感じじゃなかろうか - 偏見プログラマの語り!
  • テスト駆動開発について僕は誤解していた - 偏見プログラマの語り!

    ここ数日 ruby をやってるんですけど、ruby といえばテストらしいので Test::Unit やら RSpec やらを調べてました。しかし僕はこれまでまともな TDD をやってこなかったので、先にテストとは何ぞや?TDD とは何ぞや?ってのを調べたりしていました。 この記事は、ずぶの TDD 素人がテストについて知り始めたまとめです。 1. きっかけは RSpec のドキュメント そもそも RSpec の↓紹介文の冒頭から意味不明に感じたんです。 FAQ:「RSpec って、要は Test::Unit でやっていることを別の書き方にしただけでは?」 この FAQ への短い答えはイエスです。 『スはスペックのス 【第 1 回】 RSpec の概要と、RSpec on Rails (モデル編)』 Rubyist Magazine えっ... じゃあ要らんやろソレ。いちいち手作業でチェック

    テスト駆動開発について僕は誤解していた - 偏見プログラマの語り!
  • Java 的オブジェクト指向を 90 分で理解する - 偏見プログラマの語り!

    1. 分からない。いくら説明を読んでも分からない。 ● 1.1. 未だに分からない Java 的オブジェクト指向 今日び Java 的オブジェクト指向の説明なんて星の数ほどあるような気がしますが、それでもなお「これで分かった!」という説明に辿りつけない不運な人がいるようですね。まぁこんだけ色々な説明が溢れていたら逆にどれを読めば良いのかワケ分からなくなってしまうのかもしれません。じっくり読んでも理解できなかったのであれば、きっとその説明と読者の相性が悪かったんでしょう。… というわけで、僕も Java 的オブジェクト指向が全っっっっ然これっぽっちも分からないという人に向けて説明する記事を書こうと思います。そうでない人には無価値な記事ですのでブラウザの「戻る」をクリックしましょう。 ● 1.2. 「オブジェクト指向」という名の南の島がある オブジェクト指向にはいくつもの専門用語があって、学習

    Java 的オブジェクト指向を 90 分で理解する - 偏見プログラマの語り!
  • 1