あけましておめでとうございます🌅
今年もよろしくお願いします😁

2020年も終わりましたので..毎年恒例のふりかえり記事です。
コロナで休日も家にいたせいか、例年よりアウトプットが多い気がします。

Table of Contents

エンジニア10年の節目

まずはじめに..2020年4月で社会人歴およびエンジニア歴10年を迎えました。
10年前、社会人になる前は色々な不安がありました。

  • 社会人としてやっていけるのか..
  • 会社は数年後もちゃんとあるのだろうか..
  • プログラミング嫌い(ほぼ未経験)なのにエンジニア続けていけるのか..
  • 35歳定年説コワイ

結果論ですが、これらの不安は見事に打ち消されました。
10年経った今でも、エンジニアとして日々楽しく仕事をさせていただいております。

もちろん自分でもある程度努力をしてきたつもりです。
それでも、この10年に巡り会った人との縁があってこそ今の自分がいます。

特に、共に切磋琢磨してきたエンジニアおよび上長の皆さん。
この場を借りてコッソリと感謝の意をこめさせてください🙇‍♂️

10年後もまた良い報告ができますように..。

さて、本題に入りましょう。

ブログの運営状況

投稿記事数

今年1年で 49記事 書きました。
昨年は45記事なので+5ですね。引き続き昨年超えできました😄

ただ、49記事のうち29記事はWeekly Reportなので純粋な比較はできません。
Weekly Reportも情報量はかなりありますが、専用記事とターゲットが違いますので。

人気記事

今年のアクセスベスト10を紹介します。

ページタイトル 作成日時 今年のページビュー 前年位
1 git bashを格好良くしてみた 2018/06/04 7192 2
2 VSCodeをVimmer好みにしてみた 2018/09/17 6376 1
3 Windows TerminalとPowerShellでクールなターミナル環境をつくってみた 2020/05/31 4019
4 Dockerを跡形も無く消して入れ直してみた 2017/11/28 3835 4
5 Cmderでオシャレにcmd.exeを使う -前編- 2018/11/18 3066 3
6 VSCodeVimの設定を見直す 2019/02/01 2773 6
7 MAMANのITブログ 2667 8
8 TypeScript+Expressの快適な開発環境を作ってみた 2019/08/12 2389 圏外
9 逆引きlodash Array/Collection/Object編 2019/02/14 2324 圏外
10 すべての図をdraw.ioで管理するメリット 2020/01/06 2106

今年執筆した記事は2つだけです。
ターミナル、エディタ、IDEに関する記事が上位を独占しています。

12月に集計を絞ってみると、2020年に書いた以下記事もベスト10入りしています。

WSL2は出たばかりだったので来年の方が期待できるかもしれません。

リソースをリポジトリに同梱

今まで画像や動画といったリソースはDropboxで管理していました。
しかし、以下の理由からリポジトリに含めることにしました。

  • Dropboxに配置して共有リンクを取得し、記事に挿入するのが面倒
  • リソースをリポジトリに含めてもサイズや運用面で大きな弊害はない
  • Dropboxのサービス状況を気にする必要がない

はじめはGit LFSで管理していましたが、あとで使わない方がいいことが分かったため今は普通に管理しています。

Weekly Reportの開始

アウトプットしようと思いつつ、中途半端なクオリティに納得いかずpublishできない..
そんな悪癖をなおすため、内容ではなく期間で記事をpublishすることにしました。

それがWeekly Reportです。

Weekly Reportは無事2020年終わりまで半年以上続きました👍
良い影響も与えられて嬉しい限りです😊

デプロイ先をVercelに変更

ブログとサイトのデプロイ先をNetlifyからVercelに変更しました。

レイテンシの差分は思ったより体感として感じている気がします。

購入ガジェット

今年もいくつか新しいガジェットを購入しました。
ただ、今年はあまり記事にしなかったのでWeekly Reportの断片を紹介します。

iPad ProとApple Pencil

手書きデバイスが欲しかったので、3月上旬にヨドバシカメラに行って触ってみたところ..あまりの素晴らしさにApple Shopで購入してしまいました。
この後、コロナでテレワークに切り替わったため、MTGのときにホワイトボード代わりとして大活躍してくれました。

出社に戻って半年経った今でも毎日持ち歩いており、仕事でも使っています。
お気に入りアプリはConceptです。後で出てきます。

EIZO EV2780

2560 x 1440 27型のディスプレイです。
USB Type-Cに接続するだけでOKなのが嬉しい。

今思うと、横幅が広すぎ+字が小さすぎかなと思っています。
私は24型のFull HDが性に合っているのかもしれません。

ASUS ExpertBook

ThinkPadも7年使ってきたので、この機会に..と思い買い換えました。

コンパクト/軽量であることに当時魅力を感じていましたが、今は不要だったかなと思ってます。
今年は外出が少なかったからからもしれませんが..。

USB Type-Cが2ヶ月くらいで故障したことを除けば概ね満足しています。

Google Pixel 5

前のスマホがトイレでお亡くなりになったので購入しました。

『最新のスマホならローエンドでもゲームしなければ問題ない』
そんな風に思っていた時期が私にもありました..そんなことない! 世界変わるから!!

気付かせてくれた🚽に感謝🙏

ネットワーク周りのいろいろ

新しいWi-Fiルータが無線を受けつけず.. 新しいパソコンがUSB Type-Cを受けつけず.. と散々な状態だったので力尽くで有線ネットワーク環境を整理しました。
本来なら無線でシンプルな配線なのに。。😭

開発環境の改善

Windows TerminalとPowerShell

この改善はゲームチェンジャーだったと思います。
コロナによるテレワーク終了前日に気合いを入れて記事も書きました。

はてなでも今まででダントツトップでした。はじめて3桁いきました。

コメントにもあるとおり、細かいところではつらみも残りますけどね..😅

WSL2

WSL2の正式版がリリースされたので環境を整備しました。
ドサクサに紛れてbashとエコシステムの整備もしています。

なお、UbuntuのGUIを使うのは面倒なので諦めました。
Vcxsrv使えば可能ですが、日本語入力周りが不安定ですし..。

それならばWindowsですべて開発できる努力をした方がマシとなりました。

IntelliJ IDEA、VSCode、VimでのVim操作性統一

極力使っているツールによって頭の切り替えが不要なように整理しました。

あまり見られてはいませんが個人的に自信作の記事です。
Vimを愛する人には是非見て欲しい!

PyPIにCIでリリース

GitHub Actionsを使ってリリースできるようにしました。

Ditto

Windowsのクリップボード管理ソフトです。
画像ファイルなどにも対応しており、インクリメンタルサーチもできるのでオススメ。

CLCL -> Clibor -> Ditto という移り変わりです。

draw.io

今まで悩んでいた図の管理について、draw.ioで統一するようにしました。

ブログはもちろんのこと、ConfluenceやVSCodeでも使えるので仕事でもOK👍

Miro

オンライン高機能ホワイトボードサービスです。

コロナでテレワークになってから見かけて使うようになりました。
仕事でもプライベートでも、誰かと視覚的にやりとりするのに便利です。

特にiPad x Apple Pencilとの相性が抜群です。
キャンバスが大きくなると挙動がかなり不安定になるのが玉にキズですが..😅

共有の必要がなく、手書きだけでよい場合はConceptの方が便利ですね。

Concept

数ヶ月色々なメモアプリを使ってきましたがConceptに落ち着きました。

Conceptに決めたレポートのセクションはコチラ。

プレゼン表示は想定外の嬉しさ😁

Codecov

カバレッジの計測について、Code ClimateからCodecovに移行しました。

Bookmark Sidebar

シンプルでクール、しかも使いやすいChromeのブックマークに関する拡張機能です。

学習

DDD

DDDについて深く学び経験できた1年間だったと思います。

はじめのきっかけは[Togowl]でした。
[Togowl]を開発しながら値オブジェクトの表現について悩みました。

ここには書けませんが、仕事でもはじめてDDDな開発が継続できています。
ドメインモデルをしっかり定義して..開発前にドメインエキスパートと認識あわせて..。

一度この流れに慣れてしまうとDDDナシの開発には戻れませんね。無駄が多すぎて。

Open API

Open APIをはじめて使いました。
仕事でリアーキテクトしてたレガシーシステムがあまりに意味不明だったので..。

Kotlin

Kotlinを使って普段使うものをはじめて作りました。
JetBrains IDEで使えるMarkdownのフォーマットプラグインです。

もちろんIDEA Vimありきなのでコチラとあわせてお使いください。

TypeScript

リリースノートおさらい (v2.0~v3.6)

リリースノートを読み返して日本語でまとめる..ということを1年間続けていました。
v2.0から1日1セクションを目標に初めて、今v3.7の途中です。

目的はTypeScript力の向上です。
歴史を知ることで、質問に対する回答のクオリティも上がったと思ってます。

デコレータ

TypeScriptでデコレータをはじめて作りました。

Playwrightでe2eテスト

ここ2~3年でe2eテストの敷居も下がったものです。時代に追いつきました。

Rust

2年ぶりに少しだけ本気を出して学習しました。少しだけです..。
The bookで理解したことを日本語で4章途中までまとめました。

他にもATLrusというAtlassianのAPIを使ったニッチなCLIツールを作りました。

学びは記事1つ分くらいありました。

muslビルドも以前と同様Dockerでできました。

Golang

CLIライブラリ

プライベートでは開発していませんが、仕事でいくつかCLIを作りました。
そこでCobraやViper、zerologなどの著名ライブラリを使いました。

設計はDDDで行い、Application ServiceのFactoryでAPI Clientなどを注入できるようにして、Testableなコードを書けました。
今までは外部からAPI Clientを注入せずにテスト用のServiceを別途実装していましたが、それがDDDとして望ましい設計ではないことに気付きました。

エコシステムも最新化しました。Go Moduleとか。

Goroutine

何かと理由をつけて逃げていたGoroutineを克服しました。

Svelte

前から気になっていたSvelteを触ってみました。

まだα版以下ですが、FLOWERというWebツールも作りました。

今後機能を増やしつつSvelteを引き続きウォッチしていきます。

英語

10月中旬からQuizletというクラウド英単語学習サービスをはじめました。

https://quizlet.com/ja

自分で単語登録できるのがウリで、日々読んでいる英語の技術記事から分からなかった単語を毎日登録・学習するようにしています。
2ヶ月半で登録単語数は150になりました💪

エンジニアリング

GitHubで管理しているリポジトリの成果についてです。
2020年に作ったリポジトリには簡単に紹介文を添えます。

Togowl

昨年の年末年始にリポジトリを作成し、間違いなく今年一番開発したプロダクトです。
1年間で400近いコミットをしました。

Todoist/Toggl/Slackと連携して、タスク/時間管理を一元化するツールです。
Windows/Mac/Linux/Android/iOS、主要ブラウザで使えます。Foo!!

60回ほどリリースしています。

リリースの種類 回数
メジャーバージョンアップ 2
マイナーバージョンアップ 37
パッチバージョンアップ 19

Togowlの開発を通して様々なことを勉強させてもらいました。
年末にきっかけをくれた某kbys氏には感謝しています🙏

  • DDDと共に成長していくプロダクトの作り方
  • 複数のWeb Socket APIを使ったリアルタイムアプリケーション設計
  • TypeScript + Nuxt + Vuetifyのベストプラクティス
  • クロスプラットフォーム/クロスブラウザ/レスポンシブ対応のPWA開発
  • タスク管理と時間管理に関するドメイン知識
  • Todoist/TogglのAPIおよびWebでの利用方法

Togowlは自分が毎日自分で使っているツールであるためモチベーション維持が楽でした。
Togowlで学んだ技術は仕事でも活かせたので一石二鳥です。
間違いなく昨年のThe best of productです😊

Owlelia

TypeScriptでDDDするためのベースとなるライブラリです。
Togowlが光の立役者なら、Owleliaは間違いなく陰の立役者です。

30回ほどリリースしています。

リリースの種類 回数
メジャーバージョンアップ 0
マイナーバージョンアップ 23
パッチバージョンアップ 9

Owleliaは2020年以降に作ったすべてのTypeScriptプロダクトで利用しています。
プライベート/仕事を問わずです。

主役はvo、entity、either、errorですが、オマケでつけたdatetimeがいい仕事しています。
日時に関するドメインはTogowlでも仕事でも頻繁に使うため、かなり恩恵を得ています。

間違いなく今年も更新が多くなるライブラリだと思います。
今年はv1.0を出したいですね。

Markowl

JetBrains IDEでMarkdownを編集するとき、痒い所に手を届かせるプラグインです。
なにより自分が使うので本気でした。

30回ほどリリースしています。

リリースの種類 回数
メジャーバージョンアップ 0
マイナーバージョンアップ 6
パッチバージョンアップ 6

規模は小さいですが、ターゲットの広いMarkowlも新たな経験をさせてくれました。

  • 初Kotlin
  • 初JetBrains IDEプラグイン
  • 初ちゃんとしたIssue対応

今年も必要に応じてバージョンアップしていきたいですね👍

FLOWER

年末にSvelteではじめて作ったメディア変換サイトです。
まだバージョニングは愚か、package.jsonの記載も適当です😅

これから年々Svelteの時代がくると個人的に思っています。
その流れをキャッチアップする上でも..今年はFLOWERを育てていきます🌺

あ、FLOWERは勉強目的だけではなく実用面も意識しています。
画像と動画の変換やサイズ削減に興味ありましたら是非試してみてください😉

ATLrus

Atlassianツールの操作を行うRust製CLIです。
Rustの勉強を兼ねて、仕事で必要だったため作りました。

バージョニングはしていますがリリースは1回きりです。
今のところ、あまりメンテするモチベはありません。

Rustは言語としての魅力がありつつも、実用面ではGolangに軍配が上がります。
しかし、以下の観点から継続的に学んでいきたいと思っています。

  • 必要になったとき使えるようにしたい
  • Wasmとその可能性
  • 設計をはじめエンジニアとして全体のスキルアップになる

Jumeaux

バージョンはv2.2.0からv2.7.0まで上がりました。

リリースの種類 回数
メジャーバージョンアップ 0
マイナーバージョンアップ 5
パッチバージョンアップ 1

主な対応は以下3つです。

  • POSTのraw対応
  • Slack通知機能の強化
  • Windowsサポート (開発/実行ともに)
    • e2eテストをbatsからpytestに移行

Miroir

バージョンはv1.0.0からv1.1.0まで上がりました。

リリースの種類 回数
メジャーバージョンアップ 0
マイナーバージョンアップ 1
パッチバージョンアップ 0

Angular9およびJumeauxのPOST rawに対応しただけです。
メインで利用している技術がVue/Nuxtであり、仕事でしか利用されないツールなので積極的に改修することはありませんでした。

これからも必要最低限の対応になると思います。

Owlora

今年はリリースしませんでした。

最近は使っていないので、事実上開発は凍結しています。
中期のスケジューリングやReactを使う必要が出たら復活するかもしれません。

OwlMixin

バージョンはv5.5.0からv5.6.0まで上がりました。

リリースの種類 回数
メジャーバージョンアップ 0
マイナーバージョンアップ 1
パッチバージョンアップ 0

Python3.9をサポートしただけです。
今年は仕事でPythonを使う予定があるため昨年よりバージョンアップするかもしれません。

owcli

今年はリリースしませんでした。
今年は仕事でPythonを使う予定があるためバージョンアップするかもしれません。

gowl

今年はリリースしませんでした。

Bitbucket Cloud対応やmainブランチ対応など、やることはあります。
ただ、私のユースケースにあわないため優先度は低めです。気が向いたらやるかも。

その他

創の軌跡

軌跡シリーズ前半の最終作『創の軌跡』が発売されました。

やりこみ要素がかなりのボリュームで、合計200~300時間くらいプレイしたと思います。
後半戦では9割くらいのキャラが登場しないため、オールスターな感じでした。

薬屋のひとりごと

なんとも言えぬ面白さがあって全巻買ってしまいました。

総括

本当は2020年中に書きたかったのですが、思った以上にネタが多くて年が明けてしまいました..。

そういえば2020年は年始に目標を立てていませんでした..。
ただ、都度何をすべきか考えてその時やるべきことをやれたと思っています。
それが成果にも繋がっているのかなと。

今年は情報整理の革命をしていきたいと考えています。
変わらず精進していきたいと思いますので、今年もよろしくお願いします👊