狠狠撸

狠狠撸Share a Scribd company logo
PyCon JP 2016
ビギナーセッション
2016-09-21 Tetsuya Morimoto
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
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
Contents
● コマンドラインで使えるツールを作る (CLI ツール)
● Python のパッケージとモジュール
● インタラクティブシェルを使った開発のやり方
● 書式指定文字列を使って出力する
● Web API を呼び出す (requests)
● コーディングスタイルをテストする (flake8)
● テストを書く (doctest)
● 関数のプロファイルを行う (timeit)
● モジュール構造をリファクタリングをする
Agenda
● slack API を使う
○ チャンネルにメッセージを投稿する
● yahoo API を使う
○ ヤフーオークションの商品リストを取得する
● CSV データを処理する
○ CSV ビューアを作る
○ 作ったプログラムを CLI ツールとして使いやすくする
○ CSV データをデータベースに永続化する
Design
● WEB+DB PRESS Vol.74
○ http://gihyo.jp/magazine/wdpress/archive/2013/vol74
○ 良い設計の基礎知識 変化に強い構造?読みやすいコード?適切な分割
○ 私はこの記事の設計原則に影響を受けている
● プログラミングの設計手法の歴史として、構造化プログラミング から オブジェクト指
向プログラミング や 関数型プログラミング などが発展してきた
○ 大きなプログラムを開発するときに全体を部分に分割して、部分ごとの開発に注力することで複雑
さを軽減する考え方を 分割統治 という (≒ 関心の分離)
○ プログラミングに関する手法や機構などは分割統治を目的にしていることが多い
○ 分割統治しても全体の複雑さは変わらない → 部分ごとの依存性として複雑さが残る

More Related Content

What's hot (20)

PDF
Goji とレイヤ化アーキテクチャ
Shiroyagi Corporation
?
PDF
Python札幌 2012/06/17
Shinya Okano
?
PDF
次世代言語 Python による PyPy を使った次世代の処理系開発
shoma h
?
PDF
翱厂厂と私
Hattori Hideo
?
PDF
搁耻产测エンジニアが笔测迟丑辞苍を诲颈蝉るために笔测迟丑辞苍を勉强してみた
Yusuke Kon
?
PDF
今日から始めるGopher - スタートGo #0 @GDG名古屋
Takuya Ueda
?
PDF
エテ?ィタの壁を越える骋辞の开発ツールの文化と作成法
Takuya Ueda
?
PDF
骋辞て?飞别产アフ?リを开発してみよう
Takuya Ueda
?
PDF
久しぶりの笔测迟丑辞苍で驳辞辞驳濒别のアレを制御してみた
Shohei Tai
?
ODP
stapy#23 LT
NaoY-2501
?
PPTX
Python エンジニアの作り方 2011.08 #pyconjp
Takeshi Komiya
?
PDF
入門書を読み終わったらなにしよう? ?Python と WebAPI の使い方から学ぶ次の一歩? / next-step-python-programing
Kei IWASAKI
?
PDF
Go初心者向けハンズオン コマンドラインツールを作ろう
Takuya Ueda
?
PDF
S01 t1 tsuji_pylearn_ut_01
Takeshi Akutsu
?
PDF
骋辞入门
Takuya Ueda
?
PDF
奥颈苍诲辞飞蝉で笔测迟丑辞苍
drillan
?
PDF
スクレイヒ?ンク?と笔测迟丑辞苍
Hironori Sekine
?
PDF
チームで活用する础苍补肠辞苍诲补入门
Takeshi Akutsu
?
PDF
骋辞とテスト
Takuya Ueda
?
PDF
Pythonによるwebアフ?リケーション入門 - Django編-
Hironori Sekine
?
Goji とレイヤ化アーキテクチャ
Shiroyagi Corporation
?
Python札幌 2012/06/17
Shinya Okano
?
次世代言語 Python による PyPy を使った次世代の処理系開発
shoma h
?
翱厂厂と私
Hattori Hideo
?
搁耻产测エンジニアが笔测迟丑辞苍を诲颈蝉るために笔测迟丑辞苍を勉强してみた
Yusuke Kon
?
今日から始めるGopher - スタートGo #0 @GDG名古屋
Takuya Ueda
?
エテ?ィタの壁を越える骋辞の开発ツールの文化と作成法
Takuya Ueda
?
骋辞て?飞别产アフ?リを开発してみよう
Takuya Ueda
?
久しぶりの笔测迟丑辞苍で驳辞辞驳濒别のアレを制御してみた
Shohei Tai
?
stapy#23 LT
NaoY-2501
?
Python エンジニアの作り方 2011.08 #pyconjp
Takeshi Komiya
?
入門書を読み終わったらなにしよう? ?Python と WebAPI の使い方から学ぶ次の一歩? / next-step-python-programing
Kei IWASAKI
?
Go初心者向けハンズオン コマンドラインツールを作ろう
Takuya Ueda
?
S01 t1 tsuji_pylearn_ut_01
Takeshi Akutsu
?
骋辞入门
Takuya Ueda
?
奥颈苍诲辞飞蝉で笔测迟丑辞苍
drillan
?
スクレイヒ?ンク?と笔测迟丑辞苍
Hironori Sekine
?
チームで活用する础苍补肠辞苍诲补入门
Takeshi Akutsu
?
骋辞とテスト
Takuya Ueda
?
Pythonによるwebアフ?リケーション入門 - Django編-
Hironori Sekine
?

Similar to PyCon JP 2016 ヒ?キ?ナーセッション (20)

PPT
Python languageupdate (2004)
泰 増田
?
PDF
Python & PyConJP 2014 Report
gree_tech
?
PDF
Introduction Pycon2010
(shibao)芝尾 (kouichiro)幸一郎
?
PDF
笔测苍辩祭り资料
一路 川染
?
PDF
【更新版】20190628玉川大学脳トレ社会科学辞罢谤别别演习编
Akira Goto
?
PPTX
pf-1. Python,Google Colaboratory
kunihikokaneko1
?
PDF
DATUM STUDIO PyCon2016 Turorial
Tatsuya Tojima
?
PDF
Pyconjp2014_implementations
masahitojp
?
PPTX
2017/12/21 虎の穴 Python勉強会
虎の穴 開発室
?
ODP
Introduction of Python
Tomoya Nakayama
?
PDF
エキ Py 読書会02 2章前半
Tetsuya Morimoto
?
PDF
(Pythonで作って学ぶ) Youtube の動画リストを作るアフ?リの開発 ?第2回
Project Samurai
?
PDF
はし?めての笔测迟丑辞苍
Katsumi Honda
?
PDF
エキ Py 読書会02 2010/9/7
Tetsuya Morimoto
?
PDF
笔测迟丑辞苍と笔测颁辞搁础惭でお手軽に贵笔骋础システムを开発してみよう
Shinya Takamaeda-Y
?
PPTX
システム开発体験プログラム
Hajime Ookoshi
?
PDF
PyConJP2012 メンバ募集 -pyfes 2012.03-
shoma h
?
PDF
笔测迟丑辞苍のすすめ
Masashi Shibata
?
PDF
Python physicalcomputing
Noboru Irieda
?
PDF
笔测迟丑辞苍入门
Shohei Okada
?
Python languageupdate (2004)
泰 増田
?
Python & PyConJP 2014 Report
gree_tech
?
笔测苍辩祭り资料
一路 川染
?
【更新版】20190628玉川大学脳トレ社会科学辞罢谤别别演习编
Akira Goto
?
pf-1. Python,Google Colaboratory
kunihikokaneko1
?
DATUM STUDIO PyCon2016 Turorial
Tatsuya Tojima
?
Pyconjp2014_implementations
masahitojp
?
2017/12/21 虎の穴 Python勉強会
虎の穴 開発室
?
Introduction of Python
Tomoya Nakayama
?
エキ Py 読書会02 2章前半
Tetsuya Morimoto
?
(Pythonで作って学ぶ) Youtube の動画リストを作るアフ?リの開発 ?第2回
Project Samurai
?
はし?めての笔测迟丑辞苍
Katsumi Honda
?
エキ Py 読書会02 2010/9/7
Tetsuya Morimoto
?
笔测迟丑辞苍と笔测颁辞搁础惭でお手軽に贵笔骋础システムを开発してみよう
Shinya Takamaeda-Y
?
システム开発体験プログラム
Hajime Ookoshi
?
PyConJP2012 メンバ募集 -pyfes 2012.03-
shoma h
?
笔测迟丑辞苍のすすめ
Masashi Shibata
?
Python physicalcomputing
Noboru Irieda
?
笔测迟丑辞苍入门
Shohei Okada
?
Ad

More from Tetsuya Morimoto (14)

PDF
ビジネスパーソン x プログラミング
Tetsuya Morimoto
?
PDF
チケット駆动开発のススメ
Tetsuya Morimoto
?
PDF
笔测迟丑辞苍と型チェッカー
Tetsuya Morimoto
?
PDF
Python と型ヒント (Type Hints)
Tetsuya Morimoto
?
PDF
Hyper Introduction
Tetsuya Morimoto
?
PDF
ストリーミングのげんざい
Tetsuya Morimoto
?
PDF
Python3 プログラミング勉強会
Tetsuya Morimoto
?
PDF
PyCon 2012 紀行
Tetsuya Morimoto
?
PDF
Sphinx 社内勉強会
Tetsuya Morimoto
?
PDF
Ikazuchi introduction for Europython 2011 LT
Tetsuya Morimoto
?
PDF
笔测迟丑辞苍界隈の翻訳プロジェクト
Tetsuya Morimoto
?
PDF
エキ Py 読書会02 2章後半
Tetsuya Morimoto
?
PDF
Ex py intro-20100630
Tetsuya Morimoto
?
PDF
曖昧 RPM 講座
Tetsuya Morimoto
?
ビジネスパーソン x プログラミング
Tetsuya Morimoto
?
チケット駆动开発のススメ
Tetsuya Morimoto
?
笔测迟丑辞苍と型チェッカー
Tetsuya Morimoto
?
Python と型ヒント (Type Hints)
Tetsuya Morimoto
?
Hyper Introduction
Tetsuya Morimoto
?
ストリーミングのげんざい
Tetsuya Morimoto
?
Python3 プログラミング勉強会
Tetsuya Morimoto
?
PyCon 2012 紀行
Tetsuya Morimoto
?
Sphinx 社内勉強会
Tetsuya Morimoto
?
Ikazuchi introduction for Europython 2011 LT
Tetsuya Morimoto
?
笔测迟丑辞苍界隈の翻訳プロジェクト
Tetsuya Morimoto
?
エキ Py 読書会02 2章後半
Tetsuya Morimoto
?
Ex py intro-20100630
Tetsuya Morimoto
?
曖昧 RPM 講座
Tetsuya Morimoto
?
Ad

Recently uploaded (9)

PDF
安尾 萌, 藤代 裕之, 松下 光範. 協調的情報トリアージにおけるコミュニケーションの影響についての検討, 第11回データ工学と情報マネジメントに関する...
Matsushita Laboratory
?
PDF
SIG-AUDIO 2025 Vol.02 オンラインセミナー 「GDC2025 オーディオ報告会」SIG-Audio_GDC2025_報告会資料_渡辺さ...
IGDA Japan SIG-Audio
?
PDF
SIG-AUDIO 2025 Vol.02 オンラインセミナー 「GDC2025 オーディオ報告会」SIG-Audio_GDC2024_報告会資料_増野さ...
IGDA Japan SIG-Audio
?
PDF
マルチAIエージェントの産業界での実践に向けたオープンソース活動の展望 - Japan Regional User Group (RUG) Meet-Up
Kosaku Kimura
?
PDF
安尾 萌, 松下 光範. 環境馴致を計量可能にするための試み,人工知能学会第4回仕掛学研究会, 2018.
Matsushita Laboratory
?
PDF
安尾 萌, 北村 茂生, 松下 光範. 災害発生時における被害状況把握を目的とした情報共有システムの基礎検討, 電子情報通信学会HCGシンポジウム2018...
Matsushita Laboratory
?
PDF
API認可を支えるKeycloakの基本と設計の考え方 ~ OAuth/OIDCによるAPI保護のベストプラクティス ~
Hitachi, Ltd. OSS Solution Center.
?
PDF
論文紹介:AutoPrompt: Eliciting Knowledge from Language Models with Automatically ...
Toru Tamaki
?
PDF
論文紹介:Unbiasing through Textual Descriptions: Mitigating Representation Bias i...
Toru Tamaki
?
安尾 萌, 藤代 裕之, 松下 光範. 協調的情報トリアージにおけるコミュニケーションの影響についての検討, 第11回データ工学と情報マネジメントに関する...
Matsushita Laboratory
?
SIG-AUDIO 2025 Vol.02 オンラインセミナー 「GDC2025 オーディオ報告会」SIG-Audio_GDC2025_報告会資料_渡辺さ...
IGDA Japan SIG-Audio
?
SIG-AUDIO 2025 Vol.02 オンラインセミナー 「GDC2025 オーディオ報告会」SIG-Audio_GDC2024_報告会資料_増野さ...
IGDA Japan SIG-Audio
?
マルチAIエージェントの産業界での実践に向けたオープンソース活動の展望 - Japan Regional User Group (RUG) Meet-Up
Kosaku Kimura
?
安尾 萌, 松下 光範. 環境馴致を計量可能にするための試み,人工知能学会第4回仕掛学研究会, 2018.
Matsushita Laboratory
?
安尾 萌, 北村 茂生, 松下 光範. 災害発生時における被害状況把握を目的とした情報共有システムの基礎検討, 電子情報通信学会HCGシンポジウム2018...
Matsushita Laboratory
?
API認可を支えるKeycloakの基本と設計の考え方 ~ OAuth/OIDCによるAPI保護のベストプラクティス ~
Hitachi, Ltd. OSS Solution Center.
?
論文紹介:AutoPrompt: Eliciting Knowledge from Language Models with Automatically ...
Toru Tamaki
?
論文紹介:Unbiasing through Textual Descriptions: Mitigating Representation Bias i...
Toru Tamaki
?

PyCon JP 2016 ヒ?キ?ナーセッション

  • 2. 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
  • 3. 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
  • 4. Contents ● コマンドラインで使えるツールを作る (CLI ツール) ● Python のパッケージとモジュール ● インタラクティブシェルを使った開発のやり方 ● 書式指定文字列を使って出力する ● Web API を呼び出す (requests) ● コーディングスタイルをテストする (flake8) ● テストを書く (doctest) ● 関数のプロファイルを行う (timeit) ● モジュール構造をリファクタリングをする
  • 5. Agenda ● slack API を使う ○ チャンネルにメッセージを投稿する ● yahoo API を使う ○ ヤフーオークションの商品リストを取得する ● CSV データを処理する ○ CSV ビューアを作る ○ 作ったプログラムを CLI ツールとして使いやすくする ○ CSV データをデータベースに永続化する
  • 6. Design ● WEB+DB PRESS Vol.74 ○ http://gihyo.jp/magazine/wdpress/archive/2013/vol74 ○ 良い設計の基礎知識 変化に強い構造?読みやすいコード?適切な分割 ○ 私はこの記事の設計原則に影響を受けている ● プログラミングの設計手法の歴史として、構造化プログラミング から オブジェクト指 向プログラミング や 関数型プログラミング などが発展してきた ○ 大きなプログラムを開発するときに全体を部分に分割して、部分ごとの開発に注力することで複雑 さを軽減する考え方を 分割統治 という (≒ 関心の分離) ○ プログラミングに関する手法や機構などは分割統治を目的にしていることが多い ○ 分割統治しても全体の複雑さは変わらない → 部分ごとの依存性として複雑さが残る