2013年8月24日(土)に株式会社マイクロソフトのセミナールームで、コミュニティ「プログラミング生放送(プロ生) 」によるIT・開発系イベント、プログラミング生放送勉強会 を開催しました。その模様をお届けします。
プロ生勉強会は、IT・開発系であればなんでもOKの勉強会です。今回は、ソフトウェアアーキテクチャ 、Windowsストア アプリのUIデザイン 、Leap Motion 、C++11 など多彩な内容となっています。セッションは動画で公開しています。いずれも楽しい内容になっていますので、ぜひ視聴してみてください。
会場の模様。今回は約100名の参加がありました
コミュニティのキャラクター「プロ生ちゃん」がお出迎え!
ソフトウェアアーキテクチャの求め方
それでは、各セッション内容を簡単に紹介します。株式会社gloops 尾上雅則さん(@ugaya40 )の「ソフトウェアアーキテクチャの求め方」です。
流行の設計用語や技術要素を使えば開発がうまくいくわけではありません。必然性のあるソフトウェアアーキテクチャはどのように導き出すのか、尾上さんが実務経験・探究から身に着けたノウハウの紹介です。
「ソフトウェアアーキテクチャの求め方」株式会社gloops 尾上雅則さん
ソフトウェアアーキテクチャとは?
アーキテクチャという言葉の定義は「万人の合意」は存在しないものとされているが、多くの開発者の関心事として挙げられています。なぜならソフトウェア設計は「複雑すぎる行為」であるためとのこと。
セッションでは、はじめにアーキテクチャ設計とは「ソフトウェア開発に関わるすべての複雑さへの対処」と定義し、順に詳細化して説明し、ソフトウェアアーキテクチャを説明しています。
複雑へのアプローチとして、整理・細部化という「関心事の分離」を行います。アーキテクチャ設計とは、関心事の分離を繰り返す作業となります。ソフトウェアアーキテクチャ設計とは、関心事の分離を繰り返して開発目標となるソフトウェアを分解する作業となります。
ソフトウェアアーキテクチャでの分離された関心事が満たすべき特性としてモジュール化とカプセル化、分離を行う代表的な視点として、製品選定、開発プロセスに対する配慮、設計パターン、言語パラダイムを挙げています。
設計パターンではなく設計視点
次に設計パターンを用いた関心事の分離と、設計パターンのわかりにくさを説明しています。
設計パターンを用いてアプリケーションを分離した場合、例えばMVCによる分離、リポジトリパターンによる分離などがあります。設計パターンとは、分離した結果ではなく、分離する視点が設計パターンとのこと。設計パターンという言葉は害悪であり、混乱した際は、設計視点として考えると良いと説明しています。
セッションでは、続いて実際の分離で使用する視点の例へと進みます。詳しくは動画とスライドを参照してください。
ニコニコ動画:https://www.nicovideo.jp/watch/sm21813008 JavaScriptを有効にしてください。
資料公開場所
プログラミング生放送勉強会第25回@品川で話してきました! - the sea of fertility
Windowsストア アプリケーションのUIデザイン
日本マイクロソフト株式会社 高橋 忍さん(@shinoblogavi )による「Windowsストア アプリケーションのUIデザイン」です。
Windowsストア アプリは、これまでのWindowsとは異なるデザインであり、独特のコンセプトや考え方があります。マイクロソフトが勧めているガイドラインをまじえながら考え方、実装方法、注意点を紹介しています。
「Windowsストア アプリケーションのUIデザイン」日本マイクロソフト株式会社 高橋 忍さん
マイクロソフトが行きついたUI "Modern Style"
マイクロソフトは、User Experience(UX)が、アプリにおいてもっとも重要なこととして、Windows Vistaの頃から力を入れているとのこと。ユーザービリティテストなどを行い改善し、行きついたひとつの答えのUIがフラットデザインのModern Style であると紹介しています。
以前はMetroと呼ばれていたデザインで、路線図のように「デザインが目的達成をサポートする」ことがコンセプトとのこと。
コンテンツが最優先のアプリケーションデザイン
Modern Styleの重要な考えが、コンテンツが最優先とのこと。コンテンツがエクスペリエンスの中心、ユーザーがコンテンツに没頭できることがゴールと解説しています。
実現するステップとして次の3つを解説しています。
① 削ぎ落とす
② 構造とリズム
③ 軽快に、滑らかに
余計な装飾、ぼかしやグラデーション、今使わないコントロールやメニューなどを削ぎ落とします。タブレットデザインのガイドラインを中心に画面を作っていきます。
次に、Modern Styleは美しいタイポグラフィの上に成り立ち、コンテンツに構造とリズムを生まれるとのこと。統一感のあるフォントサイズとウェイトによって情報の階層を規定します。
最後は、レスポンスの重要さについてです。処理の速さではなく、処理をする前にフィードバックを行うことが必要とのこと。
動画ではそれぞれ詳しく解説されています。
ニコニコ動画:https://www.nicovideo.jp/watch/sm21812830 JavaScriptを有効にしてください。
Visual C++はC++10.8 ←イマココ
επιστημηさん(@epitwit )さんの「Visual C++はC++10.8 ←イマココ」です。Visual C++で使えるようになったC++11 の新機能についてデモをまじえた解説です。
「Visual C++はC++10.8 ←イマココ」 επιστημηさん
Visual C++のC++11は、GCC/Clangと比べて正直イケてない?
Visual Studio 2012のVisual C++のC++11対応は、他のコンパイラ(GCC、Clang)と比べると「正直イケていない」が、Visual C++12(Visual Studio 2013 Preview※ )では、ようやく追いついてきた(のでC++10.8)とのこと。
他の言語では当たり前? C++11機能
ライブコーディングをまじえてC++11機能の紹介です。セッションでは、次の機能を取り上げています。
Delegating constructor
Uniform initialization
Initializer list
Explicit conversion operator
Delegating constructorは、コンストラクタ内から別のコンストラクタの呼び出しです。Java、C#などでは一般的な機能ですが、C++はC++11からできるようになったとのこと。
<iostream>
using namespace std ;
class cplx {
private :
double re_ ;
double im_ ;
public :
cplx ( double real , double imag ) : re_ ( real ), im_ ( imag ) {
cout << "cplx(double, double)\n" ;
}
cplx ( double real ) : cplx ( real , 0.0 ) {
cout << "cplx(double)\n" ;
}
cplx () : cplx ( 0.0 ) {
cout << "cplx()\n" ;
}
};
すべての内容は動画を参照してください。セッションでは、まだできない(実装されていない)内容も少しふれています。
ニコニコ動画:https://www.nicovideo.jp/watch/sm21813057 JavaScriptを有効にしてください。
Leap MotionではじめるNUIプログラミング
森 博之さん(@hiroyuki_mori )の「Leap MotionではじめるNUIプログラミング」です。Natural User Interface(NUI) の概要から、C# によるLeap Motion を使ったNUIプログラミングの紹介です。Leap Motionは、手や指の動作を読み取ることができるデバイスです。
「Leap MotionではじめるNUIプログラミング」森 博之さん
NUI概要
はじめにNUIの説明です。NUIは、ComputingにUIの中で、自然な・直観的な動作で操作できる仕組みや方法のことです。Kinectの登場からよく使われている用語です。Leap MotionもNUIデバイスのひとつに分類できます。
Leap Motionプログラミング
Leap Motionは、手や指の動作を読み取ることができるデバイスです。Windows/Mac OS X/Linux向けのSDKが利用でき、Windowsでは、C++/C#(.NET Framework)/Java/Python/Objective-C/JavaScriptの言語により開発ができるとのこと。
Leap Motionから取得できるデータとして、手の識別、指の識別、指の座標、ツール(手と指以外のオブジェクト) 、ジェスチャーがあるとのこと。セッションでは、プログラミングで利用する主要なクラスを紹介しています。
上記のデータはFrameと呼ばれるオブジェクトに含まれています。ポーリングまたはコールバックにより取得します。動画・スライドではもう少し詳しい説明と、実演もありますので、ぜひご覧ください。
ニコニコ動画:https://www.nicovideo.jp/watch/sm21812913 JavaScriptを有効にしてください。
資料公開場所
Leap MotionではじめるNUIプログラミングのセッション資料・デモを公開しました。 | もりひろゆきの日々是勉強
ライトニングトーク
全セッション終了後は、ライトニングトークを行いました。タイトルのみ紹介しておきます。こちらも楽しい内容になっていますので、ぜひ視聴してみてください。
ライトニングトーク
ニコニコ動画:https://www.nicovideo.jp/watch/sm21813145 JavaScriptを有効にしてください。
おわりに
今回 参加していただいた皆様、ありがとうございました。今後もプログラミング生放送勉強会は、各地で開催を予定していますので、参加お待ちしています。
プログラミング生放送の最新情報は、プロ生ちゃんのツイートをチェックしてください! プログラミング生放送 でも情報を発信しています。