ちゃぱブログ / エンジニアリング / マネジメント

とあるプロダクトの運用組織のマネジメントしてる人の雑記。主にエンジニアリングやマネジメントのことを書きます。ときおりプチ情報も

Djangoはじめました(2020年6月)

はじめに

前々からいつかやってみたいなと思っていたDjangoに触れる機会ができたので、やってみた感想を書いてみる。この記事の目的や対象読者が誰なんだというのはあるのだけど、無理やり書いてみると

Djangoに興味はあるけど、なんとなく触ってない人

・触ってみるキッカケになる

くらいかと。

思ってたより簡単に形になるな、という面と、調べ始めると色々と複雑なものがでてきそうだな、というのが今時点の感想。

※以下、「この業界に何年いるんだよ」みたいな年齢なのに、プログラム初めて触ってみましたみたいな感想文になってしまった・・・

自分のバックグラウンド

どの程度の基礎知識のうえでやったんねん、というのがあるかと思い書いてみる。

  • 数年、業務で開発に携わることはないくらいに開発からは遠ざかっている
  • Pythonはちょっとしたツールを作るくらいには理解している
  • Djangoは知識ゼロ
  • JavaでのWebアプリ開発の経験があるので、Webアプリの基礎知識はある
  • HTML/CSS/Javascriptは苦手だけど拒否反応を示すほどではない
  • Bootstrapは初めて
  • SQLは書ける(が、Djangoだと今のところ書いてない)

何をやったか

  • ジェネリックビューを使ったCRUD
  • 関数ベースビューを使ったCRUD
  • Azureに構築していたDBからmodels.pyの生成
  • paginatorを使ったページング
  • 一覧の検索ボックス
  • ついでにBootstrapでの装飾

どのように進めたか

Djangoを始めるキッカケは、社内のインフラの人がSlackで「Pythonの勉強会でもやってみるかな・・・」とつぶやいたのにリアクションしたこと。Pythonかと思ったけど、せっかくならDjangoでWebアプリ作ってみようか、となりスタートした。

  • 週に一度1時間~2時間程度教えてもらいながらコードを書く。みたいなことが、3回
  • 自分で作りたいものがあったので、隙間時間で真似しながらコード書く
  • Djangoのドキュメントで関連しそうなところを読む
  • Djangoのソースをチラ見する
  • やりたいことベースで検索してWebの記事を読む

注意した点

やりたいことベースで真似して書くともっと早く動くものができあがるのだけど、「自走プログラマー」で窘められてのもあり、ちゃんと公式ドキュメントやソースを見るようにも心がけた。

今時点でできあがったもの

世に出すには程遠いが、自分や身内で使う分にはまぁ、いいんじゃないのくらいのUIのWebアプリができあがった。

機能としては、

  • インシデントの一覧を表示する
  • 一覧上で特定の検索項目で検索することができる
  • 20ページごとにページング
  • 一覧からIDを選択すると詳細画面を表示する
  • 詳細画面から特定項目の更新画面に遷移できる
  • 更新画面で特定項目を更新して一覧画面に戻ってくる

くらい。

入力チェックは未実装。戻る機能(ボタン置くだけだけど)も未実装。更新時の確認画面(もしくはダイアログ)も未実装。

と、まだまだWebアプリとしては未熟。上のは更新画面だけだけど、勉強会用には登録・削除機能も作ってみた。

やってみた感想

上のようなものを作って、勉強時間も含めて、正味24時間程度しか使ってないのではないかと思う。Django触ったことない状態から。

教わりながらだったからスムーズにいった側面はあると思うけど、思った以上に簡単に動くアプリケーションが作れて感動した。(Railsもやってみたら同じような感動ありそう)

1日8時間換算で3人日でゼロからここまで作れるなら、相当コスパいいんじゃないかと思う。

わかりにくいなと思った点

MTVという概念が、どうも気に入らない。viewになんでも書く思想が気持ち悪い。「"ビュー"なのにな・・・」とか思ってしまう。

公式ドキュメントが微妙に・・・

その他

誰かに教わりながらできれば本当に楽にできるけど、そうじゃなければ無難にDjango Girls のチュートリアルからやればいいんではないかなと思う。ちょこちょこ読んでみてるけど、わかりやすいと思うし、勉強会も似たような進め方でやってくれていたなと感じた。

tutorial.djangogirls.org

おわりに

どのような人がここまで読んでくれたのかはわからないのだけど、今後も月単位での感想や進捗を(思い出したら)備忘がてら書いてみようかなと。