108
新新 Java 新新新新新新新新新 新新新新 + α

新人Javaプログラマーに贈る基礎知識 + α

Embed Size (px)

DESCRIPTION

新人研修資料。(ただし、著者もほぼ新人) 新人Javaプログラマーが最低限抑えておくべき用語とそれについての簡単な解説、為になる本を紹介。 「この説明が足りない」、「もっと良い説明がある」、「その本よりこっちの本を読め」的な指摘は大歓迎

Citation preview

Page 1: 新人Javaプログラマーに贈る基礎知識 + α

新人 Java プログラマーに贈る基礎知識 + α

Page 2: 新人Javaプログラマーに贈る基礎知識 + α

2

アジェンダ

• Java (サーバーサイド)• HTML,CSS, JavaScript など(フロントエン

ド)• Linux (インフラ)• DB• セキュリティ

本当はここまでやる予定だった…

Page 3: 新人Javaプログラマーに贈る基礎知識 + α

3

アジェンダ

• Java (サーバーサイド)• HTML,CSS, JavaScript など(フロントエン

ド)

やる気はあったけど発表時間とスライド作る時間が足らんかった。インフラさん本当にごめんなさい。

Page 4: 新人Javaプログラマーに贈る基礎知識 + α

4

Java

Page 5: 新人Javaプログラマーに贈る基礎知識 + α

5

概要• 1995 年 5 月 23 日リリース• 最新バージョンは 8 ( 2013 年 3 月 18 日リ

リース)• オブジェクト指向• 静的型付け• Write Once, Run Anywhere• 実行速度速め• 大規模開発向き

Page 6: 新人Javaプログラマーに贈る基礎知識 + α

6

概要の中でも大事な項目をちょっと補足

Page 7: 新人Javaプログラマーに贈る基礎知識 + α

7

オブジェクト指向ざっくり言えば、「処理や値もろもろを意味的にまとめる」為の概念。以下に挙げるようなメリットがある。

• カプセル化(隠蔽)• ポリモーフィズム(多態性)• 抽象化• 継承 など

まあ、世の中的には各項目異論反論あるのですが…

Page 8: 新人Javaプログラマーに贈る基礎知識 + α

8

まあ、人によっても捉え方が変わる概念なので、

最初は雰囲気で理解できていればいいです。

詳しく知りたいなら次の本がオススメ

Page 9: 新人Javaプログラマーに贈る基礎知識 + α

9

『オブジェクト指向でなぜつくるのか』平澤 章日経 BP 社

オブジェクト指向 (OO: Object Oriented) の誕生の経緯から利用するメリットなどまでについて詳しく書かれた書籍。OOP(Object Oriented Programming)で重要な知識が多数書かれている。読むと「 Java らしい書き方」や「 Java で書く理由」が理解できるようになるのでオススメの一冊

Page 10: 新人Javaプログラマーに贈る基礎知識 + α

10

オブジェクト指向に関する基礎はこの本で OK ですが、本当にオブジェクト指向を理解したと言えるように

なるには

デザインパターン

の理解が不可欠でしょう。

これは、後で説明します。

Page 11: 新人Javaプログラマーに贈る基礎知識 + α

11

静的型付け・動的型付け• 静的型付け → コンパイル時など、プログラム実行前に型が決まっている型システムのこと。 予めバグを察知できるので安全に開発できるが、固い書き方しなければならないので少々面倒なこともある。• 動的型付け → 実行時の実際の値によって型が決まる型システムのこと。 柔軟な書き方が出来るが、実行してみるまで型関係にバグがあるかコンピューターには判別がつかない。( IDE レベルでは型に問題があるかリアルタイムチェックするものも存在する。)

Page 12: 新人Javaプログラマーに贈る基礎知識 + α

12

• 型についての資料

  ITPro 『第 2 回 データの「型」とは何か?』     http://itpro.nikkeibp.co.jp/article/COLUMN/20090623/332478/?ST=develop&P=1

Page 13: 新人Javaプログラマーに贈る基礎知識 + α

13

以上、大まかに概要が分かった所で、

早速、初心者には是非読んで欲しい入門書を紹介

Page 14: 新人Javaプログラマーに贈る基礎知識 + α

14

「スッキリわかる」シリーズ

Page 15: 新人Javaプログラマーに贈る基礎知識 + α

15

『スッキリわかる Java 入門 ・ 実践編』中山 清喬、国本 大悟インプレスジャパン

Java で抑えなければならないことを網羅的かつ非常にわかりやすく書かれた、迷わず推薦できる入門書。特に実践編には、仕事で Java を書く人なら知っていなければならないことでありながら他の入門書ではあまり書かれていないことが多数紹介されているので、現場でコードを書く前に一通り目を通しておくのをオススメします。

Page 16: 新人Javaプログラマーに贈る基礎知識 + α

16

さらにサーバーサイドの入門書

Page 17: 新人Javaプログラマーに贈る基礎知識 + α

17

『スッキリわかるサーブレット &JSP 入門』国本 大悟インプレスジャパン

5/7 に発売したスッキリわかるシリーズ、サーブレット &JSP版!他のスッキリわかるシリーズ同様ストーリー調でわかりやすくサーブレットと JSP の使い方を解説している。帯に書かれている通り、しくみとコツをスッキリ学べるのでオススメ

Page 18: 新人Javaプログラマーに贈る基礎知識 + α

18

以上の本をマスターすれば基礎は完璧でしょう

Page 19: 新人Javaプログラマーに贈る基礎知識 + α

19

ただ、これだけでは以下のような要素を満たすコードは書けません

“キレイ”“わかりやすい” “保守性が高い”

“オブジェクト指向的”etc …

Page 20: 新人Javaプログラマーに贈る基礎知識 + α

20

もっと上を目指す方々へ。Java だけでもまだまだ次に挙げるような項目を理解しなければ

“一流のプログラマー”にはなれないでしょう。

Page 21: 新人Javaプログラマーに贈る基礎知識 + α

21

• 標準 API リファレンス• Apache Commons• コーディング規約• 良いコードの書き方諸々• テスト• リファクタリング• デザインパターン• ガベージコレクション などなど…

Page 22: 新人Javaプログラマーに贈る基礎知識 + α

22

• 標準 API リファレンス• Apache Commons• コーディング規約• 良いコードの書き方諸々• テスト• リファクタリング• デザインパターン• ガベージコレクション などなど…

Page 23: 新人Javaプログラマーに贈る基礎知識 + α

23

API リファレンス これのことね

どんなクラスやメソッドがあるかが書いてある、言わずと知れたプログラマーのお供

Page 24: 新人Javaプログラマーに贈る基礎知識 + α

24

皆さんは API リファレンスを読み物として読んだことがありますか?

何か問題あったら読む程度でしょうか?

そもそも読むという発想が無いでしょうか?

Page 25: 新人Javaプログラマーに贈る基礎知識 + α

25

ナンセンス!(死語)

Page 26: 新人Javaプログラマーに贈る基礎知識 + α

26

API リファレンスにはその言語で何が出来るか詳しく書いてありますし、その中にはみなさんが未だ知らぬ有用な機能も多数あるはずです。

なので、これを読まずしてコードを書くと、「その一日かけて書いたコード、 Java の組み込みクラスで出来るよ?」とか、「その100 行あるコード、本当は 10 行必要ないんだけど…」みたいなことになります。

つまり、読んでおけば時間の浪費を防げます。

Page 27: 新人Javaプログラマーに贈る基礎知識 + α

27

さらに、組み込み API は一流の人たちが考えをこらして作り上げているので、処理に無駄がありません。

ですので、より良い処理効率を目指す上でも、車輪の再発明しないことが良いシステムを作る手だての一つになります。

(「勉強で1から処理を考えたい」とか「全く新しいものを作りたい」とかいう場合はもちろん除きます。あくまで仕事上の話です。)

Page 28: 新人Javaプログラマーに贈る基礎知識 + α

28

ですので、言わせていただきましょう

Page 29: 新人Javaプログラマーに贈る基礎知識 + α

29

API リファレンス読め!

Page 30: 新人Javaプログラマーに贈る基礎知識 + α

30

標準 API リファレンスを一通り読んだら、

次はこれです。

Page 31: 新人Javaプログラマーに贈る基礎知識 + α

31

• 標準 API リファレンス• Apache Commons• コーディング規約• 良いコードの書き方諸々• テスト• リファクタリング• デザインパターン• ガベージコレクション などなど…

Page 32: 新人Javaプログラマーに贈る基礎知識 + α

32

Apache Commons

「 Apacheソフトウェア財団の傘下にある再利用可能な Java コンポーネントをまとめたApache のトッププロジェクト」のこと(Wikipedia より)

Java で一番有名な拡張ライブラリー集。標準 API見ても無い処理で、「汎用性がありそうな(過去に誰かしらやってるであろう)処理」はこのライブラリを見ると結構存在する。

Page 33: 新人Javaプログラマーに贈る基礎知識 + α

33

Apache Commons の中にも色々種類があるのですが、一番メジャーなのは「 Lang 」でしょうか。StringUtils なんかは入門書でも当たり前のように出てきたりするので、見たことある人も多いのではないかと思います。

Page 34: 新人Javaプログラマーに贈る基礎知識 + α

34

この、 Lang の StringUtils だけでもかなり便利なのですが、その他の Lang パッケージのクラスや、 Collections パッケージとか IO パッケージなどの中には超便利メソッドが多数存在します。(これだけで勉強会 3回くらいは余裕で出来る)

Page 35: 新人Javaプログラマーに贈る基礎知識 + α

35

ですので、 Apache Commons も標準 APIと同様の理由から、一通り目を通しておくべきでしょう。

Page 36: 新人Javaプログラマーに贈る基礎知識 + α

36

また、 Apache Commons の良い所は便利メソッドがそろっているということだけではありません。

これ、実装コードも全て API リファレンスのページで見れるんです。このコードは非常にキレイで為になるので、API だけでなく実装コードも読むべきです。

Page 37: 新人Javaプログラマーに贈る基礎知識 + α

37

あとついでに Google Guava ってライブラリも為になるので、暇な時に調べてみましょう

Page 38: 新人Javaプログラマーに贈る基礎知識 + α

38

• 標準 API リファレンス• Apache Commons• コーディング規約• 良いコードの書き方諸々• テスト• リファクタリング• デザインパターン• ガベージコレクション などなど…

Page 39: 新人Javaプログラマーに贈る基礎知識 + α

39

コーディング規約プログラミングというものは、人によって自由な書き方が出来ます。変数やクラスの命名にしろ処理の流れの書き方にしろ、その他様々な要素をプログラマーが自由に決めることが出来ます。だけれども、自由気ままに書いていては他の人には読めないコードになったり、処理的に非効率なコードになったりします。ですので、仕事ではよく「コーディング規約」を定め、それに沿って書くようにしている所が多いです。

Page 40: 新人Javaプログラマーに贈る基礎知識 + α

40

コーディング規約は組織ごとに定められていたりする為、非常に多種多様に存在しますが、その中でも以下のものは一度目を通しておいて損はありません。他にも色々探してみると面白いです。

• Google コーディング規約 リンク

• Sun コーディング規約 リンク

Page 41: 新人Javaプログラマーに贈る基礎知識 + α

41

• 標準 API リファレンス• Apache Commons• コーディング規約• 良いコードの書き方諸々• テスト• リファクタリング• デザインパターン• ガベージコレクション などなど…

Page 42: 新人Javaプログラマーに贈る基礎知識 + α

42

早速ですが、初心者には次の2冊がオススメ。

特に1冊目は必読です。

Page 43: 新人Javaプログラマーに贈る基礎知識 + α

43

『リーダブルコード』Dustin Boswell 、 Trevor Foucher  著、角 征典 訳オライリー

内容は書名の通り、読みやすいコードの書き方について書かれた本。様々な実例を挙げながら、どのような書き方をすれば“誰にでも伝わる”、“分かりやすい”コードを書けるかについて紹介されている。さらにそもそもなぜキレイなコードを書かなければいけないかの理由もこれでもかと教えてくれる。仕事でコード書く人には必読

電子書籍

Page 44: 新人Javaプログラマーに贈る基礎知識 + α

44

『良いコードを書く技術』 縣 俊貴技術評論社

メジャーな良いコードを書く為の技法をまとめた本。さっくり読めるボリュームなので、良いコードを書く技法を一通り概観したい時はこの本を読むとわかりやすい。ただ、各技法を使いこなすには適宜より詳しい専門書を読む必要はあるでしょう。

Page 45: 新人Javaプログラマーに贈る基礎知識 + α

45

• 標準 API リファレンス• Apache Commons• コーディング規約• 良いコードの書き方諸々• テスト• リファクタリング• デザインパターン• ガベージコレクション などなど…

Page 46: 新人Javaプログラマーに贈る基礎知識 + α

46

次に、テストについて

(単体、統合、システム ,… とかでなくテストコードの話)

Page 47: 新人Javaプログラマーに贈る基礎知識 + α

47

テストと聞いてまず思い出すのは皆さんも学校で受けてきたテストでしょう。

もちろんプログラミングのテストもこういった同じ意味合いです。

Page 48: 新人Javaプログラマーに贈る基礎知識 + α

48

ただ、以下の点において、この2つは決定的に異なります

学校のテスト: “要点を抜粋したもの”

プログラミングのテスト : “ そのシステムに求められる用件

を 網羅したもの”

(注:この意味合いでないことも往々にしてありますが、一口に“テスト”と言えば大体こういった意味合いです。)

Page 49: 新人Javaプログラマーに贈る基礎知識 + α

49

システムの“用件”を“網羅”する。これはつまり見方を変えると

“テストコード” = “設計書”

ということになります。(わかりにくいですかね ^ ^; )

Page 50: 新人Javaプログラマーに贈る基礎知識 + α

50

テスト駆動開発 (TDD: Test Driven Development) では、以上の様な概念を踏まえ、テストファースト(テストを先に書き、その後実行コードを書く)ということをします。

これはつまり、まず動作を保証するテストコード(設計書)を書き、次にこの設計書を満たす実行コードを書くということになり、より信頼性の高いコードを書き上げることが出来るようになります。

Page 51: 新人Javaプログラマーに贈る基礎知識 + α

51

ちなみに、テストファーストの説明を読むとよく「まず失敗するテストを書きます」とか「まずテストを書き実行して、失敗したら成功です」みたいに書いてあって、「テストが失敗したら成功ってなんじゃい!」ってなることがありますが、これは、まず最初にテストを書くけど、その時点ではテスト対象となる実行コードが無いんだから当然テストを実行しても失敗に終わるよ、「もし実行コードが無いのに成功したらテストコードが間違ってるよ」ということです。わかりにくくて面食らうかもしれませんが、とりあえず書いてある通りに受け止めてればそのうちわかるようになります。(体験談)

Page 52: 新人Javaプログラマーに贈る基礎知識 + α

52

他にもテストコードを書くことには

• テストを自動化できる(むしろこれがメイン?)

• コードの量を減らす• 疎結合にし、保守性を高める

といった効果もあるのですが、なぜ上記のようなことになるかの理由(特にした2つ)は各自勉強してみてください。

Page 53: 新人Javaプログラマーに贈る基礎知識 + α

53

で、 Java 実際にテストコードを書く為の入門書。

TDD の入門書ではないので、これまで説明した内容は少なめですが…

Page 54: 新人Javaプログラマーに贈る基礎知識 + α

54

『 jUnit 実践入門』 渡辺 修司技術評論社

Java のテスティングフレームワークである jUnit について書かれた(日本で唯一の?)本。テストに慣れてない人には正直分かりやすいとは言いがたいが、 jUnit で出来ることを一通り知ることが出来るので、 jUnit を使う際には常に傍らに置いておきたい一冊。

Page 55: 新人Javaプログラマーに贈る基礎知識 + α

55

他にもテストには語るべきことがたくさんあるのですが、「 Java のテスティングフレームワークはそこまで進歩していない」 & 「進歩しているものもそこまで取り入れられていない」のが現状なので、今日はここまで

個人的には FluentLenium とか一般的になってほしいんだけどね…あと、 Ruby の FactoryGirl 的なの誰か作って

Page 56: 新人Javaプログラマーに贈る基礎知識 + α

56

テストの観点(同値分割、境界値分析)とか、テスト項目の洗い出し方(ディしジョンテーブル)とかのレベルについては各自ググってください。それだけでも結構な情報量出るので、とりあえずそれで十分でしょう。(特に本読んだことないからマジ適当。オススメ教えて)

Page 57: 新人Javaプログラマーに贈る基礎知識 + α

57

• 標準 API リファレンス• Apache Commons• コーディング規約• 良いコードの書き方諸々• テスト• リファクタリング• デザインパターン• ガベージコレクション などなど…

Page 58: 新人Javaプログラマーに贈る基礎知識 + α

58

リファクタリングプログラムの外部から見た動作を変えずにソースコード内部構造を整理すること( Wikipedia )

Wikipediaに他にも概要が非常にわかりやすく書いてあるので (2014/5/12現在)、リファクタリングについて勉強するしないに関わらずこれは必読です。

Page 59: 新人Javaプログラマーに贈る基礎知識 + α

59

『 Refactoring: Improving the Design of Existing Code 』Martin Fowler , Kent Beck , John Brant, William Opdyke, Don RobertsAddison-Wesley Professional

ファウラーらが書いたリファクタリングのバイブル。必読、といいたいところだが、原著は難しいし、日本語訳版もあるが絶版で入手が難しい。

ので、次にお勧めするのを買おう。

Page 60: 新人Javaプログラマーに贈る基礎知識 + α

60

『 Java 言語で学ぶリファクタリング入門』結城 浩ソフトバンク クリエイティブ

ファウラーらのリファクタリング本を元に、よく使われる手法を中心に分かりやすくリファクタリングを説明した入門書。軽く目を通すだけでもコーディングが目を見張るほど変化するので、一通りコードを書けるようになった人には必読。

Page 61: 新人Javaプログラマーに贈る基礎知識 + α

61

あと、さらにリファクタリングを極めたい人はこのサイトをチェック

Page 62: 新人Javaプログラマーに贈る基礎知識 + α

62

REFACTORING.com

• HP: http://refactoring.com• ファウラーによる数々のリファクタリング手法を紹介する Web サイト。

 『 Java 言語で学ぶリファクタリング入門』を読み終えたら一度目を通してみるといいかも

Page 63: 新人Javaプログラマーに贈る基礎知識 + α

63

• 標準 API リファレンス• Apache Commons• コーディング規約• 良いコードの書き方諸々• テスト• リファクタリング• デザインパターン• ガベージコレクション などなど…

Page 64: 新人Javaプログラマーに贈る基礎知識 + α

64

デザインパターン

「過去のソフトウェア設計者が発見し編み出した設計ノウハウを蓄積し、名前をつけ、再利用しやすいように特定の規約に従ってカタログ化したもの」( Wikipedia )

Page 65: 新人Javaプログラマーに贈る基礎知識 + α

65

『 Design Patterns 』Erich Helm, Richard Johnson, Ralph Vlissides, John GammaAddison-Wesley Professional

Gof(Gang of Four) と呼ばれる 4 人によって書かれたデザインパターンのバイブル。これまた必読と言いたいけれども難しくて言えないし、訳書版も難度が高い。極めたい人のみ読めば良いかなー、というのが個人的見解

Page 66: 新人Javaプログラマーに贈る基礎知識 + α

66

『 Java 言語で学ぶデザインパターン入門』結城 浩 ソフトバンククリエイティブ

リファクタリング本と同様、結城浩さんによって書かれたデザインパターンのカタログ本。デザインパターン本としてはわかりやすい方だが、どういう場合にデザインパターン使えば良いか分かりにくい部分はあるので、初学者は次の本が一番オススメ

Page 67: 新人Javaプログラマーに贈る基礎知識 + α

67

『 Head First デザインパターン』Eric Freeman, Elisabeth Freeman Kathy Sierra, Bert Bates オライリー

面白いストーリーにのせて軽快にデザインパターンを紹介していく入門書。どういう状況でパターンを駆使すれば良いかが非常にわかりやすいので、初めてデザインパターンを学ぶ人にはまずこれを読んでほしい。訳がおかしいとかの批判もありますが、文句あるなら原著を読もう。文字数は多くない本だからそこそこ英語読める人なら問題ないはず

Page 68: 新人Javaプログラマーに贈る基礎知識 + α

68

• 標準 API リファレンス• Apache Commons• コーディング規約• 良いコードの書き方諸々• テスト• リファクタリング• デザインパターン• ガベージコレクション などなど…

Page 69: 新人Javaプログラマーに贈る基礎知識 + α

69

ガベージコレクション「プログラムが動的に確保したメモリ領域のうち、不要になった領域を自動的に解放する機能である」( Wikipedia )

なくても問題無い知識かもしれませんが、知っておくとより処理効率の良いシステムを書けるようになります。

Page 70: 新人Javaプログラマーに贈る基礎知識 + α

70

まずはこれを読もう

Page 71: 新人Javaプログラマーに贈る基礎知識 + α

71

一般教養としての Garbage Collection

http://matsu-www.is.titech.ac.jp/~endo/gc/gc.pdf

GC の基礎的なことについてはこれで抑えられる。 Web 上で公開されているもので量もそこそこなので、仕事中に手が空いてやることが無い時にでも読むと良いと思います。

Page 72: 新人Javaプログラマーに贈る基礎知識 + α

72

Understanding Java Garbage Collection

http://www.cubrid.org/blog/dev-platform/understanding-java-garbage-collection/

英語だが、わかりやすく Java のガベージコレクションのアルゴリズムを解説しているので、 JAVA の GC がどんなことをしているか分からない人は読むのをオススメします。

Page 73: 新人Javaプログラマーに贈る基礎知識 + α

73

GC についてより高度な勉強をしたい人は次の本を買いましょう。

Page 74: 新人Javaプログラマーに贈る基礎知識 + α

74

『ガベージコレクションのアルゴリズムと実装』中村 成洋 , 相川 光 , 竹内 郁雄 (監修 )達人出版会

数少ない(というか日本語の本としてはほぼ唯一の) GC の解説書。内容も網羅的で詳しいので、 GCについて勉強したい人は買って損は無い。ちなみに紙の本は絶版なので電子書籍版( 950円 +税。安い!)を買おう。

Page 75: 新人Javaプログラマーに贈る基礎知識 + α

75

最後に一流の Java プログラマーになるための必読書。

難しい本なので、経験年数 2 年を越えてから読むので大丈夫でしょう。

(というかそれ以前に読んでも分からんのでは……)

Page 76: 新人Javaプログラマーに贈る基礎知識 + α

76

『 Effective Java 』Joshua Bloch (著 ), 柴田 芳樹 (翻訳 )丸善出版

例えるならば「中・上級者の為のJava 解説書」Java の最も良い書き方を紹介している。初心者には多少難度が高いが、一流を目指すならばどこかで必ず読まなければならない、 Java プログラミングの必読書

Page 77: 新人Javaプログラマーに贈る基礎知識 + α

77

あと、 Java の説明の締めくくりとして、

ちょろっとフレームワークについて

Page 78: 新人Javaプログラマーに贈る基礎知識 + α

78

フレームワークWikipedia曰く、フレームワークとは「一般的な機能をもつ共通コードをユーザーが選択的に上書きしたり特化させたりすることで、ある特定の機能をもたせようとする抽象概念のこと」

よくわからない人は「お約束な処理をまとめることでコーディング量を減らし、プログラマーの労力を低減するためのもの」、くらいに思っとけば良いです。(それだけじゃないけど)

Page 79: 新人Javaプログラマーに贈る基礎知識 + α

79

Java フレームワークSpring Framework

StrutsSeasar

Play FlameworkNinja Flamework

Dropwizard  etc…

下 2 つは個人的趣味で書いてます。流行るかは知らん

Page 80: 新人Javaプログラマーに贈る基礎知識 + α

80

フレームワークは話すとまた長くなるので、

とりあえず勉強するべきものを挙げると

“ Spring Framework”

になります。理由はシェアダントツ No.1 で

公式ドキュメントもそろってるから。

Page 81: 新人Javaプログラマーに贈る基礎知識 + α

81

「シェアで選ぶのは“流行物好き”って感じがして何か嫌だ…」という人もいるかもしれませんが、「使ってる人が多い」ということはそれはつまり

・ 情報が多い・ バグがキチンと洗い出され修正されている

などといったメリットがあるので、プログラミング業界的には非常に重要な指標です。誰も使ってないようなものには重大なバグが放置されている場合もあるので、使う場合には注意が必要です。

Page 82: 新人Javaプログラマーに贈る基礎知識 + α

82

あと、ドキュメント(説明書)は揃っていないと問題が起きても解決法が分からないので簡単に詰みます。詰むたびに手探りで解決法を探ることになりますが、そんなことしてるくらいならスクラッチ開発( 0 から作ること)した方がむしろ楽なのでは、となってしまうので、ドキュメントが揃ってないフレームワークを使うのはオススメしません。

Page 83: 新人Javaプログラマーに贈る基礎知識 + α

83

逆に使ってはいけないフレームワークは以下のような特徴があるものです。

• ドキュメントそろってない• セキュリティが甘い• 公式サポートが終わっている(終わりそう)

• そもそも使いにくい(フレームワークなのに使いにくいとか本末転倒な話ですが)

Struts 、てめえのことだよ。ついでに Seasar もな

Page 84: 新人Javaプログラマーに贈る基礎知識 + α

84

今回挙げたものの中で個人的には

Play FlameworkNinja Flamework

Dropwizard

の3つに頑張ってほしいですね。(俺の仕事を楽にする為に)

現状一般的なものはもう時代遅れ感が半端ないですし、そろそろ世代交代せねば。

Page 85: 新人Javaプログラマーに贈る基礎知識 + α

85

以上、 Java

Page 86: 新人Javaプログラマーに贈る基礎知識 + α

86

次、フロントエンド

Page 87: 新人Javaプログラマーに贈る基礎知識 + α

87

フロントエンド

フロントサイド、クライアントサイドとか様々な呼ばれ方をするが、

要は画面に表示されるもののこと。

言語で言えば、 HTML, CSS, JavaScript(jQuery) などのこと

Page 88: 新人Javaプログラマーに贈る基礎知識 + α

88

• HTML  Webページの構造を書く為の言語

• CSS  HTML とあわせて用いる。 Webページのデザインを書く為の言語

• JavaScript  Webページに動きを付ける為の言語 (現状はもっと多様な用途があるが、まず最初に理解すべきはこのWebページを動的にする役割)

Page 89: 新人Javaプログラマーに贈る基礎知識 + α

89

• jQuery  JavaScript を簡単に記述する為に作られたライブラリ。これを使えば手軽に Webページに動きを加えることが出来ます。 また、 jQuery には UI操作に特化した「 jQuery UI 」、携帯端末に特化した「 jQuery Mobile 」などあります。 公式サイトには実際にいじれるデモもあるので、一通り遊んでおきましょう。

*ライブラリ:汎用性の高い複数のプログラムを、再利用可能な形でひとまとまりにしたもの

Page 90: 新人Javaプログラマーに贈る基礎知識 + α

90

フロントエンド勉強法について

Page 91: 新人Javaプログラマーに贈る基礎知識 + α

91

フロントエンドの学習方法もサーバーサイド

同様色々ありますが、初学者がまず見るべきは

ドットインストール リンク

一択でしょう。

Page 92: 新人Javaプログラマーに贈る基礎知識 + α

92

ドットインストールは 1 レッスン 3 分以内のプログラミング学習用動画をあげている、現代の日本人プログラマーなら誰でも知ってるほど有名な学習サイトです。特に CSS や JavaScript などは画面系の技術なので、動画での学習は本よりもわかりやすいでしょう。

ちなみに Java の動画もありますので、気になる人はチェックしてみてください。

Page 93: 新人Javaプログラマーに贈る基礎知識 + α

93

さらに、 HTML/CSS でしたら次の本が個人的にはオススメ

Page 94: 新人Javaプログラマーに贈る基礎知識 + α

94

『作りながら学ぶ HTML/CSS デザインの教科書』高橋 朋代 , 森 智佳子  SB クリエイティブ

非常に実用的な知識を簡単なブログを作りながら説明してくれる入門書。 HTML や CSS はゴリ押しでも画面を作ることが出来てしまうが、この本を読めば各要素の役割をしっかり理解して書くことが出来るようなる。ただ、全くの初心者には多少難しいかもしれないので、ドットインストールで HTML と CSS を一通り学んでから読むと吉。

Page 95: 新人Javaプログラマーに贈る基礎知識 + α

95

JavaScript, jQuery に関してはまだ僕の中では決定版が無いのですが、初学者には次の本とかが分かりやす

いと思います。

Page 96: 新人Javaプログラマーに贈る基礎知識 + α

96

『よくわかる JavaScript の教科書』たにぐち まこと マイナビ

プログラミング初心者からでもわかるように最初の方はかなり優しめに書いてある。タイトルには書いてないが、内容の半分くらいは jQuery 。内容はかなりざっくりなのでこの1冊で十分とは言いがたいが、読みやすい本なので JavaScript が初めての人は一度読んでみて損は無いでしょう。

Page 97: 新人Javaプログラマーに贈る基礎知識 + α

97

JavaScript を極めたいなら次の一冊も読みましょう。

Page 98: 新人Javaプログラマーに贈る基礎知識 + α

98

『 JavaScript 第 6版』David Flanagan (著 ), 村上 列 (翻訳 )オライリー

JavaScript のバイブル。ページ数は圧巻の 840ページ!極めたい人、 JavaScript の辞書になる本を求めてる人にはオススメですが、とりあえず Web画面が作れればいいという人はまずは jQuery をおさえてからこれを読むか考えましょう。電子書籍

Page 99: 新人Javaプログラマーに贈る基礎知識 + α

99

さらに jQuery の本

Page 100: 新人Javaプログラマーに贈る基礎知識 + α

100

『 Web制作の現場で使う jQuery デザイン入門』西畑一馬 アスキー・メディアワークス

jQuery の基礎から、実用的な用法まで学べる解説書。jQuery について一から学びたい人はこれを読んでおけば大丈夫でしょう。(自分がしっかり読んでないから適当な説明に…)

Page 101: 新人Javaプログラマーに贈る基礎知識 + α

101

『 jQuery 最高の教科書』株式会社シフトブレイン (著 )SB クリエイティブ

多少色物感がある本なのだが、初歩的なことから最終的には最近流行の超オシャレな jQuery プラグインの実装まで説明しているので、基礎を抑えるだけでなく有用なプラグインを学びたいときにオススメしたい一冊

Page 102: 新人Javaプログラマーに贈る基礎知識 + α

102

さらに、フロントエンドの勉強には

次のサイトもオススメ

Page 103: 新人Javaプログラマーに贈る基礎知識 + α

103

CODEPREP

Page 104: 新人Javaプログラマーに贈る基礎知識 + α

104

CODEPREP

Web サイト上で実際にコードを書きながら学べるサイト。非常に丁寧に一からコーディングを教えてくれるので、一度やってみるのがオススメ。まあ、とは言ってもそこまで深い内容のレッスンはまだ無いので、現状はあくまで初めての言語を学ぶ際の足がかり程度。これからに期待してます。

Page 105: 新人Javaプログラマーに贈る基礎知識 + α

105

ちなみに、 CODEPREP のように Web サイト上で実際にコーディングをしながら学べるサイトには「 Codecademy 」、「 Code School 」といったサイトがあります。どちらも英語なので難しいかもしれませんが、最低限読める人なら「 Codecademy 」は結構ボリュームもあって面白いと思います。

「 Code School 」は有料だし英語の解説動画を見た上でコーディングをするので個人的はちょっとキツい…

Page 106: 新人Javaプログラマーに贈る基礎知識 + α

106

あと、有用なサイトをちょっとだけ紹介して、今日は締めたいと思います。

今日話し足りなかったことはまた別途何らかの方法で共有します。

Page 107: 新人Javaプログラマーに贈る基礎知識 + α

107

• Qiita リンク

• StackOverflow リンク

• Codrops リンク

• Best of jQuery リンク

• coliss リンク

• はてなブックマーク リンク

• Hacker News リンク

• @IT リンク

Page 108: 新人Javaプログラマーに贈る基礎知識 + α

108

ご清聴ありがとうございました