はじめに

こんにちは、エンジニアの遠藤です。

2022年も色々な設計作業をしてきましたが、それぞれの設計フェーズにおいて、よく使ったツールをまとめてみます。
ここに記載したものが特別おすすめ、というわけではありません。
個人のメモ代わりの様な内容ですが、何で設計しようかなと迷った時のどなたかの参考になればと思います。

API 設計

Swagger (Open API)

https://swagger.io/

私が swagger の存在を知ったのは 5年前くらいだと思いますが、今ではすっかりデファクトスタンダードになった感があります。

  • 容易に Web で公開できる
  • 書いたものがそのまま実行できる
  • コードで書けるので、 git 管理が容易
  • Web エディタが強い

----------2023-01-10-20.50.42

後述しますが、エクセルで設計していた頃と比べると、はるかに生産性が向上した様に思います。

Postman

https://www.postman.com/

こちらは、当初は API などを叩くためのツールとして認知していましたが、今では設計にとどまらず、単体テストなども実行できるようになっています。

  • GUI が欲しい人には良い
  • 定義を共有して、エンジニア以外でも使いこなせるツール
  • 単体テストも書ける
  • OAuth などの認証も突破できる優れもの

8f41b98f7407f184

設計で使うかはさておき、PCセットアップしたらとりあえずインストールしちゃうツールですね。

エクセル

出ました!最強の表計算ソフト。
↓こういうやつですね。

----------2023-01-10-20.36.27

2022年もちょこちょこ見かけました。
叩かれがちな表計算ソフトですが、読む分には個人的にはそこまで嫌いじゃないです。
書けって言われたら、全力で拒否します。

フォーマットがまちまちなので、情報が抜けがちです。
いつだったか、 URL も path も書いていない API 仕様書を渡された時には度肝を抜かされました。

Word

こちらも根強い人気を誇る、 Word の設計書です。
Word の方が使い勝手が難しいのか、エクセルよりは少ないですが、結構見かけます。
かくいう私も、文書内に表を埋め込むのが苦手で、 Word で設計書を作成してって言われたら、そこそこ嫌です。。
エクセルに同じく、読むのはそこまで苦ではありません。

それらを PDF 化したものたち

最終的に、 PDF になって共有いただくタイプのパターンです。
セキュリティ的に編集できない様に、とか印刷しやすいように、ってことなんでしょうかね。
PDF でいただくケースも結構ありました。

DB設計

ER 図

Draw.io(Diagrams.net)

https://app.diagrams.net/

言わずと知れた(?)作図ツールですね。
ER 図に特化したものではないですが、直感的にパーツを配置していけるので、便利ですね。
一応、初期テンプレートも用意してあったり、不向きということはありません。
この後にも出てきます。

----------2023-01-10-20.53.19

DataGrip

https://www.jetbrains.com/ja-jp/datagrip/
JetBrains が提供しているデータベースIDE。
ER 図専用ツールではないですが、 DDL や既存の DB などに接続して、 ER 図を作成することができます。
----------2023-01-10-20.19.33

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 記法の出番は多めです。

テキスト

----------2023-01-10-20.56.34

整形

----------2023-01-10-20.56.40

エクセル

言わずもがな、エクセルです。
特に社内にフォーマットなどがあれば、便利だろうなと思います。
エクセル テーブル定義で画像検索すると、たくさん出てきます。

シーケンス/フローチャート

plantuml

https://plantuml.com/ja/

様々なダイアグラムをコード的に記載できるツールです。
VSCode にもプラグインがあったり、 Docker で local に環境を構築できたりします。
Webエディタもたくさんあるので、ちゃらっと書いてみることもできます。

JOyzJWCn44RxESLSW8By91852WIeGU824wyBIuudsECYjsVNNrQQAUodxrNlr4ogzMkcs_oda6vIZByTI-ClLP9WMXdtvXZwcIxQooJrlcplZk4t5BHOrSpBdHt3RoaMItRdSPzWvtSqYSb5Mbos3yVmUmgQSmoMj3G-EuO_q5-FFJBknp7yaUQ7drv72x_mhpA2tRx1leOwiuLv93gnWq2Rs_VOroPd3Z2knidZSAE4Jh5C

mermaid

https://mermaid.js.org/#/

元々、 plantuml しか使っていなかったのですが、 Gitlab で、 mermaid がプレビューできると知ってから、こちらに乗り換えました。
使い心地に大差はなく、細かい機能の差はありますが、全体的には同じ様なことができます。
どちらも絶妙に見た目がダサいので、このあたりがもっといい感じになると嬉しいのですが...

mermaid-diagram-20230110204146

画面設計

ここでは、主に Web で使える作図ツールをずらっと並べておきます。
いずれも、私がメインで担当していたといよりは、レビューだったり、共有されることが多かったので、細かい使い心地については、差がわかりません。
少なくとも、参照側で利用する分には、そこまで大きな差は感じませんでした。

おわりに

2022 年も色々なツールが出ていたと思うのですが、あまり新しいツールをキャッチアップする時間が取れませんでした。
どちらかというと、 2021年まで使っていたものをそのまま使い続けていたと思います。
2023 年は、それぞれのフェーズにおいて、少なくとも1つは新しいツールに触れられるように、精進できる年にしていきたいです。

来年も同じ内容でブログを書いてみたいですね。
それでは、皆様も良き設計ライフをお送りください。