SlideShare a Scribd company logo
Javaを書き始めて
1年半が経って思うこと
2014年5月31日
第六回 #渋谷java
Saturday, May 31, 14
自己紹介
• 芹沢和洋 28歳 ワカモノとオッサンの間
• 株式会社ビズリーチ CTO室
• 業務:社内への技術サポート・社内雑用全般
• @seri_k
• java(SAStruts,struts2,spring,DBFlute等) 1年半
ぐらい。その前はphpを2年ぐらい触ってました
• その他 ruby , php , iOS4時代にObj-c
• ブログ:seri::diary
http://serihiro.hatenablog.com/
Saturday, May 31, 14
最近はなぜか社内で
脅迫されてRails教えてます
http://codebreak.com/blog/takezoe/page/94d7e7/
Saturday, May 31, 14
ビズリーチではエンジニア
を大募集しております
• Webサービス開発エンジニア
java,scala←Scala始めました
• Androidアプリエンジニア
• iOSアプリエンジニア
• インフラエンジニア(全てAWS)
http://www.bizreach.co.jp/recruit/
Saturday, May 31, 14
今日話すこと
•java書いてきた一年半を振り返ってjavaを
使う前と後で受けた印象の違いについて
•ガチ勢が多い渋谷javaの中では
珍しくゆるふわな話です
•肩の力を抜いて楽にしてお聞き下さい
Saturday, May 31, 14
第一回渋谷java (2013.6.29)
• 当時入社半年
• java歴も半年
• javaにも自社サービ
ス開発という業務に
も慣れてきた頃
http://www.slideshare.net/kazuhiroserizawa988/shibuyajava1-lt
Saturday, May 31, 14
書き始めた時はこんな
つまらないミスをよくやった
if(“Hoge” == “Hoge”)
System.out.println(“hoge”);
}
int nyan = 32;
Integer nya-n = nyan;
==で比較してtrueにならない
無駄ボクシング(Integerとintの違いが分かってなかった)
Saturday, May 31, 14
書き始めた時はこんな
つまらないミスをよくやった
List<String> list
= Arrays.asList("hoge", "nya-n", "uwa-n");
	 	 for (String word : list) {
	 	 	 if (word.equals("nya-n")) {
	 	 	 	 list.remove(word);//UnsupportedOperationException
	 	 	 }
	 	 	 System.out.println(word);
	 	 }
for文でCollection回して要素を削除し
ようとしてUnsupportedOperationException
Saturday, May 31, 14
現場で飛び交う単語が
理解できない…
• あのてーしょん
• じぇねりくす
• かたぱらめーた
• でぃーあいこんてな
• とくめいくらす
日本語でおk…
Saturday, May 31, 14
当時の自分
『正直めんどくさい…』
Saturday, May 31, 14
ずっと書いてると認識が変わってくる
• めんどくさい言語仕様→慣れれば問題無い
• コンパイルエラーが出るからすぐにミスに気
づいて直せる→嬉しい!
• ジェネリクスが無いとCollectionがタイプセ
ーフにならない→ジェネリクス様様や!
• 型安全最高!
Saturday, May 31, 14
なのでLLと比較すると
• LL
• サクっと書けてすぐコンソールやサーバ上で動かせる
• 実行するまで結果が分からないので怖い。
リファクタはテスト無しではつらい
• 大規模化すると色々問題が出やすい
• java
• 理解は大変で覚える事が多くて動かすのもつらい
• 実行前にエラーが分かる。リファクタも容易
• 大規模化しても割とスムーズに開発できる
Saturday, May 31, 14
java書いてるんですか?
あー、
いろんなもの書かなくちゃいけなくて
大変ですね(苦笑)。
それにひきかえScalaは(ry
※実話
javaについて
よく言われることについて①
Saturday, May 31, 14
List<String> list =
new ArrayList<String>();
いつから全部手で打つと
錯覚していた…?
※java7からは右辺の型引数を省略可能
Saturday, May 31, 14
これをEclipseで書くと
new → AL →
ctrl(command) + space で
ArrayList<>() が補完
ctrl(command) + 2 → l  で
左辺と変数名を補完
Saturday, May 31, 14
それってIDEの力では…
• そうなんだけど、javaはIDEで書く
のがもはや前提
• であればIDEのスペック自体もjava
の能力と言って良いのでは…と思う
• タイプセーフだからこそ派手に自動
リファクタが出来る訳ですしおすし
Saturday, May 31, 14
javaはダサい
javaについて
よく言われることについて②
Saturday, May 31, 14
…
javaはダサい?
Saturday, May 31, 14
Saturday, May 31, 14
ださいというよりは
• 変化よりも安定性、下位互換性を重視す
る言語
• LLの文化とは目指している方向性が違う
のでLL勢からダサく見えても仕方がない
• 安定性やパフォーマンスの良さを活かし
た開発の仕方をすれば良いだけのこと
• javaで書くメリットが世の中にそもそ
も認識されていないという問題はある
Saturday, May 31, 14
まとめ
• phperが現場でいっぱいjava書いてたら良い
言語だと思うようになった
• java + Eclipse = 最強に見える
• IDEのショートカットは頑張って覚えるべ
き
• javaはダサくないよ!硬派なだけだよ!
Saturday, May 31, 14
まとめ
ご清聴ありがとうございました
Saturday, May 31, 14

More Related Content

PDF
第八回 #渋谷Java 最近のjava PaaS事情
PDF
OpenShift のある生活
PDF
JavaFXとRoboVMを使ってiOS上で動くアプリを試してみた
PDF
iPhoneアプリを Javaで書くよ?
PDF
TDD BootCamp in JJUG CCC - レガシーコード対策編 -
PDF
Java開発で活かしてほしいGit,CI,そして継続的デリバリー #jjug_ccc #ccc_r13
PDF
Springを何となく使ってる人が抑えるべきポイント
PDF
MF GeeksNight pplogの話
第八回 #渋谷Java 最近のjava PaaS事情
OpenShift のある生活
JavaFXとRoboVMを使ってiOS上で動くアプリを試してみた
iPhoneアプリを Javaで書くよ?
TDD BootCamp in JJUG CCC - レガシーコード対策編 -
Java開発で活かしてほしいGit,CI,そして継続的デリバリー #jjug_ccc #ccc_r13
Springを何となく使ってる人が抑えるべきポイント
MF GeeksNight pplogの話

What's hot (18)

PDF
Kyakusaki.rb
PPT
Neo4j Profile Export/Import Tool
PPTX
Jsugプレゼン資料new
PDF
エッセンシャルCore springハンズオン
PDF
リブセンスのインフラで使ってるAnsibleのお話
PDF
インフラエンジニアとして普段心がけていること
PDF
とある Perl Monger の働き方
PPTX
React meetup 3_eight
PDF
インフラエンジニアってなんでしたっけ(仮)
PDF
STORES.jp x AngularJS
PDF
SeleniumIDEとSelenium WebDriver × Node.js Seleniumで業務効率化する15分
PDF
Spring Boot Introduction
PDF
120225 bootstrap
PDF
中国のクラウドサービスについて (サイバーエージェント×クックパッド合同勉強会LT資料)
PDF
STORES.jpのそだてかた
PDF
2013 08-19 jjug
KEY
HerokuでRails3.2 we love herokuの事例
PPTX
20170401 #infrapre 自己紹介資料
Kyakusaki.rb
Neo4j Profile Export/Import Tool
Jsugプレゼン資料new
エッセンシャルCore springハンズオン
リブセンスのインフラで使ってるAnsibleのお話
インフラエンジニアとして普段心がけていること
とある Perl Monger の働き方
React meetup 3_eight
インフラエンジニアってなんでしたっけ(仮)
STORES.jp x AngularJS
SeleniumIDEとSelenium WebDriver × Node.js Seleniumで業務効率化する15分
Spring Boot Introduction
120225 bootstrap
中国のクラウドサービスについて (サイバーエージェント×クックパッド合同勉強会LT資料)
STORES.jpのそだてかた
2013 08-19 jjug
HerokuでRails3.2 we love herokuの事例
20170401 #infrapre 自己紹介資料
Ad

Similar to 第六回 #渋谷java Javaを書き始めて 1年半が経って思うこと (20)

PDF
What's Cooking In Ruby 2.7
PDF
チケット管理システム大決戦第二弾
PDF
DevLove四国_LT_yohhatu
PDF
じっくりコトコト煮込んだJavaスープ
KEY
Javaから見たRubyの世界
PPTX
スクラム開発に取り組んでみた
PPT
Swiftを迷わず選んだ理由
PPTX
Rails5クイックスタート
PDF
プレゼン初心者にありがちなアンチパターン
PDF
クラスメソッド会社説明会in札幌 — メンバー紹介 #cmdevio
PPTX
ガチリアルな修羅チーム開発
PDF
Rubyist started to learn Groovy - things important to leran new LL
PPTX
DBFluteフェス2018 荒井LT
PDF
Swift afterbeginner
PDF
「開発現場に伝えたい10のこと」それぞれの後日談_yohhatu
PDF
NSInvocationの便利さとハマりどころ
PDF
札幌ITひよこ会 #3 「副業とライフバランス」
PPTX
プログラミングのお勉強としてscratchをさわってみた
PDF
EXTREME AZURE 2
What's Cooking In Ruby 2.7
チケット管理システム大決戦第二弾
DevLove四国_LT_yohhatu
じっくりコトコト煮込んだJavaスープ
Javaから見たRubyの世界
スクラム開発に取り組んでみた
Swiftを迷わず選んだ理由
Rails5クイックスタート
プレゼン初心者にありがちなアンチパターン
クラスメソッド会社説明会in札幌 — メンバー紹介 #cmdevio
ガチリアルな修羅チーム開発
Rubyist started to learn Groovy - things important to leran new LL
DBFluteフェス2018 荒井LT
Swift afterbeginner
「開発現場に伝えたい10のこと」それぞれの後日談_yohhatu
NSInvocationの便利さとハマりどころ
札幌ITひよこ会 #3 「副業とライフバランス」
プログラミングのお勉強としてscratchをさわってみた
EXTREME AZURE 2
Ad

More from Kazuhiro Serizawa (8)

PDF
Introduction to Retrofit
PDF
Rubyはとても「人間的」
PDF
第四回 #渋谷java オープニング
PDF
Juzu Frameworkを使ってみた @第四回 渋谷java
PDF
第3回渋谷javaオープニング
PDF
第二回渋谷Java Opening #渋谷Java
PDF
PHPerがJava屋になるために乗り越えたこと
PDF
第一回Shibuya.javaオープニング
Introduction to Retrofit
Rubyはとても「人間的」
第四回 #渋谷java オープニング
Juzu Frameworkを使ってみた @第四回 渋谷java
第3回渋谷javaオープニング
第二回渋谷Java Opening #渋谷Java
PHPerがJava屋になるために乗り越えたこと
第一回Shibuya.javaオープニング

第六回 #渋谷java Javaを書き始めて 1年半が経って思うこと