意識

  • 今日という一日を楽しむ

やりたいこと

  • 新しい機能があるのでドメイン部分を DDD で改めて設計する

  • シンプルな機能の組み合わせ
  • UNIX のパイプをうまく UI に落とし込めないか
  • ユーザー入力の検索クエリ → SQLクエリ

コマンド

  • シンタックスハイライトする
  • 理想を言えば補完もしたい
  • 表記揺れにも対応する
    • snare と入力されたら snrsn もヒットする
  • スニペットもほしい

コマンド

  • foo bar
    • foo と bar の両方を含む
    • それぞれのキーワードは部分一致する
      • foofoobar もヒット
  • "foo bar"
    • foo bar に完全一致
  • foo or bar
    • foo または bar のいずれかを含む
    • 複数ワードの場合は foo or bar or baz
  • -
    • -foo で foo を除外
  • -fav
    • お気に入りを除外
  • sort: or s:
    • sort:created or sort:c で作成日時でソート
    • sort:updated or sort:u で更新日時でソート
    • sort:name で名前順でソート
    • 昇順がデフォルトで降順にしたい場合 sort:-name とか?
    • ランダマイズ時はソートオプションは無視される
  • duration or d
    • duration>1.2 で 1.2 秒より長いもの
  • bpm or b
    • bpm:120 で 120 BPM のもの
    • bpm:120-130 で 120 から 130 BPM のもの
    • bpm>120 で 120 BPM より速いもの
    • bpm<120 で 120 BPM より遅いもの
  • 要検討
    • in:name
      • 名前から検索
      • デフォルトではディレクトリ名も検索対象
    • in:fav
      • お気に入りから検索

  • snare techno or house s:az
    • hihat を含み、techno または house を含むものを名前順でソート
  • kick stomp -fav
    • kickstomp を含むものをお気に入りを除いて検索
  • fx noise white or pink or brown
    • fx* noise* を必ず含み、white または pink または brown を含むもの
  • kick or snare | transient or attack
    • kick または snare で検索した後、transient または attack で検索

学び

  • 最善の選択をするのではなく、選択を最善にする
    • 「誰にも何にも期待しない」より
  • 瞬間瞬間に選択がある
    • 「なにをするか」という行動的な選択も、「何を考えるか」「何にフォーカスするか」という思考的な選択も
  • 今この瞬間に何を選択するのか、それを最善にしていくということ

  • 自分の意にそぐわない言動をしてくる人は必ず存在していて
  • そういう人たちからなにか言われたときに、受け入れることもできるし、受け流すこともできる
  • 結局、自分が自分らしくいられるためには、受け流す他に選択肢がない
  • それは自分のためでもあり、自分のサービスを使ってくれている他の人達のためでもある
  • 結局、自分にとっても周りの人にとっても、前向きな考えを採用することが最善だということだ
  • なぜなら、後ろ向きでいるとき、すべてが上手くいかなくなる
  • パフォーマンスが落ち、アイデアは平凡になり、保守的になる

  • ユーザーの声を聞かない、ということではない
  • むしろいいアイデアは積極的に取り入れていきたい
  • しかし、それを判断するのは私であり、私が良いと思わないものは取り入れない
  • もし世の中に存在するすべてのアイデアを一つの機械に詰め込んだとしたら、それは便利な機械ではなく、混沌になるだろう
  • つまり、アイデアの取捨選択が必要であり、私はそれを取り仕切らなければならない

  • 成功しなかったのは選んだ題材が悪かったのではない
  • 題材を選んだあとの選択で間違い続けたのだ
  • つまり、人生とは選択の連続であり、常に良い選択をし続ければ、自ずと成功する
  • 人々は選択に対してルーズであるがゆえに、多くの人は成功していない、ということだ
  • 朝起きてどんな思考を選択するのか
    • 暗いニュースについて考えるのか、明るいニュースについて考えるのか
    • 仕事の面倒くさい部分に目を向けるのか、その仕事によって自分が成長できる部分に目を向けるのか
    • 状況に不満を言うのか、状況を楽しもうとしてみるのか
    • 義務と感じるのか、義務をより前向きに捉えるためにはどうしたらいいのか考える機会があると考えるのか
    • 狭い部屋に文句を言うのか、雨風を防げる壁と屋根があることに感謝するのか
    • 今日という日に怯えるのか、まだ体験していない新しい物事にワクワクするのか
  • 瞬間の選択が積み重なって自分の人生経験になる
  • 思考が変われば行動が変わる
  • それは良い流れのようなものを作り出して物事がうまく進み始める

  • 結果を得ることに躍起になるが、結果を得たとしてもまた次の結果を求める
  • つまりこれはエンドレスなんだ
  • 幸せに生きるコツは、結果を求めることではなく、プロセスを楽しむことにある
  • いまお金がないとしたら、今というお金のない状況を楽しんでみる
  • お金を得てしまったら、お金がないという状況を楽しむことができない
  • 何十億円もお金があったら、時給1000円のバイトなんてやろうと思わない
  • でもバイトにはバイトにしか得られない経験や喜びがある
  • 何十億もっていなければできない経験ももちろんあるけど、そちらのほうが優れている、というわけではない
  • 結局それはただ「違う」ということ以上の何者でもないんだ
  • 人間はバイトよりも何百万もする豪華クルーズツアーのほうが良いと考えるが、それはただ違うだけ
  • バイトを悪いと考えるから悪い側面が見えているだけで、バイトにも良い側面がたくさんある
  • クルーズにも悪い側面がたくさん存在するんだ
  • それはどこにフォーカスを向けるか、ということだ
  • つまり、あるものごとを悪いと考えいることに気がついたら、それは「これの良い面はないか」と探すチャンスだ
  • そして探してみると、良い側面は大抵の場合は簡単に見つかる
  • 見つけられないとしたら、それは視野が狭いか、思い込みによって見えなくなっている
  • それもまた、新しいものの見方を探すきっかけであり素晴らしい機会だ

  • 自分が想像している以上に、狭い視野の中で生きている、ということを自覚しなければならない
  • 瞬間の思考の中で、ネガティブなものの見方をしていると気がついたら、立ち止まって、「別の見方はないか?」と問うてみること
  • 落ち着いて、広い視野で考えるとき、大抵の場合は見つけることができる
  • 見つからないとしても「ふーん、面白いじゃん」と、ゲームの見たことのない新しい敵を攻略するように捉えることもできる
  • そうやって毎日、あたらいい問題や新しいものの見方を楽しむことだ
    • 子供の頃、そうであったように
  • 仕事も、毎日状況が変わり、毎日新しい問題が出てくる
  • その都度、より良い物の見方を実践してみる
  • より良い物の味方をさがすことは、ストレスを貯めないだけではなく、継続することができるし、思考の明晰さを保つこともできる
  • より良いアイデアが出やすくなるし、問題解決のスピードも早くなる
  • 軽やかで流れを感じられる
  • そういう場所に人は惹かれる
  • 重たい雰囲気ではなく軽やかな雰囲気の場所の人は惹かれるんだ
  • 人も自然に集まり、物事もスムーズに動き始まる
  • 全ては、自分の思考から始まっている、ということだ
  • 今この瞬間に何を選択するのか
  • その小さな選択の連続が、大きく見ると良い結果につながる、ということだ

  • 結果ではなく、プロセスを楽しむこと
  • この瞬間の状況や環境の良い側面を探してみること
  • うまく行ってなかったとしても、それも一つの楽しめる状況である、ということ
  • なぜなら、すべてが思い通りであることを望んでいないから
  • もし人生にチートが使えて、お金も環境も成功もすべてを簡単に手に入れられたら、人生はとてもつまらないものになる
  • つまり、結果を求めているのではなく、お金や成功を手に入れるまでのプロセスが楽しいのだ、ということだ
  • だから、うまく行っていない状況というのは、本来とてもエキサイティングなものなんだ
  • 打開するためには変化が必要で、その変化の過程で成長できるし、成長しているという実感こそが楽しみなんだ

DDD

  • Domain-Driven-Design Quickly
  • ソフトウェアは現実世界のある問題を解決するもの、という理解をすること private readonly audioFileId: AudioFileId;
    • 複雑な業務を自動化したり、不便なものを使いやすくしたり
  • その業務に携わっている人が、一番その業務について理解している
    • ドメインとは業務領域のような理解?
  • あるドメインの問題を解決するためには、そのドメインの知識について理解し、ソフトウェアに反映する必要がある
    • そうしないと、ソフトウェアの導入により、問題がより複雑になったり、ワークフローに合わなかったり、問題の解決にならない
  • ドメインの専門家とは、その業務について理解が深い人
    • つまり、それはカフェのシステムであればカフェの店員
    • コーヒーのオプションについてや注文の流れ、業務上のルールや決まりなど、その業務について理解が深い人
  • ドメインの専門家が持つ知識を、ソフトウェアが解決する問題に必要な範囲でモデリングする必要がある
  • また、モデリングは実際に実装可能な形で表現されなければならない

  • 提供者がシステムであるようなソフトウェアを書く場合、システム視点でユーザーとのやり取りを考えると考えやすい
    • システム「お客様からサンプル検索の注文を受け取ります。注文にはキーワードと条件とフィルタリングと並び順が含まれます。基本的にはキーワードに部分的に一致するサンプルをお渡ししますが、or などの条件が含まれている場合は条件に合致したサンプルをお渡しします」