2017年振り返り
Published: 2017-12-24 04:31:40

---
title: 2017年振り返り
published: true
description: 2017年振り返り
tags: 
---

以前の職場の同僚に [Most active GitHub users in Japan](http://commits.top/japan.html) でランクインしてるよって教えてもらって、これを書いている時点(2017/12/21)で96位とのこと。

![](https://thepracticaldev.s3.amazonaws.com/i/pzapxqu6u1ag7gg6porb.png)

GitHub の設定で Private Repository もカウントするようにしておいたお陰かもしれない。年末なので、今年何をコミットしてきたかを Public Repository の形跡を基にざっと振り返る。

## [e-jigsaw/babylon-sandbox](https://github.com/e-jigsaw/babylon-sandbox)

ちょうど昨年末から年初にかけて自由研究で [BabylonJS](https://www.babylonjs.com/) を触っていた。この頃はまだ [Yarn](https://yarnpkg.com) を使っていたようなので [Node.js](https://nodejs.org) は v7 だったっぽい。BabylonJS 自体は結構難しかった。

## [e-jigsaw/webpack-chunkhash-sample](https://github.com/e-jigsaw/webpack-chunkhash-sample)

[Webpack](https://webpack.js.org/) の2系が出て、`webpack.config.js` を試し書きしたりしていた。その際 chunkhash の設定で成果物がどう生成されるかを調べていたみたい。

余談だけど、この年末にかけて [📦 Parcel](https://parceljs.org/) や [microbundle](https://github.com/developit/microbundle) など Webpack 疲れした人々がオルタナティブを作っているようで、Webpack が統一したかと思われていたバンドラ戦国時代はまた戦乱の日々に向かっていくのかもしれない。何度通った轍なんだ...。

個人的には npm が ES modules の CDN みたいな感じになってイイ感じに ES modules で読めるようになると嬉しいかもな〜。

## [e-jigsaw/react-redux-immutable-sample: react redux immutable sample](https://github.com/e-jigsaw/react-redux-immutable-sample)

仕事で [redux](https://redux.js.org/) を使っていたが、イロイロ割れ窓を作ってしまった結果大変残念な仕上がりになってしまった経験を踏まえて、reducer が常に [immutable](https://facebook.github.io/immutable-js/) の Record を返すようにすれば見通しが良くなるのでは...?と試行していた。結果的には不採用。

## [e-jigsaw/firebase-cloud-functions-sandbox: firebase cloud functions sandbox](https://github.com/e-jigsaw/firebase-cloud-functions-sandbox)

[Firebase](https://firebase.google.com) の Cloud Functions を試していた。

## [e-jigsaw/aws-code-build-sample: aws code build sample](https://github.com/e-jigsaw/aws-code-build-sample), [e-jigsaw/circleci-2.0-sandbox: circleci 2.0 sandbox](https://github.com/e-jigsaw/circleci-2.0-sandbox), [e-jigsaw/codefresh-sandbox](https://github.com/e-jigsaw/codefresh-sandbox)

この辺は中身があまりないのだけれど、会社でビルド環境を検証していて AWS の Code Build や CircleCI 2.0, Codefresh を試行した。結果的にはインフラチームが自前 Drone 環境を作ってくれたのでそこへ移行していった。ただ、使う分には良かったが運用はとてもつらそうだったので微妙だったかも。

それまでは Docker Hub を使っていたり、GCP の Container Builder を使ったりしていた。CI 自体は Wercker で。そういえば、Wercker が Oracle に買収されたのも今年だったか。

## [e-jigsaw/json-refs-with-yaml-sandbox: json refs with yaml sandbox](https://github.com/e-jigsaw/json-refs-with-yaml-sandbox)

仕事のプロジェクトでコンテナをフル活用していて、1つのリポジトリで用途に応じてコンテナを分けて使っていた。また、1リポジトリ内に関係する複数のプロジェクトをまとめて運用していたので

```
.
|--project
   |--A
      |--docker-compose.yml
   |--B
      |--docker-compose.yml
```

というように1リポジトリに複数 `docker-compose.yml` が存在している。

さらに、コンテナの tag と git の commit hash を揃えるようにして、`docker-compose.yml` では commit hash まで指定するようにしていたため、コンテナのバージョンアップをすると関係する `docker-compose.yml` を手でまとめて更新しないといけなくて、大変だった。

これを解決するために yaml から yaml を生成する簡単なスクリプトを書いた。yaml から yaml にする途中で [json-refs](https://github.com/whitlockjc/json-refs) をカマして `$ref` などでファイルを分割できるようにした。また、簡易な正規表現で `{{FOO}}` のような handlebars っぽいプレースホルダを書くと指定した値に書き換えるようにして、`container-name:{{CONTAINER_REVISION}}` とコンテナのリビジョンをまとめて更新できるようにした。

他にも `wercker.yml` や `drone.yml` などのファイルも管理下に入れていった。

## [e-jigsaw/esa2ieyasu: esa -> ieyasu Chrome Extension](https://github.com/e-jigsaw/esa2ieyasu)

仕事で esa に日報をつけていて、ieyasu という勤怠ツールで勤怠の記録をつけないといけなかったので ieyasu の入力画面でポチッとすると自動的に値が埋まるようにするツールを作った。

## [e-jigsaw/spa-2017-sandbox: SPA 2017 sandbox](https://github.com/e-jigsaw/spa-2017-sandbox)

プロジェクトの構成をリライトするために、どういう構成がいいかを試していた。View は React.js で、ステートマネージャーをどうするかを基本的に試行していた。この時点ではストアを Immutable.js の Record を使って、Redux の middleware を使って動的に reducer を書き換えてページによって必要な reducer を追加していくようにして各ページをスリムにできるようにした。また、コンポーネントも動的にダウンロードできるようにしたりした。

というような感じで Redux にいろいろ手を加えてがんばったけど、不採用にした。

## [e-jigsaw/image-size-sandbox: image-size sandbox](https://github.com/e-jigsaw/image-size-sandbox)

どういう要件だったか忘れたけど仕事で SVG のサイズを計算して SVG 自体に埋めないといけなかったので [image-size](https://github.com/image-size/image-size) というライブラリを試した。

## [e-jigsaw/lerna-sandbox: lerna sandbox](https://github.com/e-jigsaw/lerna-sandbox)

プロジェクトの構造を [lerna](https://github.com/lerna/lerna) に寄せると便利かな？とおもって試したけど、OSS のプロジェクトほど恩恵が受けられなくて見送った。

## [e-jigsaw/preq: Promised minimal requset](https://github.com/e-jigsaw/preq)

[request](https://github.com/request/request) を Promise でラップするだけのやつ。他にもありそう。

## [e-jigsaw/web: Web technology infomation](https://github.com/e-jigsaw/web)

Web まわりのことを書き記された記事などをスクラップしていたリポジトリだったが、6月を境に Scrapbox に本格的に移行してしまったので更新を終了。

## [e-jigsaw/es-modules-sandbox: ES modules sandbox](https://github.com/e-jigsaw/es-modules-sandbox)

Android Chrome にも ES modules が実装されたと聞いてどういうものかと試した。npm のパッケージ群がうまいことバンドルできるようになってほしいのと、ES modules の実装が他のブラウザではまだなのでそこかなあ。

## [e-jigsaw/vision-api-sandbox: Cloud Vision API sandbox](https://github.com/e-jigsaw/vision-api-sandbox)

仕事とは関係なく GCP の Vision API を試す必要があったのでお試し。OCR としてはもう一つ、という印象。

## [e-jigsaw/heroku-sandbox: heroku sandbox](https://github.com/e-jigsaw/heroku-sandbox)

[Next.js](https://github.com/zeit/next.js) と Heroku を組み合わせて Heroku の dx (主に Pipelines)を試そう！というリポジトリ。immutable なサーバ(BFF みたいな)だと Heroku と親和性が高くてとても便利だった。

最近はサーバ側が必要ないタイプだったら Netlify、サーバ側で何らかが必要だったら Heroku かなあ〜っておもっている。

## [e-jigsaw/mobx-sandbox: mobx sandbox](https://github.com/e-jigsaw/mobx-sandbox)

今年は Redux から MobX に完全に転向した。素の MobX でも十二分に React と相性が良くて便利だし、[mobx-state-tree](https://github.com/mobxjs/mobx-state-tree) を採用すると、さらに気持ちよくドメインを書ける。

## [e-jigsaw/sb-scripts: Scrapbox scripts](https://github.com/e-jigsaw/sb-scripts)

Scrapbox に年のページを作ってインデックスとして使っていて、そのページをダッと書き出すスクリプト。

## [e-jigsaw/svge: Online SVG Editor](https://github.com/e-jigsaw/svge)

mobx-state-tree をバックエンドにブラウザで使える SVG エディタをホビーで作ろうとした(まだ未完)


## [e-jigsaw/lpt2sb: lpt rebirth](https://github.com/e-jigsaw/lpt2sb)

元々 [lpt](https://github.com/e-jigsaw/lpt) (Last month Photo from Tumblr の略)というのを作っていて、これは先月リブログしたものを引っ張ってきて Google Photo につっこむというものだった。が、Google Photo に NSFW な画像が混入すると最悪 BAN されると聞いて日和って全部消したのだった。

それから Scrapbox に出会って、sb なら許してくれそう(という雑な希望)を持って作り直した。最初は CLI でブラウザを開く仕様だったが、操作が煩雑だったので Electron でアプリを作ってコントロールできるようにした。


---

というあたりが Public になってるコミット群だった。

芝は

![](https://thepracticaldev.s3.amazonaws.com/i/2k616ytyrqyrrvlh784d.png)

こんな感じ。ちょっと下半期は失速気味だったかも...?

来年もガンバロー。