読者です 読者をやめる 読者になる 読者になる

うにだよのBlog

C#関連のことを書きます

UWPをはじめるには

はじめに

docs.microsoft.comのUWP日本語ドキュメントが増えた(?)っぽいのでUWPでHello Worldをやってみました。 すばらしい docs.microsoft.com ですがリンクがぐちゃぐちゃで迷路みたいになっているので、Hello Worldまでに必要な部分だけ書き残します。

見た順番

1. UWPの概要です

ユニバーサル Windows プラットフォーム (UWP) アプリとは | Microsoft Docs

2. 開発環境を準備します(ひとまず開発者アカウントは不要)

準備 | Microsoft Docs

3. Hello Worldアプリ(なんとしゃべる)

Hello, world アプリを作成する (XAML) | Microsoft Docs

これから

Hello World の次はいきなりこれを勧められます。話が広がり過ぎでは・・・?

次の手順 | Microsoft Docs

・ どうやらサンプルコードが山のようにあるので次はこれを見てみようかな?

GitHub からユニバーサル Windows プラットフォーム (UWP) のサンプルを取得する | Microsoft Docs

コード サンプル - Windows アプリの開発

【VisualStudio2015】新しい項目の追加で生成されるクラスのコードを変更する

クラスを追加する際に毎回publicと付け直しているので、

最初からpublic classとしてクラスを追加したい。

→ 項目テンプレートを変更すればよい

 

項目の追加で生成されるコードは以下の項目テンプレートを参照している。

\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\IDE\ItemTemplates

クラスの場合は以下のファイル

\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\IDE\ItemTemplates\CSharp\Code\1041\Class\Class.cs

 

上記ファイルの中身を直接編集して、pubicと入れてあげればOK。

 

(補足1)

アクセス権限がなくて保存ができない場合、書き込み権限を与えて編集する。私の場合読み取りと実行の権限しかなかった。

(補足2)

\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\IDE\ItemTemplates\CSharp\Code

フォルダ内に1033と1041というフォルダがあるが、調べるとVisualStudioの言語によって使用する項目テンプレートが異なるようだ。

1033 = アメリカ英語を表すロケールID

1041 = 日本語を表すロケールID

ロケール ID (LCID) の一覧

VisualStudio2015のブランチの発行はどこにある?

VS2013の時はあった「分岐の発行」がVS2015になってなくなっている。

分岐の発行は「分岐」の「アクティブなGitリポジトリ」内から分岐元対象のブランチを右クリックして「新しいローカル分岐元」をクリックすることで実行できる。

 

f:id:unidayo:20150720155035p:plain

f:id:unidayo:20150720155256p:plain

 

あとはこのあたりを参考に

Git 分岐を使用したコンテキストの切り替え、作業の中断、およびリスクの分離

Gitを用いてVisual Studio開発をしよう (1/6):CodeZine(コードジン)

 

【Visual Studio】マウスを触る回数を減らすオススメのショートカットキー

もくじ

エディタ

【Shift + Alt + F10】スマートタグの表示

【Ctlr + K → T】呼び出し階層の表示

ソリューションエクスプローラ

【Ctrl + W → S】ソリューションエクスプローラを開く

【Shift + Alt + C】クラスの作成

タブ

【Ctrl + F4】タブを閉じる

テスト

【Ctrl + R → T】範囲内のテストを実行

【Ctrl + R → A】すべてのテストを実行

【Shift + Alt + F10】スマートタグの表示

 usingを追加したりするコレを表示する。上下カーソルで選んでEnterで追加を行う。

f:id:unidayo:20150524215704p:plain

 【Ctlr + K → T】呼び出し階層の表示

デバッグで良く使う。

f:id:unidayo:20150524215956p:plain

 【Ctrl + W → S】ソリューションエクスプローラを開く

ソリューションエクスプローラを開くと、別のクラスのソースを開く・クラスの追加・名前の変更といったことができる。

上下カーソル:移動

左右カーソル:プロジェクトやフォルダの展開・折り畳み

F2:名前の変更

アプリケーションキー:右クリックと同じ、削除でも項目の追加でもなんでも

(※アプリケーションキーっていう名前知りませんでした)

 

f:id:unidayo:20150524220139p:plain

 【Shift + Alt + C】クラスの作成

ソリューションエクスプローラ上でなくても使えます。

 【Ctrl + F4】タブを閉じる

押しにくくて使ってなかったけど、右手でCtrl押して左手でF4押すと楽。

【Ctrl + R → T】テストの実行

テストメソッド内にカーソルがあればテストメソッド単位、テストクラス内でテストメソッド外にカーソルがあればテストクラス単位、それ以外では全テスト?を実行する。

2つ目のキーもCtrlを押しっぱなしにするとテストのデバッグ実行になるので、普段はCtrlを押さないように。 

【Ctrl  + R → A】すべてのテストの実行

2つ目のキーでCtrlを押すとデバッグ実行になるのは上記と同様。

 

雑記

KataFizzBuzzをやっていて手間なところをショートカットキーで置き換えていったものを紹介しています。使いこなす!というより使えるものから使ってみようスタンスでもかなり効率上がりますね。最近はカーソルキーまで右手を移動させるのがネックだと感じるので後々カスタマイズしたいです。

【書籍】CleanCoder読みました

www.amazon.co.jp

どんな本

1.プロのプログラマとしての心構えや考え方が書かれている

プログラマが知るべき97のこと』に同じ著者が寄稿している。この内容を1冊の本でやったような感じ。

プロのプログラマとは? - プログラマが知るべき97のこと

2.実体験・具体例が豊富

著者の実体験や会話形式の具体例が多く、読みやすく分かりやすい。

3.コーディング技術の本ではない

CleanCoderというタイトルだが、コーディングについて書かれている部分は1/4程度。書かれているのも技術的な話ではなく、心構えや練習の仕方など。

4.ロバート・C・マーチンというスゴイ人が書いてる

たぶんどれぐらいスゴイ人なのか私は分かっていない、というぐらいスゴイ人っぽい。アジャイル開発宣言に名前あるスゴイ!!

Robert C. Martin (ロバート・C・マーティン(アンクル・ボブ)) - プログラマが知るべき97のこと

特に印象に残った内容(+読後実践してること)

1.プロは自分の時間で専門知識を磨く

毎日3時間自分のキャリアのために使えと書いてある。手厳しい(笑)

しかし大事なのは、「雇用主のために」ではなく「自分のために」時間を使うこと。つまり仕事と関係なくてよいし、楽しいことをやりましょうと言っている。

毎日3時間はできてないが、平均すると毎日1時間くらいは勉強できているかな?

2.希望的観測ではなく責任を持って「イエス」「ノー」と言う

「たぶん~」「~と思います」「やってみます」という言葉を使わないように気を付けている。

3.簡単なコーディングで練習(武術の型のようなもの)

KataFizzBuzzをやってみました。自分にはこれぐらいが調度よさそう。

Welcome to the Coding Dojo

4.完了=受け入れテストが成功

変更・追加の際に単体テストを無理やり受け入れテストっぽくして書いてる。ないよりマシだよ!!

5.ポモドーロテクニック(25分+5分単位の時間管理法)

実践している。25分ごとに冷静になれるので思考の沼にハマるのを回避できる、どれだけ自分の時間に使えているか相対的に計測できる。この2点でメリットを感じている。

6.プロはペアを組む。プログラミングはとは誰かと一緒に働くこと

 実践していない。周りがやっていない、文化がないのでやりづらい。助けてもらった方が良いのは想像できるのだが。

雑感

説明が難しいが、読むとプログラマとして働くことに希望や勇気が湧いてくる。身の回りいないにプログラマのメンターと出会ったような感覚?

こういう心構え系の本を読むと成長した気分になったり、学習している自分が周りよりも優れていると思い込んだりしそうになるので、過剰摂取は危ないなあとも。

Sublime Textを導入してみた

やりたいこと

Jenkins触っている時にスクリプトファイル編集等がメモ帳ではさすがにつらかったので何かテキストエディタを入れたい。

VimEmacsも魅力的だが、とりあえず学習曲線が緩やかそうなSublime Textを選択。

 

手順

1.インストーラーをダウンロードして、インストール

2.Package Controlのインストール

3.メニューの日本語化

4.Packageの導入(IMESupport, Terminal, ConvertToUTF8)

 

参考

『初心者向け』 Sublime Text 3 導入と日本語化について - NAVER まとめ

SublimeText - Sublime Text 3 のインストールと設定 - Qiita

テキストエディター「Sublime Text」の導入 - Build Insider

 

雑感

他にもおすすめPackageとかあるようですが、プログラミングは基本IDEで行う予定なのでとりあえずコレで問題なさそうです。デフォルトでシンタックスハイライトあるの助かります。

【新年度】振り返り+意気込み

年度振り返り

4月からプログラムを始めたが、色々と変遷があった。

変数って何?何でイコールで代入なの?

→ 一応プログラム書けます(スーパースタティックお兄さん)

リファクタリング読む

オブジェクト指向素晴らしい(でも書けない)

→ レガシーコード改善ガイド読む

→ テスト書かなきゃ(使命感)(でも書けない)

オブジェクト指向とかTDDより、そもそものコーディング技術がなさすぎでは。。。?(イマココ!!)

 

オブジェクト指向とかTDDという技法に魅了されるあまり、手段が目的化している。

また前提知識なしでプログラマ始めてるので、例外処理をどうするとか基礎的なところがそもそもおろそか。

 

読んだ本(読んだ順)

1.はじめてのVisual C# 2012

2.これからはじめるプログラミング 基礎の基礎

3.ていねいに基礎を固めるプログラミングの入門書

4.Head First C#

5.リーダブルコード

6.ひと目でわかる Visual C# 2013/2012

7.リファクタリング

8.Team Geek

9.インターフェースデザインの実践教室

10.レガシーコード改善ガイド

11.アジャイルサムライ

12.プログラマが知るべき97のこと

 

新年度目標

1.コーディングの基礎を学ぶ。理論より実装中心で。

2.手を動かす。何か作る。

 

数値目標

1.何かの写経(5つ)、オープンソースのコード読む(3つ)

2.Androidアプリ作る(3つ)

 

コーディングの基礎ってどう身に付けるんだろ。とりあえず人のコードひたすら読んで、ひたすら書く方針。