SlideShare a Scribd company logo
1 of 22
Download to read offline
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

中国のクラウドサービスについて (サイバーエージェント×クックパッド合同勉強会LT資料)
中国のクラウドサービスについて (サイバーエージェント×クックパッド合同勉強会LT資料)中国のクラウドサービスについて (サイバーエージェント×クックパッド合同勉強会LT資料)
中国のクラウドサービスについて (サイバーエージェント×クックパッド合同勉強会LT資料)
Yuuki Namikawa
 
2013 08-19 jjug
2013 08-19 jjug2013 08-19 jjug
2013 08-19 jjug
sk44_
 

What's hot (20)

Kyakusaki.rb
Kyakusaki.rbKyakusaki.rb
Kyakusaki.rb
 
Neo4j Profile Export/Import Tool
Neo4j Profile Export/Import ToolNeo4j Profile Export/Import Tool
Neo4j Profile Export/Import Tool
 
Jsugプレゼン資料new
Jsugプレゼン資料newJsugプレゼン資料new
Jsugプレゼン資料new
 
エッセンシャルCore springハンズオン
エッセンシャルCore springハンズオンエッセンシャルCore springハンズオン
エッセンシャルCore springハンズオン
 
リブセンスのインフラで使ってるAnsibleのお話
リブセンスのインフラで使ってるAnsibleのお話リブセンスのインフラで使ってるAnsibleのお話
リブセンスのインフラで使ってるAnsibleのお話
 
インフラエンジニアとして普段心がけていること
インフラエンジニアとして普段心がけていることインフラエンジニアとして普段心がけていること
インフラエンジニアとして普段心がけていること
 
とある Perl Monger の働き方
とある Perl Monger の働き方とある Perl Monger の働き方
とある Perl Monger の働き方
 
React meetup 3_eight
React meetup 3_eightReact meetup 3_eight
React meetup 3_eight
 
クローズドソースから始めるオープンソース
クローズドソースから始めるオープンソースクローズドソースから始めるオープンソース
クローズドソースから始めるオープンソース
 
インフラエンジニアってなんでしたっけ(仮)
インフラエンジニアってなんでしたっけ(仮)インフラエンジニアってなんでしたっけ(仮)
インフラエンジニアってなんでしたっけ(仮)
 
「速」を落とさないコードレビュー
「速」を落とさないコードレビュー「速」を落とさないコードレビュー
「速」を落とさないコードレビュー
 
STORES.jp x AngularJS
STORES.jp x AngularJSSTORES.jp x AngularJS
STORES.jp x AngularJS
 
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
 
120225 bootstrap
120225 bootstrap120225 bootstrap
120225 bootstrap
 
中国のクラウドサービスについて (サイバーエージェント×クックパッド合同勉強会LT資料)
中国のクラウドサービスについて (サイバーエージェント×クックパッド合同勉強会LT資料)中国のクラウドサービスについて (サイバーエージェント×クックパッド合同勉強会LT資料)
中国のクラウドサービスについて (サイバーエージェント×クックパッド合同勉強会LT資料)
 
STORES.jpのそだてかた
STORES.jpのそだてかたSTORES.jpのそだてかた
STORES.jpのそだてかた
 
Hatena::Letの式年遷宮
Hatena::Letの式年遷宮Hatena::Letの式年遷宮
Hatena::Letの式年遷宮
 
2013 08-19 jjug
2013 08-19 jjug2013 08-19 jjug
2013 08-19 jjug
 
HerokuでRails3.2 we love herokuの事例
HerokuでRails3.2 we love herokuの事例HerokuでRails3.2 we love herokuの事例
HerokuでRails3.2 we love herokuの事例
 

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

DevLove四国_LT_yohhatu
DevLove四国_LT_yohhatuDevLove四国_LT_yohhatu
DevLove四国_LT_yohhatu
Yoh Nakamura
 
Javaから見たRubyの世界
Javaから見たRubyの世界Javaから見たRubyの世界
Javaから見たRubyの世界
Takafumi Yoshida
 
クラスメソッド会社説明会in札幌 — メンバー紹介 #cmdevio
クラスメソッド会社説明会in札幌 — メンバー紹介   #cmdevioクラスメソッド会社説明会in札幌 — メンバー紹介   #cmdevio
クラスメソッド会社説明会in札幌 — メンバー紹介 #cmdevio
Shuji Watanabe
 

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

More from Kazuhiro Serizawa (8)

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

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