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
810
うごいてるコードレビュー
うごイラ 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
400
我々はいかにして安全な 名前解決を手に入れるか / How do we get secure name resolution
itochan
0
140
MugenFS: クラウドストレージ利用時におけるキャッシュ戦略
itochan
0
160
PacketFS: ファイルシステムによるバックアップの自動化
itochan
0
120
おはようのとりかた
itochan
0
190
高校生におけるソーシャルメディア適正利用を奨励する活動について
itochan
0
380
Bitcoinでお金を稼ぐ #dentoolt
itochan
0
690
ラブアンドルビー
itochan
0
1.4k
冬に必見!Advent Calendar の書き方
itochan
1
2.5k
Other Decks in Programming
See All in Programming
decksh - a little language for decks
ajstarks
4
21k
kiroでゲームを作ってみた
iriikeita
0
150
新世界の理解
koriym
0
130
「リーダーは意思決定する人」って本当?~ 学びを現場で活かす、リーダー4ヶ月目の試行錯誤 ~
marina1017
0
210
AIのメモリー
watany
13
1.4k
Flutter로 Gemini와 MCP를 활용한 Agentic App 만들기 - 박제창 2025 I/O Extended Seoul
itsmedreamwalker
0
130
パスタの技術
yusukebe
1
310
ZeroETLで始めるDynamoDBとS3の連携
afooooil
0
160
AIに安心して任せるためにTypeScriptで一意な型を作ろう
arfes0e2b3c
0
340
대규모 트래픽을 처리하는 프론트 개발자의 전략
maryang
0
120
中級グラフィックス入門~効率的なメッシュレット描画~
projectasura
4
2.6k
MCPで実現できる、Webサービス利用体験について
syumai
7
2.5k
Featured
See All Featured
Side Projects
sachag
455
43k
Improving Core Web Vitals using Speculation Rules API
sergeychernyshev
18
1.1k
Designing Dashboards & Data Visualisations in Web Apps
destraynor
231
53k
Scaling GitHub
holman
461
140k
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
251
21k
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
10
1k
Chrome DevTools: State of the Union 2024 - Debugging React & Beyond
addyosmani
7
800
Building Flexible Design Systems
yeseniaperezcruz
328
39k
The Web Performance Landscape in 2024 [PerfNow 2024]
tammyeverts
8
760
Designing Experiences People Love
moore
142
24k
Designing for humans not robots
tammielis
253
25k
Producing Creativity
orderedlist
PRO
347
40k
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
ίʔυஅવ͖Ε͍ͳ΄͏͕͍͍
͝ਗ਼ௌ͋Γ͕ͱ͏ ͍͟͝·ͨ͠