5/1アップデート概要

medaka 返信: 0件 4年前

どうも管理人です https://algodooonline.net/users/info?id=0
本日(2019年5月1日)のアプデについて、説明するのにまずサーバーの仕組みを話す必要があって簡潔に書けないのでここにまとめます

長いので一言でまとめますと、「拡張性と開発スピードが上がりそうです」以上です。

あと今回より、本サイトにアイコンがつきました

favicon

輪っかで繋がってる感を演出する的なアイコンになっております

目次

  • サーバーの仕組み
  • Dockerについて
  • システムの共通化
  • 今後の予定

サーバーの仕組み

本サーバーに限らず、Webサービスを提供しているサーバーには主に3つのソフトウェアが動いています

1. Webシステム

Apache, Nginxとか。

外部からのアクセスを管理し、特定のアプリに接続する。
ファイル内のデータを送信したりもする。

2. AP(アプリケーション)

Node.js, Python(Flask, Django), Ruby on Rails, PHPとか。

Webシステムによって接続され、データベースから情報を取得し、ページを生成してWebシステムに送信する。
一般に「サーバープログラミング」と言うとこの系統を指すことが多い。

3. DB(データベース)

データを特定の規則に従って保存・整理する。

Dockerについて

今までの欠点

各個にインストールして、各個に初期設定して、各個にメンテナンスしていたんだけど、
サーバーのOSと自宅のWindowsでは各ソフトのインストール方法も操作方法も違うので、家でちゃんと動いたとしてもサーバーで動く保証が無いです。

なので今まではAPの部分だけをWindowsで書いて、それ以外はVirtualBoxでサーバー用のOSを立ち上げて予行演習してました。
しかしこの方法ではテストに時間がかかってしまうので、できればWindowsで開発環境を完結したいものです。

Dockerの利点

というわけで、Dockerというコンテナ型仮想化システムを使うことにしました。

これはWebシステムやAPなど各システムを「コンテナ」として共通のシステム上で運用するもので、
Windowsや他のOSでも、同じシステムの上で同じコンテナを運用していれば、挙動はほぼ同じになるので、面倒なテスト作業が大幅に簡略化されます。

システムの共通化

ユーザー的には多分こっちの方が大きいかも。

今まではBBSのコードとWikiのコードは別々に書いていたのですが、重複する内容が多いので共通化しました。
現在、BBSとWikiは同じデータベースを共有しており、大半は同じコードで動いています。

URLの共通化

今までの掲示板・WikiのURLはこんな感じになってました

BBSのid=1 : https://AogodooOnline.net/BBS/1
上記の返信No.2 : https://AogodooOnline.net/BBS/1/2

Wikiのタイトル「Markdown記法」 : https://AogodooOnline.net/wiki/page/Markdown記法
上記のコメントNo.1 : https://AogodooOnline.net/wiki/page/Markdown記法/1

で、いまはこうなってます

BBSのid=1 : https://AogodooOnline.net/BBS?id=1
上記の返信No.2 : https://AogodooOnline.net/BBS?id=1&anchor=2

Wikiのタイトル「Markdown記法」 : https://AogodooOnline.net/wiki/page?id=5
上記のコメントNo.1 : https://AogodooOnline.net/wiki/page?id=5&anchor=1

新しいURLでは'/BBS' とか '/wiki/page' の後に以下の形式が続くようになってます

?id=[ID]&anchor=[返信ID]

なお、今までのURLは新しい方のURLに自動変換されるようになっているので、引き続き使用可能です
今後どうするかは未定です。

共通化の利点

端的に言うと、拡張性が上がったので新機能の実装が容易になりました。
コードや変更点が同時に適用される機会が増えるため、片方で実装された機能がもう片方でも適用される可能性が上がります。
さらに、今後実装されるであろう画像掲示板・Phzデータ掲示板も同じ仕組みを採用する予定なので、開発のハードルが下がりそうです(希望的観測)

今後の予定

先述の通り、各システムのテストが容易にできるようになったのと、コードの共通化により拡張性と開発スピードが上がったため、新機能の実装をしたいです。

ラインナップ

  • 「いいね」機能
  • 画像掲示板
  • phnデータ掲示板

ログインしてください(返信一覧はログイン後に表示されます。)