ortの灰ログ

人狼のことや技術のことや日々雑感

WOLFBBS STATSとWOLF MANSIONの技術スタック

WOLFBBS STATSとWOLF MANSIONの技術スタック

そういえば書いていなかったので。
どうやって両サービスを動かしているかの話なので、極端に技術よりのお話です。
大したことはやってないので自分への戒め(勉強への動機付け)にもなるはず。うん。きっと。

WOLFBBS STATS

インフラ

さくらVPSで動かしてます。
勉強用に昔から借りていたのを再利用している形です。
AWSとか、最近だとGCPに乗り換えようかと思ったのですが、このくらいのサービス規模ならVPSがまあ安いかなと。
あとは下手こいてもクラウド破産しないので。
GCP使いたいなぁ)

バックエンド

前の仕事のときにお勉強がてら作り始めたのでだいぶレガシーです。
terasolunaはドキュメントが豊富で助かります。

項目 採用したもの
言語 Java
フレームワーク TERASOLUNA Server Framework for Java
・Spring MVC
・MyBatis
Apache Tiles
JSP
Webサーバー Apache
アプリケーションサーバ Apache Tomcat
DB MySQL
CI/CD Jenkins

あとは書いていませんが、ぎじろぐについては
スクレイピング(やログインや発言などpost)はjsoupというHTML Parserを使い、
エピローグ後のhtml保存だったりVPSのほうでのキャッシュだったりで
人狼BBSへの負荷を軽減させています。

フロントエンド

JSPjQueryです。レガs(以下略)
ぎじろぐはかなりゴリゴリに作りこんでます。
minifyも難読化もしてないので気になる方は読んで絶望してみてください。

WOLF MANSION

インフラ

STATSと同じくさくらVPSです。

バックエンド

WOLFBBS STATSとあまり変わりません。
Ruby on Railsやってみれば良かったと作ってる最中に思ったのですが、
今になって考えるとビジネスロジックがかなり複雑なのでJavaで良かったかも、とも。

項目 採用したもの
言語 Java
フレームワーク Spring Boot
DBFlute (O/R Mapper)
Webサーバー Apache
アプリケーションサーバ Spring Boot 組み込みTomcat
DB MySQL
CI/CD Jenkins

DBFluteはメジャーでなく学習コストも少しかかりますが、慣れるとかなり使いやすく直感的にコーディングできるので気に入っています。
徹底的なタイプセーフでDB変更も楽にできるので、WOLF MANSIONのように小さく初めてどんどん機能拡張していきたいときに重宝しました。

フロントエンド

ThymeleafとjQueryです。
Vue.js使えばよかったと激しく後悔しています。

書き連ねただけですが

こんな感じです。

仕事でもAngular2やGolangやその他もろもろ触る機会も出てきてるので、
今後また新しいサービスを作るときにそのあたりを使ったりもっと別のも使っていきたいですね。
Vue.jsやらRailsも触っておかないとなーという気持ち。

この2サービス自体を育てもしたいし身体が足りんですね。

とりあえず直近やるとしたら今の2サービスでFirebase使ってみるとかでしょうか。色々改善できそうですし。
また何かやったら記事書くと思います。
それでは。