オブジェクト指向がわからないという人が読むべき本

オブジェクト指向は最近もなんか議論になっているけど、とりあえず読むと良いかなーと言う本をまとめておきます。

オブジェクト指向、特にオブジェクト指向プログラミングに関しては本当に”Don’t think, feel.”なんで、書いているうちに体で気づくしかないものではあるのだけど、まぁそれもあんまりなので、読んどいた良い本はあります。古い本もあります。

最近10年ぶりに第3版が出ました。とりあえず何か一冊読むのであればこれです。オブジェクト指向プログラミング以外のオブジェクト指向分析・設計まで少し踏み込んでいるので、オブジェクト指向の擁護になれるためにも良いでしょう。


Software Design (ソフトウェアデザイン) 2021年3月号
価格: 1,342円
技術評論社; 月刊版 (2021/2/18)

第一特集のオブジェクト指向プログラミングの記事が秀逸でした。おじさん達も頭の中をアップデートしておくために読んでおいた方が良いです。

いざ、オブジェクト指向を始めるのは良いのですが、身近に良いメンターがいないと必ず間違えます。その良いメンターの代わりのするのがこの本です。古い本で、中古しかないようですが、周りに良いメンターがいないばあいや、独学で学習を進めている方は入手して見てはいかがでしょうか。


UML モデリングのエッセンス 第3版 (Object Oriented SELECTION)
マーチン・ファウラー (著), 羽生田 栄一 (翻訳)
価格: 2,640円
翔泳社; 第3版 (2005/6/16)

今あまりUMLは重要視されていませんが、じゃコードで直接説明できない場合に、クラス(オブジェクト)とその関係をどの様に説明するかと言ったときには、UMLは今でも唯一の選択肢です。この本はUMLだけではなく、オブジェクト指向でのモデリングについても学習できるので、読むと良いでしょう。これも今となっては大分古くなったので、説明されているUMLのバージョンも古いものになっていますが、基本的に今でも問題ありません。


リーダブルコード ―より良いコードを書くためのシンプルで実践的なテクニック (Theory in practice)
Dustin Boswell (著), Trevor Foucher (著), 須藤 功平 (解説), 角 征典 (翻訳)
価格: 2,640円
オライリージャパン; 初版八刷 (2012/6/23)

内容はオブジェクト指向に限りませんが、これはぜひ読んでおきましょう。

Visual Studio 2022 | Visual Studio Blog

All of our product development begins and ends with you—whether you posted on Developer Community, filled out a survey, sent us feedback, or took part in a customer study, thank you for helping to continue to steer the product roadmap for Visual Studio.

情報源: Visual Studio 2022 | Visual Studio Blog

64bit化とともに刷新されるVisual Studioにわくわくしますね!

以下雑に訳しました。

Developer Communityに投稿していただいた方、アンケートにご協力いただいた方、フィードバックを送っていただいた方、カスタマー・スタディに参加していただいた方など、Visual Studioの製品ロードマップの策定にご協力いただき、ありがとうございました。この夏、Visual Studio 2022の最初のパブリック・プレビューがリリースされます。

Visual Studioの次のメジャー・リリースでは、より速く、より親しみやすく、より軽量になり、学習者と産業規模のソリューションを構築する人の両方に向けて設計されています。また、Visual Studioは史上初めて64ビット化されます。ユーザー・エクスペリエンスは、よりクリーンでインテリジェント、そしてアクション指向になります。

開発チームはこれまで以上に地理的に分散しています。昨年来、企業は開発チームが安全にコラボレーションし、より迅速にソリューションを提供し、エンドユーザーの満足度と価値を継続的に向上させることを必要としていることが明らかになりました。私たちは、GitHubとの連携を強化することで、アイデアからコード、そしてクラウドへの移行をシームレスにし、コラボレーションを容易にします。

Visual Studio 2022 is 64-bit

Visual Studio 2022は、64ビットアプリケーションとなり、メインのdevenv.exeプロセスのメモリが~4gbに制限されることはなくなります。Windows上で64ビットのVisual Studioを使用すれば、最大かつ最も複雑なソリューションであっても、メモリ不足になることなく、開き、編集し、実行し、デバッグすることができます。

Visual Studioは64ビットになりますが、Visual Studioで構築するアプリケーションの種類やビット数は変わりません。Visual Studioは、今後も32ビットアプリケーションを構築するための優れたツールであり続けます。

1,600のプロジェクトと約30万のファイルを含むソリューションを開く際に、64ビットプロセスで利用可能な追加メモリを使用するためにVisual Studioがスケールアップしているこのビデオを見て、私は本当に満足しています。もうメモリ不足の例外は起きません。🎉

また、ソリューションの読み込みからF5のデバッグまで、お客様のワークフローのあらゆる部分をより速く、より効率的にするために取り組んでいます。

すべての人へのデザイン

お客様がより快適にご利用いただけるよう、ユーザーインターフェースを一新しました。変更点の中には、UIを現代的にしたり、複雑性を緩和するための微妙な化粧直しもあります。全体的には、複雑さを減らし、認知的な負荷を軽減することで、集中して作業を進められるようにすることを目指しています。また、Visual Studioをよりアクセシブルにすることで、誰もがより良い操作性を得られるようにしています。Visual Studioの次期バージョンには、以下の機能が含まれます。

  • アイコンを刷新し、わかりやすさ、読みやすさ、コントラストを向上させました。
  • 読みやすさを追求し、合字にも対応した新しい固定幅のフォント「Cascadia Code」。(お気に召しましたら、今すぐCascadia Codeをお試しください! https://aka.ms/CascadiaCode)
  • 製品テーマを刷新し、改善しました。
  • Accessibility Insightsとの統合により、エンドユーザーに伝わる前にアクセシビリティの問題を早期に検出。

パーソナライゼーション

開発者同士であれば、IDEをカスタマイズすることは、机の椅子を選ぶのと同じくらい重要なことだと理解しています。最も生産性を高めるためには、「ちょうどいい」状態にしなければなりません。これまで以上に、Visual Studio 2022を自分に合ったものにすることが容易になります。IDEのカスタマイズ機能から、複数の開発環境を所有している場合のデバイス間での設定の同期まで、様々な機能が提供されます。

現代的なアプリケーション開発

Azure

Visual Studio 2022では、Azureを使ったモダンなクラウドベースのアプリケーションを素早く簡単に構築することができます。今日のアプリケーションで使用されている一般的なパターンを記述したリポジトリが充実しているので、安心して始められます。これらのリポジトリは、これらのパターンが実際に使用されていることを示す意見付きのコード、AzureリソースをプロビジョニングするためのInfrastructure-as-Codeアセット、プロジェクトを最初に作成する際に完全なCI/CDソリューションを設定する事前に構築されたGitHubワークフローとアクションで構成されています。さらに、必要な開発環境もリポジトリに定義されているので、すぐにコーディングやデバッグを始めることができます。

.NET

Visual Studio 2022では、WindowsとMacの両方の開発者を対象に、.NET 6とそのWeb、クライアント、モバイルアプリ用の統合フレームワークを完全にサポートします。これには、Windows、Android、macOS、およびiOS上のクロスプラットフォームのクライアントアプリ用の.NET Multi-platform App UI(.NET MAUI)が含まれます。また、ASP.NET Blazorウェブ技術を使用して、.NET MAUIを介してデスクトップアプリを書くこともできます。

また、Web、デスクトップ、モバイルなどのほとんどのアプリタイプでは、.NET Hot Reloadを使用して、再起動やアプリの状態を失うことなくコードの変更を適用することができます。

C++

Visual Studio 2022 には、新しい生産性機能、C++20 ツール、インテリセンスを備えた C++ ワークロードの強力なサポートが含まれます。C++20 の新しい言語機能により、大規模なコードベースの管理が簡素化され、診断機能の向上により、テンプレートやコンセプトを使用して困難な問題のデバッグが容易になります。

また、CMake、Linux、WSLのサポートも統合され、クロスプラットフォームのアプリケーションの作成、編集、ビルド、デバッグが容易になりました。また、Visual Studio 2022にアップグレードしたいが、互換性が心配という方も、C++ランタイムとのバイナリ互換性があるので安心です。

指先でのイノベーション

ダイアグノスティクスとデバッグ

アプリケーションを自信を持ってデバッグする能力は、日々のワークフローの中心にあります。Visual Studio 2022では、コア・デバッガーのパフォーマンスが向上しているほか、ホット・パスをより正確に検出するためのプロファイラーのフレーム・チャート、より正確なデバッグのためのディペンデント・ブレイクポイント、ローカルにないコードをステップ・スルーできる統合デコンパイル・エクスペリエンスなどの追加機能が搭載されています。

リアルタイムコラボレーション

Live Shareは、他の人との共同作業、アイデアの交換、ペアプログラミング、コードのレビューなどの新しい機会を提供します。Visual Studio 2022では、Live Shareに統合されたテキスト・チャットが導入され、コンテキストを切り替えることなくコードに関する素早い会話ができるようになります。また、同じリンクを再利用する定期的なセッションをスケジュールするオプションも用意されており、頻繁に連絡を取り合う相手とのコラボレーションが容易になります。また、組織内でのLive Shareのサポートを強化するために、セッションポリシーが導入されます。これは、コラボレーションに必要なコンプライアンス要件を定義するものです(例:読み書き可能な端末は共有可能であるべきか)。

分析と生産性

Visual StudioのAI IntelliCodeエンジンは、あなたの次の行動をシームレスに予測する能力を高め続けています。Visual Studio 2022では、日々のワークフローへの統合がますます深化し、適切な場所で適切なタイミングで適切な行動を取ることができるようになります。

非同期でのコラボレーション

Visual Studio 2022には、GitとGitHubの強力なサポートが新たに追加されます。コードのコミット、プルリクエストの送信、ブランチのマージは、”私のコードが私たちのコードになる “ときです。マージとレビューのプロセスを効率的に進めるために、多くの組み込みロジックとチェックポイントが用意されており、作業を遅らせる可能性のある同僚からのフィードバックも想定されています。ここでの私たちの指針は、あなたが提供するコードに対してより高い信頼性を持てるようにすることでした。

コード検索の改善

コード検索は、ソフトウェア開発のライフサイクルにおいて重要な役割を担っています。他者からの学習、コードの共有、リファクタリング中の変更の影響の評価、問題の調査、変更のレビューなど、開発者はさまざまな理由でコード検索を使用します。Visual Studio 2022では、これらの重要な作業のパフォーマンスを向上させ、開発者の生産性をさらに高めることを目指しています。また、読み込んだ範囲外でも検索できるようになり、どのコードベースやレポにあっても探しているものを見つけることができるようになります。

Visual Studio for Macのリフレッシュ

Visual Studio 2022 for Macの目標は、Mac用にカスタマイズされた最新の.NET IDEを作成し、これまでのVisual Studioで培った生産性を提供することです。現在、Visual Studio for MacをmacOSのネイティブUIに移行する作業を進めており、これによりパフォーマンスと信頼性が向上します。また、Visual Studio for Macに組み込まれているmacOSのアクセシビリティ機能をすべて活用できるようになります。また、MacとWindowsの間でVisual Studioをより一貫したものにするため、IDE全体のメニューと用語を更新しています。また、Visual Studioの新しいGitエクスペリエンスは、Git Changesツール・ウィンドウの導入を皮切りに、Visual Studio for Macにも導入される予定です。

ご意見をお聞かせください

ここでは、現在進行中の作業の一部をご紹介しましたが、Visual Studio 2022の方向性について、皆様からのご意見をお待ちしております。新設されたDeveloper Communityでは、既存の機能要求を閲覧してアップベートやコメントをしたり、独自の機能要求を作成したりすることができますので、ぜひご利用ください。

64ビット版Visual Studio 2022 Preview 1の発表をお楽しみに!UIの改良やアクセシビリティの向上が含まれています。(そして覚えておいてください! 他の進行中の作業と同様に、これらの機能はまだ開発中であるため、一部の機能は最初のパブリック・リリース後にVisual Studio 2022に搭載される予定です)。

ありがとう!

オータム #Forzathon 4/16~4/23 #ForzaHorizon4

シーズンは日本時間では木曜日23時30分に切り替わります。夏から秋になりました。

正確には4/15 23:30~4/22 23:30まで。

ほぼ、2020/8/7からの再チャレンジ。

シリーズリワード

  • 50% バックステージパス
  • 80% 1985 Toyota Sprinter Trueno GT Apex

シーズンリワード

  • 50% バックステージパス
  • 80% 2017 Aston Martin Vulcan AMR Pro

フォトチャレンジ #MillIngaround

ブロードウェイの風車であなたの車の写真を撮ります。

クリア

Continue reading オータム #Forzathon 4/16~4/23 #ForzaHorizon4

Forza Horizon 4 2021-04-14アップデート #ForzaHorizon4

本日アップデートがありました。500MB弱の容量なので、小規模な変更だと思われます。リリースノートはまだ公開されていません。

VS2019 16.10 Preview 2でのGit機能の向上点

We’ve continued to enhance the Git tooling in Visual Studio and are excited to announce some long-awaited updates. We’ve built functionality that addresses gaps around discoverability, switching repositories, navigation, and more!

情報源: Enhanced Productivity with Git in Visual Studio | Visual Studio Blog

ステータスバー

最初の変更点は、ステータスバーです。IDEウィンドウの右下にあるステータスバーのセクションには、すぐにアクセスできるGitコマンドのトレイが常駐しています。そして私たちは、その機能を拡張し始めました。

ブランチピッカー

よく知られているブランチピッカーは、右端のボタンから始まり、Git Changes ウィンドウのブランチドロップダウンと同様の外観になりました。今回の刷新により、ブランチの検索や、リポジトリのローカルブランチとリモートブランチの切り替えができるようになりました。コンテキストメニューを使えば、どのツールウィンドウが表示されているかにかかわらず、ブランチに対して素早くアクションを実行できます。

レポジトリピッカー

ステータスバーのリポジトリボタンを選択すると、リポジトリピッカーの最初の繰り返しが表示されるようになりました。今のところ、ローカルリポジトリはすべてアルファベット順に表示され、リストをフィルタリングする機能もあります。近いうちに、このリストからアイテムを削除できるようになります。

レポジトリを開く

バージョン管理されているフォルダーやソリューションを Visual Studio で初めて開くと、ローカルリポジトリのリストに Git リポジトリが表示され、ネストしたサブリポジトリも表示されます。リポジトリのリモートがAzure DevOpsでホストされている場合は、Git ChangesにAzure DevOpsプロジェクトへの接続を求めるプロンプトが表示されます。そうすると、そのプロジェクトのワークアイテムやビルドにアクセスできるようになります。また、最初の接続が確立されると、Visual Studioはその接続を記憶し、次にリポジトリを開いたときに自動接続されるようになります。

ソリューションリスト

デフォルトでは、リポジトリを開くと、Visual Studio は関連するソリューション/フォルダーをソリューションエクスプローラーに読み込みます。リポジトリに複数のソリューションがある場合は、ソリューションエクスプローラーにソリューションのリストが表示されます。

リポジトリの動作をカスタマイズ

ここにはいくつかのニュアンスがあります。あなたのソリューションがGitリポジトリの外にある場合があります。そのため、リポジトリを開くときには、たとえそれが別のフォルダにあったとしてもソリューションを開いておく必要があります。Git > 設定」で新しい環境設定を切り替えることで、この動作を有効にできるようになりました。それ以外のケースでは、Visual Studio は開いているリポジトリと開いているソリューションの間で一貫性を維持し、両者が同期しないことはありません。

変更のペンディング

ステータスバーの次のボタンは、まだコミットされていない変更されたファイルの数を表示します。このボタンは、「Git Changes」ウィンドウを開くためのショートカットになっています。

コミットの同期

そして、ステータスバーの最後のボタンは「unpushed commits」ボタンです。このボタンは、まだリモートにプッシュされていないコミットの数を表示します。近いうちに、プッシュされていないコミットの数も表示されるようになるでしょう。このボタンをクリックすると、Fetch、Pull、Push、Sync(要望が多かったので復活しました)のクイックアクションを備えた新しいフライアウトが表示されます。

Sync機能を備えたOutgoing / Incoming commitsドロップダウン

SyncはSynchronizeの略で、PullとPushを組み合わせたものです。Syncコマンドの利点は、ワンクリックでローカルブランチとリモートブランチを同期させることができることです。このコマンドは、トップレベルのGitメニューでも利用できます。これにより、Sync には独自のキーボードショートカット (Alt+G+S) が用意され、素早くアクセスできるようになります。また、どこにあるか忘れてしまった場合には、Ctrl+Qの検索ボックスで検索できるようにもなります。

Sync command in the Git menu

Gitレポジトリウインドウ

着信/発信のコミット

Git リポジトリのウィンドウで最初に目につくのは、受信コミットと送信コミットのリストの常設場所です。これらのセクションには、ステータスバーやキーボードショートカット Ctrl+0+Y からアクセスできるようになりました。これらのセクションでは、まだプッシュやプルが行われていないすべてのコミットの概要を確認できます。「Fetch」を選択すると、「Incoming」セクションが表示されます。ローカルコミットを行うと、「Outgoing」セクションが表示されます。

Fetch, Pull, and Push buttons in the permanent Incoming and Outgoing sections in the Git Repository section

埋め込み式コミットの詳細

発信されたコミットを見た後、次にしたいことは、そのコミットにどのような変更があったかを確認することです。これまでは、コミットを選択すると新しいツールウィンドウが開き、変更点を確認するために特定のファイルを選択するとさらに別のウィンドウが開きました。これではウィンドウが多すぎます。そこで、すべての機能をひとつのウィンドウに組み込みました。最初のファイルには、コミットの詳細と変更点のビジュアルが表示されています。また、ファイルのリストを下っていき、各ファイルの変更点をその場で確認することもできます。2つのコミットを比較するときも、ウィンドウは同じように動作します。

Embedded commit details and inline file diff in the Git Repository window

また、コミットの詳細を全画面で表示したい場合や、いくつかのコミットを別の画面に表示して変更点を深く掘り下げたい場合も、そのようにすることができます。ウィンドウのレイアウトは自由に変更できます。

ファイル比較の上部にあるツールバーでは、便利な情報を得ることができます。左側の表記は、そのコミットのファイルの削除数と挿入数を教えてくれます。右側のアクションを使って、サイドバイサイド表示からインライン表示などにレイアウトを変更することができます。

Popped out tab for commit details with side-by-side file diff

Git変更ウインドウ

Git Changes ウインドウのステータス・セクションにあったボタンを、右上のオーバーフロー・メニューに統合しました。ここでは、複数のリモートを管理したり、それらに対してアクションを実行したりすることができます。このメニューからは、ナビゲーションのためのクイックアクションや、「設定」「ブランチ履歴」「ファイルエクスプローラー」「コマンドプロンプト」など、リポジトリに関連する他のウィンドウを開くこともできます。

Action menu in the Git Changes window

更なる学習

新しい経験をするたびに、筋肉の記憶が変化していきます。そのため、新しいツールの使い方について、最新のガイダンスを提供することが重要だと考えています。そのために、Visual StudioでGitを学ぶための無料オンライン・コースを、ステップ・バイ・ステップの練習問題とともに用意しました。また、ドキュメントも更新され、バージョン・コントロールに関する記事が追加されています。

私たちの旅を最初から見守ってくださっている方も、今から参加される方も、まだまだこれからだということを知っておいてください。私たちは、Visual Studio で Git リポジトリを使用する際に役立つ多くの機能を構築する予定です。優先順位を決めるためにも、機能リクエストへの投票を続けていただき、私たちの活動状況をお知らせください。

Visual Studio 2019 v16.10 Preview 2

We are excited to announce the release of Visual Studio v16.10 preview 2. This release continues a theme of developer productivity and convenience. We’ve added C++20 ranges, IntelliSense completions, and new features for testing, Docker tooling enhancements, and Git integration! Download the latest Visual Studio preview release to try the new features in 16.10.

情報源: Visual Studio 2019 v16.10 Preview 2 Releases Today | Visual Studio Blog

C++での機能向上、.NET(C#)での機能向上、Dockerコンテナ向けの機能向上、Git機能向上。

Windows 10 Insider Preview Build 21359 

UPDATE 2:00pm PDT: Today with Build 21359, we’re excited to roll out news and interests on the taskbar to 100% of the Dev Channel! News and interests makes it easy to stay up to date with information at a glance and has in

情報源: Announcing Windows 10 Insider Preview Build 21359 | Windows Insider Blog

Dev Channel向け。

Releasing Windows 10 Build 19043.928 (21H1) to Beta & Release Preview Channels

Hello Windows Insiders, today we’re releasing 21H1 Build 19043.928 (KB5001330) the Beta Channel for those Insiders who are on 21H1 (

情報源: Releasing Windows 10 Build 19043.928 (21H1) to Beta & Release Preview Channels | Windows Insider Blog

FYI.

 

サマー #Forzathon 4/9~4/16 #ForzaHorizon4

シーズンは日本時間では木曜日23時30分に切り替わります。春から夏になりました。

正確には4/8 23:30~4/15 23:30まで。

ほぼ、2020/7/31からの再チャレンジ。

シリーズリワード

  • 50% バックステージパス
  • 80% 1985 Toyota Sprinter Trueno GT Apex

シーズンリワード

  • 50% 1963 Porsche 356 Emory Outlaw RSR(New)
  • 80% 1984 Rover SD1 Vitesse

1963 Porsche 356 Emory Outlaw RSR

フォトチャレンジ #DriveLikeTheWind

Moorhead Wind Farmで任意のHyper Carsの車を撮影する。

クリア

Continue reading サマー #Forzathon 4/9~4/16 #ForzaHorizon4