こんにちは、Kotaです。
タイトルの通りですが、僕の直近の業務内容について簡単にご紹介しようと思います。SAKURUGの新卒2年目エンジニアってこんなことやってるんだなあ、と参考にしてもらえたらと思います。
2月頃から始まった、既存の社内基幹システムを改修するプロジェクトです。これまでシート管理されていたデータを一部kintoneへ移行するといった内容でした。
要件を整理する中で、kintoneが提供するデフォルト機能では賄い切れない課題について、JavaScriptによってアプリの拡張機能開発を行いました。
結果的に、開発期間としては約半年が掛かりました。半年を振り返って見えてきた課題としてこんなものがあります。
特に3つめは開発後半でかなり効いてきました。。。
数週間前の自分が実装したコードを改めて眺めたとき、もはや別人が書いたんじゃないかというような感覚を何度か覚えました。実装途中で『リーダブルコード』を参考にした甲斐あって部分的にコードの品質は改善されたと思います。
が、それでも分岐やループのネストが深いものや、ロジックが複雑過ぎてなるべく変更したくない部分が散見されるので、今後の運用・保守に向けたロジックの改修、TypeScriptの導入、初期運用フォロー、保守と課題は山積みです。
因みに、リーダブルなコードを書くうえで個人的に出番の多かった手段は"early return"です。
先日参加したラクスさんのLT会でも紹介されており、わかりみが深かった内容です。
early returnというのは意味通り、分岐処理における不正な値に対しその時点でreturnさせてしまおうという考え方です。
例:early returnを使用しない場合
const user = {
name: "userA",
age: 25
};
const callName = who => {
if (who.age === 25) {
// 処理
}
};
callName(user);
例:early return を使用した場合
const user = {
name: "userA",
age: 25
};
const callName = who => {
if (who.age !== 25) return;
// 処理
};
callName(user);
これによってネストが浅くなりますし、読み手のコストもだいぶ減るのでオススメです。
直近で進めている主要なプロジェクトです。
具体的には、WordPress + AWSで構成されている本ブログ(2022年8月現在)をヘッドレスCMS(microCMS)に移行し、Jamstackなサイトにしようとしています。
昨年の10月より運用を開始した本ブログですが、潮流に逆らうようなサイト構成だったんだなあというのが今なら分かります。手軽に立ち上げられるという点においては、WordPressは未だに有力な選択肢の一つではありますが。。。
社内技術との親和性と学習コストを考慮し、フロントエンドにはNuxt.jsを採用しています。v3の正式版リリース後への対応も考慮し、v2の参考事例をもとにv3のrc版(2022年8月時点)ドキュメントを追いかけつつ実装しています。
開発・移行が落ち着き次第記事にしようと思いますのでお楽しみに!