2015年06月16日

C# コーディング規約など (リンク)


C#のコーディング規約(C#プログラミングガイド)

マイクロソフトがサンプルコードやドキュメントを作成するのに使用している規約。

クラスライブラリ開発のデザイン ガイドライン

ライブラリ開発用に書かれたものだが、一般のコーディングでも参考になる。(詳細なコーディング規約としても有用)

名前に関するガイドライン

クラスや変数などの命名規則。

C#リファレンス

予約語とか言語仕様とかへのリンク集。

C#プログラミングガイド

C#言語に関するガイドというか、初学者向けの言語仕様の教科書みたいなもの。サンプルコード付きなのでわかりやすい。

WindowのUI設計ガイドライン

Windows8X世代のUI設計のガイドライン。(残念ながら英語)

※旧版のUI設計ガイドラインはWindowsFormやWPF画面を考えるのに秀逸な参考だったですがリンクが見つかりませんでした。残念。
posted by RR at 00:01 | Comment(0) | 規約・参考サイト | このブログの読者になる | 更新情報をチェックする

2015年07月14日

Reference Source BCL(Basic Class Library)のソースコード参照

BCL(Basic Class Library)(基本クラスライブラリ)のソースコードが以下で公開されてました。

http://referencesource.microsoft.com/

こんな感じのページです。
ReferenceSource.png

コード内では定義へリンクになっているのでサクサクと閲覧できます。

VisualStudioよりよっぽど爽快な操作性です。

MSDNのサンプルコードとは違った意味でとても参考になります。

posted by RR at 22:14 | Comment(0) | 規約・参考サイト | このブログの読者になる | 更新情報をチェックする

2016年04月27日

.NET開発者がよく使うサイト2016年度版 for Japanese

@ITに「.NET開発者がよく使うサイト、本当に使えるサイト【2016年度版】」という記事が掲載されました。

こちらです http://www.atmarkit.co.jp/ait/articles/1604/22/news023.html

非常によく纏まっていているのですが、約半分は英語のサイト。
プログラマーで英語が得意な人ってあまりいないんです。
そこで、日本語のサイトを中心に参考になるリンク集を再構成してみました。

本家マイクロソフト関連
https://msdn.microsoft.com/ja-jp/default.aspx
 MSDNのホームです。C#(.NET)に関する情報の源泉
https://msdn.microsoft.com/ja-jp/library/default.aspx
 MSDNライブラリ。APIリファレンス集
https://www.microsoft.com/ja-jp/dev/default.aspx
 統合開発環境であるVisual Studioのホーム
https://msdn.microsoft.com/ja-jp/magazine/default.aspx
 オンラインマガジン。C#に限らずWindows系の情報なども豊富
https://channel9.msdn.com/
 技術情報提供を専門とする動画サイト。日本語も結構あります

言語仕様やライブラリの使い方などが良く纏まっているサイト
http://www.atmarkit.co.jp/ait/subtop/dotnet/
 @ITのINSIDER.NET:98%の技術者が参考にしている(と思う)
http://codezine.jp/
 CodeZine:C#も充実しているが、それ以外の言語も充実
http://dobon.net/vb/dotnet/index.html
 DOBON:WindowsFormやファイル操作など基本的なことは全部ここ
http://homepage3.nifty.com/midori_no_bike/CS/
 緑のバイク:WindowsFormや基本文法や実装の定石など
http://ufcpp.net/study/csharp/
 ++C++ // 未確認飛行C:プログラム入門となっているが基礎から応用まで全部盛り。内容も新しい
http://uchukamen.com/
  宇宙仮面のC# Programing:現在は更新されておりませんが殿堂
https://qiita.com/
  Qiita:プログラマのための共有サービス。検索結果によく当たる

英語のサイトを一つだけ
http://stackoverflow.com/
 StackOverflow:日本語版もありますが、英語版の方が圧倒的に内容が充実している
posted by RR at 00:51 | Comment(0) | 規約・参考サイト | このブログの読者になる | 更新情報をチェックする

2016年05月17日

MCP マイクロソフト認定資格試験 新しくなったらしい

MCPというのはマイクロソフト社によるベンダー試験です。

ポータルはこちら https://www.microsoft.com/ja-jp/learning/default.aspx

このサイトにたどり着くような方が関係する開発者向けの資格MCSDのポータルはこちら↓
 https://www.microsoft.com/ja-jp/learning/mcsd-certification.aspx

オラクルとかJAVAと比べると知名度などは格段に落ちるので、折角取得してもあまり評価してもらえない場合も多い。
特典もあまりなくて、左上のロゴが使えるぐらい。オマジナイにもならない。

取得したのもかなり前になりますが、そんな運用されているマイクロソフトからはじめてメールが来ました。
特典が変ったそうです。曰く「プロフィールを登録するとSNS等で簡単に使える・求人情報に無料でアクセスできる(※日本は対象外!!)・MSの本が安く買えますよ」とのこと。

ふむ。。なんだかな。

取得学習に関しては無料の動画講座が以下で見られるとのこと。これまでは試験範囲以外の情報がほとんどなかっただけに貴重なんだけれど日本語版はないみたい。

https://channel9.msdn.com/Blogs/mcpexamprep

受験料はかなり高額ですが、興味ある方や会社等で受験料とか報奨金とかでる方は挑戦する意義あるか、も。

MSとしては、開発者なら資格認定しといた方が良いよって言ってます。

https://borntolearn.mslearn.net/b/weblog/archive/2013/06/18/the-real-reason-developers-should-get-certified?Redirected=true

それなら、もう少しマシな試験運用にすればいいのに、なんて思います
posted by RR at 01:24 | Comment(0) | 規約・参考サイト | このブログの読者になる | 更新情報をチェックする

2016年08月17日

C#6.0 の言語仕様はどこにある?

VisualStudio2015が正式リリースされたのが昨夏。同時にC#の言語仕様も6.0版に上りました。

追加になった機能や文法は各所で紹介されてはいますが、マイクロソフトからの公式な仕様はどこにあるんでしょうか、探してみましたが見つかりません。

VisualStudio2015をインストールすると言語仕様が記載されたドキュメントも併せてインスコされます。デフォルトの設定だったら以下になります。

C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC#\Specifications\1041\CSharp Language Specification.docx

開いてみれば分かりますが、これC#5.0の旧仕様。

MSDNを探すとポータルはここ。
https://msdn.microsoft.com/ja-jp/library/ms228593.aspx

読んでみるとダウンロードできるというのでリンクをだとるとここ。
https://www.microsoft.com/en-us/download/details.aspx?id=7029

ここも6.0ではなくて5.0のまま。他もいろいろ探しても見つかりません。

関連ありそうなのがこれ、動画での説明(英語)で「What's new in C#6.0」というもの
https://channel9.msdn.com/Series/ConnectOn-Demand/211

もう一つがMSDNのブログの記事(英語)
https://blogs.msdn.microsoft.com/csharpfaq/2014/11/20/new-features-in-c-6/
ただし、正式版ではなくプレビュー版の説明なので、採用予定だったが不採用となった機能なども紹介されているので要注意。

非公式のものはGitHubにありました(英語)。
https://github.com/ljw1004/csharpspec/blob/gh-pages/README.md

ちょっと引用します。
Microsoft has not yet released an official copy of the C#6 spec. This is an unofficial draft. When Microsoft does release its official copy, before end 2016 at the latest, then this current repository will be deleted. That's because I wouldn't want to have two copies of the C#6 spec floating around.

「この原稿は非公式版です。マイクロソフト社から公式の言語仕様が発表されたらスグ削除する予定。だって2つも要らないでしょ。」とありますが、削除されてないってことは、やはり公式の言語仕様は未発表なんですかね。

大きな変更はなくて、便利機能追加だったとしても公式の言語仕様は必要だと思うんだけど。
posted by RR at 01:35 | Comment(0) | 規約・参考サイト | このブログの読者になる | 更新情報をチェックする

2016年11月29日

命名や表記に関する英語と日本語の参考リンク集

命名や表記法は、文法規則のように強制されるものではありません。個人の嗜好に合わせて好きなように書けばいいのですが、多人数による開発や保守性などを勘案した場合には、ある程度の規則を決めてく必要があります。そんな時に参考になるサイトをいくつか紹介。

MSDNの名前付けのガイドライン

開発者に一貫性のある名前付けの規則集を提供することを目的に作られた命名ガイドライン

https://msdn.microsoft.com/ja-jp/library/ms229002(v=vs.110).aspx

関数名によく使われる英単語(動詞)の意味とニュアンス

メソッド名は英語で「動詞+名詞」となる場合が多い。名詞はドメイン範疇により多様多種だろうけれど動詞にくる英単語はそれほど多くはない。以下で取り上げられてるぐらいを抑えればほぼ9割はOKである。

http://php-archive.net/php/words-in-function-names/

プログラマーのためのネーミング辞書

ネットではグーグル先生を始め無料翻訳サービスが多々ありますが、ここはメソッド名の英訳に特化した無料サービスです。カスタイズもチームでの使用も可能。

https://codic.jp/

マイクロソフト ランゲージポータル

マイクロソフト社の言語表記に関する情報はここに集約されています。「スタイルガイド」から「日本語」を選択し「ダウンロード」ボタン押下でPDFファイルを無料入手できます。日本語表記に関する考慮事項などとても参考になります。国語の授業を思い出せます。

https://www.microsoft.com/Language/ja-jp/Default.aspx

ローマ字のつづり方

業務アプリケーションなどでは専門用語などを逐一英訳してられない場合にはローマ字表記を採用することが多いです。ア行を間違うこともないですが拗音や撥音や長音などが絡んでくると表記がブレてきます。文科省はこういう規則を提示してます。

http://www.mext.go.jp/b_menu/hakusho/nc/k19541209001/k19541209001.html

外来語の表記

コード上で使うこともないでしょうが、コメントやドキュメントなどではちょっと混乱が見られます。例えば情報処理業界では語末の長音を表記しない「コンピュータ」「プリンタ」といった慣例がありましたが、2008年にマイクロソフトが「コンピューター」「プリンター」と表記するよう修正すると宣言して以降、徐々にこれに倣う表記が普及してきました。文科省はこう言っています。

http://www.mext.go.jp/b_menu/hakusho/nc/k19910628002/k19910628002.html

その他 日本語クラス名やメソッド名について

C#のソースコードはユニコードなのでクラス名やメソッド名などに日本語を使うこともできます。日本語混在コードを偶に見かけますが、個人的にはやめた方が良いと思います。コーディング時に全角半角切替がマジ面倒とか「Select在庫(int 在庫種別)」なんてのは見苦しいといった理由です。また、開発メンバが保守時を含めてずーっと日本人であるという確証がないなら避けた方が無難でもあります。
日本語命名で議論の余地があるのが、DBの物理名からリバース生成されるDBアクセス系と単体テストコード関係です。個人的には同様に避けたいところですが。

posted by RR at 02:39 | Comment(0) | 規約・参考サイト | このブログの読者になる | 更新情報をチェックする

2016年12月05日

C#の予約語一覧

MSDNでは「予約語」ではなく「キーワード」という語を使っていました。「キーワードは、定義済みの予約されている識別子であり、コンパイラに対して特別な意味を持ちます。」とありましたが、どちらもほとんど同じ意味です。

MSDNでは以下のページにあります。

https://msdn.microsoft.com/ja-jp/library/x53a06bb.aspx

使ったことがないモノがあるかもしれませんが、知らなくて良いモノは一つもないぐらいどれも重要なものです。 C#の文法を一通り抑えてあるのなら一通り目を通して確認してみましょう。

翻訳がオカシイ
機械翻訳の限界なんでしょうか、何か所か予約語まで翻訳されていました。(fixed → 固定、await → 待機します。)
これで誤解する人もいないでしょうが、間違っちゃいかん資料で間違っているのと、誤訳を簡単にフィードバックする仕掛けがないってのがイマイチだ。

@プリフィックス
@(半角のアットマーク)を最初に付けるとコンパイラは予約語ではないと解釈します。なので@intなんて名前の変数名も使うことができます。
新しい予約語が追加された場合や、他言語ライブラリへの参照などを想定している機能です。難読化にも使ったりします。

コンテキスト キーワード
特定の箇所でのみ予約語のような扱いになるもの。これも言語仕様の拡張による新しい予約語が追加された場合に既存のコードで同じ単語が使われていてもエラーとならないようにするためです。
posted by RR at 00:40 | Comment(0) | 規約・参考サイト | このブログの読者になる | 更新情報をチェックする

2017年03月16日

C#7.0 の言語仕様はどこにある?

VisualStudio2017が正式リリースされ、C#の言語仕様も7.0版に上りました。

追加になった機能や文法について各所で紹介されてはいますが、マイクロソフト自身の公式な仕様はどこにあるんでしょうか。

VS2015がリリースされC#が6.0版になった時もMSからの正式な言語仕様はリリースされなかったことから、今回も出ないのかもしれません。

VS2017をインストールするとデフォの設定なら以下に言語仕様のファイルがあるはずです。

C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC#\Specifications\1041\CSharp Language Specification.docx

覗いてればわかりますがこれ5.0版のもので5年以上更新されてないことが伺われます。

MSDNのポータルはここ。

C# 言語仕様

2017RC版のドキュメントへの参照があるので辿ってみるとここ。

What's new in C# 7

2016年12月21日に記述された記事で英語版のみ。新機能の説明なのでC#5.0からの追加機能という位置づけなのでしょうか。6.0と同様に包括的な言語仕様は纏められないのかもしれません。

そうであるなら、MSの開発者ブログにある以下の記事の方が新しく詳しいです。2017年3月9日の記事です。

New Features in C# 7.0

日本語の記事だとRC版のものでの説明なら見つかりますね。

.NET Framework - C# 7.0 の新機能

posted by RR at 00:29 | Comment(0) | 規約・参考サイト | このブログの読者になる | 更新情報をチェックする

2017年05月05日

MSのリファレンスがDocsに移行

●Docsのポータル https://docs.microsoft.com/ja-jp/

ms_docs.PNG


「.NET」を選択すると下の画面に遷移

●.NET ドキュメント https://docs.microsoft.com/ja-jp/dotnet/

ms_document.PNG
この画面の上の方に3つ並んだボタンの右側「.NET Framework API」を選択するとAPI仕様に遷移します。

以前のものは重くてストレスフルだったのですが、移行後はサクサク動いて軽快です。PDFに落とすことも可能です。
posted by RR at 11:23 | Comment(0) | 規約・参考サイト | このブログの読者になる | 更新情報をチェックする

2017年05月07日

カタカナ・ローマ字の表記法

●前提
ソースコードやデータストアなどシステム側は英語ベースなのに対し、そのドキュメントやマニュアルなどは日本語ベースであり、そのすべてを英訳和訳できるべくもないので、ローマ字表記やカタカナ表記が必ず出てくる。

これらの記述法については統一された正解もないようなので、揺れ幅を抑える必要がある場合に参考になるサイトをいくつか。

●Microsoft ランゲージポータル 
https://www.microsoft.com/Language/ja-jp/default.aspx MS_LanguagePortal.PNG

画面中段左にある青いボタン「スタイルガイド」を選択すると言語選択コンボが表示されるので、「日本語」を選択してダウンロードボタンを押下すると全79ページのPDFファイルを入手できます。
カタカナ表記以外にも単位や空白の付与基準など日本語表記に関するあらゆる仕様が記述されています。

●文化庁 外来語の表記 
http://www.bunka.go.jp/kokugo_nihongo/sisaku/joho/joho/kijun/naikaku/gairai/

●文科省 外来語の表記 
http://www.mext.go.jp/b_menu/hakusho/nc/k19910628002/k19910628002.html

●JTCA 外来語表記ガイドライン(PDF) 
https://www.jtca.org/standardization/katakana_guide_3_20150929.pdf

●文科省 ローマ字のつづり方
http://www.mext.go.jp/b_menu/hakusho/nc/k19541209001/k19541209001.html

●Wikipedia ローマ字
https://ja.wikipedia.org/wiki/%E3%83%AD%E3%83%BC%E3%83%9E%E5%AD%97


●その他
表記の揺れと同様に用語の揺れも問題となりうる。そのために規模の大きな、若しくは長期間に及ぶ開発ではプロジェクト辞書とかプロジェクト用語集なんてものを作成したりする。
posted by RR at 12:28 | Comment(0) | 規約・参考サイト | このブログの読者になる | 更新情報をチェックする