by shigemk2

当面は技術的なことしか書かない

memo Mastering Scala using IntelliJ IDEA #ScalaMatsuri

  • プラグイン開発者

私はEmacsを使っているわ

他にも生産性のあるツールを使っている

とあるお話

  • カンファレンスに行くと、ツールに関する感想/コメントを頂く
    • IntelliJについてのフィードバックだが、ツールを100%活かしきれていない
    • 基本的なフィーチャー パフォーマンス
    • いろんなフィーチャーを見つけるフィーチャーを見つける

いろいろな機能

  • Activator Templateテンプレートを作れる
    • もっというと、生産性を上げるためには、マウスを使う必要もない
  • presentation assistant
    • MacOS KeyMap
    • すべてのショートカットを覚えるのは大変
  • find action(describe-key/describe-mode)
    • キーを忘れた時に使う
    • 生産性を上げるためにはマウスを使わないほうがいい というかショートカットキーを使い倒す
  • scala plugin featureを使う
  • distruction free mode
  • ナビゲーション機能(helm-ls-git)
    • implcitサーチしたいときはクラスサーチを使う(implicitと入力してみよう)
    • シンボル/クラス/ファイル→shift + w
    • どの検索でもキャメルを使うことが出来る(ImplColとかくと、Implicit Collectorみたいなのもサーチ出来る)
  • ナビゲーションバー
  • 新しいクラスを作れたりする
  • 開かれたファイルの履歴を見たい 最近使ったファイルを検索出来て(helm-recentf)
  • distruction free mode
  • デバッグ/設定そのものの修正も可能
  • クラスのメンバーを知れる

質問

  • 新しいことを学んでいった?
  • このプレゼンテーションを最初から知ってた?

  • IntelliJを使うとScalaコーディングの生産性が上がるよ
  • 宿題
    • Eclipseのプロジェクト
    • 2007年から対応出来る
  • presentation mode(全スクリーンにリサイズできる)
  • ファイルのリファクタ(ensimeの機能は使い切れてないなあ)
  • Inspecting code(引数が何を意味しているのかも分かったりする)
    • もっとeditをしたい場合/yellow codeを見つけたい時
  • ワークシート
    • プロジェクト/ライブラリ をもっと早くテストすることが出来る
    • 簡易的なREPL
  • Intention Action 小さなファクター
    • explicit parameterを使って、置き換えることが出来る
    • preferenceを読んだらいいと思うんです
  • Scalaでセミコロンは好まれない
  • 1行or複数行でリファクタも一瞬で出来る
  • リージョン消しや1行1行消せる
  • ショートカットは使い倒さなければいけない
  • 自動補完はデフォルト出来る(smart completion デフォルトで入っているが、JavaのIntelliJよりsmartではなかったりする)
  • コピペは自分の好きなプログラミングパターンですね
  • コンパイルエラーも自動変換でリファクタしてくれる

  • デバッガ/何年も使っていても知らなかったっていう人がいる機能

    • キーボードを使ってブレークポイントを突っ込むことが出来る
    • ブレークポイントの箇所でその値の情報を知ることができるし、その変数を使ってコードを試し書きすることも出来る
  • ベーシックなIntteliJだけではなくScalaプラグインのこともわかるようになる