いつもありがとうございます。
雪兎です。(*- -)(*_ _)
今年は花粉がすごいらしいじゃないですか。
噂では、すでに過去最大級なのに、MAXの5%程度しか放出していないとかなんとか。
おかげで毎日目が痒くって。。。(涙
そんなことはさておき、
たまにはがっつり技術的なことより、趣味によった話でもしようかなと。
最近開発したツールとか、開発中に意識していることとか、癖とか、そんな感じなので、
暇つぶしにでも読んでもらえたらうれしいです。
最近のツール類
ここ最近、スプラトゥーンばっかりやっていることもあって、スプラ関連のツールを作ってみました。
1.リアルタイムステージ情報
各ルールのステージ情報を、現在公開されているものをすべて1画面で確認できます。
それだけです。。。
ただ、このツールで便利なのは、スケジュール更新の2時間おきに、自動で画面リロードがかかり最新状態を表示してくれるところですかね。
ついでに、公式アプリ等と違って、表示までのレスポンスが結構よかったりします。
なぜかって?
おそらく通常のアプリでは、画面を表示したときに都度ステージ情報を取得し、JSONデータをもとに表示しているのかと思いますが、そこがボトルネックになっていそうなので、
スケジュール更新の2時間おきにバックグラウンドで最新データを取得しDBへ格納しています。
さらに、ユーザが表示したときに取得するのではなく、
2時間おきにデータを取得した際に、アプリケーション内にシングルトンで保持した情報を表示しています。
わざわざDBへ通信する必要がないので、よりレスポンスの向上をしているわけです。
(とはいえローカルDBなので、そこまで遅くなるわけではないんですが。。。)
ただ、画像は任天堂公式APIなので、表示がちょっと遅いときもあるんじゃないかなーとか思ったり。。。
ちなみにこのツール、サーモンランしかやらないよう!って方のために、特定のルールのみを表示するURLもあったりします。
(ページ下部の注釈参照)
2.サーモンラン オオモノ適正
こちらは、サモランのスペシャルや武器別のオオモノ適正表です。
スペシャルで狙いたいオオモノだったり、武器別の苦手なオオモノだったりを確認できるようになっています。
上記リンクでは、現在のシフトをもとに表示しますが、前述のステージ情報内から遷移すれば、
指定したシフトのときの適正表を見ることができます。
また、その時の武器編成によって、全武器共通で苦手になっているオオモノを表示してくれたりもするので、慣れるまでは確認してみるといいかもです。
さらにオオモノだけでなく、武器別で塗りやコジャケちゃんを苦手とするマークもあるので、
オオモノ優先で動くべきか、みんなのために塗ってあげたり雑魚処理したりの判断もできるかと思います。╭( ・ㅂ・)و グッ !
ちなみにこのツールは、手動でオオモノ一覧や優先度、武器別苦手オオモノ等をマスタ化しているので、間違いや違う意見があれば、都度メンテしないといけないです。。。
こんな感じで、メンテ用の画面も作ってあります。
(チェックONが武器別の苦手オオモノ)
と、最近のツールはこれくらいですかね
開発中のあれこれ
なんでしょうね。
コーディング中って、集中してるから理解できますけど、数日後に見ると理解できなくなってたりするので、
かなり細かくコメント残してますね。
業務だったら、他の人が改修するケースが往々にしてあるので、より意識する必要はありますが、しょせんは趣味の開発なので、私しか改修することはないんですよね。
新人相手だったら、いろいろ口出したりするが、意外と出てこないな。。。
変数名に「hensuu1」とか、死んでもやんなとか?
そうそう、メソッドはできるだけ細かく分割したほうが、あとあと使い勝手いいですよ。
極力リユーザブルに作ってあげて、それらを一つ一つ呼び出す専用メソッドをコントローラ側で読んであげるイメージで作るようにしてますね。
極力共通化できないか考えたりはしますね。
特に、「あれ?そういえばどっかで同じこと書いてなかったか??」みたいなことがよくあるので(笑
癖?というか好み?
DBの日付型
よく日付を保持させるときに、、データベースはDate型で定義することってあるじゃないですか。
私、あれが苦手なんですよね。
Date型にしてしまうと、意図せず時間まで保持され扱いにくくなってしまうので。。。
じゃあどうするかって、日付はCHAR(8)の”yyyyMMdd”で保持するようにしています。
処理する上でData型である必要って、意外とないんですよね。
時間まで保持する必要があるなら、CHAR(14)で時間まで入れたっていいじゃない。(·_·;
期間で取得したいときも、TO_CHAR(current_date, ‘yyyymmdd’) between from and to で条件つければいいし、
なんなら画面から日付指定されたときも、基本的にはStringなわけで。
(もちろんDateに変換して受け取ることはできますが。)
Thymeleafだと、StringからDateにする式ユーティリティが見つからなかったので、
日付フォーマットを変えたいときは、一度Dateにする必要が出てきてしまいますが、
まぁ、独自に式ユーティリティ作ってあげればいいでしょ。
日付String→日付Stringのユーティリティでもいいし、日付String→Dateでもいいし、
やりようはいくらでもあるかな、と。
HTMLでの折り畳み
HTML5で<details>と<summary>ができて、最近使いたがりです(笑
今まで折り畳み機能って、うまいことJQueryとか使ってやってたんですが、
これならタグだけでできるんですよね。
便利な時代になりました。。。(-∀-`; )
折り畳みサンプル
これが便利で、よく使ってますスプラステージ情報の折り畳みも、これで実装しています
見た目はすべてCSSでカスタムすれば、悪くない作りになりますよん
やってみたいこと
ツールのソースとかって、現状PCローカル内だけで管理していて、そろそろSVNとかで管理してみようかな・・なんて思ってます。
普段は開発用にノートPC、メインでMac miniを使っているんですが、
ちょっとした修正とかしたいとき、メインPCでささっと仕上げたかったりするんですよ。
ソース類も一式サーバで管理させてしまって、タグ切ったりして改修記録を残しておきたいなあと。
サーバの容量がそもそも足りるのかも心配。。。
WEBサイトの収益なんてほぼ0なので、あんまり増設したくないなぁ。。。
終わり
というわけで、そろそろ雑談はこのへんで。
また何かやりだしたら記事書くかも?
近々キャンプに行くので、そっちの記事が先ですかね(笑
それでは、ここまで読んでくれてありがとう!(人´口`)テンクスッ♪
コメント