2022-01-01から1年間の記事一覧
はじめに 2022年もあっという間に終わってしまいました。 ここ数年の中で一番人生に大きな変化があった一年間ですし、とてもいい出会いが多かった一年間でもありました。 当初考えていた2022年の目標を踏まえて、一年間を振り返りながら、来年の目標を考える…
はじめに 前回の記事同様直近の大きな課題感を感じているのはフロントエンド技術です。 今回はその中でも最近主流となっているTypeScriptに入門してみます。 私のエンジニア人生はC言語から始まっているので静的型付けで書けないJSに違和感をずっと感じてい…
はじめに 今までの学習内容でフロントエンドにあまり触れてなかったので今回はJavaScriptについて改めて理解をしていこうと思います。 JavaScriptに対する個人的な理解度はある程度文法や言語思想は理解できているもののJavaScriptらしい部分や歴史的な部分…
はじめに エンジニアになって初めて人に知識を伝えるという場面がありました。 これまでチーム内ではたいてい自分が一番技術的に拙い部分が多かったので少しうれしくもありますが、正しくわかりやすく伝えるために勉強してきたことを棚卸しするとともに現時…
はじめに 前回の記事にて、ドメイン駆動設計への入門として、ドメインオブジェクトを紹介しました。 今回は実際にドメインオブジェクトを利用してユースケースを組み立てていきます。 そのためのステップとして、先にいくつか便利なパターンを紹介しておきま…
はじめに スマレジにて私が担当しているプロジェクトではドメイン駆動設計を取り入れて日々開発をしています。 ジョインしてからドメイン駆動設計について説明を受けたものの体系的に学べていないので書籍を一つ読みながら足りていない箇所を補っていきます…
はじめに 今回はシステムのアクセス制御、つまりユーザーの操作権限の管理のしくみを考えていきます。 管理者フラグ形式 最も簡単に実装できる方法です。 ユーザーテーブルに管理者フラグを実装し、管理者の場合は権限を持つように実装します。 メリットはシ…
はじめに 以前からたびたびソフトウェアのユニットテストに関する記事を公開してきました。 過去記事 - ユニットテストについて考えてみる。PHPUnitでモックを使用して小さいユニットテストを書く。 - Mockeryの基本的な使い方 - ユニットテストに関する前提…
はじめに 前回の記事で半年間の振り返りをしました。このブログも約半年間継続できていろんなことをインプットできているかなと思います。 そろそろアウトプットとしてゴリゴリ実装したいなという気持ちになっているので、インプットと並行してなにか個人開…
はじめに 私が株式会社スマレジに入社したのは2022年の3月でした。早いことにもう半年以上が経ちます。 エンジニアとして働き始めたのは前職からなので数年の経験があることになりますが、スマレジに入社してからの半年間はかなり濃いものでした。 今回は日…
EagerLoadとは 「Eager」は「熱心」という意味 ORMにおけるN+1問題を解決するために使用される 先に取得したModelに対して事前にリレーションを取得する仕組み Eloquentの場合はプロパティとしてリレーションにアクセスする場合に行われる。 例 まずは公式サ…
はじめに クリーンアーキテクチャにやっとの思いでなれ始めているこの頃ですが、日頃業務で実装をしていくにあたって疑問に感じることがあります。 とはいえ大抵のドメインでは既存の実装に倣ってしまうこともあるんですが、自分の感じた疑問については自分…
はじめに https://gihyo.jp/book/2016/978-4-7741-8411-1 本を読んだ感想や内容の簡単なまとめを書きます。丸写しではなくあくまでも自分用のメモなので細かい箇所については書籍をご確認ください。 JavaScriptの言語仕様についてのまとめになるので、全てを…
はじめに 今回はORMについて調査したいと思います。 また、よく比較されるクエリビルダについても調査し、その違いを理解したいと思います。 ORMとは ORMとは、Object-Relational Mappingの略です。 データベースとオブジェクト指向プログラミングの間のデー…
はじめに 前回の記事でOAuthについて紹介しました。 今回はOAuthに関するRFC 6749において定義されている認証のフローについて調査してまとめていきたいと思います。 OAuth2.0で定義されているフロー 認可コード 一時的に発行される認可コードとアクセストー…
はじめに 前回の記事で認証と認可について触れ、OpenID Connectのざっくりとした仕組みについて紹介しました。 今回は認証、認可においてよく聞くOAuth2について、調査してみようと思います。 今回の記事のゴールは、「OAuthという単語を聞いたことがある」…
はじめに 今回はOpenID Connectについてです。 認証の仕組みについて理解に乏しい部分があったため、調査したいと思います。 今回はOpenID Connectを利用した認証の流れについて理解することを目的としています。 暗号化やデータの形式については今回理解し…
はじめに 今回も引き続き「SQLアンチパターン」を読み進めていきます。 今回から第二部「データベース物理設計のアンチパターン」についてまとめます。 ラウンディングエラー(丸め誤差) 目的: 整数の代わりに小数値を使用する 小数を扱いたい場合、かつ計算…
はじめに 今回も引き続き「SQLアンチパターン」を読み進めていきます。 前回より見返した時にわかりやすくなるよう文量を減らしてまとめていきたいと思います。 前回の記事 IDリクワイアド(とりあえずID) 例: 記事のタグと記事の関連付けを表現するテーブル …
はじめに SQLについて最近学び始め、実際に業務で使用する際に避けるべきアンチパターンを前もって知っておくために「SQLアンチパターン」という書籍を購入しました。 さまざまなところで耳にする評価の高い本という印象があります。 アンチパターンとは 「…
はじめに スマレジに入社してかもう少しで半年が経とうとしていることに驚いています。 このブログも開設から半年が近づいています。 ふと、弊社のブログ制度は月一本までプライベートな内容がOKだったことを思い出したので今年のお盆の予定について書いてみ…
はじめに 今回はデータベース周りを勉強するにあたって頻出する単語や知識についてまとめていきたいと思います。 現在データベース周りに課題を感じていて、チーム内で話していても自分のデータベース周りの知識が足りていないなと感じているため直近の課題…
LocalStorageとは 参考: https://developer.mozilla.org/ja/docs/Web/API/Web_Storage_API WebStorageAPIの一種 ブラウザがキーと値のペアを安全に保存できる仕組み。 2種類の仕組みがある。 sessionStorage localStorage sessionStorage セッションデータを…
はじめに 前回の記事でユニットテストについて書きました。 今回は前回にも使用したMockeryというフレームワークについて少し掘り下げてみたいと思います。 公式 https://readouble.com/mockery/1.0/ja/index.html 公式にもあるように、他のテストフレームワ…
はじめに 前回の記事でユニットテストに関する知識を調査したのでよければ参照してください。 今回の目的 テスト駆動開発しやすい設計について考えること クリーンアーキテクチャの利点であるテスタブルなコードのテストを書く方法を考えること 方針 テスト…
はじめに (ちょっと記事見づらすぎたのでブログのテーマとかcss調整してみました。) ここ最近はユニットテストのことばかり考えている時間が長い気がしています。 先日、チーム内でユニットテストについて自分の考えを話して議論したので、まとめたいと思い…
はじめに 弊社では現在、月一回のペースで社内LT会を行なっています。 毎回観覧側として参加していましたが、入社して三ヶ月が経ち、自分でも発表してみようと思いました。 そこで必要なのが発表スライドです。 とは言ってもLT、つまりLightning Talksなので…
はじめに ここ最近、エンジニア向けの社外イベントを聞いてみようと思い、いろいろ参加してみました。 株式会社ラクス主催のLT会二つとQiita Conferenceです。 いつもは自分で勉強したことをまとめることが多いのですが、今回はイベントレポのような形でまと…
はじめに WEBエンジニアとなってクエリパターンの実装をする際に、SQLのパフォーマンスについて意識する場面が出てきました。 その際にインデックスが貼られていないカラムのソートのパフォーマンスについて指摘をいただく機会があったのでこの機会に調査し…
はじめに 個人的に技術書を読む機会が最近多くなりつつあるので、その内容をまとめるとともに感じたことやわからないことなどをまとめていきたいと思います。 できるだけ丸写しではなく要点を絞ることと個人の所見を入れたいと思っています。 Webを支える技…