今から始める、Windows 10&新.NETへの移行戦略
第7回業開中心会議で登壇してきました。
変わらない
聞いてた方からの感想で「『変わらなくていい』なんですね(笑)」などというお言葉もいただきまして。
まあ、僕個人の意見は元々、「使いたくないやつが使う必要はない。」「LINQもvarも、使う・使わないとかで論争すること自体どうでもいい。」「でも、使いたいやつに使わせないような統制取るやつは滅びろ。」ですからね。もちろん、コードレビューなんかで「LINQ使うとこれだけシンプルになるよ」→「そっちの方がいいですね」ってような流れはあるけども、強制するものではないと思う(11ページで書いているように、privateな部分のコードはうるさく言ってもしょうがない。LINQやvarはそのprivateな部分の機能)。
選べる自由が大事。選ばせないやつは本気で滅びろ。
変えれない
開発者の声としてよく聞くのは「変えたいんですけどもなかなか大変で」ってやつです。みんなほんとは新しいもの使いたい。「あのフレームワークいいから早く滅びろ」とか呪いの言葉を吐きながら、5~10年前のアプリを保守してたりするじゃないですか。
変えたいけども変えれない理由は当然、コストで、じゃあそのコストをどうやって下げていこうってのが最近のトレンドかなぁと。
今日の講演、ishisakaさんに「なんか犠牲的アーキテクチャの話になっている感じ」なんて言われましたけど、まさにそれだと思うんですよね。僕が犠牲的アーキテクチャ(原文、和訳、InfoQ記事)の話を見た時に思ったのは、「.NET Coreはこれを支援できるアーキテクチャだ」でした。もちろんこれは、最近のソフトウェア開発トレンドに名前が付いただけの話で、マイクロソフト(のAzure/ASP.NETチーム)はちゃんとトレンドに乗れてるってだけの話ではあるんですが。新しい概念に名前が付くってのも大事で、その大事なタイミングで今回の登壇できたのは割とよかったのかなと思ったり。
補足記事(を書きたい)
今回の話、3点ほど補足記事を書きたいなぁと思っています。
1つ目: .NET 2.0でC# 6.0
1つ目は資料の10ページ目の内容「.NET 2.0でもC# 6.0使えます」。
まあ、実は今もう、GitHub上に、どのC#言語機能がどのバージョンの.NETで動くかに関するサンプルコードがあったりするんですけども(6.0のサンプルが未完。もうちょっとで完成)。これをベースにした話。
2つ目: NuGetパッケージとプロジェクトの区別がなくなる
2つ目は24ページ目の内容「区別がなくなることで」。
この開発フローの具体的な、プロジェクトからNuGetパッケージを作ったり、NuGet参照していたものをプロジェクト参照に差し替えたりの話。
3つ目: Xamarin Studio
3つ目は42ページ目の内容「補足: Xamarin Studio」。
これ、外注先の会社さんが、うちの作ったフレームワーク乗ることになったはいいけども、そちらの開発環境がMacしかなく、仮想マシン立てるとかWindows機買ってもらうよりも前に、まずXamarin Studioでのビルドを試みてみたという実話。半日くらいは試行錯誤があったんですけども、最終的には何の問題もなく、Mac上でビルド通ったそうです。その、半日程度の試行錯誤の話。
コメントを残す