倒れるときは前のめり。

カレーが好きです。

2017年を振り返る

年の瀬なので、2017 年にやってきたことを振り返ってみることにした。

PowerPoint 用のアドオン開発

PIXTA (お試し版) – Microsoft AppSource

  • PIXTAAPI を利用して画像検索したりサンプルデータをダウンロードできるように
  • 実質ひとりチームで、Rails アプリケーションを 1 つ シュッ と作る貴重な体験をした
  • 諸事情あって今はペンディングになってるけどいつか再開したい

音楽素材販売対応

nlab.itmedia.co.jp

  • 写真、イラスト、動画につづく第 4 の素材販売
  • 具体的には、素材詳細ページならびに検索結果ページの改修を行っていた

素材詳細ページ

  • 煩雑化していた Controller / View をミニマムでリファクタしつつ対応
    • いろいろとつらい処理が多かった Controller および関連ロジックの整理
    • View にビジネスロジック書きすぎていたので、適切に Decorator や Model へ移譲
  • mediaelement とはだいぶ仲良くなれた
    • 開発中にひとつバグを踏んだのでさっさと issue なり Pull Request 送らねば…

検索結果ページ

詳細は以下のブログを読んでくれ…と言いたいところだけど、簡単にまとめるとだいたい以下の通り。

texta.pixta.jp

  • 既存の検索結果ページに React + Redux + Flow が導入されていたが「今回のスコープなら Redux いらなくね」となり、 React + Flow で組み込み
  • ES2017 + React + Flow によるフロントエンド JavaScript 開発の前線を肌で体感するいい機会に
  • medialement と React コンポーネントのつなぎ込みがなかなかの苦労ポイント

モバイル対応

2018 年から本格適用されると噂の MFI(Mobile First Index) に向けて自社サービスのモバイル化対応をやっている。自分が携わっているのはこのあたり。

  • 素材詳細ページの構造化データを microdata から JSON-LD へ移し替える
  • 検索結果ページの絞込フィルタを knockout + erb から React へ移し替える

素材詳細ページへの JSON-LD 組み込み

  • そもそも既存の gem だと JSON-LD とパンくずの両方をいいぐあいに生成できない
  • 諸般の事情で 1 ページ 2 パンくず出しているため Breadcrumb On Rails では機能が足らず、 Gretel をハックすることに
  • Value Object や immutable / mutable とか、インタフェース駆動で開発するぞ!とか、gem のコードを意識して読みはじめるとか、もろもろ意識しはじめたのがこのあたり

検索結果ページの絞込フィルタ React 移行

  • storybook + enzyme を用いた UI コンポーネント開発をやりはじめる
    • UIの確認は storybook 上でチェックしつつ
    • 複雑なロジック実装で不安なところは enzyme で TDD のサイクルを回していく
    • コード修正のフィードバックがほぼリアルタイムでなされるので、開発スピードが爆上げ
  • knockout に取り残されていた jQuery プラグインも React に移植しきる
    • コンポーネントのライフサイクル、ref の使い方をようやく実感としてわかってきたかな…という段階
      • componentDidMount とか componentWillReceiveProps とか
      • mediaelement とか既存ライブラリをラップするコンポーネント、という発想とか
  • React コンポーネントの設計指針、これというものがまだ自分の中で確立してない
    • いわゆる Container / Presentational とかいう分け方はまぁ意識できているんだけど、HoC とかもろもろのパターンとかまだ実感わかない
    • 既存の OSSソースコードを読んで引き出しを蓄積していかないとかなぁ、というお気持ち

社内勉強会・読書会の開催

この数年で社内の人員が急増したこともあり、開発チームで保有している知識やノウハウをうまく全社に展開できたら、ハッピーになるんじゃないの…という思いがあっていろいろやっていた。具体的にはスクラム本の読書会や、Redash を用いた社内 SQL 勉強会の企画・運営など。このあたりの話もブログにまとめているので読んでもらえると。

texta.pixta.jp

社内ブログ執筆

ひょんなことから社内ブログを書く機会をもらい、気がつけば年内に 3 本公開していた。

texta.pixta.jp

  • 自分の経験や知見を文章にまとめて世に送り出す歓びや楽しみを知ってしまう
  • 「これブログにまとめたら面白そうじゃない?」という視点から日々の業務を取り組むようになった

2018年にむけて

来年で30の大台に乗ることもあるし、いろいろと思うこともあるのだけど、それを書くには長くなるので端折ってまとめてしまうと、

  • 健康でありつづける
  • (半年くらい無職になっても生きられる程度には)蓄えをつくる
  • 腕を磨きつづける
  • 人との縁を大事にする

の3+1つを意識しながら過ごしていきたい。