なのログ

だから見てて下さい・・・俺の・・・変身

サービスリリースとソフトウェアリプレースと(2019-2/4期)

振り返り記事をまたやりにきました。前回が3月末だったな~と思うたびに、
「あ~じゃあ四半期ごとにメモるか」って思ってたんですよね。というわけで現在6月末。どうぞ。

過酷な呪いを受けている可能性がある(Android)。


というわけで今回もこんにちは、こんばんは。明日には7月です。
4月5月6月と、月別にやっていく感じにしましょう。

4月

前回のVue.jsの案件が続いていた頃です。
4月初頭くらいまででだいたい作りましたが、
そこからテストだったり細かい要望の対応だったりをしてほとんど過ごしています。
HTML+CSSで印刷(ラミネート)用プチドキュメントを整えるとかいう小手先技能を身に着けたりもしました。

Bulmaを使っていたもののたびたびCSSを調整したくなってしまって
そのあたり使っている意味がかなり薄れてしまったり、
Buefyを使っていたもののたびたび動作を調整したくなってしまって
部品別に取り込んでカスタマイズする必要があったりと、
まーあんまり効率的とは言い難い開発方法をしていたような気がします。

この先あんまりwebフロント絡みの仕事をすることはなさそうなので、
リベンジの機会があるかは怪しいところです。

で、はじめからぱっとしない事を言ってしまいましたが、
要件の機能は実装しつつ、見た目もそこそこ褒めてもらえている感じです。

実装もまあだいたいシンプルになったかなと思っています。

その「だいたい」に当たらない部分が、
ブラウザのビデオストリームを使っていたもののカメラをつけっぱなしにしたくなくて、
適宜切断・接続をしてたあたりですね。
ビデオストリームに対して定期的にやっている処理があったんですが、
その処理とカメラそのものをあらゆる操作に対してちゃんと止める記述が沼でした。

あれは間違いなくもうちょい良く書ける。
なんなら開発期間の序盤に実装したのが最大の失敗でしたね。

5月

社内のAndroidアプリのチーム(19年2月までと別だけど関連のアプリ)に加わって作業をしつつ、
先述のVue案件のプチ作業とかをしていました。

あとVue案件の稼働開始が5月末でした。
これがタイトルの「サービスリリース」に当たります。
当日、運用開始の時刻からツイッターエゴサしたりサーバーを監視したりしていたんですが、
ぶっちゃけあれは人生で初めての経験でした。「使ってる人がいるぞ」の経験。

これまでの経験は
・製品に乗る組み込みソフト(その製品が具体的にどんな型番とか名前なのか知らない)
・特定の社内向けソフト(誰が使ってるのか知らない)
・そもそも製品として成立するレイヤーの様子を全く知らない開発人員Aの立場でしかない
とかだったので、今回のポジションはそこそこ新鮮でした。稼働してから気付いたんですけどね。

具体的には、
・いわゆるナントカtoCの製品
・開発対象を俯瞰できるポジションでの参加
・追加開発でなく新規開発での参加
ツイッターで見張ってたらユーザーのツイートが普通に見えるレベルの規模
みたいな。

ちなみに当日の様子です。

仕事しろ。

6月

月でくくってしまいましたが、Androidアプリの方の話になります。
5月もほとんどAndroidの方に時間をつかっていたはずなので、
実は時系列的にはかなりクロスする感じですね。見出しの意味とは。

流れ的には、たまたま
「自分もうだいたい(Vueの仕事の)実装終わったんですけど、作業ありますかね」
とかいう発言をしたために、
「あ、じゃあ」みたいな感じで役員の人から仕事が降ってきた感じです。(どんなだ)

思い返せば、ここからがそこそこ修羅の道でした。具体的には、このAndroidのアプリが。

「ここから」とは言ったものの、
自社の作業内容というか事業内容的にどのみち自分はこの開発に加わっていたはずなので、
残念な事実を知るのが後になるか先になるかみたいな話なんですけど。

まあ、ざっくり言って、コードがね、ひどいんですよね、そのアプリ。のプロジェクト。
(実装者の知識不足による)純粋なひどさも、
(既存からの変更を嫌う形で生まれた)歴史の積み重ねによるひどさも、
(そもそもの実装要件が甘いこととかによる)ガワと中身の矛盾してたりするひどさも、
まーなんか全部あるかんじです。ここはプログラミングアンチパターン博物館。

そんなところでリファクタの声をチームで固めて6月半ばあたりから動き出し、
追加開発と並行してテストの追加やリファクタをやっているのが今です。

いやー、「年内くらいには人様に見せられるくらいのコードにしてえなあ」くらいが目標です。
ほんとこう、ちょっと掘ったら「冗談では?????」みたいのが出てくるんですよね。
新しく触りに行く範囲はだいたい識別子のtypo修正から始まったり。すげえんですよ。

機能開発のほうは、(先述の「役員の人から降ってきた」)なんかでかめのやつを1つ実装して、
またさらにでかい2つ目を今やっているところです。
並行してリファクタ、まあ悪くないんですけど、
ちょいちょい編集対象が多くなってコミットの規模がでかくなりがちなのが問題ですね。チームに響く。

おわり

という内容で、「サービスリリースとソフトウェアリプレースと」でした。
リプレースというのはちょっと違うのかもしれません。なんか「ちょっとずつ直す」しようとしてるし。

Kotlin使おうとしたらなんか使えない理由が持ち上がりそうだったりして、
そのへん含めてまだまだ暗雲立ち込めていますが、しばらくはリファクタ作業の人になりそうです。

では。