【読書】Pythonエンジニアの育成読本

Pythonを使ったWebサイトを作成しているのですが、Pythonおよびサーバサイドの根本的なところがあまりよく分かっていないため、作業がはかどりません。

この際なので、Pythonについて根本的なところから包括的に学びたいと思い、本書を読みました。

読んだ本

Pythonエンジニア養成読本[いまどきの開発ノウハウ満載!] (Software Design plus)

Pythonエンジニア養成読本[いまどきの開発ノウハウ満載!] (Software Design plus)

2015年に出ている本のため、最新の技術的な情報としては若干古いのかもしれないですが

Python初学者の私にとっては、Pythonについてとても包括的にまとめられていて、とても勉強になる本だなと感じました。

学んだこと

Pythonについて

Pythonスクリプト言語。PSF(Python Software Foundation)という非営利団体で管理されている。

特徴

設計思想は「シンプルで読みやすいコードが書けること」。

The Zen of Python

Pythonのコーディングに関する考え方?

qiita.com

コミュニティ

  • PyCon

Youtubeとかでセッションをなんとなく見たことがありましたが、国際カンファレンスと日本で行われているカンファレンスがあるようです。

チュートリアルなども開催されるようなので、時間があったら行ってみたいです。

pycon.jp

  • その他勉強会

多くの技術コミュニティが紹介されていました。活発で良いなあと思いました。

Webアプリケーションフレームワーク入門

WSGI

Web Server Gateway Interfaceのこと。

WebサーバとWebアプリケーションを接続するためのインタフェースのこと。

実際にはWebサーバとWebアプリケーション間の情報のやりとり方法を定義している。

Webアプリケーションフレームワーク

フレームワークとは、アプリケーションの大枠の処理を提供するライブラリ。

フレームワークを用いた開発では、アプリケーションの処理の流れはフレームワークで制御し、開発者はその仕組みの中で必要な部分を開発する。

  • Django: 多機能、ドキュメントも充実している
  • Pyramid: 小さく、早く、堅実
  • Tornado: Facebookによって開発された、スケーラブル
  • Flask: 軽量、シンプルで拡張性が高い
  • Bottle: サードパーティのパッケージに依存せず、Pythonの標準ライブラリのみで動作する

Webアプリケーションフレームワークでできること

フレームワークによって、違いはあるかもしれないですが、大まかに下記ができます。

  • ルーティング

リクエストされたURLと処理するコードを対応づけるしくみ

  • テンプレートエンジン

雛形となるテンプレートとデータを合成して、最終的に文書を作り出す機能を提供

  • HTTPユーティリティ

リクエスト情報やレスポンス情報を取得、設定する機能

  • サーバ

ビルトインの開発サーバ。開発時にはデバッグ出力やアプリケーションのリロードなどの便利な機能が活用できる。

WSGIをサポートしているため、本番運用時には要件に合わせてサーバを選択できる。

本番運用時にどのようなコードを書いていけば良いのか、その辺りはよく分かっていないため、もう少し詳しく学ばなければいけないなと感じています。

WSGIとかサーバについての知識が少ないため、この辺りをちゃんと学んだほうが良いのかなと思いました。

Ansible

開発環境の自動化を行う、Infrastructure as a Codeの方法の1つのようです。

Dockerとの使い分けなど調べてみたのですが、詳しいところまでは分からず。

acro-engineer.hatenablog.com

その他本に書いてあったこと

  • インストール方法
  • データ型
  • 便利なライブラリ紹介
  • GitとGithubについて
  • PyCharmやIPython(Jupiter Notebook)を使った環境構築
  • NumPy・Pundasについて
  • データの可視化