りゅうじの学習blog

学習したことをアウトプットしていきます。

DNSの仕組み

AWS

DNSはフルリゾルバとネームサーバーの2つで構成されている DNSを通じてドメイン名からIPアドレスを引き出すのを「名前解決」という ドメインの階層ごとにネームサーバーが設置されていて管理する階層のことを「ゾーン」という フルリゾルバがしばらくキャッ…

E2E Webサーバー構築

AWS

文章でばかり書いていたので練習も兼ねてやっていきます

7/20 ユーザのアイコンの色をランダムに割り当てる

要件 アイコンの文字は名前の1文字目を表示する 色は5色からランダムで設定する 色はユーザーに固有のもので、再読み込みなどで変更されない。 やり方 登録日時を文字コードにし、ランダムのhsl( 色相(Hue)、彩度(Saturation)、輝度(Lightness))で色を割…

7/15 TypeScript デコレータ

デコレータ メタプログラミングに役にたつ 他の開発者が使いやすい道具を提供することに向いている 使うための準備 tsconfig.jsonの設定 "target": "es6" "experimentalDecorators": true 上記の二つを設定する必要がある クラスデコレータ function Logger(…

7/14 PostgreSQLが接続できなくなった対処

どのタイミングで発生したか 普段dockerで開発しており、dockerを使用せずに、npm run devで立ち上げて動作確認したいものがあったため、久しぶりにnpm run dev をしたところ、PostgreSQLに接続できないエラーで立ち上げられなかった なぜ発生したか Postgre…

7/10 AzureFunctionsが複数exportされた関数を特定するためのentryPointを明示的に指定する

なぜやるか Azure Functionsでは、JavaScriptやTypeScriptで書かれた関数をエクスポートするとき、その関数が実行されるべきものであることを明示的に示す必要があります。これは、Azure Functions ホストが関数アプリ内のファイルからどの関数を実行するか…

7/6 GA 主要指標の定義と意味

Googleアナリティクスでは、多くの意表があるが、中でも、「ユーザー>概要」に表示される指標が重量指標である。 重要指標は多くのレポートで使われる 重要指標は設定によって多少変化する ユーザー分析のオンオフで変化する 切り替えはいつでもできるので…

7/5 リマインドメールの施策の効果測定に関して

ある条件に該当したユーザーに、リマインドメールを自動配信する実装したのですが、このタスクを実施した上での効果測定をする必要がありました。 誰に送ったか いつ送ったか メール内のURLのクリック率 メール内のURLのクリック率に関しては、GA4のクエリパ…

7/4 log4jsの導入手順

log4jsとは log4jsは、Node.js用のロギングライブラリで、Javaでよく使われるlog4jをJavaScript向けに再設計したものです。このライブラリを使用することで、ログの出力レベル(エラー、警告、情報、デバッグなど)を柔軟に制御したり、ログの出力先(コンソ…

人生をゲームのようにしていく感覚を持つ

なぜやるか 人生を重く捉えすぎたり、真面目に生きすぎる事で、自身を追い詰めてしまった 休職をすることにまでなってしまった そうなったのなら、それを学びにして、今後を改善したい 休職になったことをきっかけに哲学・生き方・思考法を学んだものをアウ…

6/27 TCP/IP Chapter1 part5

新しいネットワークの形 1-6-2 CDNとは Content Delivery Networkの略称で、画像・動画・HTML・CSSなど、webコンテンツで使用される、色々なファイルを大量配信するために最適化されたインターネット上のサーバーネットワークのこと。 オリジナルのwebコンテ…

6/27 ドメイン駆動設計 集約 [復習]

DDD

集約とは ドメイン駆動設計において、一つ以上のエンティティを束ね、単一のトランザクションの枠内で整合性を保つための仕組みです。 例えば、銀行口座とそれに紐づく取引履歴エンティティがある場合、これらを銀行口座集約として束ね、取引が行われた場合…

6/26 mswと Redux Toolkitを組み合わせて使う

MSW (Mock Service Worker) MSW はブラウザのネットワークリクエストをインターセプトし、モックのレスポンスを返すことができるツールです。これにより、実際のサーバーと通信することなく、API のレスポンスをシミュレートすることができます。 コンポーネ…

6/24 DockerでReactを動かしてみる

DockerとDocker Composeのインストール DockerとDocker Composeを使用するために、まずはこれらのツールをあなたのマシンにインストールします。これらのツールはDockerの公式ウェブサイトからダウンロードできます。 Dockerfileの作成 ルートディレクトリに…

6/21 コンポーネント駆動開発、簡易な導入手順まとめ

使うライブラリ・パッケージと概要 React, TypeScript, Storybook: ReactはJavaScriptライブラリであり、ユーザーインターフェイスの構築を容易にします。TypeScriptはJavaScriptのスーパーセットで、型安全性を提供し、バグを早期に発見し、コードのリーダ…

6/20 Growthマインドセット

前提として成長の定義は できなかったことを、できるようになること Growth(成長)マインドセットとは 会社の成功に必要なスキルを自分から積極的に学び、習得しようとするマインドセット ある人とない人の違い 新しい挑戦に対して、チャンスと捉えるか、それ…

6/20 TCP/IP Chapter1 part4

PDU 各階層で細かく分割されて、データは処理される その一つの塊をPDU(Protcol Data Unit)と呼ばれる ヘッダーとペイロードで構成されている PDUは処理される階層により名称が異なります。 アプリケーション層のPDUは「メッセージ」 トランスポート層のPD…

Jest DOMの主なカスタムマッチャー

例えばこちらですと、test1 test2 が表示されている(見える)ことを確認しています。 describe('TopPage', () => { test('デフォルト(テストケース)', async () => { render(<Default />); await waitFor(() => { expect(screen.getByText('test1')).toBeVisible(); </default>…

6/17 lodashのvalues

見るたびに何となく理解しては、時間が経つと忘れてしまっているのでまとめます。 インストール npm i lodash @types/lodash コード import { values } from "lodash"; const obj = { a: 1, b: 2, c: 3, }; const valArray = values(obj); デベロッパーツー…

6/15 RuduxToolKitの忘れかけていた箇所のおさらい

storeの中にreducerがある なので実際の実装では、configureStore内にreducerを設定する sliceにはstate reducer actioncreatorがある sliceの中にreducerがあるので、sliceからreducerを取り出して、storeに入れる なので実際の実装では、exportの際にreduc…

6/14 Storybook const Template = (args) => <Button {...args} />;について

const Template = (args) => <Button {...args} />; がよくわからなかったので調べました まずそれぞれの関係性の把握から StorybookとTemplate関数、そしてButtonコンポーネントの関係を示す図 Storybookは、異なる状態を表現するためのargsをTemplate関数に提供します。 Templa</button>…

6/13 基本情報技術者 part1

Chapter0 コンピューターは電気ものを考える 電気のオンオフでものを考えるので、電気が必要である 電気を使ってコンピューターはどのように考えるのかを知ることが大切 Chapter0-1 ち”びっと”だけど広がる世界 コンピューターはオン=1 オフ=2としか理解…

6/12 TCP/IP Chapter1 part3

1-2-2 プロトコルは階層で整理する プロトコルで定義されている通信機能は、その処理に応じて階層構造になっている 送信元では、階層構造の上から順にデータを処理する パケットを受け取ったコンピューターは、その逆に下から上の順に、送信元のコンピュータ…

6/11 TCP/IP Chapter1 part2

1-2-1 プロトコルで決まっていること 物理的な仕様 LANケーブルの素材 コネクタの形状 ピンアサイン(ピン配列) ネットワーク etc 目に見えるものは全てプロトコルで定義されている 送信相手の特定 ネットワークの世界でも住所を割り当てて、送信相手を区別…

6/10 TCP/IP Chapter1 part1

1-1-2 回線交換方式とパケット交換方式 回線交換方式 イメージは固定電話 回線を占有してしまうため無駄が多い パケット交換方式 パケットは小包という意味で、データを小さい単位に分割してネットワークに流す ヘッダーという情報をくっつけて流す ヘッダー…

6/9 ドメイン駆動設計Chapter15 15-1

DDD

15-1 軽量DDDに陥らないために 軽量DDDとは ドメイン駆動設計に登場するパターンのみを取り入れること コードの書き方というパターンを主題としていることで、開発者だけ完結してしまい、実践しやすく、短期的にプロダクトのコードにある程度の秩序をもたら…

6/8 ドメイン駆動設計Chapter14 14-2

DDD

14-2 アーキテクチャの解説 ドメイン駆動設計と同時に語られることの多いアーキテクチャ レイヤードアーキテクチャ ヘキサゴナルアーキテクチャ クリーンアーキテクチャ ドメイン駆動設計においては、ドメインが隔離されることが重要である アーキテクチャに…

6/7 ドメイン駆動設計Chapter14 14-1

DDD

14-1 アーキテクチャの役目 ドメイン駆動設計において、アーキテクチャは主役ではない 14-1-1 利用なUI ドメインオブジェクトに記載されるべきルールやメソッドがユーザーインフェースに記載されている状態を指す 14-1-2 ドメイン駆動設計がアーキテクチャに…

6/6 ドメイン駆動設計Chapter13 13-2

DDD

13-2 仕様とリポジトリを組み合わせる リポジトリの検索のメソッド、検索の処理の中には重要なルールを含むものがある 重要なルールを仕様オブジェクトに記述し、リポジトリに引き渡すようにする プレミアムユーザであることを表す仕様オブジェクト export c…

6/5 ドメイン駆動設計Chapter13 13-1~13-1-2

DDD

13-1 仕様 オブジェクトの評価は単純なものならメソッドで定義されるが、すべてが単純なものではなく、メソッドとして定義するべきものでないものもある アプリケーションサービスに記述されがちだが、オブジェクトの評価はドメインの重要なルールなので、サ…