Null許容参照型について復習を兼ねてまとめた Part1
基本的に勉強会で得た知識を自分なりに纏めているので、欠落はありそう……。
パターンマッチングについて復習も兼ねてまとめた
まだ、書くことたくさんあるけど、とりあえず中締め。
Thinkpad x1 yoga gen6 を購入した
Thinkpad x1 yoga gen6 の雑レビューとか
タイトルの通りですが、Thinkpad x1 yoga gen6 を購入しました。 www.lenovo.com
購入したのは、Windows10Pro / WQUXGA(UHD+) / Core i7 1185G7 / 32GB ram / 2TB SSD / LTE の構成です。
Lenovoさん、ストレージが2TBにすると+19万とかしてたんですが、GWセールで手が出る価格だったので思い切って2TBを選択しました。
購入に至った経緯
- メイン端末とバックアップ端末の性能差が開いてきてしまったので、端末の故障時でも仕事に差し支えない状態にしたい。
- 単純に見ていてx1 yoga gen6 がカッコよかった。
- 2in1だから、お絵描きタブレットとして払い下げることも可能。
TL;DR
TigerLake世代の2in1ノートが欲しいのであればおすすめ
Cpu
TigerLakeは発熱がすごいのでデュアルファンになったと聞いていましたが、実際、benchとか軽く見てみると、最初はめちゃ速だけど、途中から熱の影響もあって、性能が落ち気味になる感じです。
これは、ThinkpadというよりはTigerLake全般に言えるようですね。
一方で私はVisualStudioでの開発が主用途になるので、数分程度、瞬間的にデスクトップPCのCPUと同様のシングルコア性能と、それなりのマルチコア性能があれば必要十分だなあというところです。
IntelさんのCPUは、次のAlderLakeで性能的なジャンプがあると聞いていますが、big.littleをWindows10がどこまで使いこなせるかはまだ未知数です。
TigerLake世代の端末を買うのもよい選択なんじゃないかなーと思います。
Ram
LPDDR4x-4266の32GB、実際はデュアルチャネルでの接続のようです。(そもそもデュアルチャネルじゃないとIris Xeにならないって本当なのだろうか???)
CPU-ZだとQuadになってるんですが、LPDDR4x-4266での32GBの仕様がCPU-Zにとってイレギュラーなんですかね?(1185G7の仕様を見ても、デュアルチャネルまで)
Storage
サムスンの980PROが搭載されていました。
gen4のSSDといっても、980PROとか、SN850みたいな、めちゃ速Storageは積んでくれないよなあと思っていたんですが、まさかの980PROだったのはうれしい限りです。
gen4らしいスピードが出ていて素晴らしい。
某所で、2TBにラインナップされているのはサムスンのSSDだよ!と、教えていただきました。 知らなくて、端末が到着するまでずっとドキドキしてました😨
雑感
bluetooth接続のマウスだと、プチフリが起きる感じだったので、無線のUSBドングルを差しての運用にひとまずなりました。
bluetoothに関するどこが悪いのかはまだわからないですが、ひとまず無線接続で問題なさそうなのでよかったです。
こういう時、ThinkpadはUSB Aのジャックが2つあるんで楽でいいですね。
Ryzen MobileもよいCPUでしたが、なんだかんだシングルコア性能が高いほうが快適なのでよかったです。
そして16:10のディスプレイはやはり良いですね。
AlderLake、Zen4世代のジャンプに期待しつつ、x1 yogaと一緒にコードを書いていこうと思います。
WIP:VisualStudio2019 16.9 の新機能復習
WIP:VisualStudio2019 16.9 の新機能復習
コピペ時に、不足しているusingを自動で追加してくれる
上記オプション(赤枠)を有効にすることで利用できる。
平成末期のVisualStudio2019は、ペーストした後にctrl + .(クイックアクション)を押してusingの追加をしていましたが、令和のVisualStudio2019(16.9)はペーストするだけで不足しているusingが挿入できるので、クイックアクションを使う手間が省くことができるようになりました。
;で、object / methodの選択を確定でき、();が入るようになった。
今までは、、new HttpClient();
と書く場合、HttpClientを入力候補から選択する際にTabやSpaceを利用していました。
VisualStudio2019 16.9では、これらに加えて;でも確定できるようになりました。
;で確定するメリット
;で確定した場合、HttpClient();
まで挿入されるので、();を書く業から人間は解放されます。
Terminalで開く
開発者用コマンドプロンプト等が使いやすくなりました。 ソリューションエクスプローラーから、ファイルを右クリックして、ターミナルで開くを選択することで、選択したファイルの階層をカレントディレクトリに設定した状態でVisualStudio2019上でターミナルを開くことができます。
dotnet コマンドを発行する際に開発者用コマンドプロンプト等を使うことがありますが、ソリューションエクスプローラーからターミナルを開けるようになったことで、よりカジュアルに使っていけるようになった印象です。
using record(まとめと復習)
書いた
自分の中での整理
個人的にrecordで一番良いと感じたのは、Primary ctorを定義した場合に、get; int;
アクセサーと、値積み込み処理の生成を自動でやってくれる点。
今まで、C#で
Constructorが動いたらobjectが利用可能になるように書きましょう
ってポリシーでやると、VS2019を使っていたとしても
- 自動実装プロパティを定義する。
- 自動実装プロパティをドラッグしてctrl + .を押して、ctorを生成する。
と、地味に面倒な作業が必要だった。
C#8まではinit set
がなかったこともあって、Initializer経由で値セットするだけなのに、ついsetを書きがちな現象をよく見かけた(そして面倒な気持ちも理解できる。)
C#9でのrecordを使う場合、Primary ctorの定義を使っていけば、無用なset アクセサーは避けられる(そもそも自分で書かなくていい)し、コード書いてる側もわざわざctor書かなくても自動生成されるしで、丁度良いんじゃないかなあと今のところ思っている。
まだ、理解しきれているわけじゃないので、理解が進んだらまた書き直しor追記するかもしれない。
2021 モバイルPC沼
CES 2021も終わり、なんとなくモバイルPCの事情が見えてきた。
32GB ramモデルが増えてきた
昨年はXPS13や、Thinkpad x13等にしか選択肢がなかった32GBramの選択肢が、増えてきました。 このへんは、covid-19によるリモートワークが増加したことによる効果なのでしょうかね。
気になった端末たち
Surface Pro 7+
Pro8 / Laptop 4が秋発売に延期されるということで、こちらの発売になったようです。
法人向けですが、個人事業主でも購入可能のようですね。
Elite Dragonfly G2
https://jp.ext.hp.com/notebooks/business/elite_dragonfly_g2/
こちらは残念ながら、国内向けは32GB ramがないようです。(2021/01/24 現在)
Thinkpad x1 Carbon gen9
https://www.lenovo.com/us/en/laptops/thinkpad/thinkpad-x1/X1-Carbon-G9/p/22TP2X1X1C9
こちらは軽量でありつつも、TigerLake Corei7 + 32GB ram + 16:10ディスプレイ+5Gということで、非常にパワフルな端末になりました。
キーボードもthinkpadなので問題なさそう。
ASUS ROG Flow X13 GV301
この端末、最大Ryzen 9 5980HS(ZEN3)を搭載しつつ、32GB ram + 16:10ディスプレイ + dGPU搭載(GeForce GTX 1650) + 62Whバッテリー というゲーミングやクリエイター用の技術仕様にも関わらず、w29.9 x D22.2 x H1.58 ~ 1.58 cm 1.3kg と非常に小さく、軽量です。 特にノート用HシリーズのCPU&dGPU搭載の13.4インチノートで1.3kgは驚異的に軽いですね。 Ryzen 9 5980HS(ZEN3)はIntel Core i9-10885H(CommetLake)よりも、シングルコア、マルチコアともに20%程度高速なのでCPUパワーは最高なのではないでしょうか。 非常に素晴らしいカタログスペックに見えますが、無理やりケチをつけるとすれば、
- SSDのPCIeがgen3なので、そこまで高速ではない
- storage自体の容量が1TBとこのグレードのPCとしては少し控えめ(昨今はフラグシップのノートPCだと2TBまで選択できることが多い。)
- thunderbolt3 / 4が搭載されていない
- WebCamが720P(Surfaceは1080Pを搭載)
- マイクとスピーカーが少し弱そう
といったところがありますが、逆に言えばそれくらいです。 フットプリントもDが少々大きいですが、全体的にはスリム(A4用紙-297mm*210mmより少し大きい程度)ですし、持ち運べるクリエイターモデルと言ってよいのではないかと思います。 なお、外付けGPU Boxも発売するようです。
その他2021年に考慮すべきもの
TigerLake Hシリーズ(8C16T版のHシリーズTigerLake)は2021年下旬に出荷予定
=> XPS15とかの更新に影響が出るかも。
AlderLakeの出荷も2021年後半
=>Surface Pro8 / Laptop 4 の発売が見送られてるのはこの辺も理由の1つかもしれません。
今のところなんとなくのおすすめ
予算ある程度かけつつ、TigerLakeでいい場合
=> Thinkpad X1 Carbon gen9
dGPUやハイパワーなモバイルCPUを搭載した軽量Modelが欲しい場合
=> ROG Flow X13 GV301
Alder Lakeを待つ余裕がある場合
=> とりあえず2021/10以降の端末を待つ。(XPSやSuerfaceは載せてくるでしょうし、もしかしたらLifeBookも載せてくれるかもしれません。)
地味に大事なthunderbolt3/4、カメラやマイク
thunderbolt3/4はUSB3.2 gen2と比べて400%転送速度を持っているので、対応しているHubモニターを導入するときに、メリットがあります。 pc.watch.impress.co.jp
カメラやマイクは外付でもいいのですが、リモートワークが増えた昨今、ラップトップを移動して使うことも増えてくる(デスクやリビングのみならず、ラップトップをたまに職場にもっていったりする人もいるでしょうし。)ので、用途によっては評価ポイントに上げてもいい時代になってきましたね。
今年もモバイルPC沼は続いていく
今のところ、個人的にはASUS ROG Flow X13 GV301が気になっていますが、昨年Thinkpad X13で刻んだため、もう少し我慢できる状況なので、引き続きモバイルPCをチェックしていく日々が続きそうです。