Hi there ๐Ÿ‘‹

These are what I learned.

Clean Coder

ใƒ—ใƒญๆ„่ญ˜ ใƒ—ใƒญใซใชใ‚‹ๅ‰ใซๆณจๆ„ใ—ใŸใ„ใ“ใจ ใƒ—ใƒญใซใชใ‚‰ใชใ„ใฎใฏ็ฐกๅ˜ใ ใ€‚่‡ชๅˆ†ใฎไป•ไบ‹ใซ่ฒฌไปปใ‚’ๆŒใŸใชใ‘ใ‚Œใฐใ„ใ„ใ€‚ใ™ในใฆไธŠๅธใซใŠไปปใ›ใ ใ€‚ ใƒŸใ‚นใ‚’ใ—ใŸใ‚‰ไธŠๅธใŒๅพŒๅง‹ๆœซใ‚’ใ—ใฆใใ‚Œใ‚‹ใ€‚ใ ใŸใ€ใƒ—ใƒญใฏ่‡ชๅˆ†ใงๅพŒๅง‹ๆœซใ‚’ใ™ใ‚‹ใ€‚ ๆฉŸ่ƒฝใซๅฑๅฎณใ‚’ๅŠ ใˆใฆใฏใ„ใ‘ใชใ„ ใ‚ฝใƒ•ใƒˆใ‚ฆใ‚งใ‚ขใ‚’ใƒชใƒชใƒผใ‚นใ™ใ‚‹ใจใใซใฏใ€QAใซๅ•้กŒใ‚’่ฆ‹ใคใ‘ใฆใ‚‚ใ‚‰ใฃใฆใฏใ„ใ‘ใชใ„ใ€‚ ไธๅ…ทๅˆใŒใ‚ใ‚Šใใ†ใชใ‚ณใƒผใƒ‰ใ‚’ใ‚ใ–ใจQAใซๆธกใ™ใ‚ˆใ†ใงใฏใ€ใƒ—ใƒญใฎ้ขจๅœŸใซใ‚‚็ฝฎใ‘ใชใ„ใ€‚ ใงใฏใ€ไธๅ…ทๅˆใŒใ‚ใ‚Šใใ†ใชใ‚ณใƒผใƒ‰ใจใฏไฝ•ใ ใ‚ใ†ใ‹๏ผŸ่ฉณ็ดฐใŒใ‚ใ‹ใ‚‰ใชใ„ใ‚ณใƒผใƒ‰ใ ๏ผ ใ‚ณใƒผใƒ‰ใŒๅ‹•ใ„ใฆใ„ใ‚‹ใ“ใจใ‚’ใฉใ†ใ‚„ใฃใฆๆŠŠๆกใ™ใ‚‹ใฎใ ใ‚ใ†ใ‹๏ผŸ็ฐกๅ˜ใ ใ€‚ใƒ†ใ‚นใƒˆใ™ใ‚Œใฐใ„ใ„ใ€‚ ไฝ•ๅบฆใ‚‚ใƒ†ใ‚นใƒˆใ™ใ‚‹ใฎใ ใ€‚ๆ‰‹ใ‚’ๅค‰ใˆใ€ๅ“ใ‚’ๅค‰ใˆใ€ใ‚ใ‚‰ใ‚†ใ‚‹ๆ–นๆณ•ใงใƒ†ใ‚นใƒˆใ™ใ‚‹ใฎใ ใ€‚ ใƒ†ใ‚นใƒˆใซใฏๆ™‚้–“ใŒใ‹ใ‹ใ‚Šใ™ใŽใ‚‹ใจๆ€ใฃใฆใ„ใ‚‹ใ‹ใ‚‚ใ—ใ‚Œใชใ„ใ€‚ใ‚นใ‚ฑใ‚ธใƒฅใƒผใƒซใ‚„็ดๆœŸใฏๅฎˆใ‚‰ใชใ„ใ‘ใ‚Œใฐใ„ใ‘ใชใ„ใ€‚ ใƒ†ใ‚นใƒˆใ ใ‘ใ‚„ใฃใฆใŸใ‚‰ใ‚ณใƒผใƒ‰ใŒๆ›ธใ‘ใชใ„ใ˜ใ‚ƒใชใ„ใ‹ใ€‚ใ„ใ„ๆŒ‡ๆ‘˜ใ ๏ผ ใ ใ‹ใ‚‰ใ“ใใ€ใƒ†ใ‚นใƒˆใ‚’่‡ชๅ‹•ๅŒ–ใ™ใ‚‹ใ‚“ใ ใ€‚ใ™ใใซๅฎŸ่กŒใงใใ‚‹ใƒฆใƒ‹ใƒƒใƒˆใƒ†ใ‚นใƒˆใ‚’ไฝ•ๅบฆใ‚‚ๅฎŸ่กŒใ™ใ‚‹ใ‚“ใ ใ€‚ ๆœฌ็‰ฉใฎใƒ—ใƒญใฏใ€ๆง‹้€ ใ‚’็Š ็‰ฒใซใ—ใฆๆฉŸ่ƒฝใ‚’ๅฑŠใ‘ใ‚‹ใฎใฏใƒใ‚ซใฎใ‚„ใ‚‹ใ“ใจใ ใจๆ€ใฃใฆใ„ใ‚‹ใ€‚ ใ‚ณใƒผใƒ‰ใฎๆŸ”่ปŸๆ€งใฏใใฎๆง‹้€ ใซใ‹ใ‹ใฃใฆใ„ใ‚‹ใ€‚ๆง‹้€ ใŒไธๅฎ‰ๅฎšใชใ‚‰ใฐๆœชๆฅใ‚‚ไธๅฎ‰ๅฎšใซใชใ‚‹ใ€‚ ใ‚ฝใƒ•ใƒˆใ‚ฆใ‚งใ‚ขใฏ้ฉๅˆ‡ใชใ‚ณใ‚นใƒˆใงๅค‰ๆ›ดใงใใชใ‘ใ‚Œใฐใ„ใ‘ใชใ„ใ€‚ ๅŠดๅƒๅ€ซ็† 1้€ฑ้–“ใฏ168ๆ™‚้–“ใ ใ€‚้›‡็”จไธปใซ40ๆ™‚้–“ใ€ๅ›ใฎใ‚ญใƒฃใƒชใ‚ขใซ20ๆ™‚้–“ใ‚’ไฝฟใˆใ‚‹ใ€‚ ๆฎ‹ใ‚Šใฏ108ๆ™‚้–“ใ€‚็ก็œ ใซ56ๆ™‚้–“ใ‚’ไฝฟใ†ใจใ—ใฆใ€ๆฎ‹ใ‚Šใฎ52ๆ™‚้–“ใฏ่‡ช็”ฑใซไฝฟใˆใ‚‹ใ€‚ ่‡ชๅˆ†ใฎๅฐ‚้–€ใ‚’็Ÿฅใ‚‹ ใ‚ฝใƒ•ใƒˆใ‚ฆใ‚งใ‚ขใฎใƒ—ใƒญใŒๅ‚™ใˆใ‚‹ในใๆœ€ไฝŽ้™ใฎใ“ใจ ใƒ‡ใ‚ถใ‚คใƒณใƒ‘ใ‚ฟใƒผใƒณ GOF ใฎ 24 ใฎใƒ‘ใ‚ฟใƒผใƒณใซใคใ„ใฆ่ชฌๆ˜Žใงใใ‚‹ใ€‚ POSA ใฎใƒ‘ใ‚ฟใƒผใƒณใ‚’ๅฎŸ้š›ใซไฝฟใˆใ‚‹็Ÿฅ่ญ˜ใŒใ‚ใ‚‹ใ€‚ ่จญ่จˆๅŽŸๅ‰‡ SOLID ๅŽŸๅ‰‡ใ‚’็Ÿฅใฃใฆใ„ใ‚‹ใ€‚ใ‚ณใƒณใƒใƒผใƒใƒณใƒˆใฎๅŽŸๅ‰‡ใ‚’็†Ÿ็Ÿฅใ—ใฆใ„ใ‚‹ใ€‚ ๆ–นๆณ•่ซ– XPใƒปใ‚นใ‚ฏใƒฉใƒ ใƒปใƒชใƒผใƒณใƒปใ‚ซใƒณใƒใƒณใƒปใ‚ฆใ‚ฉใƒผใ‚ฟใƒผใƒ•ใ‚ฉใƒผใƒซใƒปๆง‹้€ ๅŒ–ๅˆ†ๆžใƒปๆง‹้€ ๅŒ–่จญ่จˆใ‚’็†่งฃใ—ใฆใ„ใ‚‹ใ€‚ ่ฆๅพ‹ TDDใƒป ใ‚ชใƒ–ใ‚ธใ‚งใ‚ฏใƒˆๆ€่€ƒใƒป่จญ่จˆๆง‹้€ ๅŒ–ใƒ—ใƒญใ‚ฐใƒฉใƒŸใƒณใ‚ฐใƒป็ถ™็ถš็š„ใ‚คใƒณใƒ†ใ‚ฐใƒฌใƒผใ‚ทใƒงใƒณใƒปใƒšใ‚ขใƒ—ใƒญใ‚ฐใƒฉใƒŸใƒณใ‚ฐใ‚’ๅฎŸ่ทตใ—ใฆใ„ใ‚‹ ๆˆๆžœ็‰ฉ UMLใƒปDFDใƒปๆง‹้€ ใƒใƒฃใƒผใƒˆใƒปใƒšใƒˆใƒชใƒใƒƒใƒˆใƒป็Šถๆ…‹้ท็งปๅ›ณใƒป็Šถๆ…‹้ท็งป่กจใƒปใƒ•ใƒญใƒผใƒใƒฃใƒผใƒˆใƒปใƒ‡ใ‚ฃใ‚ทใ‚ธใƒงใƒณใƒ†ใƒผใƒ–ใƒซใฎไฝฟใ„ๆ–นใ‚’็Ÿฅใฃใฆใ„ใ‚‹ใ€‚ ใƒ‰ใƒกใ‚คใƒณใ‚’็Ÿฅใ‚‹ ใƒ—ใƒญใ‚ฐใƒฉใƒŸใƒณใ‚ฐใฎๅฏพ่ฑกใƒ‰ใƒกใ‚คใƒณใ‚’็†ๅŒ–ใ™ใ‚‹่ฒฌไปปใŒใ‚ใ‚‹ใ€‚ไผš่จˆใ‚ทใ‚นใƒ†ใƒ ใ‚’ไฝœใฃใฆใ„ใ‚‹ใฎใชใ‚‰ใ€ไผš่จˆใฎ็Ÿฅ่ญ˜ใŒๅฟ…่ฆใ€‚ ใƒ‰ใƒกใ‚คใƒณใฎๅฐ‚้–€ๅฎถใซใชใ‚‹ๅฟ…่ฆใฏใชใ„ใŒใ€ไป•ไบ‹ใซๅฟ…่ฆใช็Ÿฅ่ญ˜ใจใ„ใ†ใ‚‚ใฎใŒใ‚ใ‚‹ใ€‚ ๆ–ฐใ—ใ„ใƒ‰ใƒกใ‚คใƒณใฎใƒ—ใƒญใ‚ธใ‚งใ‚ฏใƒˆใŒๅง‹ใพใ‚‹ใจใใซใฏใ€้–ข้€ฃๆ›ธ็ฑใ‚’1๏ฝž2ๅ†Š่ชญใ‚“ใงใฟใ‚ˆใ†ใ€‚ใ€€ๅฐ‚้–€ๅฎถใจไธ€็ท’ใซๆ™‚้–“ใ‚’้Žใ”ใ—ใฆใ€ๅฝผใ‚‰ใฎๅŽŸๅ‰‡ใ‚„ไพกๅ€คใ‚’็†่งฃใ—ใ‚ˆใ†ใ€‚ ใƒ“ใ‚ธใƒใ‚นใ‚’็†่งฃใ›ใšใซไป•ๆง˜ใ‹ใ‚‰ใŸใ ใ‚ณใƒผใƒ‰ใ‚’ๆ›ธใใฎใฏใƒ—ใƒญใจใ—ใฆๆœ€ไฝŽใ ใ€‚ ไป•ๆง˜ใฎ้–“้•ใ„ใ‚’็™บ่ฆ‹ใƒปๆŒ‡ๆ‘˜ใงใใ‚‹ใ‚ˆใ†ใซใ€ใƒ‰ใƒกใ‚คใƒณใ‚’็†่งฃใ—ใชใ‘ใ‚Œใฐใ„ใ‘ใชใ„ใ€‚ ใ€ŒใƒŽใƒผใ€ใจ่จ€ใ† ๅฅด้šทใฏใ€ŒใƒŽใƒผใ€ใจ่จ€ใ†ใ“ใจใ‚’่จฑใ•ใ‚Œใฆใ„ใชใ„ใ€‚ๅŠดๅƒ่€…ใฏใ€ŒใƒŽใƒผใ€ใจ่จ€ใ†ใ“ใจใ‚’ใŸใ‚ใ‚‰ใ†ใ ใ‚ใ†ใ€‚ ใ ใŒใ€ใƒ—ใƒญใฏใ€ŒใƒŽใƒผใ€ใจ่จ€ใ†ใ“ใจใ‚’ๆœŸๅพ…ใ•ใ‚Œใฆใ„ใ‚‹ใ€‚ ๅๅฏพ่€…ใฎๅฝนๅ‰ฒ ใ€Œใชใœใ€ใ‚ˆใ‚Šใ‚‚ใ€Œไบ‹ๅฎŸใ€ใฎใปใ†ใŒ้‡่ฆใ€‚ ใ ใŒใ€ใ€Œใชใœใ€ใ‚’่ชฌๆ˜Žใ™ใ‚‹ใ“ใจใง็›ธๆ‰‹ใฎ็†่งฃใŒๆทฑใพใ‚Šใ€ไบ‹ๅฎŸใ‚’ๅ—ใ‘ๅ…ฅใ‚Œใฆใใ‚Œใ‚‹ใ“ใจใ‚‚ใ‚ใ‚‹ใ€‚ ็›ธๆ‰‹ใซใฏๆŠ€่ก“็š„ใช็Ÿฅ่ญ˜ใŒใ‚ใ‚Šใ€็†่งฃใ—ใ‚ˆใ†ใจใ—ใฆใใ‚Œใ‚‹ใชใ‚‰ใฐใ€็†็”ฑใ‚’่ชฌๆ˜Žใ™ใ‚‹ใฎใ‚‚ใ„ใ„ใ ใ‚ใ†ใ€‚ ใ ใŒใ€็†็”ฑใ‚’่ชฌๆ˜Žใ—ใฆใ‚‚็›ธๆ‰‹ใŒ็ดๅพ—ใ—ใชใ„ใ“ใจใ‚‚ใ‚ใ‚‹ใ€‚ ใใ‚Œใฉใ“ใ‚ใ‹ใ€ใ‚ใชใŸใŒๅ…จใฆๆ‚ชใ„ใจๆฑบใ‚ใคใ‘ใฆใ„ใพใ†ใ“ใจใ‚‚ใ‚ใ‚‹ใ€‚ ่ฉณ็ดฐใ‚’่ชฌๆ˜Žใ—ใ™ใŽใ‚‹ใจใ€ใƒžใ‚คใ‚ฏใƒญใƒžใƒใ‚ธใƒกใƒณใƒˆใ‚’ๆ‹›ใ„ใฆใ—ใพใ†ใ€‚ ่ฉฆใ—ใซใ‚„ใฃใฆใฟใ‚‹ ใ€Œ่ฉฆใ—ใซใ‚„ใฃใฆใฟใ‚‹ใ€ใซใฏใ•ใพใ–ใพใชๆ„ๅ‘ณใŒใ‚ใ‚‹ใ€‚ๅ•้กŒใซใ—ใฆใ„ใ‚‹ใฎใฏใ€ใ€Œไฝ™ๅˆ†ใชไป•ไบ‹ใ‚’ใ™ใ‚‹ใ€ใ“ใจใ ใ€‚ ๆœŸๆ—ฅใซ้–“ใซๅˆใ‚ใ›ใ‚‹ใŸใ‚ใซไฝ•ใ‹ใงใใŸใฎใงใ‚ใ‚Œใฐใ€ใใ‚Œใพใงไป•ไบ‹ใ‚’ใ—ใฆใ„ใชใ‹ใฃใŸใ“ใจใซใชใ‚‹ใ€‚ ใคใพใ‚Šใ€ๅŠ›ใ‚’ๆธฉๅญ˜ใ—ใฆใ„ใŸใ‚ใ‘ใ ใ€‚ ใ‚‚ใ—ๅŠ›ใ‚’ๆธฉๅญ˜ใ—ใฆใ„ใชใ„ใฎใ‚“ใ‚‰ใ€ใ‚‚ใ—ๆ–ฐใ—ใ„่จˆ็”ปใŒใชใ„ใฎใงใ‚ใ‚Œใฐใ€ใ‚‚ใ—ๆŒฏใ‚‹่ˆžใ„ใ‚’ๅค‰ใˆใชใ„ใฎใงใ‚ใ‚Œใฐใ€ใ‚‚ใ—ๆœ€ๅˆใฎ่ฆ‹็ฉใ‚‚ใ‚Šใซ่‡ชไฟกใŒใ‚ใ‚‹ใฎใงใ‚ใ‚Œใฐใ€ ่ฉฆใ—ใซใ‚„ใฃใฆใฟใ‚‹ใจ็ด„ๆŸใ™ใ‚‹ใฎใฏไธ่ช ๅฎŸใงใ‚ใ‚‹ใ€‚ใ‚ฆใ‚ฝใ‚’ใคใ„ใฆใ„ใ‚‹ใฎใจๅŒใ˜ใ ใ€‚ใŠใใ‚‰ใใฏใ€่‡ชๅˆ†ใฎใƒกใƒณใƒ„ใ‚’ไฟใกใ€ๅฏพ็ซ‹ใ‚’้ฟใ‘ใ‚‹ใŸใ‚ใซใ‚„ใฃใฆใ„ใ‚‹ใฎใ ใ‚ใ†ใ€‚ ใ€Œใ‚คใ‚จใ‚นใ€ใจ่จ€ใ†ไปฃๅ„Ÿ ใงใใ‚‹ใ“ใจใชใ‚‰ใ€Œใ‚คใ‚จใ‚นใ€ใจ่จ€ใ„ใŸใ„ใ€‚ๅฅๅ…จใชใƒใƒผใƒ ใฏใฟใ‚“ใชใงใ€Œใ‚คใ‚จใ‚นใ€ใจ่จ€ใ†ใ“ใจใ‚’็›ฎๆŒ‡ใ—ใฆใ„ใ‚‹ใ€‚ ใ†ใพใใ„ใฃใฆใ„ใ‚‹ใƒใƒผใƒ ใฎใƒžใƒใƒผใ‚ธใƒฃใƒผใ‚„้–‹็™บ่€…ใฏใ€ใŠไบ’ใ„ใซๅˆๆ„ใ™ใ‚‹ใพใงๅฎŸ่กŒ่จˆ็”ปใฎๅ†…ๅฎนใซใคใ„ใฆไบคๆธ‰ใ™ใ‚‹ใ€‚ ใ—ใ‹ใ—ใ€ใ“ใ‚Œใพใง่ฆ‹ใฆใใŸใ‚ˆใ†ใซใ€ๆญฃใ—ใ„ใ€Œใ‚คใ‚จใ‚นใ€ใ‚’่จ€ใ†ใซใฏใ€ใ€ŒใƒŽใƒผใ€ใ‚‚ๆใ‚Œใšใซ่จ€ใ‚ใชใ‘ใ‚Œใฐใ„ใ‘ใชใ„ใ€‚ ใ‚ณใƒผใƒ‰ใฎๅฎŸ็พไธๅฏ่ƒฝๆ€ง ใƒ—ใƒญใฏใƒ’ใƒผใƒญใƒผใซใชใ‚‹ใ“ใจใŒใ‚ใ‚‹ใ€‚ใ—ใ‹ใ—ใ€ใใ‚Œใฏใƒ’ใƒผใƒญใƒผใซใชใ‚ใ†ใจใ—ใŸใ‹ใ‚‰ใงใฏใชใ„ใ€‚ ใƒ—ใƒญใฏใ€็ดๆœŸใƒปไบˆ็ฎ—ใฉใŠใ‚Šใซไป•ไบ‹ใ‚’ๆˆใ—้‚ใ’ใŸใจใใซใƒ’ใƒผใƒญใƒผใซใชใ‚‹ใ€‚...

March 1, 2022

The Programmers Brain

Chapter 1 Examines the three congnitive processes that play a role when programming and how each is associated with its own type of cunfusion.

March 1, 2022

Callable

Callable ใฏ type hint ใง้–ขๆ•ฐใงๅ‘ผใณๅ‡บใ™ใ“ใจใŒๅ‡บๆฅใ‚‹ใ€‚ class PaymentProcessor: def __init__(self, authorize_type: str): if authorizer_type == 'sms': self.authorize = authorize_sms elif authorizer_type == 'email': self.authorize = authorize_email Callable ใฎไฝฟใ„ๆ–นใฏ list ใซใ€€ๅฎŸๅผ•ๆ•ฐใฎใƒชใ‚นใƒˆ ใจ ่ฟ”ใ‚Šๅ€คใฎๅž‹ ใ‚’่จ˜่ผ‰ใ™ใ‚‹ใ€‚ Callable[[ๅผ•ๆ•ฐ], ่ฟ”ใ‚Šๅ€ค] AuthorizeFunction = Callable[[], bool] class PaymentProcessor: def __init__(self, authorize: AuthorizerFunction): self.authorize = authorize

February 28, 2022

The Essence of Failure

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

February 26, 2022

Move Statements Into Function

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

February 21, 2022