Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Django で始める PyCharm 入門

Django で始める PyCharm 入門

Kashun Yoshida

June 30, 2018
Tweet

More Decks by Kashun Yoshida

Other Decks in Programming

Transcript

  1. Who am I? / お前誰よ? • @kashew_nuts • BeProud Inc.

    • Software Developer • Python, Vim, PyCharm • Django Girls Tutorial • Django Documentation • vimdoc-ja
  2. 前提とする環境 • サンプルコードはすべてPython3.6, Django2.0 • 利用バージョン: PyCharm Professional 2018.1 •

    題材: Django Girls Tutorial • リポジトリ: https://github.com/kashewnuts/djangogirlstutorial
  3. 目次 • PyCharm概要 • PyCharmがサポートしていること • 実際にPyCharmを使っていての感想 • PyCharmが向いていないこと •

    基本機能 • Djangoサポート • フロントエンドサポート • データベースサポート • リモート開発 • テスト実行 • PyCharmを使うとき注意すべきこと
  4. What's PyCharm ? • https://www.jetbrains.com/pycharm/ • チェコのJetBrains社が作成するPython統合開発環境 ◦ ~Python IDE

    for Professional Developers~ • 無償のCommunity版と有償のProfessional版がある ◦ Community版は機能制限あり ◦ サポートしてる機能の違いは PyCharm Editions Comparison に まと められてる
  5. インストール要件 • ハードウェア条件 ◦ 最小4 GB RAM, 8 GB RAMを推奨

    ◦ 1.5 GBのハードディスク空き容量+キャッシュ用に少なくと も1 GB ◦ 1024x768の最小画面解像度 • ソフトウェア要件 ◦ OS: Windows, macOS, Linuxに対応 ◦ Python: 2.4以降, Jython, PyPy, IronPython
  6. PyCharmができること • Intelligent Python Assistance • Webアプリケーション開発 ◦ (Django, Flask,

    Pyramid, JavaScript, ...) • 科学技術系ツール (Jupyter, Numpy, matplotlib, ...) • デバッグ, テスト, プロファイリング • VCS連携 (Git, Mercurial, SVN) • デプロイ, リモート開発 (Vagrant, Docker) • データベースツール (MySQL, PostgreSQL, Oracle, AWS, …)
  7. 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で調べれば大抵のことは解決
  8. PyCharmの基本機能 • Pythonのシンタックスハイライト, コード補完, 定義ジャンプ対 応 • Python2/3対応 • virtualenvサポート

    • GUIのパッケージマネージャー • リファクタリング, デバッガ, コードインスペクション • VCS連携 • Terminalサポート
  9. フロントエンド • 同社のWebStrom (Front-end用IDE) 相当を同梱 • HTML, CSS, JavaScriptのコード補完, 定義ジャンプ,

    コード 解析 • JavaScriptのFramework対応 ◦ Angular, React, Vue.js, and more • CSS Framework対応 ◦ SASS, SCSS, Less, and more.
  10. データベース • 同社のDataGrip (DataBase & SQL用ツール) 相当を同梱 • DataBase &

    SQLサポート ◦ SQLの作成と実行, コード補完, リファクタリング • SQLAlchemy対応 • CSV/JSON/XML出力対応 • 対応するDataBase ◦ Amazon Aurora, Amazon Redshift, MariaDB, MySQL, Oracle, PostgreSQL, SQL Server, SQLite3, and more.
  11. リモート開発 • VagrantやDocker, Docker Composeサポート ◦ 起動, 終了, リロード ◦

    Remote Interpretersの指定, Remote Debug • SSH Remote ◦ Vagrantfileを使ったSSH ◦ WSLの実行やデバッグ ◦ SSHやSSLを使用したリモート接続 • コードデプロイ (SFTP)
  12. テスト実行 • unittest, pytest, nose, doctest, toxをサポート • テスト対象を指定して実行できる ◦

    失敗したテスト ◦ 指定したクラス配下のテスト ◦ 指定した関数のテスト • Coverageの表示
  13. PyCharmを使うとき注意すべきこと • トリッキーな使い方をするとハマる • 予期せぬ出来事にであったときは何が問題なのか切り分ける ◦ PyCharm側の問題?関連するツールの問題?(Python, MySQL, Vagrant, Docker,

    SSH...) • PyCharmのバグを踏んだときはがんばり過ぎない ◦ なんか今日は機嫌悪いな?と思ったらInvalidate Caches/Restart ◦ Stop&Startで直ることも。再インストールは最終手段。 ◦ 不具合は報告すると比較的すぐに対応してくれるので, Issueトラッカー に登録or見つけたらVote
  14. リファレンス • PyCharmの使い方 - 公式ヘルプ | PyCharm (ja / en)

    • Pythonエンジニア ファーストブック • IntelliJ IDEAハンズオン 基本操作からプロジェクト管理までマ スター • Android Studio本格活用バイブル