Π‘Π°ΠΌΡ‹Π΅ ΠΏΠΎΠ·ΠΎΡ€Π½Ρ‹Π΅ ошибки Π² ΠΌΠΎΠ΅ΠΉ ΠΊΠ°Ρ€ΡŒΠ΅Ρ€Π΅ программиста (Π½Π° Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚)

Π‘Π°ΠΌΡ‹Π΅ ΠΏΠΎΠ·ΠΎΡ€Π½Ρ‹Π΅ ошибки Π² ΠΌΠΎΠ΅ΠΉ ΠΊΠ°Ρ€ΡŒΠ΅Ρ€Π΅ программиста (Π½Π° Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚)
Как говорится, Ссли Ρ‚Π΅Π±Π΅ Π½Π΅ стыдно Π·Π° свой старый ΠΊΠΎΠ΄, Π·Π½Π°Ρ‡ΠΈΡ‚, Ρ‚Ρ‹ Π½Π΅ Ρ€Π°ΡΡ‚Π΅ΡˆΡŒ ΠΊΠ°ΠΊ программист β€” ΠΈ я согласна с Ρ‚Π°ΠΊΠΈΠΌ ΠΌΠ½Π΅Π½ΠΈΠ΅ΠΌ. Π― Π½Π°Ρ‡Π°Π»Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ для развлСчСния Π±ΠΎΠ»Π΅Π΅ 40 Π»Π΅Ρ‚ Π½Π°Π·Π°Π΄, Π° 30 Π»Π΅Ρ‚ Π½Π°Π·Π°Π΄ ΠΈ ΠΏΡ€ΠΎΡ„Π΅ΡΡΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎ, Ρ‚Π°ΠΊ Ρ‡Ρ‚ΠΎ ошибок Ρƒ мСня Π½Π°Π±Ρ€Π°Π»ΠΎΡΡŒ ΠΎΡ‡Π΅Π½ΡŒ ΠΌΠ½ΠΎΠ³ΠΎ. Π‘ΡƒΠ΄ΡƒΡ‡ΠΈ профСссором ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΠΊΠΈ, я ΡƒΡ‡Ρƒ своих студСнтов ΠΈΠ·Π²Π»Π΅ΠΊΠ°Ρ‚ΡŒ ΡƒΡ€ΠΎΠΊΠΈ ΠΈΠ· ошибок β€” своих, ΠΌΠΎΠΈΡ…, Ρ‡ΡƒΠΆΠΈΡ…. Π”ΡƒΠΌΠ°ΡŽ, ΠΏΡ€ΠΈΡˆΠ»ΠΎ врСмя Ρ€Π°ΡΡΠΊΠ°Π·Π°Ρ‚ΡŒ ΠΎ ΠΌΠΎΠΈΡ… ΠΎΡˆΠΈΠ±ΠΊΠ°Ρ…, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π½Π΅ Ρ€Π°ΡΡ‚Π΅Ρ€ΡΡ‚ΡŒ ΡΠΊΡ€ΠΎΠΌΠ½ΠΎΡΡ‚ΡŒ. НадСюсь, ΠΊΠΎΠΌΡƒ-Ρ‚ΠΎ ΠΎΠ½ΠΈ окаТутся ΠΏΠΎΠ»Π΅Π·Π½Ρ‹.

Π’Ρ€Π΅Ρ‚ΡŒΠ΅ мСсто β€” компилятор C ΠΎΡ‚ Microsoft

Мой ΡˆΠΊΠΎΠ»ΡŒΠ½Ρ‹ΠΉ ΡƒΡ‡ΠΈΡ‚Π΅Π»ΡŒ считал, Ρ‡Ρ‚ΠΎ Β«Π ΠΎΠΌΠ΅ΠΎ ΠΈ Π”ΠΆΡƒΠ»ΡŒΠ΅Ρ‚Ρ‚ΡƒΒ» нСльзя ΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ Ρ‚Ρ€Π°Π³Π΅Π΄ΠΈΠ΅ΠΉ, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ Ρƒ Π³Π΅Ρ€ΠΎΠ΅Π² Π½Π΅ Π±Ρ‹Π»ΠΎ трагичСской Π²ΠΈΠ½Ρ‹ β€” просто ΠΎΠ½ΠΈ Π²Π΅Π»ΠΈ сСбя Π³Π»ΡƒΠΏΠΎ, ΠΊΠ°ΠΊ ΠΈ ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΎ подросткам. Π’ΠΎΠ³Π΄Π° я с Π½ΠΈΠΌ Π½Π΅ согласилась, Π½ΠΎ сСйчас Π²ΠΈΠΆΡƒ Π² Π΅Π³ΠΎ ΠΌΠ½Π΅Π½ΠΈΠΈ Ρ€Π°Ρ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠ΅ Π·Π΅Ρ€Π½ΠΎ β€” особСнно Π² связи с ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ.

К ΠΌΠΎΠΌΠ΅Π½Ρ‚Ρƒ окончания Π²Ρ‚ΠΎΡ€ΠΎΠ³ΠΎ курса MIT я Π±Ρ‹Π»Π° ΠΌΠΎΠ»ΠΎΠ΄Π° ΠΈ Π½Π΅ΠΎΠΏΡ‹Ρ‚Π½Π°, ΠΊΠ°ΠΊ Π² ΠΆΠΈΠ·Π½ΠΈ, Ρ‚Π°ΠΊ ΠΈ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ. Π›Π΅Ρ‚ΠΎΠΌ я ΠΏΡ€ΠΎΡ…ΠΎΠ΄ΠΈΠ»Π° ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΡƒ Π² Microsoft, Π² ΠΊΠΎΠΌΠ°Π½Π΄Π΅ компилятора C. ΠŸΠΎΠ½Π°Ρ‡Π°Π»Ρƒ я занималась Ρ€ΡƒΡ‚ΠΈΠ½ΠΎΠΉ Π²Ρ€ΠΎΠ΄Π΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ профилирования, Π° ΠΏΠΎΡ‚ΠΎΠΌ ΠΌΠ½Π΅ Π΄ΠΎΠ²Π΅Ρ€ΠΈΠ»ΠΈ Ρ€Π°Π±ΠΎΡ‚Ρƒ Π½Π°Π΄ самой вСсСлой (ΠΊΠ°ΠΊ я считала) Ρ‡Π°ΡΡ‚ΡŒΡŽ компилятора β€” ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠ΅ΠΉ бэкСнда. Π’ частности, я Π΄ΠΎΠ»ΠΆΠ½Π° Π±Ρ‹Π»Π° ΡƒΠ»ΡƒΡ‡ΡˆΠΈΡ‚ΡŒ ΠΊΠΎΠ΄ x86 для ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ² вСтвлСния.

НастроСнная Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΎΠΏΡ‚ΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΉ ΠΌΠ°ΡˆΠΈΠ½Π½Ρ‹ΠΉ ΠΊΠΎΠ΄ для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΠ³ΠΎ случая, я Π±Ρ€ΠΎΡΠΈΠ»Π°ΡΡŒ Π² ΠΎΠΌΡƒΡ‚ с Π³ΠΎΠ»ΠΎΠ²ΠΎΠΉ. Если ΠΏΠ»ΠΎΡ‚Π½ΠΎΡΡ‚ΡŒ распрСдСлСния Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ Π±Ρ‹Π»Π° высока, я вносила ΠΈΡ… Π² Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ΠΎΠ². Если Ρƒ Π½ΠΈΡ… имСлся ΠΎΠ±Ρ‰ΠΈΠΉ Π΄Π΅Π»ΠΈΡ‚Π΅Π»ΡŒ, я использовала Π΅Π³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ ΠΏΠ»ΠΎΡ‚Π½Π΅Π΅ (Π½ΠΎ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ссли Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ½ΠΎ Π±Ρ‹Π»ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ Π±ΠΈΡ‚ΠΎΠ²ΠΎΠ³ΠΎ сдвига). Когда всС значСния прСдставляли собой стСпСни Π΄Π²ΠΎΠΉΠΊΠΈ, я ΠΏΡ€ΠΎΠ²ΠΎΠ΄ΠΈΠ»Π° Π΅Ρ‰Π΅ ΠΎΠ΄Π½Ρƒ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΡŽ. Если мноТСство Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ Π½Π΅ удовлСтворяло ΠΌΠΎΠΈΠΌ условиям, я Ρ€Π°Π·Π±ΠΈΠ²Π°Π»Π° Π΅Π³ΠΎ Π½Π° нСсколько ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΡƒΠ΅ΠΌΡ‹Ρ… случаСв ΠΈ использовала ΡƒΠΆΠ΅ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ ΠΊΠΎΠ΄.

Π­Ρ‚ΠΎ Π±Ρ‹Π» ΠΊΠΎΡˆΠΌΠ°Ρ€. Π§Π΅Ρ€Π΅Π· ΠΌΠ½ΠΎΠ³ΠΎ Π»Π΅Ρ‚ ΠΌΠ½Π΅ рассказывали, Ρ‡Ρ‚ΠΎ ΡƒΠ½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Π²ΡˆΠΈΠΉ ΠΌΠΎΠΉ ΠΊΠΎΠ΄ программист мСня Π½Π΅Π½Π°Π²ΠΈΠ΄Π΅Π».

Π‘Π°ΠΌΡ‹Π΅ ΠΏΠΎΠ·ΠΎΡ€Π½Ρ‹Π΅ ошибки Π² ΠΌΠΎΠ΅ΠΉ ΠΊΠ°Ρ€ΡŒΠ΅Ρ€Π΅ программиста (Π½Π° Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚)

ВынСсСнный ΡƒΡ€ΠΎΠΊ

Как ΠΏΠΈΡˆΡƒΡ‚ Дэвид ΠŸΠ°Ρ‚Ρ‚Π΅Ρ€ΡΠΎΠ½ ΠΈ Π”ΠΆΠΎΠ½ Π₯СннСсси Π² ΠΊΠ½ΠΈΠ³Π΅ «АрхитСктура ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π° ΠΈ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π½Ρ‹Ρ… систСм», ΠΎΠ΄ΠΈΠ½ ΠΈΠ· Π³Π»Π°Π²Π½Ρ‹Ρ… ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΠΎΠ² Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρ‹ ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π² ΠΎΠ±Ρ‰ΠΈΡ… случаях всС Ρ€Π°Π±ΠΎΡ‚Π°Π»ΠΎ ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ быстрСС.

УскорСниС ΠΎΠ±Ρ‰ΠΈΡ… случаСв повысит ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ Π±ΠΎΠ»Π΅Π΅ эффСктивно, Ρ‡Π΅ΠΌ оптимизация Ρ€Π΅Π΄ΠΊΠΈΡ… случаСв. Как Π½ΠΈ ΠΈΡ€ΠΎΠ½ΠΈΡ‡Π½ΠΎ, ΠΎΠ±Ρ‰ΠΈΠ΅ случаи часто ΠΏΡ€ΠΎΡ‰Π΅ Ρ€Π΅Π΄ΠΊΠΈΡ…. Π­Ρ‚ΠΎΡ‚ Π»ΠΎΠ³ΠΈΡ‡Π½Ρ‹ΠΉ совСт ΠΏΠΎΠ΄Ρ€Π°Π·ΡƒΠΌΠ΅Π²Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ Π²Ρ‹ Π·Π½Π°Π΅Ρ‚Π΅, ΠΊΠ°ΠΊΠΎΠΉ случай ΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ ΠΎΠ±Ρ‰ΠΈΠΌ β€” Π° это Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² процСссС остороТного тСстирования ΠΈ измСрСния.

Π’ свою Π·Π°Ρ‰ΠΈΡ‚Ρƒ ΠΌΠΎΠ³Ρƒ ΡΠΊΠ°Π·Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ я ΠΏΡ‹Ρ‚Π°Π»Π°ΡΡŒ Ρ€Π°Π·ΠΎΠ±Ρ€Π°Ρ‚ΡŒΡΡ, ΠΊΠ°ΠΊ выглядСли ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ вСтвлСния Π½Π° ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ΅ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, сколько сущСствовало Π²Π΅Ρ‚ΠΎΠΊ ΠΈ ΠΊΠ°ΠΊ Π±Ρ‹Π»ΠΈ распрСдСлСны константы), Π½ΠΎ Π² 1988 Π³ΠΎΠ΄Ρƒ эта информация Π±Ρ‹Π»Π° нСдоступна. Π’Π΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅, ΠΌΠ½Π΅ Π½Π΅ стоило Π΄ΠΎΠ±Π°Π²Π»ΡΡ‚ΡŒ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Π΅ случаи всякий Ρ€Π°Π·, ΠΊΠΎΠ³Π΄Π° Π΄Π΅ΠΉΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΉ компилятор Π½Π΅ ΠΌΠΎΠ³ ΡΠ³Π΅Π½Π΅Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΠΏΡ‚ΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΉ ΠΊΠΎΠ΄ для ΠΏΡ€ΠΈΠ΄ΡƒΠΌΠ°Π½Π½ΠΎΠ³ΠΎ ΠΌΠ½ΠΎΠΉ искусствСнного ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°.

МнС Π½ΡƒΠΆΠ½ΠΎ Π±Ρ‹Π»ΠΎ ΠΏΠΎΠ·Π²Π°Ρ‚ΡŒ ΠΎΠΏΡ‹Ρ‚Π½ΠΎΠ³ΠΎ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ° ΠΈ вмСстС с Π½ΠΈΠΌ ΠΏΠΎΠ΄ΡƒΠΌΠ°Ρ‚ΡŒ, ΠΊΠ°ΠΊΠΈΠ΅ Π±Ρ‹Π»ΠΈ ΠΎΠ±Ρ‰ΠΈΠ΅ случаи, ΠΈ Ρ€Π°Π·ΠΎΠ±Ρ€Π°Ρ‚ΡŒΡΡ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎ с Π½ΠΈΠΌΠΈ. Π― написала Π±Ρ‹ мСньшС ΠΊΠΎΠ΄Π°, Π½ΠΎ это Π΄Π°ΠΆΠ΅ Ρ…ΠΎΡ€ΠΎΡˆΠΎ. Как писал ΠΎΡΠ½ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Stack Overflow Π”ΠΆΠ΅Ρ„Ρ„ Π­Ρ‚Π²ΡƒΠ΄, злСйший Π²Ρ€Π°Π³ программиста β€” сам программист:

Π― знаю, Ρ‡Ρ‚ΠΎ Ρƒ вас самыС Π΄ΠΎΠ±Ρ€Ρ‹Π΅ намСрСния, ΠΊΠ°ΠΊ ΠΈ Ρƒ всСх нас. ΠœΡ‹ создаСм ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΈ любим ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΊΠΎΠ΄. Π’Π°ΠΊ ΡƒΠΆ ΠΌΡ‹ устроСны. ΠœΡ‹ Π΄ΡƒΠΌΠ°Π΅ΠΌ, Ρ‡Ρ‚ΠΎ Π»ΡŽΠ±ΡƒΡŽ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡƒ ΠΌΠΎΠΆΠ½ΠΎ Ρ€Π΅ΡˆΠΈΡ‚ΡŒ ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ ΠΈΠ·ΠΎΠ»Π΅Π½Ρ‚Ρ‹, самодСльного костыля ΠΈ Ρ‰Π΅ΠΏΠΎΡ‚ΠΊΠΈ ΠΊΠΎΠ΄Π°. Как Π±Ρ‹ Π½ΠΈ Π±Ρ‹Π»ΠΎ больно ΠΊΠΎΠ΄Π΅Ρ€Π°ΠΌ ΠΏΡ€ΠΈΠ·Π½Π°Π²Π°Ρ‚ΡŒ это, Π½ΠΎ Π»ΡƒΡ‡ΡˆΠΈΠΉ ΠΊΠΎΠ΄ β€” Ρ‚ΠΎΡ‚ ΠΊΠΎΠ΄, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ Π½Π΅Ρ‚. КаТдая новая строчка нуТдаСтся Π² ΠΎΡ‚Π»Π°Π΄ΠΊΠ΅ ΠΈ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ΅, Π΅Π΅ Π½ΡƒΠΆΠ½ΠΎ ΠΏΠΎΠ½ΠΈΠΌΠ°Ρ‚ΡŒ. Добавляя Π½ΠΎΠ²Ρ‹ΠΉ ΠΊΠΎΠ΄, Π²Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π΄Π΅Π»Π°Ρ‚ΡŒ это с Π½Π΅ΠΎΡ…ΠΎΡ‚ΠΎΠΉ ΠΈ ΠΎΡ‚Π²Ρ€Π°Ρ‰Π΅Π½ΠΈΠ΅ΠΌ, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ всС Π΄Ρ€ΡƒΠ³ΠΈΠ΅ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Ρ‹ оказались исчСрпаны. МногиС программисты ΠΏΠΈΡˆΡƒΡ‚ слишком ΠΌΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°, дСлая Π΅Π³ΠΎ нашим Π²Ρ€Π°Π³ΠΎΠΌ.

Если Π±Ρ‹ я написала Π±ΠΎΠ»Π΅Π΅ простой ΠΊΠΎΠ΄, ΠΏΠΎΠΊΡ€Ρ‹Π²Π°Π²ΡˆΠΈΠΉ ΠΎΠ±Ρ‰ΠΈΠ΅ случаи, Ρ‚ΠΎ ΠΏΡ€ΠΈ нСобходимости Π΅Π³ΠΎ Π±Ρ‹Π»ΠΎ Π±Ρ‹ ΠΊΡƒΠ΄Π° ΠΏΡ€ΠΎΡ‰Π΅ ΠΎΠ±Π½ΠΎΠ²ΠΈΡ‚ΡŒ. Π― ΠΆΠ΅ оставила бСспорядок, с ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ Π½ΠΈΠΊΡ‚ΠΎ Π½Π΅ Ρ…ΠΎΡ‚Π΅Π» ΡΠ²ΡΠ·Ρ‹Π²Π°Ρ‚ΡŒΡΡ.

Π‘Π°ΠΌΡ‹Π΅ ΠΏΠΎΠ·ΠΎΡ€Π½Ρ‹Π΅ ошибки Π² ΠΌΠΎΠ΅ΠΉ ΠΊΠ°Ρ€ΡŒΠ΅Ρ€Π΅ программиста (Π½Π° Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚)

Π’Ρ‚ΠΎΡ€ΠΎΠ΅ мСсто: Ρ€Π΅ΠΊΠ»Π°ΠΌΠ° Π² соцсСтях

Когда я Ρ€Π°Π±ΠΎΡ‚Π°Π»Π° Π² Google Π½Π°Π΄ Ρ€Π΅ΠΊΠ»Π°ΠΌΠΎΠΉ для соцсСтСй (ΠΏΠΎΠΌΠ½ΠΈΡ‚Π΅ Myspace?), я написала Π½Π° C++ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ Π²Ρ€ΠΎΠ΄Π΅ этого:

for (int i = 0; i < user->interests->length(); i++) {
  for (int j = 0; j < user->interests(i)->keywords.length(); j++) {
      keywords->add(user->interests(i)->keywords(i)) {
  }
}

ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡΡ‚Ρ‹, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, сразу увидят ΠΎΡˆΠΈΠ±ΠΊΡƒ: послСдним Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠΌ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ j, Π° Π½Π΅ i. ΠœΠΎΠ΄ΡƒΠ»ΡŒΠ½ΠΎΠ΅ тСстированиС Π½Π΅ выявило ΠΎΡˆΠΈΠ±ΠΊΡƒ, Π½Π΅ Π·Π°ΠΌΠ΅Ρ‚ΠΈΠ» Π΅Π΅ ΠΈ ΠΌΠΎΠΉ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡΡŽΡ‰ΠΈΠΉ. Π‘Ρ‹Π» ΠΏΡ€ΠΎΠ²Π΅Π΄Π΅Π½ запуск, ΠΈ ΠΊΠ°ΠΊ-Ρ‚ΠΎ Π½ΠΎΡ‡ΡŒΡŽ ΠΌΠΎΠΉ ΠΊΠΎΠ΄ отправился Π½Π° сСрвСр ΠΈ ΠΎΠ±Π²Π°Π»ΠΈΠ» всС ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Ρ‹ Π² Π΄Π°Ρ‚Π°-Ρ†Π΅Π½Ρ‚Ρ€Π΅.

НичСго ΡΡ‚Ρ€Π°ΡˆΠ½ΠΎΠ³ΠΎ Π½Π΅ ΠΏΡ€ΠΎΠΈΠ·ΠΎΡˆΠ»ΠΎ. Ни Ρƒ ΠΊΠΎΠ³ΠΎ Π½ΠΈΡ‡Π΅Π³ΠΎ Π½Π΅ сломалось, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ ΠΏΠ΅Ρ€Π΅Π΄ Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½Ρ‹ΠΌ запуском ΠΊΠΎΠ΄ тСстировался Π² ΠΏΡ€Π΅Π΄Π΅Π»Π°Ρ… ΠΎΠ΄Π½ΠΎΠ³ΠΎ Π΄Π°Ρ‚Π°-Ρ†Π΅Π½Ρ‚Ρ€Π°. Π Π°Π·Π²Π΅ Ρ‡Ρ‚ΠΎ SRE-ΠΈΠ½ΠΆΠ΅Π½Π΅Ρ€Ρ‹ Π½Π΅Π½Π°Π΄ΠΎΠ»Π³ΠΎ бросили ΠΈΠ³Ρ€Π°Ρ‚ΡŒ Π² Π±ΠΈΠ»ΡŒΡΡ€Π΄ ΠΈ сдСлали нСбольшой ΠΎΡ‚ΠΊΠ°Ρ‚. Наутро я ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ»Π° email с Π°Π²Π°Ρ€ΠΈΠΉΠ½Ρ‹ΠΌ Π΄Π°ΠΌΠΏΠΎΠΌ, исправила ΠΊΠΎΠ΄ ΠΈ Π΄ΠΎΠ±Π°Π²ΠΈΠ»Π° ΠΌΠΎΠ΄ΡƒΠ»ΡŒΠ½Ρ‹Ρ… тСстов, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ выявили Π±Ρ‹ ΠΎΡˆΠΈΠ±ΠΊΡƒ. ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ я слСдовала ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Ρƒ β€” ΠΈΠ½Π°Ρ‡Π΅ ΠΌΠΎΠΉ ΠΊΠΎΠ΄ Π±Ρ‹ просто Π½Π΅ ΠΏΡ€ΠΎΡˆΠ΅Π» запуск β€” Π΄Ρ€ΡƒΠ³ΠΈΡ… ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ Π½Π΅ Π²ΠΎΠ·Π½ΠΈΠΊΠ»ΠΎ.

Π‘Π°ΠΌΡ‹Π΅ ΠΏΠΎΠ·ΠΎΡ€Π½Ρ‹Π΅ ошибки Π² ΠΌΠΎΠ΅ΠΉ ΠΊΠ°Ρ€ΡŒΠ΅Ρ€Π΅ программиста (Π½Π° Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚)

ВынСсСнный ΡƒΡ€ΠΎΠΊ

МногиС ΡƒΠ²Π΅Ρ€Π΅Π½Ρ‹, Ρ‡Ρ‚ΠΎ подобная крупная ошибка ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ стоит Π²ΠΈΠ½ΠΎΠ²Π½ΠΈΠΊΡƒ ΡƒΠ²ΠΎΠ»ΡŒΠ½Π΅Π½ΠΈΡ, Π½ΠΎ это Π½Π΅ Ρ‚Π°ΠΊ: Π²ΠΎ-ΠΏΠ΅Ρ€Π²Ρ‹Ρ…, всС программисты ΠΎΡˆΠΈΠ±Π°ΡŽΡ‚ΡΡ, Π²ΠΎ-Π²Ρ‚ΠΎΡ€Ρ‹Ρ…, ΠΎΠ½ΠΈ Ρ€Π΅Π΄ΠΊΠΎ ΡΠΎΠ²Π΅Ρ€ΡˆΠ°ΡŽΡ‚ ΠΎΠ΄Π½Ρƒ ΠΎΡˆΠΈΠ±ΠΊΡƒ Π΄Π²Π°ΠΆΠ΄Ρ‹.

На самом Π΄Π΅Π»Π΅, Ρƒ мСня Π΅ΡΡ‚ΡŒ Π·Π½Π°ΠΊΠΎΠΌΡ‹ΠΉ программист β€” блСстящий ΠΈΠ½ΠΆΠ΅Π½Π΅Ρ€, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ ΡƒΠ²ΠΎΠ»ΠΈΠ»ΠΈ Π·Π° ΠΎΠ΄Π½Ρƒ-Π΅Π΄ΠΈΠ½ΡΡ‚Π²Π΅Π½Π½ΡƒΡŽ ΠΎΡˆΠΈΠ±ΠΊΡƒ. ПослС этого Π΅Π³ΠΎ взяли Π½Π° Ρ€Π°Π±ΠΎΡ‚Ρƒ Π² Google (ΠΈ вскорС повысили) β€” ΠΎΠ½ чСстно рассказал ΠΎ Π΄ΠΎΠΏΡƒΡ‰Π΅Π½Π½ΠΎΠΉ ошибкС Π½Π° ΠΈΠ½Ρ‚Π΅Ρ€Π²ΡŒΡŽ, ΠΈ Π΅Π΅ Π½Π΅ сочли Ρ„Π°Ρ‚Π°Π»ΡŒΠ½ΠΎΠΉ.

Π’ΠΎΡ‚ Ρ‡Ρ‚ΠΎ Ρ€Π°ΡΡΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‚ ΠΎ ВомасС УотсонС, Π»Π΅Π³Π΅Π½Π΄Π°Ρ€Π½ΠΎΠΌ Π³Π»Π°Π²Π΅ IBM:

Π‘Ρ‹Π» объявлСн госзаказ Π½Π° сумму ΠΎΠΊΠΎΠ»ΠΎ ΠΌΠΈΠ»Π»ΠΈΠΎΠ½Π° Π΄ΠΎΠ»Π»Π°Ρ€ΠΎΠ². ΠšΠΎΡ€ΠΏΠΎΡ€Π°Ρ†ΠΈΡ IBM β€” Π° Ρ‚ΠΎΡ‡Π½Π΅Π΅, Π»ΠΈΡ‡Π½ΠΎ Вомас Уотсон-ΡΡ‚Π°Ρ€ΡˆΠΈΠΉ β€” ΠΎΡ‡Π΅Π½ΡŒ Ρ…ΠΎΡ‚Π΅Π» Π΅Π³ΠΎ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ. К соТалСнию, Ρ‚ΠΎΡ€Π³ΠΎΠ²Ρ‹ΠΉ ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²ΠΈΡ‚Π΅Π»ΡŒ Π½Π΅ смог этого ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ, ΠΈ IBM ΠΏΡ€ΠΎΠΈΠ³Ρ€Π°Π»Π° Ρ‚Π΅Π½Π΄Π΅Ρ€. На ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ дСнь этот сотрудник ΠΏΡ€ΠΈΡˆΠ΅Π» Π² ΠΊΠ°Π±ΠΈΠ½Π΅Ρ‚ ΠΊ мистСру Уотсону ΠΈ ΠΏΠΎΠ»ΠΎΠΆΠΈΠ» Π΅ΠΌΡƒ Π½Π° стол ΠΊΠΎΠ½Π²Π΅Ρ€Ρ‚. ΠœΠΈΡΡ‚Π΅Ρ€ Уотсон Π΄Π°ΠΆΠ΅ Π½Π΅ стал Π² Π½Π΅Π³ΠΎ Π·Π°Π³Π»ΡΠ΄Ρ‹Π²Π°Ρ‚ΡŒ β€” ΠΎΠ½ ΠΆΠ΄Π°Π» сотрудника ΠΈ Π·Π½Π°Π», Ρ‡Ρ‚ΠΎ это заявлСниС ΠΎΠ± ΡƒΡ…ΠΎΠ΄Π΅.

Уотсон спросил, Ρ‡Ρ‚ΠΎ пошло Π½Π΅ Ρ‚Π°ΠΊ.

Π’ΠΎΡ€Π³ΠΎΠ²Ρ‹ΠΉ ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²ΠΈΡ‚Π΅Π»ΡŒ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎ рассказал ΠΎ Ρ…ΠΎΠ΄Π΅ Ρ‚Π΅Π½Π΄Π΅Ρ€Π°. Он Π½Π°Π·Π²Π°Π» Π΄ΠΎΠΏΡƒΡ‰Π΅Π½Π½Ρ‹Π΅ ошибки, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΌΠΎΠΆΠ½ΠΎ Π±Ρ‹Π»ΠΎ ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ. НаконСц, ΠΎΠ½ сказал: Β«ΠœΠΈΡΡ‚Π΅Ρ€ Уотсон, спасибо Π²Π°ΠΌ Π·Π° Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ Π΄Π°Π»ΠΈ ΠΌΠ½Π΅ ΠΎΠ±ΡŠΡΡΠ½ΠΈΡ‚ΡŒΡΡ. Π― знаю, насколько ΠΌΡ‹ Π½ΡƒΠΆΠ΄Π°Π»ΠΈΡΡŒ Π² этом Π·Π°ΠΊΠ°Π·Π΅. Π― знаю, ΠΊΠ°ΠΊ ΠΎΠ½ Π±Ρ‹Π» Π²Π°ΠΆΠ΅Π½Β», β€” ΠΈ собрался ΡƒΡ…ΠΎΠ΄ΠΈΡ‚ΡŒ.

Уотсон подошСл ΠΊ Π½Π΅ΠΌΡƒ Ρƒ Π΄Π²Π΅Ρ€ΠΈ, посмотрСл Π΅ΠΌΡƒ Π² Π³Π»Π°Π·Π° ΠΈ Π²Π΅Ρ€Π½ΡƒΠ» ΠΊΠΎΠ½Π²Π΅Ρ€Ρ‚ со словами: «Как я ΠΌΠΎΠ³Ρƒ Π΄Π°Ρ‚ΡŒ Ρ‚Π΅Π±Π΅ ΡƒΠΉΡ‚ΠΈ? Π― вСдь Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‡Ρ‚ΠΎ Π²Π»ΠΎΠΆΠΈΠ» ΠΌΠΈΠ»Π»ΠΈΠΎΠ½ Π΄ΠΎΠ»Π»Π°Ρ€ΠΎΠ² Π² Ρ‚Π²ΠΎΠ΅ ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅.

Π£ мСня Π΅ΡΡ‚ΡŒ Ρ„ΡƒΡ‚Π±ΠΎΠ»ΠΊΠ°, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ написано: «Если Π½Π° ΠΎΡˆΠΈΠ±ΠΊΠ°Ρ… ΠΈ ΠΏΡ€Π°Π²Π΄Π° учатся, Ρ‚ΠΎ я ΡƒΠΆΠ΅ магистр». На самом Π΄Π΅Π»Π΅ ΠΏΠΎ части ошибок я Π΄ΠΎΠΊΡ‚ΠΎΡ€ Π½Π°ΡƒΠΊ.

ΠŸΠ΅Ρ€Π²ΠΎΠ΅ мСсто: App Inventor API

По-настоящСму ΡΡ‚Ρ€Π°ΡˆΠ½Ρ‹Π΅ ошибки Π·Π°Ρ‚Ρ€Π°Π³ΠΈΠ²Π°ΡŽΡ‚ ΠΎΠ³Ρ€ΠΎΠΌΠ½ΠΎΠ΅ количСство ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ, становятся достояниСм общСствСнности, Π΄ΠΎΠ»Π³ΠΎ ΠΈΡΠΏΡ€Π°Π²Π»ΡΡŽΡ‚ΡΡ ΠΈ Π΄ΠΎΠΏΡƒΡΠΊΠ°ΡŽΡ‚ΡΡ Ρ‚Π΅ΠΌΠΈ, ΠΊΡ‚ΠΎ ΠΌΠΎΠ³ Π±Ρ‹ ΠΈΡ… Π½Π΅ Π΄ΠΎΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ. Моя ΠΊΡ€ΡƒΠΏΠ½Π΅ΠΉΡˆΠ°Ρ ошибка удовлСтворяСт всСм этим критСриям.

Π§Π΅ΠΌ Ρ…ΡƒΠΆΠ΅, Ρ‚Π΅ΠΌ Π»ΡƒΡ‡ΡˆΠ΅

Π― Ρ‡ΠΈΡ‚Π°Π»Π° эссС Π ΠΈΡ‡Π°Ρ€Π΄Π° ГэбриСла ΠΎΠ± этом ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Π΅ Π² дСвяностыС, Π±ΡƒΠ΄ΡƒΡ‡ΠΈ аспирантом, ΠΈ ΠΎΠ½ΠΎ ΠΌΠ½Π΅ Ρ‚Π°ΠΊ нравится, Ρ‡Ρ‚ΠΎ я задаю Π΅Π³ΠΎ своим студСнтам. Если Π²Ρ‹ ΠΏΠ»ΠΎΡ…ΠΎ Π΅Π³ΠΎ ΠΏΠΎΠΌΠ½ΠΈΡ‚Π΅, освСТитС ΠΏΠ°ΠΌΡΡ‚ΡŒ, ΠΎΠ½ΠΎ нСбольшоС. Π’ этом эссС ΠΆΠ΅Π»Π°Π½ΠΈΠ΅ Β«ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΊΠ°ΠΊ Π½Π°Π΄ΠΎΒ» ΠΈ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ Β«Ρ‡Π΅ΠΌ Ρ…ΡƒΠΆΠ΅, Ρ‚Π΅ΠΌ Π»ΡƒΡ‡ΡˆΠ΅Β» ΠΏΡ€ΠΎΡ‚ΠΈΠ²ΠΎΠΏΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‚ΡΡ ΠΏΠΎ ΠΌΠ½ΠΎΠ³ΠΈΠΌ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°ΠΌ, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ простоту.

Как Π½Π°Π΄ΠΎ: Π΄ΠΈΠ·Π°ΠΉΠ½ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ простым Π² Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΈ интСрфСйсС. ΠŸΡ€ΠΎΡΡ‚ΠΎΡ‚Π° интСрфСйса Π²Π°ΠΆΠ½Π΅Π΅ простоты Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ.

Π§Π΅ΠΌ Ρ…ΡƒΠΆΠ΅, Ρ‚Π΅ΠΌ Π»ΡƒΡ‡ΡˆΠ΅: Π΄ΠΈΠ·Π°ΠΉΠ½ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ простым Π² Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΈ интСрфСйсС. ΠŸΡ€ΠΎΡΡ‚ΠΎΡ‚Π° Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Π²Π°ΠΆΠ½Π΅Π΅ простоты интСрфСйса.

Π—Π°Π±ΡƒΠ΄Π΅ΠΌ ΠΎΠ± этом Π½Π° ΠΌΠΈΠ½ΡƒΡ‚ΠΊΡƒ. К соТалСнию, я Π·Π°Π±Ρ‹Π»Π° ΠΎΠ± этом Π½Π° Π΄ΠΎΠ»Π³ΠΈΠ΅ Π³ΠΎΠ΄Ρ‹.

App Inventor

Работая Π² Google, я Π²Ρ…ΠΎΠ΄ΠΈΠ»Π° Π² ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ App Inventor, ΠΎΠ½Π»Π°ΠΉΠ½ΠΎΠ²ΠΎΠΉ срСды Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ с ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΎΠΉ пСрСтаскивания ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² для Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΡ… Android-Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ². Π¨Π΅Π» 2009 Π³ΠΎΠ΄, ΠΈ ΠΌΡ‹ спСшили воврСмя Π²Ρ‹ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ Π°Π»ΡŒΡ„Π°-Π²Π΅Ρ€ΡΠΈΡŽ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π»Π΅Ρ‚ΠΎΠΌ провСсти мастСр-классы для ΡƒΡ‡ΠΈΡ‚Π΅Π»Π΅ΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ³Π»ΠΈ Π±Ρ‹ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ срСдой ΠΏΡ€ΠΈ ΠΎΠ±ΡƒΡ‡Π΅Π½ΠΈΠΈ ΡƒΠΆΠ΅ осСнью. Π― Π²Ρ‹Π·Π²Π°Π»Π°ΡΡŒ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ спрайты, Π½ΠΎΡΡ‚Π°Π»ΡŒΠ³ΠΈΡ€ΡƒΡ ΠΏΠΎ Ρ‚ΠΎΠΌΡƒ, ΠΊΠ°ΠΊ Π² своС врСмя я писала ΠΈΠ³Ρ€Ρ‹ Π½Π° TI-99/4. Для Ρ‚Π΅Ρ…, ΠΊΡ‚ΠΎ Π½Π΅ Π² курсС: спрайт β€” это Π΄Π²ΡƒΠΌΠ΅Ρ€Π½Ρ‹ΠΉ графичСский ΠΎΠ±ΡŠΠ΅ΠΊΡ‚, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Ρ‰Π°Ρ‚ΡŒΡΡ ΠΈ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ с Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹ΠΌΠΈ элСмСнтами. ΠŸΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ спрайтов β€” космичСскиС ΠΊΠΎΡ€Π°Π±Π»ΠΈ, астСроиды, ΡˆΠ°Ρ€ΠΈΠΊΠΈ ΠΈ Ρ€Π°ΠΊΠ΅Ρ‚ΠΊΠΈ.

ΠœΡ‹ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π»ΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ App Inventor Π² Java, Ρ‚Π°ΠΊ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΌ просто ΠΊΡƒΡ‡Π° ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ². ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΡˆΠ°Ρ€ΠΈΠΊΠΈ ΠΈ спрайты Π²Π΅Π΄ΡƒΡ‚ сСбя ΠΎΡ‡Π΅Π½ΡŒ ΠΏΠΎΡ…ΠΎΠΆΠ΅, я создала абстрактный sprite-класс со свойствами (полями) X, Y, Speed (ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ) ΠΈ Heading (Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅). Они ΠΎΠ±Π»Π°Π΄Π°Π»ΠΈ ΠΎΠ΄Π½ΠΈΠΌΠΈ ΠΈ Ρ‚Π΅ΠΌΠΈ ΠΆΠ΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Π°ΠΌΠΈ выявлСния столкновСний, отскока ΠΎΡ‚ Π³Ρ€Π°Π½ΠΈΡ†Ρ‹ экрана ΠΈ Ρ‚.Π΄.

Π“Π»Π°Π²Π½ΠΎΠ΅ ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΌΠ΅ΠΆΠ΄Ρƒ ΡˆΠ°Ρ€ΠΈΠΊΠΎΠΌ ΠΈ спрайтом Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ΠΈΠΌΠ΅Π½Π½ΠΎ нарисовано β€” Π·Π°ΠΏΠΎΠ»Π½Π΅Π½Π½Ρ‹ΠΉ ΠΊΡ€ΡƒΠ³ ΠΈΠ»ΠΈ растр. ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ сначала я Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π»Π° спрайты, Π»ΠΎΠ³ΠΈΡ‡Π½ΠΎ Π±Ρ‹Π»ΠΎ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ x- ΠΈ y-ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Ρ‹ Π²Π΅Ρ€Ρ…Π½Π΅Π³ΠΎ Π»Π΅Π²ΠΎΠ³ΠΎ ΡƒΠ³Π»Π° мСста, Π³Π΄Π΅ Ρ€Π°ΡΠΏΠΎΠ»Π°Π³Π°Π»ΠΎΡΡŒ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅.

Π‘Π°ΠΌΡ‹Π΅ ΠΏΠΎΠ·ΠΎΡ€Π½Ρ‹Π΅ ошибки Π² ΠΌΠΎΠ΅ΠΉ ΠΊΠ°Ρ€ΡŒΠ΅Ρ€Π΅ программиста (Π½Π° Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚)
Когда спрайты Π·Π°Ρ€Π°Π±ΠΎΡ‚Π°Π»ΠΈ, я Ρ€Π΅ΡˆΠΈΠ»Π°, Ρ‡Ρ‚ΠΎ ΠΌΠΎΠΆΠ½ΠΎ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹-ΡˆΠ°Ρ€ΠΈΠΊΠΈ ΠΎΡ‡Π΅Π½ΡŒ нСбольшим количСством ΠΊΠΎΠ΄Π°. ΠŸΡ€ΠΎΠ±Π»Π΅ΠΌΠ° Π±Ρ‹Π»Π° лишь Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ я пошла самым простым ΠΏΡƒΡ‚Π΅ΠΌ (с Ρ‚ΠΎΡ‡ΠΊΠΈ зрСния Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ‚ΠΎΡ€Π°), ΡƒΠΊΠ°Π·Π°Π² x- ΠΈ y-ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Ρ‹ Π²Π΅Ρ€Ρ…Π½Π΅Π³ΠΎ Π»Π΅Π²ΠΎΠ³ΠΎ ΡƒΠ³Π»Π° ΠΊΠΎΠ½Ρ‚ΡƒΡ€Π°, ΠΎΠ±Ρ€Π°ΠΌΠ»ΡΡŽΡ‰Π΅Π³ΠΎ ΡˆΠ°Ρ€.

Π‘Π°ΠΌΡ‹Π΅ ΠΏΠΎΠ·ΠΎΡ€Π½Ρ‹Π΅ ошибки Π² ΠΌΠΎΠ΅ΠΉ ΠΊΠ°Ρ€ΡŒΠ΅Ρ€Π΅ программиста (Π½Π° Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚)
На самом Π΄Π΅Π»Π΅ Π½ΡƒΠΆΠ½ΠΎ Π±Ρ‹Π»ΠΎ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ x- ΠΈ y-ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Ρ‹ Ρ†Π΅Π½Ρ‚Ρ€Π° ΠΊΡ€ΡƒΠ³Π°, ΠΊΠ°ΠΊ этому ΡƒΡ‡ΠΈΡ‚ любой ΡƒΡ‡Π΅Π±Π½ΠΈΠΊ ΠΌΠ°Ρ‚Π΅ΠΌΠ°Ρ‚ΠΈΠΊΠΈ ΠΈ любой Π΄Ρ€ΡƒΠ³ΠΎΠΉ источник, ΡƒΠΏΠΎΠΌΠΈΠ½Π°ΡŽΡ‰ΠΈΠΉ ΠΊΡ€ΡƒΠ³ΠΈ.

Π‘Π°ΠΌΡ‹Π΅ ΠΏΠΎΠ·ΠΎΡ€Π½Ρ‹Π΅ ошибки Π² ΠΌΠΎΠ΅ΠΉ ΠΊΠ°Ρ€ΡŒΠ΅Ρ€Π΅ программиста (Π½Π° Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚)
Π’ ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ ΠΌΠΎΠΈΡ… ΠΏΡ€ΠΎΡˆΠ»Ρ‹Ρ… ошибок, ΠΎΡ‚ этой пострадали Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΌΠΎΠΈ ΠΊΠΎΠ»Π»Π΅Π³ΠΈ, Π½ΠΎ ΠΈ ΠΌΠΈΠ»Π»ΠΈΠΎΠ½Ρ‹ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ App Inventor. МногиС ΠΈΠ· Π½ΠΈΡ… Π±Ρ‹Π»ΠΈ Π΄Π΅Ρ‚ΡŒΠΌΠΈ ΠΈΠ»ΠΈ совсСм Π½ΠΎΠ²ΠΈΡ‡ΠΊΠ°ΠΌΠΈ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ. Им ΠΏΡ€ΠΈΡ…ΠΎΠ΄ΠΈΠ»ΠΎΡΡŒ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ ΠΌΠ½ΠΎΠ³ΠΎ Π»ΠΈΡˆΠ½ΠΈΡ… дСйствий ΠΏΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ Π½Π°Π΄ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΌ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ присутствовал ΡˆΠ°Ρ€. Если ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹Π΅ свои ошибки я вспоминаю со смСхом, Ρ‚ΠΎ эта бросаСт мСня Π² ΠΏΠΎΡ‚ ΠΈ сСгодня.

Π― Π½Π°ΠΊΠΎΠ½Π΅Ρ†-Ρ‚ΠΎ Π·Π°ΠΏΠ°Ρ‚Ρ‡ΠΈΠ»Π° эту ΠΎΡˆΠΈΠ±ΠΊΡƒ лишь Π½Π΅Π΄Π°Π²Π½ΠΎ, Π΄Π΅ΡΡΡ‚ΡŒ Π»Π΅Ρ‚ спустя. Β«Π—Π°ΠΏΠ°Ρ‚Ρ‡ΠΈΠ»Π°Β», Π° Π½Π΅ «исправила», вСдь ΠΊΠ°ΠΊ Π³ΠΎΠ²ΠΎΡ€ΠΈΡ‚ Π”ΠΆΠΎΡˆΡƒΠ° Π‘Π»ΠΎΡ…, API Π²Π΅Ρ‡Π½Ρ‹. НС имСя возмоТности внСсти измСнСния, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ повлияли Π±Ρ‹ Π½Π° ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, ΠΌΡ‹ Π΄ΠΎΠ±Π°Π²ΠΈΠ»ΠΈ свойство OriginAtCenter со Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ false Π² старых ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°Ρ… ΠΈ true Π²ΠΎ всСх Π±ΡƒΠ΄ΡƒΡ‰ΠΈΡ…. ΠŸΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΠΈ ΠΌΠΎΠ³ΡƒΡ‚ Π·Π°Π΄Π°Ρ‚ΡŒ Π·Π°ΠΊΠΎΠ½ΠΎΠΌΠ΅Ρ€Π½Ρ‹ΠΉ вопрос, ΠΊΠΎΠΌΡƒ Π²ΠΎΠΎΠ±Ρ‰Π΅ ΠΏΡ€ΠΈΡˆΠ»ΠΎ Π² Π³ΠΎΠ»ΠΎΠ²Ρƒ Ρ€Π°ΡΠΏΠΎΠ»ΠΎΠΆΠΈΡ‚ΡŒ Ρ‚ΠΎΡ‡ΠΊΡƒ отсчСта Π³Π΄Π΅-Ρ‚ΠΎ, ΠΊΡ€ΠΎΠΌΠ΅ Ρ†Π΅Π½Ρ‚Ρ€Π°. ΠšΠΎΠΌΡƒ? ΠžΠ΄Π½ΠΎΠΌΡƒ программисту, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π΄Π΅ΡΡΡ‚ΡŒ Π»Π΅Ρ‚ Π½Π°Π·Π°Π΄ полСнился ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Π½ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΉ API.

ВынСсСнныС ΡƒΡ€ΠΎΠΊΠΈ

Работая Π½Π°Π΄ API (Ρ‡Ρ‚ΠΎ ΠΈΠ½ΠΎΠ³Π΄Π° приходится Π΄Π΅Π»Π°Ρ‚ΡŒ ΠΏΠΎΡ‡Ρ‚ΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠΌΡƒ программисту), Π²Π°ΠΌ стоит ΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚ΡŒ Π»ΡƒΡ‡ΡˆΠΈΠΌ совСтам, ΠΈΠ·Π»ΠΎΠΆΠ΅Π½Π½Ρ‹ΠΌ Π² Π²ΠΈΠ΄Π΅ΠΎ Π”ΠΆΠΎΡˆΡƒΠ° Π‘Π»ΠΎΡ…Π° «Как ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Ρ…ΠΎΡ€ΠΎΡˆΠΈΠΉ API ΠΈ ΠΏΠΎΡ‡Π΅ΠΌΡƒ ΠΎΠ½ Ρ‚Π°ΠΊ Π²Π°ΠΆΠ΅Π½Β» ΠΈΠ»ΠΈ Π² этом ΠΊΡ€Π°Ρ‚ΠΊΠΎΠΌ спискС:

  • API ΠΌΠΎΠΆΠ΅Ρ‚ принСсти Π²Π°ΠΌ ΠΊΠ°ΠΊ ΠΎΠ³Ρ€ΠΎΠΌΠ½ΡƒΡŽ ΠΏΠΎΠ»ΡŒΠ·Ρƒ, Ρ‚Π°ΠΊ ΠΈ ΠΎΠ³Ρ€ΠΎΠΌΠ½Ρ‹ΠΉ Π²Ρ€Π΅Π΄. Π₯ΠΎΡ€ΠΎΡˆΠΈΠΉ API создаСт постоянных ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΎΠ². ΠŸΠ»ΠΎΡ…ΠΎΠΉ становится вашим Π²Π΅Ρ‡Π½Ρ‹ΠΌ ΠΊΠΎΡˆΠΌΠ°Ρ€ΠΎΠΌ.
  • ΠžΠ±Ρ‰Π΅Π΄ΠΎΡΡ‚ΡƒΠΏΠ½Ρ‹Π΅ API, ΠΊΠ°ΠΊ ΠΈ Π±Ρ€ΠΈΠ»Π»ΠΈΠ°Π½Ρ‚Ρ‹, Π²Π΅Ρ‡Π½Ρ‹. Π’Ρ‹Π»ΠΎΠΆΠΈΡ‚Π΅ΡΡŒ Π½Π° всС сто: Π΄Ρ€ΡƒΠ³ΠΎΠ³ΠΎ шанса ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ всС, ΠΊΠ°ΠΊ Π½Π°Π΄ΠΎ, большС Π½Π΅ прСдставится.
  • НамСтки для API Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ ΠΊΡ€Π°Ρ‚ΠΊΠΈΠΌΠΈ β€” ΠΎΠ΄Π½Π° страница с сигнатурами классов ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² ΠΈ описаниями, Π·Π°Π½ΠΈΠΌΠ°ΡŽΡ‰ΠΈΠΌΠΈ Π½Π΅ большС строчки. Π­Ρ‚ΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ‚ Π²Π°ΠΌ Π»Π΅Π³ΠΊΠΎ Ρ€Π΅ΡΡ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ API, Ссли с ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ Ρ€Π°Π·Π° ΠΎΠ½ Π²Ρ‹ΠΉΠ΄Π΅Ρ‚ Π½Π΅ ΠΈΠ΄Π΅Π°Π»ΡŒΠ½Ρ‹ΠΌ.
  • Π Π°ΡΠΏΠΈΡˆΠΈΡ‚Π΅ сцСнарии использования, ΠΏΡ€Π΅ΠΆΠ΄Π΅ Ρ‡Π΅ΠΌ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Ρ‹Π²Π°Ρ‚ΡŒ API ΠΈ Π΄Π°ΠΆΠ΅ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π½Π°Π΄ Π΅Π³ΠΎ спСцификациСй. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ Π²Ρ‹ ΠΈΠ·Π±Π΅ΠΆΠΈΡ‚Π΅ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΈ спСцификации ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ Π½Π΅Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ API.

Если Π±Ρ‹ я написала хотя Π±Ρ‹ нСбольшой конспСкт с искусствСнным сцСнариСм, скорСС всСго, я Π±Ρ‹ выявила ΠΎΡˆΠΈΠ±ΠΊΡƒ ΠΈ исправила Π±Ρ‹ Π΅Π΅. Если ΠΈ Π½Π΅Ρ‚, Ρ‚ΠΎ это Ρ‚ΠΎΡ‡Π½ΠΎ Π±Ρ‹ сдСлал ΠΊΡ‚ΠΎ-Ρ‚ΠΎ ΠΈΠ· ΠΌΠΎΠΈΡ… ΠΊΠΎΠ»Π»Π΅Π³. Π›ΡŽΠ±ΠΎΠ΅ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ΠΈΠΌΠ΅Π΅Ρ‚ Π΄Π°Π»Π΅ΠΊΠΎ ΠΈΠ΄ΡƒΡ‰ΠΈΠ΅ послСдствия, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΎΠ±Π΄ΡƒΠΌΡ‹Π²Π°Ρ‚ΡŒ хотя Π±Ρ‹ дСнь (это касаСтся Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ программирования).

НазваниС эссС Π ΠΈΡ‡Π°Ρ€Π΄Π° ГэбриСла Β«Π§Π΅ΠΌ Ρ…ΡƒΠΆΠ΅, Ρ‚Π΅ΠΌ Π»ΡƒΡ‡ΡˆΠ΅Β» ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ Π½Π° прСимущСство, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚ Ρ‚ΠΎΡ‚, ΠΊΡ‚ΠΎ ΠΏΠ΅Ρ€Π²Ρ‹ΠΌ Π²Ρ‹ΡˆΠ΅Π» Π½Π° Ρ€Ρ‹Π½ΠΎΠΊ β€” ΠΏΡƒΡΡ‚ΡŒ Π΄Π°ΠΆΠ΅ с Π½Π΅ΡΠΎΠ²Π΅Ρ€ΡˆΠ΅Π½Π½Ρ‹ΠΌ ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚ΠΎΠΌ β€” ΠΏΠΎΠΊΠ° ΠΊΡ‚ΠΎ-Ρ‚ΠΎ Π΄Ρ€ΡƒΠ³ΠΎΠΉ Ρ†Π΅Π»ΡƒΡŽ Π²Π΅Ρ‡Π½ΠΎΡΡ‚ΡŒ гонится Π·Π° ΠΈΠ΄Π΅Π°Π»ΠΎΠΌ. Π Π°Π·ΠΌΡ‹ΡˆΠ»ΡΡ Π½Π°Π΄ ΠΊΠΎΠ΄ΠΎΠΌ спрайтов, я понимаю, Ρ‡Ρ‚ΠΎ ΠΌΠ½Π΅ Π΄Π°ΠΆΠ΅ Π½Π΅ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ Π±Ρ‹Π»ΠΎ ΠΏΠΈΡΠ°Ρ‚ΡŒ большС ΠΊΠΎΠ΄Π°, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ всС, ΠΊΠ°ΠΊ Π½Π°Π΄ΠΎ. Как Π½ΠΈ ΠΊΡ€ΡƒΡ‚ΠΈ, я Π³Ρ€ΡƒΠ±ΠΎ ошиблась.

Π—Π°ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅

ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡΡ‚Ρ‹ ΡΠΎΠ²Π΅Ρ€ΡˆΠ°ΡŽΡ‚ ошибки ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ дСнь β€” Π±ΡƒΠ΄ΡŒ Ρ‚ΠΎ написаниС ΠΊΠΎΠ΄Π° с Π±Π°Π³Π°ΠΌΠΈ ΠΈΠ»ΠΈ Π½Π΅ΠΆΠ΅Π»Π°Π½ΠΈΠ΅ ΠΏΠΎΠΏΡ€ΠΎΠ±ΠΎΠ²Π°Ρ‚ΡŒ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ повысит ΠΈΡ… мастСрство ΠΈ ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚ΠΈΠ²Π½ΠΎΡΡ‚ΡŒ. ΠšΠΎΠ½Π΅Ρ‡Π½ΠΎ, ΠΌΠΎΠΆΠ½ΠΎ Π±Ρ‹Ρ‚ΡŒ программистом ΠΈ Π½Π΅ допуская ΡΡ‚ΠΎΠ»ΡŒ ΡΠ΅Ρ€ΡŒΠ΅Π·Π½Ρ‹Ρ… ΠΏΡ€ΠΎΠΌΠ°Ρ…ΠΎΠ², ΠΊΠ°ΠΊΠΈΠ΅ Π΄Π΅Π»Π°Π»Π° я. Но ΡΡ‚Π°Ρ‚ΡŒ Ρ…ΠΎΡ€ΠΎΡˆΠΈΠΌ программистом, Π½Π΅ осознавая своих ошибок ΠΈ Π½Π΅ извлСкая ΠΈΠ· Π½ΠΈΡ… ΡƒΡ€ΠΎΠΊΠΎΠ², Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ.

МнС постоянно Π²ΡΡ‚Ρ€Π΅Ρ‡Π°ΡŽΡ‚ΡΡ студСнты, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ каТСтся, Ρ‡Ρ‚ΠΎ ΠΎΠ½ΠΈ Π΄ΠΎΠΏΡƒΡΠΊΠ°ΡŽΡ‚ слишком ΠΌΠ½ΠΎΠ³ΠΎ ошибок ΠΈ ΠΏΠΎΡ‚ΠΎΠΌΡƒ Π½Π΅ созданы для программирования. Π― знаю, насколько распространСн Π² IT синдром самозванца. НадСюсь, Π²Ρ‹ усвоитС пСрСчислСнныС ΠΌΠ½ΠΎΠΉ ΡƒΡ€ΠΎΠΊΠΈ β€” Π½ΠΎ ΠΏΠΎΠΌΠ½ΠΈΡ‚Π΅ Π³Π»Π°Π²Π½Ρ‹ΠΉ ΠΈΠ· Π½ΠΈΡ…: ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΈΠ· нас допускаСт ошибки β€” стыдныС, ΡΠΌΠ΅ΡˆΠ½Ρ‹Π΅, ΡΡ‚Ρ€Π°ΡˆΠ½Ρ‹Π΅. Π― Π±ΡƒΠ΄Ρƒ ΡƒΠ΄ΠΈΠ²Π»Π΅Π½Π° ΠΈ расстроСна, Ссли Π² Π±ΡƒΠ΄ΡƒΡ‰Π΅ΠΌ Ρƒ мСня Π½Π΅ набСрСтся ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π»Π° Π½Π° ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ΅Π½ΠΈΠ΅ ΡΡ‚Π°Ρ‚ΡŒΠΈ.

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ: habr.com

Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ