Slide 1

Slide 1 text

Djangoではじめる PyCharm入門 PyCon Kyushu 2018 Kashun Yoshida 2018-06-30

Slide 2

Slide 2 text

Who am I? / お前誰よ? ● @kashew_nuts ● BeProud Inc. ● Software Developer ● Python, Vim, PyCharm ● Django Girls Tutorial ● Django Documentation ● vimdoc-ja

Slide 3

Slide 3 text

What's BeProud? ● 東京に本拠を置くPythonエンジニアリング会社 ● Webサービス: ○ Connpass: エンジニアをつなぐ IT勉強会支援プラットフォーム ○ PyQ: Python学習用のオンラインプラットフォーム ● フルリモートワーキング (5days/week)

Slide 4

Slide 4 text

書籍が出版されました ● Pythonプロフェッショナルプロ グラミング 第3版 ● 6/12発売 ● Git/GitHub対応 ● CIがJenkins→CircleCIに ● 機械学習プロジェクト対応

Slide 5

Slide 5 text

発表の動機/目的 ● 「PyCharmどうですか?」と漠然と聞かれることがあった。 ● 実際仕事でPyCharmを使っているが, PyCharmの使い方, 利 用してるライブラリー, 周辺環境など色々なトピックがあった。 ● その中でPyCharmを使うと便利な点をまとめてみたいなと 思った次第です。

Slide 6

Slide 6 text

対象 ● PyCharmを使ってみたいが, どうやって使っていったらいいか わからない人 ● 普段からPyCharmを使っているが, もっと使いこなしたい人 ● 他に使い慣れているツールがあるが, PyCharmもおさえてお きたい人

Slide 7

Slide 7 text

今日の目標 ● PyCharm完全にマスターした

Slide 8

Slide 8 text

前提とする環境 ● サンプルコードはすべてPython3.6, Django2.0 ● 利用バージョン: PyCharm Professional 2018.1 ● 題材: Django Girls Tutorial ● リポジトリ: https://github.com/kashewnuts/djangogirlstutorial

Slide 9

Slide 9 text

目次 ● PyCharm概要 ● PyCharmがサポートしていること ● 実際にPyCharmを使っていての感想 ● PyCharmが向いていないこと ● 基本機能 ● Djangoサポート ● フロントエンドサポート ● データベースサポート ● リモート開発 ● テスト実行 ● PyCharmを使うとき注意すべきこと

Slide 10

Slide 10 text

引用: https://www.jetbrains.com/pycharm/

Slide 11

Slide 11 text

What's PyCharm ? ● https://www.jetbrains.com/pycharm/ ● チェコのJetBrains社が作成するPython統合開発環境 ○ ~Python IDE for Professional Developers~ ● 無償のCommunity版と有償のProfessional版がある ○ Community版は機能制限あり ○ サポートしてる機能の違いは PyCharm Editions Comparison に まと められてる

Slide 12

Slide 12 text

インストール要件 ● ハードウェア条件 ○ 最小4 GB RAM, 8 GB RAMを推奨 ○ 1.5 GBのハードディスク空き容量+キャッシュ用に少なくと も1 GB ○ 1024x768の最小画面解像度 ● ソフトウェア要件 ○ OS: Windows, macOS, Linuxに対応 ○ Python: 2.4以降, Jython, PyPy, IronPython

Slide 13

Slide 13 text

PyCharmができること ● Intelligent Python Assistance ● Webアプリケーション開発 ○ (Django, Flask, Pyramid, JavaScript, ...) ● 科学技術系ツール (Jupyter, Numpy, matplotlib, ...) ● デバッグ, テスト, プロファイリング ● VCS連携 (Git, Mercurial, SVN) ● デプロイ, リモート開発 (Vagrant, Docker) ● データベースツール (MySQL, PostgreSQL, Oracle, AWS, …)

Slide 14

Slide 14 text

PyCharmに対しての感想 ● 他のツールを探しにいく必要がなくなった ● PythonもDjangoもよく知っているIDE ○ Python本体、Djangoのurls, views, models, templates, etc… ● コード補完と解析、インクリメンタルサーチが賢い ● Python事情への追従が速い: Python3.7, Django2.0 ● Webアプリケーション開発をするにあたり必要なものが揃っていて必要なときに使 いやすい (Database&SQL, VCS, Remote Development) ● デバッガーが優秀: ○ Django runserverしながらCeleryのデバッグができたり , pytestをステップ実行できたり , JavaScript とPythonの両方でデバッグできたりして至極便利 ● Gitのブランチ操作がサクサク動くし, コンフリクトの解消もしやすい ● 困ったときはSearchEverywhereやFind in Actionで調べれば大抵のことは解決

Slide 15

Slide 15 text

PyCharmが向いていないこと ● プラグインの作成(Javaで書く必要がある) ● 単一ファイルの編集するエディタ代わりの使い方

Slide 16

Slide 16 text

DEMO

Slide 17

Slide 17 text

PyCharmの基本機能 ● Pythonのシンタックスハイライト, コード補完, 定義ジャンプ対 応 ● Python2/3対応 ● virtualenvサポート ● GUIのパッケージマネージャー ● リファクタリング, デバッガ, コードインスペクション ● VCS連携 ● Terminalサポート

Slide 18

Slide 18 text

PyCharmのDjangoサポート ● 専用のプロジェクトタイプ ● manage.pyユーティリティの実行 ● Django用に強化されたコード補完, 定義ジャンプ, デバッグの 連携 ○ UrlConf, View, Model, Templates, Forms ● Model用の依存関係図作成

Slide 19

Slide 19 text

フロントエンド ● 同社のWebStrom (Front-end用IDE) 相当を同梱 ● HTML, CSS, JavaScriptのコード補完, 定義ジャンプ, コード 解析 ● JavaScriptのFramework対応 ○ Angular, React, Vue.js, and more ● CSS Framework対応 ○ SASS, SCSS, Less, and more.

Slide 20

Slide 20 text

データベース ● 同社のDataGrip (DataBase & SQL用ツール) 相当を同梱 ● DataBase & SQLサポート ○ SQLの作成と実行, コード補完, リファクタリング ● SQLAlchemy対応 ● CSV/JSON/XML出力対応 ● 対応するDataBase ○ Amazon Aurora, Amazon Redshift, MariaDB, MySQL, Oracle, PostgreSQL, SQL Server, SQLite3, and more.

Slide 21

Slide 21 text

リモート開発 ● VagrantやDocker, Docker Composeサポート ○ 起動, 終了, リロード ○ Remote Interpretersの指定, Remote Debug ● SSH Remote ○ Vagrantfileを使ったSSH ○ WSLの実行やデバッグ ○ SSHやSSLを使用したリモート接続 ● コードデプロイ (SFTP)

Slide 22

Slide 22 text

テスト実行 ● unittest, pytest, nose, doctest, toxをサポート ● テスト対象を指定して実行できる ○ 失敗したテスト ○ 指定したクラス配下のテスト ○ 指定した関数のテスト ● Coverageの表示

Slide 23

Slide 23 text

フルスタックWebアプリケーション開発 引用: https://www.jetbrains.com/pycharm/features/web_development.html

Slide 24

Slide 24 text

PyCharmを使うとき注意すべきこと ● トリッキーな使い方をするとハマる ● 予期せぬ出来事にであったときは何が問題なのか切り分ける ○ PyCharm側の問題?関連するツールの問題?(Python, MySQL, Vagrant, Docker, SSH...) ● PyCharmのバグを踏んだときはがんばり過ぎない ○ なんか今日は機嫌悪いな?と思ったらInvalidate Caches/Restart ○ Stop&Startで直ることも。再インストールは最終手段。 ○ 不具合は報告すると比較的すぐに対応してくれるので, Issueトラッカー に登録or見つけたらVote

Slide 25

Slide 25 text

リファレンス ● PyCharmの使い方 - 公式ヘルプ | PyCharm (ja / en) ● Pythonエンジニア ファーストブック ● IntelliJ IDEAハンズオン 基本操作からプロジェクト管理までマ スター ● Android Studio本格活用バイブル

Slide 26

Slide 26 text

ご清聴ありがとうございました