Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
うごいてるコードレビュー
Search
Kazunori Jo
August 01, 2014
Programming
1
800
うごいてるコードレビュー
うごイラ Tech Talks
Kazunori Jo
August 01, 2014
Tweet
Share
More Decks by Kazunori Jo
See All by Kazunori Jo
ビデオ会議の音をよくする / Making Sound Better with Video Conference
itochan
0
390
我々はいかにして安全な 名前解決を手に入れるか / How do we get secure name resolution
itochan
0
130
MugenFS: クラウドストレージ利用時におけるキャッシュ戦略
itochan
0
160
PacketFS: ファイルシステムによるバックアップの自動化
itochan
0
120
おはようのとりかた
itochan
0
190
高校生におけるソーシャルメディア適正利用を奨励する活動について
itochan
0
370
Bitcoinでお金を稼ぐ #dentoolt
itochan
0
690
ラブアンドルビー
itochan
0
1.4k
冬に必見!Advent Calendar の書き方
itochan
1
2.5k
Other Decks in Programming
See All in Programming
WindowInsetsだってテストしたい
ryunen344
1
200
プロダクト志向なエンジニアがもう一歩先の価値を目指すために意識したこと
nealle
0
110
deno-redisの紹介とJSRパッケージの運用について (toranoana.deno #21)
uki00a
0
150
LT 2025-06-30: プロダクトエンジニアの役割
yamamotok
0
550
エラーって何種類あるの?
kajitack
5
320
LINEヤフー データグループ紹介
lycorp_recruit_jp
0
1.1k
Benchmark
sysong
0
270
地方に住むエンジニアの残酷な現実とキャリア論
ichimichi
5
1.4k
ReadMoreTextView
fornewid
1
480
XSLTで作るBrainfuck処理系
makki_d
0
210
設計やレビューに悩んでいるPHPerに贈る、クリーンなオブジェクト設計の指針たち
panda_program
6
1.6k
AIプログラマーDevinは PHPerの夢を見るか?
shinyasaita
1
170
Featured
See All Featured
How STYLIGHT went responsive
nonsquared
100
5.6k
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
46
9.6k
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
161
15k
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
35
2.4k
Thoughts on Productivity
jonyablonski
69
4.7k
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
48
2.8k
jQuery: Nuts, Bolts and Bling
dougneiner
63
7.8k
The Cost Of JavaScript in 2023
addyosmani
51
8.5k
Designing for humans not robots
tammielis
253
25k
Practical Orchestrator
shlominoach
188
11k
Visualization
eitanlees
146
16k
Improving Core Web Vitals using Speculation Rules API
sergeychernyshev
17
940
Transcript
͏͍ͯ͝Δ ίʔυϨϏϡʔ JUPDIBO IUUQJOTJEFQJYJWOFUFOUSZ ͏͝Πϥ5FDI5BMLT
None
͏͝Πϥഒ
ൃදऀʹ͍ͭͯ w ͍ͱ͓ w !J w IUUQJUPDIBOKQ w ϐΫγϒΞϧόΠτʹಥೖ w
ॳΊͯձࣾͰ-5͠·͢
ൃදऀʹ͍ͭͯ w "OESPJEΞϓϦ։ൃऀ w ൃදऀͷதͰ࠷͏͝Πϥʹؔͯ͠ ݟ͕ͳ͍Ͱ͢
͏͝Πϥʹ͍ͭͯͪΐͬͱߟ͑ͯΈͨ | ΒΜͩΉ͚Μ͖Ύ͏͡ΐ! http://rndomhack.com/2014/07/04/%E3%81%86%E3%81%94%E3%82%A4%E3%83%A9%E3%81%AB %E3%81%A4%E3%81%84%E3%81%A6%E3%81%A1%E3%82%87%E3%81%A3%E3%81%A8%E8%80%83 %E3%81%88%E3%81%A6%E3%81%BF%E3%81%9F/ l࣮ࡍͷ͏͝Πϥ 5FDI5BMLTͳΜ͔ʹ ߦ͚͍͍͔͠Ε· ͤΜɻz
࣮ࡍͷΛ͠·͢
͏͝Πϥͱ w ͏͘͝Πϥετͷུ w දهͷΏΕ
None
None
͏͝Πϥͱ w ͏͝ΠϥPS͏͘͝Πϥετ PS6HPJSBPS"OJNBUFE*MMVTUSBUJPO w ͏͝Πϥ͕ਖ਼໊ࣜশ͔Ͳ͏͔Θ͔Βͳ͘ ͳ͖ͬͯͨ w ͜ͷʹ͓͍ͯ͏͝ΠϥͰਐߦ͠·͢
ίʔυϨϏϡʔ ʹ͍ͭͯ
"OESPJEΞϓϦ w ଞϓϩδΣΫτͰ(JU-BC͕ΘΕͯ ͍Δ͕ɺΞϓϦͱ͍͔ͭ͘ͷϓϩδΣ ΫτͰ(JU)VC͕ΘΕ͍ͯΔ w ݱࡏ"OESPJEΞϓϦͷίʔυΛॻ͍ͯ ͍Δͷࣾһ໊ ΞϧόΠτ໊
ϨϏϡʔͷྲྀΕ
1VMM3FRVFTU ཱ͕ͭ
ϨϏϡʔͯ͠ʂ ཉٻߴ·Δ
ϨϏϡʔΛ͢Δ
Αͦ͞͏
Α͞
IUUQTUXJUUFSDPNUPUPUPTIJTUBUVTFT
-(5. -00,4(00%50.& IUUQXXXMHUNJOJ;6;
ಈ͖ॏཁ
ίʔυϨϏϡʔʹ ಈ͖Λ
͏͍ͯ͝Δ ίʔυϨϏϡʔ
None
None
DPNNFOUT
None
BEEJUJPOT EFMFUJPOT
େྔͷมߋ ഭΓ͘Δίʔυ
్தͰϨϏϡΞ͕ มΘͬͨΓͨ͠
มߋଟ͗ͯ͢ ݟΕͳ͍
ͦ͜ΛͳΜͱ͔
ػೳ໘ͷϨϏϡʔ લͷϨϏϡΞ͕طʹ ͍͍͍ͩͨͬͯͨ
ओʹ࡞๏ͳͲͷ Α͘ͳ͍ίʔυ ΛϨϏϡʔͨ͠
None
ίʔυͷ
ਓͷϨϏϡΞ !@@DIPDPNFMPO !J
ྫ֎Λ QSJOU4UBDL5SBDF͠ͳ͍ ✘ Bad ! 1 try { 2 //
something code 3 } catch (SomethingException e) { 4 e.printStackTrace(); 5 }
ྫ֎Λ QSJOU4UBDL5SBDF͠ͳ͍ ✔ Good ! 1 try { 2 //
something code... 3 } catch (SomethingException e) { 4 // custom log utils 5 LogUtils.e("PixivAndroidApp", "SomethingException", e); 6 }
*%&͕ੜ͢Δ ίϝϯτΛফ͢ ✘ Bad ! 1 package jp.pxv.android; 2 3
/** 4 * Created by Chobi on 2014/05/26. 5 */ 6 7 public class CreatedByComment { IUUQTUBDLPWFSqPXDPNRVFTUJPOT
*%&͕ੜ͢Δ ίϝϯτΛফ͢ ✔ Good ! 1 package jp.pxv.android; 2 3
public class CreatedByComment { IUUQTUBDLPWFSqPXDPNRVFTUJPOT
ఆTUBUJDpOBMͰ 1 public class Constants { 2 // ✘ Bad
3 private final String BAD_FOO = "foo"; 4 private final String BAD_BAR = "bar"; 5 6 // ✔ Good 7 private static final String GOOD_FOO = "foo"; 8 private static final String GOOD_BAR = "bar"; 9 }
ม໊ ✘ Bad 1 @Override 2 public void onProgressChanged(float progressRate)
{ 3 final float _progressRate = progressRate; 4 uiThreadHandler.post(new Runnable() { 5 @Override 6 public void run() { 7 if (_progressRate == 1) { 8 progressBar.setVisibility(View.GONE); 9 } 10 } 11 }); 12 }
ม໊ ✔ Good 1 @Override 2 public void onProgressChanged(final float
progressRate) { 3 uiThreadHandler.post(new Runnable() { 4 @Override 5 public void run() { 6 if (progressRate == 1) { 7 progressBar.setVisibility(View.GONE); 8 } 9 } 10 }); 11 }
ଞʹ w ্ྲྀϒϥϯνͰ͢Ͱʹมߋ͞Ε͍ͯΔ ͷ͕1VMM3FRVFTUͷϒϥϯνͰಉ ͡มߋͷผͷDPNNJUΛ͍ͯ͠Δ w ˠఆظతʹ্ྲྀϒϥϯνΛ git merge --no-ffͰऔΓࠐΊ
Α͍
·ͱΊ w มߋ͕ଟ͗͢ΔͱϨϏϡʔ͠ʹ͍͘ w ϨϏϡʔΛසൟʹߦ͏ͳͲ͢Δඞཁ͕͋Δ ˠ1VMM3FRVFTUͷ୯ҐΛࡉ͔͘͢Δ w ͏͔͝ͳ͍ίʔυΑΓ͏͘͝ίʔυͷ΄ ͏͕͍͍ w
ίʔυஅવ͖Ε͍ͳ΄͏͕͍͍
͝ਗ਼ௌ͋Γ͕ͱ͏ ͍͟͝·ͨ͠