くみこみやさんのWEBアプリケーション
はじめに
今回、転職活動(転職はやっぱり辞める予定)をしていく中で、組み込み機器のWebGUIってどんななの?
っていうのがWeb業界の方にはイマイチ理解されていないように感じました。
理解されてない・・・ということはニッチで面白い世界なのです。
そこで、組み込みのWebGUIってどんなことをするのかというのを説明していこうと思います。
思いついたら随時更新していきます。
一定間隔でWebAPIから値を拾い続けないといけない
基本的にWebGUIもメインループを回しているようなものです。
一定間隔で必要なパラメータを普通のWebサイトよりも短い間隔でチャキチャキ拾うことになります。
CSR(Client Side Rendering)が基本
組み込み機器のCPUとメモリーの性能はコストカットのため、基本的に良くないです。
SSR(Server Side Rendering)なんて贅沢なものを使えなければ、一定間隔でUIが変わる可能性があるため、他の選択肢もないです。
ということで描画は全部Clientにまかせてしまいます。
大量の要素を1ページに配置することがある
大規模なシステム用ですと、一画面に設定を集約することがかなりあります。
実際、便利ですしね。
ただし、前述のようにCSRしか使えない…!さあ腕の見せ所です。
(Lazy Loading、Virtual Scrollなどあの手この手で無理やり要件を満たします)
HW/FWの負債を吸収することが良くある
例えば、HW/FWの問題で運用上、あり得ないステータスがWebAPI経由で飛んでくることがあります。
この場合、API側やFW側でマスクしてしまうよりも多くの場合は、Web側からマスクしてしまう方が都合が良かったりします。
そんなこんなで、Web側はHW/FWの負債を吸収しがちです。
メリットとしてはWebでマスクしたほうが設計コスト・チェックコストが少ないのでオトクです。
デメリットはWeb側で上手いことやってしまうので、日を跨いだあとに他のプロトコルで制御しようとすると・・・。
APIから飛んでくる値をビットマスクすることがある
APIから飛んでくる値が素直な数字なのは生ぬるい世界です。
API側から飛んできた数字0b00001111
みたいなのが飛んでくる場合JavaScriptでは滅多に使用しない&
演算子が大活躍します。
ニッチですね・・・。
パラメータをpostするタイミングも考える必要がある
パラメータをどのタイミングでpostするかということもシビアになってきます。
メインループを意識して、適切なタイミングで一気にpostしないとFW側でパラメータの泣き別れが起こります。
このようにFW側は一旦他の処理を実行してしまうので
hoge2が数10ms遅れてしまうことがあります。
このため、以下のように一度にpostすることが大切です。
(高レイヤーでも大事ですけどね)
Discussion