More Related Content Similar to ドキュメンテーションを加速するストレスフリーの作図ツール『blockdiag』 jus2011年6月勉強会 (20) More from Takayuki Shimizukawa (20) ドキュメンテーションを加速するストレスフリーの作図ツール『blockdiag』 jus2011年6月勉強会2. 自己紹介:小宮 健
Twitter: @tk0miya
仕事
(株)タイムインターメディア所属
テクニカルオフィサ(技術責任者)として活動
参加コミュニティ
Sphinx-users.jp
Python mini hack-a-thon
Sphinx を中心にツールを開発
blockdiag シリーズ
Sphinx 拡張機能の開発
sphinxcontrib-googlechart など
rst2pdf (コミッタ)
6. システムは育つ
システムは頻繁に形を変えていく
機能、画面の追加
システム増強
ドキュメントはシステムの鏡
システムの変更が反映されるべき
だが、実際には反映されていないことが多い
カラムが合わないテーブル定義
足りない機能一覧
削除されたページが載っている画面遷移図
7. もしドキュメントが無かったら…?
ドキュメントが必要とされる場面
新しいメンバーが参画するとき
他のメンバーへの引き継ぎ時
システムのトラブルが発生したとき
もしこれらの場面でドキュメントが無かったら…?
あとでドキュメントを作ると高いコストを支払うことになる
いつでも手間をかけずに正確な情報へアクセスしたい
10. 簡単に書けること
ドキュメントに集中できる環境
ツールによるアシスト
テンプレートによる構成の再利用
体裁や形式ではなく、書くべき内容に注力できるように
書きづらいドキュメントはメンテナンスされない
ドキュメントを書くのがイヤだと感じたことはありませんか?
12. 求められるドキュメントとは
必要とされるドキュメントの三つの特徴
内容が正確であること
簡単に書けること
誮もがいつでも参照・更新できること
分厚いドキュメントの山では変化に対応できない
必要なのはシンプルで変化に耐えうる軽量なドキュメント
Lightweight Documentation
ドキュメント作りを開発・運用サイクルに組み込む
15. まとめ
ドキュメントは常に必要とされている
システムの理解・把握や情報共有
ドキュメント書いてますか?
必要とされるドキュメント
内容が正確であること
簡単に書けること
誮もがいつでも参照・更新できること
Lightweight Documentation
ツールを組み合わせて、変化に対応する
18. blockdiag シリーズ
テキストを図に変換するツール群
blockdiag:ブロック図、画面遷移図、フローチャート
seqdiag:シーケンス図
actdiag:アクティビティ図
nwdiag:ネットワーク図
blockdiag は定義ファイル(テキスト)から画像を生成する
レイアウトは自動的に行われる
多くの図形作成ツール(GUI ベース)と異なる考え方
21. ドキュメンテーションツールとの連携
Sphinx
Redmine
Trac
moinmoin
Mediawiki
Web API
既存のドキュメントに対して簡単に図を埋め込める
33. blockdiag のインストール
blockdiag シリーズは easy_install コマンドでインストール
できます
要:Python のインストール
% easy_install blockdiag
% easy_install seqdiag
% easy_install actdiag
% easy_install nwdiag
※一部環境では依存パッケージでハマることが多いので、
マニュアルをご覧下さい
(http://blockdiag.com/blockdiag-ja/build/html/introduction.html)
46. actdiag と nwdiag もシンプルな書式で図を作成できる
actdiag: http://bit.ly/kkcgIg
nwdiag: http://bit.ly/kR5tYF
詳細は blockdiag.com のマニュアルを参照して下さい
47. blockdiag の周辺ツール
blockdiag の重要な周辺ツール「Interactive Shell」
Web ブラウザを利用してリアルタイムに図を作れる
SVG を利用しているため IE 非対応
高速に情報を共有するのに向いている
Interactive Shell を利用して、blockdiag をデモします
48. 今後の展開
Euro Python (6/20-6/26, イタリア) で LT 発表します
新たな図、ドキュメントへの対応
システム構成図
ネットワーク図 (ラック、ハブ等の物理層)
画面定義書
他のツールと連携しての自動生成
ネットワーク通信のシーケンス図
ネットワーク図
プログラム構成図
49. まとめ
blockdiag シリーズを使って図を楽に書こう
並び替えや位置調整に手間をかけない
図を作るのにスピードを与える
Sphinx や Trac, Wiki と組み合わせると便利
楽するためにはもっと知恵と経験が必要
意見やアイディアを集めてもっと楽したい
URL: http://blockdiag.com/
Twitter: #blockdiag
Google グループ: blockdiag-discuss
51. 自己紹介: 清水川 貴之
http://清水川.jp/ @shimizukawa
仕事
株式会社BeProud
Djangoを使い始めました
オープンソースコミュニティー活動:
Sphinx-users.jp 副会長
Zope/Plone 運営
その他, pyspa系, XP系
言語:
C++/C/8086 -> Python/Rails
書籍
エキスパートPythonプログラミング(翻訳)
アスキー・メディアワークス
52. イベントの紹介
エキスパートPythonプログラミング読書会
6/19(日) 明日です!
場所: 大阪
参加方法: ATND http://atnd.org/events/16731
PyCon JP 2011
8/27(土)
場所: 東京
参加方法: 7月に募集開始予定
URL: http://2011.pycon.jp/
63. こんなところで使われています
多くのドキュメントでの
利用実績多数!
国内: http://sphinx-users.jp/example.html
国外: http://sphinx.pocoo.org/examples.html
69. Sphinxの特徴
強力なコードハイライト
実装言語とテンプレートとで200
前後の言語書式に対応
http://pygments.org/docs/lexers/
71. Sphinxの特徴
拡張機能で
さまざまなことができる
blockdiag拡張 UML描画
docx出力
HTML
テンプレート変更
Pythonコードから
数式描画
ドキュメント生成 楽譜描画
73. Sphinxの特徴
ドキュメントは
100%日本語化されている
リファレンスマニュアル以外にも
チュートリアルなどドキュメント多数!
79. http://www.flickr.com/photos/boothy/26461481/ http://www.flickr.com/photos/omeyamapyonta/3052096
CC BY-NC by Dr Snafu 093/ CC BY-SA by PYONKO
Word Excel
Wiki Sphinx
http://www.flickr.com/photos/johncarleton/2367673332/ http://www.flickr.com/photos/stompy/11300916/ CC BY-
CC BY-NC-SA by John Carleton NC by Abizern
81. Word - pros
縦書きで編集できる
文法チェックしてくれる
差分比較機能がある
参考文献、索引、
差し込み印刷etc…
http://www.flickr.com/photos/jetalone/861945664/
CC BY by jetalone
83. Word - cons
巨大な1ファイルになる
探すのが大変
複数人で編集が大変
章の入れ替えとか厳しい
http://www.flickr.com/photos/jetalone/861945664/
CC BY by jetalone
84. Excel - pros
http://www.flickr.com/photos/21183810@N00/43665
18191/ CC BY-NC-SA by Jerome Rothermund
85. Excel - pros
Excel扱える人は多い
ぱっと作るのは早くできる
ロジカルシンキング的に苦心しなくても、罫線で武装する
と、見た目が立派に見える
http://www.flickr.com/photos/21183810@N00/43665
18191/ CC BY-NC-SA by Jerome Rothermund
86. Excel - cons
http://www.flickr.com/photos/21183810@N00/43665
18191/ CC BY-NC-SA by Jerome Rothermund
87. Excel - cons
ワークシートで分断され、閲覧性が悪い
内容の追加でレイアウトの修正が必要になると、修正に
膨大な時間がかかる
http://www.flickr.com/photos/21183810@N00/43665
18191/ CC BY-NC-SA by Jerome Rothermund
89. Wiki - pros
圧倒的に柔軟
構造化されていなくても、とりあえず入れておける
複数人での編集・閲覧ができる
http://www.flickr.com/photos/7506006@N07/1197395511
/ CC BY-NC-ND by milky.way
91. Wiki - cons
文章の構成、質の維持に目を光らせる必要がある
あるいは、Wikipediaのように構成を決めておく
全体の構成を修正するのに手間がかかる
トップダウン型ではないので、まとめて印刷や他形式に変
換がやりにくい
http://www.flickr.com/photos/7506006@N07/1197395511
/ CC BY-NC-ND by milky.way
92. Sphinx - pros
http://www.flickr.com/photos/18261299@N00/44724083
86/ CC BY-SA by sweet_redbird
93. Sphinx - pros
ドキュメントの背骨がしっかりさせる
有機的に文章を繋げる仕組みを持っている
説明ユニット
プレーンテキスト。バージョンコントロールOK!
http://www.flickr.com/photos/18261299@N00/44724083
86/ CC BY-SA by sweet_redbird
94. Sphinx - cons
http://www.flickr.com/photos/18261299@N00/44724083
86/ CC BY-SA by sweet_redbird
95. Sphinx - cons
背骨を気にして、コンテンツを追加する必要
マークアップを覚える
WYSIWIGではない
http://www.flickr.com/photos/18261299@N00/44724083
86/ CC BY-SA by sweet_redbird
97. Sphinxのインストール(Linux, MacOS X)
必要なもの
Python, easy_install, Sphinxの3点セット
パッケージ管理ツールを使えば一瞬
Ubuntu
$ sudo apt-get install python-sphinx
Mac OS X
$ sudo port install python-sphinx
98. Sphinxのインストール(Windows)
必要なもの
Python, easy_install, Sphinxの3点セット
Python本体(python-2.7.2.msi) のインストール
easy_install (distribute_setup.py) の取得とインストール
C:¥> python distribute_setup.py
Sphinxのインストール
C:¥> easy_install sphinx
Demo
99. Sphinxのインストール(Windows)
必要なもの
Sphinxスタンドアロンインストーラのみ
Sphinx-1.0.7.20110618-py2.7-win32.exe
これ一つでblockdiagシリーズも導入完了!
Demo
ただし、まだ実地検証が足りないため、みなさんのレポート
お待ちしております!
101. Sphinx拡張
拡張をすることで様々な要求に対応できる
新たな出力形式に対応したい
例: docx形式で出力したい
マークアップを拡張したい
例: blockdiagを埋め込みたい
HTMLテンプレートを追加したい
例: 業務向きなシンプルなのが欲しい
デフォルトで組み込まれている拡張が多数!
102. 組み込みのSphinx拡張
autodoc – docstring からの読み込み
intersphinx – 他のSphinxドキュメントへのリンク
pngmath – 数式をPNG画像にレンダリング
jsmath – JavaScriptを用いて数式をレンダリング
graphviz – Graphvizのグラフを追加
coverage – ドキュメントのカバレッジ状況の収集
todo – Todoアイテムのサポート
他にも多くの組み込みSphinx拡張あり
103. サードパーティのSphinx拡張
その他特筆すべき拡張
blockdiagシリーズ
ブロック遷移図を簡単な記述で作成!
sdedit
UMLでシーケンス図を描けます!
sphinxjp.themes
HTMLテーマをいくつか追加
docxbuilder(開発中)
SphinxでWordファイルを作成
104. blockdiag by @tk0miya
ブロック遷移図を文字のみで書けます
sphinxcontrib-blockdiag でSphinxでブロック遷移図を
書くことが可能
.. blockdiag::
diagram webapp {
login -> something -> logout -> login
}
105. sdedit (Quick Sequence Deiagram Editor)
UML図をテキストから生成するツール
.. sequence-diagram::
:maxwidth: 500
:linewrap: false
:threadnumber: true
actor:Actor
sphinx:Sphinx[a]
dot:Graphviz
sdedit:Quick Sequence Diagram Editor
actor:sphinx.make html
sphinx:dot.render_diagram() ただし
sphinx:sdedit.render_diagram()
Javaのインストールが必要
109. Sphinxプロジェクトの作成(準備)
“sphinx-quickstart”を使います
$ mkdir Unix-How-to
$ cd Unix-How-to
$ sphinx-quickstart
とりあえずはEnterを連打! ├── Makefile
├── _build
conf.pyとディレクトリが作成 ├── _static
├── _templates
この3つだけは回答する ├── conf.py
プロジェクト名 ├── index.rst
└── make.bat
バージョン番号
著者名
Demo
110. reSTによるドキュメント作成(記述)
reST = reStructuredText
http://sphinx-users.jp/doc10/rest.html
Demo
============
テキストでも見やすい形 大見出し
============
見出し
コードブロック(ハイライト付き) 中見出し
=========
文書内/文書外リンク
小見出し
表
-------------
-リストアイテム1
toctreeなどを作成する -リストアイテム2
#. 自動採番アイテム1
#. 自動採番アイテム2
113. 応用例(2/2) blockdiag拡張の利用
インストール (スタンドアロン版なら導入済み)
C:¥> easy_install sphinxcontrib-blockdiag
Demo
conf.pyの設定
extensions = []
extensions.append('sphinxcontrib.blockdiag')
blockdiag_fontpath = r'C:¥Windows¥Fonts¥msgothic.ttc'
図の埋め込み記述
.. blockdiag::
{ A -> B -> C; }
126. Sphinxのコミュニティー
Webサイト:
http://sphinx-users.jp/
メーリングリスト:
http://sphinx-users.jp/mailinglist.html
イベント:
http://sphinx-users.jp/event/
Twitter:
#sphinxjp