Visual Studio Code で ESLint、Prettier、RuboCop、Solargraph、Jest、Babel、TypeScript などの設定ファイルのメンテコストを下げる戦略

前提

チームプロジェクトを「汚さない」ようにすることを前提とします。

結論

  • VS Code の「ユーザー」設定(一番上位に位置する包括設定)はなるべく変更しないようにします
  • 設定を変更する場合には「ワークスペース」ごとの設定を変更するようにします
    • 「ワークスペース」ごとの設定において、各種の実行ファイルの場所の設定や、参照される設定ファイルの場所を書きます
      • 必要な部分だけ「ユーザー」設定の上書きをすることになります
  • 「ワークスペース」の設定ファイル、およびそれに付随する設定ファイルはプロジェクトを汚してしまわないよう、.git/info/exclude に書きます*1

補足

  • メンテコストを下げるために「疎」にする形です*2
  • ユーザーのローカルで完結する形で構成を考えます
  • 設定ファイルのひな形を dotfiles に入れておくと便利でしょう

備考

このあたりの設定の詳細については、一度がっつりと時間をとって丁寧に学ぶとそれ以降にずっと使えて武器になる知識となると思います。ただ、既存の知見のコピペで済むことも多いですし、既存プロジェクトに設定ファイルが存在しているならばまずはそれに従っておけばいいとも思います。

特に、フロントエンドは Lint に限らず、設定ファイルが多すぎですからね……*3

*1:.gitignore ではなく

*2:これは、あらゆる分野に通じることかと思います

*3:そして Lint よりも重要な設定ファイルも多いですしね

rbenv や nodenv などの XXenv で一瞬だけバージョンを切り替えたい場合

結論

二つの方法があります。実質的には、どちらも同じことです。以下、rbenv の場合を例として書きます。

1つ目の方法. RBENV_VERSION を設定した上で、ruby を実行する

具体例を見るとすぐに分かると思います。

$ ruby -v
ruby 2.7.0p0 (2019-12-25 revision 647ee6f091) [x86_64-darwin19]
$ RBENV_VERSION=2.6.5 ruby -v
ruby 2.6.5p114 (2019-10-01 revision 67812) [x86_64-darwin18]

2つ目の方法. rbenv shell というコマンドを実行した上で、ruby を実行する(実行し終わったら --unset する)

これも具体例を見るとすぐに分かると思います。

$ ruby -v
ruby 2.7.0p0 (2019-12-25 revision 647ee6f091) [x86_64-darwin19]
$ rbenv shell 2.6.5
$ ruby -v
ruby 2.6.5p114 (2019-10-01 revision 67812) [x86_64-darwin18]
$ rbenv shell --unset
$ ruby -v
ruby 2.7.0p0 (2019-12-25 revision 647ee6f091) [x86_64-darwin19]

当該シェルを抜ければ rbenv shell で指定した値は無効になるので、--unset は必ずしも実行しなければいけないというわけではないです。

補足

  • 特に問題がなければ、1つ目の環境変数を指定する方法でいいと思います
  • 他の XXenv の場合も同様にして、例えば nodenv ならば NODENV_VERSION という環境変数を指定すればよいです
  • 既存のプロジェクトにおいて、.ruby-version などが存在しない場合に、リポジトリを汚さずに各種コマンドを実行する場合などに使うのかな、と思います

「デュープリズム」のインタビューを読んで見えてきた「ユーザーができること」

先日、20周年の「デュープリズム」のインタビューが掲載されました。「一問一答」ではなく、「インタビュー」です。

www.gamespark.jp

「ユーザーができること」

内容は「デュープリズム」をプレイしたことがある人には楽しくそして興味深く読めるものだと思います*1。そしてそれ以外の人にも読んでほしいのが最後のページ(4ページ目)の以下の部分です*2

渡辺 しかも、20年経ってからこういう話ができるなんて、まさかですよ。


渡辺 僕らが作ったものですが、もう僕らのものではなく、皆さんのものなんだなって思いますね。もちろん、どのゲームを作る時も、そういう形になって欲しいと思って作っているんですけど。


渡辺 世の中に送り出して、皆さんのものになり、今も熱意のあるコメントをこんなに下さる作品になるなんて、20年前には想像もしていませんでした。こんな素晴らしい場所にいられるのは、全て皆さんのおかげです。


杉本 『デュープリズム』が忘れられないよう、10月14日には自分もTwitterで喋ったりして、ブランド維持の努力はしてるつもりなんです。Twitterに“#デュープリズム“とあったら、それは可能な限り見ていますので、よければ呟いてください。


編集部 最後に「『デュープリズム』について、今ユーザーさんが出来ることって何かありますか?」という質問を投げかけたところ、スタッフの方を交えて、いくつかの方法を教えていただきました。


編集部 まずは、現在発売中のゲームアーカイブス版『デュープリズム』の購入が、販売実績という形でスクウェア・エニックスに届きます。


編集部 そして杉本氏の発言にもありましたが、ハッシュタグを通してツイートすれば、開発陣の目に届くかもしれませんし、ファンアートを含めてコミュニティが盛り上がるのも、ユーザー側で出来る活動のひとつです。


編集部 活動が必ずしも何かに繋がる訳ではありませんが、当時と比べると今は、ユーザーの声が届けやすい時代となりました。この20周年を機に、『デュープリズム』をプレイした感想や、遊んだ思い出などを、開発陣や同好の士に向けて発信してみてはいかがでしょうか。

全ての作品に共通しそうな「ユーザーができること」

上記の内容は、あらゆる作品(ゲームだけにとどまらず、全ての創作物)に対して「ユーザーができること」なのではないかと思っています。

ユーザーが行ったことが直接クリエイターに届くという点だけでなく、今までその作品を触れたことがなかった人へ興味を促すという点でも意義があることだと思いました。

パッケージ画像(Amazon)

*1:未プレイの人にとってはネタバレを含んでいます

*2:発言者の部分は一部見やすく編集しています

Mystic Messenger は日本のストアからでもダウンロードできるしプレイもできる

以前に Obey Me! の記事を書きました。日本向けのリリースは行われておらず、各種ストアではダウンロードすることはできません。

obel.hatenablog.jp

obel.hatenablog.jp

一方で Mystic Messenger は日本のストアからダウンロードでき、プレイもできます。ピクシブ百科事典 にも記事があり、一定の知名度もあります。reddit にも記事が並んでいます

play.google.com

Mystic Messenger

Mystic Messenger

  • Cheritz Co., Ltd
  • ゲーム
  • 無料
apps.apple.com

アプリストアは全世界で統一であるので、日本語版が用意されていないゲームにも気軽にアクセスできるようになりました。言語の壁はありますが、興味があればプレイしてみると面白いと思います。

Powered by はてなブログ