1_Django REST framework応用 ~Travis CIの導入~

Django REST framework
とんぺい
とんぺい

師匠〜、こんにちは〜!

今日もプログラミングの勉強に来たブゥ!

師匠
師匠

こんにちは、よく来たね。前回までの講義ではDjango REST frameworkの入門レベルの勉強をしたね。復習はバッチリかな?

とんぺい
とんぺい

もちろんブゥ!師匠に習ったReactとDjango REST frameworkを使って簡単なTODOアプリを一人で作れるようになったよ!

師匠
師匠

おぉ!それは素晴らしい!

1番成長するプログラミングの勉強方法は、自分でサービスを作ることだからね。

とんぺい
とんぺい

うん!1人でフロントエンドもバックエンドも書けるようになると、できることの幅が一気に増えてすごく楽しいブゥ!

師匠
師匠

それはいい事だ。では、今回からはDjango REST frameworkの応用編ということで、前回の講座よりもレベルアップした内容に取り組んでいくよ。

とんぺい
とんぺい

それはすごく楽しみだブゥ!!

今日もよろしくお願いします!

注意

  • ソースコードの中に「[」という文字列がありますが” [ “が文字化けしたものです。
  • 修正法が判明次第修正します。

ソースコード

Githubにレポジトリを作成

師匠
師匠

まずは、Githubに今回のDjangoプロジェクトを管理するためのレポジトリを用意しよう。レポジトリが作成できたらlocal環境にcloneするのを忘れないように!

とんぺい
とんぺい

うん!無事に、Githubに今回のプロジェクトを管理するレポジトリを作成することができたブゥ!local環境にgit clone ...でcloneも完了したブゥ!

Djangoプロジェクトの作成

師匠
師匠

では、次にDjangoプロジェクトを作成しよう。これはDokcerをインストールしている前提で行うよ。基礎編その3を参考にして環境構築を行おう。

とんぺい
とんぺい

Dockerのおかげで環境構築はすごく簡単にできるブゥね!

Infrastructure as Code(IaC)は本当に便利だブゥ!

Travis CIとは?

師匠
師匠

さて、ここからが新しい内容なのだが、とんぺいくんは「Continuous Integration(CI)」という言葉を聞いたことはあるかな?

とんぺい
とんぺい

Continuous Integration(CI)??

初めて聞いた言葉だブゥね…

解説をお願いします!

師匠
師匠

CI(継続的インテグレーション)とはソフトウェア開発においてビルドやテストを頻繁に繰り返すことで、短期間で品質管理を行う手法の事を言うんだ。

とんぺい
とんぺい

ほぅほぅ!そのCIをソフトウェア開発に組み込むことで、どういったメリットがあるんだブゥか?

師匠
師匠

CIを導入することで、バグの早期発見が可能になり、ソフトウェア開発の効率がアップするよ。CIは手動で行うとコストが高くつくため、CIツールを利用して自動化することが大切だ。

とんぺい
とんぺい

ふんふん!CIツールにはどういった物があるんだブゥ?

師匠
師匠

CIを支援するツールは数多く誕生してきたが、今回はその中でもよく使われているTravis CIを紹介するよ。

とんぺい
とんぺい

了解したブぅ!

早速導入方法を教えてほしいブゥ!

Travis CIの導入

師匠
師匠

まずは、Travis CIに登録するところから始めよう。

TOP画面からSign Upをクリックするよ。そうするとGithubの認証ページが表示されるので認証情報を入力しよう。

とんぺい
とんぺい

無事に認証が完了したブゥ〜!

おっ!メイン画面が表示されたブゥ!

師匠
師匠

メイン画面が表示されたら、ページ右上の自分のアイコンをクリックして、メニューの中から「Settings」を選択しよう。

とんぺい
とんぺい

右上のアイコンをクリックして、「Settings」を選択っと!

今度はたくさんGithubのレポジトリが表示されたブゥ!

師匠
師匠

自身のpublicレポジトリの一覧が表示されたら、Travis CIと連携したいレポジトリを選択しよう。チェックマークが付いたら連携完了だよ。

.travis.ymlの作成

師匠
師匠

Travis CIとの連携が完了したら、次は.travis.ymlの作成に取り掛かろう。Dockerfileと同じ階層にファイルを作成するよ。

とんぺい
とんぺい

Travis CIの設定ファイルは凄くシンプルで見やすいブゥね!

うん!.travis.ymlの作成が完了したよ〜!

flake8の導入

師匠
師匠

.travis.ymlの最後にflake8という記述があるが、とんぺいくんはflake8とは何か知っているかな?

とんぺい
とんぺい

ぶぶぅ!本当だ、最後にflake8って書いてあったブゥ!

これは初めて聞いた言葉だブゥ!説明をお願いします!!

師匠
師匠

flake8とは、Pythonで記述したプロジェクト内のコードがPEP 8に沿ったスタイルになっているか、自動的にチェックしてくれるライブラリのことを言うよ。

とんぺい
とんぺい

PEP 8ってなんだブゥ??

わからない単語を調べたら、さらにわからない単語が出てくるのがプログラミング勉強あるあるだブゥ!

師匠
師匠

PEP 8とは、Pythonのコーディングスタイルのベストプラクティスを定義している規約のことだね。PEP 8に従うことで、コード全体の見通しが良くなり、チーム開発が効率的に進むよ。

とんぺい
とんぺい

おぉ!それはすごく大切なことだブゥね!

確かに、目視でコーディングスタイルを確認するのは大変だから、flake8の導入は必須だブゥ!

師匠
師匠

flake8が何か理解できたところで、実際にflake8をプロジェクトに導入していこう。requirements.txtを以下のように編集するよ。

とんぺい
とんぺい

pipコマンド経由でインストールしたいライブラリは、バージョンをPyPIで調べて、requirements.txtにまとめて記述するんだったブゥね!

.flake8の作成

師匠
師匠

requirements.txtの編集が完了したら、flake8の設定ファイルである.flake8の作成に進もう。Djangoプロジェクト内のmanage.pyと同じ階層にファイルを作成するよ。

とんぺい
とんぺい

.flake8ファイルの作成ができたブゥ!

ここには何が記述してあるんだブゥ?

師匠
師匠

.flake8ではexcludeでflake8の管理から除外するファイルを指定しているよ。.flake8の作成が完了したら、terminalで以下のように入力してdocker imageを作り直そう。

とんぺい
とんぺい

 了解しましたぁ〜!

うん!無事にflake8のインストールが完了したdocker imageができたブゥ!

GithubにPushする

師匠
師匠

ここまでの作業が無事に完了したら、ソースコードの差分をGithubにPushしよう。Pushをした際に、自動的にTravis CIが動作してソースコードのテストを実行してくれるはずだ。

とんぺい
とんぺい

おっ!本当だブゥ!

GithubのページでTravis CIが動作しているのを確認できるブゥ!

師匠
師匠

Githubでも結果を確認できるが、詳細を知りたい場合は、Travi CIのページに移動しよう。自分が登録したリポジトリのJob logを確認することで、動作の詳細を確認できるよ。

とんぺい
とんぺい

何やら、異常なくテストが完了したっぽいブゥね!

師匠
師匠

まだtestファイルを記述していないので、テスト結果がRan 0 testsと表示されているよ。今回はひとまずTravis CIの導入が成功したか確認したかったのでこれで良しとしよう。

まとめ

師匠
師匠

本日は以下の項目について学習したね。

  • Continuous Integration(CI)とは
  • Travis CIの導入方法
  • PEP 8
  • flake8
とんぺい
とんぺい

うん!覚えることが多くて大変だけど、一度設定してしまえば、プロジェクトの管理が簡単になるものばかりだから、ぜひ身につけたいブゥね!

師匠
師匠

そうだね。自動化ツールを使いこなし開発効率を向上させよう。では、今回はこれで終了だ。次回はテスト駆動開発を用いてカスタムユーザモデルの作成を行っていこう。

とんぺい
とんぺい

テスト駆動開発!また新しい単語が出てきたブゥ!!

でも、すごく楽しみだブゥ!今日はありがとうございました!

それではまた次回だブゥ〜!

参考

コメント

タイトルとURLをコピーしました