はじめに
こんにちは、エンジニアの遠藤です。
2022年も色々な設計作業をしてきましたが、それぞれの設計フェーズにおいて、よく使ったツールをまとめてみます。
ここに記載したものが特別おすすめ、というわけではありません。
個人のメモ代わりの様な内容ですが、何で設計しようかなと迷った時のどなたかの参考になればと思います。
API 設計
Swagger (Open API)
私が swagger の存在を知ったのは 5年前くらいだと思いますが、今ではすっかりデファクトスタンダードになった感があります。
- 容易に Web で公開できる
- 書いたものがそのまま実行できる
- コードで書けるので、 git 管理が容易
- Web エディタが強い
後述しますが、エクセルで設計していた頃と比べると、はるかに生産性が向上した様に思います。
Postman
こちらは、当初は API などを叩くためのツールとして認知していましたが、今では設計にとどまらず、単体テストなども実行できるようになっています。
- GUI が欲しい人には良い
- 定義を共有して、エンジニア以外でも使いこなせるツール
- 単体テストも書ける
- OAuth などの認証も突破できる優れもの
設計で使うかはさておき、PCセットアップしたらとりあえずインストールしちゃうツールですね。
エクセル
出ました!最強の表計算ソフト。
↓こういうやつですね。
2022年もちょこちょこ見かけました。
叩かれがちな表計算ソフトですが、読む分には個人的にはそこまで嫌いじゃないです。
書けって言われたら、全力で拒否します。
フォーマットがまちまちなので、情報が抜けがちです。
いつだったか、 URL も path も書いていない API 仕様書を渡された時には度肝を抜かされました。
Word
こちらも根強い人気を誇る、 Word の設計書です。
Word の方が使い勝手が難しいのか、エクセルよりは少ないですが、結構見かけます。
かくいう私も、文書内に表を埋め込むのが苦手で、 Word で設計書を作成してって言われたら、そこそこ嫌です。。
エクセルに同じく、読むのはそこまで苦ではありません。
それらを PDF 化したものたち
最終的に、 PDF になって共有いただくタイプのパターンです。
セキュリティ的に編集できない様に、とか印刷しやすいように、ってことなんでしょうかね。
PDF でいただくケースも結構ありました。
DB設計
ER 図
Draw.io(Diagrams.net)
言わずと知れた(?)作図ツールですね。
ER 図に特化したものではないですが、直感的にパーツを配置していけるので、便利ですね。
一応、初期テンプレートも用意してあったり、不向きということはありません。
この後にも出てきます。
DataGrip
https://www.jetbrains.com/ja-jp/datagrip/
JetBrains が提供しているデータベースIDE。
ER 図専用ツールではないですが、 DDL や既存の DB などに接続して、 ER 図を作成することができます。
IDE なので慣れるまで大変ですが、使いこなせれば、そのまま DDL の生成などもできるので、開発が捗りそうです。
テーブル定義
Markdown
気合いの Markdown です。
Markdown の表を使って、定義をします。
完成図は表なので見栄えは悪くないのですが、途中で列を追加したくなった時や、編集が結構面倒な印象です。
とはいえ、ツール不要でテキスト編集さえできれば書けるのでお手軽です。
テキスト
| 論理名| 物理名| 概要| 型| 主キー| not null | index|
| --- | --- | --- | --- | --- | --- | --- |
|ID | id |ID | BIGINT | ○ | ○ | - |
|Name | name |名前 | VARCHAR (64) | - | ○ | 1 |
|時間 | datetime |時間 | DATETIME | - | ○ | 2 |
|hoge_ID | hoge_id |hogeのID | BIGINT | - | ○ | - |
|fuga_id | fuga_id | fugaのID| BIGINT | - | ○ | - |
整形
論理名 | 物理名 | 概要 | 型 | 主キー | not null | index |
---|---|---|---|---|---|---|
ID | id | ID | BIGINT | ○ | ○ | - |
Name | name | 名前 | VARCHAR (64) | - | ○ | 1 |
時間 | datetime | 時間 | DATETIME | - | ○ | 2 |
hoge_ID | hoge_id | hogeのID | BIGINT | - | ○ | - |
fuga_id | fuga_id | fugaのID | BIGINT | - | ○ | - |
Wiki
同じく気合いの Wiki です。
メリット/デメリットは Markdown と変わらずです。
弊社の場合、社内のチケット管理が Redmine なこともあり、 Wiki 記法の出番は多めです。
テキスト
整形
エクセル
言わずもがな、エクセルです。
特に社内にフォーマットなどがあれば、便利だろうなと思います。
エクセル テーブル定義で画像検索すると、たくさん出てきます。
シーケンス/フローチャート
plantuml
様々なダイアグラムをコード的に記載できるツールです。
VSCode にもプラグインがあったり、 Docker で local に環境を構築できたりします。
Webエディタもたくさんあるので、ちゃらっと書いてみることもできます。
mermaid
元々、 plantuml しか使っていなかったのですが、 Gitlab で、 mermaid がプレビューできると知ってから、こちらに乗り換えました。
使い心地に大差はなく、細かい機能の差はありますが、全体的には同じ様なことができます。
どちらも絶妙に見た目がダサいので、このあたりがもっといい感じになると嬉しいのですが...
画面設計
ここでは、主に Web で使える作図ツールをずらっと並べておきます。
いずれも、私がメインで担当していたといよりは、レビューだったり、共有されることが多かったので、細かい使い心地については、差がわかりません。
少なくとも、参照側で利用する分には、そこまで大きな差は感じませんでした。
- Draw.io
- Miro
- CaCoo
- Googleスライド
おわりに
2022 年も色々なツールが出ていたと思うのですが、あまり新しいツールをキャッチアップする時間が取れませんでした。
どちらかというと、 2021年まで使っていたものをそのまま使い続けていたと思います。
2023 年は、それぞれのフェーズにおいて、少なくとも1つは新しいツールに触れられるように、精進できる年にしていきたいです。
来年も同じ内容でブログを書いてみたいですね。
それでは、皆様も良き設計ライフをお送りください。