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

What's hot (18)

Kyakusaki.rb
Kyakusaki.rbKyakusaki.rb
Kyakusaki.rb
Yasuyuki Fujikawa
 
Neo4j Profile Export/Import Tool
Neo4j Profile Export/Import ToolNeo4j Profile Export/Import Tool
Neo4j Profile Export/Import Tool
Masahiro Satake
 
Jsugプレゼン資料new
Jsugプレゼン資料newJsugプレゼン資料new
Jsugプレゼン資料new
Wataru Kakizoe
 
エッセンシャルCore springハンズオン
エッセンシャルCore springハンズオンエッセンシャルCore springハンズオン
エッセンシャルCore springハンズオン
土岐 孝平
 
リブセンスのインフラで使ってるAnsibleのお話
リブセンスのインフラで使ってるAnsibleのお話リブセンスのインフラで使ってるAnsibleのお話
リブセンスのインフラで使ってるAnsibleのお話
Shohei Koyama
 
インフラエンジニアとして普段心がけていること
インフラエンジニアとして普段心がけていることインフラエンジニアとして普段心がけていること
インフラエンジニアとして普段心がけていること
Shohei Koyama
 
とある Perl Monger の働き方
とある Perl Monger の働き方とある Perl Monger の働き方
とある Perl Monger の働き方
Yusuke Wada
 
React meetup 3_eight
React meetup 3_eightReact meetup 3_eight
React meetup 3_eight
Hideharu Okuma
 
インフラエンジニアってなんでしたっけ(仮)
インフラエンジニアってなんでしたっけ(仮)インフラエンジニアってなんでしたっけ(仮)
インフラエンジニアってなんでしたっけ(仮)
Akihiro Kuwano
 
STORES.jp x AngularJS
STORES.jp x AngularJSSTORES.jp x AngularJS
STORES.jp x AngularJS
Keisuke Makino
 
SeleniumIDEとSelenium WebDriver × Node.js Seleniumで業務効率化する15分
SeleniumIDEとSelenium WebDriver × Node.js Seleniumで業務効率化する15分SeleniumIDEとSelenium WebDriver × Node.js Seleniumで業務効率化する15分
SeleniumIDEとSelenium WebDriver × Node.js Seleniumで業務効率化する15分
松田 千尋
 
Spring Boot Introduction
Spring Boot IntroductionSpring Boot Introduction
Spring Boot Introduction
chibochibo
 
120225 bootstrap
120225 bootstrap120225 bootstrap
120225 bootstrap
TechGardenSchool
 
中国のクラウドサービスについて (サイバーエージェント×クックパッド合同勉強会LT資料)
中国のクラウドサービスについて (サイバーエージェント×クックパッド合同勉強会LT資料)中国のクラウドサービスについて (サイバーエージェント×クックパッド合同勉強会LT資料)
中国のクラウドサービスについて (サイバーエージェント×クックパッド合同勉強会LT資料)
Yuuki Namikawa
 
STORES.jpのそだてかた
STORES.jpのそだてかたSTORES.jpのそだてかた
STORES.jpのそだてかた
Keisuke Makino
 
2013 08-19 jjug
2013 08-19 jjug2013 08-19 jjug
2013 08-19 jjug
sk44_
 
HerokuでRails3.2 we love herokuの事例
HerokuでRails3.2 we love herokuの事例HerokuでRails3.2 we love herokuの事例
HerokuでRails3.2 we love herokuの事例
Naoto Koshikawa
 
20170401 #infrapre 自己紹介資料
20170401 #infrapre 自己紹介資料20170401 #infrapre 自己紹介資料
20170401 #infrapre 自己紹介資料
ごろう 野村
 
Neo4j Profile Export/Import Tool
Neo4j Profile Export/Import ToolNeo4j Profile Export/Import Tool
Neo4j Profile Export/Import Tool
Masahiro Satake
 
Jsugプレゼン資料new
Jsugプレゼン資料newJsugプレゼン資料new
Jsugプレゼン資料new
Wataru Kakizoe
 
エッセンシャルCore springハンズオン
エッセンシャルCore springハンズオンエッセンシャルCore springハンズオン
エッセンシャルCore springハンズオン
土岐 孝平
 
リブセンスのインフラで使ってるAnsibleのお話
リブセンスのインフラで使ってるAnsibleのお話リブセンスのインフラで使ってるAnsibleのお話
リブセンスのインフラで使ってるAnsibleのお話
Shohei Koyama
 
インフラエンジニアとして普段心がけていること
インフラエンジニアとして普段心がけていることインフラエンジニアとして普段心がけていること
インフラエンジニアとして普段心がけていること
Shohei Koyama
 
とある Perl Monger の働き方
とある Perl Monger の働き方とある Perl Monger の働き方
とある Perl Monger の働き方
Yusuke Wada
 
インフラエンジニアってなんでしたっけ(仮)
インフラエンジニアってなんでしたっけ(仮)インフラエンジニアってなんでしたっけ(仮)
インフラエンジニアってなんでしたっけ(仮)
Akihiro Kuwano
 
SeleniumIDEとSelenium WebDriver × Node.js Seleniumで業務効率化する15分
SeleniumIDEとSelenium WebDriver × Node.js Seleniumで業務効率化する15分SeleniumIDEとSelenium WebDriver × Node.js Seleniumで業務効率化する15分
SeleniumIDEとSelenium WebDriver × Node.js Seleniumで業務効率化する15分
松田 千尋
 
Spring Boot Introduction
Spring Boot IntroductionSpring Boot Introduction
Spring Boot Introduction
chibochibo
 
中国のクラウドサービスについて (サイバーエージェント×クックパッド合同勉強会LT資料)
中国のクラウドサービスについて (サイバーエージェント×クックパッド合同勉強会LT資料)中国のクラウドサービスについて (サイバーエージェント×クックパッド合同勉強会LT資料)
中国のクラウドサービスについて (サイバーエージェント×クックパッド合同勉強会LT資料)
Yuuki Namikawa
 
STORES.jpのそだてかた
STORES.jpのそだてかたSTORES.jpのそだてかた
STORES.jpのそだてかた
Keisuke Makino
 
2013 08-19 jjug
2013 08-19 jjug2013 08-19 jjug
2013 08-19 jjug
sk44_
 
HerokuでRails3.2 we love herokuの事例
HerokuでRails3.2 we love herokuの事例HerokuでRails3.2 we love herokuの事例
HerokuでRails3.2 we love herokuの事例
Naoto Koshikawa
 
20170401 #infrapre 自己紹介資料
20170401 #infrapre 自己紹介資料20170401 #infrapre 自己紹介資料
20170401 #infrapre 自己紹介資料
ごろう 野村
 

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

What's Cooking In Ruby 2.7
What's Cooking In Ruby 2.7What's Cooking In Ruby 2.7
What's Cooking In Ruby 2.7
Akinori Musha
 
チケット管理システム大決戦第二弾
チケット管理システム大決戦第二弾チケット管理システム大決戦第二弾
チケット管理システム大決戦第二弾
Ryutaro YOSHIBA
 
DevLove四国_LT_yohhatu
DevLove四国_LT_yohhatuDevLove四国_LT_yohhatu
DevLove四国_LT_yohhatu
Yoh Nakamura
 
じっくりコトコト煮込んだJavaスープ
じっくりコトコト煮込んだJavaスープじっくりコトコト煮込んだJavaスープ
じっくりコトコト煮込んだJavaスープ
Kazuhiro Serizawa
 
Javaから見たRubyの世界
Javaから見たRubyの世界Javaから見たRubyの世界
Javaから見たRubyの世界
Takafumi Yoshida
 
スクラム開発に取り組んでみた
スクラム開発に取り組んでみたスクラム開発に取り組んでみた
スクラム開発に取り組んでみた
yyasuyuki
 
Swiftを迷わず選んだ理由
Swiftを迷わず選んだ理由Swiftを迷わず選んだ理由
Swiftを迷わず選んだ理由
zuckerburg
 
Rails5クイックスタート
Rails5クイックスタートRails5クイックスタート
Rails5クイックスタート
Hirata Tomoko
 
プレゼン初心者にありがちなアンチパターン
プレゼン初心者にありがちなアンチパターンプレゼン初心者にありがちなアンチパターン
プレゼン初心者にありがちなアンチパターン
真俊 横田
 
クラスメソッド会社説明会in札幌 — メンバー紹介 #cmdevio
クラスメソッド会社説明会in札幌 — メンバー紹介   #cmdevioクラスメソッド会社説明会in札幌 — メンバー紹介   #cmdevio
クラスメソッド会社説明会in札幌 — メンバー紹介 #cmdevio
Shuji Watanabe
 
ガチリアルな修羅チーム開発
ガチリアルな修羅チーム開発ガチリアルな修羅チーム開発
ガチリアルな修羅チーム開発
Atsushi Kojima
 
Rubyist started to learn Groovy - things important to leran new LL
Rubyist started to learn Groovy - things important to leran new LLRubyist started to learn Groovy - things important to leran new LL
Rubyist started to learn Groovy - things important to leran new LL
Uchio Kondo
 
DBFluteフェス2018 荒井LT
DBFluteフェス2018 荒井LTDBFluteフェス2018 荒井LT
DBFluteフェス2018 荒井LT
ToshiakiArai2
 
「開発現場に伝えたい10のこと」それぞれの後日談_yohhatu
「開発現場に伝えたい10のこと」それぞれの後日談_yohhatu「開発現場に伝えたい10のこと」それぞれの後日談_yohhatu
「開発現場に伝えたい10のこと」それぞれの後日談_yohhatu
Yoh Nakamura
 
NSInvocationの便利さとハマりどころ
NSInvocationの便利さとハマりどころNSInvocationの便利さとハマりどころ
NSInvocationの便利さとハマりどころ
Yoichiro Sakurai
 
札幌ITひよこ会 #3 「副業とライフバランス」
札幌ITひよこ会 #3 「副業とライフバランス」札幌ITひよこ会 #3 「副業とライフバランス」
札幌ITひよこ会 #3 「副業とライフバランス」
Takayuki Fuwa
 
EPIU
EPIUEPIU
EPIU
Makoto Yonezawa
 
プログラミングのお勉強としてscratchをさわってみた
プログラミングのお勉強としてscratchをさわってみたプログラミングのお勉強としてscratchをさわってみた
プログラミングのお勉強としてscratchをさわってみた
HirokiIwanaga
 
EXTREME AZURE 2
EXTREME AZURE 2EXTREME AZURE 2
EXTREME AZURE 2
Yuki Igarashi
 
What's Cooking In Ruby 2.7
What's Cooking In Ruby 2.7What's Cooking In Ruby 2.7
What's Cooking In Ruby 2.7
Akinori Musha
 
チケット管理システム大決戦第二弾
チケット管理システム大決戦第二弾チケット管理システム大決戦第二弾
チケット管理システム大決戦第二弾
Ryutaro YOSHIBA
 
DevLove四国_LT_yohhatu
DevLove四国_LT_yohhatuDevLove四国_LT_yohhatu
DevLove四国_LT_yohhatu
Yoh Nakamura
 
じっくりコトコト煮込んだJavaスープ
じっくりコトコト煮込んだJavaスープじっくりコトコト煮込んだJavaスープ
じっくりコトコト煮込んだJavaスープ
Kazuhiro Serizawa
 
Javaから見たRubyの世界
Javaから見たRubyの世界Javaから見たRubyの世界
Javaから見たRubyの世界
Takafumi Yoshida
 
スクラム開発に取り組んでみた
スクラム開発に取り組んでみたスクラム開発に取り組んでみた
スクラム開発に取り組んでみた
yyasuyuki
 
Swiftを迷わず選んだ理由
Swiftを迷わず選んだ理由Swiftを迷わず選んだ理由
Swiftを迷わず選んだ理由
zuckerburg
 
Rails5クイックスタート
Rails5クイックスタートRails5クイックスタート
Rails5クイックスタート
Hirata Tomoko
 
プレゼン初心者にありがちなアンチパターン
プレゼン初心者にありがちなアンチパターンプレゼン初心者にありがちなアンチパターン
プレゼン初心者にありがちなアンチパターン
真俊 横田
 
クラスメソッド会社説明会in札幌 — メンバー紹介 #cmdevio
クラスメソッド会社説明会in札幌 — メンバー紹介   #cmdevioクラスメソッド会社説明会in札幌 — メンバー紹介   #cmdevio
クラスメソッド会社説明会in札幌 — メンバー紹介 #cmdevio
Shuji Watanabe
 
ガチリアルな修羅チーム開発
ガチリアルな修羅チーム開発ガチリアルな修羅チーム開発
ガチリアルな修羅チーム開発
Atsushi Kojima
 
Rubyist started to learn Groovy - things important to leran new LL
Rubyist started to learn Groovy - things important to leran new LLRubyist started to learn Groovy - things important to leran new LL
Rubyist started to learn Groovy - things important to leran new LL
Uchio Kondo
 
DBFluteフェス2018 荒井LT
DBFluteフェス2018 荒井LTDBFluteフェス2018 荒井LT
DBFluteフェス2018 荒井LT
ToshiakiArai2
 
「開発現場に伝えたい10のこと」それぞれの後日談_yohhatu
「開発現場に伝えたい10のこと」それぞれの後日談_yohhatu「開発現場に伝えたい10のこと」それぞれの後日談_yohhatu
「開発現場に伝えたい10のこと」それぞれの後日談_yohhatu
Yoh Nakamura
 
NSInvocationの便利さとハマりどころ
NSInvocationの便利さとハマりどころNSInvocationの便利さとハマりどころ
NSInvocationの便利さとハマりどころ
Yoichiro Sakurai
 
札幌ITひよこ会 #3 「副業とライフバランス」
札幌ITひよこ会 #3 「副業とライフバランス」札幌ITひよこ会 #3 「副業とライフバランス」
札幌ITひよこ会 #3 「副業とライフバランス」
Takayuki Fuwa
 
プログラミングのお勉強としてscratchをさわってみた
プログラミングのお勉強としてscratchをさわってみたプログラミングのお勉強としてscratchをさわってみた
プログラミングのお勉強としてscratchをさわってみた
HirokiIwanaga
 

More from Kazuhiro Serizawa (8)

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

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