SlideShare a Scribd company logo
1 of 18
エンジニアライクに
ドキュメントをつくって
みた件
MIHOSHIMA(MIHO MATSUSHIMA)
@自動化大好きエンジニアLT会 - VOL.9
自己紹介
Miho Matsushima/@enenae0927
• 某SIerのインフラ事業部門所属
• 好きな技術
• コンテナ(Amazon ECS/K8s)
• CI/CD(Code3兄弟)…etc
単調な作業が苦手なので、できれば自動化して楽し
たい派
今回登壇に至った経緯
• 弊社にも自動化に関する社内コミュニティが存在
• ラクスさん同様、LTで自動化の知見を共有
• 他社さんがどんなことされているのか興味津々
• 社外で登壇してみたかったし参加しよ(→いまここ)
本LTで目指したいゴール
• ドキュメント作成をCI/CDでやるための方法がわかる
• ドキュメント作成をCI/CDでやってよかったことがお伝えできている
ドキュメントCI/CDってなんだ?
• CI/CDとはビルド、テスト、デプロイを自動化する開発の手法
• 一般的にはソフトウェア(プログラム)開発で使われる
• 今回のLTでは、それを“ドキュメント“に適用したお話となります
CIツール
デプロイ
環境
Aブランチで
コードを変更
GitHub/GitLab/
CodeCommit
コード
リポジトリ
開発者
Jenkins/CodeBuild
マスターマージを
検知
ビルド/自動テス
ト 異常がなければ
自動リリース
Aブランチを確認
問題がなければ
マスターマージ
レビュー
アー
ドキュメントにCI/CDを
適用しようと思ったきっかけ
ある日仕事の中でこんな活動が爆誕
良いですね、、、ただ、
ドキュメントの作成手順は
こちらで考えさせてください
技術検証の結果や
クラウドサービスでの設計ポイントを
有識者達がまとめて
知見共有できないかな?
WordやPowerPointを
共有ドライブに置くのじゃダ
メ?
過去の悲劇を繰り返したくない
共同編集による
バージョン管理地
獄
置き場がわからず、
作ったのに読まれな
い
レビューになんだか
んだ
時間がかかる
クラウド設計ガイド.pptx
クラウド設計ガイド_v1.pptx
クラウド設計ガイド_v1_最新.pptx
クラウド設計ガイド_v1_田中編集.pptx
…
何が
変更された
…?
せっかく
作ったのに
当初の私の気持ち
• 複数の編集者が都度更新をかけるなら、Gitでバージョン管理したい
• さらにいうと、Pull & Requestでレビューしたい
• Webで限定公開し、ここにいけば良いという場所を作りたい
• 最新のファイル、誰かおいてくれました?みたいな状況も防ぎたい=リリースを自動化したい
• HTMLやCSSで見栄えが良いほうが読み手のモチベーションも上がりそう
• さらにいうと、ビルドすれば手軽にHTMLに変換できるし、書き慣れたMarkdown使いたい
• 表記ゆれや単語の言い間違いは機械的にチェックしたい
• ただでさえ、業務の合間にする活動なので無駄な労力はかけたくない
Markdownで書いて、
CI/CDで良い感じに公開しよ
う
結果こうなった
Aブランチで
ドキュメントを
変更
開発者
Aブランチを確認
問題がなければ
マスターマージ
レビュー
アー
マスターマージを
検知
Markdown→HTMLにビルド
S3に自動
デプロイ
ブラウザから
良い感じに見れる
textlintで
表記ゆれを自動修正
大事な技術要素(MkDocs)
• Markdown形式でウェブサイトが作成できる静的サイトジェネレータ
• ビルドするとHTML/CSS/JSが生成されるので、任意のWebサーバにデプロイす
即座に公開が可能
• 様々なテーマや拡張機能でデザインをカスタマイズ可能
• テーマを選ぶことができ、好みに合わせてWeb全体のデザインを変えらえれる
• テーマを自分で作成することも可能
• メモ、ヒント、警告などが目立つようなスタイルを適用可
• Font Awesomeによる装飾が可能
Mkdocsのイメージ
引用元:https://fereria.github.io/reincarnation_tech/
大事な技術要素(textlint)
• textlintはMarkdownなどテキスト向けのLint(校正)ツール
• lintはコードの内容を自動的に検査し、悪い書き方を指摘して、修正を促すツール
• textlintはプログラミング言語ではなく自然言語に対応している
• テストするルールはカスタマイズ(npmで適宜インストール)可能
• 技術文書を対象としたプリセット(おすすめ):
『textlint-rule-preset-ja-technical-writing』
• VSCodeの拡張機能にも対応しているので、エディタ上でも校正可能
導入してよかったこと
リリースや誤字脱字確認を
機械的にできるので
作業が楽になった
Webで公開したことで、
見栄えよし
すぐ“ここにあるよ”
といえる
普段コードを
書かないメンバの
Git力向上につながった
まとめ
• ドキュメント作成はMarkdown、CI/CDや各種ツールを使うと
効率的になる
• 各種ツールとは
• Mkdocs: Markdownに対応した静的サイトジェネレータ
• textlint:Markdown等のテキスト校正ツール
• MarkdownをHTMLで公開すると、見栄え/アクセシビリティが向上
ご清聴ありがとうございまし
た

More Related Content

What's hot

What's hot (20)

こわくない Git
こわくない Gitこわくない Git
こわくない Git
 
DXとかDevOpsとかのなんかいい感じのやつ 富士通TechLive
DXとかDevOpsとかのなんかいい感じのやつ 富士通TechLiveDXとかDevOpsとかのなんかいい感じのやつ 富士通TechLive
DXとかDevOpsとかのなんかいい感じのやつ 富士通TechLive
 
2015-10-31 クラウドネイティヴ時代の運用を考える 〜 ドキュメント駆動運用へ
2015-10-31 クラウドネイティヴ時代の運用を考える  〜 ドキュメント駆動運用へ2015-10-31 クラウドネイティヴ時代の運用を考える  〜 ドキュメント駆動運用へ
2015-10-31 クラウドネイティヴ時代の運用を考える 〜 ドキュメント駆動運用へ
 
「速」を落とさないコードレビュー
「速」を落とさないコードレビュー「速」を落とさないコードレビュー
「速」を落とさないコードレビュー
 
心理的安全性を 0から80ぐらいに上げた話
心理的安全性を 0から80ぐらいに上げた話心理的安全性を 0から80ぐらいに上げた話
心理的安全性を 0から80ぐらいに上げた話
 
SQLアンチパターン - 開発者を待ち受ける25の落とし穴
SQLアンチパターン - 開発者を待ち受ける25の落とし穴SQLアンチパターン - 開発者を待ち受ける25の落とし穴
SQLアンチパターン - 開発者を待ち受ける25の落とし穴
 
チケット駆動開発の解説~タスク管理からプロセス改善へ
チケット駆動開発の解説~タスク管理からプロセス改善へチケット駆動開発の解説~タスク管理からプロセス改善へ
チケット駆動開発の解説~タスク管理からプロセス改善へ
 
ラボラトリーオートメーションのためのソフトウェア思想教育(非プログラマ―が知っておくべきプログラミングの本質)
ラボラトリーオートメーションのためのソフトウェア思想教育(非プログラマ―が知っておくべきプログラミングの本質)ラボラトリーオートメーションのためのソフトウェア思想教育(非プログラマ―が知っておくべきプログラミングの本質)
ラボラトリーオートメーションのためのソフトウェア思想教育(非プログラマ―が知っておくべきプログラミングの本質)
 
ビジネスパーソンのためのDX入門講座エッセンス版
ビジネスパーソンのためのDX入門講座エッセンス版ビジネスパーソンのためのDX入門講座エッセンス版
ビジネスパーソンのためのDX入門講座エッセンス版
 
Re: ゼロから始める監視設計
Re: ゼロから始める監視設計Re: ゼロから始める監視設計
Re: ゼロから始める監視設計
 
やはりお前らのMVCは間違っている
やはりお前らのMVCは間違っているやはりお前らのMVCは間違っている
やはりお前らのMVCは間違っている
 
WayOfNoTrouble.pptx
WayOfNoTrouble.pptxWayOfNoTrouble.pptx
WayOfNoTrouble.pptx
 
Redmine + Lychee導入のアンチパターン
Redmine + Lychee導入のアンチパターンRedmine + Lychee導入のアンチパターン
Redmine + Lychee導入のアンチパターン
 
講演1 Redmine導入のアンチパターン
講演1 Redmine導入のアンチパターン講演1 Redmine導入のアンチパターン
講演1 Redmine導入のアンチパターン
 
Webアプリを並行開発する際のマイグレーション戦略
Webアプリを並行開発する際のマイグレーション戦略Webアプリを並行開発する際のマイグレーション戦略
Webアプリを並行開発する際のマイグレーション戦略
 
正しいものを正しくつくる
正しいものを正しくつくる正しいものを正しくつくる
正しいものを正しくつくる
 
マイクロにしすぎた結果がこれだよ!
マイクロにしすぎた結果がこれだよ!マイクロにしすぎた結果がこれだよ!
マイクロにしすぎた結果がこれだよ!
 
40歳過ぎてもエンジニアでいるためにやっていること
40歳過ぎてもエンジニアでいるためにやっていること40歳過ぎてもエンジニアでいるためにやっていること
40歳過ぎてもエンジニアでいるためにやっていること
 
プロジェクトマネジメントは仕組み化が9割
プロジェクトマネジメントは仕組み化が9割プロジェクトマネジメントは仕組み化が9割
プロジェクトマネジメントは仕組み化が9割
 
PHPからgoへの移行で分かったこと
PHPからgoへの移行で分かったことPHPからgoへの移行で分かったこと
PHPからgoへの移行で分かったこと
 

Similar to エンジニアライクにドキュメントを作成してみた件

hbstudy#6LTyuzorock
hbstudy#6LTyuzorockhbstudy#6LTyuzorock
hbstudy#6LTyuzorock
yuzorock
 
【17-E-4】 未来はどこにいても誰にでも平等にある。 未来を創るのは自分自身だ。 ~SIerの中で生きるということ~
【17-E-4】 未来はどこにいても誰にでも平等にある。 未来を創るのは自分自身だ。 ~SIerの中で生きるということ~【17-E-4】 未来はどこにいても誰にでも平等にある。 未来を創るのは自分自身だ。 ~SIerの中で生きるということ~
【17-E-4】 未来はどこにいても誰にでも平等にある。 未来を創るのは自分自身だ。 ~SIerの中で生きるということ~
Yoshitaka Kawashima
 

Similar to エンジニアライクにドキュメントを作成してみた件 (20)

Docker Actionを利用してOpenWhiskをあれこれする
Docker Actionを利用してOpenWhiskをあれこれするDocker Actionを利用してOpenWhiskをあれこれする
Docker Actionを利用してOpenWhiskをあれこれする
 
SharePoint Online Communication Sites お手軽サイト作成
SharePoint Online Communication Sites お手軽サイト作成SharePoint Online Communication Sites お手軽サイト作成
SharePoint Online Communication Sites お手軽サイト作成
 
【OpenStackDaysTokyo】4-B1-3 自動化を支えるCICDパイプラインの世界
【OpenStackDaysTokyo】4-B1-3 自動化を支えるCICDパイプラインの世界【OpenStackDaysTokyo】4-B1-3 自動化を支えるCICDパイプラインの世界
【OpenStackDaysTokyo】4-B1-3 自動化を支えるCICDパイプラインの世界
 
「Movable Typeの可能性を広げるアドオン「DynamicMTML」について」 v2 (MTDDC Meetup HOKKAIDO 2013版)
「Movable Typeの可能性を広げるアドオン「DynamicMTML」について」 v2 (MTDDC Meetup HOKKAIDO 2013版)「Movable Typeの可能性を広げるアドオン「DynamicMTML」について」 v2 (MTDDC Meetup HOKKAIDO 2013版)
「Movable Typeの可能性を広げるアドオン「DynamicMTML」について」 v2 (MTDDC Meetup HOKKAIDO 2013版)
 
hbstudy#6LTyuzorock
hbstudy#6LTyuzorockhbstudy#6LTyuzorock
hbstudy#6LTyuzorock
 
ML Studio / CNTK ハンズオン資料の紹介と開発環境の構築手順
ML Studio / CNTK ハンズオン資料の紹介と開発環境の構築手順ML Studio / CNTK ハンズオン資料の紹介と開発環境の構築手順
ML Studio / CNTK ハンズオン資料の紹介と開発環境の構築手順
 
Ciecleci
CiecleciCiecleci
Ciecleci
 
さくらのIoT Platformを使ってみよう ~OSC浜名湖編~
さくらのIoT Platformを使ってみよう ~OSC浜名湖編~さくらのIoT Platformを使ってみよう ~OSC浜名湖編~
さくらのIoT Platformを使ってみよう ~OSC浜名湖編~
 
connpass特徴と開発の流れ
connpass特徴と開発の流れconnpass特徴と開発の流れ
connpass特徴と開発の流れ
 
タイムカード打刻チャットボット「ごえもん」誕生話 
タイムカード打刻チャットボット「ごえもん」誕生話 タイムカード打刻チャットボット「ごえもん」誕生話 
タイムカード打刻チャットボット「ごえもん」誕生話 
 
KOGEI & KAIT Funnel WS
KOGEI & KAIT Funnel WSKOGEI & KAIT Funnel WS
KOGEI & KAIT Funnel WS
 
チャットボットの自然言語処理
チャットボットの自然言語処理チャットボットの自然言語処理
チャットボットの自然言語処理
 
プログラマのためのPC自動化
プログラマのためのPC自動化プログラマのためのPC自動化
プログラマのためのPC自動化
 
お手軽作業自動化入門
お手軽作業自動化入門お手軽作業自動化入門
お手軽作業自動化入門
 
ゲームエンジンの中の話
ゲームエンジンの中の話ゲームエンジンの中の話
ゲームエンジンの中の話
 
業務の自動化をはじめよう!!
業務の自動化をはじめよう!!業務の自動化をはじめよう!!
業務の自動化をはじめよう!!
 
Pythonでpdfをいじってみる
PythonでpdfをいじってみるPythonでpdfをいじってみる
Pythonでpdfをいじってみる
 
今さら聞けない人のためのDevOps超入門
今さら聞けない人のためのDevOps超入門今さら聞けない人のためのDevOps超入門
今さら聞けない人のためのDevOps超入門
 
なぜ今OSGiか
なぜ今OSGiかなぜ今OSGiか
なぜ今OSGiか
 
【17-E-4】 未来はどこにいても誰にでも平等にある。 未来を創るのは自分自身だ。 ~SIerの中で生きるということ~
【17-E-4】 未来はどこにいても誰にでも平等にある。 未来を創るのは自分自身だ。 ~SIerの中で生きるということ~【17-E-4】 未来はどこにいても誰にでも平等にある。 未来を創るのは自分自身だ。 ~SIerの中で生きるということ~
【17-E-4】 未来はどこにいても誰にでも平等にある。 未来を創るのは自分自身だ。 ~SIerの中で生きるということ~
 

エンジニアライクにドキュメントを作成してみた件