🍃このブログは移転しました。
3秒後、自動的に移動します・・・。

2016年の振り返り

今年も終わりですね!
気付いたら終わりですね!!

というわけで恒例の振り返りです。

仕事まわり

思い返すと、コードを書かない仕事をしてる期間も長かったな・・。

Angular1.x

去年の暮から年明け過ぎくらいまでやってました。
それまでまったくAngularには縁がなかったので、どうなることかと思いつつ。

まぁそこはAngularなので「お作法にいかに則るかだけを考えれば良い」くて、それはもういい感じにでき・・ませんでしたねー。
Service1つ作るにしてもいろいろやりかたがあるし、結局コードスタイルは書いてる人に依存するので、なんでコレがディレクティブになってるのにコレは違うんだとかいろいろありました。

フレームワークなのであればもうちょっと厳しく色々縛ってくれてもいいのになーとか思いつつ、まあそこはプロジェクトとしての礎をうまく作っていけるかどうかの問題なので、今後の勉強になりましたということで。
Angular2になっても別にそこは変わらない印象。

個人的には出来る限り何にも依存したくないし、本当に必要になるまで何も使いたくない派なので、いまの豪華絢爛Angular2?3?4?ワールドには2017年も立ち入ることはなさそう。(仕事でやるならやるかもやけど)

AWS

サーバーレスの波!
ってなわけでAPI GatewayとかLambdaとかさわってました。

さくっと何かやるには確かに便利なんやけど、ヘビーに使っていくにはそれ相応の慣れと経験が必要で、あくまでフロントエンドエンジニアの領域からするとそんなに頑張って使うものか・・?って感想。
ただこうしてサーバーサイドがどんどん薄くなっていって、ただJSONの永続化だけをするようになって、フロントエンドに全てのロジックが寄ってくる・・みたいな流れは、仕事が増えるので良いのかもなーという。

もう少し本腰いれてクライアントサイドからまるっとサービスを設計していくアプローチを取って何かやってみたら、また新たな視点が得られるような気もする。
単純なサーバーサイドとして見ると、そこまで何かが変わるわけではない。

あとAWSのページでいろいろポチポチするの、設定項目が多すぎてほんと辛い。

いわゆるサーバーサイドエンジニアの人たちってこのへんどういう感じで見てるんやろうか。

パフォーマンスチューニング

人様が作ったサイトのソースコードを解析したり、DevToolsであれこれ計測したりするのを仕事でやりました。

感想としてはただひとつ。
このハードウェアのパフォーマンスが上がりまくったご時世、ましてや最近のPC・タブレットでパフォーマンスが問題になるなら、それは間違いなくクソコードであり弁明の余地はないです。

まぁ、3Dゴリゴリとか派手な演出が飛び交うゲームであるとかなら話は別として、一般的なWebでできた業務アプリなら・・ね・・。

React

数ページの小さいアプリと、それなりの規模のアプリと、仕事では2つやってました。(手元の個人ワークだと他にもたくさんあるけど
規模のデカいほうは年明けもちょっと引きずりそう。

Reactは本当にViewの薄い層しかカバーしてくれないただのライブラリなので、それをどう活かすかがエンジニアとしての腕の見せ所ですねー。
世の流れ的にはいきなりFluxというかReduxなんでしょうけど、個人的にはまったくおすすめしないというか、ちゃんと順を追って欲しいなと思います。

そういうライブラリを使うなというのではなくて、

  • 生Reactで厳しくなるまで頑張る
  • 現状のつらみが何で、それを解決できるライブラリを採用するかしないかしっかり検討する

という手順をちゃんと経て欲しい。
何も考えずに思考停止いきなりReduxとか、まじエンジニアとして職務怠慢なのでやめた方がいいと思います。
そんで熟考せずに手を出したくせして使いにくいとかわかりにくいとか言うの、誰も幸せにならんと思うし。

MVCはダメでFluxならいける!って言ったの誰か覚えてますか?Facebookですね。
あなたが作ってるのはFacebook並の規模のものですか?たぶん違うよね?本当に必要?って唱えながら、世間の喧騒に心揺さぶられないようにしたいですね。

とはいえReactが薄いので、アプリ作るための骨子的なやつがないと辛いのは確か。
ここにきてReact版のBackboneみたいな手軽いのがあればいいけどそれがないので、みんな右往左往しながら「誰かが導いてくれるのを待ってる」のが2016年だった気がします。

そういうReactでどう設計したらいいかわからない系のエンジニア(仮)な人には、Vueとかのほうが刺さると思うので、2017年はそっちもかじってみればいいのではーと適当なことを書いておく。

受託むずかしい

弊社が受託の会社なので受託なのはまあいいんですけど、そんな受託にもいろいろあって、

  • 納品したらそれで終わりパターン
  • 納品してその後もこっちで運用するパターン
  • 納品しても先方が運用していくパターン


最後の場合、運用する人が作れない(0 -> 1にするスキルを保有してない)からうちに依頼がくるんやけど、でも納品後はその人たちが運用せざるを得ないわけで。
この構造に個人的にはすごく難しさを感じていて、どうしたもんかと悩む年でした。

他人が書いたコードって、どれだけ綺麗に書いたとしても(どれだけドキュメントを整備してこじゃれた設計にしてたとしても)他人のコードなわけで。
運用がはじまって自分たちの手に馴染むまで、思い通りに扱えるようになるまでどうしても時間がかかるし、やっぱり最終的には使い手のスキルに依存する。

なのでむちゃくちゃがんばって思いやりを総動員して設計してコード書いても100点は取れないので、それよりも、運用開始後のフォローアップに厚めに力を入れるとか、立ち上げる力がないにしても一緒に設計するなり、一緒に手を動かすなりする方向で考えた方が良かったかもなーと思ったり。

Fluxだから破綻しない保証はどこにもないし、Fluxでも破綻させることはできるし、結局プロダクトがスケールするかは、立ち上げた人間よりもメンテする人間にかかってるので、そこをどうにか・・ということを悶々と考えていた今日このごろでした。

だからといって手を抜いて適当に作って投げて後はがんばれという話ではなく、せめて明確な意志をもってブレずに設計する・コードを書く力を養いたいなあという反省。

とはいえ自分で運用しないから納品したものの設計がどれくらいイケてて、どうしたのが良かった・あれは悪かったの判断ができないんですよね。
多少の気付きとか、今度似たようなのがあったらこうしようとかはあっても、総じて良し悪しが測れない。

顧客満足度という意味で、どうやって己の成長を感じれば良いのかなーと悩んでます。自己満足の100点を納品し続けるマンになってしまってないか?と。

業務外

登壇

なんとまあそんな日が来たか・・って感じですが、あちらこちらの勉強会で発表したりすることが増えました。

GitHub - leader22/slides: 発表資料とか

2ヶ月に1度あるかないかぐらいしかやってないですけど、それでも着実に。
2017年もぼちぼちやっていければなーと思ってるので、無いとは思いますが聞きたいことがあればお声がけください!

一方で、ブログ書くマンとして色んな勉強会に行ってはブログを書く日々を続けました。
いま調べてみたら2016年は20回くらい書いてるっぽいので、月に1回くらいはどこぞに出没してたことになります・・w

たぶん飽きたらやめると思うけど、まぁ飽きるまでは続きます。

Nodefestもスタッフ枠として2回目。
ローカルのツールとしてしか相変わらずNodeにはお世話にはなってないけど・・。

毎年サイト作ったりするのは大変やしスタッフ業もセッションぜんぜん聞けなかったりで大変なんやけど、こっちもまあ会長が会長であるうちは続けてると思います、たぶん。

スーパーイカメーカー

今年の2月にリリースして、サーバーが落ちるか心配になったのは初めてのことでした。
未だに結構なアクセス数があって、エンジニアのはしくれとしても割と貴重な経験ができたのではという感じ。

こういう身近な道具でさくっとコンテンツを作ることができるっていうのは自分の強みとしても持っていきたいので、また何かネタがあればやりたいですね。

それにしてもSplatoonは本当に神ゲーやので、Switchでの新作を心待ちに。

React Native

もとい、Swift含めのネイティブアプリですね。

過去に感想をまとめた記事を書いたので多くは書かないけども、ReactNativeやるならSwiftやったほうがいいな・・。
コンポーネント指向という意味でのReact Nativeの設計思想は中々参考になった。

WebAudio / WebRTC

これは個人的に追ってたものです。

ただ追い続けるにつれ、今のWeb屋をやってるうちは仕事にならないなという実感が増していってます。
WebAudioはともかくとして、WebRTCはもうちょっと仕様が落ち着いて、もっと低レイヤーなところのアレコレが解決したりすごい人達がいい感じにしてくれた後に、何かやれることがくるかも?くらい。
WebRTCの1.0(というかORTC)とかが来たとしても、結局ボトルネックはそこじゃない通信レイヤーやらハードウェアやったりするし、フロントエンドで何ができるだろうか・・っていう。

それでもせめてiOSSafariにのってくれたらなーーやりたいこといっぱいあるのになーーー

2017年は

WebのクライアントサイドでSPAを頑張って作ったり、マークアップしてちょっとした動きをつけたり・・っていうのをいわゆるフロントエンドだったとすると。
2016年はReactNativeとかElectronから、WebGLにLive動画配信にVRにと、一気にフロントエンド裾野が広がった感じがありますね。

ただこれらはどれも今までの技術スタックとは一線を介すので、簡単にピボットできるものではなく、前もって準備してきた勢 or 仕事でエイヤでやることになった勢だけが流れに乗れてる気がします。
まあだからといって仕事がなくなるわけではないんですけど・・。

> 心の声「フロントエンド is 何」

むしろReactとかVueとかは結構広まったので、収拾つかなくなった案件とかが燃えだす年な気もしてます。
つまり仕事がくるということやね!

というわけで2017年にやっていきたいことは、

  • 引き続き登壇できるときに登壇する
  • SPAやらアプリケーション設計まわりで着実に仕事をこなす
  • けど本腰は、Live動画とかWebRTCとかServiceWorkerとかの人口の少ないおもしろそうなことを追う

って感じかなー。
まあ年初に目標を立ててもころころ地盤が変わる業界なので、あくまで今この瞬間に思ってたことということで。

良いお年を!