筆者はdiscordのサーバーでいろいろなものに参加している
いくつかのサーバーを見ていると、ただの雑談サーバーにしても管理者の匙加減で見栄えが大きく変わるし、この使い方はあまりよくないと感じることもある
そういった経験をもとに、discordのサーバーをどのように管理するのがよりよい形かということを、主観で述べていきたいと思う
まず、discord のサーバー管理とはどのようなものなのかというところから、認識を合わせていきたいと思う
チャンネルの追加、削除、グルーピング、メンバーやチャンネルの追加削除といったことが主な内容だろう
こんなのに腕前が出るのか?とも思うかもしれないが、ものすごく出る
そして、整備されたdiscordのサーバーであっても、メンバーの使い方が下手だとすぐに見づらいサーバーに変化する
そういった意味でも、使い勝手のいいサーバーに整備して、加えてどのように使うと周りの人から見てキレイな使い方になるのかを参加者がきちんと考えて使う事には、大きな価値があるとわたしは考える
綺麗に整備したものであっても、汚く使ったら汚いものだけが残るのである。そのため、サーバー管理のべき論というのは、サーバーの管理者だけでなく参加者全員が本来は目線を合わせて持つべきものである
前置きが長くなったが、discordのサーバー管理は、discordのサーバー1つを「プログラミングのクラス」だと考えて扱うのが、最も感覚的にわかりやすいとわたしは考えている。
つまるところ、サーバー管理能力ときれいなコードを書く力には、なかなかの相関があるのだろうと、想像するところである。
そのため、次から述べる内容についても、「サーバーをクラスだと思え」という一言で人によっては「こんなの当たり前だな」と感じられるような内容が多くなるかと思う
クラスのきれいな書き方として
- グローバル変数はなるべく使わない
- 関数は小分けにする
- 一つの関数に複数の役割を持たせない(分割する)
- 名前で役割がきちんとわかるように関数名やクラス名をつける
- 使われていない関数は削除する
- 一つを変更したら他も変更するような作りにしない
- 似たような関数は作らず、一つの関数に集約する
- 利用者は設計通りに利用する
といったものがすぐ思いつくもので、ここら辺がdiscordのサーバー管理に直接かかわるところだと自分は思う次第である
- グローバル変数はなるべく使わない
- general になんでも書かない。generalは参加者の告知やサーバー全体に対する通知など、本当に一般的な内容のみで使うようにして、雑談はそのほかのチャンネルで行う
- 関数は小分けにする
- ゲームごとに話題をわけてチャンネルを作る
- voiceチャンネルをゲームごとに作るなどが代表
- ゲームごとに話題をわけてチャンネルを作る
- 一つの関数に複数の役割を持たせない(分割する)
- 上と同様。generalだけ作って放置しているようなサーバーが該当する
- 名前で役割がきちんとわかるように関数名やクラス名をつける
- 使われていない関数は削除する
- 昔はやったけどいまはやっていないゲームのチャンネルを物置におくなど
- 一つを変更したら他も変更するような作りにしない
- チャンネルを整理した結果、これまでのチャンネルから別のチャンネルにメンバーが移動しないといけないような仕様変更をしてはならないということが、例となる
- 似たような関数は作らず、一つの関数に集約する
- FPSで武器Aと武器Bのチャンネルを用意したが、武器Aと武器Bの利用者はかぶっているので、武器A・Bとひとまとめにした方が混乱がないということにつながる
- 関数を小分けにすると矛盾している面でもあるのだが、これは、利用する最小単位までは小分けにすべきだが、最小単位を超えて小分けにするとよくないという意味に捉えるとよい
- FPSで武器Aと武器Bのチャンネルを用意したが、武器Aと武器Bの利用者はかぶっているので、武器A・Bとひとまとめにした方が混乱がないということにつながる
- 利用者は設計通りに利用する
- いくらきれいに整備しても、すべての書き込みがgeneralに延々と縦に連なるようなサーバーでは、整備した意味がない。全体を見渡して、自分の書き込みをするチャンネルを見つけることも大事であろう
他にもいろいろあると思うが、プログラミングをきれいに書くような技術書に書いてある内容が、discordのサーバー管理にそのまま適用しやすいので、興味がある人は手元にきれいなコードを書くための本をおいて、discordのサーバーとどのように関連するか考えると面白いのではないだろうか
追記すべき内容は、思いついたら書いていくかもしれない