DEV Community

Takaya Kobayashi
Takaya Kobayashi

Posted on

2017年振り返り

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

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

e-jigsaw/babylon-sandbox

ちょうど昨年末から年初にかけて自由研究で BabylonJS を触っていた。この頃はまだ Yarn を使っていたようなので Node.js は v7 だったっぽい。BabylonJS 自体は結構難しかった。

e-jigsaw/webpack-chunkhash-sample

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

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

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

e-jigsaw/react-redux-immutable-sample: react redux immutable sample

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

e-jigsaw/firebase-cloud-functions-sandbox: firebase cloud functions sandbox

Firebase の Cloud Functions を試していた。

e-jigsaw/aws-code-build-sample: aws code build sample, e-jigsaw/circleci-2.0-sandbox: circleci 2.0 sandbox, 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

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

.
|--project
   |--A
      |--docker-compose.yml
   |--B
      |--docker-compose.yml
Enter fullscreen mode Exit fullscreen mode

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

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

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

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

e-jigsaw/esa2ieyasu: esa -> ieyasu Chrome Extension

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

e-jigsaw/spa-2017-sandbox: SPA 2017 sandbox

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

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

e-jigsaw/image-size-sandbox: image-size sandbox

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

e-jigsaw/lerna-sandbox: lerna sandbox

プロジェクトの構造を lerna に寄せると便利かな?とおもって試したけど、OSS のプロジェクトほど恩恵が受けられなくて見送った。

e-jigsaw/preq: Promised minimal requset

request を Promise でラップするだけのやつ。他にもありそう。

e-jigsaw/web: Web technology infomation

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

e-jigsaw/es-modules-sandbox: ES modules sandbox

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

e-jigsaw/vision-api-sandbox: Cloud Vision API sandbox

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

e-jigsaw/heroku-sandbox: heroku sandbox

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

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

e-jigsaw/mobx-sandbox: mobx sandbox

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

e-jigsaw/sb-scripts: Scrapbox scripts

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

e-jigsaw/svge: Online SVG Editor

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

e-jigsaw/lpt2sb: lpt rebirth

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

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


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

芝は

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

来年もガンバロー。

Top comments (0)