2018年のコードを振り返る(後編)
あけましておめでとうございます!!!!
ということで続き。前編はこちらです。
7月
前半はあまり目についたコミットがなくて、後半で課題のために勢いよく書いたHow to solveというサービスが生まれた。
createElementとかappendChildとか、datasetとか使うようになってる。もうこのときには今と同じくらい書けるようになってるぽいですね。
例
let newLink = document.createElement("a");
8月
現在非公開の所属団体で作ってるやつのコードを書いてた。そんな事情なので例はなしです。
VueやWebpackに初めて触った。けどこのときはまだ理解の浅いところだったかも。
9月
ホームページの再制作とISUCONに出たりした。
ホームページにはJSを使ってないけど、SCSSを使って構造的に書けてるんじゃないかなとか思った。ちなみになぜかprefixが-webkit-で動いちゃってるからわからん。多分修正したほうがいい。
あと縦位置が微妙なズレでおかしくなるので、設計からやり直したほうがいいかなーと反省してる。とりあえず値決めて、ずれてたので簡単に計算して修正……みたいなことやってたけど、そもそもユーザーの目線とかいろいろ考えてみたほうが良かった。
でも線が好きという感情をようやく形に出来るようになってきたかなと思えた一歩。1月に作ったホームページにも書いたけど、『作りたいものを作れる人に』というのが大きな目標なので、今後もいろいろ取り組んでいきたいと考えてる。あと最近はデザインの理論にも興味が出てきた。『センス』って言葉で終わらせないために学びたい(すごく負けず嫌いなところが出てる)。
例
background: -webkit-repeating-linear-gradient(270deg,
10月
前半、Apache Thriftというやつの調査をしてた。ここで内部実装とか機械生成されたコードを読む興味深さに気がついた。知らないことを知るための技術を得た大きな一歩。
後半、Vino.jsというやつの試し書きをしてた。これもこれまでと違って、自分で新しい形を産もうとして、どういう形でライブラリを作れば使いやすいか悩んだ。
新しい仕組みを考えるために悩むというのはこれまでなかった。どうやって実装すればいいのか?という悩みから、どういう仕組みを実装したら便利だろう?という悩みに変わった。
Vino.jsについてはこちらの記事で話してます。参考にどうぞ。
11月
ここも8月と同様に非公開のやつです。サーセン
でもこのときはVueってものがリアクティブという概念の上にいるということを知ったし、それを理解しようと取り組んだ。なんというか、哲学的なレベルにまでわかったという気はないけど、こういう仕組みがやりたいんだなというのは理解できた。
たしかこの理解もVino.jsの開発を止める理由の一つになった。歴史的にたくさんの人間がたくさんの仕組みを考えて、その中から決定される事項を生み出すという労力がとてつもないということがわかったし、まずはいろいろなものを知るべきだと考えた。
というのとぶっちゃけそのサービスの制作スケジュールがやべえので手を離せないという事情がある。
12月
この月もほぼ非公開のサービス書いてた。けど、一週間だけ諸事情で作業停止したときにSubsShotStudioというのを書いた。
書き忘れていたけど、11月頃からそのサービスのフロントエンドがTSに変更され、TypeScriptHandbookにToCがないことに苛立ったぼくは突然UserScriptを書いた。
Insert ToC in TypeScript Handbook. https://t.co/2eJ0v3qErP
— [UTF-8]Marco.vue (@Marco_utau) November 3, 2018
そういえば先日、TSのドキュメントを読んでいて読みにくかったので、ユーザースクリプトでToCつけるやつ書きました
んでこの直後にLTが予定されていたので、UserScriptの知見を直近で得たこともあってネタ画像作れるやつほしいなと思ったので作った。ちなみに結局これがLTのネタになった。
ぶっちゃけコード自体はそこまで進化してなくて、夏休み明けくらいからはほぼ書いてる感覚変わってない。変わっているのはJSがTSになったこととか、ちゃんと型を意識して、適切にHTMLElementのメソッドを叩いて……という姿勢かも。
単純にMDNを(日常的に)読むことが増えて、こんな書き方あるんだって見つけたらそのまま吸収する流れが出来ているからかなーと考えている。もう新たにJSを吸う必要は少なくて、それ以上に設計とかに頭を向けたほうがいいタイミングだと思う。
それはそうと、英語版MDNから順次各言語で書かれている継承図が結構わかりやすくて好き。でもEventTargetだけは今のところ嫌い。
あと今回はリリースを活用して、cdnと紐づけておけばtampermonkeyとかで自動更新できるようになってる。結構リリース駆動を意識してみたんですが、どんどん『リリースしました』って言えるので気分がいい。割とめっちゃいい。おすすめ。
まとめ
まだTS自体には慣れていなくて、Interfaceと型(: number
など)しか使ってないので、今後はそのあたりが課題かなと思ってます。これはもうオブジェクト指向プログラミングをしっかり理解しないとなーという課題でもある。
まあそうはいいつつ一年間ですごく成長できたと思うし、とても楽しかった一年です。ちょいちょいバックエンドでGoが出てきてるんですけど、正直理解は浅いので機会があれば知っておいて損はないなーと思ってます。(がこのあたりは時間の投資問題みたいなレベルになってくるかも)
いつも私の意味のわからん質問に答えてくれる方のおかげでここまでやってこれました。本当にありがとうございます。今後も『作りたいものを作れる人に』なるため、たくさんの『作りたい』を形にしていきます。
年度末にも振り返り記事書くかもですけど、とりあえず今回は技術的な成長を中心に書きました。ここまで読んでくださった方々、ありがとうございます。
さて、それでは、素晴らしい一年を過ごせますように。