※ TeamSpirit Advent Calender 2018 6日目の記事です
こんにちはTeamSpiritでフロントエンドエンジニアやっている quantumman です。 今年も残す所後少しと言うことで、とりあえず雑に今年を振り返ります。
大人の事情で2018/6/1からエンジニア人生が始まったと思い込んでいる人間なので、今年の前半は無しです。 初めて転職しました。
今まで何でもやるフルスタックエンジニアとしてキャリアを積んできたのですが、今年からちゃんとした?フロントエンドエンジニアになりました。 使ってるお仕事の技術スタックで代表的なものを上げると..
- JavaScript
- React.js
- redux
- Flow
何の変哲も無いSPA(Single Page Application)のスタックです。 珍しい点としてはTypeScriptじゃ無くてFlowを使ってる点でしょうか。 Flow使ってる理由は、プロジェクトの成長と共にコードも大きくなったため、lintによる検証だけではコードの品質を保証出来なくなったからです。 (って言う話を入社直後聞いた。個人的な感想だとJavaScriptは早い段階からモジュールに分割する設計をしないと破綻するのでいきなりTypeScriptとかで良いと思ってます。)
ちなみにReact.jsとFlowは個別には使ったことあるのですが、この組み合わせは初めてでした。
今まで開発にはvscodeかemacsを使ってたのですが、Flowのサポートが弱くてAtomに乗り換えました。 AtomにはFacebookがnuclideと言うほぼ公式みたいな拡張あって、 こいつがシンボルジャンプから型アノテーションの表示やら一通り揃えてくれて中々使えます。 vscode・emacsのお気に入りの設定とか拡張とか諦めきれないものもあったのですが、Flowとの親和性重視でお仕事で使うことにしました。
ちなみにコミットログだけemacsで書いてたりしますが、cliから華麗にcommitログ書けるのはemacsだけだった為です。 本当はAtomだけにしたいので、cliから華麗にcommitログ書けるやり方知ってる人いたら教えてください。
入社した直後ぐらいにモバイルをスクラッチ作る話が降ってきて、アーキテクチャ周りとか決めさせてもらえる良い機会をもらえました。 既存機能で
- デザインシステムが不在による微妙に見た目が違うコンポーネントの乱立
- そもそもコンポーネント粒度が実装者ごとにバラバラ
などの問題があることがわかってたので、これら解決するためにAtomic Designを提案しました。 スケジュールがキツかったのですが、受け入れてくれたメンバーに感謝です。
フロンエンドもDDD(ドメイン駆動開発)していました。驚き。 ただ、DDDの実装パターンどこまで適用するかはメンバー間でも結構揺れてます。 今でも散発的に議論が巻き起こって楽しいです。
雑な感想ですが、PM・バックエンドも含めたプロジェクト全体でDDD取り組んでるので、チーム内で伝わらない苦労は減ってる気がします。
いつの間にかテックリード帽子を被らされてる..?状態になってました。 (弊社のテックリードは雰囲気決まってる節がある。。)
BF V が出てから遊んでないけど、一部のルールではS+にはなりました。わーい。
噂によるとSalesforceの資格とるとお賃金がほんのちょっと上がるらしい。 取れるものは取っていきたいです。
自分が入社した直後ぐらいにシンガポールで開発チームが立ち上がりました。 開発も一応チームは別なのですが、コードベースは一緒なのでしっかり意思疎通が出来ないと仕事にならないです。 コミュニケーションは当然英語。
最後に英語使ったのは学生時代の研究室でロシア人の先生と話してた時ぐらいで、もう10年近く使ってないので会話が全然できない... textならいいんですが、流石に会話も必要な場面はあるのでちゃんと英語でコミュニケーション取れるようなりたいですね。
今関わってるプロダクトをまずはGAに持っていきたいし、そのまま良い感じに進化させたいです。
wasmを気にしてます。 Kotlin Nativeとか良さそう。 JavaScriptより堅牢な言語でフロントエンドやりたい。
K/D を 1 にしたい。