1. ホーム >
  2. ブログ ~人材育成最前線~ >
  3. 2015年1月記事一覧

2015年1月記事一覧

みなさん、こんにちは!
富士通ラーニングメディアのWebアプリケーション開発などのコースを担当している並木です。

さて、みなさんは、開発言語として大きなシェアを誇るJava言語が2014年4月に大幅にアップデートされたことはご存知でしょうか?

今回は、Java言語の開発者の方はもちろん、開発者ではない方でも、これだけは知っていてほしい!という【Java言語の新常識】を3点に絞ってご紹介します。

後輩 松井との会話の中からご紹介していきます。
みなさんも松井と一緒に新常識を身に付けてくださいね。

 

講師画像

松井正徳(まつい まさのり)

アプリケーション開発担当講師。
当社期待のホープ。好奇心の塊。
黒い肌は、学生時代からのヨットで培った天然モノ。
現在も夏の週末は海に繰り出している。

   

講師画像

並木さやか(なみき さやか)

アプリケーション開発担当講師。
松井が新人の頃は教育係を担当。
今でも好奇心旺盛でいろいろなことに挑戦する松井を
心配して見守っている。

  

 <Java言語の新常識とは>

イメージ図

 

■新常識1:コードスタイルが変わります!
                   Javaのソースコードに【矢印】が登場します!

イメージ図 松井:
 矢印...?Javaのコードに矢印なんて想像できないな...

 

 

 

並木:イメージ図
ソース内では「->」と表現します。

例えばこんな感じ。

 

イメージ図

この記述法は「ラムダ式」と言われる書き方で、
JavaSE8で新たに導入された技術のひとつなんです。

 

イメージ図松井:
なんだかJavaのコードに見えないですね...!
オブジェクト指向に慣れている僕には読みづらく感じるし、
こんな書き方流行らないんじゃないかな...

 

 

並木:イメージ図
この「ラムダ式」は今話題の"関数型プログラミング"の考え方を取り入れていて、利用場面やメリットの多さから非常に注目されているんですよ!

関数型プログラムとは何か、どんな利用場面やメリットがあるかは「新常識2」以降で紹介しますね。

 

イメージ図 松井:
 ほ~ ラムダ式は今後普及していきそうだと感じました。
 まずはラムダ式のスタイルに慣れておく必要がありますね。

 

 ■新常識2:"関数型プログラミング"の考え方を取り入れています!

並木:イメージ図
「新常識1」で紹介した通り、JavaSE8の新機能「ラムダ式」は
「関数型プログラミング」の考え方を取り入れた記述法になっています。

 

イメージ図松井:
関数型プログラミング、最近よく話題になっていますよね。
関数型プログラミングとは何なのでしょうか?
オブジェクト指向プログラミングとは違うものなのでしょうか?

 

 

並木:イメージ図
関数型プログラミングは"関数(※1)"を使用するプログラミング手法であり、宣言型プログラミングの一種と言われています。
それに対してオブジェクト指向は、命令型プログラミングに近いですね。

この特徴は実際のプログラムコードを見ないと
理解しづらい内容にもなるので、詳しくは「新常識3」以降で
確認していきましょう。

(※1)この"関数"は、C言語等で言われる"関数"とは異なる特徴を持ちます。
本コラム内で詳細な説明は割愛しますが、より深く学習されたい方向けに
本コラム「最後に」でお勧めの参考書籍を紹介します。

 

■新常識3:for文を使用せず、より直感的にループ処理を記述できます!

並木:イメージ図
プログラム内でループ(繰り返し)処理を行う場面は多いですよね。

例えば・・・

 ・従業員リストのデータ全件から、営業部の従業員だけを抽出したい
 ・営業部の従業員を全てソートして出力したい

このような処理でも、先ほど紹介したJavaSE8の新機能「ラムダ式」を効果的に利用できるんです。
ここでは更にJavaSE8から追加されたAPI「StreamAPI」も利用します。

イメージ図

 

イメージ図松井:
ラムダ式とStreamAPIを使ったコードは簡潔ですね!
でも、簡潔すぎて、何の処理を行っているのか理解しづらい気がします。

 

 

並木:イメージ図
慣れるまでは抵抗があるかもしれませんが、
ラムダ式とStreamAPIを使用したコードの方が
「何がしたいのか」理解しやすくなっているんですよ!

1行ずつ、素直に読めばいいだけです。

イメージ図

 

イメージ図松井:
確かに、何がしたいのか理解しやすいですね!
ラムダ式とStreamAPIを利用することで直感的なコードが
記述できるんですね!

 

 

並木:イメージ図
「新常識2」で、関数型プログラミングについて下記のように説明しました。

 > 関数型プログラミングは"関数(※1)"を使用するプログラミング手法であり、
 > 宣言型プログラミングの一種と言われています。
 > それに対してオブジェクト指向は、命令型プログラミングに近いですね。

上記のコードを見ると、
従来の処理は"命令的"、ラムダ式を使用した処理は"宣言的"
になっていることが確認できるのではないでしょうか。

従来のコードは「コンピュータがどのような手順で処理を進めるのか」を、
命令するコードとなっています。
一方、ラムダ式を使用したコードでは
「プログラムで何をしたいのか」のみをコードで表現しています。

イメージ図松井:
プログラムの考え方自体が異なるんですね。
ラムダ式を使用したループ処理は今度利用する機会が多そうなので、
この書き方に慣れていきたいと思います!

 

 

イメージ図

 

<最後に>

今回のブログでは、JavaSE8で導入された技術と従来のJavaとの違いや利用場面・メリットをお話してきましたが、利用場面やメリットはここでは語りきれない点もありますので、最後に今後の学習の助けとなるお勧めの書籍をご紹介します。

 ・Javaによる関数型プログラミング――Java 8ラムダ式とStream

出版社: オライリージャパン
Venkat Subramaniam (著)、株式会社プログラミングシステム社 (翻訳)
ISBN-10: 4873117046
ISBN-13: 978-4873117041

 ・Java8ではじめる「ラムダ式」

出版社: 工学社 (2014/07)
清水 美樹 (編集)
ISBN-10: 4777518418
ISBN-13: 978-4777518418

 ・Javaプログラマーなら習得しておきたい Java SE 8 実践プログラミング

出版社: インプレス (2014/9/22)
Cay S. Horstmann (著)、柴田 芳樹 (翻訳)
言語: 日本語
ISBN-10: 4844336673
ISBN-13: 978-4844336679

その他にも、私がぜひお伝えしたいJava8のメリットや活用場面も 多々ありますので、
直接聴きたいという方は下記講習会のご受講をご検討ください。

 
 <コース紹介>

☆コラムでご紹介したJava SE 8で新たに登場した関数型プログラミング記法
「ラムダ式」およびStreamAPIについて学ぶコースです。

JavaSE8新機能~関数型プログラミングとStreamAPI~ (UZL72L)

開催予定:3月23日、8月7日、9月30日です。

☆そのほかのWebアプリケーション開発関連コースもご参考にしてください。
「Webアプリケーション開発技術(Java)」関連コースマップ


みなさまとこれからのJavaについていろいろとお話しできることを
楽しみにしています!

 

 

こんにちは、私は普段アプリケーション開発における上流工程(要件定義・設計)から下流工程(実装、テスト)の講師を担当しています。今回は、最近改めて、システムやサイトを設計する上で重要視されている「ユーザーインターフェース設計」についてご紹介します!


<ユーザーインターフェースとは?>

イメージ図

 

ユーザーインターフェースとは、みなさんご存知のとおりユーザーと機器(コンピュータ)との間で情報をやり取りするための仲介役を担う媒体のことです。システムにおいては画面や帳票を指します。
(ここでは、システムの画面という意味で使用しています)
システムの利用環境もデバイスやネットワークの進歩により、パソコン、モバイル・タブレット端末、スマートフォンと多様化しており、それに伴いユーザーインターフェースも多様化してきています。

 

<ユーザーインターフェースに求められるもの>

突然ですが、良いユーザーインターフェースとはどのようなものですか? と聞かれたら皆さんはどう答えますか。
いろいろな意見があると思いますが、使いやすい、わかりやすい 、見やすい ということは、誰しも異論が無いことと思います。では、使いやすい、わかりやすい、見やすい ユーザーインターフェースを実現するためには何が必要でしょうか?

レイアウト・項目・配色・操作方法・メッセージなどいろいろ考えなければいけませんが、重要なことの1つにメンタルモデル(ユーザーがシステムに期待する動作や利用イメージ)にそってユーザーインターフェースを考えるということがあげられます。
ユーザーインターフェースがユーザーの考えるメンタルモデルとズレがあると必要な機能や情報はあるけど「期待していたもの(イメージ)と違う」・「操作がわかりづらく、間違えやすい」といった印象・評価をユーザーは持ってしまいます。


<ユーザーの期待するユーザーインターフェースを実現するには>

プロジェクトによってはデザイナーが不在でアプリケーション開発者がユーザーの要求を満たすユーザーインターフェースを経験頼りで「なんとなく」作成しているということもあるかもしれません。
しかし、メンタルモデルにそったユーザーインターフェースは、「なんとなく」で実現できるものではありません
利用者がシステムやサイトの情報や機能をどのように使うのか、捉えるのかを考慮しながら設計を進めていく必要があります。

ユーザーインターフェースを設計する時の重要な要素として色彩(いろどりや色合い)がありますが、皆さんはどのように色彩を決めていますか?

どちらの背景色がメッセージの内容とあっていますか?

イメージ図

背景色が赤色の方とお答えになる方が多いのではないかと思います。しかし、ここで重要なのは、なぜその背景色を選んだのかという理由を説明できるかということです。
色にはそれぞれ与える印象や感覚があり、一般的に赤色は、情熱的・危険・攻撃的といった印象を与え、進出色のため前方に飛び出して見えるので注意や警告を促すのに向いています。
逆に青色は、安全・誠実・冷静といった印象を与え、後退色のため後方にさがってみえるので注意や警告を促すのには向いていません。

もし「なんとなく」設計をしているなと感じられた方・思われた方は、研修受講もご検討ください!
「なんとなく」の設計を卒業し、メンタルモデルにそったユーザーインターフェースを設計するために必要な基本概念(認知・記憶の仕組み、色彩の考え方、デザインパターン)・開発の進め方(人間中心設計)を学ぶコース(研修)の提供を開始しました!

「なんとなく」の設計は、もう卒業しましょう!!

 

☆コラムでご紹介した「メンタルモデルに沿ったユーザーインターフェースを実現するために必要な知識」を学ぶコースです。
ユーザーインターフェース設計の基礎

☆そのほかのシステム設計関連コースもご参考にしてください。
 システム設計関連コースマップ
 

最後に当ブログの名物コーナーであるオススメ書籍のご紹介です。
『ユーザビリティ エンジニアリング』
著者:樽本 徹也
出版社:オーム社 (ISBN:978-4-274-21483-7)

『ほんとに使える ユーザビリティ』
著者:エリック・ライス(浅野 紀子 訳) 
出版社:BNN新社 (ISBN:978-4-86100-889-4)

みなさまと講習会でお会いできるのを楽しみにしています!!

 

月別アーカイブ