Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Django で始める PyCharm 入門
Search
Kashun Yoshida
June 30, 2018
Programming
0
37
Django で始める PyCharm 入門
https://pycon-kyushu.connpass.com/event/84062/
http://kyushu.pycon.jp/
#PyCon9shu
Kashun Yoshida
June 30, 2018
Tweet
Share
More Decks by Kashun Yoshida
See All by Kashun Yoshida
Djangoアプリケーション運用のリアル〜問題発生から可視化、最適化への道〜 / django-application-realities
kashewnuts
0
190
開発環境の垣根を超えるLanguage Server Protocol入門 / Introduction to Language Server Protocol beyond the boundaries of the development environment
kashewnuts
1
3.2k
Other Decks in Programming
See All in Programming
Refactor your code - refactor yourself
xosofox
1
260
php-conference-japan-2024
tasuku43
0
270
SymfonyCon Vienna 2025: Twig, still relevant in 2025?
fabpot
3
1.2k
RWC 2024 DICOM & ISO/IEC 2022
m_seki
0
210
テストコードのガイドライン 〜作成から運用まで〜
riku929hr
3
370
42 best practices for Symfony, a decade later
tucksaun
1
180
PHPで作るWebSocketサーバー ~リアクティブなアプリケーションを知るために~ / WebSocket Server in PHP - To know reactive applications
seike460
PRO
2
270
「Chatwork」Android版アプリを 支える単体テストの現在
okuzawats
0
180
create_tableをしただけなのに〜囚われのuuid編〜
daisukeshinoku
0
240
Scalaから始めるOpenFeature入門 / Scalaわいわい勉強会 #4
arthur1
1
330
モバイルアプリにおける自動テストの導入戦略
ostk0069
0
110
責務を分離するための例外設計 - PHPカンファレンス 2024
kajitack
2
670
Featured
See All Featured
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
127
18k
Building an army of robots
kneath
302
44k
Reflections from 52 weeks, 52 projects
jeffersonlam
347
20k
GitHub's CSS Performance
jonrohan
1030
460k
It's Worth the Effort
3n
183
28k
Making Projects Easy
brettharned
116
5.9k
Java REST API Framework Comparison - PWX 2021
mraible
PRO
28
8.3k
We Have a Design System, Now What?
morganepeng
51
7.3k
Measuring & Analyzing Core Web Vitals
bluesmoon
4
170
What’s in a name? Adding method to the madness
productmarketing
PRO
22
3.2k
The Art of Programming - Codeland 2020
erikaheidi
53
13k
[RailsConf 2023] Rails as a piece of cake
palkan
53
5k
Transcript
Djangoではじめる PyCharm入門 PyCon Kyushu 2018 Kashun Yoshida 2018-06-30
Who am I? / お前誰よ? • @kashew_nuts • BeProud Inc.
• Software Developer • Python, Vim, PyCharm • Django Girls Tutorial • Django Documentation • vimdoc-ja
What's BeProud? • 東京に本拠を置くPythonエンジニアリング会社 • Webサービス: ◦ Connpass: エンジニアをつなぐ IT勉強会支援プラットフォーム
◦ PyQ: Python学習用のオンラインプラットフォーム • フルリモートワーキング (5days/week)
書籍が出版されました • Pythonプロフェッショナルプロ グラミング 第3版 • 6/12発売 • Git/GitHub対応 •
CIがJenkins→CircleCIに • 機械学習プロジェクト対応
発表の動機/目的 • 「PyCharmどうですか?」と漠然と聞かれることがあった。 • 実際仕事でPyCharmを使っているが, PyCharmの使い方, 利 用してるライブラリー, 周辺環境など色々なトピックがあった。 •
その中でPyCharmを使うと便利な点をまとめてみたいなと 思った次第です。
対象 • PyCharmを使ってみたいが, どうやって使っていったらいいか わからない人 • 普段からPyCharmを使っているが, もっと使いこなしたい人 • 他に使い慣れているツールがあるが,
PyCharmもおさえてお きたい人
今日の目標 • PyCharm完全にマスターした
前提とする環境 • サンプルコードはすべてPython3.6, Django2.0 • 利用バージョン: PyCharm Professional 2018.1 •
題材: Django Girls Tutorial • リポジトリ: https://github.com/kashewnuts/djangogirlstutorial
目次 • PyCharm概要 • PyCharmがサポートしていること • 実際にPyCharmを使っていての感想 • PyCharmが向いていないこと •
基本機能 • Djangoサポート • フロントエンドサポート • データベースサポート • リモート開発 • テスト実行 • PyCharmを使うとき注意すべきこと
引用: https://www.jetbrains.com/pycharm/
What's PyCharm ? • https://www.jetbrains.com/pycharm/ • チェコのJetBrains社が作成するPython統合開発環境 ◦ ~Python IDE
for Professional Developers~ • 無償のCommunity版と有償のProfessional版がある ◦ Community版は機能制限あり ◦ サポートしてる機能の違いは PyCharm Editions Comparison に まと められてる
インストール要件 • ハードウェア条件 ◦ 最小4 GB RAM, 8 GB RAMを推奨
◦ 1.5 GBのハードディスク空き容量+キャッシュ用に少なくと も1 GB ◦ 1024x768の最小画面解像度 • ソフトウェア要件 ◦ OS: Windows, macOS, Linuxに対応 ◦ Python: 2.4以降, Jython, PyPy, IronPython
PyCharmができること • Intelligent Python Assistance • Webアプリケーション開発 ◦ (Django, Flask,
Pyramid, JavaScript, ...) • 科学技術系ツール (Jupyter, Numpy, matplotlib, ...) • デバッグ, テスト, プロファイリング • VCS連携 (Git, Mercurial, SVN) • デプロイ, リモート開発 (Vagrant, Docker) • データベースツール (MySQL, PostgreSQL, Oracle, AWS, …)
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で調べれば大抵のことは解決
PyCharmが向いていないこと • プラグインの作成(Javaで書く必要がある) • 単一ファイルの編集するエディタ代わりの使い方
DEMO
PyCharmの基本機能 • Pythonのシンタックスハイライト, コード補完, 定義ジャンプ対 応 • Python2/3対応 • virtualenvサポート
• GUIのパッケージマネージャー • リファクタリング, デバッガ, コードインスペクション • VCS連携 • Terminalサポート
PyCharmのDjangoサポート • 専用のプロジェクトタイプ • manage.pyユーティリティの実行 • Django用に強化されたコード補完, 定義ジャンプ, デバッグの 連携
◦ UrlConf, View, Model, Templates, Forms • Model用の依存関係図作成
フロントエンド • 同社のWebStrom (Front-end用IDE) 相当を同梱 • HTML, CSS, JavaScriptのコード補完, 定義ジャンプ,
コード 解析 • JavaScriptのFramework対応 ◦ Angular, React, Vue.js, and more • CSS Framework対応 ◦ SASS, SCSS, Less, and more.
データベース • 同社のDataGrip (DataBase & SQL用ツール) 相当を同梱 • DataBase &
SQLサポート ◦ SQLの作成と実行, コード補完, リファクタリング • SQLAlchemy対応 • CSV/JSON/XML出力対応 • 対応するDataBase ◦ Amazon Aurora, Amazon Redshift, MariaDB, MySQL, Oracle, PostgreSQL, SQL Server, SQLite3, and more.
リモート開発 • VagrantやDocker, Docker Composeサポート ◦ 起動, 終了, リロード ◦
Remote Interpretersの指定, Remote Debug • SSH Remote ◦ Vagrantfileを使ったSSH ◦ WSLの実行やデバッグ ◦ SSHやSSLを使用したリモート接続 • コードデプロイ (SFTP)
テスト実行 • unittest, pytest, nose, doctest, toxをサポート • テスト対象を指定して実行できる ◦
失敗したテスト ◦ 指定したクラス配下のテスト ◦ 指定した関数のテスト • Coverageの表示
フルスタックWebアプリケーション開発 引用: https://www.jetbrains.com/pycharm/features/web_development.html
PyCharmを使うとき注意すべきこと • トリッキーな使い方をするとハマる • 予期せぬ出来事にであったときは何が問題なのか切り分ける ◦ PyCharm側の問題?関連するツールの問題?(Python, MySQL, Vagrant, Docker,
SSH...) • PyCharmのバグを踏んだときはがんばり過ぎない ◦ なんか今日は機嫌悪いな?と思ったらInvalidate Caches/Restart ◦ Stop&Startで直ることも。再インストールは最終手段。 ◦ 不具合は報告すると比較的すぐに対応してくれるので, Issueトラッカー に登録or見つけたらVote
リファレンス • PyCharmの使い方 - 公式ヘルプ | PyCharm (ja / en)
• Pythonエンジニア ファーストブック • IntelliJ IDEAハンズオン 基本操作からプロジェクト管理までマ スター • Android Studio本格活用バイブル
ご清聴ありがとうございました