【ノンプログラマ向け】プログラマの仕事内容を理解する ~「テスト」という工程が必要な理由

2014.11.16

前書き

「一緒に働いている以上、プログラマのことを理解して仕事をしたい」そう考えている企画・ディレクションの方は経験則的に少なくない。
ノンプログラマから見て、プログラマの仕事はイメージが湧きづらく、何故その工程にそこまでのコストをかける必要があるのかわからない事が多い。
プログラマは作業の必要性を説明してくれるかもしれないけれど、専門用語も多いしイマイチピンとこなかったりする。

ここで重要なのはまさに「イメージ」だと思う。すなわちイメージを提供するための良質なメタファーだと思う。メタファーが良質であれば より直感的に理解できる
実際メタファーの力はバカにならない。「Chef」も「Jenkins」も それぞれ 統一的な世界観が学習者の直感的な理解を後押ししてくれる。

というわけで、今回から数回に分けて なるべく「技術的な話」をせずに イメージを想起しやすいストーリーを導入することで プログラマの具体的な仕事の内容についての説明を試みる。

対象読者

・企画、ディレクター等 プログラマと直接コミュニケーションを取る機会の多い人達
・プログラミング初学者

現時点での執筆予定

< 具体的な作業工程 >
・「テスト」について (今回)
・「アジャイル開発」について
・「TDD(テスト駆動開発)」について
・「バージョン管理(Git / SVN)」について
・「CI(継続的インテグレーション)」について
< スタンス・文化 >
・「プログラマのスタンス/経営者のスタンス」の重要な違い、ハッカー文化について
・「プログラマがよく使用する用語」について
・「自社で採用するべき言語」について(人事向け)
・「炎上」について

※ ニーズにより目次は前後・変更する可能性があります。
また、若干 宗教論争になりそうな所は テーマ・対象を厳密に熟考した上で できるだけ主観が入らないよう注意します。
※ 最近は企画の方もGitをいじられるそうなので、そのうちGit詳解編もつくる予定です。
(11/16 21:50 追記) ※ ↑ブコメにて「いわゆる”ハッカー文化”を語るのはWeb系に多く、他分野ではそうではない」という重要なコメントを頂きました。確かにWeb系を中心に考えすぎており他分野に対して盲目的でした。申し訳ございません。文化的な部分を語る際は 認識の誤りが無いよう、対象を限定するように注意いたします。
(2015.04/09 追記) ※ 私都合により少々執筆の目処が立たないため シリーズとのたまったものの一時休止させていただいております、申し訳ございません。
(続きを読む…)

【RailsによるアジャイルWebアプリケーション開発第4版】イテレーションI1 Rails4系 ログイン周りのバリデーションでハマった話

2014.11.12

images

本に書いてある通りやっても何故かバリデーションが通らない。

何度やっても「Password Missing password」と怒られるばかり。
物は試しとGoogleで似たような人がいないか検索してみるが それらしいものは見当たらない。

試しにModelを全コピするが一向に改善しないため、どうやらtypoではないようだ。
( 元々3.2系の本だから ちょいちょい仕様が変わってたりするんだよなあ…今回もその周りのにおいがプンプンする )

それでもって POST時にユーザから渡って来たログを出してみて、その値を確認してみた。

Parameters: {"utf8"=>"V", "authenticity_token"=>"c4yT/Bt6ypoDW5rl119tndpOZgLLAE4pv824XPZXRdM=", "user"=>{"name"=>"aef", "password"=>"[FILTERED]", "password_confirmation"=>"[FILTERED]"}, "commit"=>"Create User"}
Unpermitted parameters: password, password_confirmation
==========================================
Unpermitted parameters: password, password_confirmation
{"name"=>"aef"}
=========================================

(続きを読む…)

VagrantでUbuntuサーバを2台立ててMySQLでマスタスレーブ構成にしてみた

2014.10.12

久々の更新。
土曜日は これまで何となく使っていたVagrantを本格的にいじっていたけど、知れば知る程便利だなあ。
Vagrantfileって Gruntfileみたいに何となくいじるのが面倒くさそうな印象があったんだけど、実は全くそんな事がなくて 寧ろちょろっとやれば誰でも簡単にいじれるようになるくらい学習コストが低かった(まだChefと絡めていないので Chefと連携させると若干話が変わってくるかもしれないけど)。
というわけで今回は Vagrantを使ってUbuntuサーバを2台立てて MySQLでレプリケーションを構成してみた話を。
今回に関してはどちらかというとVagrantよりMySQL寄りの話になります。
Vagrantに関しては boxの構造とかVagrantfileの事とか 色々と整理できたので 後日 初心者向けにvagrantの基本的な事柄についてまとめます。
(続きを読む…)

LispマクロでLispコードをCSSに変換するようにしてみた

2014.9.16

text3763

覚えたてのマクロの練習がてらつくってみた。500バイト程度で実装。ファイル出力がなければ400バイトくらい?

(続きを読む…)

LispでAIやらWebサーバ構築やら一通り体験できる本『Land of Lisp』書評

2014.9.15

スクリーンショット 2014-09-15 17.42.08

どんな本?

総評するとLand of Lispでは、Common Lispで 対話型コマンドラインのゲームをつくったり Webサーバを立てたり SVGの描画をしたり AIプログラミングをしたり DSLをつくったり 一通り遊べる。かと言って敷居が高いかというとそんなことは無くて Lisp初めてな人でも取っ付きやすいように丁寧な解説がある。ページ数は多いけど、割とサクサク進められる(一部 難しい部分もある。特にAIプログラミングのあたりとかは比較的規模が大きい)。
(続きを読む…)