ใ€ใฏใ‚„ใ™ใŽใ‚‹ใ•ใ„ใฆใใ‹ใ€‘

ๆ—ฉใ™ใŽใ‚‹ๆœ€้ฉๅŒ– ใจใฏ๏ผŸ

ๆœ€็ต‚ๆ›ดๆ–ฐ:
๐Ÿ’ก ้…ใ„ใจ็ขบใ‹ใ‚ใ‚‹ๅ‰ใฎ้ซ˜้€ŸๅŒ–ใฏใ€่ค‡้›‘ใ•ใ ใ‘ใ‚’ๅข—ใ‚„ใ—ใŒใก

ๆ—ฉใ™ใŽใ‚‹ๆœ€้ฉๅŒ–ใจใฏใ€ๆœฌๅฝ“ใซ้…ใ„็ฎ‡ๆ‰€ใ‹ใ‚’็ขบใ‹ใ‚ใ‚‹ๅ‰ใซใ€็ดฐใ‹ใชๆ€ง่ƒฝๆ”นๅ–„ใฎใŸใ‚ใซใ‚ณใƒผใƒ‰ใ‚’่ค‡้›‘ใซใ—ใฆใ—ใพใ†ใ“ใจใ€‚ใƒ‰ใƒŠใƒซใƒ‰ใƒปใ‚ฏใƒŒใƒผใ‚นใฎใ€Œๆ—ฉใ™ใŽใ‚‹ๆœ€้ฉๅŒ–ใฏ่ซธๆ‚ชใฎๆ นๆบใ€ใจใ„ใ†่จ€่‘‰ใง็Ÿฅใ‚‰ใ‚Œใ€ๅฏ่ชญๆ€งใ‚„ไฟๅฎˆๆ€งใ‚’ๆใชใ†ใƒชใ‚นใ‚ฏใจใ€่จˆๆธฌใ—ใฆใ‹ใ‚‰ๆœ€้ฉๅŒ–ใ™ใ‚‹่€ƒใˆๆ–นใ‚’่งฃ่ชฌใ€‚

๐Ÿ“Œ ใ“ใฎใƒšใƒผใ‚ธใฎใƒใ‚คใƒณใƒˆ
ๆœ€้ฉๅŒ–ใฎๆญฃใ—ใ„้ †ๅบ ๆญฃใ—ใ„้ †ๅบ โœ“ 1. ๅ‹•ใ‹ใ™ Make it work 2. ๆญฃใ—ใใ™ใ‚‹ Make it right 3. ่จˆๆธฌใ™ใ‚‹ Profile it 4. ้€Ÿใใ™ใ‚‹ Make it fast ๆ—ฉใ™ใŽใ‚‹ๆœ€้ฉๅŒ– โœ— 1. ๅ‹•ใ‹ใ™ ๏ผˆ้€”ไธญใงโ€ฆ๏ผ‰ ใ„ใใชใ‚Šๆœ€้ฉๅŒ–๏ผ 4. ้€Ÿใใ™ใ‚‹ ๏ผˆๅ‹˜ใงโ€ฆ๏ผ‰ ๆญฃใ—ใ„้ †ๅบ โ†’ ้‡ใ„็ฎ‡ๆ‰€ใซ็ตžใฃใฆๆ”นๅ–„ ๆ—ฉใ™ใŽใ‚‹ๆœ€้ฉๅŒ– โ†’ ๅŠนๆžœใŒๅฐใ•ใ„ใ“ใจใ‚‚
ๆญฃใ—ใ„ๆœ€้ฉๅŒ–ใฎ้ †ๅบใจใ€Œๆ—ฉใ™ใŽใ‚‹ๆœ€้ฉๅŒ–ใ€ใฎ็ฝ 
ใฒใ‚ˆใ“ ใฒใ‚ˆใ“
ใƒšใƒณใ‚ฎใƒณๅ…ˆ็”Ÿใ€ใ€Œๆ—ฉใ™ใŽใ‚‹ๆœ€้ฉๅŒ–ใ€ใฃใฆไฝ•๏ผŸ้€Ÿใใ™ใ‚‹ใฎใฏๆ—ฉใ„ใปใ†ใŒใ„ใ„ใ‚ˆใญ๏ผŸ
ใƒšใƒณใ‚ฎใƒณๅ…ˆ็”Ÿ ใƒšใƒณใ‚ฎใƒณๅ…ˆ็”Ÿ
็›ดๆ„Ÿ็š„ใซใฏใใ†ๆ€ใ†ใ‚ˆใญใ€‚ใงใ‚‚ใƒ‰ใƒŠใƒซใƒ‰ใƒปใ‚ฏใƒŒใƒผใ‚นใฃใฆใ„ใ†ใ‚ณใƒณใƒ”ใƒฅใƒผใ‚ฟ็ง‘ๅญฆ่€…ใŒใ€1974ๅนดใฎ่ซ–ๆ–‡ใงใ€Œๆ—ฉใ™ใŽใ‚‹ๆœ€้ฉๅŒ–ใฏ่ซธๆ‚ชใฎๆ นๆบใ€ใจๆ›ธใ„ใŸใ‚“ใ ใ€‚้‡่ฆใงใชใ„้ƒจๅˆ†ใฎ้€Ÿใ•ใ‚’ๆฐ—ใซใ—ใฆๆ™‚้–“ใ‚’ไฝฟใฃใŸใ‚Šใ€ใ‚ณใƒผใƒ‰ใ‚’่ค‡้›‘ใซใ—ใŸใ‚Šใ™ใ‚‹ใจใ€ใƒ‡ใƒใƒƒใ‚ฐใ‚„ไฟๅฎˆใซๆ‚ชๅฝฑ้ŸฟใŒๅ‡บใ‚‹ใจใ„ใ†่ฉฑใ ใ‚ˆ
ใฒใ‚ˆใ“ ใฒใ‚ˆใ“
้…ใ„ใ‹ใ‚ใ‹ใ‚‰ใชใ„ใฎใซ้€Ÿใใ™ใ‚‹ใฃใฆใ€ใฉใ†ใ„ใ†ใ“ใจ๏ผŸ
ใƒšใƒณใ‚ฎใƒณๅ…ˆ็”Ÿ ใƒšใƒณใ‚ฎใƒณๅ…ˆ็”Ÿ
ใŸใจใˆใฐใ€Œใ“ใฎใƒซใƒผใƒ—ใฏ้…ใใ†ใ ใ‹ใ‚‰ใ€ใฃใฆๅ‹˜ใง่ค‡้›‘ใชใ‚ญใƒฃใƒƒใ‚ทใƒฅใฎไป•็ต„ใฟใ‚’ๅ…ฅใ‚ŒใŸใจใ™ใ‚‹ใ‚ˆใญใ€‚ใงใ‚‚่จˆๆธฌใ—ใฆใฟใŸใ‚‰ใ€ๆœฌๅฝ“ใซๆ™‚้–“ใ‚’ไฝฟใฃใฆใ„ใŸใฎใฏใƒ‡ใƒผใ‚ฟใƒ™ใƒผใ‚นใฎๅ‘ผใณๅ‡บใ—ใ ใฃใŸโ€ฆใจใ„ใ†ใ“ใจใŒใ‚ใ‚‹ใ‚“ใ ใ€‚ใ‚ฏใƒŒใƒผใ‚นใ‚‚ใ€่จˆๆธฌใƒ„ใƒผใƒซใ‚’ไฝฟใฃใฆใใŸใƒ—ใƒญใ‚ฐใƒฉใƒžใƒผใฎ็ตŒ้จ“ใงใฏใ€Œใฉใ“ใŒ้‡่ฆใ‹ใฎๅ‹˜ใฏๅค–ใ‚Œใ‚‹ใ€ใจๆ›ธใ„ใฆใ„ใ‚‹ใ‚ˆ
ใฒใ‚ˆใ“ ใฒใ‚ˆใ“
ๅ‹˜ใงๆœ€้ฉๅŒ–ใ—ใกใ‚ƒใƒ€ใƒกใชใ‚“ใ ใญใ€‚ใ˜ใ‚ƒใ‚ใฉใ†ใ™ใ‚Œใฐใ„ใ„ใฎ๏ผŸ
ใƒšใƒณใ‚ฎใƒณๅ…ˆ็”Ÿ ใƒšใƒณใ‚ฎใƒณๅ…ˆ็”Ÿ
ใ€Œใพใš่จˆๆธฌใ€ๆฌกใซๆœ€้ฉๅŒ–ใ€ใ ใ‚ˆใ€‚ใƒ—ใƒญใƒ•ใ‚กใ‚คใƒฉใƒผใฃใฆใ„ใ†ใƒ„ใƒผใƒซใงใ€ๅฎŸ้š›ใซใฉใ“ใซๆ™‚้–“ใŒใ‹ใ‹ใฃใฆใ„ใ‚‹ใ‹ใ‚’ๆ•ฐๅ€คใง็ขบใ‹ใ‚ใฆใ‹ใ‚‰ๆ‰‹ใ‚’ๅ…ฅใ‚Œใ‚‹ใ‚“ใ ใ€‚ใใ†ใ™ใ‚ŒใฐๅŠนๆžœใฎใ‚ใ‚‹ๅ ดๆ‰€ใซ้›†ไธญใงใใ‚‹ใ—ใ€ไธ่ฆใช่ค‡้›‘ใ•ใ‚’้ฟใ‘ใ‚‰ใ‚Œใ‚‹ใ‚ˆ
ใฒใ‚ˆใ“ ใฒใ‚ˆใ“
ใงใ‚‚ๆœ€ๅˆใ‹ใ‚‰้€Ÿใ„ใ‚ณใƒผใƒ‰ใ‚’ๆ›ธใใฎใฏใƒ€ใƒกใชใฎ๏ผŸ
ใƒšใƒณใ‚ฎใƒณๅ…ˆ็”Ÿ ใƒšใƒณใ‚ฎใƒณๅ…ˆ็”Ÿ
ใ„ใ„่ณชๅ•ใ ใญใ€‚ๆ˜Žใ‚‰ใ‹ใซ้žๅŠน็އใชใ‚ขใƒซใ‚ดใƒชใ‚บใƒ ใ‚„ใ€N+1ๅ•้กŒใฎใ‚ˆใ†ใชๅˆ†ใ‹ใ‚Šใ‚„ใ™ใ„็„ก้ง„ใ‚’้ฟใ‘ใ‚‹ใฎใฏใ€ๆ—ฉใ™ใŽใ‚‹ๆœ€้ฉๅŒ–ใ˜ใ‚ƒใชใใฆๆ™ฎ้€šใฎ่‰ฏใ„่จญ่จˆใ ใ‚ˆใ€‚ใ‚ฏใƒŒใƒผใ‚น่‡ช่บซใ‚‚ใ€็‰นๅฎšใ•ใ‚ŒใŸ้‡่ฆใช้ƒจๅˆ†ใชใ‚‰12%ใฎๆ”นๅ–„ใงใ‚‚่ปฝ่ฆ–ใ™ในใใงใชใ„ใจๆ›ธใ„ใฆใ„ใ‚‹ใ‚“ใ ใ€‚ๆˆ’ใ‚ใฆใ„ใ‚‹ใฎใฏใ€้‡่ฆใงใชใ„้ƒจๅˆ†ใฎๅฐใ•ใชๅŠน็އใฎใŸใ‚ใซใ€่ชญใฟใ‚„ใ™ใ•ใ‚„ไฟๅฎˆๆ€งใ‚’็Š ็‰ฒใซใ™ใ‚‹ใ“ใจใชใ‚“ใ ใญ
ใฒใ‚ˆใ“ ใฒใ‚ˆใ“
ๆœ€้ฉๅŒ–ใฎ้ †็•ชใ‚’่ฆšใˆใ‚‹ๅˆ่จ€่‘‰ใฟใŸใ„ใชใ‚‚ใฎใฏใ‚ใ‚‹๏ผŸ
ใƒšใƒณใ‚ฎใƒณๅ…ˆ็”Ÿ ใƒšใƒณใ‚ฎใƒณๅ…ˆ็”Ÿ
ใ€ŒMake it work, make it right, make it fast๏ผˆๅ‹•ใ‹ใ›ใ€ๆญฃใ—ใใ—ใ‚ใ€ใใ‚Œใ‹ใ‚‰้€Ÿใใ—ใ‚๏ผ‰ใ€ใจใ„ใ†่จ€ใ„ๅ›žใ—ใŒใ‚ˆใไฝฟใ‚ใ‚Œใ‚‹ใ‚ˆใ€‚ใพใšๆญฃใ—ใๅ‹•ใใ‚ทใƒณใƒ—ใƒซใชใ‚ณใƒผใƒ‰ใซใ—ใฆใŠใ‘ใฐใ€่จˆๆธฌใ—ใฆ้‡ใ„็ฎ‡ๆ‰€ใŒ่ฆ‹ใคใ‹ใฃใŸใจใใซๅฎ‰ๅ…จใซ็›ดใ—ใ‚„ใ™ใ„ใ‚“ใ ใ€‚ใŸใ ใ—ๆ€ง่ƒฝใŒ่ฆไปถใใฎใ‚‚ใฎใฎๅ ดๅˆใฏใ€่จญ่จˆใฎๆฎต้šŽใ‹ใ‚‰็›ฎๆจ™ๅ€คใ‚’ๆฑบใ‚ใฆ่จˆๆธฌใ—ใฆใŠใ“ใ†ใญ
ใ‚‚ใฃใจ่ฉณใ—ใ็Ÿฅใ‚ŠใŸใ„ไบบใธ

ใ€Œๆ—ฉใ™ใŽใ‚‹ๆœ€้ฉๅŒ–ใฏ่ซธๆ‚ชใฎๆ นๆบใ€ใ‚’็†็”ฑใซใ€ๆ€ง่ƒฝใ‚’ๆœ€ๅพŒใพใง่€ƒใˆใชใใฆใ„ใ„ใฎ๏ผŸ

ใ„ใ„ใˆใ€‚ใ‚ฏใƒŒใƒผใ‚นใฎๅŽŸๆ–‡ใฏใ€Œๅฐใ•ใชๅŠน็އใ€ใซใคใ„ใฆใ€Œ97%ใใ‚‰ใ„ใฎๅ ด้ขใงใฏๅฟ˜ใ‚Œใ‚‹ในใใ€ใจ่จ€ใฃใŸใ‚ใจใงใ€ใ€Œ้‡่ฆใช3%ใฎๆฉŸไผšใฏ้€ƒใ™ในใใงใฏใชใ„ใ€ใ€ŒใŸใ ใ—ใใฎ้ƒจๅˆ†ใ‚’็‰นๅฎšใ—ใฆใ‹ใ‚‰ๆณจๆ„ๆทฑใ่ฆ‹ใ‚‹ในใใ ใ€ใจ็ถšใ‘ใฆใ„ใ‚‹ใ‚ˆใ€‚ใƒฌใ‚นใƒใƒณใ‚นๆ™‚้–“ใฎ็›ฎๆจ™ใŒใ‚ใ‚‹ใ‚ทใ‚นใƒ†ใƒ ใ‚„ๅคง้‡ใƒ‡ใƒผใ‚ฟใ‚’ๆ‰ฑใ†ๅ‡ฆ็†ใงใฏใ€ๆ—ฉใ„ๆฎต้šŽใ‹ใ‚‰็›ฎๆจ™ใ‚’ๆฑบใ‚ใฆ่จˆๆธฌใ—ใ€ใ‚ขใƒซใ‚ดใƒชใ‚บใƒ ใ‚„ใƒ‡ใƒผใ‚ฟๆง‹้€ ใฏๆœ€ๅˆใ‹ใ‚‰้ฉๅˆ‡ใชใ‚‚ใฎใ‚’้ธใถๅฟ…่ฆใŒใ‚ใ‚‹ใ‚“ใ ใ€‚

ใƒšใƒณใ‚ฎใƒณ
ใพใจใ‚๏ผšใ–ใฃใใ‚Šใ“ใ‚Œใ ใ‘่ฆšใˆใ‚ŒใฐOK๏ผ
ใ€Œๆ—ฉใ™ใŽใ‚‹ๆœ€้ฉๅŒ–ใ€ใฃใฆๅ‡บใฆใใŸใ‚‰ใ€Œ้…ใ„ใจ็ขบใ‹ใ‚ใ‚‹ๅ‰ใซ็ดฐใ‹ใ้€Ÿใใ—ใ‚ˆใ†ใจใ™ใ‚‹ใชใ€‚่จˆๆธฌใ—ใฆ้‡ใ„ๅ ดๆ‰€ใ‚’่ฆ‹ใคใ‘ใฆใ‹ใ‚‰็›ดใ›ใ€ใจๆ€ใˆใ‚Œใฐใ ใ„ใŸใ„OK๏ผ
๐Ÿ“– ใŠใพใ‘๏ผš่‹ฑ่ชžใฎๆ„ๅ‘ณ
ใ€ŒPremature Optimizationใ€ ๏ผ ๆ™‚ๆœŸๅฐšๆ—ฉใชๆœ€้ฉๅŒ–
๐Ÿ’ฌ ใƒ‰ใƒŠใƒซใƒ‰ใƒปใ‚ฏใƒŒใƒผใ‚นใŒ1974ๅนดใฎ่ซ–ๆ–‡ใ€ŒStructured Programming with go to Statementsใ€ใงๆ›ธใ„ใŸไธ€ๆ–‡ใ ใ‚ˆใ€‚ใ€Œๅฐใ•ใชๅŠน็އใฎใ“ใจใฏใ€97%ใใ‚‰ใ„ใฎๅ ด้ขใงใฏๅฟ˜ใ‚Œใ‚‹ในใใ ใ€‚ๆ—ฉใ™ใŽใ‚‹ๆœ€้ฉๅŒ–ใฏ่ซธๆ‚ชใฎๆ นๆบใงใ‚ใ‚‹ใ€‚ใใ‚Œใงใ‚‚ใ€้‡่ฆใช3%ใฎๆฉŸไผšใ‚’้€ƒใ™ในใใงใฏใชใ„ใ€ใจ็ถšใ„ใฆใ„ใ‚‹ใ‚“ใ 

ๅ‚่€ƒ่ณ‡ๆ–™

โ† ็”จ่ชž้›†ใซใ‚‚ใฉใ‚‹