ヌッ

適当

恋活実践入門 -悲しみの無い世界-

はじめに

長い間活動(婚活、恋活の隠語)を続けていて、今年の初めごろになんとか実を結ぶことができた。
現在は活動を一切忘れて落ち着いた生活を送れるようになっている。
活動の話はよく友達や会社の人に色々話してるのだけどここに得た知見をまとめたい。

結論

恋活に一番重要なのは「運」、次点で「自己研鑽」です。以上。

「運」

これをすれば確実に好かれる、というのは無い

身も蓋も無いが結局のとこ運ゲーだと思う。
身の回りを見ると特に苦労せず彼女ができる人はたくさんいるし、なんで俺だけ……という気持ちになる。
しかし世の中は元々不平等だ。
ちまたに溢れる恋愛指南とかでも要は「数撃ちゃ当たる」というアドバイスが多い。
そもそも相手は生きた人間なので考え方は多種多様だし、こういうロジックで確実にうまく行く、とは言えない。
というかそれでやっていこうとするのは相手にも失礼である。

運ゲーならどうしようもない?

じゃあどうすりゃいいんだ、というと「ダイスをたくさんふる」しかない。
「数撃ちゃ当たる」と大して変わらないといえばそうなのだが、もう少し大きいスケールの話をしたい。
この辺は以前書評を書いた「仕事は楽しいかね?」という本にも通ずる話である。

woody-kawagoe.hatenadiary.jp

数撃つ、というと例えばナンパをするとか婚活アプリで会うとかそういう「攻め」の手法の話になるが、僕としては何らかのコミュニティに属するとかもう少し「気楽にできること」「小規模の試行」も含む。
というのも活動自体は非常に辛いもので、攻めたのに相手からは見向きもされないなど、ダメージがかなり大きい。
例えばLINE交換したはいいけど音信不通になるとかいうパターンが僕は非常に多かった。
ささいなことといえばそれまでだが、見向きもされないというのはある意味自分の全人格を否定されるようなダメージがある。
しかもそれが大量にある。これを耐えるというのは本当に辛い。こうすると焦燥感もあってまともなコミュニケーションがとれなくなるという問題もある。

そもそも活動なんてしなくて良い

今どき独り身の人なんて珍しくもなく、一人を楽しんでる人も多い。
わざわざ上記のようなリスクを負ってまでやるような所業ではない。
しかも「ダイスをたくさんふる」をしたところで当たりを引ける保証も無い。
なので僕としては「何もしない」という選択肢もアリだと思う。
「何もしない」でも彼女ができる可能性はゼロではないし、一生彼女ができなくても、まぁそれでいいやという人は「何もしない」方が間違いなく幸せなはずだ。

でもやっぱり彼女がほしい

それでも僕は「パートナーと一緒に過ごしたい」という欲があったし、
「何もしないで文句言うような一番ダサい真似はしたくない」という気持ちがあったのでダラダラ活動は続けていた。
この「ダラダラ」というのが重要だと思っていて、「なるべくダメージを減らしつつ活動を続ける」というのが確率を上げる方法の一つだと思う。
ダメージが少ない活動としてはコミュニティに所属するというのがある。

コミュニティはたくさんある

活動をしてないと知らない人も多いのだが世の中にはたくさんコミュニティがある。
ここでいうコミュニティというのは「定期的に飲んだり遊んだりする集団」を示す。
大抵婚活アプリや婚活イベントをやってると知り合いの別グループとかの飲みに誘ってくる人がいる。
こういうタイプは彼氏が欲しいというよりはコミュニティを広げようとしてるだけの人間である。
コミュニティによって雰囲気や層、危険度は違うのだが、よくあるケースとして「カリスマ的な男性がいて、それを信仰してる女性が人を集めている」というのがある。
これだけだと壺でも買わされるんじゃないかと思うかもしれないが、参加してる感じだとただ新しい人脈を広げたい、そういうパーティイベントをしたいだけのようである。
そのためそういう価値観に迎合しなくても、単純にイベントに参加できる権利を得られるので仲良くするというのは一理ある。
中心人物は明らかに陽属性なわけだがその他多くの参加者は割と普通の人が多かったりする。
よくわからないけど誘われたからとりま来ました、くらいの人。
通常の婚活アプリ、イベントに参加するような気合いの入ってる相手ではなく、もうちょっと自然体なので気楽なはず。
それでいてこういうイベントは会費3000円前後とかで普通の婚活イベント(一回6000円とか)と比べると安価である。
はたまたやばいコミュニティだったとか反りが合わないと思ったらLINEブロックしてサヨナラするだけなので。
またこういうコミュニティに参加してるとさらに別のコミュニティに誘われることがある。
そちらのほうがもう少し価値観が近い人がいたりするケースもあるので鞍替えするのもアリである。
こういうコミュニティを渡り歩いたのが現在彼女ができた一因でもある。

こういう話をすると「そんな陽キャイベントいけねーよ」「パリピがよ」とか言われたりもするのだが、ダメージを抑えて活動するなら僕にはこれが一番良かったと思っている。
実際1回足を踏み入れて逃げ帰ってきたケースも多々あるので万人に進められるものでも無い。

ドMが最強

どの活動でも多かれ少なかれダメージはある。
このダメージに耐えつつ活動を続ける必要があるわけだが、逆にこのダメージを楽しむ、というやり方もある。
例えば「一緒にバーに行こうと言われてついていったら謎のセミナーが始まった笑」とか。
活動してるとこういう話のネタには事欠かない。
あと「こういう苦労してる俺すごいな、カッコいいな」と思うとか。
そういうドM精神があると人は強くなれると思う。

「自己研鑽」

なんとか確率をあげる

散々活動は運ゲーという話をしたが、確率を上げる他の方法として「自己研鑽」がある。
何もせず魅力のある人間になれたら最高だが、そうするのは難しいのでこれも地道にやっていくしかない。

外面をなんとかする

以前ブログにも書いたがオシャレ教室に通っていた。
どういうことを習ったかは以下記事を参照されたし。

woody-kawagoe.hatenadiary.jp

習ったことをちゃんとやってるか、というとぶっちゃけできてない。(ダイエットとかスキンケアとか)
とはいえ当時学んだことは割と参考になっているし、基礎、最低限の知識は身についたという自負がある。
何より自分で服を選んで買うこと自体が恐怖だったのがこれで無くなったのがでかい。
教室に行くというのは割と高い買い物だったが、現状の自分に合わせてアドバイスを受けることができるのは良い。
こういう教室に行くことは別にマストではないが、外面を良くしていくことは間違いなくプラスになるはずだ。

「入門 会話」はまだ販売されていない

早くオライリーは「入門 会話」を発売してほしい。まぁ実際にはそれに準じた書籍とかはあるんだろうがそれは置いといて。
会話をうまくやっていく方法は未だにわからず、試行錯誤している。
話す話題が思いつかなかったり、相手の話を聞こうと思っても喋ってくれなかったり、文化が違いすぎて話にならなかったり。
そしてLINEは続かず音信不通になる。
パーティーイベントに参加し続けたおかげで雑に話しかける度胸は身についたのだが、ファーストコンタクト後の会話が難しい。
結局のところ、会話に慣れるには色んな人と話して経験を積むしかないというつまらないオチである。

ただ最近個人的に気にしてるところでいうとこんなところか。

  • 聞くことに徹する、ということをしない。会話が無になったらとりあえず自分の話をしてみる。相手がそれに合わせて話したらそれを聞く。
  • 「雑」談なので思いっきり違う話を雑にしちゃう。会話が煮詰まってきたら全然違う話に変えちゃって雰囲気を変える。
  • 複数人の場合はあんまり話してない人に話をふってみる。本当は喋りたいのに会話に混ざれない場合もあるため。話の内容が多様になるので面白くなることもある。
  • LINEを無理に続けようとしない。日を改めて雑に話をふってみる。

この辺は会話に関する書籍を読んだり、実践を経て見出したtipsである。
そういう意味でもinput, outputを繰り返すのが自己研鑽になる。別にやってもうまくいかないかもしれないし、確率を上げる一因になる可能性もある。

おわりに

というところで恋活に一番重要なのは「運」、次点で「自己研鑽」という話でした。
あとは何事も無理せずダラダラやる、もしくは何もしないのが重要です。
令和になってこんな辛いを思いをする必要は無いのです。
ではまた。

www.youtube.com

にじさんじの話がしたい 最強雀士決定戦

2020/4/18の夜、にじさんじの麻雀大会の決勝戦があった。

youtu.be

こんな最後まで劇的な麻雀ある!?
予選から決勝に至るまで見どころだらけすごい大会であった……。

僕的にはグウェルが一番注目しているライバーだった。
ほんの1ヶ月前まで麻雀初心者だったが勉強、練習配信を積み重ねていた。
もっとも異様に配牌が良かったのもあるが、大まかな点数計算が出来るようになって明らかに上手くなっていることがわかる。
というか見ている限り基本的に「固い」打ち方をしているし性格に出ているのだろう。

それと矛盾するようだが自ら炎上しにいこうとするところがある。
本人も「ヒール」といっていたが確かにプロレス的なギミックがあることで面白いことはある。
ただ実際1ヶ月前頃にarkの件で普通に炎上していた。
あんまりこういう謝罪動画は好きではないのでちゃんと見てはないのだが「二度とコラボしないでほしい」など辛辣なコメントが多々あった。
炎上自体は数日で収まってたがV界隈はゲームでちょっと空気読めない行動しただけで何故こんな炎上してしまうんだという気持ちがある。

正直麻雀でも下手したら炎上してしまうのではないかとビビっていた。
実際決勝も終盤まで神配牌で高得点で、このまま終わってしまったら他ライバーの反感を買ってしまうのではないだろうか……?
もっともこればかりは自分ではどうしようもところではあるので、言われたとしたら完全に言いがかりなのだが。
しかし最後最後の逆転劇が起こる。さながらラスボスのグウェルは剣持にまくられ、僅差で2位になったのであった。

試合終了後のインタビューでも舞元啓介が4人それぞれの麻雀に対して「良い麻雀だった!」と褒め称えていた。
さながら感動のラスト。ただこれも実況や司会での盛り上げがあってこそだし、さすが舞元だと思う。
下手したらクソプレイだと叩かれかねない事件も多々あったのにも関わらず、舞元のツッコミでめちゃくちゃ笑ってしまった。
野良猫の回での口上は本当にすごい。
「今、熱いバトルが展開しようとした最中!すべてを終わらせたのは!15分遅刻したにじさんじ二期生!にじさんじが誇るパンドラの箱!野良猫こと文野環だ!最下位!」
ここは何度聞いても笑ってしまう。

ただゲーム上級者ではなく初心者がめちゃくちゃなプレイをするのが許される、というか人気なのがにじさんじのゲーム実況なんだろうと思う。
友人と話すと普通に上手い人のゲーム実況が見たいという人が多い印象なのだが、僕的には下手な人のほうが親近感があって良い。
もちろんにじさんじの中にはゲームが上手い人もいてそれはそれで面白いし解説などもあってそこが絡む良さもあるのだが。
バラエティ番組とかでタレントがわちゃわちゃしているのに近い面白さがあるのだと思う。

今回の麻雀大会を見て自分ももっと麻雀やってみようかなとなったし、麻雀ってこんな面白くなるんだなと思えた良い配信であった。

prime readingで読んでなかった有名な本を読む

学生の頃にamazonのプライム会員に入ってから惰性でずっと入っている。
特典の一つとして一部の本が無料で読めるprime readingというサービスがある。
ぶっちゃけ読める本は割と限られているわけだが、未読で割と有名どこの本もあったので読んでみた。
本記事中の2冊はどちらも人生を良い感じにするためにはどうすれば良いか、という話を
古今東西の成功者、著名人のエピソードを交えてストーリー仕立てで解説している書籍となる。
どちらも平易で読みやすく役に立つ本だと思うのでおすすめである。

仕事は楽しいかね?

とにかく小さなチャレンジを繰り返すことが大事という話をしている。
未来というのは予測不可能なものなので、大きな目標を掲げてそれに向かっていくのは難しい。
小さなチャレンジは経験になるし、運が良ければ利益を得られる。言うほど大きなリスクはなく、何より楽しい。
このような博打であればたくさんやっていった方が最終的には良いポジションにいれる。

色々挑戦してみようみたいな話は割と世間一般で言われてることだし、自分は元々色々手を出す方の人間だと思っているのだが、
この書籍はもっと小規模な賭けをそれこそ毎日やろうという。流れに身を任せる、とも言える。
仕事にしても「とりあえずこのスタイルでしばらく様子見るか」というより「次は試しにこれやってみるか」ぐらいのスタンスに寄せている。
結果としてはこちらの方がより変化を楽しめるし、以前よりスキルが上がったような感覚はある。
ただ長期の目標とかは仕事の都合上建てざるを得ない場合があるので、それはそれで検討したりはしている。

夢をかなえるゾウ

夢をかなえるゾウ

夢をかなえるゾウ

色々なアドバイスをしているが大雑把に言えば周りに感謝しようという話をしている。
これは人もそうだが物や神仏に対しても、である。根拠が無いといえばそれまでだが、
普段から周りに感謝する生活をすることで自然とそのような振る舞いができるようになり自分と他者の関係性が良くなっていく。

この書籍にあったアドバイスを全部実行したわけじゃないが、
著名人の過去のエピソードや引用があると信頼度が高まるし、元々の自分の思想に近いこともあって実践してみたいという気持ちになった。
というところでレストランの店員さんに優しくするとか、友達や会社の人と関わるときちょっと気をつかうとか、
自然に出来るようになってきて習慣づいてきていると思う。

「小さな挑戦を沢山する」「周りに感謝する」はどちらも意識高い、綺麗事に見えるし即効性は無いのだが
ほとんどデメリットが無く長期的に見て効果がありそうな習慣なので続けたいなと思う。

3年目になっちゃった

過去の様子

入社直後の様子(今見るとキツイ)
woody-kawagoe.hatenadiary.jp

1年経過の様子
woody-kawagoe.hatenadiary.jp

現在

新卒入社から2年経過した。
そろそろ新卒だから仕方ないねですまない領域に入ってしまった。(前からそう)
Twitterを見ると近い年代の人々はリードエンジニアとかSREとかなんか超有能感を出していている。(前からそう)
一方その頃俺君は……。

会社では一応3つのプロダクトを扱うチームのメンバーなのだが、実質1つのプロダクトのもろもろ全部をやるリードエンジニアと化しつつある。(ただしあくまでメンバー)
他チームの人々と調整して、設計、実装、テスト、リリース、問い合わせ対応、障害対応とか大体全部やっている。
とはいえ上司のサポートはゼロではないし、外部でアピール出来るような突出したスキルはあるわけでもなく、まんべんなく地味に仕事をしている。
評価は高くなってほしいが責任が重くなるのはイヤ、という気持ちがあるのだが、現実は責任が徐々に重くなっているだけで評価は大して変わってない。
もっとも今考えるとアピール能力があまり無いのと外部への露出が少ないのが原因かなというのはある。

技術のスキルはどうなったか?
というと最近は技術への興味がだいぶ失われていて、課題解決に必要でないものはどうでもいいという価値観になっている。
強いて言えばGCPへの興味はあるが、仕事で必要な部分だけやろうかなという程度。
この辺はキャッチアップして利用するのにそんなに時間がかからなくなってきている。
これ自体は良いことかもしれないが、それだけに軽視するようになってきた。
一方業務外では基本vtuber追ってるかジム行ってるかというところで技術研鑽はほとんど出来てない。
どちらかというとソフトスキル、ビジネススキルに注目が行っている。
別にPMではないのだが一人プロジェクトが増えたことを顧みて、PM関連について学んでいる最中。

仕事関係ないところでいうと大きな変化として彼女が出来た。
これにより精神的な負荷が大分無くなり、婚活にさくリソースを別の所にまわせるようになった。
実際ジム行く頻度が増えてちょっとだけ痩せた。
ただ昨今のコロナの影響でジムがほぼ閉鎖状態になりいけなくなってしまったので家で鍛えるしかない。

今後

書籍「SOFT SKILLS」を見習ってアウトプットを増やしたいなと思っている。
ちょうど技術記事書くぞというときにQiitaがやらかしたのでちょっと控えたが、
結局日本語で技術記事となるとQiitaというのはまだ変わらなそうだししばらくしたら投稿しようかなと思っている。
アウトプットが多くて社交性があると間違いなく有能感が出て評価も上がっていくはずなのだが、
謎プライドがあるのでクソ記事は控えたいし人脈も広げたくない、言うたら面倒なのでうだつの上がらない生活を送っている。

ただ自分や人の仕事を楽にして行きたいという思いはずっと変わっておらず、
そのためにスキルを伸ばしたいという気持ちはあるのでアウトプットや社交はある程度していきたい。

京都オタク五人旅

高専のオタクと5人で旅行に行ってきた。
もとはと言えば「響け!ユーフォニアム」の上映会に呼ばれて見て、
その流れで聖地になっている宇治に行こうという話になったのであった。

10/25

早目に仕事を終えて新幹線に乗る。
普通なら皆一緒に移動、泊まりだろうからまとめて予約するもんだろうと思っていたのだが、
この時点でもう意思がバラバラで「俺は飛行機で行く」「サウナ行きたい」「前乗りする必要ないからいいや」などの自由さであった。
実際行きの新幹線は2人で行って、京都着いてからは別々のところに泊まった。

初めてカプセルホテルに泊まったのだが4kしないくらいの値段で、
でかい風呂、漫画読み放題、朝飯バイキング有り、ホテルスタッフの干渉がないと最高の環境であった。
実質ミニマリストなのでベッドも特に不満無し。
これからは一人旅行ならカプセルホテルにしようと思った。

10/26

昼頃京都駅近くに五人のオタクが集合した。
宇治駅まで移動し、そこからレンタカーで移動。
聖地であるアクトパル宇治、モデルになった高校とかサイゼ、天ヶ瀬ダムなどを見て回った。
(高校は流石に入れないので脇道通るだけ)
こんなシーンあったなぁ、と思い返しつつ、単純に自然崇拝したりダムすげーとか観光していた。

夜はゲストハウスに泊まった。
このタイプの宿泊施設も初めてだった。
本当に家と中にアメニティがあるだけで、スタッフはおらず無人である。
でかい風呂があるので5人で入ったり、お互い腹が出てきていることにビビって、腹囲順に並んで写真撮ったりした。

夜飲みに行って帰ってくるころには疲れ果てていてかなり早く寝たのだが、
途中部屋の外から人の声がして目が覚めてしまった。
ゲストハウスに誰か侵入したのか!?と思ってかなりビビったのだがそのまま寝た。
起きてから分かったのだが、僕のイビキがうるさすぎて部屋の外で寝てたオタクのイビキであった。
本当に申し訳ないと思っている。

10/27

引き続き宇治周辺を観光したり一通り「響け!」の聖地を見終えた。
僕としては森見登美彦の作品(四畳半神話大系とか夜は短し歩けよ乙女とか)が好きなので下鴨神社や鴨川デルタ付近を見て回った。
また近くにたまこまーけっとの舞台になった商店街もあったのでそこも覗いたりした。
今回僕は下調べとかなんにもしていなかった。
「有田と週間プロレス」で有田が「単純に(プロレスを)見るのも面白いけど、背景知識があるとより楽しめる」という話をしていた。
もっと文脈を分かっていればより楽しめたかもしれないと少し後悔しつつ、適当に見に行くだけでも気楽に楽しめたなという安定の怠惰さもあった。

夜は旅館に泊まった。外で飲んでから泊まったのだが、
昔であれば旅館の部屋の中で飲んでダラダラしてただろうに、そういうのは一切無く、
風呂入ったあとはすぐに寝た。
観光中も疲れて喫茶店によることが多くなり、健康状態が話題になったり(腹は前から気にしてはいた)、
無理したところで別に面白くないしなと思って深酒や徹夜も無くなった。
これが年なのであろうか。
こうしたいからこうしてるだけなので良いことではあるはずなのだが、
少しさびしい気もする。

なおこの日もイビキがひどかったらしく証拠動画が撮られていた。
さらには途中で演奏終了(?)してたようで無呼吸症候群の危険性が高くなってきた。
一人暮らしだとイビキの異常に気づけ無いし、友達と旅行に行くのは良いことずくめということである。

10/28

近場で土産を買ったり、神社仏閣を見て回った。
途中、安井金比羅宮によったのだが、なんと悪縁を切ってくれることで有名らしい。
ちょうどここ最近出会い系で人脈大好き人間や副業推す人間ばかりと遭遇して精神崩壊太郎と化していた僕にはうってつけであった。
これで悪縁が切れることを祈る。
その後はまた別行動で一人でブラブラ歩いていたり、また合流してにぼ次郎のラーメンを食ったりしていた。
またチルアウトしたのち都内に戻るのであった。

まとめ

  • 痩せよう
    • 飯はゆっくり食べよう
    • 聖地いきまくれば楽しく運動して痩せれるはず
    • 痩せればイビキ対策になるはず
  • 協調性無いので一人行動楽しい、主体性無いので団体行動楽しい
    • 一人ならカプセルホテル最高
    • 複数人なら一日中温泉旅館でダラダラもあり
    • 次は佐渡とか月岡温泉とか?

「現場で役立つシステム設計の原則」を読んでます(8-10章)

8章 アプリケーション間の連携

アプリ間の連携の方法について、特にREST APIの話が中心に解説している。
URIはリソースと一致させる、ステータスコードやHTTPメソッドが正しく対応しているかなど、
規約に沿うことで分かりやすく利用しやすいAPIとなる。

Web API: The Good Parts

Web API: The Good Parts

またJSONよりもXMLのほうがメタデータを使えるし複雑なデータを再現するならXMLのほうが良いと主張している。
これに関してはあんまり賛同していなくて、そんなメタデータ渡す必要あるのだろうか、
JSONで簡潔に済ませたほうがいいんじゃないかと思った。
これこそアプリによる課題かもしれないが。

またメッセンジャーを利用することで、疎結合な非同期通信を行えるので良しとしている。
具体的なサービス名について明記してなかったが、GCPのPub/Subがこれに相当すると思う。
たしかにアプリ間で直接やりとりするのではなく、Pub/Sub経由を前提とすることで、
疎結合になりアプリ単体のテストがしやすくなる。

複数の小さなサービス間の連携を行う設計、マイクロサービスについても触れている。
このようにサービスを分割して検証しやすくするのはオブジェクト指向の考え方にも沿っている。
ただマイクロサービスだと一部分割したサービスを統合したり移譲したりするのが難しい。
そのため深いドメイン知識が必要とされる。
以下の書籍でも初めは単一のアプリ(=モノリス)から実装し、ドメインについて詳しくなってから徐々に分解していくことを是としている。

マイクロサービスアーキテクチャ

マイクロサービスアーキテクチャ

9章 オブジェクト指向開発プロセス

今までメジャーだったウォーターフォールは、設計、実装、テストを別々の人で分業して行っていた。
一方最近流行りのアジャイルは、このサイクルを1,2週間のスプリントとすることでより速いサービスの改善を試みているが、
実装に寄りがちで設計、テストがないがしろになりがちである。
結局、ドメインに詳しい人間が設計、実装、テストのすべてを担当することでブレ無いドメインモデルが出来る。
また無駄にドキュメントを作ることはせず、コードこそが全ての仕様書となるようにする。

この辺の主張はまぁ分かるのだが超優秀な人間を前提としているような気がした。
実際自分もこれに似たようなことはしているのだが、コードから全てを把握するのはまだまだ出来ないし、
設計も実装もテストもまだまだスキル不足を感じる。
分かりやすいようにドキュメントがほしいと感じるのだが、書いてもすぐに陳腐化するし、そもそも誰も読んでくれないし、
結局頑張ってコード読むしか道は無いような気はしている。
コードを理解するスピードがあれば済むということであればOSSのコードを読み漁るとかすべきなのだろうか。

10章 オブジェクト指向設計の学び方と教え方

「どうすればオブジェクト指向設計を理解出来るのか?」「体で覚えよ!」
以上、という感じの章である。
こう書くと脳筋感があるが、いくつかのルールに乗っとってコードを書くトレーニングをすることで身につく、という話である。
たしかに動物をクラスとして鳴き声がメソッドで〜みたいな例を出されても結局何が嬉しいのか謎である。
ならば実際に実装してみてオブジェクト指向の良さを体験すれば良い。
紹介されているルールは基本的にlintでチェックされるようなものも多いが、例えば「全てのプリミティブ型、文字列型をラップする」というものがある。
手続き型の書き方だと難しいルールだが、このようにオブジェクトを多用することで結果としてオブジェクト指向の書き方になるという寸法である。
またいくつかオススメの書籍についても解説しているが、一番は「エリック・エヴァンスのドメイン駆動設計」のようだ。

ふりかえり

そうだよなー確かになー本当かなーとか色々思うところはあったが、全体的に平易で読みやすい書籍だった。
勝手に初級者向けのDDD本と思って読んでたが(まぁ実際そうだったが)
値オブジェクトとリポジトリ以外のパターンについてはほとんど記述がなかったように思う。
エンティティとか(極力使うなという話?)ファクトリとか(チラッと出てたけど)
そういうパターンとか考えないでひとまずオブジェクト指向に慣れろという話かもしれない。
とはいえ層とかパターンみたいなものをちゃんと理解しない開発についてけない感はあるので、
そろそろ原本を読んで勉強しようかなというところ。
あとは書籍じゃなくて開発するとかコードリーディングするとか実践経験を積むしかなさそうな感じはする。
以上です。


前々回
woody-kawagoe.hatenadiary.jp


前回
woody-kawagoe.hatenadiary.jp

「現場で役立つシステム設計の原則」を読んでます(4-7章)

4章 ドメインモデルの考え方で設計する

まずドメインモデルはデータモデルとは異なりロジックがあると述べている。
よくあるパターンとしてデータはクラスか変数として、ロジックは関数として別々に作ってしまう。
もしくはフレームワークに合わせて適当にクラスを作成するとか。
しかしオブジェクト指向ではデータとロジックはまとめ、オブジェクトとして扱うものである。
これにより業務データとそれに関連する処理を一元化することができ、シンプルな構成になる。

またトップダウンでなくボトムアップの設計を推奨している。
一個一個の部品=ドメインオブジェクトを作り込む。
とはいえどのような部品が必要になるかは知る必要があるので業務フロー図やパッケージ図を用いておおまかな地図を書くことから始まる。
(これだけ見ると結局トップダウンじゃんという感じはするが)
結局のところ全体と部分を行ったり来たりしていくことが大事ということである。

開発を進めることで徐々にドメイン知識が身につくはずである。
そのため徐々にドメインモデルを正確なものに改善していくことができる。
リファクタリング」でもクラスの分離や結合、移譲などの話をしているが、
これもオブジェクトの構成を改善するための手法の一つである。

新装版 リファクタリング―既存のコードを安全に改善する― (OBJECT TECHNOLOGY SERIES)

新装版 リファクタリング―既存のコードを安全に改善する― (OBJECT TECHNOLOGY SERIES)

またドメインに関する語彙とドメインモデル中の変数名や関数名を一致させることでより分かりやすくなる。
ドメイン知識が少ないうちはまずは専門用語を身に着けていくと設計がしやすくなる。

データとロジックを合わせて設計をするというのはまだなれないところだが、
これが出来るとシンプルな実装に出来るかと思うので実践してみようと思う。

5章 アプリケーション機能を組み立てる

アプリケーション層のクラス=サービスクラスは複雑になりがちであるが、業務ロジックはドメイン層に書くべきである。
MVCでもfat controllerを避けるべきみたいな話があるが同様のことだと思う。
(ググったら機関車トーマスに出てくる局長のキャラクターもfat controllerと呼ばれてるらしい)
業務ロジックは出来るだけ細かくし、サービスクラスはその組み合わせを構成する。
プレゼンテーション層では入力を受け、サービスを呼び出して適用し、出力を返すだけで、ここにロジックは置いてはいけない。

またサービスクラスからデータベースの都合を切り離すために記録と参照のみを行うクラスとしてリポジトリを利用する。
具体的なデータベース操作はリポジトリ内に記述することで、サービスクラス内では記録と参照を行っているということだけがわかるようにする。

6章 データベースの設計とドメインオブジェクト

データベース設計では制約を行うことでプログラムの記述を簡単にする。
具体的にはNOT NULL制約, 一意性制約、外部キー制約である。
この辺は「データベース実践入門」にも記載があった。
(この書籍だともっと厳しい正規形についても述べている。)

SQL実践入門──高速でわかりやすいクエリの書き方 (WEB+DB PRESS plus)

SQL実践入門──高速でわかりやすいクエリの書き方 (WEB+DB PRESS plus)

特に一意性制約は重視したい。テーブル内のカラムでどれが一意になる組み合わせを考え、
それを複合キーとして設定することで参照が楽になる。
個人的に最近はNoSQL(datastore)を利用する機会が多い。
そのため外部キーを利用してJOINでつなげることが少なく、使用場面を考慮したテーブル設計になっていることが多い。
それでもNOT NULL制約、一意性制約に関してはNoSQLのテーブル設計にも役立つ。

またオブジェクトとテーブルの設計は異なる点に注意すべきである。
オブジェクトはロジックを含むがテーブルはデータのみを管理する。
フレームワークによってはテーブル設計とオブジェクトが一致するような命名規則を強いるものがあるが、
このようなフレームワークは避けるべきとしている。
MVCだとmodelがリポジトリドメイン層となってしまっている。
「現場で役立つシステム設計の原則」だとJavaのSpring bootがドメイン駆動を再現しやすいとして推奨している。
僕としては制約の少ないシンプルなフレームワークを利用して必要な部分だけ利用すべきかなと思っている。

7章 画面とドメインオブジェクトの設計を連動させる

UI中に業務ロジックをおくべきでない。DDD本でもこのようなUIは「利口なUI」としてアンチパターンとしている。
また複雑な画面になってしまう場合は分離すべきである。
たとえばユーザー登録画面でも1画面にすべての項目を入力するのではなく、
いくつかのフローに分離した画面のほうが開発しやすく、ユーザ側としても使いやすい。
またユーザーの関心事に注目して設計すれば画面の内容とドメインオブジェクトが連動してくるはず。
それから画面の設計には近接、整列、対比、反復を重視すべきとしている。
これはノンデザイナーズ・デザインブックに書いてある話である。

ノンデザイナーズ・デザインブック [第4版]

ノンデザイナーズ・デザインブック [第4版]

ふりかえり

今まで読んできた本とのつながりが見えてきたのが良かった。
特にDB設計に関して学んできたことは変わってないなと思う。
一方でデータと業務ロジックをオブジェクトとしてまとめるということはまだ出来てないなと感じる。
また今自分が開発に携わっているシステムが、どうして今のような構成なのか、
どうしてこのようにオブジェクトを分けて設計しているのかなど、設計の意図を把握しやすくなったような気がする。

前回
woody-kawagoe.hatenadiary.jp