kazuk は null に触れてしまった

C# / .NET 系技術ネタ縛りでお送りしております

kazuk の開発環境晒し


最近ではもっぱら開発環境はノートPC、どこでも開発できるのは魅力&やってる事の関係からUSBを頻繁に差し替えるので、キーボードのすぐ脇に出てるケーブル差し替えが出来るのは便利ですねーと。

とりあえず現状使ってるノートPCは hp の ProBook 4420s 本体購入価格は4万円を切っているというアウトレット品。中身は殆ど総とっかえで HDD を SSD換装、メモリはデフォルトの2GBを外して4GBボードx2で8GBへ、本体ディスプレイだけだと情報表示量が貧弱すぎるので外部ディスプレイに UXGA 1600×1200 を接続しています。

SSDにしてあるので、メモリは8GBでもまぁまぁ快適、Core i3 なので Azure のエミュレータで多数ノード上げるとコアが足りなくなる不便さはあるけど一応2コアあるので処理競合をさせようとすればしないでもないぐらいな。

Windows 系メインの開発環境は Visual Studio 2010 Premium 、実はほかの開発環境使う場合の援護系を色々こっちから(後述)

そのほかに入ってる開発環境としてはこんな感じ。

MPLAB IDE v6.40 – Microchip の PIC 用開発環境ですな。

EAGLE プリント基板のパターン起こしとかが出来るCADソフトです

LTSPICE アナログ回路のシミュレーションのできる電子回路設計ツールです。

遊びでしか使ってないけど Arduino

上はクラウドから下はマイクロコントローラまで、我ながら幅が広すぎる開発環境でございます。

基本的に使ってる言語は C# か PIC クラスに対してはアセンブラ。C は Aruduino のアレコレいじる時にたまに書く程度。

ローカルマシン内で CruiseControl.NET のCIサーバを上げてある他に SubVersion のリポジトリもあったりして、このリポジトリイメージはWindows Live Mesh でオンラインと同期取ることでバックアップ。

Visual Studio と SubVersion の連携はあえてせず、亀Svn でExplorer からローカルSvnは操作、SubVersion内は主にドキュメント類のバージョン管理とローカル CIサーバに見せる為のリポジトリという位置づけ。

Visual Studio は Codeplex のTFS や会社であれば会社のTFSとつながってるはずなので、それをそのまま運用しながら、TFS で最新ソースを取得したらローカル SVNへコミットしてローカルCIサーバが勝手にビルド、うまくいかないとしたら取ってきたソースに毒が含まれているって事でローカルCIサーバ上で通る様にするためにローカルSvn上でちまちま作業。通ったらTFSへチェックイン。その後アレコレしている最中も SubVersion と ローカルCIサーバが基本としてお友達で手元VSでビルド通ったらSubVersionへコミットしてみてローカルCIサーバでビルドとテストをしてもらう的、CCTray のExec 設定でビルド失敗するとプロジェクトダッシュボードがブラウザに勝手に開くよ設定してるのでブラウザに何も出なければ基本うまく行ってます的な。

PIC用のコードの類とかは VS上で編集して(T4を編集するとT4からPICアセンブラソースが出る的な)、デバッグ用のPICシミュレータ上げる時とかだけ MPLAB 起動。

Visual Studio で開発してるのは基本として VSSDK でサポートされるプロジェクトテンプレートとかの類やT4でのコード生成回りと生成されるコードが使うインフラ実装みたいな感じで、もっぱら開いてるソースの拡張子は csproj と vsproject、tt 的な。

準備は整ったーでエイや!とばかりに作りこんだプロジェクトテンプレートでプロジェクト起こしてアイテムテンプレートからファイルゴンゴン起こして設定的なことチコチコ書き込むとアプリケーションは出来上がりが理想という感じ。プロでも一部の人しか理解できない&やらない世界が自分的にはお好きな所。

デバッグはもっぱらPex で、落ちたコードで行きつく状態の列挙をさくっとやってくれてテストを作ってくれるので、想定通りになってないルートにたどり着くテストをPexに起こしてもらってそれが上手く通る様になるまでコードいじり。Pexがお手上げになるようなコードになってたらリファクタリング。大半は Code Contracts でRequire一行書いて呼び手が悪いと主張すると Code Contracts の静的解析で悪い呼び手を見つけてもらってチコチコ直すとバグは取れている事が大半。Pexが作ったテストとかはそのまま一緒にコミットすればいつでもローカルCIサーバがテストしてくれるのでなんか間違っても安心という。

それと、「テストで結果確認しようとしてる内容ってCode ContractsのEnsureに書いた方がいいんじゃないの?」は常に自分に問う事、これをしてると null チェック忘れてるコードを書くと静的解析が教えてくれるし、その null チェック要らんですよ、null 帰りませんからとかも教えてもらえるのでサクサクやりたい事に集中してコード書いて「このコードで不都合はございませんか?」とCode Contractsに聞いてみると、「ここでnull帰るかもよー」とか教えてくれるので、「さようですか、ではこうします」のループが奇麗に回る。

バグったコードは基本として書けません、仕組み的に。これをちゃんとすると結構色々楽ですよって感じです。

広告

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中

%d人のブロガーが「いいね」をつけました。