Make組ブログ

Python、Webサービスや製品開発、ライブラリー開発についてhirokikyが書きます

Django、チュートリアルの次にやったこと(2012Pythonアドベントカレンダー1日目 #python_adv)

2012Pythonアドベントカレンダー1日目を担当します、取りまとめ役の id:hirokiky です。
この記事では私がDjangoチュートリアルの次にやってきたことを書きます。
内容としては「Django」に限った話ではなくて、そもそもプログラミング自体そんなにしたことない人が対象だったりします。

Pythonアドベントカレンダーについて

ここでいうアドベントカレンダーとは、12月1日から12月25日まで、1日1個ずつTips的な記事をブログに掲載していくイベントです。
2012Pythonアドベントカレンダーは、Pythonに関する記事でアドベントカレンダーをやりましょうというイベントです。

今年は「Webフレームワーク」というテーマですが、それほど厳密には考えていません。
Plone、SQLAlchemy、Jinja2、django-*やrepoze.*、WSGIなども可です。

目次

自己紹介

id:hirokiky です。TwitterID: @hirokikyです。
今は2012Pythonアドベントカレンダーの取りまとめ役をやっています。

Djangoと私

DjangoというPython製Webフレームワークが好きで、よく遊んでます。

というサービスを作ったりしました。
本格的にPythonDjango、ひいてはプログラミングとおして何かを完成させたのは、このSinboonが初めてなので思い入れがあります。
この記事が厳密にDjangoについて話しているわけでなくて、それを通したプログラミングの話っぽくなってるのもそういう理由です。
Sinboonを作り始める前の自分に読ませたいことを書いてたりします。

あとDjangoと私については

しています。
まぁDjangoに投げたパッチは一度だけ「ファーストパッチ」として取り込まれたことがある。というのが唯一の自慢のワナビーです。

あと最近転職して仕事でPythonDjango書いています。

DjangoとはPython製Webフレームワークである

DjangoPython製のWebフレームワークです。
日本語ドキュメントは以下にあります。

よくPythonRuby on Railsと言われます。位置づけだけ見ればそう言えるかもしれません。

有名ドコロのDjango製のWebアプリケーションには

などがあります。
私が作ったものにはhttp://docs.djangoproject.jp/ja/latest/
があります。

Djangoチュートリアルの次にやったこと(本題)

とりあえず何か作る

Djangoチュートリアルの次にやったことは自分のWebアプリケーションを作るということ。
それ以上でも以下でもなくて「何か作るためにチュートリアルやったなら、それを作りましょう」ということ。

別に

とかでもいいです。「新規性」とかどうでもいい。
私自身が「Webサービスをつくるなら新規性あふれる素晴らしいサービスを作らないといけない」と思ってましたが、それは今思えば良くなかったな、と。
ホントに素晴らしい新規性あふれる「うぇっぶさーびす」の「あいでぃあ」が降臨しても、何も作ったことない状態じゃぁ心もとないし。

参考になるもの

よく

と聞きますが、とりあえず何か作るのが一番いいと思います(サッカーうまくなるのに本ばかり読むのは変)
しかしいきなり作るといっても何なのでオススメなのが

  • 作りたいものと似たもの(OSS)を参考にする

ということ。あとは

  • ソースコードを呼んでいるとき、自分で書いているときに分からなかったら調べる
  • 「こんなかんじの便利なものあるんじゃね」と思ったら調べる

としていけばいい。

私が作りたかったもの

そのとき私が作りたかったのがSinboon
Sinboonというのは「ユーザの好みを学習して記事を推奨するフィードリーダー」です。
なので基本的にはフィードリーダーを作って、そっから改良しよう(楽だし)と思ったわけです。

まぁそこでDjangoフィードリーダーっぽいことやってるアプリケーションを探して、こんな感じのが見つかりました。

で、これのソースコードを読んで

などを学びました。実際にfeedjackなどを手元に入れて動かしてみるのが一番だと思う。
Sinboonは結局django-feedreaderを元に、それを改良して実装しました。

OSSを漁ろう

で、そういう参考になるOSSはどうやって見つけるのかって話になります。

で、面白そうで使えそうなものを探せばいいと思います。
(Googleで「django feedreader」と調べればdjango-feedreaderがでる)

一度Django製アプリケーションを手元で動かしてみるのもいいと思う。
django-blog-zinniaというDjango製ブログエンジンがあるのでそれをインストールしてみるとか

それでソースコードを読んで、改良してみて仕組みを知っていけばいいと思います。
だから難しく捉える必要はないのかなーと。

おわりに

雑記みたいな感じで書きたかったこと書いただけなかんじがするので2回目があればTips的なこと書こう。
12月2日は@shomah4aさんにWSGIの話をおながいします