Movatterモバイル変換


[0]ホーム

URL:


gree_tech, profile picture
Uploaded bygree_tech
PDF, PPTX2,977 views

Python & PyConJP 2014 Report

グリー社内勉強会「Mini Tech Talk」発表資料 20141031Python & PyConJP 2014 Report / 亀井 利光 & 中野 和貴※「Mini Tech Talk」とは、グリー社内で毎週金曜のランチタイムを利用して開催されている技術勉強会です

Embed presentation

Download as PDF, PPTX
Python & PyConJP 2014 Report UtilityTeam Toshimitsu.kamei & Infra Team Kazuki Nakano
Welcome to Our Slide :)
の前に
お前、だれよ? • 亀井といいます • 社内系システムを作ってます(いわゆるDevOps) • Pythonおぢさん(33)
さて
What is PyConJP ?
PyConJP • 日本で一番大きなPythonのカンファレンス • 日本では2010年からスタート • 世界20カ国で開催されています
今回 GREEがPyConJP 2014 に ゴールドスポンサーとして 出資をしてくれました
Thank you GREE!!! (手前味噌♥)
PyConJPの話の前に
Pythonについて
Python?
インデントを強制する 変態言語 ! (と思われがち)
でも…
こんなニュースも 出典 GIGAZINE: http://gigazine.net/news/20140715-python-most-popular-language/
出典: techcrunch http://jp.techcrunch.com/2012/02/10/20120209awwwwwwwwwwwwwwwwww/
Why Choose Python?
Beautiful • 綺麗に }Coding • 簡潔に 作ることができるから • 素早く
Pythonの思想 There should be one and preferably only one obvious way to do it. (たったひとつの冴えたやりかたがあるはずだ。)
その思想からくるもの •Battery Included •>>> import this
Battery Included
標準モジュール •非常に多彩 •そして強力 •無駄がない(あると切られる)
このおかげで • アイディアをすぐに実現できる • 綺麗で手間なく簡潔
外部ライブラリも充実
Pypi
そして
import this • Zen of Python(Pythonの設計思想)を示す物 • これを心に止めておけば常にクリーンな設計や コードを保つことができる(はず) • これも標準モジュール
いくつか • Beautiful is better than ugly (汚いよりきれいな方がいい)
いくつか • Explicit is better than implicit (暗黙的より明示的のほうがいい)
いくつか • Readability counts. (読みやすさが重要だよ)
当たり前のことだけども ! この思想は 我々エンジニアにとって 非常に重要
何故なら 現在も未来も 楽しくハッキングするため
これがPython
そんなPythonのお祭り PyConJP 2014 に いってきました
興味深いセッションが たくさんあった
• Deep Learning for Image Recognition in Python (ja) • Djangoによるスマホアプリバックエンドの実装 (ja) • リファクタリングツールあれこれ • OpenCVのpythonインターフェース入門 (ja) • Pythonによる非同期プログラミング入門 (ja) • Pythonとscikit-learnではじめる機械学習 (ja) • データ分析の世界へようこそ! ~マーケティングに活かせるPythonライブラリ~ (ja)
どれもこれも 面白そうで 仕事に良い影響を 与えてくれそうなものばかり!
僕が見たセッション • Micro Python で組み込み Python (ja) • PyNES: Python programming for Nintendo 8 bits. (en) • パッケージングの今 (ja) • Pythonではじめる野球プログラミング (ja)
_人人人人人人人人人人人人人人_ >  組み込み系ばっかり!! < ‾Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y‾
何故組み込み系… • 自分の中で6502が熱い • Pythonでかかれた Apple II エミュレー ターを読んでしまったから • AppleII が作りたい!! • (一部だけ作った。Pythonで) • 実際の 6502 CPUを叩いてる
というわけで 僕の無駄話は後半で  時間があればね!
僕が見たセッション • Micro Python で組み込み Python (ja) • PyNES: Python programming for Nintendo 8 bits. (en) • パッケージングの今 (ja) • Pythonではじめる野球プログラミング (ja)
というわけでPyNes • Pythonで書いたコードを6502アセンブラに変 換してくれる。 • Nesファイルも吐ける • というか、ファミコンのゲームが作れる
そして、 同じCPU!! (ちょっとだけ違うけど)
しかし今更ファミコン…? • 名作がたくさんある!! • “ゲーム”の技術としては歴史的にも 重要じゃね!? • プロトタイピングに使えないかな?
というわけで… •このセッション用に DEMOを作ってみた
D E M O
なんですが・・・
DEMOについて 本日はこのスライドをご覧いただき ありがとうございます。 ! 大変申し訳ありませんが、 どう考えても著作権に問題がある キャラクターが出来上がってしまったため、 ご覧になることができません。 ! またの御アクセスをお待ちしております © GREE
結果 • 動かせた!!!! • パレット3色(透明を入れれば4色)しかない のに・・・当時のドット絵師すごい • キャラクタ作るの超大変・・・・ • 綺麗な黄色は単色/2色カラーのキャラしか無理
結論 プロトタイプには むかなかった
Pythonでファミコンプログラミング ~ プロトタイピングとは何だったのか ~ ! \(^o^)/ N E S
さて、そろそろまじめに まとめ
このセッションのまとめ Pythonを使えば 色々なことが 簡潔 に 綺麗 に 素早くできるよ
Webシステム作成も
ゲーム作成も
CLIツールも
画像解析も
数値系/化学系も
学習用途にも
Minecraftの操作だって!
Try It !
そして・・・
お客様の中に いらっしゃいませんか!? • Pythonが好きな人, 使ってみたい人,質問がある人 • Apple II が好きな人 / 6502が好きな人
是非お友達になりましょう :)
お前、だれよ? • 中野 和貴 • インフラストラクチャ統括部 • 開発部 システムデザインチーム • Creatio • OpenStack上のVMコントロールポータル • 社内利用に最適化された形で初期化までする • Python + Django + Celery
ということで 参加してきたセッション • Keynote • https://speakerdeck.com/kennethreitz/python-2-dot-7-and-python-3- a-sacred-love-story • Python実装系総ざらい • http://www.slideshare.net/masahitojp/pyconjp2014 • リファクタリングツールあれこれ • http://tell-k.github.io/pyconjp2014/#/
ということで 参加してきたセッション • Keynote • Python実装系総ざらい • リファクタリングツールあれこれ
Keynote • Python3.x系ってまだまだこれからなものだ • スタンダードライブラリが壊れてたりする • HTTPライブラリとかでも問題があるとこがあったり • Python2.x系がまだまだスタンダードなPythonなのかも • pipからのモジュールダウンロード数 • 2系に比べてまだまだ8分の1強ぐらいしか
Keynote • なんでこうなった? • 前からPythonを使ってる人が中々移行しない • しかし、新しくPythonを使おうとしている人 は3.x系から使い始めている人が多い? • この結果、Python使いの間に分断が起きた • でもそれじゃあやっぱりよくない
Keynote • どうしていけばいいか • もっと3.x系にみんな触れてみよう • もっとフィードバックしていこう • そうやって、2つを1つにしていければ素晴らし いと思う
ということで 参加してきたセッション • Keynote • Python実装系総ざらい • リファクタリングルールあれこれ
Python実装系総ざらい • Pythonの処理系には色々なものがある • 標準実装はCPythonと呼ばれるもの • 他にも色々あって状況に応じたプログラム資産 を使うことが出来る
Python実装系総ざらい • 紹介されていたもの • CPython • Jython • IronPython • PyPy • Pyston
Python実装系総ざらい • CPython • 一番使われている標準実装 • Pythonで出来ない事や高速性が必要なところがあれば、C/C++で 拡張モジュールが作れる • ctypesモジュールを使ってDLLをロードできる • Jython • JVM上で動作するPython • Javaのライブラリを使うことができる
Python実装系総ざらい • IronPython • .NET Framework上で動作するPython • Python tools for Visual Studioで導入できる • 最新版は.NET 4に対応 • DLR(動的言語ランタイム)上に実装されている • ここまでがライブラリ資産を効率的に使うための実装系 • 次は高速実行するための実装系
Python実装系総ざらい • PyPY • Pythonに幾つか制約を加えたRPythonで記述 • 早さを売りにしている • JITコンパイラ機能を利用している • Pyston • Dropbox社で作られている実装系 • LLVMでビルド、LLVM IRに変換して実行される • ループ系処理速度がまだ弱くそこは今後に期待
Python実装系総ざらい • グルー言語としてのPythonは便利 • Pythonの実行を効率化しようとする動きは複数 あるらしい
ということで 参加してきたセッション • Keynote • Python実装系総ざらい • リファクタリングルールあれこれ
リファクタリングツール • Pythonにはコミュニティが推奨するコーディングスタ イルが存在します • PEP8 • 推奨されるコーディングスタイルのガイド • PEP257 • 推奨されるdocstrings(ドキュメンテーション文字 列)の書き方のガイド
リファクタリングツール • 例えばPEP8の場合 • インデントはスペース4つで • 行の長さは最大で79文字 • トップレベルの関数やクラス間は2行空ける • クラス名はCapWords方式を使いましょう • 関数名は小文字のみ、単語間はアンダーバーを使いましょう • etc...etc...
リファクタリングツール • 別に守らなくても動きます • しかしながらこれを守って書くのが基本 • ある程度意識して書いていてもたまには沿ってな いところも出てくる • というわけで、チェックツールがあります
リファクタリングツール • pep8 • PEP8ガイドラインに沿っているかチェック • pep257 • PEP257ガイドラインに沿っているかチェック • pyflakes • 文法エラーがないかのチェック • 他にも使ってないimportや変数も教えてくれる • flake8 • pep8 + pyflakesを合わせてチェックしてくれるツール
リファクタリングツール • flake8を使うのが結構一般的 • 某社コードレビューのファーストステップでも使われているらしい • 機能拡張も可能 • flake8-docstringを入れればPEP257も合わせてチェック可能 • 循環的複雑度分析も可能らしい • setup.cfgを置くことでチェック内容のカスタマイズも可能 • 一行の長さは79文字じゃなくて100文字にしたい等
リファクタリングツール • 基本的にflake8でチェックして直せば大丈夫 • とはいえ、手で一々修正していくのも、、、 • ある程度は自動で修正して欲しい • そんなのあるの?
リファクタリングツール • 代表的な自動整形ツール • autopep8 • PEP8に沿った形に自動整形してくれる • autoflake • 使ってないimportや変数の削除をしてくれる
リファクタリングツール • 他にもこんなものがあります • docformatter • PEP257に沿ったdocstringに整形してくれる • unify • シングルクォーテーションに統一した形に整形してくれる • etc... • あまり過信しないで上手く使えばコーディング時間が短縮できる
リファクタリングツール • リファクタリングとは外れるが便利なもの • jedi • エディタ上で補完機能を提供してくれるツール • ドット区切り時に自動補完 • 関数の引数ヒントを表示 • Docstringの表示 • 関数定義場所へjump
リファクタリングツール • さらに突っ込んでリファクタリングしたい • リファクタリング専用ツールを使う • Rope • jediよりさらにリファクタリングに特化したツール • vim上でropeprojectを作成しコードを分析をさせる • 対処ソース情報をdbとして保存 • 変数/関数/クラスのリネーム機能、ムーブ機能 • さらにはimport文の追記等色々とやれる
リファクタリングツール • より定量的にリファクタリング箇所を探したい • コードメトリックスを見る • コードの複雑度のチェックをする • 潜在的にバグになりそうな箇所特定の参考に
リファクタリングツール • Radon • ABC評価でソースコードを評価してくれる • 循環的複雑度でのチェック • 保守容易性指数でのチェック • 上手く利用することで適切に改善が図れる • しかし、時間は有限 • オールAを目指して時間を費やすのは必ずしも良いことではない
リファクタリングツール • リファクタリングに有用なツールはPythonにも 紹介した物以外にも沢山あるらしい • コードを書く時間は有限 • 手に馴染むツールを見つけて適切に使う • 注力すべき場所に注力する

Recommended

PDF
次世代言語 Python による PyPy を使った次世代の処理系開発
PDF
スクレイピングとPython
PDF
Python3 プログラミング勉強会
PDF
RubyエンジニアがPythonをdisるためにPythonを勉強してみた
PDF
Pythonによるwebアプリケーション入門 - Django編-
PDF
Python札幌 2012/06/17
PDF
10分でわかるPythonの開発環境
PPTX
Python エンジニアの作り方 2011.08 #pyconjp
PPTX
211120 他人の書いたPythonスクリプトをステップ実行で理解する
PDF
Python パッケージの影響を歴史から理解してみよう!
PPTX
Pythonでpdfをいじってみる
PPTX
Pythonスタートアップ勉強会201109 python入門
PPTX
PythonとRによるデータ分析環境の構築と機械学習によるデータ認識 第3版
PPTX
GBDC 勉強会 #1 Python を用いたツール作成工数の最小化
PDF
言語処理するのに Python でいいの? #PyDataTokyo
PDF
久しぶりのPythonでgoogleのアレを制御してみた
PDF
scikit-learnを用いた機械学習チュートリアル
PDF
Pyconjp2016 pyftplib
KEY
Windowsにpythonをインストールしてみよう
PDF
「Python言語」はじめの一歩 / First step of Python
PDF
サードパーティパッケージの歩き方
PPTX
Pythonの環境導入 2014年春季版
PPTX
Pynyumon03 LT
PDF
S01 t1 tsuji_pylearn_ut_01
PDF
Py datameetup1
PPTX
191030 anna-with-python
PPTX
勉強会 Cvml python基礎
PDF
なぜ科学計算にはPythonか?
PDF
続Pythonによるwebスクレイピング入門
PDF
Python 機械学習プログラミング データ分析演習編

More Related Content

PDF
次世代言語 Python による PyPy を使った次世代の処理系開発
PDF
スクレイピングとPython
PDF
Python3 プログラミング勉強会
PDF
RubyエンジニアがPythonをdisるためにPythonを勉強してみた
PDF
Pythonによるwebアプリケーション入門 - Django編-
PDF
Python札幌 2012/06/17
PDF
10分でわかるPythonの開発環境
PPTX
Python エンジニアの作り方 2011.08 #pyconjp
次世代言語 Python による PyPy を使った次世代の処理系開発
スクレイピングとPython
Python3 プログラミング勉強会
RubyエンジニアがPythonをdisるためにPythonを勉強してみた
Pythonによるwebアプリケーション入門 - Django編-
Python札幌 2012/06/17
10分でわかるPythonの開発環境
Python エンジニアの作り方 2011.08 #pyconjp

What's hot

PPTX
211120 他人の書いたPythonスクリプトをステップ実行で理解する
PDF
Python パッケージの影響を歴史から理解してみよう!
PPTX
Pythonでpdfをいじってみる
PPTX
Pythonスタートアップ勉強会201109 python入門
PPTX
PythonとRによるデータ分析環境の構築と機械学習によるデータ認識 第3版
PPTX
GBDC 勉強会 #1 Python を用いたツール作成工数の最小化
PDF
言語処理するのに Python でいいの? #PyDataTokyo
PDF
久しぶりのPythonでgoogleのアレを制御してみた
PDF
scikit-learnを用いた機械学習チュートリアル
PDF
Pyconjp2016 pyftplib
KEY
Windowsにpythonをインストールしてみよう
PDF
「Python言語」はじめの一歩 / First step of Python
PDF
サードパーティパッケージの歩き方
PPTX
Pythonの環境導入 2014年春季版
PPTX
Pynyumon03 LT
PDF
S01 t1 tsuji_pylearn_ut_01
PDF
Py datameetup1
PPTX
191030 anna-with-python
PPTX
勉強会 Cvml python基礎
PDF
なぜ科学計算にはPythonか?
211120 他人の書いたPythonスクリプトをステップ実行で理解する
Python パッケージの影響を歴史から理解してみよう!
Pythonでpdfをいじってみる
Pythonスタートアップ勉強会201109 python入門
PythonとRによるデータ分析環境の構築と機械学習によるデータ認識 第3版
GBDC 勉強会 #1 Python を用いたツール作成工数の最小化
言語処理するのに Python でいいの? #PyDataTokyo
久しぶりのPythonでgoogleのアレを制御してみた
scikit-learnを用いた機械学習チュートリアル
Pyconjp2016 pyftplib
Windowsにpythonをインストールしてみよう
「Python言語」はじめの一歩 / First step of Python
サードパーティパッケージの歩き方
Pythonの環境導入 2014年春季版
Pynyumon03 LT
S01 t1 tsuji_pylearn_ut_01
Py datameetup1
191030 anna-with-python
勉強会 Cvml python基礎
なぜ科学計算にはPythonか?

Viewers also liked

PDF
続Pythonによるwebスクレイピング入門
PDF
Python 機械学習プログラミング データ分析演習編
PDF
実践・最強最速のアルゴリズム勉強会 第四回講義資料(ワークスアプリケーションズ & AtCoder)
PDF
RubyKaigi2014レポート
PDF
実践・最強最速のアルゴリズム勉強会 第三回講義資料(ワークスアプリケーションズ & AtCoder)
PDF
実践・最強最速のアルゴリズム勉強会 第五回講義資料(ワークスアプリケーションズ & AtCoder)
PDF
NumPy闇入門
PDF
実践・最強最速のアルゴリズム勉強会 第二回講義資料(ワークスアプリケーションズ & AtCoder)
PPTX
AtCoder Beginner Contest 012 解説
PDF
アルゴリズムのお勉強 アルゴリズムとデータ構造 [素数・文字列探索・簡単なソート]
PDF
指数時間アルゴリズム入門
PDF
数式をnumpyに落としこむコツ
PDF
計算量とオーダー
PDF
ソーティングと貪欲法
PDF
計算量
PDF
Agile66 - 新人研修でガチアジャイル
PDF
Python東海Vol.5 IPythonをマスターしよう
PDF
Python勉強会1-はじめに
PDF
Pythonデータ分析 第4回勉強会資料 12章
続Pythonによるwebスクレイピング入門
Python 機械学習プログラミング データ分析演習編
実践・最強最速のアルゴリズム勉強会 第四回講義資料(ワークスアプリケーションズ & AtCoder)
RubyKaigi2014レポート
実践・最強最速のアルゴリズム勉強会 第三回講義資料(ワークスアプリケーションズ & AtCoder)
実践・最強最速のアルゴリズム勉強会 第五回講義資料(ワークスアプリケーションズ & AtCoder)
NumPy闇入門
実践・最強最速のアルゴリズム勉強会 第二回講義資料(ワークスアプリケーションズ & AtCoder)
AtCoder Beginner Contest 012 解説
アルゴリズムのお勉強 アルゴリズムとデータ構造 [素数・文字列探索・簡単なソート]
指数時間アルゴリズム入門
数式をnumpyに落としこむコツ
計算量とオーダー
ソーティングと貪欲法
計算量
Agile66 - 新人研修でガチアジャイル
Python東海Vol.5 IPythonをマスターしよう
Python勉強会1-はじめに
Pythonデータ分析 第4回勉強会資料 12章

Similar to Python & PyConJP 2014 Report

PPTX
PythonとRによるデータ分析環境の構築と機械学習によるデータ認識
PPTX
2017/12/21 虎の穴 Python勉強会
PDF
Python と型ヒント (Type Hints)
PDF
Pythonの処理系はどのように実装され,どのように動いているのか? 我々はその実態を調査すべくアマゾンへと飛んだ.
PDF
Wrapping a C++ library with Cython
KEY
ひのきのぼうだけで全クリ目指す
PDF
エキ Py 読書会02 2章後半
PDF
PyPy 紹介
PDF
Pyconjp2014_implementations
PDF
Introduction Pycon2010
PPT
Python languageupdate (2004)
PDF
「Python言語」はじめの一歩 / First step of Python / 2016 Jan 12
PPTX
ゲーム開発者向けPythonセミナー(2018年06月20日)
PDF
Yapc2012ltthon
ODP
Introduction of Python
PDF
Python Kyoto study
PDF
LLdeade Python Language Update
PPTX
Wacode5thでのpython講義資料
PDF
エキ Py 読書会02 2章前半
PDF
エキ Py 読書会02 2010/9/7
PythonとRによるデータ分析環境の構築と機械学習によるデータ認識
2017/12/21 虎の穴 Python勉強会
Python と型ヒント (Type Hints)
Pythonの処理系はどのように実装され,どのように動いているのか? 我々はその実態を調査すべくアマゾンへと飛んだ.
Wrapping a C++ library with Cython
ひのきのぼうだけで全クリ目指す
エキ Py 読書会02 2章後半
PyPy 紹介
Pyconjp2014_implementations
Introduction Pycon2010
Python languageupdate (2004)
「Python言語」はじめの一歩 / First step of Python / 2016 Jan 12
ゲーム開発者向けPythonセミナー(2018年06月20日)
Yapc2012ltthon
Introduction of Python
Python Kyoto study
LLdeade Python Language Update
Wacode5thでのpython講義資料
エキ Py 読書会02 2章前半
エキ Py 読書会02 2010/9/7

More from gree_tech

PPTX
SINoALICE -シノアリス- Google Cloud Firestoreを用いた観戦機能の実現について
PPTX
コードの自動修正によって実現する、機能開発を止めないフレームワーク移行
PPTX
アプリ起動時間高速化 ~推測するな、計測せよ~
PPTX
「Atomic Design × Nuxt.js」コンポーネント毎に責務の範囲を明確にしたら幸せになった話
PPTX
シェアドサービスとしてのデータテクノロジー
PPTX
WFSにおけるCloud SpannerとGKEを中心としたGCP導入事例の紹介
PDF
GREE VR Studio Laboratory「XR-UX Devプロジェクト」の成果紹介
PPTX
REALITYアバターを様々なメタバースで活躍させてみた - GREE VR Studio Laboratory インターン研究成果発表
PPTX
サーバーフレームワークに潜んでる脆弱性検知ツール紹介
PPTX
アナザーエデンPC版リリースへの道のり 〜WFSにおけるマルチプラットフォーム対応の取り組み〜
PPTX
Cloud Spanner をより便利にする運用支援ツールの紹介
PPTX
比較サイトの検索改善(SPA から SSR に変換)
PPTX
翻訳QAでのテスト自動化の取り組み
PPTX
「ドキュメント見つからない問題」をなんとかしたい - 横断検索エンジン導入の取り組みについて-
PPTX
組み込み開発のテストとゲーム開発のテストの違い
PPTX
法人向けメタバースプラットフォームの開発の裏側をのぞいてみた(仮)
PPTX
長寿なゲーム事業におけるアプリビルドの効率化
PPTX
海外展開と負荷試験
PPTX
「やんちゃ、足りてる?」〜ヤンマガWebで挑戦を続ける新入りエンジニア〜
PPTX
データエンジニアとアナリストチーム兼務になった件について
SINoALICE -シノアリス- Google Cloud Firestoreを用いた観戦機能の実現について
コードの自動修正によって実現する、機能開発を止めないフレームワーク移行
アプリ起動時間高速化 ~推測するな、計測せよ~
「Atomic Design × Nuxt.js」コンポーネント毎に責務の範囲を明確にしたら幸せになった話
シェアドサービスとしてのデータテクノロジー
WFSにおけるCloud SpannerとGKEを中心としたGCP導入事例の紹介
GREE VR Studio Laboratory「XR-UX Devプロジェクト」の成果紹介
REALITYアバターを様々なメタバースで活躍させてみた - GREE VR Studio Laboratory インターン研究成果発表
サーバーフレームワークに潜んでる脆弱性検知ツール紹介
アナザーエデンPC版リリースへの道のり 〜WFSにおけるマルチプラットフォーム対応の取り組み〜
Cloud Spanner をより便利にする運用支援ツールの紹介
比較サイトの検索改善(SPA から SSR に変換)
翻訳QAでのテスト自動化の取り組み
「ドキュメント見つからない問題」をなんとかしたい - 横断検索エンジン導入の取り組みについて-
組み込み開発のテストとゲーム開発のテストの違い
法人向けメタバースプラットフォームの開発の裏側をのぞいてみた(仮)
長寿なゲーム事業におけるアプリビルドの効率化
海外展開と負荷試験
「やんちゃ、足りてる?」〜ヤンマガWebで挑戦を続ける新入りエンジニア〜
データエンジニアとアナリストチーム兼務になった件について

Python & PyConJP 2014 Report


[8]ページ先頭

©2009-2025 Movatter.jp