ホリデープログラミング入門

ホリデーにプログラミングを楽しむための入門 by 船木信宏

全体表示

[ リスト | 詳細 ]

記事検索
検索

全19ページ

[1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11]

[ 次のページ ]

諸々の事情でお知らせするまでに間が開いてしまいましたが、当ブログの更新はこれで終了となりました。
「オフィシャル」の名に恥じないブログであれたか疑わしいものの、当人としては気合の入った記事もいくつか書けたと思っています。読んでくださったみなさま、どうもありがとうございます。オフィシャルブログ執筆を推薦してくださったなかにしさんと、担当してくださったさかいさんにもこの場を借りてお礼申し上げます。ありがとうございました。

週1〜隔週とはいえ、更新は大変でした。途中から入門とはいえない内容が多くなってしまったのは反省しています。知人が言っていましたが、こういった内容に縛りを設けた企画物は期間をあらかじめ決めて全体の構成を決めてから書き始めた方がまとまるのかもしれません。

このブログの内容は、プログラミングを勉強してみたい、という友人が周りに何人かいたことがきっかけで決めました。経営、あるいはいわゆる営業側の人が少しでもプログラミングに興味を持ってデバッグの大変さだとか、何ができて何ができず、何にどのぐらい時間がかかるのか、体感する機会を作る一助となったのであれば大成功です。

ところで僕は今、アメリカのサンノゼという場所にいます。語学留学中です。
その模様も含めてこちらのブログは更新し続けているのでよろしければご覧ください。
http://blog.zuzara.com/category/sal-at-sjsu/

それではひとまずここで筆を置きたいと思います。

開く コメント(7)

ヒット&ブロー



ヒット&ブローというゲームがあります。Mastermind とも呼ぶようです。
僕が小学生のとき、塾の算数の先生が教えてくれました。そのときのルールは1対1で、まず自分の4桁の数字を決めます。0〜9の数字で重複は無し。先手後手を決めてお互い相手の4桁を予想し合い先に当てた方が勝ち。数字も場所も合っているときにヒット、場所は間違っているがどこかに言った数字が含まれるときにブローの数をそれぞれ申告します。

例えば自分が「1234」にして相手が「5678」を予想すると0ヒット0ブローです。「1235」を予想すると3ヒット0ブロー、「4321」なら0ヒット4ブロー。

今、ネットにつながらない環境にいるのでこのゲームを作ってみようと思います。

作るものの枠


コンピュータの決めた4桁を人間が予想するのは面白みがないので、こちらが決めた4桁を予想するプログラムを作ります。まぁ、出来上がるものは人間が遊ぶゲームにはなりませんが。「ヒット&ブロー」で検索すると必勝法的な解説がいろいろ出てきます。ひとまず動くこと重視ですが、なるべく少ない予想数で当てられるようにしたいところです。

言語は何でもいいですが、PHPで作ってしまいましょう。

ランダムで当てるプログラム


というわけでまずはランダムで予想するプログラムを作ってみました。
ソースはこんな感じ。
http://zuzara.com/pub/hitandblow_20081229.phps


次回


もう少し当てる回数を減らす工夫をしてみます。

開く コメント(0)

PHPのフレームワーク考


PHPのフレームワークはたくさんあります。ログインを必要とするウェブアプリを作るのであればフレームワークを使った方がいいでしょう。僕はフレームワークを使うようなウェブアプリをたくさんは作っていませんが、CakePHP, symfony, Zend Frameworkはそれぞれ仕事でも使ったことがあります。

たくさんあるフレームワークの中からどれを採用するか、自前のものにするか、判断は難しいと思います。ホリデーにプログラミングする上では使わない、という選択肢もあります。

フレームワークを使うデメリットは
・PHPの知識以外に個別のフレームワークの知識が必要
・フレームワーク自体にセキュリティ上の問題がある可能性がある
・プログラミングがルーチン化する

フレームワークの知識を得るまではそれなりに時間がかかります。チームで開発するときは大きな問題です。1つ知っていれば2つ目以降の習得が楽になるのはプログラミング言語と同じですが、それぞれに癖があり好き嫌いも出るでしょう。CakePHPが嫌いな人は何人か見かけました。

ちょっと脱線しますがこの嫌い、という反応は往々にして最も普及しているものに発生するようです。WindowsしかりPHPしかり。PHPもCakePHPも初心者向け、というイメージが強いです。設計思想的に美しくないものが普及するのか普及すると醜くなるのか、初心者向けに設計すると醜くならざるをえないのか、何か法則がありそうな気がしています。

話を戻して、セキュリティ上の問題は、普及していて実績の多いフレームワークの方がリスクが少ないでしょう。マイナーであれば表面化しない可能性もありますが、潜在的なリスクがあるのはよろしくありません。

プログラミングがルーチン化する、というのはフレームワークを使う最大のメリットでもあります。開発効率を上げるのがフレームワークを使う主な目的だからです。効率化の果てには単調作業のつまらなさしか残らないのでこれはこれでプログラマーとしては問題です。

僕はPHP5を使う前提で、Zend Frameworkが今一番手になじんでいます。理由はかなり個人的な感覚ですが、
・フレームワークに支配されたコーディングにならない
・コーディング規約に則って書かれたコードが見やすい

前者はフレームワークに任せたいところだけ任せられる、といったところでしょうか。モジュール化されたZFはウェブアプリ以外にも使えますし、命名規則やModelをフレームワークの流儀に強制されることはなく、設定ファイルもありません。

後者は、PEARのコーディング規約に近いZendのそれに自分が慣れているのが大きいです。

どのフレームワークを使うにせよバージョンアップには気をとめておく必要がありますし、世の中の流行り廃りもあるので他のフレームワークにも目を配っておかねば、といったところです。今回はいくつか新しいフレームワークを見ている中で書きました。

CodeIgniterとその派生でPHP5専用のKohanaが気になりました。CodeIgniterは日本語の情報もかなり充実してきているようです。

開く コメント(0)

http://farm1.static.flickr.com/63/222507448_cdbbb53a79.jpg
sweet release on Flickr - Photo Sharing!

【6】スパムコメントに汚染されたYahoo!ブログを救う

zuzara.org を別サーバに移行したのはよかったものの、phpのオプションでsslへのアクセスが許可されていなかったのでデモは動かなくなってしまいました。



動作にはSSLが有効になったPHP5と、ライブラリとしてZendFrameworkが必要です。Zend_Clientを使ってひたすらブラウザの動作の真似をしているだけのコードです。

Yahoo!ブログの仕様(HTMLの構造やPOSTする内容)に左右されるのでいつまで動作するかわかりません。自分以外のIDで試してもいないので動作は未保証ですが、スパムコメントに悩まされている方がいらっしゃれば、お試しください。

開く コメント(1)

開く トラックバック(1)

全19ページ

[1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11]

[ 次のページ ]


.


プライバシー -  利用規約 -  メディアステートメント -  ガイドライン -  順守事項 -  ご意見・ご要望 -  ヘルプ・お問い合わせ

Copyright (C) 2019 Yahoo Japan Corporation. All Rights Reserved.

みんなの更新記事