リモート環境の変化

こんにちは、mtjです。

最近リモートでライブ映像がリアルタイムで見れる等色々なものが遠隔でおこなるようになっています。
ネット環境の進化もありますが一番はクラウド環境でしょう。

昔であればストリーミングであれば想定人数に耐えれるだけのサーバーを用意してそれ用にネットワークを構築して等ハード面で様々な準備が必要でした。
現在はボタン1つで1日もせずにサーバーを増やせます。
足りなくなったら即増やし、不要になったら即破棄できサービスの運用もそういう意味では簡単に作って、破棄というのができるようになり便利になったような気がします。
今後はそのようなサービスに対してフットワークが軽い人が人気になるのではないのかと感じました
便利なサービスが出た場合に提案、対応しさらにクラウド環境を便利にしていく そういう時代になっていくのかなと感じました。

using declaration

先月研修でC#の勉強をしていたのですが、C#8.0からusingステートメントが、
以下のようにローカル変数宣言の先頭に追加する形で行えるようになっていたことを知りました。
(using declarationと呼ぶそうです)

// after 8.0
using var sw = new StreamWriter("hoge.txt");

// before 8.0
using (var sw = new StreamWriter("hoge.txt"))
{
}

8.0以前はその後の処理を記述する際に中括弧やインデントが必要だったのですが、
この形式だとネストを減らすことができてありがたいです。

ただ、Disposeの呼び出しがスコープの末尾なため、
記述の長いメソッドで利用するとリソースの解放が遅くなり、
場合によっては支障が出るのではないかと思ったのですが、
そもそもメソッドの長さが適切であれば問題ないことに気付きました。

メソッドの長さは適切に、ネストは浅く、シンプルなコードを書くよう心掛けたいです。

PlantUML を試してみました。

5月の連休を利用して、UML図の作成にPlantUMLを試してみました。
VSCode + 拡張機能の流行りの組み合わせです。
普段は別の専用ソフトを使っているので、
テキストベースで図を作成するのは、個人的には初めてです。

練習に社内の研修用ソフトのシーケンス図を作成してみると、
予想以上に簡単に作成することができました。
テキストベースなので要素の配置などレイアウトを考える必要もなく、
シンプルに書きたい事を書くことができる印象です。

ほんの些細な事でも考える事が少なくなると、
やりたい事がよりはっきり見えてくるのを実感しました。
プログラムのソースコードを書くときでも、
スコープは狭くする、ネストを深くしない、メソッドは小さく分ける…など、
余計な事を考える余地が少なくなるよう工夫したいと思います。

モータ制御のエミュレート

インフォテックの案件ではサーボモータなどをPCで制御することが良くあります。
今作成しているソフトもモータ制御を行うのですが、モータそのものやPCのモーションボードが無くてもソフトの動作検証が行えるように、エミュレート機能を社内ライブラリに組み込んであります。

今回はエミュレート機能をさらに強化し、移動速度に合わせてパルス出力数がカウントされたり、パルス出力状態や停止要因が正しく変化するようにしました。
この改造により、今までより細かく社内での動作検証が行えるようになりました。

下は3軸の原点復帰動作のエミュレートです。実機無しで状態が変化しています。