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
780
うごいてるコードレビュー
うごイラ 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
370
我々はいかにして安全な 名前解決を手に入れるか / How do we get secure name resolution
itochan
0
110
MugenFS: クラウドストレージ利用時におけるキャッシュ戦略
itochan
0
130
PacketFS: ファイルシステムによるバックアップの自動化
itochan
0
85
おはようのとりかた
itochan
0
170
高校生におけるソーシャルメディア適正利用を奨励する活動について
itochan
0
340
Bitcoinでお金を稼ぐ #dentoolt
itochan
0
670
ラブアンドルビー
itochan
0
1.4k
冬に必見!Advent Calendar の書き方
itochan
1
2.3k
Other Decks in Programming
See All in Programming
DDDを志して3年経ったら「DDDの皮を被ったクリーンアーキテクチャ」になった話【デブサミ2024夏】
texmeijin
1
620
わかりやすい正解を捨てて、コトに向き合う - スクラムフェス金沢2024 スポンサーセッション
yusukekokubo
0
170
みんなのオブザーバビリティプラットフォームを作ってるんだがパフォーマンスがやばい #mackerelio #srenext
ne_sachirou
0
380
実用的かつリーズナブルな 「Azure × Gemini × LINE」~キャラクターBot 実装ライブデモ~
tomodo_ysys
1
170
Jetpack for KMP
fornewid
1
290
君たちはどうコードをレビューする (される) か / 大吉祥寺.pm
utgwkk
15
8.5k
CSC307 Lecture 08
javiergs
PRO
0
330
スクラムマスターって孤独じゃないですか?
yoshitaroyoyo
1
140
継続的な活動で築く地方エンジニアの道
myamashii
2
360
Microservices rules (July 2024) : what good looks like
cer
PRO
0
1.6k
ドメイン駆動設計の実践
masuda220
PRO
19
5.2k
Rustのweb開発を助ける 便利なツール紹介
yuki0418
1
190
Featured
See All Featured
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
121
18k
Designing the Hi-DPI Web
ddemaree
276
34k
Navigating Team Friction
lara
181
13k
Creatively Recalculating Your Daily Design Routine
revolveconf
214
11k
The Invisible Side of Design
smashingmag
294
50k
Learning to Love Humans: Emotional Interface Design
aarron
269
39k
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
34
1.9k
Clear Off the Table
cherdarchuk
89
320k
Making the Leap to Tech Lead
cromwellryan
127
8.7k
Atom: Resistance is Futile
akmur
261
25k
Faster Mobile Websites
deanohume
303
30k
Building Flexible Design Systems
yeseniaperezcruz
323
37k
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
ίʔυஅવ͖Ε͍ͳ΄͏͕͍͍
͝ਗ਼ௌ͋Γ͕ͱ͏ ͍͟͝·ͨ͠