投稿者「賞金首」のアーカイブ

プログラミング画面

悪いソースコードとはどういうソースコードか?

10年以上開発の現場でコードを書いたり読んだりしていると、悪いソースコードに出くわす機会も少なからずあります。

今回はPHPのサンプルコードを例に、悪いソースコードとその対策についてまとめました。

プログラミング初心者の方の参考になれば幸いです。


悪いソースコードとは?

そもそも悪いソースコードとはどういうソースコードなのか?

いくつも原因が考えられますが、下記のもので改善が可能なものを指すことが多いです。

  • 処理に時間が掛かり負荷が高い書き方
  • バグにつながる書き方
  • コピペが多くコンポーネント化(関数化)されていない書き方
  • 純粋に見づらい(分かりづらい)書き方

順番にサンプルソースコードを例に解説します。


処理に時間が掛かり負荷が高い書き方

一番分かりやすい例が、if elseの文です。

性別を判定する処理を例にします。(0: 不明 / 1: 男 / 2: 女 / 9: 適用不明)

<?php
// 悪いソースコードの例
if ($sex === 0) {
    echo "不明";
}
if ($sex === 1) {
    echo "男";
}
if ($sex === 2) {
    echo "女";
}
if ($sex === 9) {
    echo "適用不能";
}

プログラミング初心者の方が陥りやすい書き方です。

このソースコードの問題点は何度もifの判定を繰り返している点です。

$sexが1の場合、内部では下記のように処理されます。

$sexが0か判定 → $sexが1か判定("男"と表示) → $sexが2か判定 → $sexが9か判定

目的である性別の表示が終わっても、以降の判定を行っているため無駄な処理が存在して負荷が高くなっています。

<?php
// 良いソースコードの例
if ($sex === 0) {
    echo "不明";
} else if ($sex === 1) {
    echo "男";
} else if ($sex === 2) {
    echo "女";
} else if ($sex === 9) {
    echo "適用不能";
}

else ifを使ってあげることで、性別の表示以降の判定が行われないため、負荷を減らせます。

$sexが0か判定 → $sexが1か判定("男"と表示)

状態を判定する場合、基本的にはelseifを使うと覚えておけば問題ないと思います。

※どうでも良いですけど、変数名やカラム名にsexって付けるとレビュー時にちょっと恥ずかしいですよね…。


バグにつながる書き方

パターンとしては色々ありますが、最も多いのは型を意識していないためにバグにつながるケースです。

<?php
$str = 'hogehoge';
$find   = 'hoge';

$pos = strpos($str, $find);

if ($pos != false) {
    echo "OK";
} else {
    echo "NG";
}

// 結果
NG

strpos関数は、文字列が含まれていた場合にその位置を返す関数です。

この関数を利用して、$strに’hoge’という文字列が含まれているかどうかを判定し、含まれていたらOKと表示します。

一見良さそうですが、結果はNGとなりました。

今回は一番先頭にその文字列が含まれていたため、先頭を指し示す0がstrpos関数によって返されますがfalseも数値としては0なので、意図した挙動にはならなかったのです。

<?php
if (0 == false) {
    echo "一致";
}
// 結果
一致

数値としては一致しますが、型は当然違います。

<?php
echo gettype(0), "\n";
echo gettype(false);

// 結果
integer
boolean

これを回避するためには、型も判定に含める!==演算子を使う必要があります。

<?php
$str = 'hogehoge';
$find   = 'hoge';

$pos = strpos($str, $find);

if ($pos !== false) {
    echo "OK";
} else {
    echo "NG";
}

// 結果
OK

strposはよく利用されるため知っている方も多いと思いますが、他の関数になると戻り値を意識していないソースコードをよく見かけます。

※戻り値がnullに対してisset関数を使用したり、変数の存在を判定するためにempty関数を使用したり等。

型を意識するだけでも相当数のバグを減らすことができるので、関数の戻り値の型をチェックすることをおすすめします。


コピペが多くコンポーネント化されていない書き方

例えばユーザー情報を取得する下記のようなSELECT文の関数があった場合です。
※Laravelの書き方を例にしています。
※Laravel自体まだ触り始めたばかりなので、間違っていたらご指摘頂けると助かります。

<?php
public function get_users(): User {
    $users = User::get();
    return $users;
}

後から機能が追加され、nameでソートする必要が出てきたとします。

その場合に下記のような関数を別途追加してしまうパターンです。

// $sortには'desc'か'asc'を指定
public function get_users_sort_by_name($sort): User {
    $users = User::orderBy('name', $sort)->get();
    return $users;
}

一見すると良さそうですが、SELECTする際の条件を追加する必要があった場合はどうでしょう?

その場合、get_users関数もget_users_sort_by_name関数も両方修正する必要がでてきます。

関数が2つだけならまだ大丈夫ですが、3つ4つと同じような関数が増えてきた場合、全部に修正が必要になってきます。

これの恐ろしいのが修正が漏れてしまうケースが発生することです。

この修正漏れがバグを引き起こす原因になってしまいます。

そうならないためにも、条件(where文)が同じであれば下記のようにget_users関数に引数を追加してあげることでこの問題を回避できます。

// get_users()で呼び出せばソート無し
// get_users($sort)で呼び出せばソート有り
public function get_users(string $sort = NULL): User {
    if (is_null($sort)) {
        $users = User::get();
    } else {
        $users = User::orderBy('name', $sort)->get();
    }
    return $users;
}

こうすればwhereが複雑になったとしてもget_users関数内だけ修正すればOKなので、手間もバグも減らせます。

この例以外にも「あれ…なんか似てるような処理書いているな」と思ったら大抵の場合コンポーネント化できますので、面倒くさがらず処理をひとまとめにできないか模索してみてください。


純粋に見づらい(分かりづらい)書き方

見づらくなってしまう原因については、下記があげられます。

  • インデントがずれている
  • 1つの関数の処理が長い(行数が多い)
  • 文字数が多く改行がされていない
  • ifのネストが多い

このあたりについては分かりやすいので説明は割愛しますが、プログラミング歴が長い人でも陥りやすい書き方を紹介します。

明示的でない

この変数にはどういうデータが入っているのか?またはこの関数はどういう処理をするのか?というのが明示的でないのも悪い書き方になります。

実際に僕がやっていた悪いソースコードの例になります。

<?php

public function get_data(): array
{
	$data = array();
  $data['meats'] = array('cow', 'pig');
	$data['fruits'] = array('apple', 'cherry');
	$vegetables = 'potato';
	
	/*
	省略
	*/

  return $data;
}

この関数が例えば1000行以上になったと仮定します(1つの関数あたりの行数が長いのも問題ではありますが、ここでは説明のため…)

冒頭で$dataに’meats’と’fruits’というキーでデータを格納していますが、$vegetablesは格納していません。

この関数の処理を第三者の人がreturnまで読んだ際に「あれ、$vegetablesってこの$dataに含まれていたっけ?」となってしまい、処理をまた追いかける羽目になります。

そうならないためにも、returnで返す値を直前で格納するようにした方が読みやすくなります。

<?php

public function get_data(): array
{
  $meats = array('cow', 'pig');
	$fruits = array('apple', 'cherry');
	$vegetables = 'potato';
	
	/*
	省略
	*/
	
	// $vegetablesが入ってないことが明確
  $data = array();
	$data['meats'] = $meats;
	$data['fruits'] = $fruits;

  return $data;
}

関数の戻り値や三項演算子の多用

これは悪いソースコードとは言い難いので迷いましたが「読みづらい」という点では悪いソースコードといえなくもないので、載せておきます。

少し無理やりですが、下記みたいな書き方です。

※ちなみに僕もよくやりがちなので、戒めの意味も込めて載せています。

<?php

return $cnt > 0 ? (get_mode() === 1 ? get_status() : "error") : NULL;

カッコを付けていても分かりづらいですが、三項演算子のネストです。

熟練エンジニアの方や参考書にもこういった書き方で載っていますし、1行でまとまっているので美しいようにも見えます。

ですが分かりやすいかと言われれば間違いなく分かりづらい書き方です。

組織での開発は複数人で行うため、誰が見ても分かりやすい書き方がベターです。

<?php

$mode = get_mode();
$status = $mode === 1 ? get_status() : "error";
return $cnt > 0 ? $status : NULL;

エレガントな書き方より見やすい書き方の方が読みやすいので、バグも生まれにくくなります。


良いソースコードを書くには

書いたコードを1行ずつ理解して読み直すことを強くおすすめします。

  • 関数の戻り値の型に合った判定をしているか?
  • 負荷を掛ける処理になっていないか?
  • 似たような処理をいくつも書いていないか?
  • 変数名や関数名は適切か?
  • 1行ずつ人に説明できるか?

上記のポイントを抑えながら読み直してリファクタリングをするのがおすすめです。

長くなりましたが、最後に良いソースコードを書く上でおすすめの書籍を紹介します。

おすすめの書籍① リーダブルコード

タイトルにもある通り、良いソースコードの書き方について解説している書籍です。

この手の本(というか技術書全般)は内容が難しくなりがちですが、シンプルでとても読みやすい上に、ページ数もそこまで多くないのでさらっと読めると思います。

変数名や関数名の付け方から、ネストを深くしない仕組みやコメントの書き方などが載っているため、綺麗で読みやすい良いソースコードが書けるようになります。

実際に僕も「エレガントなソースコードが良いとは限らない」というのをこの書籍に教えられてから、誰にでも読みやすいコードを書けるようになりました。

おすすめの書籍② 達人プログラマー

こちらは良いコードの書き方というより、エンジニアとして開発する上で基盤となる開発手法が書かれています。

エンジニアはどういう心構えが必要か、開発手法やエンジニア思考について多くを学べる書籍です。

同じ処理を2つ以上書かない設計手法であるDRY原則(Don’t Repeat Yourself)や、アヒルのおもちゃにソースコードを1行ずつ説明することで理解を深めるラバーダック・デバッグ法のやり方といった具体的な手法が載っており、これらを実践することで間違いなく開発スキルがグンと上がります。

周りのエンジニアも絶賛しており、僕にとってもこの書籍はエンジニアとしてのバイブルになっています。
※アヒルのおもちゃも買いました。


最後に

悪いソースコードの例は挙げればキリがありませんが、よく見るパターンをまとめてみました。

まだ思いつく悪いソースコードのパターンはあるので、今度また余裕があった時にまとめてみます。

参考になりましたら幸いです。

最後まで読んで頂きありがとうございます。

ゴミ箱

個人開発でボツにしたアイデア

今年の1月初旬から、Laravelを勉強しながら個人開発(webサービス)に挑戦しております。

開発を始めるにあたりサービスのアイデアをいくつか考えましたが、ボツにしたアイデアとどこがダメだったのか、個人開発で成功するために何を作れば良いかをまとめたので参考にして頂けたら嬉しいです。


ボツにしたアイデア1 婚活向けToDoリスト管理サービス

一番最初に思い付いたアイデアで、婚活を本気で頑張りたい人向けのサービスを考えました。

文字通りToDoを管理するサービスで、初回ログイン時にいくつかの設問に答えることで自動的に婚活向けのタスクが追加されるというものです。

例えば『気になる異性は居ますか?』というのに対し、YESなら『実際に声を掛けてみる』というタスクが追加され、NOなら『街コンへ参加』というタスクが追加されるといった感じで、ある程度の強制力により自身を鼓舞し、婚活を頑張ってもらうサービスです。

画像はfigmaというワイヤーフレーム作成webサービスで作成したプロトタイプの画面レイアウトです。

開発中の婚活ToDoサービスの画面
実際に作成したレイアウト

ToDoリスト機能とは別に、同性同士でのみやり取りができる掲示板機能を設け、婚活を本気で頑張っている人たちのコミュニティを作り上げる構想でした。

競合調査として、5chやガールズちゃんねるといった掲示板を覗いた際に、婚活に関する書き込みはあるものの圧倒的に少なく、レスも茶化したようなものが多かったため本気で婚活する人たちが集まるコミュニティを作ることができれば、このサービスは成長するのではないかと考えました。


マネタイズ

下記の課金要素を検討していました。

・トライアルプラン
最初の30日間は全ての機能が使えるが、広告が表示される。

・フリープラン
ToDo機能は使えるが、掲示板機能が使えず広告が表示される。

・ベーシックプラン
全ての機能が使え、広告も非表示。
月額980円

『お金掛けてるし頑張らないと』という意識を持ってもらうため、金額については敢えて高めに設定しました。

  • 安いサービス = 悪いサービス(期待しない)
  • 高いサービス = 良いサービス(その分期待する)

高額なサービスなものほど品質に見合った成果が出るという認識を人は持っているため、そこをうまく刺激できるくらいの金額設定にしました。

本気で痩せたい人向けのサービスであるライザップとかが良い例ですね。


ボツにした理由

同じように個人開発されている方のブログを拝見していると「ユーザーが集まらないと価値が提供できないサービスは失敗する(難しい)」という内容をよく目にしました。

それを理解した上で、当初はある程度広告にもお金を掛けて集客しようと考えていました。

しかし、いざ開発を進めていると「ユーザーに使ってもらえるんだろうか?」「結構な開発ボリュームだけどコストに見合う利益は得られるのだろうか?」「時間もお金も掛けて失敗したら相当辛いだろうな…」など、ネガティブな思考がどんどん湧いてくるのです。

特に「時間もお金も掛けて失敗する」事態だけは絶対に避けたかったので、このアイデアはボツになりました。

この失敗から、個人開発する上での指針みたいなものが決まりました。

  • お金も掛かるし開発期間も長い → NG
  • お金は掛からないが開発期間が長い → NG
  • お金は掛かるが開発期間が短い → 場合によってはOK
  • お金も掛からないし開発期間も短い → OK

ボツにしたアイデア2 方眼紙マッピングWEBアプリ

普段ゲームをされない方は馴染みがないかもしれませんが、ウィザードリィというレトロゲームがあります。

古いゲームなので今みたいに地図(マップ)が表示される機能が存在せず、探索しながら紙の方眼紙に自分で地図を書いて進めるというのが一般的な手法です。

この面倒臭さも良さであり、今でもウィザードリィをプレイされる方はこの方法でゲームをプレイしています。

これをWEBアプリ化すれば便利なのではないか?と思いさっそく競合となるアプリを調べたところ、Windowsで動作するアプリケーションはあるのですがWEBで管理できるものはありませんでした。

一定数以上は需要があることも分かりました。

方眼紙マッピングの需要
「方眼紙マッピング」で検索した際の関連キーワード

これらの関連キーワードからiPhoneなりAndroidなり、ブラウザ上で動作するマッピングツールの需要があることが伺えます。

需要があり、まだWEBで使えるアプリは無かったのでこれはイケると確信し、さらに深く構想を練りましたが結局ボツにしました。


ボツにした理由

このアイデアに欠点はないか?を注意深く精査したところ「長期間使われるものではない」という欠点がありました。

マップ表示機能が存在しないものは、ウィザードリィのシリーズでも1、2本程度であり、使用するユーザーもウィザードリィをクリアしてしまえば、その後に使う機会はほぼ無いものです。

ウィザードリィ以外の3DダンジョンRPGもあることにはありますが、当然のごとくマップ表示機能は存在します。

見込みユーザー数が少ない上に想定される使用期間も短かったため、このアイデアをボツにしました。


個人開発で成功するには何を作れば良いか

以上のボツにしたアイデアを参考に、自分の中での個人開発で成功するための指針についてまとめました。


規模が小さいものを作る

個人開発はほとんど一人で作らねばならないので、当然大規模なものを開発することは相当難しいはずです。

世に出回っているサービスは何十人何百人の人間が関わっていて作られているものばかりです。

これらの規模が大きいサービスと戦っても勝てるはずは無いので、必然的に規模が小さいもので勝負することになるでしょう。

僕の考えですが、企業がサービス化しても利益を生みづらいもの、すなわち小遣い稼ぎ程度の利益が出そうなもので勝負することが成功への近道だと考えています。


自分が使いたいと思うものを作る

個人開発に関して調べていると「自分が使いたいと思うものを作ると良い」この言葉もよく耳にしました。

これを聞いた当初は「まぁ…そうかもね」程度にしか思ってませんでした。

そもそも使いたいと思ってるものなんて無かったし、アイデアの幅を狭めるのではないかと感じたからです。

でもこの言葉、今思えばかなり重要なことだったんだなと強く思います。

なぜなら自分が使いたいと思っている時点で需要があるからです。

ボツにした方眼紙マッピングWEBアプリもそうですが、関連キーワードに出るということは自分以外の需要も存在するということです。

僕はこの考えを念頭に置いてアイデアを出すようにしています。


面白いものではなく課題を解決するものを作る

仕事で自社サービスの開発をしているのですが、現場で「これ面白そうじゃない?作ろうよ」みたいな話がよく出ますが、これはほぼ間違いなく失敗する考え方だと思っています。

この面白そうという考え方は今まで無かったアイデアが浮かんだ際に芽生えることが多いですが、この時点でユーザー視点ではないので、失敗する可能性が大きいと考えています。

「面白い」が売りのクリエイティブ領域やエンタメ系でも同じことが言えるのか?というと、確かに新しい体験を望むユーザーは居ると思いますが、大前提として楽しめるコンテンツありきで、創意工夫の部分は二の次になるというのが現実ですよね。

上記の場合「面白そうと製作者が思うまったく新しいコンテンツ」ではなく「楽しめるコンテンツを探している」というユーザーの課題に答えるのが成功に導くのではないかなと思います。


長期間使用されるものを作る

方眼紙マッピングWEBアプリをボツにした理由がこれですが、ユーザーの使用想定期間が短いものは利益になり辛いと思います。

例えば、年賀状をWEB上で作成できるサービスは年末年始のみにしか使われないため、それを想定した上で利益が出るかどうかを熟慮する必要があります。

個人で開発する場合、継続した収益の安定化は必須だと思うので、使用想定期間が長いものを作った方が安心ですよね。


競合を避ける

これも当然といえば当然ですが、既に完成形に近いサービスがあるのに後発で個人開発して勝ち目があるのかというとほとんど無いので、これも重要な要素ですね。


まとめ

あくまで僕の主観ですが、個人開発で成功するための指針となります。

  • お金も時間も極力掛けずに開発する
  • 人が集まらないと楽しめないサービスは控える
  • 自分が使いたい or 過去に使いたかったものを作る
  • ユーザーの課題を解決するものを作る
  • 使用想定期間が長いものを作る
  • 競合を避ける

前述した通り、まだ1つもリリースしてないくせに大層な記事になってしまいましたが…。

それでも毎日頭がねじ切れるほど考えてまとめた開発指針です。
※こう見ると当たり前のことばかりですが、いろんな方の記事や成功しているサービスやアプリを見ると、この当たり前がとても重要なんだなと実感します。

同じように個人開発されている方、もしくはこれから始めようとしている方、エンジニアの方は仲良くして頂けると嬉しいです。

プログラミング画面

Laravel9/8 パスワードリセット機能の実装

Laravel Breezeを導入することで、ログインやアカウントの登録、パスワードのリセットができる状態になりますが、今回はLaravel Breeze導入後のパスワードリセット機能をカスタマイズする方法について解説していきます。

Laravel9で検証していますが、8のドキュメントを見ながら実装したので、どちらでも大丈夫だと思います。

※Laravel Breeze導入済みであることを前提としています。
※mailhogを使用して検証を行っています。


まずは下記のURLで表示されるビューの英語を日本語化していきます。
http://localhost:8000/forgot-password

./resources/views/auth/forgot-password.blade.phpに定義されている下記英語のメッセージ表示を日本語へ変更します。

<div class="mb-4 text-sm text-gray-600">
    {{ __('Forgot your password? No problem. Just let us know your email address and we will email you a password reset link that will allow you to choose a new one.') }}
</div>
<div class="flex items-center justify-end mt-4">
    <x-button>
        {{ __('Email Password Reset Link') }}
    </x-button>
</div>

./config/app.phpのロケールがjaになっていることを確認します。

'locale' => 'ja',

./langディレクトリにja.jsonという名前でファイルを追加します。

localeをjaに変更したことで、__ヘルパ関数を使用した際にja.jsonから翻訳文字列を取得できるようになります。

詳しくは日本語に翻訳されたドキュメントに書かれているので、こちらを参考にしてください。
https://readouble.com/laravel/8.x/ja/localization.html
※「翻訳文字列の取得」の箇所です。

ファイルを追加したら、下記のように定義して、英語メッセージを日本語に置き換えます。

{
    "Forgot your password? No problem. Just let us know your email address and we will email you a password reset link that will allow you to choose a new one.": "登録時のメールアドレスを入力してください",
    "Email Password Reset Link": "パスワードリセットメールを送信"
}

次に、ユーザーアクション後に表示されるメッセージも英語から日本語に変更します。

./langにjaディレクトリを作成し、その中に./lang/en/passwords.phpファイルをコピーしたものを格納してください。

下記のように配置できていればOKです。

lang
├── en
│   ├── auth.php
│   ├── pagination.php
│   ├── passwords.php
│   └── validation.php
├── en.json
├── ja
│   └── passwords.php
└── ja.json

./lang/ja/passwords.phpを下記のように編集します。

    'reset' => 'パスワードのリセットが完了しました',
    'sent' => 'パスワードリセット用リンクのメールを送信しました',
    'throttled' => 'しばらく経ってからお試しください',
    'token' => 'トークンが無効のため、あらためてパスワードリセットを実行してください',
    'user' => "登録されていないメールアドレスです",

ここまできたら、登録されていないメールアドレスを入力して反映されているか確認してみましょう。
今まで設定してきた日本語が適用されていればOKです。

日本語化されたメッセージ

次に、通知クラスを追加します。

Laravel Breezeで実装されているソースコードを追うと分かりますが、この通知クラスを利用してパスワードリセットメールを送信しているため、同じように下記コマンドで通知クラスを追加します。
※ResetPasswordNotificationの部分は任意のクラス名を指定してください。

php artisan make:notification ResetPasswordNotification

./app/Notificationsの中に指定したクラスファイルが追加されているはずです。

次に、./app/Models/User.phpに下記内容を追記します。

use App\Notifications\ResetPasswordNotification;

    public function sendPasswordResetNotification($token)
    {
        $url = url("reset-password/${token}");
        $this->notify(new ResetPasswordNotification($url));
    }

次に、先ほど追加した通知クラス内(ここでは./app/Notifications/ResetPasswordNotification)のtoMailメソッドを下記のように修正します。

    // コンストラクタでurlを格納します
    public function __construct($url)
    {
        $this->url = $url;
    }

    public function toMail($notifiable)
    {
        return (new MailMessage)
                    ->subject(config('app.name'). ' パスワードリセットURLの送付')
                    ->greeting('いつもご利用頂きありがとうございます')
                    ->action('パスワードリセット', $this->url)
                    ->line('こちらからパスワードリセットを行ってください');
    }

パスワードリセット画面でメールアドレスを入力し、実際にメールが送られてくることを確認します。

http://localhost:8025にアクセスして、受信したメールを確認します。

設定した内容が適用されていればOKです。

メール受信成功画面

メールテンプレートをデフォルトから変更したい場合、下記のようにviewメソッドをコールすることで実現できます。
下記の場合./resources/views/emails/list_password.blade.phpファイルを追加することになります。

    public function toMail($notifiable)
    {
        return (new MailMessage)
                    ->subject(config('app.name'). ' パスワードリセットURLの送付')
                    ->greeting('いつもご利用頂きありがとうございます')
                    ->action('パスワードリセット', $this->url)
                    ->line('こちらからパスワードリセットを行ってください')
                    ->view('emails.liset_password');
    }

メールテンプレートの設定について詳しく知りたい方は、こちらも日本語に翻訳されたドキュメントに書かれているので参考にしてください。
https://readouble.com/laravel/8.x/ja/notifications.html
※「その他のメール通知フォーマットオプション」の箇所です。

エラーが出てメールが受信できない場合は.envと./config/mail.phpの設定を見直してみてください。
下記のようになっていれば問題ないと思います。

MAIL_MAILER=smtp
MAIL_HOST=localhost
MAIL_PORT=1025
MAIL_USERNAME=null
MAIL_PASSWORD=null
MAIL_ENCRYPTION=null
MAIL_FROM_ADDRESS=hoge@example.com
MAIL_FROM_NAME="${APP_NAME}"
        'smtp' => [
            'transport' => 'smtp',
            'host' => env('MAIL_HOST', 'smtp.mailgun.org'),
            'port' => env('MAIL_PORT', 587),
            'encryption' => env('MAIL_ENCRYPTION', 'tls'),
            'username' => env('MAIL_USERNAME'),
            'password' => env('MAIL_PASSWORD'),
            'timeout' => null,
        ],

受信したメールのリンクからパスワードリセット画面へアクセスします。

ボタンがRESET PASSWORDになっているので、ここも日本語に変更します。

パスワードリセット画面のビューは./resources/views/auth/reset-password.blade.phpなので、ボタンの定義を確認します。

            <div class="flex items-center justify-end mt-4">
                <x-button>
                    {{ __('Reset Password') }}
                </x-button>
            </div>

‘Reset Password’の翻訳文字列を./lang/ja.jsonに定義します。

"Reset Password": "パスワードリセット"

※ちなみに’Reset Password’と表記されているのに画面表示上ではなぜ全て大文字になっているのか?気になって調べたところ、buttonコンポーネント内でTailwind CSS のclassであるuppercaseが定義されていたからでした。

バリデーションエラーメッセージを確認するためPasswordに”aaa”Confirm Passwordに”bbb”等適当な短い文字列を入力して、エラー表示させてみます。

下記のような英語メッセージが出るので、ここも日本語に変更していきます。

  • The password confirmation does not match.
  • The password must be at least 8 characters.

./lang/en/validation.phpを./lang/ja/にコピーします。

コピーしたら、34行目あたりの’confirmed’と96行目あたりの’min’ => [‘string’]を下記のように書き換えます。

    'confirmed' => ':attribute が一致しません',

    'min' => [
        'numeric' => 'The :attribute must be at least :min.',
        'file' => 'The :attribute must be at least :min kilobytes.',
        'string' => ':attribute は :min 文字以上必要です',
        'array' => 'The :attribute must have at least :min items.',
    ],

再度Passwordに”aaa”Confirm Passwordに”bbb”等適当な短い文字列を入力して、エラーメッセージが日本語になっていることを確認します。

エラーメッセージが日本語になっている

最後に、正常にパスワードリセットができることを確認できれば完了です。

パスワードリセット成功

参考になりましたら、記事を拡散して頂くと嬉しいです😊

お金

2022年 01/16〜01/22の家計簿

今週の家計簿になります。

金額日付メモカテゴリー名
-8622022/01/22食材食費
-1,4742022/01/20食材食費
-7802022/01/19ホットアイマスクその他
-952022/01/17食べっ子水族館娯楽費
-1,8582022/01/17食材食費
-5,069


01/16 〜 01/22 支出詳細

今週も今週とて在宅での仕事も継続しているので、引きこもり&ほぼ自炊のため5,069円の出費という結果になりました。

僕は楽天経済圏の民なので、ふるさと納税を楽天市場で注文した際のポイントが5,000ポイントぐらい付与されたため、それも活用しているので最近は特に支出が少ないです。

とにかく貯金優先で節約をするのであれば、人と会わない& 外出しない&自炊(値引き弁当でも可)が最強だと思う今日このごろです。

生活水準を落としまくって支出が減っていく家計簿を見ていると恍惚としてしまいます。

「なにそのつまんない人生」とか思われそうですが、個人的にかなり充実してるんですよね。

以前は在宅勤務が続くとヒマ過ぎて辛いし寂しいし、結果朝まで飲み歩いて散財したり、翌日は二日酔いで丸一日潰したり。

大好きなゲームしている最中も「こんなことしてて良いのか…」と正体不明の焦燥感に駆られたり、まわりの友人の結婚報告が続いたりして「それに比べて俺はなんてダメなやつだ…」と自己嫌悪に陥ったり、何をしても楽しくなく、常にメンタルも不安定でした。

人生の目標が無かったんですよね。

いつも「なんか違うな」と。

自堕落で灰色の毎日を繰り返していて、それを探すようにもがき苦しんでました。

自分にとって幸せとはなんだろう?と、もう10年以上前から探しています。

何者かになりたいのか、お金が欲しいのか、愛する人と結婚して平和に暮らしたいのか、バリバリ仕事してキャリアアップして社会に貢献したいのか、ひとりでのらりくらりと飄々と生きたいのか。

ずうううううううううううううっと考えすぎて疲弊していました。

人生のターニングポイントというと大げさですが、きっかけはお金だったんですよね。

自分の過失ではないのですが、前に住んでいた床が水浸しになり、一部フローリングがダメになった時のことです。

その時の貯金はほぼ無かったので「高額な修繕費が必要になったらどうしよう…払えない…」と物凄く心配しました。
※結局管理会社が負担してくれたので事なきを得ました。

それがキッカケでお金の大切さに気づいて、そこからちゃんと貯金して資産を増やすことを決意しました。

くわえてお金を増やすためには副業すべきだろうと思い、個人開発に向けて勉強に勤しんでます。

なので、飲みに行ったり誰かと遊んだりしなくても、今は「個人開発を成功させる」のと「貯金しまくって資産を増やす」の2つの目的に向かって日々邁進できている実感があるので、毎日充実しています。

今でも自分にとっての幸せとはなんだろう?の答えは出せていませんが、それに向かっているという実感はあるので、気がだいぶ楽です。

話がだいぶ脱線してしまいましたが、脱線ついでにメンタルの不調を直した実践方法についてまとめてみます。

  • 食事に気を使う
  • 筋トレする(運動する)
  • 就寝時間と起床時間を安定させて、睡眠の質を高める
  • お酒を飲まない
  • 何かに熱中する

よく言われる食事、運動、睡眠はやはり効果があります。

これが崩れている時は、カラダが怠いしメンタルも不安定なことが多いです。

お酒を飲まないことで生活リズムが崩れないので、これの効果も大きいですね。

人間ヒマ過ぎると精神を蝕むらしいのですが、これは身を持って経験しているので間違い無いと思います。

それの回避策として、趣味をみつけたり、何かに熱中するのが良いのではないかと思います。
※恋人を作るというのは、それはそれで悩みが増えたりするので個人的にはおすすめしません…。

全然関係無い話ばかりになってしまいましたが……今日はこのあたりで終わります。

よく分からない記事を見てくれて、ありがとうございましたm(_ _)m

フードをかぶった男性

他人に興味がないのは正常

人より他人に興味がない、もしかして病気なのではないのか?と不安に思う人は結構居ると思います。

僕も悩んでいた時期がありました。

でもこれは病気でもなんでもなく、みんな他人に興味はないと思っています。

そう思う根拠についてまとめてみました。


誰もスティーブ・ジョブズに興味はない

ちょっとインパクトが強すぎる見出しですが…(汗)

Apple創業者であるスティーブ・ジョブズを知らない人は居ないと思いますが、彼に興味ある人は身内である家族くらいなものだろうと考えています。

こんなことを言うと「みんなが憧れる発明家がそんなはずはない」「Apple好きな人はみんな彼が好きなはずだ」「自伝の本も売れている」等、みんなが彼に興味を持っているという証拠を突きつけられそうですが、いずれも本質的ではないと思っています。

彼が創ったiPhoneやMacでテクノロジーが進化してきたのは言うまでもないですが、それは彼の結果であり、人間性を評価されているわけではありません。

「そんなの当たり前でしょ?」と思われそうですが、彼に注目する理由は紛れもなくiPhoneやMacを創ったすごい人なわけです。

なぜiPhoneやMacを創ったすごい人に大して憧れを持つのか、製品を買うのか、本を買うのか。

自分もその人のようにすごい人になりたいからこそ、憧れたり本を買ったりするというのが本心ではないでしょうか?

本を買う理由だったりyoutubeでインタビューを見る理由は、成功者である人の考え方を吸収したいとか、学びを得るための行為であると思うんです。

つまり、自分の利益になるための行為であり、その人に興味があるわけではなく、本質的には自分にしか興味がないのです。

スティーブ・ジョブズもイーロン・マスクもウォーレン・バフェットも、ホリエモンもひろゆきも落合陽一も、自分もこうなりたいと思えるからこそ強く惹きつけられるのではないでしょうか?

それを興味と言うんだろ!と言われれば、まあそうなんですが(汗)

ただ本質的ではないのかな…という考えです。


身近な人にも興味がない

スゴイ人に興味を持つメカニズムの自分なりの考えをお話しましたが、身近な人はどうでしょう?

興味ある人……ぶっちゃけ居ませんよね?(笑)

この根拠を示す例として、例えば喫煙者である母に「カラダに悪いからやめたほうがいいよ、お金も貯まらないよ」と言っても「うるさい!アンタに関係ないわよ!」と返されたりして辞めさせることは難しいですが、母が夢中になっているイケメン俳優が「タバコは昔に辞めました。臭くて吸っている人は苦手ですね」とか言っているのを母が聞いたりすると娘から忠告を受けた時以上にタバコを辞めたくなるはずです。

これは前述した、憧れの人に近づきたい、嫌われたくないといった自分の利益を叶えるためのものだと思います。

もちろんイケメン俳優に近づける、お付き合いできるなんて考えているわけはないのですが、潜在意識レベルではその人の近くに自分が居て、嫌われないようにしようと無意識からくる思考ではないかと考えています。

※この内容は後から読み返して少しズレているかなとも思いましたが「興味」の定義が曖昧なこともあったので一応残しておきます…。


愛する人も例外ではない

ここまで書くと人格破綻者な気がしますが…。

好きな人が出来たとして、その人に興味を持つ本質は自分のことを愛して欲しいということだと思います。

自分のことを楽しませてくれる人、笑わせてくれる人、安心感をもたらせてくれる人、カッコイイ、可愛くて自分を引き立たせてくれる人。

すべての根っこが自分中心になっています。

相手に何かをしてあげたいと思ったとしても、見返りに何かをしてもらいたい、愛してもらいたいといった潜在意識があるのだと思います。

誰も自分のことを大切にしない人にプレゼントなんて贈らないですよね?

「いや、自分は推しには見返りを求めず貢いでる!」という方が居るかもしれません。
※推しというのは、端的に言うとファンという意味です。

こんなことを言うとものすごく怒られそうですが……おそらくそれは自分に酔っているのだと思います。

「自分はこんなに夢中になっている」「誰よりも自分が一番好きなはずだ」というのを、自分とまわりの人に見せつけることでアイデンティティを確立しているのではないかと思います。

※誤解の無いようお伝えしておくと「誰にも興味ない」というテーマに対して、これらは誰かのためではなく潜在意識レベルで自分本位の行為であることの説明(主観的な)であり、決してそういう人たちを悪く言っているのではないのでご理解ください。


結論

他人に興味がないことはおかしいことではないです…というのを言いたいがために、少し辛辣な物言いだったりずいぶん薄情な感じになってしまいましたが、誰かを好きになったり憧れたり、大切に思うその気持ちはとても素敵なことだと思っています。

可愛い子が歩いていたら目線で追ってしまったり、誰かに優しくされたりするとその人のことをちょっと気になってしまったり、長いこと会ってない両親のことを思い出したり。

他人に興味がないと思っている人でも、こんなふうに感じることはあると思います。

忘れているだけで。

仰々しく考えているだけで、他人に興味を持つというのは多分これくらいの軽いもので良いんじゃないかと思います。

札束

お金を稼ぐ方法(主にアフィリエイト)

20代の頃に会社でパワハラの被害を受けたのをキッカケに会社に依存しないで生きることを目標にした時期があります。

その時にアフィリエイトでそこそこ稼ぐ術を身に付けた経験から、お金を稼ぐ方法についてまとめてみます。

※アフィリエイトとは、ブログやサイトに広告を載せ、そのブログやサイトを経由して誰かが購入すると、ASP(アフィリエイトサービスプロバイダー)から報酬が貰えるというビジネスです。

※ASP(アフィリエイトサービスプロバイダー)とは、広告主と広告を載せる人の橋渡し役を担っています。
[例]
IKEAが広告を載せたい場合、ASPへ依頼します。
ブログ / サイト運営者である人がASPを利用し、IKEAの家具を紹介した記事の中に広告を掲載します。
訪問者がその広告からIKEAの家具を購入した場合、ブログ / サイト運営者に報酬が入ります。

劣悪な環境はチャンス

ちょっと大きく出過ぎたかもしれない見出しですが…僕の中でこれはかなり重要だと思ってます。

お金を稼ぐ方法ではないのですが、結構大事なことだと思うのでどういうことか最初に説明します。

行動力は人により差があると思うんですが、これを底上げしてくれる一因が環境だと思います。

例えば転職や起業を考えている人が居たとして「スキルアップは望めないけど人間関係良好だから」とか「給料良いし今のままでいいか」等と考えていると、今の環境のままでも支障がないため転職だったり起業に対する行動力が失われます。

僕の場合は前述した通りパワハラの被害にあっていた辛い時期があり、転職先を見つけるより前に逃げるように会社を辞めました。

その時に個人で稼いでやるんだと奮起してアフィリエイトを始めたわけですが、さすがに生活することが厳しくなり、恵まれた会社へ転職してからはすっかりその気持ちが無くなっていったので、これは身を持って経験しています。

誰だって良い環境を手放したくは無いので、自明の理ですね。


個人でお金を稼ぐ方法

本題です。

ここではネットビジネス(アフィリエイトやせどり)をメインに話を進めたいと思います。

結論から言うと、アフィリエイトのアダルトコンテンツが最も効率良く稼げると思います。

理由としては下記が挙げられます。

  • 利益率が相当高い
  • 継続報酬による不労収入が得られる
  • 競合が少ない
  • ネタに困らない

順に説明していきます。


利益率が相当高い

アダルトコンテンツは利益率が異常に高いです。

例としてアマゾンアフィリエイト(アマゾンアソシエイトプログラム)の報酬率は商品のジャンル毎に違いますが0.5%〜10%です。
※2022年1月現在

例えばブログでKindle本を紹介した場合、実際に僕が以前の記事で紹介した1%の努力は1,336円ですが、僕のブログ経由で売れたとします。

Kindle本は8%の報酬なので、106円の報酬になります。

基本的に成果報酬は売れた場合のみ報酬が発生するので、売った分だけ報酬になります。

いっぽうアダルトアフィリエイトの場合の例として、DTIアフィリエイトだと、報酬率は5%〜50%です。
キャンペーン等で100%キャッシュバックもあったりします。

1,336円だった場合、66円〜668円になります。

アダルトコンテンツは大抵高いので、3,000円〜10,000円の報酬率が支払われることの方が多いです。

3,000円〜10,000円の報酬率だと、150円〜5,000円の報酬になります。

報酬率ではなく一律報酬が決まっているところもあります。

アダルトチャットサイト等で初回登録時に2,000円、初回入金で10,000円の報酬と高額です。


継続報酬による不労収入が得られる(ASPによる)

個人的にはこれがかなりデカイです。

2015年くらいから減ってはきているものの、継続報酬が受けられるASP(アフィリエイトサービスプロバイダー ※要は広告主みたいなもの)が減っていますが、受けられるところはまだあります。

僕が利用していたDTIアフィリエイトではいわゆる動画コンテンツがあるのですが、ユーザーは月額利用するコンテンツを購入します。

その場合、ユーザーが解約手続きをしない限り毎月報酬が発生します。

前述した通り報酬率が高いので、毎月結構な金額が報酬として支払われます。

ヘビーなユーザーはもちろんですが、契約していることを忘れているユーザーや解約が面倒なユーザーの報酬も当然含まれます。

継続報酬のメリットはそれだけではなく、その商品を紹介していたブログなりサイトの更新を止めたり閉鎖しても報酬が支払われ続けます。

通常、ブログやサイトの更新を停止するとアクセス数が落ちるため、成果報酬型の場合だと商品が売れなくなり収益が少なくなります。

継続報酬の場合、ユーザーが解約しない限りは報酬が支払われるため、ある程度の収益を維持できます。

実際に僕の場合でも、閉鎖済みのサイトで会員登録してくれたユーザーの方が毎月継続的に利用してくれているおかげで、今でも収益が発生しています。


競合が少ない

こう見えて競合はかなり少ないと思います。

世間の目があったりアダルトコンテンツを取り扱って良いレンタルサーバが少なかったり、他の広告に比べて面倒だったりといくつか理由がありますが、一番の理由は収益を目的としてブログやサイトを運営しないことだと思います。

「ブログをやろう」と思い立って「よし、アダルトコンテンツやろう!」とはならないのかなと…(汗)

普通は趣味の釣りだったり料理だったり、エンジニアの技術系だったりゲームだったりアニメ、読書、変わり種でニートなど、ブログを始める際は身近なものの方が多い印象です。

収益を目的としたコンテンツについても、最近は…というより昔から情報商材の方が圧倒的に多く感じます。


ネタに困らない

これはアダルトコンテンツに限った話ではないかもしれませんが、紹介するモノが決まりきっているので記事にしやすいかなと思います。

DVDレビューサイトならDVDのレビューをすれば良いし、アダルトグッズならグッズのレビュー、アダルトチャットなら料金体系や遊び方の指南やクレジットカード決済方法とか。

おそらくネタ切れだろう更新がすぐに止まっている雑記ブログを見ていると、このネタに困らないという恩恵はだいぶ大きいはずです。


稼ぎやすいネットビジネスの順位

アダルトサイト、ノンアダルトサイト、ブログ、せどり、スマホアプリ開発、WEBサービス開発のこれらをネットビジネスで最も効率良く稼げる順位で並べてみたいと思います。

●エンジニア ITスキルが無い場合
アダルトサイト > ノンアダルトサイト > ブログ > スマホアプリ開発 > せどり > WEBサービス

●エンジニア ITスキルがある場合
アダルトサイト > WEBサービス > スマホアプリ開発 > ノンアダルトサイト > ブログ > せどり

※個人ではアダルトサイト、ブログ、WEBサービス(今準備中)しかやったことないので、あくまで主観です。
※一応エンジニアとしてスマホアプリ開発もWEBサービス開発もやっているので、開発の観点からある程度の苦労は把握しているつもりです。

順位の細かい理由は専門的な話になってくるので割愛しますが、サイト系だと更新頻度が低くても物が売れやすい(比較サイト等)のでブログより順位は上になり、せどりは物理的な作業(リサーチして購入して販売して梱包する一連の流れ)のコストが高いので、下の方にしています。

※作業をしていない時もアフィリエイト等の収益が得られるサイトやブログとは違い、せどりの場合は物理的な作業をしないと収益が得られないところも考慮しています。

この順位はあくまで主観です。

自分にあったやり方が結局は長続きもすると思うので、やりたいものをやるのが一番良いと思います。


まとめ

今の時代、個人でのビジネスを持つことは大切だと強く感じています。

そのための情報にもアクセスしやすく、すごく有り難い時代に生きているなあとしみじみ感じます。

また、投資に関しては全く分からないド素人ですが、ある程度放置していても利益が発生するという点で似ていると思っています。

今はアダルトサイトを全く更新していませんが、毎月1万円ぐらい報酬が入ってきています。

長くなりましたが、アダルトサイトに限らずぜひ自身のビジネスを確立してみてください。

最後に、僕が実際に使っていたアフィリエイトサービスプロバイダーを載せておきます。

・DTIアフィリエイト(継続報酬有り)

・DMMアフィリエイト DMMアフィリエイト

・DLSiteアフィリエイト DLSiteアフィリエイト

・A-Tradeアフィリエイト A-Tradeアフィリエイト

・エムライブアフィリエイト エムライブアフィリエイト

※画像イメージは準備中です…。


※ちなみに、ここ約10年のアダルトアフィリエイトの総合報酬額を確認したところ、見渡せる範囲で2,274,766円でした(営業利益ではありません)

※何かご質問があればぜひコメントください。可能な限りお答え致します。

お金

2022年 01/09〜01/15の家計簿

今週の家計簿を載せます。

金額日付メモカテゴリー名
-33222022/01/14姪っ子の誕プレ購入その他
-28932022/01/13食材食費
-219102022/01/12AGA治療薬その他
-7902022/01/12チキン南蛮タルタルカレー食費
1519282022/01/12メルカリ販売利益その他
-66002022/01/12腹部エコー検査その他
-11642022/01/11食材食費
-1082022/01/09ドーナツ食費
-24602022/01/09食材食費
-1002022/01/09バススポンジ日用品
-16332022/01/09クイックルワイパーウェットシート日用品
2022年01/09-01/15の全体収支

健康診断があり、以前から右の脇腹が痛む症状が気になっていたので腹部エコー検査をオプションで追加した料金6,600円と、AGA治療薬21,910円以外は大きい出費はありません。

AGA治療薬は高額ですが、若い頃に薄毛で悩んで辛い思いをずっとしてきたのでこれだけはどうしても手放せません…。

少し脱線してしまいますが、以前はAGA治療を専門とする病院へ毎月通ってました。

まだコロナが蔓延する前の話ですが、わざわざ電車で病院まで行き、高い診察代と薬代を払い続けていました。

毎月33,000円掛かってました(途中からは1日2錠飲んでたのを半分にしたため、これの半額になりましたがそれでも高額です)

「さすがに高いな…」と思い、いわゆる海外輸入の安い治療薬を試したところ、以前と変わらないことに気づいてからは病院へ行くのはやめました。

以前は1ヶ月16,500円だったのが、海外輸入の治療薬に変えてからは6,810円になりました。
※家計簿に記載されている21,910円は2種類の薬を3箱まとめてなので、月単位ではこの金額です

閑話休題(言ってみたかった)

メルカリで販売した金額が151,928円振り込まれたのが大きい収入ですね。

後から知ったのですが、メルカリの販売手数料が10%に対してラクマ(楽天フリマアプリ)は6%と安いんですよね…。
※以前は手数料3.5%と格安だったんですが、楽天全体のサービス改悪の影響で今は6%になっているようです。

とはいえメルカリよりも手数料4%も安いので、次回モノを売るときはラクマで出品してみようと思います。

※10,000円で出品したモノが売れた場合、メルカリだと1,000円取られますがラクマだと600円で済むので馬鹿にならない差ですよね。

出費の方もほぼ毎日自炊しているため食費は抑えられており、在宅勤務ということもあり外へ出る時はスーパーでの買い出しくらいのものでほとんどお金を使う機会がありません。

特に娯楽らしい娯楽もなく毎日平和に生きてますが、今はこのブログと副業(個人開発)のための勉強をしているので、毎日充実してます。

やはり目標があると良いものですね。

最近全然ゲームしてないのでたまにはゲームしたいですが、未来のために地道に頑張るとします。

最後に、見直した支出や節約している内容ををまとめてみます。

  • サブスク
    • Netflix(1,490円 / 月) → 解約(0円 / 月)
    • スタディサプリ(2,178円 / 月) → 解約(0円 / 月)
    • dアニメストア(440円 / 月) → 解約(0円 / 月)
  • 生活
    • お酒 → やめた ※支出がだいぶ減りました。
    • 食費 → 1食なるべく500円以内に ※自炊多いので最近は気にしてません。
    • 1日着たら洗濯 → 2日~3日着たら洗濯 ※最近はそもそも外出してないので洗濯すらしてません
    • ペットボトル飲料 → なるべく買わない
    • 散髪 → 人生で一度は長髪にしてみたかったのでちょうど良い機会だと思い切ってません ※コロナの影響で美容室へ行きづらいのもあります。
    • ヤマダ電機のもうすぐ切れるポイント → 900gのこしひかりをポイントで購入
    • 電気 → こまめに消す

支出を減らしたいのもそうですが時間も捻出したいので、時短できる部分(自炊はやめてお弁当とか)は臨機応変に変えていければと思ってます。

同じように節約や貯金などしている方の参考に少しでもなれたら幸いです。

貯金箱を眺める女性

お金が貯まる思考

去年の12月からお金の無駄遣いをやめたり、節約したり物を売ったりしてせっせとお金を貯めているのですが、お金が貯まる(増やす)考え方みたいなものが固まってきたのでまとめてみたいと思います。

よくあるお金の稼ぎ方(ブログや情報商材、その他ネットビジネス)ではなく、散財してしまう人や貯金ができなかったりする人(僕もそうでした)がお金をコツコツ貯めていくための考え方になります。

僕も実践している途中なので偉そうなことは言えないですが、少しでも参考になれば幸いです。


本当に欲しいものだけを買うようにする

何を言ってるんだと思われそうですが、自分が考えている以上に、自分が本当に欲しいものを買っていないことに気付きました。

テレビゲームを例にすると、新しいポケモンが出た時に、twitterでいろんな人が楽しそうにやっているツイートを眺めてました。

その時「みんな楽しそうだな…僕も欲しいな…」と思ったんです。

ポケモンが欲しいというより「誰かとプレイしたい」「誰かと遊びを共有したい」という思いが強かったんですよね。

これは子供時代に経験する「ゲーム機持ってないから仲間に入れない」「話に入っていけない」と本質は一緒だと思います。

お金を貯めていきたいのであればすぐ購入するのではなく、無理にポケモンを買わずとも無料で遊べるソシャゲとかでも「みんなと遊ぶ」ということは達成できるはずです。

買い物以外でも、付き合いでイヤイヤ飲みに行ったり、威厳を保つために後輩に無理しておごったり好きでもない人のプレゼントを買ったりなど、ありとあらゆる付き合いでお金を落としていることに気付きます。

「人付き合いのためにお金を使わない」と心に誓ったとしても 、それはそれで孤立してしまうという危険性を孕んでいます。

じゃあどうすれば…?ってところなんですが、僕は「これからも友好な関係を築きたい人」かどうかで判断し、それ以外の人との付き合いは極力減らしていければ良いかなと思ってます。


娯楽にお金をかけない

現代は特に娯楽の供給が過剰な気がします。

一昔前までは、映画を見たい場合はDVDを買うか借りるかする必要がありましたが、今は動画配信サービスであるNetflixやAmazonPrimeVideoやdアニメストア、Hulu等で月額440円〜1,500円程度でいろんな作品が見放題になり、コスパも利便性も格段に良くなりました。

ゲームもサブスク形式のものが増えてきてますし、漫画だってアプリで無料で読めてしまいます。

そう考えると、今はお金を使わないでも楽しめる娯楽が溢れてますよね。

動画配信サービスは1つに絞っても十分に面白い作品がありますし、ゲームもソシャゲで課金せずにサブスクのサービスを利用するか中古で買うようにしたり、漫画もアプリで無料で読めます。

その時々で話題になっている最新コンテンツはみんなと楽しみを共有できるという大きい利点があるので、すべて我慢するのは難しいかもしれませんが、コミュニティを意識しないで良いコンテンツであれば、極力お金を使わないで楽しむというスタンスがお金を貯める上で重要だと思います。


夢中になれるもの(お金のかからないもの)に没頭する

仕事して定時で上がってYoutubeやTwitterをぼーっと眺めたり、ゲームしたりアニメ見たり、週末は飲み屋で朝まで飲んで翌日二日酔いで丸一日潰すみたいな生活を、もうずっと続けてました。

平日も休日もとにかく暇だったんですよね。

暇になると「なんか面白いことないかな」と、お金を使うことばかり考えてました。

ゲーム買ったり漫画買ったりお酒飲んだり。

そんな生活を続けてお金が全然貯まらず「このままではダメだ…」と思い、日々の行いを改善するためにこのブログに記録することにしました。

今は節約してお金を貯めつつブログと副業(個人開発)を進めているんですが、これが効果抜群でした。

仕事を終えたらすぐにブログ記事を考えたり、個人開発のための勉強したり情報収集したりと、作業に没頭することで何か面白いものを探す必要がなくなりました。

暇を感じること無く没頭できるものであれば、筋トレでも料理でもゲーム、アニメ、漫画でもなんでも良いと思います。

ただしお金を使わないという観点からは、お金が掛かる趣味なんかは当然NGです。


人付き合いを減らす

これが最も効果が高いと思ってます。

どうしても人と接していると、付き合いで色々とお金も時間も使ってしまいがちです。

こう書くと「なんて薄情なヤツだ…」と思われるかもしれませんが(汗)

ですが事実ですよね。

もちろん自分の大切な人と過ごす時間は大事にするべきですが、会社内の人付き合いも必要最低限で良いはずですし、赤の他人にお金も時間も使うには人生短すぎるかなと…。

家族とごく一部の友人や恋人と笑って過ごせればもう良いかなあ…と思ってます。


まとめ

本当に欲しいものだけを買うようにする
周りに流されず、自分が欲しいと思えたものだけにお金を使う。

・娯楽にお金をかけない
コスパの良いコンテンツを楽しむことを心がける。

・夢中になれるもの(お金のかからないもの)に没頭する
暇になるとお金を使う事を考えてしまうため、夢中になれるものに没頭する。

・人付き合いを減らす
自分の大切な人、好きな人以外の付き合いにお金や時間をかけない。

他にも優先度の低いものはコスパが良い方を選ぶ(買う)という考え方もとても大事だと思います。

これは過去の記事のお金持ちの特徴の方に詳しく書いてますので、興味ある方はぜひ読んでみてください。

札束

お金持ちの特徴

僕の身近にお金持ち(というより小金持ち?)の人が結構居るので、その人達の特徴を紹介したいと思います。

年商1億超え!月収○,000万円!とかではなく、年収2,000万円以上の人や世帯年収2,000万円以上の人を対象としているのであしからず…。
※十分お金持ちですよね…?

大半は普通のサラリーマンの方たちで、主に節約や投資などでコツコツ貯めている方たちなのですが、中には働いていない人(スーパーアフィリエイターみたいな人)の話もしようと思うので、興味ある方はぜひ読んで頂ければと思います。


物を買わない

お金を使わない究極なんですが、やっぱり物を全然買わないんですよね。

僕が印象に残っているのは、世帯年収2,000万円を超えてるサラリーマンの方と居酒屋で飲んでいた時です。

「今持っているカメラが古いから新しいの買いたいんだよね」と話していたので、僕は「買えばいいじゃないですか(お金持ってるんだから…)」と言ったんです。

そしたら「いやあ…でもまだ使えるし、もったいないから…」と。

そんなにお金持ってるのに!?と思ったんですが、どうやらお金持ちの人たちはみんなこの思考でした。

いわゆるFIREを達成していて、主にアフィリエイト広告収入で生計を立てている年収2,000万超えているスーパーアフィリエイターの人も同じ思考で、その人の家にはコップが無くて、代わりにセブンイレブンのアイスコーヒー用プラスチックのカップをコップとして使ってるみたいです。

普通買わない…?と思うモノでも、彼らは買いません。

僕は欲しいものはすぐに買ってしまう質なので、当時はこれらの出来事に衝撃を受けました。

共通して買ったところで結果がほとんど変わらないモノに関してはお金を掛けないというスタンスなのだと思います。

カメラも撮影できれば良いし、コップも別に飲めれば良いのでプラスチックカップでも良いということなのでしょう。


服や物にお金をかけない

これも共通してるんですが、みんなブランド物に興味が無かったりします。

服はユニクロを好んで着ている方が多く、高価な時計をしていたりアクセサリーを身に着けたりしている人は居ません。

おそらくこれも前述した結果がほとんど変わらないもので、服なんて着れればいいじゃんみたいな思考なのかなと思います。

買う物もコスパの良いものを選んでいて、居酒屋も高いところではなくなるべく安いところにしたり、食べ物もクーポンを活用したり等、なるべくお金をかけないことを心がけているようにしています。


試供品やクーポンなどを活用する

貰い物の試供品だったりクーポンだったり、株主優待券などをきちんと使っている人が多い印象です。

「優待券のジムの無料入館○日までだから行かないと」とか「50円引きのクーポンあるから今日はてんやにした」といったように、彼らはお得に使えるものを無駄なく有効活用していました。

スーパーで買うお寿司についてくる醤油とかも冷蔵庫に保存して使っていたり。

使えるものは使うというところも共通していますね。


自分にとって優先度の高いモノだけにお金をかける

ここまで読んでいると「なんかつまらなさそうな人生だな…」と思われる方もいるかもしれませんが、決してそんなことはなく、すべてのものに対してお金を使わないようにしているわけではありません。

自分にとって優先度の低いモノは極力コストを抑えていて、優先度の高いモノに対してお金を使っています。

家を買ったりタワマンに住んでいる人もいれば、風俗にお金をかけている人も居たりと、対象となるモノこそ違いますが、自分にとって優先度の高いモノだけにお金を使っています。

「物を買わない、服や物にお金をかけないって言ったじゃん…」と矛盾に思うかもしれませんが、彼らを見ていると分かりますが決して矛盾しておらず、自分にとってどうでもいいものに対してはお金をかけないスタンスなんだと思います。

例えばスーパーで買い物をしていて、プライベートブランドの安い醤油よりちょっと高いキッコーマンの醤油が欲しくなりませんか?

コーヒーもコンビニのコーヒー買うよりスタバで買いたくなりませんか?

彼らを見ていると、こういった細かいところの買い物は必ずコスパの良い方を選択していました。


お金持ちになる具体的な方法

僕もお金持ちになりたくてあらゆる本や動画、ブログ記事などを探しました。

ここではお金持ちになる具体的な方法を発信している方について紹介したいと思います。

両学長

Youtubeで有名な方なのでご存知の方も多いと思います。

この方は10代の頃から年間1億以上稼いだり、その後も様々な事業を展開されていて20代でFIREを達成されているという凄い経歴の持ち主です。

元々友人知人向けにお金の知識を発信するために始めたYoutubeだったようですが、有益な動画故に瞬く間に拡散され、気づけばインフルエンサーの仲間入りを果たしています。

資産家としても有名な厚切りジェイソンさんやYoutube大学でブレイクしている中田敦彦さんとも対談されています。

こちらの動画はお金の増やし方についての具体的な方法を紹介しています。

お金を増やすには節約をすること。
節約をするには家や保険、車などの大きい支出を減らすことが大切であることをお話されています。

2022年のオリコン年間ランキングでビジネス書第1位を取ったベストセラー「お金の大学」 も出版されています。

他にもお金持ちになるための有名な書籍に「金持ち父さん貧乏父さん」や「バビロン大富豪の教え」などがあるのですが、この2つは資産を増やす事が主になっているため、少しハードルが高い印象です。

「お金の大学」だけでも充分かなと思いますが、気になったらこちらも読んでみてください。


まとめ

  • 物を買わない
  • 服や物にお金をかけない
  • 試供品やクーポンなどを活用する
  • 自分にとって優先度の高いモノだけにお金をかける

当たり前っちゃ当たり前のことばかりですが…これらを意識している人は少ないように思います。

最近は僕もこれらを実践してるので、コツコツとお金が貯まってる気がします(まだ節約して日が浅いので効果の程は分からないですが…)

最後まで読んで頂きありがとうございました。

少しでも参考になりましたら幸いです。

お金

メルカリで売るコツ

今までメルカリを利用してきて、高く売れるコツみたいなのが分かってきたのでまとめてみたいと思います。

本人確認は確実に済ませておく

欲しい商品をいざ購入しようとしたら[本人確認前]となっているとメルカリを普段使ったことない人は「この人から買って大丈夫かな…」と不安になります。

※実際に僕は不安になって、どんなトラブルが想定されるかを一生懸命ググりました。

「メルカリで購入したものが動作しなかった」「箱しか送られてこなかった」「実物とは違うモノが届いた」などの話も過去にはよく聞いていたので、購入者としては不安材料を極力無くしたいはずなので、本人確認は確実にした方が良いと思います。

本人確認しないデメリットについては公式からの引用で下記になります。

・売上金(残高)の振込申請期限がなくなる
・売上金(残高)でお買い物ができる(ポイントを購入する必要がなくなる)
・お支払い用銀行口座の登録・チャージ(入金)の利用ができるようになる

https://www.mercari.com/jp/help_center/article/593/

仮に振込申請期限が過ぎたらどうなるのか調べてみたら、自動的に登録口座に振り込まれるそうです。

わざわざ本人確認をしない理由は無いので、済ませておくようにした方が良いですね。


商品画像をいっぱい撮る

購入する際に商品の状態が分かる写真はいっぱいあった方が助かります。

同一商品で金額も安いのに、写真が1枚だけの出品はお気に入りの数が極端に少なかったりするので、これも確実にやっていきたいところです。

色々な角度から撮ったり、部品ごとに撮ったりして5枚以上は載せるようにしていました。


親しまれている略称をタイトルにする

PS4本体を売りに出した時に、相場より安めに設定しているのにお気に入りの数が全然付かないなあ…と不信に思い、試しに商品検索で自分の商品を探したんですが出てこなかったんですよね…。

「なんで!?」と思ってよくよく出品している情報を確認したら、タイトルが「PlayStation4」となっていて、自分が商品を検索する際は「PS4」で検索していることに気付きました。

なるほど!と自分で目から鱗が落ちました…。

じゃあなんでPlayStation4というタイトルで出品したかというと、メルカリの場合商品写真を撮った時にAIによって自動で「撮影した商品はこちらですか?」という具合に商品候補を出してくれます。

それをタップすると、タイトルと説明文をテンプレで埋めてくれるという超便利な機能があるんですが、それを利用したことによる悲劇でした。

この機能自体は便利なので使っていきたいところですが、慣れ親しまれている略称がタイトルか説明文に入っているかどうか内容はちゃんと確認した方が良いですね。


タグを活用する

古いMac book Proを売った時のことなんですが、2時間くらい経っても売れなかったので試しに説明文に#appleのタグを追加したところ、すぐさまコメントが来て売れました。

購入者の情報を見ると、過去にapple製品を売りまくってる人(おそらくせどりなのかな?)だったので、apple製品を中心にせどりをしている人が#appleタグで検索していて引っかかった結果だと思います。

例えばゲームの場合なら下記のようにすると良さそうですね。

  • PS4 → #SONY
  • Nintendo Switch → #Nintendo #任天堂
  • XBox → #Microsoft

値段交渉は応じない ※注意点あり

出品時に相場より高く設定しているのであれば交渉しても良いですが、そもそも見てもらえる機会が減ってしまうので相場か相場よりほんの少しだけ安く設定することがほとんどだと思います。

実際僕も相場よりほんの少しだけ安く設定して出品しましたが、体感でお気に入りが3つほど付けば金額はそのままでも売れることがほとんどでした。

実は今執筆しているMac bookを手放そうとして一度は相場よりほんの少しだけ安くして出品したのですが、コメントで「○万円でいかがでしょうか?」と5万円も安く値段交渉されたことがあります(当然相場より全然安いので格安の値段提示です)

「値段交渉は受け付けません」と説明文に書いているにも関わらず、コメントではガンガン値段交渉されます。

僕は値段交渉全部無視してました。

めんどいので…。

話を戻すと、値段交渉を受けると相場より全然安い金額で売ってしまうリスクがあるので気をつけてください。

そもそもですが、知り合いでもなんでも無い人にどうして安く売らにゃならんのだ!って思いませんか?

こっちだって高く売りてえんだ!!ざけんな!ってなりますよね?

値段交渉は受けるだけ時間の無駄だと思うので、受けない方が良いという結論に至りました。

注意点というのは、仮にコメントで来た値段交渉を無視して、その後も売れずに仕方なく金額を下げた際に値段交渉してきた人に買われた場合「評価を下げられる」リスクがあるかもしれません。

なので、売れ行きが怪しくなったら「申し訳ないのですが値段交渉はちょっとできません…」と丁寧に断るのが良いと思います。


まとめ

  • 本人確認を済ませる
  • 商品画像をいっぱい載せる
  • 親しまれている略称をタイトルにする
  • タグを活用する
  • 値段交渉は基本応じなくてOK

評価も大事なので、当然ですが丁寧な取引を心がけるのも大事です。

出回っていない希少なモノは定価より高く売れるので、そういう商品を探して売るとせどりとしてお小遣い稼ぎになるかもしれません。

※実際に断捨離でゲーム機を売った際に、PS VITA TVが16,800円(定価9,954円)、Xbox Series Sが38,800円(定価32,978円)で売れました。

※転売を推奨しているわけではないのでご注意を…。

小ネタですが、ダンボールはなるべくコンパクトにすると配送料が抑えられるので、動画などを見てダンボールのサイズ調整をするのが良いと思います。

僕はこの動画でサイズ調整してました。参考までに。

ダンボールの高さ調整
ダンボールの幅調整

※ちなみにPS4が入るちょうど良い大きさのダンボールが無くて幅も高さもサイズ調整する羽目になって物凄く大変でした…。

僕は使わなかったのですが、ダンボールサイズ調整用カッターなる便利なものがあるみたいですね。

ダイソーで売られているそうなので、これがあると動画のような作業がスムーズに行えると思います。

商品を紹介されている記事があったのでリンクを貼っておきます。

http://northfox.cocolog-nifty.com/stationery/2021/12/post-74b622.html

お店で買うより安く、お店で売るより高く売れるメルカリは利用者側としては大変ありがたいのでぜひ活用してみてください。