アーキテクチャをスマートに。

株式会社ネオジニア代表。ITアーキテクトとしてのお仕事や考えていることなどをたまに綴っています。(記事の内容は個人の見解に基づくものであり、所属組織を代表するものではありません)

プログラミング

ホントにあったクソコードの話(2014年春号)

最近久しぶりに Java の開発プロジェクトに参画したので、実際にそこで見たクソコードをいくつか挙げてみます。 提示しているソースコードは、実際のソースコードをもとに出来るだけニュアンスが伝わるよう書き換えています。

SIでWebシステムやるなら Java? いやいや ASP.NET MVC でしょ

お仕事(つまりSI、企業向け受託開発)で Webシステムを開発する際に、どんなアーキテクチャにすべきか、どのフレームワーク(プログラミング言語)を採用すべきかを考えた時、最近では ASP.NET MVC が良い選択だと実感しています。ではなぜそれが良いのか、…

ネオ富豪の開催にあたって(5)プレイヤープログラムの制作〜大会終了後

ネオ爺の制作 プレイヤープログラムの着手にあたっては、当初から C++ で組んでAndroidアプリとしてパッケージングするつもりだったのでナポレオンアプリのプログラムの構造を大きく流用しました。

ネオ富豪の開催にあたって(4)追加機能

再接続対応 参加者のプログラムは、ネット経由なので通信途絶えたり、プログラムバグで強制終了してしまったりすることも想定されます。 その場合にどう対応するべきかを考えました。

ネオ富豪の開催にあたって(3)クイックプレイ〜ランディングページ

マスタサーバの実装 そんなこんなで、マスタサーバの実装にとりかかりました。 Web上で簡単に大富豪をプレイできる、というのが今回のアーキテクチャのすごいところなので、クイックプレイという機能をつけようと思いました。要するに、モバイルでもPCでも、…

ネオ富豪の開催にあたって(2)アーキテクチャが決まるまで

当初の構想 ナポレオンアプリを作った経験から、画面の構成はほとんど迷うことなく決まっていました。(なので自然と5人対戦という仕様になりました) ゲームシステムも、マスタープログラムが1つあって、そこにプレイヤープログラムがいくつもつながって…

ネオ富豪の開催にあたって(1)きっかけ

1月25日(土)に開催したプログラミングコンテスト「ネオ富豪」の開催にあたって、準備段階の構想や考えていたこと、反省点などを備忘録を兼ねて記録しました。 完全じゃないですがだいたい時系列です。日付がわかる出来事は日付を書き添えています。

ASP.NET MVC で WebSocket サーバを作る

ASP.NET MVC で WebSocket サーバを立てたくて色々調べた結果、あまり情報がなくて苦労したたのでここに記録を残します。キーワード: ASP.NET MVC WebSocket Microsoft.WebSockets SignalR

ASP.NET MVC 4 ことはじめ(5)モデルと足場

ASP.NET MVC は、実はモデルに相当する部分を提供していません。既存のDBアクセス技術である Entity Framework を組み合わせて使用します。Visual Studio 2012 で ASP.NET MVC 4 のプロジェクトを新規作成すると Entity Framework 5.0 がデフォルトで使える…

ViewBagに匿名型を入れるとRuntimeBinderException

ViewBag に匿名型を入れて View 側で使おうとすると、「'object' に 'Xxxxx' の定義がありません」みたいなエラー(RuntimeBinderException)になってしまいます。開発環境は以下の通り。 Windows 7 (64bit) Visual Studio 2012 Express for Web ASP.NET MVC…

ASP.NET MVC 4 ことはじめ(4)ViewBag と ViewData

ViewBag ってなんだ? 自動生成されたビューのソースコードで、冒頭に ViewBag.Title ってやつが登場します。 この ViewBag も ViewData と同じくコントローラからビューにデータを受け渡すための入れ物として使用できます。 MVC 3 から登場したようで、Micr…

ASP.NET MVC 4 ことはじめ(3)ルーティング

ルーティングについて アクセスされたURLに対して、どのコントローラを起動するか割り当てることを「ルーティング」と呼びます。ルーティング定義は、Global.asax の Application_Start() で設定します。 ASP.NET MVC 3 までは、ルート定義をカスタマイズす…

ASP.NET MVC 4 ことはじめ(2)ビューの指定

呼び出すビューを切り替える コントローラからビューの呼び出しは、View() メソッドで行われます。引数に何も指定しない場合は、デフォルトでメソッド名と同じ名前のビューが呼び出されます。 HomeController.Index() なら、ビューは Home/Index.cshtml とい…

ASP.NET MVC 4 ことはじめ(1)Hello World まで

ネットで情報収集をしていて、ASP.NET MVC 4 の情報があまりないな〜と思ったので、学習の記録を残すことにしました。 ASP.NET MVC の基本的な考え方を、Visual Studio 2012 で ASP.NET MVC 4 を使いながら習得できるようなチュートリアル的な内容を目指しま…

Highstockスゴイ!日本語化もしてみた。

Yahooファイナンスなんかでよく見られる、株価のチャートを表示する必要があったので、jQueryプラグインで使いやすいのがないか探してたのですが、すごいクールなのが見つかったので紹介。 (あと自分の備忘録も兼ねた記録です)

世界初!Pure Java で DLL - 解説編(2)

さて続きです。コード中で、実行してデバッガで追いかけてみないとわからない部分は、 long addr = 0x65f5520; ... jni.write(b ^ (byte)(addr/**//=32) & 037); // b ^ (byte)(addr>>=5) & 0x1f のあたりではないかと思います。 ビット演算の部分の解説 "He…

世界初!Pure Java で DLL - 解説編(1)

前回の記事 の解説、というかタネあかしというか、そんなんです。

世界初!Pure Java で DLL

今回はかなり独創的でトリッキーな内容です。このような試みはおそらく世界初です!Wiindows ではダイナミックリンクライブラリ(すなわちDLL)というものがありますが、これをJavaで作ってしまおう!という内容です。

Android NDK の C++ 開発でハマる(2)

続きです。

Android NDK の C++ 開発でハマる(1)

久しぶりにC言語でプログラミングしていて、ちょっとハマったことがありました。53種類のカードの組み合わせを表現するのに、どんなデータ構造がよいでしょうか。

if elseのコメントの書き方

プログラミングの話題です。 if〜else構文のコメントを書くときって、みなさんどのように書きますか? 単純 if 文の場合 単純if文の場合は、ブロックの直前に書くことがよくあると思います。例えば、C系の言語で言うと以下のような書き方です。 // ゼロの場…

共通ライブラリを使いましょう

今回も実際の開発現場での体験談です。それは携帯電話向けのシステムの開発プロジェクトでした。 僕はそのプロジェクトに製造工程の途中から引継ぎで入りました。システムの一部分として、Webアプリで電話帳やメール機能を実現している箇所があり、その部分…