nasustim's weblog

日記と技術的な覚え書

私の技術スタック(2021年1月版)

ソフトウェアエンジニアとして2020年に新卒就職してからもうすぐ1年が経過しようとしている。

配属されたのは長年運営されてきたWebシステムの運用と開発を行う部署で、「大きなチーム」で度々「高い負荷のかかる」システムと向き合ったことで職業エンジニアとして日々の成長を感じている*1
一方で新卒時に25歳だったことや、会社員になると「社会人としてのキャリア」や「エンジニアとしてサバイブする」といった話題もより一層身近になり、当事者としての意識も十分に生まれたと感じている。

時期としてもキリがいいし、著名なソフトウェアエンジニアや友人も自身のスキルセットの棚卸しをしているので、自分もやってみようかと思う。

overreacted.io

blog.unasuke.com

フロントエンド開発

できること

私にとってJavaScriptは一番手に馴染んだ言語であり、技術的には細かい挙動やトラブルシューティングも大抵のことはできるように感じる。

現職ではVue.jsを用いたとても規模の大きいシングルページアプリケーションの運用と施策開発を経験したし、学生時代のアルバイトや副業でもReactベースのプロダクトを扱っていた。

ちなみに私のポートフォリオサイト*2はNext.jsで運用している。

業務では各ブラウザ毎の挙動やWebフロントエンドのパフォーマンスを意識したJS, CSSのコーディングをレビューで指摘されることも多く、状況に合わせて何を調べればいいかは頭の中にうっすらとインデックスを張ることができていると感じる。

できないこと

一方で、近年注目されているRust等の言語を用いたWebAssemblyはまだ触ったことがない。

TypeScriptについては、公開されているライブラリや小規模なパッケージに型をつける程度のことはやったことがある。 もう少し高度なジェネリックを組み合わせた複雑な型定義は読むことはできるかもしれないが、自分で定義するのは難しいと思う。

エクストリームな領域ではあるが、mizchiさんが発表されていた新たなフロントエンド技術もまだ全然キャッチアップできていないと感じる。

zenn.dev

サーバサイド

できること

現職ではAWS上でPerlMySQLをベースにしたシステムの運用に携わっている。 趣味レベルではExpress.jsやFlaskを用いた簡易的なサーバサイドを開発したことがある。

特に現職では、サービス開発に必要なサーバ側の各技術をさわり程度には経験できたかなと思っている。 そして何よりも、プロダクトの採用するアーキテクチャに沿って各階層の責務を分けることや、パフォーマンスが悪くならないかを意識してコードを書くなど、開発者としてのマインドはサーバサイドに触れたことで大きく成長できたと感じている。

できないこと

もちろんサーバサイドで採用されるプログラミング言語フレームワーク, ミドルウェアなどは無数にあり、普段触るものについても運用と拡張をできる程度の経験しかないと感じている。

年末年始に副業で簡易的なAPIサーバを作成した際に感じたことだが、システムの要件に沿ってミドルウェアの構成やRDBのテーブル構成、コードの階層分けを考えるといったようなアーキテクトととしての能力はまだまだ足りない。 小さなシステムだったのでスクラップアンドビルドを繰り返して拡張や保守をしやすい形に仕上げることができたが、今年はもっと設計技法に関する本を読んだり、普段触るものとは別のシステムのコードを読んだり触ったりして知識や経験を積みたいと考えている。

昨日白山さんが設計について以下のようなツイートをされていた。名前のついたアーキテクチャに依らずとも、厚すぎず薄すぎずで保守, 拡張しやすい設計を模索できるようになりたい。

モバイルアプリケーション

できること

2015年に大学時代の友人とJava + ADTを用いてAndroidアプリ*3を作成したことがある。このときにActivityのライフサイクルをふわっと理解したことでReactコンポーネントのライフサイクルの考え方が馴染みやすかったように感じる。

また、IAMASでの修了作品*4の一部である動画再生アプリをReact Nativeで作成した。

できないこと

2016年以降にAndroid Studioを開いていない。SwiftとKotlinは書いたことがない。 数日再勉強した程度ではまともなモバイルアプリケーションを作れるようにはならないと思うし、もしかしたらJavaでアプリを作った知識がほとんど役にたたないほどのパラダイム・シフトが起こっているかもしれない。


*1:逆説的に今まで未熟だったということも事実

*2:もしもこのURL先がNext.jsじゃなくなっていたら、こちらが記事作成時点でのコードですhttps://github.com/nasustim/nasustim.com/tree/f33b2d8f53d20f7122d56d432b7b934146c2d22d

*3:NTT docomo東海のコンクールで入賞したけど、ノミネート記事しか残ってなかった https://www.nttdocomo.co.jp/info/notice/tokai/page/151224_00.html

*4:https://nasustim.com/works/slash-module-slash-whom

MinillaでPerlのモジュールを作成する

自分用メモ

TL;DR

  • Minilla - CPANモジュールのテンプレート, ビルドシステム, テストテンプレート,,,などを提供してくれる(オーサリング)パッケージ
    • 2020年末現在は頻繁に使われてそう
  • CPAN, DarkPANのリポジトリにアップロードしない前提でもこれでパッケージングするのがよさそう

環境

key value
ハードウェア Macbook Pro 2017(13inch), Intel core i5-7360U 2.30GHz, RAM 8GB
OS macOS Big Sur - ver.11.0.1
Perl ver.5.28.2(plenv)

やること

$ cpanm Minilla
$ minil new Acme::Nasustim::HogeHoge
$ cd Acme-Nasustim-HogeHoge

// 依存パッケージのインストール
cpanfileにモジュールを追記
$ carton install

// モジュール本体のコードとテストを書く
$ carton exec -- prove -Ilib t

参考にしたサイト

2020年の振り返り

このブログを更新するのも久しぶりですね。id:nasustimです。

2020年は新型コロナウイルスの流行で生活のあり方が大きく変わった年でした。私にとっては大学院を修了し、生まれ育った岐阜を離れて東京に移り住み、就職した年でもあるため、変化の幅はより一層大きく感じられたと思っています。

晦日の特別感をそれほど感じず過ごしているので、2021年を新しい気持ちで迎えるために振り返りをします。

学校

f:id:nasustim:20190923162434j:plain:w450
修士作品: 《/module/Whom》1

3月に大学院を修了しました。

修論執筆にあたって様々な方にお世話になりました。 大量のコメントを入れて指導してくださった主査副査の先生方、急な連絡にも関わらず作品の感想を聞かせてくれた中学の友人たち、書いたコードをレビューしてくださったプログラマの友人たち、日々のディスカッションの中で論の深さと幅を広げてくれた同期, 先輩, 後輩たち、門外漢だった言語学のリファレンスを教えてくれたり論文のレビューを引き受けてくれた友人たち、いつも元気をくれたファミリーマート大垣ソフトピア南店の店長、 色々な方の協力があって一本の論文を完成させることができました。感謝で胸がいっぱいです。

私自身は利己的な考えで生きてきましたが、利他的な行動も心がけていきたいなと思えます。

仕事

2020年4月に縁あって今の会社に新卒入社しました。 現在はソーシャルゲームの開発チームで既存システムの改修や新規施策の開発に関わっています。

新型コロナウイルスが流行した影響で、4月から現在に至るまでフルリモートで勤務しています。 社会人としてもですが、今のチームでの業務経験がどうしても少ないので、上司との認識共有や質問の際に怖気づいてしまうこともありました。それでも9ヶ月働くと仕事の進め方や業務コードの扱いにも慣れてきますね。 また、数十人規模のチームで働くこと自体が初めてだったので苦労を感じつつも職業エンジニアとしての成長はできていると感じています。

レビューを受けたり同期のプルリクを眺めている内に、それぞれの階層の責務を分けること、モジュールのコールが増えてもパフォーマンスが悪くならないように意識する癖が身についたと感じています。サーバ側はPerlを使ってコーディングを行っていますが、構文に慣れれば冗長なトークンも少ないので、ななめ読みで抽象的に捉えやすく感じます。そのような状況なので、特にサーバ側のアーキテクチャを意識することも多くなりました。 学生の頃はフロントエンド技術ばかりを扱っていましたが、仕事をしている内にサーバ側やインフラに興味が傾いてきました。

趣味

バイク

去年はこっち

nasustim.hatenadiary.com

岐阜で乗っていたルネッサを連れて引っ越したので、東京近郊も何度か走りに行きました。

f:id:nasustim:20201231184154j:plain:w400
引っ越しの道中で立ち寄った東名浜名湖SA

f:id:nasustim:20201231204152j:plain:w400
自粛ムードがピークだった4月にツーリングした帰りに立ち寄った新宿中央公園

f:id:nasustim:20210101000303j:plain:w400
初めて有給を取得して行った湘南

このルネッサは7月頃に今後の維持コストやそのときの使用状況を鑑みて手放してしましましたが、バイク自体はまたいつか所有したいと思っています。

音楽

今年新しくハマった歌手

藤井風

今年の6月頃によく聞いてた。メロディもクセになりますが、言葉の選び方が上手くて自分からはこんな歌詞出せないなぁと思います。

www.youtube.com

青春病の歌詞とともにアップされてた画像が最高

kojikoji

去年知り合いがよくツイートしていて認知はしていましたが、 メロウな歌声が夜の散歩中の気分に合ってて今年よく聞いてました。

LUCKY TAPESとのコラボ曲が好き。

www.youtube.com

虹ヶ咲

疲れるとアニメとアイドルにハマりやすい。

今までのラブライブシリーズと少し毛色が違う印象。メインキャストも全員実績があって歌唱力のある声優さんばかりだし、アニメもがむしゃら目標に向かうではなく各キャラクターの内面の成長に焦点をあてた話が多かった。 あと東京MXの最速地上波と同時刻にYoutube配信を行ったりメディアミックスのやり方も新しさを感じました。

www.youtube.com

2021年の目標

言い訳も入ってしまいますが、2020年は大きな変化に身を任せることにいっぱいいっぱいで、対外的なアウトプットをほとんど出すことができませんでした。

制作においては来年は小さなことから、

  • 1ヶ月1つは自分の制作物を作る
  • ↑のために調べたことを対外的にまとめていく

生活面では、

  • 今年の夏〜秋辺りを目安に引っ越す
  • 大型二輪免許を取得する

を目標にします。みなさま良いお年を👋

初めてのバイクと過ごした2019年を振り返る

これは、バイク Advent Calendar 2019 13日目の記事です。

adventar.org

こんにちは、id:nasustimです。

今年の2月から乗っているYAMAHA ルネッサとの思い出を語ります。

どんなバイク?

f:id:nasustim:20190512160014j:plain
図1: YAMAHA ルネッサ

これ、かっこいい。

YAMAHAが90年代に発売していた250ccでVツインのSRV250*1をカフェレーサー*2風のスタイルにしたモデルです。

今年の3月で岐阜を離れて関東に引っ越した先輩がルネッサを手放すとのことで、 もう一年間の通学や岐阜のワインディングを楽むために乗りたかったので譲り受けました。

大学時代に普通二輪免許は取得していましたが、 125cc以上のバイクはそれ以来乗ってなかったので実質初めてのバイクです。

思い出

温泉

岐阜県には温泉が多く、よく気分転換に行きました。 今年の秋口にはサウナにめちゃめちゃハマっていて、週2くらいの頻度で行ってた気がする。

学校のある大垣市岐阜県の南西に位置しており、愛知県と三重県との県境にとても近いです。 そのため1時間ほどで伊勢湾に出られます。

研究に行き詰まったら夜中に四日市まで走って、少し海風に当たるなどしてました。

琵琶湖

滋賀県もそこそこ近いです。高校の先輩と2回琵琶湖ツーリングに行きました。残念ながら今年はメタセコイア並木を見られませんでした。

良かったこと

毎日通学で乗ってもガソリン代が安い

こんなことを理由にバイクに乗ると真剣に乗っているライダーの方々に怒られるかもしれませんが、実際ありがたいです。

初年度登録が23年前の1996年*3でとても年季の入ったバイクですが、それでも20[km/L]以上、フューエルワンを投入してエンジンオイル交換した直後だったら30近くは出てそうな体感です。

軽微な故障なら自分でなんとかできそう

f:id:nasustim:20191212205618j:plain
図2: 機構がむき出し

キャブレーターかつ機構がむき出しなので、不具合が起こっても自分で何とかできそうな雰囲気があります。 この一年で

  • ハザードランプを点灯させるボタンのバネが効かず、ハザードが点きっぱなしになった
  • クラッチワイヤの潤滑油が抜けた
  • 走行中に前輪のロータリーエンコーダとスピードメーターを繋ぐケーブルが外れた
  • リザーブコックの隙間からガソリンが漏れ出した
  • ...etc

など色々トラブルがありましたが、大抵はその場でシュッと解決できてます。古いバイクで頻繁に不具合を起こしますが、その分メンテナンス性が良い。

想定外だったこと

ガソリンの残量メーターが無い

古いバイクだと当たり前らしいですが、一回だけ走行中にガス欠しちゃったことがありとても困りました*4

冬が寒すぎる

めちゃめちゃ寒いです。 ルネッサを手に入れる前はSUZUKIのスクーターとタイカブに乗っていて、どちらも前から見て身体の大部分がカウルで風よけされていたので、ネイキッドの寒さは想定外だった......。

終わりに

晴れの日も、想定外の雨の日もぼくを乗せて走ってくれたルネッサ。ありがとうルネッサ。

バイクは退屈な日常に彩りを添えてくれました。

f:id:nasustim:20191212223856j:plain
図3: ライダーは心が健康

バイクはいいぞ!

www.youtube.com

*1:https://ja.wikipedia.org/wiki/%E3%83%A4%E3%83%9E%E3%83%8F%E3%83%BBSR#SRV%E3%82%B7%E3%83%AA%E3%83%BC%E3%82%BA

*2:https://ja.wikipedia.org/wiki/%E3%82%AB%E3%83%95%E3%82%A7%E3%83%AC%E3%83%BC%E3%82%B5%E3%83%BC

*3:確か、ナンバー証明書にも保険の証書にも書いてないから分からない

*4:リザーバにもたまたまガソリンが入ってなかった

夏の思い出

8月16日から昨日までベトナムホーチミンに居た。

撮った写真たちを公開しないのは勿体無いので供養させて欲しい。

 

台湾乗り換え。桃園空港のフリーwi-fiは登録無しで使えたのでありがたかった。

タンソンニャット国際空港に着いた。台北の桃園空港に比べてとても近代的な建物で驚いた。

ホテルの近く2 #theta360 - Spherical Image - RICOH THETA

バイクがたくさん

川 #theta360 - Spherical Image - RICOH THETA

道を渡る時はだいたいこんな感じ。ベトナムでは車もバイクも歩行者も信号無視が基本で青信号でもうまく避けて渡らないとクラクションを鳴らされる。

レッドブルがめちゃ安かった。ベトナムでは本家タイ産が売られてた

シクロ #theta360 - Spherical Image - RICOH THETA
船 #theta360 - Spherical Image - RICOH THETA

シクロという自転車を改造したタクシーに乗った後になんとなく遊覧船に乗った。ホーチミンはめちゃめちゃ都会でした。

偽物だと分かってはいましたが、箱が本物そっくりだったので少しだけ期待してました。

クリームが乗ってないフラペチーノ。ジャムがそのままぶっかけられてて死ぬほど甘い

最後のディナーはお寿司。

夜のサイゴンスカイデッキ #theta360 - Spherical Image - RICOH THETA

寿司を食べた後に展望台に乗りました。夜景綺麗。