Skip to content

Commit

Permalink
定期的なアップ
Browse files Browse the repository at this point in the history
  • Loading branch information
IJproject committed Feb 15, 2024
1 parent 64a5bce commit 0156c99
Show file tree
Hide file tree
Showing 5 changed files with 545 additions and 50 deletions.
67 changes: 67 additions & 0 deletions public/laravel-db-schema.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,67 @@
---
title: LaravelのDB設計って今どうなってん?
tags:
- Laravel
- Database
- スキーマ
private: false
updated_at: '2024-02-02T15:40:25+09:00'
id: 413e8e87bedb4b75225b
organization_url_name: null
slide: false
ignorePublish: false
---



# 目次
[1. マイグレーションファイル多すぎ](#1-マイグレーションファイル多すぎ)
[2. スキーマファイル作れるらしい](#2-スキーマファイル作れるらしい)
[3. これでやっと](#3-これでやっと)

# 1. マイグレーションファイル多すぎ
Laravelに限らず、バックエンド系フレームワークのマイグレーションファイルって多すぎますよね。僕のようにインフラ面が分からなすぎるために、ソースコードからDB設計を把握するしかない人間もいるんですよね。
Railsであれば`schema.rb`ファイルとかいう**神ファイル**があるので問題ないのですが、Laravelってそういうファイルがないから時々どころか相当な頻度で困ることがあるんです。何のカラムを持っているのか分からないからマイグレーションファイルを見にいってという労力を毎回使ってたんです。

# 2. スキーマファイル作れるらしい

これが当たり前だと思っていたのですが、ふと調べてみたのです。`「Laravel Schema」`でググってみました。すると、**スキーマ系のファイル作れるけど今まで何してたの**と言わんばかりにあるコマンドのことが大量に出てきたんです。それが、

```shell:スキーマを作成
php artisan schema:dump
```

これさえ実行してしまえば、こんなSchemaファイルができてしまうんです。

```sql:database/schema/*-schema.sql
:
:
:
DROP TABLE IF EXISTS `members`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!50503 SET character_set_client = utf8mb4 */;
CREATE TABLE `members` (
`id` char(26) COLLATE utf8mb4_unicode_ci NOT NULL,
`image_id` char(26) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
`name` varchar(100) COLLATE utf8mb4_unicode_ci NOT NULL,
`last_name` varchar(25) COLLATE utf8mb4_unicode_ci NOT NULL,
`first_name` varchar(25) COLLATE utf8mb4_unicode_ci NOT NULL,
`address` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL,
`email` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL,
`email_verified_at` timestamp NULL DEFAULT NULL,
`password` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL,
`created_at` timestamp NULL DEFAULT NULL,
`updated_at` timestamp NULL DEFAULT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `members_email_unique` (`email`),
KEY `members_image_id_foreign` (`image_id`),
CONSTRAINT `members_image_id_foreign` FOREIGN KEY (`image_id`) REFERENCES `images` (`id`) ON DELETE SET NULL,
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
:
:
:
```

# 3. これでやっと
長年(数ヶ月)の「Railsは`schema.rb`ファイルあって良いなあ」案件が解消されました。
また一段階、Laravelのことを好きになれた気がします。今日から沢山スキーマファイル作ろうと思います。
60 changes: 60 additions & 0 deletions public/laravel-phpunit.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,60 @@
---
title: Laravelのテストコードを書いてみた
tags:
- Laravel
- PHPUnit
- テスト
private: true
updated_at: null
id: null
organization_url_name: null
slide: false
ignorePublish: false
---

# 目次

[1. 前書き](#1-前書き)
[2. 知識の下準備](#2-知識の下準備)
[3. 実装](#3-実装)

# 1. 前書き

# 2. 知識の下準備

https://laravel.com/docs/10.x/testing#main-content

https://qiita.com/shindex/items/4f28f8e06ef2d10e8d2b

# 2-1. ディレクトリ構成



# 2-2. テストファイルの作成と実行

以下のコマンドを叩いて、テスト用のファイルを生成します。
**Feature**に作成する場合は1行目、**Unit**に作成する場合は2行目のコマンドを実行します。

```bash
php artisan make:test ファイル名
php artisan make:test ファイル名 --unit
```

次に以下のコマンドを叩くことで、テストを実行することができます。

```bash
php artisan test
```

Paratestというライブラリを使用すると、テストを並列実行させ、テスト時間を短くすることができます。

```bash
composer require brianium/paratest --dev
php artisan test --parallel # --parallelオプションを付与すると並列実行
```

# 2-3. テストコードの書き方

# 3. 実装

# 3-1. サンプル
8 changes: 6 additions & 2 deletions public/readable-vue-1.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ tags:
- 可読性
- コード品質
private: false
updated_at: '2024-02-01T18:57:59+09:00'
updated_at: '2024-02-05T14:59:17+09:00'
id: 46342f529320652a8fad
organization_url_name: null
slide: false
Expand All @@ -22,6 +22,10 @@ ignorePublish: false
[3. 実装ポイント](#3-実装ポイント)
[4. 後書き](#4-後書き)

現在の記事は①になります。②はこちらのリンクからどうぞ

https://qiita.com/IJproject/items/eece70d9c75558a621db

# 1. 前書き

この記事のテーマは、「Vueファイルの可読性を可能な限り上昇させる」です。ファイル内の記述方法を工夫し、**優しいコーディング**をすることを目的としています。
Expand Down Expand Up @@ -440,7 +444,7 @@ const test = ref(testContentList.value[0]);
更新
</button>
```
見比べてみてもらうと分かる通り、圧倒的に前者の方がコードが見やすいですよね
見比べてみてもらうと分かる通り、圧倒的に後者の方がコードが見やすいですよね
このボタンが押されるとどんな処理が走るのだろうかと見てみようとしても、わざわざ右にスクロールしていかないと関数名等を見ることはできません。

書く順番は人それぞれですが、例えばですけど僕の場合は
Expand Down
Loading

0 comments on commit 0156c99

Please sign in to comment.