見出し画像

開発者注目! Microsoft Build 2020 の最新トピック:コーディング環境編

前回に引き続き、
この記事では Visual Studio 2019 や Visual Studio Code で利用できる機能を中心に、耳寄りなトピックを紹介します。
題して「コーディング環境編」です。
デベロッパーならば「これは使えそう!」「めっちゃ楽チンw」と共感していただけるものばかりです

・ イベントサイト(英語) https://mybuild.microsoft.com/
・ 動画サイト(英語) https://channel9.msdn.com/Events/Build/2020
※ この記事の図はすべて上記サイトから引用しています。

※ ここで紹介するソフトウェアや機能の一部はまだリリースされていません。Windows Insider Program への応募により使えるものも含まれます。

IntelliCode

・ これは何か? → リファクタリングを補助するサジェスト機能
・ 紹介セッション: Making every developer and team more productive from dev box setup to coding to deployment and debugging
・ 概要: https://docs.microsoft.com/ja-jp/visualstudio/intellicode/custom-models

IntelliCode はチームのコーディングルールを管理し、チーム内で共有することができます
デベロッパーがプロジェクトコードを1箇所変更したのち、別の箇所に似たようなコード変更を加えると、「チームのコーディングルールに追加する」みたいなメニューがポップアップします
ルールを追加しておくと、「変更前のコードパターン」に合致するプロジェクトコードを検索できるようになります。
検索ヒット後のコード変更もボタン一発で完了します。

画像1

これは IntelliCode 機能の一部分だけでしょうが、高度なリファクタリングがデベロッパー本人にフィードバックされる仕組みというのは、これまでに見たことがありません。
チームメンバーにピアレビューを依頼する段階で、リファクタリングの質がある程度担保されているなら、レビュアーは注目するべき箇所に時間を割くことができるでしょう。
チーム開発でも個人開発でも、きちんと IntelliCode を使いこなして開発効率を上げたいですね。

Visual Studio Codespaces (旧 Visual Studio Online)/GitHub Codespaces

画像2

・ これは何か? → クラウドコンテナー上に配備された Visual Studio のワークスペース
・ 紹介セッション: The modern Visual Studio experience
・ 概要: https://visualstudio.microsoft.com/ja/services/visual-studio-codespaces/

Codespaces でプロジェクトワークスペースを開くと勝手にクラウド上でコンテナーが立ち上がり、勝手に仮想ストレージにコードを git clone してきて、暗黙的にコンテナーインスタンスにビルド等の実処理を移譲することができます。
手元の VS2019 や VS Code はコードや各種出力のレンダリングのみを担う、という新しいプログラミングスタイルを提案します
GitHub Codespaces では、VS2019 や VS Code の代わりにブラウザーを使います。

手元の PC ではソースコードのコンパイルなどの高負荷なタスクを担当しないため、非力なノート PC からでも快適に開発を進めることが可能になります。
リモートワークにはピッタリですね。

当然のように LiveShare にも対応しており、クラウド上のインスタンスとデベロッパー A さん・B さんの 3 拠点をネットワークで結んで、ペアプログラミングができます。
リモートデバッグも実行可能のようです。
(おそらく GUI アプリの実行がダメ? もともとはサービス開発・ライブラリ開発といったシナリオを想定している模様)

ほかにも、現在開発中の機能が便利そうでした。
コーディング最中、API の使い方が分からないときにその機能にアクセスすると、GitHub にある全ソースコードを対象に検索して「その API はこんなふうに使われています」と提案してくれるようになるみたいです。

Remote WSL, Remote SSH, Remote Containers

画像3

・ これは何か? → WSL や SSH 接続先ホストやコンテナー内など、リモート上にあるプロジェクトコードで開発するためのインフラ(VS Code 拡張)
・ 紹介セッション: Remote development with Visual Studio Code
・ 概要:
  ・https://marketplace.visualstudio.com/items?itemName=ms-vscode-remote.remote-wsl
  ・https://marketplace.visualstudio.com/items?itemName=ms-vscode-remote.remote-ssh
  ・ https://marketplace.visualstudio.com/items?itemName=ms-vscode-remote.remote-containers

VS Code はネットワーク接続先にある個々のコードを開くことはできても、そこでターミナルを開いたり、ビルドプロセスやデバッグプロセスを走らせることはできません(UNC パスに非対応のため)。
それを拡張して解消する代表的なプラグイン 3 つが Remote WSL、Remote SSH、Remote Containers です。

GitHub: Advanced Security Features [preview]

画像4

・ これは何か? → プロジェクトコードの脆弱性チェック機能
・ 紹介セッション: DevOps with Azure, GitHub, and Azure DevOps

GitHub のセキュリティ強化策にも注目です。
以下の 2 つの静的解析機能が新たにリリースされます。
どちらも GitHub Actions と同じように、コードベースに yml ファイルを追加して git push することで利用が可能になります。

・ Code Scanning
・ Secret Scanning

Code Scanning はプロジェクトコードに潜む Code Injection などのセキュリティリスクを検知して通知してくれます。
Coverity/FlexNet Code Insight などの専用ツールと比較して、脆弱性検知性能の差がどれくらいあるのかが気になりますね。

Secret Scanning はコードに紛れ込んでいるパスワードやシークレットキーを検知して、通知してくれます。

この記事が気に入ったらサポートをしてみませんか?