PyCon JP 2016 ビギナーセッション

6
PyCon JP 2016 ビギナーセッション 2016-09-21 Tetsuya Morimoto

Transcript of PyCon JP 2016 ビギナーセッション

Page 1: PyCon JP 2016 ビギナーセッション

PyCon JP 2016ビギナーセッション

2016-09-21 Tetsuya Morimoto

Page 2: PyCon JP 2016 ビギナーセッション

Intoroduction● 森本 哲也 (@t2y)● 白ヤギコーポレーション所属

○ サーバーサイドエンジニア

○ プログラミング言語歴 : Python → Java → Go

● Python Insider の翻訳: http://blog-ja.python.org/● PyPI: https://pypi.org/user/t2y/● セッションのサンプルコード

○ https://github.com/t2y/python-study/tree/master/BeginnerSession

Page 3: PyCon JP 2016 ビギナーセッション

Environment● バージョンは Python 3.5● なるべく標準ライブラリで実装する

○ http://docs.python.jp/3/library/index.html● あると便利な環境周りのツール

○ コーディングスタイルのテストツール

■ https://pypi.python.org/pypi/flake8○ インタラクティブシェル

■ https://pypi.python.org/pypi/ipython○ デバッグツール

■ https://pypi.python.org/pypi/ipdb

Page 4: PyCon JP 2016 ビギナーセッション

Contents● コマンドラインで使えるツールを作る (CLI ツール)● Python のパッケージとモジュール

● インタラクティブシェルを使った開発のやり方

● 書式指定文字列を使って出力する

● Web API を呼び出す (requests)● コーディングスタイルをテストする (flake8)● テストを書く (doctest)● 関数のプロファイルを行う (timeit)● モジュール構造をリファクタリングをする

Page 5: PyCon JP 2016 ビギナーセッション

Agenda● slack API を使う

○ チャンネルにメッセージを投稿する

● yahoo API を使う○ ヤフーオークションの商品リストを取得する

● CSV データを処理する○ CSV ビューアを作る

○ 作ったプログラムを CLI ツールとして使いやすくする

○ CSV データをデータベースに永続化する

Page 6: PyCon JP 2016 ビギナーセッション

Design● WEB+DB PRESS Vol.74

○ http://gihyo.jp/magazine/wdpress/archive/2013/vol74○ 良い設計の基礎知識 変化に強い構造・読みやすいコード・適切な分割

○ 私はこの記事の設計原則に影響を受けている

● プログラミングの設計手法の歴史として、構造化プログラミング から オブジェクト指

向プログラミング や 関数型プログラミング などが発展してきた

○ 大きなプログラムを開発するときに全体を部分に分割して、部分ごとの開発に注力することで複雑

さを軽減する考え方を 分割統治 という (≒ 関心の分離 )○ プログラミングに関する手法や機構などは分割統治を目的にしていることが多い

○ 分割統治しても全体の複雑さは変わらない → 部分ごとの依存性として複雑さが残る