出張からLT会参加まで、忙しい1週間でした

 

はじめに

お疲れ様です。yojiです。

 

今週は出張などもあってかなり忙しく、個人的にはとても大変な週でした。

(正直、かなり疲労困憊です...)

 

ただ、その分学びが多かった週になりました。

備忘録も兼ねて、今週取り組んだとと得られた学びについてまとめていきます。

 

今週の出来事

今週は大きく分けて次の3つの出来事がありました。

 

業務タスクに関する設計提案と資料作り

こんなことしました

開発中に実装したい機能の提案を受け、仕様検討から設計までを行う、ということをしました。

機能追加自体や仕様検討、設計などは息をするように日頃からしているのですが、今回は次のバージョンの目玉機能ということもあり、かなり慎重に検討しました。

 

また、最近とあるドキュメント化の本(以下)を読んでおり、こちらの書籍の内容を活かせないかな、と思って気合い入れて資料作りしました。(本の感想はまた今度)

 

最終的に作成した資料で上手に設計提案を行い、承認を得られることができました。

GW明けから自分の思い通りの設計で実装できます。

 

結構嬉しい。

 

工夫したこと

資料を作成する前に、「ドキュメントの目的」と「ドキュメントを読む人」を明確にしました。

また、どこかのページから書き出すのではなく、一番最初に目的を整理したページとアウトラインのページを作成しました。

これによって資料の軸がブレることがなくなって、芯の通った資料にすることができました。資料の方向性を悩む時間も減ったので、良い方針で資料作成できたかなと思っています。

 

また、とにかく図を入れ込むことを心がけました。

結局、資料説明の時に一番効果的だったのは図でした。

文字で着飾るより、図が早いしインパクトもあります。

 

メンテナンスが大変だったり、文字より賞味期限(図が実装を正確に表現することができる期間)が短かったりするのでケースバイケースですが、説明資料としては有効なのかなと感じました。

 

所感

色々試行錯誤しながら資料作成したので、いつもより時間が掛かったことが課題です。

慣れれば解決するのか、実は効率の悪い方法を取っていたのか、色々原因は考えられますが注意したいと思いました。

 

OOCのスタッフ打ち上げ に参加

こんなことしました

表題の通りです。

社外のエンジニアの方と飲む機会があまりなかったので、良い機会になりました。

 

エンジニアとしての悩みを打ち明けたり、今後のカンファレンスの展望の話も聞けたりして大変楽しかったです。

 

春和の候!若手エンジニアふんわりLT Night! に参加

こんなことしました

若手だけのLT会に参加してきました。今回は登壇ではなく公聴者として参加しました。

この会に参加するのは初めてで、知り合いも全然いなくて緊張していました。

 

wakate-funwari-study.connpass.com

 

LT内容と学び

どのLTも内容がまとまっていてわかりやすく、かつ面白かったです。

簡単に概要と所感をまとめておきます。

 

1. 個人開発でAWSを使いたい

javadogさん(https://twitter.com/Javadog_

speakerdeck.com

概要

・個人開発でのアプリをAWSで運用してみたいが、とにかく高すぎる(月20000円〜)

・開発期間中くらいは安く済ませたい→激安サーバーやfirebaseを組み合わせた方法を検討

・開発が終わってからすぐにAWSに移行するために、repositoryパターンを使った実装の隠蔽を事前にしておく

・伸びるのを待つ

 

所感

AWS高過ぎて個人レベルでは使いにくい点に非常に共感。本当は勉強で触りたい...

・安く済ませる方法も紹介していただいたが、機能に制限があって使いにくさが気になる

・「伸びるのを待つ」がめちゃくちゃ好き

 

2. 友達にコード送ったら1行にされた

ひなさん(https://twitter.com/mi111025

speakerdeck.com

概要

・個人開発で、スライダーの位置によってボタンの色を変化させる機能を実装した

・いざ実装して友人に見せたところ、コードが1行になって返ってきた

・HSL色空間で簡単に実現できる(色相、彩度、明度の組み合わせで色を表現する関数)

 

所感

・そもそも個人開発の出来が良くて驚いた

・HSL色空間の指定方法は知らなかった

・レビューしてもらうことは大事だと思った。私にはレビューお願いできる人周りにいないけど...

 

3. Let's learn code review

RioFujimonさん(https://twitter.com/RioFujimon

speakerdeck.com

概要

・コードレビューの勉強は後回しになりがちなので、この機に学習してほしい

・コードレビューの標準として、Google's Code Review Guidelinesを紹介

・コードレビューの目的は、コードベース全体の健全性が時間と共に向上することを確認すること

・議論紛争の解決には、レビュアーガイドラインや直接会議で解決

・わからないことは実装者に直接質問しよう

 

所感

・確かにコードレビューの勉強は後回しになっている

・完璧なコードを求めない、という点に驚き。今まで完璧を求め過ぎていたかもしれないと反省

・良い機会なので、Google's Code Review Guildelinesを勉強したい

 

4. Result型の次のエラーハンドリング

sousan さん(https://twitter.com/moso_midnight

speakerdeck.com

概要

・推し:ずっと真夜中でいいのに。

・Typescriptにて、try-catch や Result型でのエラーハンドリングをRailway Oriented Programmingで実装してみた

・try-catchなどは処理が増えると分岐が増え、エラーの網羅性が心配になる

・メリット:エラーの網羅性と保守性が向上した

・デメリット:実装が重たい。エラーハンドリングが易しめの実装には向かない

 

所感

・Railway Oriented Programmingをそもそも知らなかった。

・直近でエラーの要件が厳しい案件を触っていたので、工数感が重くても実装する価値があるかもしれないと感じた。

 

5. 記事の一歩目は業務内容から

taiyamaさん(https://twitter.com/taiyama1212

speakerdeck.com

概要

・記事をまだ書いたことがない人に記事を書いてほしい

・最初は業務内容をアウトプットにするのが良い

・業務内容をまとめていると、社内の人から頼られるかもしれない

 

所感

・記事を月10ペースで書く、というのが凄過ぎて衝撃だった

・何かしらの記事を書きたいと思っていたので、かなり参考にさせていただきたい

・「備忘録」を使うとそれっぽくなる

 

6. Laravelのサービスコンテナを知ろう

Takuminさん(https://twitter.com/Ota_Rg_Blog

speakerdeck.com

概要

・Laravelにおいて、クラスの依存関係を管理しながら依存性注入ができる強力なツールであるサービスコンテナを紹介

・DIは、あるオブジェクトを別のオブジェクトの機能として使うデザインパターン

・依存関係を解決しながら別の機能を注入できる→疎結合を実現

 

所感

・AngularでもDIを多用(コンポーネントにサービスを注入する常套手段)なので、かなり親近感を覚えた

・依存関係を解決しながら、という点は驚き

・Laravelはこれまで興味なかったが、勉強してみたいと思った

 

7. Bloom FilterをJavaScriptで実装してみた

kii310さん(https://twitter.com/kii310_nyan

speakerdeck.com

概要

・Bloom Filterとは、「あるデータが集合の要素である」ことを判定するデータ構造で、ビット配列を使うために軽量という強みがある

・このBloom Filterで、DBの負荷をとことん下げたい

Javascript(Typescript)の固定長ビット配列(TypedArray)を使って実装した

 

所感

・Bloom Filterの話を聞いている時はあまり実用性のイメージがわかなかったが、DBの話でなるほど、と思えた

・フロントエンドエンジニアをやっているとビット配列を触る機会はあまりないので、新鮮だった

 

8. 正しいプロファイリングをしよう

saitosさん

(タイトルうろ覚えです...すみません)

 

概要

・「推測するな、計測せよ」は「推測はNG」ということではない。「適切な推測」をしろ、ということ?

・正確なプロファイリングをすることで、サーバーのネックになっている箇所を見つけ出したい

 

所感

・「推測するな、計測せよ」という言葉を初めて聞いた。確かにこの言葉は誤解を招きそう...

・プロファイリング自体にはかなりの興味を持っていたので面白かった。計測手法は流石に参考にできそうにないが...

 

9. ライブの運営方法についての話

こばさん さん(https://twitter.com/ynstg

 

概要

・北海道で様々なライブを運営してきたので、そのノウハウのお話

・企画書作ったり、機材費を自腹で払ったり...辛いことの方が多い

・神頼みもする

・ライブ当日がとても楽しい

 

所感

・ライブ含め、スタッフは中々辛いことが多いと思うと感じた

・かなり辛そうな運営を何回も実行されているので、とても情熱のある方だな、と尊敬

・自腹辛そう

 

0. 懇親会

概要

・参加者の皆さんと雑談

・運営スタッフの方や、登壇者のsaitosさんとも会話できた

 

所感

・バックエンドエンジニアが大半だった印象。フロントエンドエンジニア求む

PHP Kaigiやぺちこんの話、RSGTの話は興味深かった。全然PHP書けないけど参加してみたいと思った

 

 

最後に

火曜日に仕事の都合で大阪まで日帰り出張することになってしまい、水曜日、木曜日に打ち上げとLT会になって非常にハードなスケジュールでした...

 

ただ、社外のエンジニアと交流して、勉強やアウトプットのモチベーションが上がったのは良かったかなと思っています。

 

一旦次のぺちこん応募します。

 

 

編集後記

・フロントエンドカンファレンス北海道悩み中

・LT会の感想出すの早過ぎだろ

 もっと早くアウトプットできるようになりたい...

 

 

ゆったりエンジニア目指しています

はじめに

初めまして。
都内でフロントエンドエンジニアとして活動しているkanamoto(yoji)です。

エンジニアとして働く傍ら、趣味でゲームを嗜んだり技術勉強を行なっている一般的なエンジニアです。

1年を社会人として完走した節目であること、自分のエンジニアとしての活動や学習したことへの感想などをまとめておきたいと考えたことなどから、ブログを開設しました。

将来的には自分用のブログページを自作したいですね。

 

本日は、簡単な自己紹介と今取り組んでいることについて紹介します。

自己紹介・経歴

自己紹介

都内の企業に勤めている一般エンジニアです。

昨年の4月に入社し、今年の4月から新卒2年目として働いています。

 

現在は主にフロントエンドエンジニアとして、主にAngularを使用しています。

 

趣味

IT技術の勉強、

 最近はカンファレンスへの参加や、当日スタッフに応募したりしています。

・ラーメン巡り

・日本酒

・コーヒー

・ゲーム(ソシャゲなどの周回ゲーム、音楽ゲーム

 

IT技術経歴

・言語:Typescript、RubyPythonJava

フレームワーク:React、Angular、NextJS、Nest JS

 

経歴

経歴をざっくばらんにまとめると以下のような感じ。

・某大学入学。情報専門学科に入る。

 

・大学4年目、研究所でAIに関する研究を取り組む傍ら、AIを利用したアプリケーション開発インターンに参画。

 使用言語は主にPythonで、フレームワークDjango

 AIがどのように現実世界の課題に活用されているかを知る。

 

・翌年、某大学院に進学。入学と同時にWebアプリの自社開発を行う会社でインターン生として参画。

 使用言語はTypescriptとRubyフレームワークはReact、Rails、NextJS、NestJS。

 Webアプリケーションの開発の楽しさを知る。Typescriptで型システムの偉大さを知る。

 

・大学院では自然言語に関するAI研究を行う。

 研究そのものが難解、かつchatGPTの登場で壁の高さを知り、挫折。

 

・大学院卒業後、都内のIT企業に就職。主にITサービス開発部門に一般開発エンジニアとして所属。

 

・就職後、研修を終えたのち、新卒二人のみでフロントエンドチームを結成してBtoBアプリ開発案件に参画する。

 使用言語はTypescriptで、フレームワークはAngular。

 相方がプログラミング初心者だったので、テックリードの役割を担う。

 ドメイン駆動設計(DDD)について学習し、興味を持つ。

 

・現在。

 現在も参画中。

 24新卒の参画が決定し、ウキウキ。

 

きっかけ

IT技術に興味を持ったのは大学4年の頃で、コンピュータ専用の言語を記述することでWebページやアプリを作成できることに感動と驚きを感じました。

それ以降、AIやゲーム制作なども少し触り、WEB上で多彩な表現や機能の実現ができるアプリケーションの開発が気に入り、仕事にしています。

 

目指すところ

様々な提案やユーザ含む様々な人の要望を実現できるエンジニアを目指しています。

要望の実現のために、高い技術力や知見を常に持っておきたいと考えています。

できれば、質の高いプロダクトを生み出せるようになりたいと思っています。

 

最近の取り組み

最近気になっていることは以下です。

 

ドメイン駆動設計(DDD)

 チームで効率よくプロダクトを開発・拡張していく考え方に興味を持ち、勉強しています。

 

・バックエンド側の言語およびフレームワーク

 自身が対応できる技術領域を増やしたい、という欲望から興味を持ちました。

 最近はRust勉強しています。

 

AWS

 元々クラウド技術には興味がありました。

 最近は習得の必要性も出てきたので、注力しています。

 

・テスト領域

 かつての開発の経験から、テストが開発に欠かせないことを理解しています。

 最近はテストを前提とした開発手法(TDD)に興味を持ち、テストについて勉強しています。

 

終わりに

社会人1年目として感じていることは、「エンジニアとしてはまだ未熟である」ことです。

社会人2年目に差し掛かり、チームの拡張が急速に進む展望もあるので、チームを牽引するスキルも身につけつつエンジニアとして成長しなければならないという現状です。

焦らず自分のペースで進めていきたいと思います。