ゆずめも

メモ的なブログです。主に勉強した事について書いてます。

スタディサプリの体験をやってみた

ドラゴン桜でも話題のスタディサプリが14日間無料でできるらしいのでやってみてる話をしたら、数人から感想を求められたので書く*1

studysapuri.jp

ちなみにpc等から登録すると14日間ですがアプリからやると7日間になるっぽいです https://help.studysapuri.jp/InfoFaqCustomer/s/article/000001613

良かった所

  • どこでも見れる
  • 契約すると小4から高3の受験まで見れる
    • レベル感は人それぞれなので好きな所からできるのはよかった
  • 動画をダウンロードしてオフラインで見れる
  • 中1の英語と中1数学しか見てないが説明がわかりやすい
    • 英語を勉強しようと思ったのに数学が面白そうでついつい見てしまった
  • 色んな教科を学年またいで勉強できるのに月2000円前後なので安い気がする*2
  • 一本一本の動画が短め

悪かった点と改善してほしい所

  • 学年と教科を選ぶと教科書の選択画面が出る
    • 現役世代だと問題ないがおっさんには教科書とか無いんだけどどうするんだとなった
    • 「共通版」とかいうの使ったら自分が見てる範囲だと困らなかった
  • そもそも自分がどこのレベルなのかわからん
    • 大人が学び直すにあたっては自分がどこで躓いてるかを調べる所からやる必要があるのでレベルテストみたいなのほしい
    • ただ現役世代には必要ないんだよな。。
  • ダウンロードが面倒
    • メリットである所のダウンロード機能が自分がやり方を知らないだけなのか死ぬ程面倒
    • 授業を開いた授業ページからしかダウンロードできなさげ
      • 要するにここからここまで全部ダウンロードしておいて電車で見ようみたいな事をするUIがない
      • なので1つの授業ダウンロードするのに4,5回タップする必要がある
    • 最終的に継続する予定なのであるなら教えてほしい
  • 動画が再生されない時がある?
    • 契約当初に調子が悪かったのかダウンロード済ですら再生されない時があった
      • ただ気づいたら普通に再生できるようになってたのでたまたまか?
      • 途中でahamoに変えてしまって回線がリッチになったのでちゃんと検証できてない

無料期間での解約について

なんとなく一応解約手続きもやってみておくかと思ってやってみたけど、ちょっと分かりづらかった。 たぶんこれで解約できてるとは思う状態にはしたので、ちょっと間開けてから課金して無料期間で解約できてることを確認しようと思ってる。

まとめ

社会人大体仕事を理由に、契約するだけでやらない問題があると思ってて、生活リズムにいかに組み込むかが大事だよな〜とは思いつつ3日に1回くらい見れない日があった。

性格的にお金払い始めたら、もうちょっとちゃんと目標設定してやると思うので飽きてやらなくなるまでは続けて見ようと思う。

それにしても使ってみてこれ子どもの頃の自分に届けてやりたいよってすごい思ったので、若者がとても羨ましい。

*1:大人のEnglishではないやつです

*2:年払いと月払いで変わります

ドメイン駆動設計入門を読みました

会社の本棚に「ドメイン駆動設計入門 ボトムアップでわかる!ドメイン駆動設計の基本」があったので借りてきて読んだ。

以前「現場で役立つシステム設計の原則」を読んでいたので共通する部分が復習にもなって結構サクサクと読めた。

前者はサンプルコードがc#で書かれているので個人的には後者のサンプルの方がJavaで書かれている分わかりやすかったが、そこまで気にするほどでもないのでDDDの入門として人に勧めたい。

ちょっと興味深かったのが10章の整合性の所で、DBのユニーク成約を使うと一意であるという制約がドメインの外(つまりコード外)で実現されてしまっていて、ドメインの処理として表現されていないし、永続化に使用するミドルウェアを変更した時にユニーク制約が使用できないものだと、実現できていないという話。

自分は何も考えずにDBのユニーク制約を使用していたので、この辺はサービスの特性とかを考えて実現しないといけないなと思った。*1

余談

タイトルと全く関係ない話なんだけど

自分は最近週に1度だけ出社するようにしていて、その時に会社の本棚からたまに本を借りて帰ってるんだけど、コロナでほとんど出社しなくなって会社の本棚というか書籍って今どういう形で利用されているんだろうか?

一度社員が見れる所に仮想的な本棚*2を作って、誰がいつ借りたかをslackとか何かしらの手段で管理するようにすればクリックポストとかで借りたい人に送り、読み終わったら会社に送り返してもらうとかするとそんなにコストかからず会社の本が見れるのではという事を考えたが、実際にやろうと思うとご時世的に会社に届く度に除菌したりする必要があるんだろうか?と思い始めたあたりで面倒くさくなって自分の中に閉まってしまった。

clickpost.jp

もしいいアイデアだったり、うちではこうしてるみたいなの教えてやらんこともないという方がいればtwitterなりで教えてください

*1:ただ大抵のサービスは永続化の方法変えるとかの話の前に○ぬとも思っている

*2:webサービスかspreadsheetか

javascriptのオブジェクトから特定のプロパティを取り出しつつeslintのlintを回避する

javascriptであるオブジェクトから特定のプロパティを除いたオブジェクトが欲しい時にdeleteではなくSpread構文を使って取得し、その際のeslintのlintの対応をしたメモ

developer.mozilla.org

特定のプロパティだけを取り出す

Spread構文を使ってプロパティを取り出す。例としてコードを上げるとこんな感じ

const obj = {id: 'xxx', age: 17, name: 'AAAA'}

// IDとそれ以外のプロパティに分ける
const {id, ...other} = obj
console.log(other)

これでidとそれ以外のage,nameを持つオブジェクトに分けることができ、プロジェクトで使ってるlint等に引っかからなければこれだけでOK

今関わっているプロジェクトの場合はeslintのno-unused-vars*1のlintに引っかかったため対応が必要だった

eslintの設定

方針としてno-unused-varsのルールをoffにすることはしたくなかったので、なんとか// eslint-disable-next-lineを使わずに例外的に回避したいと思い、eslintの該当のルールを見た所解決方法は2パターンありそう

ignoreRestSiblingsオプション

ignoreRestSiblingsというオプションをtrueにすることでSpread構文で変数宣言した時はno-unused-varsを回避できた

The ignoreRestSiblings option is a boolean (default: false). Using a Rest Property it is possible to "omit" properties from an object, but by default the sibling properties are marked as "unused". With this option enabled the rest property's siblings are ignored. no-unused-vars - Rules - ESLint - Pluggable JavaScript linter

varsIgnorePatternオプション

ただもう少し上の例のidを意図的に使わないということを表せないかなと思っていた所varsIgnorePatternオプションを使って先頭が_(アンダースコア)*2であれば未使用を無視するという設定にする

no-unused-vars: ["error", { "varsIgnorePattern": "^_" }]

上の例の該当箇所を書き換えると以下のようになりid_にバインドされるので、結果例外として引っかからなくなる

const {id: _, ...other} = obj

まとめ

deleteを使うとオブジェクトに破壊的な変更をしてしまうので気持ち悪いなと思ってたのでSpread構文を使ってく

一応今のプロジェクトでは後者の変数にprefixをつけること方を導入したけど、まだignoreRestSiblingsの方にしておけばよかったとなってないので、もしなったらどういう時に思ったのかを含め追記します

*1:未使用の変数を警告する

*2:正規表現の設定なのでなんでもいいですが例としてアンダースコアにしてます