りゅうじの学習blog

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

ドメイン駆動設計入門 Chapter1

ドメイン駆動設計とは ドメインの知識に焦点を当てた設計手法 ドメインとは プログラムを適用する対象となる領域のこと ドメインが何かではなく、ドメインに含まれるものが何かが重要 ドメインモデルとは ドメインに含まれる概念を抽象化したもの ドメインの…

ドメイン駆動設計入門Chapter5

DDD

リポジトリとは ソフトウェア文脈のリポジトリはデータの保管庫です リポジトリはデータを保存・復元する処理を抽象的に扱うためのオブジェクトです オブジェクトを繰り返し利用するには、データベースにオブジェクトのデータを保存・復元する必要がある。…

INSPIRED 熱狂させる製品を生み出すプロダクトマネジメント CHAPTER33~35

CHAPTER33 製品発見の原則 製品発見の目的 以下のリスクに対処すること 価値のリスク(顧客はこれを買ったり、使うことを選んでくれるか) ユーザビリティーのリスク(ユーザーはこれの使い方がわかるか) 事業実現性のリスク(このソリューションは私たちの…

INSPIRED 熱狂させる製品を生み出すプロダクトマネジメント CHAPTER33~35

CHAPTER33 製品発見の原則 製品発見の目的 以下のリスクに対処すること 価値のリスク(顧客はこれを買ったり、使うことを選んでくれるか) ユーザビリティーのリスク(ユーザーはこれの使い方がわかるか) 事業実現性のリスク(このソリューションは私たちの…

ドメイン駆動設計入門Chapter4

ドメインサービスとは 値オブジェクトやエンティティのふるまいとして定義すると違和感が生じるものを別のオブジェクトとして定義するもの ソフトウェアの文脈でのサービスとは何か クライアントのために何かを行うオブジェクトである。 ドメイン駆動設計で…

2022年4月18日 Node.js express csrf対策

csurfのパッケージを使用してcsrf対策をします。 注: パッケージ名はcsurf となる点に注目してください。csrf というパッケージも存在します。 csurf http://expressjs.com/en/resources/middleware/csurf.html csrf https://github.com/pillarjs/csrf 実装 …

2022年3月27日 Node.js CSRFパッケージ

CSRF対策 書き込みできるドメインを限定する 適切な画面遷移でデータ登録されている事を確認する(トークン制御を入れる) キャプチャ(画面認証を入れる) 今回は2の対策をしていきます。 パッケージ導入 yarn add csrf ミドルウェアとして組み込みではなく、必…

2022年3月25日 Node.js Express ルーティング

ルーティングとは リクエストに対して処理の振り分けを行う仕組みの事です。 expressの基本機能です。 ルーティングの実装 app.(path, callback) 関数名 METHOD ⇨ リクエストメソッド(get, post, put, deleteなど) path ⇨ 振り分けたいURL callback ⇨ pathマ…

2022年3月25日 Node.js Express

ストリームインスタンス Node.jsによって提供される多くのストリームオブジェクトがあります。 例えば、HTTPサーバーへのリクエストとprocess.stdoutはどちらもストリームインスタンスです。 pipeイベント 読み取り可能なストリームでstream.pipe()メソッド…

2022年3月24日 Node.js入門 非同期ファイル読み書き

同期処理を行うとNode.jsの良さがなくなってしまうため利用は避けるべきです。 非同期処理の方法を見ていきます。 非同期ファイル読み込みをする場合 ファイルサイズが小さく後続処理も簡易な場合に利用します。 Promise 非同期処理の読み書き時にコールバッ…

2022年3月24日 Node.js入門 EventEmitter

Node.jsにおけるイベント機能の中心的存在 オブジェクトを持つイベントを管理する機能がまとめられている イベントが発生したとき実行する処理をあらかじめ設定します。 イベントが発生したとき実行する処理を設定から削除します。 実際にイベント発生させま…

2022年3月24日 Node.js入門 イベントループ

イベントループ 処理実行順のことです。 フェーズとキュー 6つフェーズと2つのキューがあります。 フェーズ Times pending callback idle poll check close callback キュー nextTickQueue microTaskQueue フェーズのみの場合はフェーズを順番に処理して回っ…

2022年3月23日Node.jsの概要

Node.jsとは スケーラブルなネットアプリケーションを構築するために設計された非同期型のイベント駆動のJavaScript環境です。 または JavaScriptで書かれたプログラムを実行するためのランタイムとも表現できます。 ランタイムとは 実行に必要なプログラム…

2022年3月18日 りあクトJavaScript varの挙動について

varの挙動についてはJavaScriptPrimerで学んでいましたが、りあクトを読んでいて認識が甘かった挙動があったのでアウトプットします。 var x = 1; if(true) { var x = 2; var m = 3; console.log(x); } console.log(x); console.log(m); このコードでの何が…

2022年3月16日 りあクト TypeScript

TypeScriptを学び始めたので少しずつ要点をまとめていきます。 型アノテーション value: Type というフォーマットで宣言時の変数に型の注釈がつけられます。 let n: number = 3; console.log(n); // => 3 変数 n は number 型しか受け付けないという事 試し…

2022年3月15日Rubyの知識の復習

Rubyの復習 Ruby超入門・プロを目指すRuby入門・現場で使えるRubyonRailsを読みながら復習していっています。 クラスメソッドとインスタンスメソッドの使い分け クラスメソッド クラス全体に関わる情報を変更したり 参照したりするメソッドを作成するとき使…

2022年3月3日 React実践の教科書 モダンJavaScriptの機能に触れる Props~

Propsとは コンポーネントに渡す引数のようなものです。 コンポーネントは受け取ったPropsに応じて表示する内容やスタイルを変化させます。 どんなときに使うか よくある例ですと、文字を通常は黒文字でエラー時は赤文字にする仕様の場合です。 Propsを使わ…

2022年3月2日 React実践の教科書 モダンJavaScriptの機能に触れる イベントやスタイルの扱い方~

イベントの扱い方 ボタンを押したときのイベントの onClick をReactで行う場合をやっていきます。 ボタンの作成 App.jsx export const App = () => { return( <> {console.log("test")} <= {}で囲う事でJavascriptも記述できます。 <h1>こんにちは!</h1> <p>React学習中</p>…

2022年3月1日 React実践の教科書 モダンJavaScriptの機能に触れる Reactの基本~

従来のDOM操作とReactの言葉使いの差について JavaScriptやJQueryで行っていたDOM操作を『〇〇を××する』手続き的と表現されます。 Reactは宣言的と表現します。(詳しい説明はここではありませんでした) React開発の始め方 本書ではCodeSandboxで行う方法が…

2022年2月28日 React実践の教科書 モダンJavaScriptの機能に触れる map filter~

map filter 従来for文で行っていて記述量が増えてしまうところを、この二つのメソッドを使う事でわかりやすく短く描けるようになります。 mapメソッド 配列を順番に処理して処理した結果を新しい配列で返します。 const arr1 = [1, 2, 3]; const arr2 = arr1…

2022年2月27日 React実践の教科書 モダンJavaScriptの機能に触れる 分割代入~

分割代入 オブジェクトや配列から値を抽出する方法です。 オブジェクトの分割代入 const myProfile = { name: "ryuji", age: 36 } const { name } = myProfile; console.log(name); => ryuji // 順番を変える const { age, name } = myProfile; console.log(…

2022年2月26日 React実践の教科書 モダンJavaScriptの機能に触れる

const letでの変数宣言 varでの変数宣言での問題点 従来は変数宣言にvarを使用していましたが問題点がありました。 上書きが可能であること。 再宣言が可能であること。 var ry1 = "ry1" console.log(ry1); => ry1 // 上書きします。 ry1 = "ry1を上書き" co…

2022年2月25日JavaScript クロージャーについて

JS primerで毎日学習しておりますが、クロージャーという関数の概念が難しかったのでまとめておきます。 クロージャーとは 外側のスコープにある変数への参照を保持できるという関数の持つ性質のことです。 JS primerでの例となっているコードを引用します。…

2022年2月6日 JavaScript (JS Primer) [ES2015] ECMAScriptモジュール

モジュールは、保守性・名前空間・再利用性のために使われます。 保守性: 依存性の高いコードの集合を一箇所にまとめ、それ以外のモジュールへの依存性を減らせます 名前空間: モジュールごとに分かれたスコープがあり、グローバルの名前空間を汚染しません …

2021年9月29日 ログイン機能を実装するにあたってCookie セッション ステートレスについて復習しました

Cookieとは ブラウザに保存される小さな情報またはその領域 セッションとは サーバ側で一時的に保持できる情報またはその領域 HTTPはステートレス 日常生活での例えが分かりやすかったので引用します。 客 『ハンバーガー1つと...』 店員 『はい、ハンバーガ…

転職の思考法

今回は技術のアウトプットではなく、転職に関する書籍を読んだものをアウトプットします。 自分のマーケットバリューを知る 技術資産 例:どんな会社からも必要とされる高い技術力を持った人 ひとことで言うと、専門性 人的資産 例:どんな人とも仲良くなり…

2021年9月23日パーフェクト Ruby on Rails

複数のデータベースを扱う Webアプリケーションの規模が大きくなるとしばしば応答速度の低下が問題になる事があり、ボトルネックになりやすいのはDBアクセスに関する部分という事がよくあります。 そういった問題を解決し、複数のDBを利用するgemパッケージ…

2021年9月22日 図解入門 TCP/IP

IoT Internet of Things の略 で、身の回りにある色々なモノ(Things)がインターネットにつながる仕組みのことです。 - CoAP トランスポート層にUDPを使用したクライアントサーバー型プロトコルです。 - MQTT TCP上で動作するブローカー型プロトコルです。 Ia…

2021年9月22日パーフェクト Ruby on Rails

3-3-4 あらかじめ用意したデータを読み込む(seed.rb) seedデータを投入の際は、!付きメソッドを利用し、エラー発生にすぐに気づけるようにすると良いです。 Blog.create!(name: 'cool blog') batch処理とは バッチ処理とはコンピュータでひとまとまりのデー…

2021年9月21日 パーフェクト Ruby on Rails 第3章押さえておきたいRailsの基本機能

3-3-2 テーブルの定義を反映させる マイグレーションファイル内ではデフォルトではchangeメソッドが使用されています。 bin/rails db:migrateを実行したら、upになり、bin/rails db:rollbackを行うとdownになります。 remove_columnはupになる事でテーブルが…