じぶん対策

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

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

2023年の振り返り

はじめに 2023年もあっという間に大晦日になりました。 今年は、エンジニアとして仕事面でも成長でき、プライベートも充実した一年間でした。 今年一年間力をいれて取り組んできたことと、来年取り組んでいきたいことをまとめてみたいと思います。 2023年の…

PHPの例外入門!

はじめに PHPやLaravelを使って開発をしていると、例外処理という言葉をよく耳にします。 前半は例外処理について、初学者を対象に解説していきます。(PHPにはこういう機構があるよといった入門的な部分) 後半はPHP,Laravelの例外の概要と、筆者の考える実践…

Mockeryを使った引数の検証方法まとめ

はじめに プログラミングをしていて、誰しもわからない箇所やメソッドの使い方がわからなくて調べる事があると思います。 今回、私は一度引っかかったことにもう一度引っかかって、さらに思い出すまでに時間がかかったのでメモとして残しておきます。 また、…

社内勉強会レポ 2023-11-10 GraphQL

はじめに 今回は社内勉強会のレポートです。 定期的に社内のエンジニアで集まって勉強会を行っています。 勉強会のノリとしてはだいぶ緩く、お題はなんでもいいんですが参加者が気になっている技術などについてあまり前準備なく、みんなで調べて見解を共有す…

DDD(Domain Driven Design: ドメイン駆動設計)を布教したい

はじめに 今回はドメイン駆動設計を布教する際に押さえておくことを整理して記事にしたいと思います。 この記事では、DDDの概要を整理するとともに、DDDの採用におけるメリットを整理していきます。 これから勉強する人、そもそもDDDに興味がない人がすこし…

「プログラマー脳」を読んで得たエッセンス

はじめに 今回は、書籍「プログラマー脳 ~優れたプログラマーになるための認知科学に基づくアプローチ」を読んで、職業エンジニアとして業務を行うなかで、よりいいコードを書くために意識しておくべきことのヒントをいくつか得たのでまとめておきたいと思…

DB基礎 物理設計周り

はじめに WALプロトコル WALプロトコルは、Write Ahead Logの略で、データベースのトランザクション処理において、データの更新前にログを書き込むことを指します。 基本的な動作は以下の2点です。 データベースの更新は、まずその操作をログに書き込む(更新…

DB基礎 正規化と関係演算

はじめに 今回は実施まであと10日に迫ったIPAのDBスペシャリスト試験への対策としてDBの基礎的な部分の復習をしていきます。 本業に加えて副業、個人開発等も行いながらのため対策の時間をなかなか捻出できていませんが、受験申し込みはしたので試験当日はし…

linuxの基本的なコマンドを復習する

はじめに 前回の記事でLinuxの簡単な操作について復習しました。 今回はよく使うコマンドについてオプション等を含めて再確認しながら、知らない部分をキャッチアップしていきます。 ls ファイルやディレクトリを一覧表示する ls [ディレクトリまたはファイ…

linuxの操作を復習する

はじめに WEBエンジニアにとってLinuxの操作は避けては通れない基本操作の一つです。 情報系の学校を卒業していたり、新卒でエンジニアになった場合は研修等で身につける機会があると思いますが、私のように専門の違う学校を卒業し、他業種からの転職でエン…

Renovate + GitLab CI を使ってパッケージの依存関係を自動更新する

Renovateとは 依存関係の自動アップデートツールです。 公式サイトはこちら 有名なのはdependabotですが、dependabotの場合は手動でalertsの内容を確認し、ローカルでnpm audit fixやcomposer updateを実行します。 その後、修正内容をコミットしてプッシュ…

LaravelにおけるRepositoryについて再考してみる

はじめに ここ最近、ツイッター上でLaravelにおいてのRepositoryの実装についての記事や意見をいくつか見かけました。 それらの記事や意見の内容を整理しつつ、自分なりにLaravelにおけるRepositoryの実装について再考してみたいと思います。 Repositoryとは…

ReactのuseEffectをきちんと理解する

はじめに 最近ReactやNext.jsを触る機会が多いのですが、スマレジでの業務で使用しているわけではないため、キャッチアップがおろそかになっているなあと感じています。 今回は、Reactに触れる上で必須かつVueとの違いにおいて重要な仕組みであるuseEffectに…

ChatGPTを活用しながらRailsで個人開発をしてみる

はじめに スマレジではLaravelをメインで使っているのですが副業で触っているRailsについては理解がまだまだ浅い部分があるため、個人開発でも触ってみたいと思います。 LaravelがRailsに影響を受けているフレームワークでもあるため、Railsを触ることでLara…

OIDCを使用したクライアントシークレットなしでのソーシャルログイン実装について調査してみる

はじめに 最近OpenID Connect(OIDC)を使用したログインを実装するにあたって、implecit flowを用いる方法があることを教えてもらったので調査した結果をまとめてみます。 関連するRFCや信頼できそうな記事、理解しやすい記事を含めたいと思います。 参考: OI…

「勉強法の勉強会」参加レポと個人的な所感まとめ

はじめに 久しぶりに社外の勉強会イベントに視聴者として参加してきました! 今回参加したのはゆめみ x とらラボ!主催の「勉強法の勉強会」です。 勉強会ってこんなにメモ取るのが忙しかったっけ?と感じるくらい自分に刺さる濃い勉強会だったのでその参加レポ…

エラーハンドリングをクリーンアーキテクチャで書く場合に意識すること

はじめに 業務においてクリーンアーキテクチャを意識してコードを日々書いていますが、「これってクリーンアーキテクチャの考えに沿うためにはどう書けば良いんだろう」と悩むことがあります。 今回はエラーハンドリングについて、クリーンアーキテクチャに…

ToDoリスト作成の振りかえり

はじめに WEBエンジニアになってすぐに作り始めたリポジトリがある程度まで動作するようになったので今回はそこから得られた学びをまとめておきたいと思います。 以前も少し触れましたが、このブログを書き始めて一年間がたちました。かなり気合を入れて毎週…

ブログを書き始めて一年が経った話

はじめに 今回は具体的な技術の内容ではなく、本ブログについて思うところをまとめたいと思います。 週に一本のペースで欠かすことなく、またそれなりの分量も記事を一年間継続して書けたかなと思います。 継続のために弊社スマレジのブログ手当の存在は結構…

TypeScriptのジェネリクスについて

はじめに 今回はTypeScriptのジェネリクスについてです。JavaScriptがある程度かければTypeScriptでつまづく箇所は結構少ないとは思いますが、つまづいたのがジェネリクスという概念でした。 今回はジェネリクスの仕組みと何を解決できるのかについて調査し…

「チームで働くエンジニアの心構え」について新人だった頃から意識してきたことを言語化してみる

はじめに 今回は書籍「Googleのソフトウェアエンジニアリング ―持続可能なプログラミングを支える技術、文化、プロセス」を読んでエンジニアになってチームで働くにあたって意識してきたことを自分なりに振り返ってみようと思います。 個人的にはエンジニア…

新しくPCを買ったのでDotfilesを作ってみる

参考 https://qiita.com/yutkat/items/c6c7584d9795799ee164 https://dev.classmethod.jp/articles/joined-mac-dotfiles-customize/ はじめに 今週M2 Pro Mac mini(2023)を購入しました! 2023モデルのM2チップ搭載Mac miniは最小構成で84800円と前モデルより…

Docker Composeについて

はじめに 前回の記事でDockerについて調査した続きです。 今回は実際にアプリを作成するとなると使うことになるであろうDocker Composeについて調査します。 前回同様公式ドキュメントのGet startedの内容を確認し、自分なりの設定方法を考えてみます。 Dock…

Dockerを雰囲気ではなく理解して使う

はじめに 以前Dockerについてごく簡単にまとめた記事を書きましたが、Webエンジニアになって一年が経とうとしているので改めてDockerについてまとめようと思います。 公式ドキュメントを自分なりに解釈してまとめたいと思います。 Dockerについての入門から…

astroに入門してみる

はじめに 最近フロントエンドへの自身の理解の甘さを感じるようになってきました。 ここ最近TypeScriptなどフロントエンドに関係する記事をいくつか公開しましたが、そろそろ実際になにか作ってみようと感じるようになりました。 そこで今回は気になっていた…

TypeScriptの型について

TypeScriptの型付け TypeScriptはJavaScriptに対して型を付与するという思想で仕様が定められています。 TypeScriptでは型を付与する方法として、様々な方法が用意されていますが、どこまで利用するかは費用対効果を考えながら行う必要があります。 any型 最…

TypeScriptでAtCoderに挑戦してみる

はじめに スマレジでは、副業が可能です。 https://corp.smaregi.jp/recruit/culture/workstyle.php 個人的に最近、副業にも挑戦しようかなと考え始めています。 副業に割ける稼働時間的には週10h程度となりそうなので、比較的タスクを細かくしやすいフロン…

積読解消 「レガシーコード改善ガイド」を読んでリファクタリングの知識をつける

はじめに 自チームで担当しているプロダクトでは常にリファクタリングを意識した開発を行っています。 なかにはかなりレガシーなプロダクトもあり、その改善への指針として書籍「レガシーコード改善ガイド」を購入していました。 去年の秋頃に買ったんですが…

JavaScriptにおけるクラスとTypeScriptにおけるクラスについて

はじめに 今回はES2015から変更されたJavaScriptのオブジェクト指向構文についてまとめたいと思います。 また、最近TypeScriptについて個人開発等で導入し始めているので違いを意識しながら理解していきたいと思います。 参考書籍 今回の記事は今読んでいるJ…