B-Teck!

お仕事からゲームまで幅広く

【Scala】Scalaをはじめよう! ─マルチパラダイム言語への招待─ を読んだ

最近Scalaの話題に触れる機会があり、そういえば全然Scalaの言語仕様を全然知らないなと思ったので、ライブラリに積んであった本書を読んでみました。

sbtの使い方からオブジェクト指向的な機能の紹介、Scala特有の機能の紹介、ファイルを取り扱う実装とそのテストまでをさらっと読める分量で書かれており、とりあえずScalaを触ってみるという場合にはちょうどよい書籍かなと。
ファンクタ・モナド・モノイドあたりは掘り下げすぎず、本書で触れる必要十分な範囲だけコラムで記載されていて、その割り切り方も初学者にはありがたかったです。

以下感想。

  • 書籍内では実行環境としてsbtのみ紹介していたが、IntelliJで書いてみた
  • sbtが慣れなかった
    • 実行が若干遅い?
    • 2018年発刊の書籍記載のライブラリが既にMaven Centralになくて衝撃だった
      • Scala本体のバージョンにライブラリが依存するためEOLのものはバシバシ切られている?
  • 記法はKotlinに近くて馴染みやすかった
    • companion objectはobjectを別で定義するのでKotlinのほうがわかりやすいかなと思った
    • traitは振る舞いを組み合わせる感じで結構好き。
      • 宣言時じゃなくて利用時にもmixinできるのはちょっと気持ち悪い
      • Kotlinのinterfaceやdelegationより直感的に扱える気がした
    • Option, Eitherみたいなエラーハンドリング用の型が言語組み込みであるのは嬉しい
      • これ + KotlinのNullable Typeみたいなのがあれば最高だったかも
      • 成功、失敗は型として扱いつつ、単なるNullableをさばくのにこの形になるのは結構大変
    • Enumがほしい
      • sealed classは表現力高いけどもっとシンプルなEnumはあったら嬉しいかもなと思った
    • Futureの記法が結構シンプルで良い
      • 個人的にはAwaitまで説明してほしかった
    • implicitのユースケースがあまりピンときてない
      • もっと使ってみないとわからないかも
      • implicit classはスコープ内限定の拡張関数定義するのに使う?
    • ユニットテストのFlatSpec?というのがなかなか馴染めなかった
      • これも書いてたら慣れるかも

次はコップ本…と思ったんですが、ハードルが高そうなのでまずは実践Scala入門を読んでみようかなと思います。

実践Scala入門

実践Scala入門

【雑記】ゴールの定まらない仕事に苦しさを感じていた

過去の振り返り記事でも書いたんですが、昨年めちゃくちゃ上手く行かない仕事にぶち当たりました。
今年も個人的に似たような心境になる仕事があったんですね。
それで改めて振り返っていたところ、何がどうして辛かったのかをようやく言語化出来たので備忘のために書いておきます。
正しさではなく、私の持っている思考の型と違う人と一緒に仕事をする時に自分がどうするべきかという話です。

これはなに?

  • 昨年、今年と2年連続でうまくいかない仕事にぶち当たった
    • 意思疎通や情報共有ができていないと感じていた
    • 何をどこまで作ればいいのかイマイチわからないままだった
    • 振り返るとどちらもゴールの定まらない仕事だった
  • 辛さをうまく言語化できずに苦しんだ
    • 言語化できないのでなぜ辛いかがわからなかった
    • モチベーションの問題だと思っていた
      • ビジョンや分野に対する共感・興味
      • 興味のないことができているときの観察

ゴールが決まらないとは?

  • 完成形が共有できていない
  • ここまで終わらせればいい、が個人の感覚に依存している

なぜ辛いのか?

  • 誰がどのタイミングで何をするかが定まっていない
    • ボールを持っている人や拾うべきボールがわからない
  • 立ち止まったとき、あとどのくらい頑張るべきかがわからない
  • 何が原因で前倒し/遅滞しているかわからない
  • ゴールから逆算してタスクを組み上げられない
    • 見えるタスクを積み上げてゴールに辿り着くことを願うしかない

何ができなかったのか

  • 自分の思考に「ゴールを定めない」という進め方がなかった
    • 知らないものは想像できない
  • 不安の共有
    • 吐露することに対する不安
    • プライド?
    • 「今うまく行かなくてもなんとかやれる」という自分の過信

何をするべきだったのか

  • 不安があることを共有する
    • 全体の構成
    • 成果物が生むべきバリュー
    • 解決しなければならない課題
    • 共有しないことによって引き起こされるより大きな課題を考えて頑張る
  • 序盤に高頻度で認識合わせをする
    • 詰められるところはなるべく細部まで詰めておく
      • この時点では決定ではなく目指すべき成果物
  • 認識合わせをしたものからタスクを分解し割り振る
  • 発生する課題に対して軌道修正しながら設定したゴールに近づけていく
    • 課題によってはゴールを動かすこともある
    • 元のゴールがわかっていれば動かし方にもバリエーションが出せる

【雑記】ブログで利用しているロゴを新しくしました!

f:id:beatdjam:20210512201858p:plain

今までジェネレータで作成したものを使っていたんですが、ロゴを刷新しました。
お願いさせていただいたのはフォロワーのLemon_orenoyomeさんです!
シンプルでかっこいいデザインが前から好きだったので依頼してみたところ対応してもらえました。

Boothでスタイリッシュなフォントやアイコンの販売をしたり、ロゴのコミッション依頼なんかを受けていたりします。 zipangcomplex.booth.pm

今後は個人サービスをリリースする等、なにかアイコン画像を使うタイミングでこの画像使っていこうかなと思ってます。
特に書く内容が変わるわけでも無いんですが、新しくなったB-Teck!を今後ともよろしくお願いいたします。