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
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
Kazunori Jo
August 01, 2014
Programming
830
1
Share
うごいてるコードレビュー
うごイラ Tech Talks
Kazunori Jo
August 01, 2014
More Decks by Kazunori Jo
See All by Kazunori Jo
爆速で組織になじみ “Work is Fun” を体現するIVRyのオンボーディング
itochan
1
140
ビデオ会議の音をよくする / Making Sound Better with Video Conference
itochan
0
430
我々はいかにして安全な 名前解決を手に入れるか / How do we get secure name resolution
itochan
0
160
MugenFS: クラウドストレージ利用時におけるキャッシュ戦略
itochan
0
190
PacketFS: ファイルシステムによるバックアップの自動化
itochan
0
150
おはようのとりかた
itochan
0
230
高校生におけるソーシャルメディア適正利用を奨励する活動について
itochan
0
400
Bitcoinでお金を稼ぐ #dentoolt
itochan
0
720
ラブアンドルビー
itochan
0
1.5k
Other Decks in Programming
See All in Programming
20260315 AWSなんもわからん🥲
chiilog
2
180
PHPで TLSのプロトコルを実装してみるをもう一度しゃべりたい
higaki_program
0
140
L’IA au service des devs : Anatomie d'un assistant de Code Review
toham
0
190
AIと共にエンジニアとPMの “二刀流”を実現する
naruogram
0
120
How to stabilize UI tests using XCTest
akkeylab
0
150
仕様漏れ実装漏れをなくすトレーサビリティAI基盤のご紹介
orgachem
PRO
8
4.1k
Codexに役割を持たせる 他のAIエージェントと組み合わせる実務Tips
o8n
4
1.5k
ロボットのための工場に灯りは要らない
watany
12
3.3k
車輪の再発明をしよう!PHP で実装して学ぶ、Web サーバーの仕組みと HTTP の正体
h1r0
2
480
テレメトリーシグナルが導くパフォーマンス最適化 / Performance Optimization Driven by Telemetry Signals
seike460
PRO
2
200
モダンOBSプラグイン開発
umireon
0
190
Cyrius ーLinux非依存にコンテナをネイティブ実行する専用OSー
n4mlz
0
270
Featured
See All Featured
Principles of Awesome APIs and How to Build Them.
keavy
128
17k
Measuring & Analyzing Core Web Vitals
bluesmoon
9
800
How to build an LLM SEO readiness audit: a practical framework
nmsamuel
1
700
A Guide to Academic Writing Using Generative AI - A Workshop
ks91
PRO
1
250
Leo the Paperboy
mayatellez
6
1.6k
Beyond borders and beyond the search box: How to win the global "messy middle" with AI-driven SEO
davidcarrasco
3
99
Kristin Tynski - Automating Marketing Tasks With AI
techseoconnect
PRO
0
210
Pawsitive SEO: Lessons from My Dog (and Many Mistakes) on Thriving as a Consultant in the Age of AI
davidcarrasco
0
99
GitHub's CSS Performance
jonrohan
1032
470k
Hiding What from Whom? A Critical Review of the History of Programming languages for Music
tomoyanonymous
2
640
JAMstack: Web Apps at Ludicrous Speed - All Things Open 2022
reverentgeek
1
400
Reality Check: Gamification 10 Years Later
codingconduct
0
2.1k
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
ίʔυஅવ͖Ε͍ͳ΄͏͕͍͍
͝ਗ਼ௌ͋Γ͕ͱ͏ ͍͟͝·ͨ͠