エンジニアとして入社してからの4ヶ月を振り返る
本記事はプラコレ Advent Calendar 2020の記事です。
こんにちは!中村です!
プラコレにジョインして4ヶ月が経ちました。
自分はPLISMというクリエイターチームに所属しており、サーバーサイドエンジニアとしてWebサービスの開発を行っています。
もうすぐ1年が終わる節目ということで、せっかくなので入社してからの4ヶ月を振り返りたいと思います。
【1ヶ月目】
・ 怒涛の環境構築◯
プラコレweddingの開発環境を整えるために、環境構築からスタートしました。先輩エンジニアの方とzoomを繋いで環境構築を進めさせてもらったため、ジョインしてすぐでも安心して環境構築を進めることができました。
・エンジニアとしてのコマンドが増える◯
プラコレのシステムは、かなり複雑でソース解析で結構苦労しました。
デバッグのやり方、デベロッパーツールの活用法、関数ジャンプなどのエディタ機能などを教えてもらい、少しずつ解析のやり方を覚えます。
初めてプラコレのソースを見た時は「なに書いてあるか分からん絶対読めない」状態だったのですが、今もなんとか開発できているので少しは成長しているのかな〜〜と思いました。いつもサポートしてくれているエンジニアの方々には感謝です。
【2ヶ月目】
・ 保守性を意識するようになる◯
自分の書いたソースをレビューしてもらうことで、処理の共通化ができていなかったり、変数名が分かりにくかったり、保守性の悪いソースになっていることに気付きます。可読性が悪いと、他のエンジニアの方がソースを見た時、解析に時間がかかるので開発効率を落としてしまいます。機能を実装するだけではなく、綺麗なコードを書くことが重要だな〜と感じました。
リーダブルコードは「チーム開発をする上で読んでおいた方がいいよ!」と先輩エンジニアから教えてもらったので入社前に読みました。読みにくいコードを例に取り上げ、読みやすいコードに直していく過程が書かれていて分かりやすかったです。今でも読み返したりします。
・ 思いこみでソース解析を進めてしまう×
エラーに遭遇した時、情報源であるログを読んでいるつもりでも大事な情報を見落としていて、思いつくものから調べる見切り発車的なアプローチをしてしまう時がありました。動くと思っていたプログラムが動かないとき、動かないのはどこかに原因があるからで、自分の思い込みで先々動かないことの大切さを実感しました。
【3ヶ月目】
・ WebAPIの設計をする◯
この時期から設計を任せてもらうことが多くなります。
WebAPIのレスポンス形式を考える際、「フロントエンジニアの方がどういう形式でデータが欲しいか」を考えて設計することで、とても勉強になりました。設計ができていないと、後々修正作業が発生してしまうので、開発よりも一番設計が大事だと感じました。
・性能面を意識するようになる◯
N+1問題のように、無駄なクエリを実行するソースを書いてしまっていました。テーブル結合を駆使してクエリの実行回数を減らし、性能が悪くならないソースの書き方を学びます。この辺りは、ユーザーがアクセスしてから返すレスポンスの速さに直結する部分なので、しっかり意識したいです。
【4ヶ月目】
・ 新機能の設計・実装を行う◯
プラコレはリモートワーク支援ツール「WebOffice」を開発していて、WebOfficeに新機能を追加するため、サーバー側の設計・実装を行いました。テーブル設計や、ロジックはどうするか、どういったデータを管理するかなど考慮する点が多く大変でしたが、一から大きめの機能を作るのは初めてだったので良い経験になりました。
・ SQLの知識が弱い×
RailsはActiveRecordのおかげで、直感的にDB操作のコードを書くことができます。ActiveRecordはとても便利なのですが、純粋なSQLの理解が弱かったことに業務を通して気付きます。特にテーブル結合や複雑なSQLに対応できないケースに直面することが多かったので、しっかりSQLは学ぼうと感じました。
前から気になっていた、わかりみSQL購入したので時間を見つけて読んでいこうと思います。
【来年の目標】
・ SQL、テーブル設計などRDBMSの知識をつける
エンジニアになってからSQL大事だな〜と実感することが多くなりました。フレームワークなどで直接SQLを書くことが少なくなっても、やはりSQLの知識がないと対応できないことが多かったからです。サブクエリや複雑なテーブル結合に対応できるよう、技術書中心で勉強しようと思います。
・ Ruby以外の言語の習得にチャレンジする
Rubyはライブラリが豊富で、処理を簡単に記述できるので開発しやすいという特徴があります。
その代わり、内部構造を把握しにくい・内部構造を把握しなくても実装できてしまうという面もあるので、対比ができるように他の言語を勉強する時間を意識的に作りたいと思います。
Now hiring!
プラコレでは、自由な未来をつくるために
一緒に冒険したいエンジニア・デザイナーを募集しています!
https://www.wantedly.com/projects/262436
運営サービス
PLACOLE(プラコレウェディング)
DRESSY(ドレシー)byプラコレ
farny(ファーニー)byプラコレ