じぶん対策

日々学んだことをアウトプットして備忘録にしています。

2024-01-01から1年間の記事一覧

2024年末の今、Rustに入門してみる

はじめに 今回はRustへの入門記事です。 2024年の抱負として、技術書を読んだり、個人開発を習慣化したりといったことを目標にしていました。 2024年の抱負 実際、今年は技術書を読んだり、個人開発をしてはいるんですが、習慣化という点ではまだまだです。 …

データベースのマイグレーション時にインデックスを削除する場合に注意すべき外部キー制約とインデックスの依存関係

はじめに 今回は業務のなかで少しつまづいたポイントについて自分の備忘録としてまとめたいと思います。 MySQLにおける外部キー制約作成時の既存インデックスの利用についてです。 対象システム MySQL 8.0 Laravel 11 TL;DR 特定のインデックスを削除する場…

2024年にReactを学ぶ人のための資料

はじめに 2024年現在、WebフロントエンドはReactが主流となっています。 LaravelやRuby on Railsのようなフルスタックフレームワークの流行を過ぎ、バックエンドとフロントエンドを分離することが一般的になりました。 今回は、すでにjQueryやLaravel、Ruby …

プログラミングとカードゲームは実は似ている説

はじめに 今回は完全にポエムです。 SNSなどでよく見かける、「エンジニアに向いている人は〇〇な人だ!」という投稿を見ることがあります。 たとえば、「数学が得意な人はエンジニアに向いている」とか、反対に「実は文系の方がプログラミングに向いている」…

フロントエンドの状態管理について調べてみる

はじめに 今回はフロントエンドの状態管理について調査してみます。 フロントエンドにおける状態管理とは フロントエンドにおける状態管理とは、ユーザーインターフェース(UI)のデータやその変化を一貫性を持って管理する手法を指します。 ここで言う「状…

tRPCへの入門

はじめに 今回はtRPCという技術について調査してみます。 なにもわからない状態からのやってみた系記事になります。 概念の理解や個人的な感想を中心に書いていきます。 実際に導入する際には公式サイトを参照することをおすすめします。 tRPCとは そもそもR…

OpenAPIの理解とその活用方法を考える

はじめに 今回はWeb APIの仕様書として広く使われているOpenAPIについて調査してみます。 OpenAPIとは OpenAPI(旧Swagger)はREST APUのAPI記述形式です。 公式ドキュメントによると、次の内容を記述できると書かれています。 利用可能なエンドポイント(/user…

「データモデリングでドメインを駆動する」を読む その1 システムの分類と残

はじめに 今回は杉本 啓さんの「データモデリングでドメインを駆動する」(以降書籍と呼びます)を読んでいきます。 これまでの記事で、ドメイン駆動設計の基本的な思想や設計手法については書いてきましたが、実際に基幹システムを例にしてデータモデリングを…

アジャイル開発への入門 アジャイルの価値観とプロジェクトの開始

はじめに 現在の開発チームでは、アジャイル開発を採用しています。しかし、私を含めて、きちんとアジャイル開発を理解している人は少ないと思います。 プロダクト開発が問題なく進んでいるのであれば、大きな問題はないのかもしれませんが、いくつかの課題…

スクラム入門 ユーザーストーリーとストーリーポイント

はじめに スクラム開発において、ストーリーポイントという単位でタスクの見積もりを行います。 今回の記事では、アジャイル開発における見積もりの方法と登場する独自の概念についてまとめます。 ユーザーストーリーとは アジャイル開発においてはタスクの…

フロントエンド入門 宣言的UIと命令的UI

宣言的UIと命令的UI 前回の記事で一通りWebフロントエンドの歴史を整理したところで、宣言的UIと命令的UIについて整理していきたいと思います。 本記事では、フロントエンドの歴史において特に象徴的なjQueryからReactへの移行を中心に整理していきます。 命…

フロントエンド入門 フロントエンドの歴史

はじめに ありがたいことに、Webエンジニアになって2年と少しが経ちました。 初めの頃はバックエンドを中心に業務を行っていましたが、徐々にフロントエンドの面からもプロダクトの改善を進めていくことが増えました。 今回は、フロントエンドの入門として、…

HTMLタグとアクセシビリティ、コンポーネント化について考える

はじめに 最近、個人的なプロジェクトのコードをNext.jsで書きながらキャッチアップをしています。 普段の業務では、すでにコンポーネント化されたUIを組み合わせて利用することが多く、基本的なコンポーネントを1から作ることはないのですが、個人で開発す…

React Hook Form + zodでシンプルなフォーム実装

はじめに 今回はreact-hook-formを使ってみます。業務ではVue3を中心に利用していますが、副業として稼働する際や、個人開発でreactを使うことが多いので、関連したライブラリのキャッチアップ目的で記事にしました。 react-hook-formとは Reactアプリケーシ…

SQLiteとLaravel11でのカラム削除の挙動でつまづいた話

はじめに 今回は2024年3月12日にリリースされたLaravel11のうち、移行時につまづいたSQLiteの仕様についてまとめます。 Laravel Upgrade Guide 概要 Laravel11ではSQLiteは3.35.0以上のバージョンが必須となりました。 この3.35.0というバージョンは2021年3…

DRY原則とそのトレードオフ

はじめに おそらくもっとも有名なソフトウェア工学の原則の1つに、DRY(Don't Repeat Yourself)原則があります。DRY原則は、同じコードを何度も書かないようにすることを目指しています。この記事では、DRY原則の重要性とそのトレードオフについて考えてみ…

「世界一流エンジニアの思考法」から学ぶエンジニアが持つべきメンタルモデル

はじめに 今回は「世界一流エンジニアの思考法」を読んで、エンジニアが持つべきメンタルモデルについて考えてみます。 結構流行りの本なので、要約記事も多く存在しますが、個人的に重要だと感じた部分をピックアップして個人的な所感をまとめてみます。 「…

駆け出しエンジニアからジュニア・ミドルレベルへの成長の道のり

はじめに エンジニアとしてのキャリアをスタートしたばかりの方が、ジュニアレベルやミドルレベルのエンジニアとして活躍するために必要なスキルや知識について考えてみます。 この記事はWEB領域のエンジニアを対象としています。 前提 前提として、私の知っ…

Next.jsのServerActionsを試してみる

はじめに ここ最近あまり手を動かして新しいものを作成することができていなかったので、今回はNext.jsのServerActionsを試して見たいと思います。 まずは簡単なTodoリストの作成から始めてみます。 開発方針 個人開発ですが、先にデプロイの方法を考えてか…

最初からちゃんといろんなことを検討して設計しろ VS 爆速でプロトタイプ作った方がいろんな問題可視化されて結果的に早いだろ

はじめに 社内slackのtimesチャンネルでふと思ったことを書き込んだところ、複数の方から反応があったので個人的な意見をまとめてみました。 書き込んだ内容は 最初からちゃんといろんなことを検討して設計しろ VS 爆速でプロトタイプ作った方がいろんな問題…

2024年の抱負

はじめに ぼちぼちスマレジに入社して二年が経とうとしています。 入社してから、必死にいろんなことに取り組んできた二年間でしたが、今年の目標も言語化しておきたいと思います。 2024年の目標 今年達成したいなあと思っていることは、大きく分けると個人…

「t-wadaさんが後世に残したい、実録レガシーコード改善」を聞いて得た気づきメモ

はじめに 個人的なエンジニアとしての強みとして、テストやレガシーコード改善を武器にしていきたいと考えて日々プログラミングと向き合っています。 そんな中、t-wadaさんが後世に残したい、実録レガシーコード改善というイベントの再放送に参加し、自身の…