JavaRush/Java Π±Π»ΠΎΠ³/Random/ΠšΠΎΡ„Π΅-Π±Ρ€Π΅ΠΉΠΊ #64. Как ΠΏΠΈΡΠ°Ρ‚ΡŒ чистый ΠΊΠΎΠ΄. ΠŸΠΎΡ‡Π΅ΠΌΡƒ Java Π»ΡƒΡ‡ΡˆΠ΅,...

ΠšΠΎΡ„Π΅-Π±Ρ€Π΅ΠΉΠΊ #64. Как ΠΏΠΈΡΠ°Ρ‚ΡŒ чистый ΠΊΠΎΠ΄. ΠŸΠΎΡ‡Π΅ΠΌΡƒ Java Π»ΡƒΡ‡ΡˆΠ΅, Ρ‡Π΅ΠΌ C++ для систСм с Π½ΠΈΠ·ΠΊΠΈΠΌ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ Π·Π°Π΄Π΅Ρ€ΠΆΠΊΠΈ

Π‘Ρ‚Π°Ρ‚ΡŒΡ ΠΈΠ· Π³Ρ€ΡƒΠΏΠΏΡ‹ Random
участников

Как ΠΏΠΈΡΠ°Ρ‚ΡŒ чистый ΠΊΠΎΠ΄

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ: Dev.to НаписаниС чистого ΠΊΠΎΠ΄Π° ΠΏΠΎΡ…ΠΎΠΆΠ΅ Π½Π° написаниС стихов. Π­Ρ‚ΠΎ поэзия, которая Π΄ΠΎΠ»ΠΆΠ½Π° Π±Ρ‹Ρ‚ΡŒ Π»Π°ΠΊΠΎΠ½ΠΈΡ‡Π½ΠΎΠΉ, понятной ΠΈ доступной для измСнСния. Чистый ΠΊΠΎΠ΄ ΠΏΡ€Π΅Π΄ΠΏΠΎΠ»Π°Π³Π°Π΅Ρ‚ ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΡƒΠ΅ΠΌΡƒΡŽ ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΡŽ. Π­Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ внСсСниС ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π½Π΅ ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ ΠΊ хаосу. Π£ΠΌΠ΅Π½ΠΈΠ΅ ΠΏΠΈΡΠ°Ρ‚ΡŒ Ρ‚Π°ΠΊΠΎΠΉ ΠΊΠΎΠ΄ β€” ΠΎΠ΄Π½ΠΎ ΠΈΠ· ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹Ρ… качСств ΠΎΠΏΡ‹Ρ‚Π½ΠΎΠ³ΠΎ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°. ПослС Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ нСсколько людСй посовСтовали ΠΌΠ½Π΅ ΠΏΡ€ΠΎΡ‡Π΅ΡΡ‚ΡŒ ΠΊΠ½ΠΈΠ³Ρƒ «Чистый ΠΊΠΎΠ΄Β», я, Π½Π°ΠΊΠΎΠ½Π΅Ρ†, Π½Π°Π±Ρ€Π°Π»Π°ΡΡŒ храбрости ΠΈ взялась Π·Π° Ρ‡Ρ‚Π΅Π½ΠΈΠ΅. Оказалось, Ρ‡Ρ‚ΠΎ это ΠΎΠ΄Π½Π° ΠΈΠ· Ρ‚Π΅Ρ… ΠΊΠ½ΠΈΠ³, Π³Π΄Π΅ ΠΎΠ±Π»ΠΎΠΆΠΊΠ° ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ ΠΎΠΏΡ€Π°Π²Π΄Ρ‹Π²Π°Π΅Ρ‚ Π°ΠΆΠΈΠΎΡ‚Π°ΠΆ Π²ΠΎΠΊΡ€ΡƒΠ³ Π½Π΅Π΅. Π Π΅ΠΊΠΎΠΌΠ΅Π½Π΄Π°Ρ†ΠΈΠΈ Π² ΠΊΠ½ΠΈΠ³Π΅ Ρ‡Π΅Ρ‚ΠΊΠΈΠ΅, ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹Π΅, ΠΏΡ€Π°ΠΊΡ‚ΠΈΡ‡Π½Ρ‹Π΅, Π΄Π° Π΅Ρ‰Π΅ ΠΈ ΠΏΠΎΠ΄Π°Π½Ρ‹ с ΡŽΠΌΠΎΡ€ΠΎΠΌ. БСгодня я Ρ…ΠΎΡ‡Ρƒ ΠΏΠΎΠ΄Π΅Π»ΠΈΡ‚ΡŒΡΡ с Π²Π°ΠΌΠΈ основными Π²Ρ‹Π²ΠΎΠ΄Π°ΠΌΠΈ ΠΈΠ· этой ΠΊΠ½ΠΈΠ³ΠΈ.ΠšΠΎΡ„Π΅-Π±Ρ€Π΅ΠΉΠΊ #64. Как ΠΏΠΈΡΠ°Ρ‚ΡŒ чистый ΠΊΠΎΠ΄. ΠŸΠΎΡ‡Π΅ΠΌΡƒ Java Π»ΡƒΡ‡ΡˆΠ΅, Ρ‡Π΅ΠΌ C++, для систСм с Π½ΠΈΠ·ΠΊΠΈΠΌ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ Π·Π°Π΄Π΅Ρ€ΠΆΠΊΠΈ - 1

1. Код Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ€Π°Π±ΠΎΡ‡ΠΈΠΌ, Π½ΠΎ ΠΈ Ρ‡ΠΈΡ‚Π°Π΅ΠΌΡ‹ΠΌ

Π‘ΠΎΠ»ΡŒΡˆΡƒΡŽ Ρ‡Π°ΡΡ‚ΡŒ стоимости ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния завязана Π½Π° долгосрочной ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ΅. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ ΠΊΠΎΠ΄, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π²Ρ‹ ΠΏΠΈΡˆΠ΅Ρ‚Π΅, Π΄ΠΎΠ»ΠΆΠ΅Π½ Ρ‡Π΅Ρ‚ΠΊΠΎ Π²Ρ‹Ρ€Π°ΠΆΠ°Ρ‚ΡŒ ваши намСрСния. Он Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ Ρ‚Π°ΠΊΠΈΠΌ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π½ΠΎΠ²Ρ‹Π΅ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ, ΠΏΡ€ΠΈΡΠΎΠ΅Π΄ΠΈΠ½ΠΈΠ²ΡˆΠΈΠ΅ΡΡ ΠΊ ΠΊΠΎΠΌΠ°Π½Π΄Π΅, ΠΌΠΎΠ³Π»ΠΈ Π»Π΅Π³ΠΊΠΎ ΡƒΠ»ΠΎΠ²ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ ΠΈΠΌΠ΅Π½Π½ΠΎ происходит Π² ΠΊΠΎΠ΄Π΅ ΠΈ ΠΏΠΎΡ‡Π΅ΠΌΡƒ. Π§Π΅ΠΌ Π±ΠΎΠ»Π΅Π΅ понятный ΠΊΠΎΠ΄ Π½Π°ΠΏΠΈΡˆΠ΅Ρ‚ Π°Π²Ρ‚ΠΎΡ€, Ρ‚Π΅ΠΌ мСньшС Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ потрСбуСтся Π΄Ρ€ΡƒΠ³ΠΈΠΌ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π² Π½Π΅ΠΌ Ρ€Π°Π·ΠΎΠ±Ρ€Π°Ρ‚ΡŒΡΡ. Π­Ρ‚ΠΎ сниТаСт количСство Π΄Π΅Ρ„Π΅ΠΊΡ‚ΠΎΠ² ΠΈ ΡΡ‚ΠΎΠΈΠΌΠΎΡΡ‚ΡŒ обслуТивания. Как этого Π΄ΠΎΡΡ‚ΠΈΡ‡ΡŒ? Π₯ΠΎΡ€ΠΎΡˆΠΈΠΉ Π½Π΅ΠΉΠΌΠΈΠ½Π³ + классы ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ с Π΅Π΄ΠΈΠ½ΠΎΠΉ ΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²Π΅Π½Π½ΠΎΡΡ‚ΡŒΡŽ + написаниС тСстов.

2. ПозТС β€” Π·Π½Π°Ρ‡ΠΈΡ‚ Π½ΠΈΠΊΠΎΠ³Π΄Π°

Π‘ΡƒΠ΄Π΅ΠΌ чСстны: всС ΠΌΡ‹ ΠΏΠΎΡ€ΠΎΠΉ ΠΎΠ±Π΅Ρ‰Π°Π΅ΠΌ сСбС, Ρ‡Ρ‚ΠΎ вСрнСмся ΠΈ почистим ΠΊΠΎΠ΄ ΠΏΠΎΠ·ΠΆΠ΅, Π½ΠΎ Π² ΠΈΡ‚ΠΎΠ³Π΅ Π·Π°Π±Ρ‹Π²Π°Π΅ΠΌ ΠΎΠ± этом. НС оставляйтС куски бСсполСзного ΠΊΠΎΠ΄Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΡƒΠΆΠ΅ Π½Π΅ Π½ΡƒΠΆΠ½Ρ‹. Они ΡΠ±ΠΈΠ²Π°ΡŽΡ‚ с Ρ‚ΠΎΠ»ΠΊΡƒ Π΄Ρ€ΡƒΠ³ΠΈΡ… Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² ΠΈ Π½Π΅ ΠΈΠΌΠ΅ΡŽΡ‚ Π½ΠΈΠΊΠ°ΠΊΠΎΠΉ цСнности. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ, внося измСнСния Π² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π», всСгда удаляйтС старый ΠΊΠΎΠ΄. Если ΠΏΡ€ΠΈ этом Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ Π³Π΄Π΅-Ρ‚ΠΎ сломаСтся, тСсты всС Ρ€Π°Π²Π½ΠΎ это сразу ΠΏΠΎΠΊΠ°ΠΆΡƒΡ‚. Как этого Π΄ΠΎΡΡ‚ΠΈΡ‡ΡŒ? Π£Π΄Π°Π»ΡΡ‚ΡŒ ΠΊΠΎΠ΄ Π±Ρ‹Π²Π°Π΅Ρ‚ ΡΡ‚Ρ€Π°ΡˆΠ½ΠΎ, особСнно Π² ΠΊΡ€ΡƒΠΏΠ½ΠΎΠΉ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π΅. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ здСсь ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΈΠΌΠ΅ΡŽΡ‚ тСсты. Они ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ ΡƒΠ΄Π°Π»ΡΡ‚ΡŒ ΠΊΠΎΠ΄ ΡƒΠ²Π΅Ρ€Π΅Π½Π½ΠΎ.

3. Π€ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ нСбольшими

ΠŸΠ΅Ρ€Π²ΠΎΠ΅ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ написания Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ β€” ΠΎΠ½ΠΈ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ малСнькими, ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π½ΠΎ Π΄ΠΎ 20 строк. Π§Π΅ΠΌ мСньшС функция ΠΈ Ρ‡Π΅ΠΌ Π±ΠΎΠ»Π΅Π΅ ΠΎΠ½Π° сфокусирована Π½Π° ΠΊΠ°ΠΊΠΎΠΉ-Ρ‚ΠΎ ΠΎΠ΄Π½ΠΎΠΉ Π·Π°Π΄Π°Ρ‡Π΅, Ρ‚Π΅ΠΌ Π»Π΅Π³Ρ‡Π΅ ΠΏΠΎΠ΄ΠΎΠ±Ρ€Π°Ρ‚ΡŒ для Π½Π΅Π΅ Ρ…ΠΎΡ€ΠΎΡˆΠ΅Π΅ имя. Π§Ρ‚ΠΎ касаСтся Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, ΠΈΡ… идСальноС количСство β€” 0. Π”Π°Π»ΡŒΡˆΠ΅ ΠΈΠ΄Π΅Ρ‚ 1, 2, Π½ΠΎ Π½ΡƒΠΆΠ½ΠΎ ΡΡ‚Π°Ρ€Π°Ρ‚ΡŒΡΡ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ² Π±Ρ‹Π»ΠΎ Π½Π΅ большС 3. Как этого Π΄ΠΎΡΡ‚ΠΈΡ‡ΡŒ? Π€ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π½ΡƒΠΆΠ½ΠΎ ΠΏΠΈΡΠ°Ρ‚ΡŒ Π² соотвСтствии с ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΠ°ΠΌΠΈ Π΅Π΄ΠΈΠ½ΠΎΠΉ отвСтствСнности ΠΈ открытости/закрытости.

4. Π”ΡƒΠ±Π»ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΊΠΎΠ΄Π° β€” это ΠΏΠ»ΠΎΡ…ΠΎ

Π”ΡƒΠ±Π»ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ β€” Π²Ρ€Π°Π³ Ρ…ΠΎΡ€ΠΎΡˆΠΎ ΠΎΡ€Π³Π°Π½ΠΈΠ·ΠΎΠ²Π°Π½Π½ΠΎΠΉ систСмы. Π­Ρ‚ΠΎ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Π°Ρ Ρ€Π°Π±ΠΎΡ‚Π°, Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ риск ΠΈ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Π°Ρ нСнуТная ΡΠ»ΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ. Π§Ρ‚ΠΎ с этим Π΄Π΅Π»Π°Ρ‚ΡŒ? Π‘Π»Π΅Π΄ΠΈΡ‚Π΅ Π·Π° Ρ‚Π΅ΠΌ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΊΠΎΠ΄ писался Π² соотвСтствии с ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΠΎΠΌ DRY, Π±Ρ‹Π» ΠΈΠ·ΠΎΠ»ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΌ ΠΈ ΠΌΠΎΠ΄ΡƒΠ»ΡŒΠ½Ρ‹ΠΌ.

5. ЕдинствСнный Ρ…ΠΎΡ€ΠΎΡˆΠΈΠΉ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ β€” это Ρ‚ΠΎΡ‚, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π²Ρ‹ нашли способ Π½Π΅ ΠΏΠΈΡΠ°Ρ‚ΡŒ

«НСт Π½ΠΈΡ‡Π΅Π³ΠΎ ΠΏΠΎΠ»Π΅Π·Π½Π΅Π΅ Ρ…ΠΎΡ€ΠΎΡˆΠ΅Π³ΠΎ коммСнтария Π² Π½ΡƒΠΆΠ½ΠΎΠΌ мСстС. Но ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ Π΄Π°ΠΆΠ΅ Π² Π½Π°ΠΈΠ»ΡƒΡ‡ΡˆΠ΅ΠΌ случаС β€” Π½Π΅ΠΈΠ·Π±Π΅ΠΆΠ½ΠΎΠ΅ Π·Π»ΠΎΒ». ΠšΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ ΠΏΡ€ΠΈΠ·Π²Π°Π½Ρ‹ ΠΊΠΎΠΌΠΏΠ΅Π½ΡΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π½Π°ΡˆΡƒ Π½Π΅ΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡ‚ΡŒ Π²Ρ‹Ρ€Π°Π·ΠΈΡ‚ΡŒ свою ΠΌΡ‹ΡΠ»ΡŒ Π² ΠΊΠΎΠ΄Π΅. Π’ΠΎ Π΅ΡΡ‚ΡŒ, это ΠΈΠ·Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎ ΠΏΡ€ΠΈΠ·Π½Π°Π½ΠΈΠ΅ пораТСния. Π”Π°, Π½Π°ΠΌ приходится ΠΈΡ… ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ ΠΌΡ‹ Π½Π΅ всСгда ΠΌΠΎΠΆΠ΅ΠΌ явно донСсти свои намСрСния ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ ΠΊΠΎΠ΄Π°, Π½ΠΎ это Π½Π΅ ΠΏΠΎΠ²ΠΎΠ΄ для радости. Π”Π΅Π»ΠΎ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ часто Π»Π³ΡƒΡ‚. НС всСгда ΠΈ Π½Π΅ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎ, Π½ΠΎ слишком часто. Π§Π΅ΠΌ ΡΡ‚Π°Ρ€ΡˆΠ΅ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ ΠΈ Ρ‡Π΅ΠΌ дальшС ΠΎΠ½ располоТСн ΠΎΡ‚ ΠΊΠΎΠ΄Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ описываСт, Ρ‚Π΅ΠΌ вСроятнСС, Ρ‡Ρ‚ΠΎ ΠΎΠ½ ΠΎΡˆΠΈΠ±ΠΎΡ‡Π½Ρ‹ΠΉ. ΠŸΡ€ΠΈΡ‡ΠΈΠ½Π° этого проста: программисты Π½Π΅ ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΠΎ-настоящСму Ρ…ΠΎΡ€ΠΎΡˆΠΎ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Ρ‚ΡŒ ΠΈ ΠΊΠΎΠ΄, ΠΈ всС ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ ΠΎΡ‡Π΅Π½ΡŒ часто ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ ΠΎΡ‚Π΄Π΅Π»ΡΡŽΡ‚ΡΡ ΠΎΡ‚ ΠΊΠΎΠ΄Π°, ΠΊ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌΡƒ относятся, ΠΈ становятся бСсхозными аннотациями с минимальной Ρ‚ΠΎΡ‡Π½ΠΎΡΡ‚ΡŒΡŽ. Π§Ρ‚ΠΎ с этим Π΄Π΅Π»Π°Ρ‚ΡŒ? НуТно ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ ΠΎΠΏΠΈΡΠ°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ наимСнования. ΠŸΡ€ΠΎΡ‡ΠΈΡ‚Π°Π² имя ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ, Π²Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ сразу ΠΏΠΎΠ½ΡΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ ΠΎΠ½Π° ΠΈΠ· сСбя прСдставляСт. Π’Π°ΠΊΠΆΠ΅ Π½ΡƒΠΆΠ½Ρ‹ тСсты, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ ΠΏΠΎΠ½ΠΈΠΌΠ°Π»ΠΈ, ΠΊΠ°ΠΊΠΎΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π» являСтся Π³Π»Π°Π²Π½Ρ‹ΠΌ.

6. ΠžΠ±ΡŠΠ΅ΠΊΡ‚ раскрываСт ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅, Π½ΠΎ Π½Π΅ Π΄Π°Π½Π½Ρ‹Π΅

ΠœΠΎΠ΄ΡƒΠ»ΡŒ Π½Π΅ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π·Π½Π°Ρ‚ΡŒ ΠΎ внутрСнностях ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌΠΈ ΠΎΠ½ ΠΌΠ°Π½ΠΈΠΏΡƒΠ»ΠΈΡ€ΡƒΠ΅Ρ‚. ΠžΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ ΡΠΊΡ€Ρ‹Π²Π°ΡŽΡ‚ свои Π΄Π°Π½Π½Ρ‹Π΅ ΠΈ Ρ€Π°ΡΠΊΡ€Ρ‹Π²Π°ΡŽΡ‚ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ. Π­Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Π½Π΅ Π΄ΠΎΠ»ΠΆΠ΅Π½ Ρ€Π°ΡΠΊΡ€Ρ‹Π²Π°Ρ‚ΡŒ свою Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΡŽΡŽ структуру Ρ‡Π΅Ρ€Π΅Π· ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ доступа. НС ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ всС Π²ΠΈΠ΄Π΅Π»ΠΈ тСбя Π³ΠΎΠ»Ρ‹ΠΌ. Π§Ρ‚ΠΎ с этим Π΄Π΅Π»Π°Ρ‚ΡŒ? ΠžΠ±Π»Π°ΡΡ‚ΡŒ видимости ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… Π΄ΠΎΠ»ΠΆΠ½Π° Π±Ρ‹Ρ‚ΡŒ ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ Π±ΠΎΠ»Π΅Π΅ локальной, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π½Π΅ Ρ€Π°ΡΠΊΡ€Ρ‹Π²Π°Ρ‚ΡŒ большС Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΠ³ΠΎ.

7. ВСстированиС

Код тСстов Ρ‚Π°ΠΊ ΠΆΠ΅ Π²Π°ΠΆΠ΅Π½, ΠΊΠ°ΠΊ ΠΈ Ρ‚ΠΎΡ‚, Ρ‡Ρ‚ΠΎ ΠΈΠ΄Π΅Ρ‚ Π² производство. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ ΠΎΠ½ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΌΠ΅Π½ΡΡ‚ΡŒΡΡ ΠΈ расти ΠΏΠΎ ΠΌΠ΅Ρ€Π΅ развития ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°. Благодаря тСстам ваш ΠΊΠΎΠ΄ остаСтся Π³ΠΈΠ±ΠΊΠΈΠΌ, ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅ΠΌΡ‹ΠΌ ΠΈ ΠΏΡ€ΠΈΠ³ΠΎΠ΄Π½Ρ‹ΠΌ для ΠΌΠ½ΠΎΠ³ΠΎΠΊΡ€Π°Ρ‚Π½ΠΎΠ³ΠΎ использования. Π‘Π΅Π· Π½ΠΈΡ… любоС ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠ²Π»Π΅Ρ‡ΡŒ Π·Π° собой появлСниС Π±Π°Π³ΠΎΠ². ВСсты ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ Ρ‡ΠΈΡΡ‚ΠΈΡ‚ΡŒ ΠΊΠΎΠ΄, Π½Π΅ боясь, Ρ‡Ρ‚ΠΎ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ поломаСтся. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠ°Π½ΠΈΠ΅ чистоты тСстов ΠΈΠΌΠ΅Π΅Ρ‚ большоС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅. Чистоту тСстов обСспСчиваСт ΠΈΡ… Ρ‡ΠΈΡ‚Π°Π΅ΠΌΠΎΡΡ‚ΡŒ. ВСсты β€” Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΎΠ±ΡŠΡΡΠ½ΠΈΡ‚ΡŒ Π΄Ρ€ΡƒΠ³ΠΈΠΌ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌ Π½Π° простом языкС намСрСния Π°Π²Ρ‚ΠΎΡ€Π° ΠΊΠΎΠ΄Π°. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ ΠΌΡ‹ Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΉ тСстовой Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ тСстируСм Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄Π½Ρƒ ΠΊΠΎΠ½Ρ†Π΅ΠΏΡ†ΠΈΡŽ. Π’Π°ΠΊ тСст получаСтся ΠΎΠΏΠΈΡΠ°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌ, ΠΎΠ½ Π»Π΅Π³Ρ‡Π΅ читаСтся, Π° Ссли проваливаСтся β€” Π»Π΅Π³Ρ‡Π΅ ΠΎΡ‚ΡΠ»Π΅Π΄ΠΈΡ‚ΡŒ ΠΏΡ€ΠΈΡ‡ΠΈΠ½Ρƒ этого. Как этого Π΄ΠΎΡΡ‚ΠΈΡ‡ΡŒ? НуТно ΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΠ°ΠΌ чистых тСстов FIRST. ВСсты Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ:
  • Быстрыми (Fast). ВСсты Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒΡΡ быстро. Если Π²Π°ΠΌ приходится слишком Π΄ΠΎΠ»Π³ΠΎ ΠΆΠ΄Π°Ρ‚ΡŒ выполнСния тСста, Π²Ρ‹ вряд Π»ΠΈ станСтС Π·Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ Π΅Π³ΠΎ ΠΏΠΎΡ‡Π°Ρ‰Π΅.
  • НСзависимыми / ΠΈΠ·ΠΎΠ»ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΌΠΈ (Independent). ВСсты Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ Π±ΠΎΠ»Π΅Π΅ ΠΈΠ·ΠΎΠ»ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΌΠΈ ΠΈ Π½Π΅ зависящими Π΄Ρ€ΡƒΠ³ ΠΎΡ‚ Π΄Ρ€ΡƒΠ³Π°.
  • ΠŸΠΎΠ²Ρ‚ΠΎΡ€ΡΠ΅ΠΌΡ‹ΠΌΠΈ (Repeatable). ВСсты Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ повторяСмыми Π² любой срСдС β€” Π² Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅, стСйдТингС ΠΈ ΠΏΡ€ΠΎΠ΄Π°ΠΊΡˆΠ΅Π½Π΅.
  • ΠžΡ‡Π΅Π²ΠΈΠ΄Π½Ρ‹ΠΌΠΈ (Self-Validating). Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠΌ выполнСния тСста Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±Ρ‹Ρ‚ΡŒ Π±ΡƒΠ»Π΅Π²ΠΎ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅. ВСст Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ ΠΈΠ»ΠΈ ΠΏΡ€ΠΎΠΉΠ΄Π΅Π½, ΠΈΠ»ΠΈ ΠΏΡ€ΠΎΠ²Π°Π»Π΅Π½.
  • Π˜ΡΡ‡Π΅Ρ€ΠΏΡ‹Π²Π°ΡŽΡ‰ΠΈΠΌΠΈ (Thorough). НуТно ΡΡ‚Ρ€Π΅ΠΌΠΈΡ‚ΡŒΡΡ ΠΎΡ…Π²Π°Ρ‚ΠΈΡ‚ΡŒ тСстами всС ΠΊΡ€Π°ΠΉΠ½ΠΈΠ΅ случаи, всС ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ бСзопасности, ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ use case (Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ использования) ΠΈ happy path (самый благоприятный сцСнарий Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΊΠΎΠ΄Π°).

8. ΠžΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° ошибок ΠΈ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΉ

КаТдоС выбрасываСмоС Π²Π°ΠΌΠΈ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΠ²Π°Ρ‚ΡŒ достаточный контСкст, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ источник ΠΈ мСстонахоТдСниС ошибки. ΠžΠ±Ρ‹Ρ‡Π½ΠΎ Ρƒ вас Π΅ΡΡ‚ΡŒ stack trace ΠΈΠ· любого ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ, Π½ΠΎ stack trace Π½Π΅ расскаТСт Π²Π°ΠΌ ΠΎ Π½Π°Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ, которая Π½Π΅ ΡƒΠ΄Π°Π»Π°ΡΡŒ. По возмоТности ΠΈΠ·Π±Π΅Π³Π°ΠΉΡ‚Π΅ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ null Π² ΠΊΠΎΠ΄Π΅. Если Ρƒ вас Π²ΠΎΠ·Π½ΠΈΠΊΠ½Π΅Ρ‚ соблазн Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒ null ΠΈΠ· ΠΌΠ΅Ρ‚ΠΎΠ΄Π°, ΠΏΠΎΠ΄ΡƒΠΌΠ°ΠΉΡ‚Π΅ Π»ΡƒΡ‡ΡˆΠ΅ Π½Π°Π΄ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒΡŽ создания ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ. Π‘Π΄Π΅Π»Π°ΠΉΡ‚Π΅ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ ошибок ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΠΉ Π·Π°Π΄Π°Ρ‡Π΅ΠΉ, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΎΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°Ρ‚ΡŒ нСзависимо ΠΎΡ‚ основной Π»ΠΎΠ³ΠΈΠΊΠΈ. Как этого Π΄ΠΎΡΡ‚ΠΈΡ‡ΡŒ? Π‘ΠΎΠ·Π΄Π°Π²Π°ΠΉΡ‚Π΅ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΠ²Π½Ρ‹Π΅ сообщСния ΠΎΠ± ΠΎΡˆΠΈΠ±ΠΊΠ°Ρ… ΠΈ ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°ΠΉΡ‚Π΅ ΠΈΡ… вмСстС с вашими ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡΠΌΠΈ. Π£ΠΊΠ°ΠΆΠΈΡ‚Π΅ Π½Π΅ΡƒΠ΄Π°Ρ‡Π½ΡƒΡŽ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΡŽ ΠΈ Ρ‚ΠΈΠΏ ошибки.

9. ΠšΠ»Π°ΡΡΡ‹

ΠšΠ»Π°ΡΡΡ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ нСбольшими. Но ΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ Π½Π°Π΄ΠΎ Π½Π΅ строки ΠΊΠΎΠ΄Π°, Π° ΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²Π΅Π½Π½ΠΎΡΡ‚ΡŒ. ИмСна классов β€” ΠΊΠ»ΡŽΡ‡ ΠΊ описанию Ρ‚ΠΎΠ³ΠΎ, Π·Π° Ρ‡Ρ‚ΠΎ ΠΎΠ½ΠΈ ΠΎΡ‚Π²Π΅Ρ‡Π°ΡŽΡ‚. Наши систСмы Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΡΠΎΡΡ‚ΠΎΡΡ‚ΡŒ ΠΈΠ· большого количСства ΠΌΠ°Π»Π΅Π½ΡŒΠΊΠΈΡ… классов, Π° Π½Π΅ ΠΈΠ· Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… ΠΎΠ³Ρ€ΠΎΠΌΠ½Ρ‹Ρ…. ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ Ρ‚Π°ΠΊΠΎΠΉ малСнький класс Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΈΠ½ΠΊΠ°ΠΏΡΡƒΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π΅Π΄ΠΈΠ½ΡΡ‚Π²Π΅Π½Π½ΡƒΡŽ ΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²Π΅Π½Π½ΠΎΡΡ‚ΡŒ. Для сущСствования ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ класса Π΄ΠΎΠ»ΠΆΠ½Π° Π±Ρ‹Ρ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄Π½Π° конкрСтная ΠΏΡ€ΠΈΡ‡ΠΈΠ½Π°, Π° для достиТСния ΠΆΠ΅Π»Π°Π΅ΠΌΠΎΠ³ΠΎ повСдСния систСмы ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ класс Π΄ΠΎΠ»ΠΆΠ΅Π½ Β«ΡΠΎΡ‚Ρ€ΡƒΠ΄Π½ΠΈΡ‡Π°Ρ‚ΡŒΒ» с нСсколькими Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ классами. Π Π΅Π΄ΠΊΠΎ Π±Ρ‹Π²Π°Π΅Ρ‚ ΡƒΠ²Π°ΠΆΠΈΡ‚Π΅Π»ΡŒΠ½Π°Ρ ΠΏΡ€ΠΈΡ‡ΠΈΠ½Π° для создания общСдоступной ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ. ОслаблСниС инкапсуляции β€” это всСгда крайняя ΠΌΠ΅Ρ€Π°. ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… экзСмпляра Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±Ρ‹Ρ‚ΡŒ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ. Π₯ΠΎΡ€ΠΎΡˆΠΈΠΉ Π΄ΠΈΠ·Π°ΠΉΠ½ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния позволяСт Π²Π½ΠΎΡΠΈΡ‚ΡŒ измСнСния Π±Π΅Π· Π±ΠΎΠ»ΡŒΡˆΠΈΡ… Π²Π»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΠΈ ΠΏΠ΅Ρ€Π΅Π΄Π΅Π»ΠΎΠΊ. Π‘ΡƒΠΆΠ΅Π½ΠΈΠ΅ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π° ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… ΡƒΠΏΡ€ΠΎΡ‰Π°Π΅Ρ‚ эту Π·Π°Π΄Π°Ρ‡Ρƒ. Как этого Π΄ΠΎΡΡ‚ΠΈΡ‡ΡŒ? Π Π°Π·Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ β€” ΠΎΠ΄ΠΈΠ½ ΠΈΠ· ΡΡ‚Π°Ρ€Π΅ΠΉΡˆΠΈΡ… ΠΈ Π²Π°ΠΆΠ½Π΅ΠΉΡˆΠΈΡ… ΠΏΡ€ΠΈΠ΅ΠΌΠΎΠ² проСктирования. ΠšΠ»Π°ΡΡΡ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ для Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠΉ, Π½ΠΎ Π·Π°ΠΊΡ€Ρ‹Ρ‚Ρ‹ для ΠΌΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ. Π’ идСальной систСмС ΠΌΡ‹ Π²ΠΊΠ»ΡŽΡ‡Π°Π΅ΠΌ Π½ΠΎΠ²Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΏΡƒΡ‚Π΅ΠΌ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ систСмы, Π° Π½Π΅ ΠΏΡƒΡ‚Π΅ΠΌ внСсСния ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π² ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΉ ΠΊΠΎΠ΄.

10. Π€ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅

КаТдая пустая строка β€” это Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½Π°Ρ подсказка, ΠΏΠΎΠΌΠΎΠ³Π°ΡŽΡ‰Π°Ρ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ Π½Π°Ρ‡Π°Π»Π°ΡΡŒ новая, ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Π°Ρ концСпция. Π›ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹Π΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΏΠΎΡΠ²Π»ΡΡ‚ΡŒΡΡ Π²Π²Π΅Ρ€Ρ…Ρƒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ. ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ экзСмпляра Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π΄Π΅ΠΊΠ»Π°Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒΡΡ Π²Π²Π΅Ρ€Ρ…Ρƒ класса. ΠšΠΎΡ€ΠΎΡ‚ΠΊΠΈΠ΅ строки Π»ΡƒΡ‡ΡˆΠ΅ Ρ‡Π΅ΠΌ Π΄Π»ΠΈΠ½Π½Ρ‹Π΅. ΠžΠ±Ρ‹Ρ‡Π½ΠΎ ΠΏΡ€Π΅Π΄Π΅Π» β€” 100-120 символов, Π΄Π»ΠΈΠ½Π½Π΅Π΅ ΡƒΠΆΠ΅ Π½Π΅ стоит Π΄Π΅Π»Π°Ρ‚ΡŒ. Как этого Π΄ΠΎΡΡ‚ΠΈΡ‡ΡŒ? Π‘ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‚ΡŒ Π»ΠΈΠ½Ρ‚Π΅Ρ€Ρƒ Π² вашСм CI ΠΈΠ»ΠΈ тСкстовом Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π΅. ΠŸΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ΡΡŒ этими инструмСнтами, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ свой ΠΊΠΎΠ΄ ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ Π±ΠΎΠ»Π΅Π΅ чистым.

ΠŸΡ€ΠΈΠ½Ρ†ΠΈΠΏΡ‹ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ

ΠŸΡ€ΠΈΠΌΠ΅Π½ΡΠΉΡ‚Π΅ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ ΠΏΡ€ΠΈΠ΅ΠΌΡ‹, ΠΈ ваш ΠΊΠΎΠ΄ всСгда Π±ΡƒΠ΄Π΅Ρ‚ чист: ИмСнованиС ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…. ΠŸΠΎΠ΄Π±ΠΎΡ€ подходящих ΠΈΠΌΠ΅Π½ (Ρ…ΠΎΡ€ΠΎΡˆΠΈΠΉ Π½Π΅ΠΉΠΌΠΈΠ½Π³) ΠΈΠΌΠ΅Π΅Ρ‚ Ρ€Π΅ΡˆΠ°ΡŽΡ‰Π΅Π΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ для обСспСчСния Ρ‡ΠΈΡ‚Π°Π±Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ ΠΊΠΎΠ΄Π° ΠΈ, ΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ, Π΅Π³ΠΎ поддСрТиваСмости. Β«Π’Ρ‹Π±ΠΈΡ€Π°Ρ‚ΡŒ имя для ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ слСдуСт Ρ‚Π°ΠΊ ΠΆΠ΅ отвСтствСнно, ΠΊΠ°ΠΊ ΠΈ для своСго ΠΏΠ΅Ρ€Π²Π΅Π½Ρ†Π°Β». Π’Ρ‹Π±ΠΎΡ€ Ρ…ΠΎΡ€ΠΎΡˆΠΈΡ… ΠΈΠΌΠ΅Π½ часто Π²Ρ‹Π·Ρ‹Π²Π°Π΅Ρ‚ трудности Ρƒ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ². Для этого трСбуСтся Ρ…ΠΎΡ€ΠΎΡˆΠΈΠΉ Π½Π°Π²Ρ‹ΠΊ описания ΠΏΡ€Π΅Π΄ΠΌΠ΅Ρ‚ΠΎΠ² ΠΈ раздСляСмый ΠΊΡƒΠ»ΡŒΡ‚ΡƒΡ€Π½Ρ‹ΠΉ бэкграунд. Чистый ΠΊΠΎΠ΄ β€” ΠΊΠΎΠ΄, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Ρ‡ΠΈΡ‚Π°ΡŽΡ‚ ΠΈ ΡƒΠ»ΡƒΡ‡ΡˆΠ°ΡŽΡ‚ ΡΠΎΠ²Π΅Ρ€ΡˆΠ΅Π½Π½ΠΎ Ρ€Π°Π·Π½Ρ‹Π΅ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ. Имя ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ, Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΈΠ»ΠΈ класса Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΠΎΡ‚Π²Π΅Ρ‡Π°Ρ‚ΡŒ Π½Π° всС основныС вопросы: ΠΏΠΎΡ‡Π΅ΠΌΡƒ эта ΡΡƒΡ‰Π½ΠΎΡΡ‚ΡŒ сущСствуСт, для Ρ‡Π΅Π³ΠΎ ΠΈ ΠΊΠ°ΠΊ ΠΎΠ½Π° ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ. Если имя Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ коммСнтария, Π·Π½Π°Ρ‡ΠΈΡ‚, ΠΎΠ½ΠΎ нСдостаточно раскрываСт ΡΡƒΡ‚ΡŒ Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ описываСт. Π‘ΠΎΠ»Π΅Π΅ Π΄Π»ΠΈΠ½Π½Ρ‹Π΅ ΠΈΠΌΠ΅Π½Π° Π²Π°ΠΆΠ½Π΅Π΅ Π±ΠΎΠ»Π΅Π΅ ΠΊΠΎΡ€ΠΎΡ‚ΠΊΠΈΡ…, Π° любоС доступноС для поиска имя Π»ΡƒΡ‡ΡˆΠ΅, Ρ‡Π΅ΠΌ константа. ΠžΠ΄Π½ΠΎΠ±ΡƒΠΊΠ²Π΅Π½Π½Ρ‹Π΅ ΠΈΠΌΠ΅Π½Π° ΠΌΠΎΠ³ΡƒΡ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΊΠ°ΠΊ Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹Π΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ Π²Π½ΡƒΡ‚Ρ€ΠΈ ΠΊΠΎΡ€ΠΎΡ‚ΠΊΠΈΡ… ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ²: Π΄Π»ΠΈΠ½Π° ΠΈΠΌΠ΅Π½ΠΈ Π΄ΠΎΠ»ΠΆΠ½Π° ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ области видимости. ИмСна ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ Π³Π»Π°Π³ΠΎΠ»Π°ΠΌΠΈ ΠΈΠ»ΠΈ Π³Π»Π°Π³ΠΎΠ»ΡŒΠ½Ρ‹ΠΌΠΈ Ρ„Ρ€Π°Π·Π°ΠΌΠΈ; имя класса Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±Ρ‹Ρ‚ΡŒ Π³Π»Π°Π³ΠΎΠ»ΠΎΠΌ. Зависимости Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ свСдСны ΠΊ ΠΌΠΈΠ½ΠΈΠΌΡƒΠΌΡƒ. Π›ΡƒΡ‡ΡˆΠ΅ ΠΏΠΎΠ»Π°Π³Π°Ρ‚ΡŒΡΡ Π½Π° Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ Π²Ρ‹ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΠΈΡ€ΡƒΠ΅Ρ‚Π΅, Ρ‡Π΅ΠΌ Π½Π° Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ. Π’ ΠΏΡ€ΠΎΡ‚ΠΈΠ²Π½ΠΎΠΌ случаС эти Π²Π΅Ρ‰ΠΈ Π±ΡƒΠ΄ΡƒΡ‚ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ вас. ΠΠΊΠΊΡƒΡ€Π°Ρ‚Π½ΠΎΡΡ‚ΡŒ. ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹ΠΉ Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚ ΠΊΠΎΠ΄Π° Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ Π² Ρ‚ΠΎΠΌ мСстС, Π³Π΄Π΅ Ρ‡ΠΈΡ‚Π°Ρ‚Π΅Π»ΡŒ ΠΎΠΆΠΈΠ΄Π°Π΅Ρ‚ Π΅Π³ΠΎ Π½Π°ΠΉΡ‚ΠΈ. Навигация ΠΏΠΎ ΠΊΠΎΠ΄ΠΎΠ²ΠΎΠΉ Π±Π°Π·Π΅ Π΄ΠΎΠ»ΠΆΠ½Π° Π±Ρ‹Ρ‚ΡŒ ΠΈΠ½Ρ‚ΡƒΠΈΡ‚ΠΈΠ²Π½ΠΎΠΉ, Π° намСрСния Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ° β€” понятными. ΠžΡ‡ΠΈΡΡ‚ΠΊΠ°. НС оставляйтС Π² ΠΊΠΎΠ΄ΠΎΠ²ΠΎΠΉ Π±Π°Π·Π΅ бСсполСзный ΠΊΠΎΠ΄ (старый ΠΈ ΡƒΠΆΠ΅ Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‰ΠΈΠΉΡΡ ΠΈΠ»ΠΈ созданный Β«Π½Π° всякий случай»). Π£ΠΌΠ΅Π½ΡŒΡˆΠ°ΠΉΡ‚Π΅ количСство Π΄ΡƒΠ±Π»ΠΈΠΊΠ°Ρ‚ΠΎΠ² ΠΈ создавайтС простыС абстракции Π½Π° Ρ€Π°Π½Π½ΠΈΡ… этапах. Бтандартизация. ΠŸΡ€ΠΈ написании ΠΊΠΎΠ΄Π° слСдуСт ΠΏΡ€ΠΈΠ΄Π΅Ρ€ΠΆΠΈΠ²Π°Ρ‚ΡŒΡΡ стиля ΠΈ ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊ, установлСнных для рСпозитория. Бамодисциплина. По ΠΌΠ΅Ρ€Π΅ развития ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½Π½Ρ‹Ρ… Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΉ ΠΈ появлСния Π½ΠΎΠ²Ρ‹Ρ… Ρƒ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² часто Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ стрСмлСниС Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΠΈ ΡƒΠ»ΡƒΡ‡ΡˆΠΈΡ‚ΡŒ Π² ΡƒΠΆΠ΅ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰Π΅ΠΌ ΠΊΠΎΠ΄Π΅. НС ΠΏΠΎΠ΄Π΄Π°Π²Π°ΠΉΡ‚Π΅ΡΡŒ Ρ…Π°ΠΉΠΏΡƒ слишком быстро: ΠΈΠ·ΡƒΡ‡Π°ΠΉΡ‚Π΅ Π½ΠΎΠ²Ρ‹Π΅ стСки ΠΎΡΠ½ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ ΠΈ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ с ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΉ Ρ†Π΅Π»ΡŒΡŽ. ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° чистоты ΠΊΠΎΠ΄ΠΎΠ²ΠΎΠΉ Π±Π°Π·Ρ‹ β€” это Π½Π΅Ρ‡Ρ‚ΠΎ большСС, Ρ‡Π΅ΠΌ Π²Π΅ΠΆΠ»ΠΈΠ²ΠΎΡΡ‚ΡŒ ΠΏΠΎ ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΡŽ ΠΊ настоящим ΠΈ Π±ΡƒΠ΄ΡƒΡ‰ΠΈΠΌ ΠΊΠΎΠ»Π»Π΅Π³Π°ΠΌ. Она Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠ° для выТивания ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π² долгосрочной пСрспСктивС. Π§Π΅ΠΌ Ρ‡ΠΈΡ‰Π΅ ваш ΠΊΠΎΠ΄, Ρ‚Π΅ΠΌ счастливСС Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ, Ρ‚Π΅ΠΌ Π»ΡƒΡ‡ΡˆΠ΅ ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚ ΠΈ Ρ‚Π΅ΠΌ дольшС ΠΎΠ½ просущСствуСт.

ΠŸΠΎΡ‡Π΅ΠΌΡƒ Java Π»ΡƒΡ‡ΡˆΠ΅, Ρ‡Π΅ΠΌ C++, для систСм с Π½ΠΈΠ·ΠΊΠΈΠΌ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ Π·Π°Π΄Π΅Ρ€ΠΆΠΊΠΈ

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ: StackOverflow Как Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ, ΠΌΡ‹ всС Π·Π½Π°Π΅ΠΌ, Ρ‡Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ Π΄Π²Π° способа Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ Π΄Π΅Π»Π°Ρ‚ΡŒ: Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ, ΠΌΠ΅Π΄Π»Π΅Π½Π½ΠΎ ΠΈ с Ρ€Π°Π·Π΄Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ΠΌ, ΠΈΠ»ΠΈ автоматичСски, слоТно ΠΈ быстро. Π― ΠΌΠΎΠ³ Π±Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ искусствСнный ΠΈΠ½Ρ‚Π΅Π»Π»Π΅ΠΊΡ‚, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ½ написал Π·Π° мСня эту ΡΡ‚Π°Ρ‚ΡŒΡŽ. Π­Ρ‚ΠΎ ΠΌΠΎΠ³Π»ΠΎ Π±Ρ‹ ΡΡΠΊΠΎΠ½ΠΎΠΌΠΈΡ‚ΡŒ ΠΌΠ½Π΅ ΠΊΡƒΡ‡Ρƒ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ β€” ИИ способСн Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ тысячи статСй Π² сСкунду, Π½ΠΎ ΠΌΠΎΠΉ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€ вряд Π»ΠΈ обрадуСтся, ΡƒΠ·Π½Π°Π², Ρ‡Ρ‚ΠΎ гСнСрация ΠΏΠ΅Ρ€Π²ΠΎΠΉ ΡΡ‚Π°Ρ‚ΡŒΠΈ Π·Π°ΠΉΠΌΠ΅Ρ‚ Π΄Π²Π° Π³ΠΎΠ΄Π°.ΠšΠΎΡ„Π΅-Π±Ρ€Π΅ΠΉΠΊ #64. Как ΠΏΠΈΡΠ°Ρ‚ΡŒ чистый ΠΊΠΎΠ΄. ΠŸΠΎΡ‡Π΅ΠΌΡƒ Java Π»ΡƒΡ‡ΡˆΠ΅, Ρ‡Π΅ΠΌ C++, для систСм с Π½ΠΈΠ·ΠΊΠΈΠΌ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ Π·Π°Π΄Π΅Ρ€ΠΆΠΊΠΈ - 2Аналогичная ситуация Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ ΠΏΡ€ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹Ρ… систСм с Π½ΠΈΠ·ΠΊΠΈΠΌ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ Π·Π°Π΄Π΅Ρ€ΠΆΠΊΠΈ. ΠŸΡ€ΠΈΠ½ΡΡ‚ΠΎ ΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ Π±Ρ‹Π»ΠΎ Π±Ρ‹ Π±Π΅Π·ΡƒΠΌΠΈΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ‡Ρ‚ΠΎ-Π»ΠΈΠ±ΠΎ, ΠΊΡ€ΠΎΠΌΠ΅ C++, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ всС ΠΎΡΡ‚Π°Π»ΡŒΠ½ΠΎΠ΅ ΠΈΠΌΠ΅Π΅Ρ‚ слишком Π±ΠΎΠ»ΡŒΡˆΡƒΡŽ Π·Π°Π΄Π΅Ρ€ΠΆΠΊΡƒ. Но я здСсь, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ±Π΅Π΄ΠΈΡ‚ΡŒ вас Π² ΠΏΡ€ΠΎΡ‚ΠΈΠ²ΠΎΠΏΠΎΠ»ΠΎΠΆΠ½ΠΎΠΌ, ΠΏΡ€ΠΎΡ‚ΠΈΠ²ΠΎΡ€Π΅Ρ‡Π°Ρ‰Π΅ΠΌ ΠΈΠ½Ρ‚ΡƒΠΈΡ†ΠΈΠΈ, ΠΏΠΎΡ‡Ρ‚ΠΈ СрСтичСском понятии: ΠΊΠΎΠ³Π΄Π° Π΄Π΅Π»ΠΎ Π΄ΠΎΡ…ΠΎΠ΄ΠΈΡ‚ Π΄ΠΎ достиТСния Π½ΠΈΠ·ΠΊΠΎΠΉ Π·Π°Π΄Π΅Ρ€ΠΆΠΊΠΈ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹Ρ… систСмах, Π»ΡƒΡ‡ΡˆΠ΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Java. Π’ этой ΡΡ‚Π°Ρ‚ΡŒΠ΅ я Ρ…ΠΎΡ‡Ρƒ Π²Π·ΡΡ‚ΡŒ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹ΠΉ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния, для ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ цСнится низкая Π·Π°Π΄Π΅Ρ€ΠΆΠΊΠ°: Ρ‚ΠΎΡ€Π³ΠΎΠ²Ρ‹Π΅ систСмы. Однако ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½Ρ‹Π΅ здСсь Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Ρ‹ ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒΡΡ практичСски ΠΊ Π»ΡŽΠ±Ρ‹ΠΌ ΠΎΠ±ΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΡΡ‚Π²Π°ΠΌ, Π² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… трСбуСтся ΠΈΠ»ΠΈ ΠΆΠ΅Π»Π°Ρ‚Π΅Π»ΡŒΠ½Π° низкая Π·Π°Π΄Π΅Ρ€ΠΆΠΊΠ°. ΠŸΡ€ΠΎΡΡ‚ΠΎ это Π»Π΅Π³Ρ‡Π΅ ΠΎΠ±ΡΡƒΠΆΠ΄Π°Ρ‚ΡŒ ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΊ Ρ‚ΠΎΠΉ области Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Ρƒ мСня Π΅ΡΡ‚ΡŒ ΠΎΠΏΡ‹Ρ‚. И ΠΏΡ€Π°Π²Π΄Π° Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ Π·Π°Π΄Π΅Ρ€ΠΆΠΊΡƒ слоТно ΠΈΠ·ΠΌΠ΅Ρ€ΠΈΡ‚ΡŒ. ВсС сводится ΠΊ Ρ‚ΠΎΠΌΡƒ, Ρ‡Ρ‚ΠΎ Π²Ρ‹ ΠΏΠΎΠ½ΠΈΠΌΠ°Π΅Ρ‚Π΅ ΠΏΠΎΠ΄ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ΠΌ «низкая Π·Π°Π΄Π΅Ρ€ΠΆΠΊΠ°Β». Π”Π°Π²Π°ΠΉΡ‚Π΅ сСйчас Π² этом разбСрСмся.

ΠŸΡ€ΠΈΠΎΠ±Ρ€Π΅Ρ‚Π΅Π½Π½Π°Ρ ΠΌΡƒΠ΄Ρ€ΠΎΡΡ‚ΡŒ

ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ C++ Π³ΠΎΡ€Π°Π·Π΄ΠΎ Π±Π»ΠΈΠΆΠ΅ ΠΊ ΠΆΠ΅Π»Π΅Π·Ρƒ, Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² скаТут Π²Π°ΠΌ, Ρ‡Ρ‚ΠΎ ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π½Π° этом языкС Π΄Π°Π΅Ρ‚ прСимущСство Π² скорости. Π’ ситуациях с ΠΌΠ°Π»ΠΎΠΉ Π·Π°Π΄Π΅Ρ€ΠΆΠΊΠΎΠΉ, Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ высокоскоростная торговля, ΠΊΠΎΠ³Π΄Π° миллисСкунды ΠΌΠΎΠ³ΡƒΡ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΌΠ΅ΠΆΠ΄Ρƒ ТизнСспособной Ρ‡Π°ΡΡ‚ΡŒΡŽ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния ΠΈ ΡƒΡΡ‚Π°Ρ€Π΅Π²ΡˆΠ΅ΠΉ Ρ‚Ρ€Π°Ρ‚ΠΎΠΉ дискового пространства, C++ считаСтся Π·ΠΎΠ»ΠΎΡ‚Ρ‹ΠΌ стандартом. По ΠΊΡ€Π°ΠΉΠ½Π΅ΠΉ ΠΌΠ΅Ρ€Π΅, ΠΊΠΎΠ³Π΄Π°-Ρ‚ΠΎ Ρ‚Π°ΠΊ Π±Ρ‹Π»ΠΎ. Но Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ Ρ‚Π°ΠΊΠΎΠ²Π°, Ρ‡Ρ‚ΠΎ Π² настоящСС врСмя ΠΌΠ½ΠΎΠ³ΠΈΠ΅ ΠΊΡ€ΡƒΠΏΠ½Ρ‹Π΅ Π±Π°Π½ΠΊΠΈ ΠΈ Π±Ρ€ΠΎΠΊΠ΅Ρ€Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ систСмы, написанныС Π½Π° Java. И я имСю Π² Π²ΠΈΠ΄Ρƒ ΠΈΠ·Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎ написанноС Π½Π° Java, Π° Π½Π΅ написанноС Π½Π° Java, Π° Π·Π°Ρ‚Π΅ΠΌ ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ΅ Π½Π° C++ с Ρ†Π΅Π»ΡŒΡŽ ΡƒΠΌΠ΅Π½ΡŒΡˆΠ΅Π½ΠΈΡ Π·Π°Π΄Π΅Ρ€ΠΆΠΊΠΈ. Π­Ρ‚ΠΈ систСмы становятся стандартными Π΄Π°ΠΆΠ΅ для инвСстиционных Π±Π°Π½ΠΊΠΎΠ² ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ уровня, нСсмотря Π½Π° Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ ΠΎΠ½ΠΈ (ΠΏΡ€Π΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ) ΠΌΠ΅Π΄Π»Π΅Π½Π½Π΅Π΅. Π˜Ρ‚Π°ΠΊ, Ρ‡Ρ‚ΠΎ происходит? Π”Π°, C++ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ Β«Π½ΠΈΠ·ΠΊΡƒΡŽ Π·Π°Π΄Π΅Ρ€ΠΆΠΊΡƒΒ», ΠΊΠΎΠ³Π΄Π° Π΄Π΅Π»ΠΎ Π΄ΠΎΡ…ΠΎΠ΄ΠΈΡ‚ Π΄ΠΎ выполнСния ΠΊΠΎΠ΄Π°, Π½ΠΎ это ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎ Π½Π΅ низкая Π·Π°Π΄Π΅Ρ€ΠΆΠΊΠ°, ΠΊΠΎΠ³Π΄Π° Π΄Π΅Π»ΠΎ Π΄ΠΎΡ…ΠΎΠ΄ΠΈΡ‚ Π΄ΠΎ развСртывания Π½ΠΎΠ²Ρ‹Ρ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ ΠΈΠ»ΠΈ Π΄Π°ΠΆΠ΅ поиска Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ Π΅Π³ΠΎ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ.

(Π Π΅Π°Π»ΡŒΠ½Ρ‹Π΅) различия ΠΌΠ΅ΠΆΠ΄Ρƒ Java ΠΈ C++

Вопрос Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ β€” это Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π½Π°Ρ‡Π°Π»ΠΎ, ΠΊΠΎΠ³Π΄Π° Ρ€Π΅Ρ‡ΡŒ ΠΈΠ΄Π΅Ρ‚ ΠΎ различиях ΠΌΠ΅ΠΆΠ΄Ρƒ Java ΠΈ C++ Π² Ρ€Π΅Π°Π»ΡŒΠ½Ρ‹Ρ… систСмах. Π§Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ½ΡΡ‚ΡŒ ΠΈΡΡ‚ΠΈΠ½Π½ΡƒΡŽ Ρ†Π΅Π½Π½ΠΎΡΡ‚ΡŒ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ языка Π² этом контСкстС, Π΄Π°Π²Π°ΠΉΡ‚Π΅ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ углубимся. Π’ΠΎ-ΠΏΠ΅Ρ€Π²Ρ‹Ρ…, Π²Π°ΠΆΠ½ΠΎ ΠΏΠΎΠΌΠ½ΠΈΡ‚ΡŒ Π½Π°ΡΡ‚ΠΎΡΡ‰ΡƒΡŽ ΠΏΡ€ΠΈΡ‡ΠΈΠ½Ρƒ, ΠΏΠΎ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ C++ Π² Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π΅ ситуаций быстрСС Java: ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ C++ являСтся адрСсом ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π² памяти. Π­Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ΅ обСспСчСниС ΠΌΠΎΠΆΠ΅Ρ‚ Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ ΠΎΠ±Ρ€Π°Ρ‰Π°Ρ‚ΡŒΡΡ ΠΊ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹ΠΌ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΌ, ΠΈ Π΅ΠΌΡƒ Π½Π΅ Π½ΡƒΠΆΠ½ΠΎ ΠΏΡ€ΠΎΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°Ρ‚ΡŒ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹, Ρ‚Ρ€Π΅Π±ΡƒΡŽΡ‰ΠΈΠ΅ Π±ΠΎΠ»ΡŒΡˆΠΈΡ… Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… рСсурсов, для ΠΈΡ… поиска. Или, ΠΏΠΎ ΠΊΡ€Π°ΠΉΠ½Π΅ΠΉ ΠΌΠ΅Ρ€Π΅, ΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΠ±Ρ€Π°Ρ‰Π°Ρ‚ΡŒΡΡ, Ссли Π±ΡƒΠ΄Π΅Ρ‚ ΡƒΠΊΠ°Π·Π°Π½ΠΎ, Π³Π΄Π΅ ΠΎΠ½ΠΈ находятся, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ с C++ Π²Π°ΠΌ часто придСтся явно ΡƒΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ Π²Ρ€Π΅ΠΌΠ΅Π½Π΅ΠΌ ΠΆΠΈΠ·Π½ΠΈ ΠΈ Π²Π»Π°Π΄Π΅Π½ΠΈΠ΅ΠΌ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌΠΈ. Π’ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅, Ссли Π²Ρ‹ Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π½Π΅ ΠΎΡ‡Π΅Π½ΡŒ Ρ…ΠΎΡ€ΠΎΡˆΠΈ Π² написании ΠΊΠΎΠ΄Π° (Π½Π°Π²Ρ‹ΠΊ, Π½Π° освоСниС ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΎΠ²Π°Ρ‚ΡŒΡΡ дСсятилСтия), C++ ΠΏΠΎΡ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ часов (ΠΈΠ»ΠΈ нСдСль) ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ. И, ΠΊΠ°ΠΊ Π²Π°ΠΌ скаТСт любой, ΠΊΡ‚ΠΎ пытался ΠΎΡ‚Π»Π°Π΄ΠΈΡ‚ΡŒ Monte Carlo engine ΠΈΠ»ΠΈ ΠΈΠ½ΡΡ‚Ρ€ΡƒΠΌΠ΅Π½Ρ‚Π°Π»ΡŒΠ½ΠΎΠ΅ срСдство ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ PDE, ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΠ° ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ доступа ΠΊ памяти Π½Π° Ρ„ΡƒΠ½Π΄Π°ΠΌΠ΅Π½Ρ‚Π°Π»ΡŒΠ½ΠΎΠΌ ΡƒΡ€ΠΎΠ²Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π·Π°Π½ΡΡ‚ΡŒ ΠΎΡ‡Π΅Π½ΡŒ ΠΌΠ½ΠΎΠ³ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ. Один Ρ‚ΠΎΠ»ΡŒΠΊΠΎ нСисправный ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ ΠΌΠΎΠΆΠ΅Ρ‚ Π»Π΅Π³ΠΊΠΎ вывСсти ΠΈΠ· строя всю систСму, поэтому выпуск Π½ΠΎΠ²ΠΎΠΉ вСрсии, написанной Π½Π° C++, ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ поистинС ΡƒΠΆΠ°ΡΠ°ΡŽΡ‰ΠΈΠΌ. ΠšΠΎΠ½Π΅Ρ‡Π½ΠΎ, это Π΅Ρ‰Π΅ Π½Π΅ всС. Π›ΡŽΠ΄ΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ нравится ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π½Π° C++, ΡƒΠΊΠ°ΠΆΡƒΡ‚ Π½Π° Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ сборщик мусора Π² Java страдаСт ΠΎΡ‚ Π½Π΅Π»ΠΈΠ½Π΅ΠΉΠ½Ρ‹Ρ… всплСсков Π·Π°Π΄Π΅Ρ€ΠΆΠΊΠΈ . Π­Ρ‚ΠΎ особСнно Π°ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½ΠΎ ΠΏΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ с ΡƒΡΡ‚Π°Ρ€Π΅Π²ΡˆΠΈΠΌΠΈ систСмами, поэтому ΠΎΡ‚ΠΏΡ€Π°Π²ΠΊΠ° ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠΉ ΠΊΠΎΠ΄Π° Java, Π½Π΅ Π½Π°Ρ€ΡƒΡˆΠ°Ρ Ρ€Π°Π±ΠΎΡ‚Ρƒ клиСнтских систСм, ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΈΡ… Π½Π°ΡΡ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΌΠ΅Π΄Π»Π΅Π½Π½Ρ‹ΠΌΠΈ, Ρ‡Ρ‚ΠΎ ΠΈΡ… нСльзя Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ. Π’ ΠΎΡ‚Π²Π΅Ρ‚ я Ρ…ΠΎΡ‚Π΅Π» Π±Ρ‹ ΠΎΡ‚ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ Π·Π° послСднСС дСсятилСтиС Π±Ρ‹Π»Π° ΠΏΡ€ΠΎΠ΄Π΅Π»Π°Π½Π° большая Ρ€Π°Π±ΠΎΡ‚Π° ΠΏΠΎ ΡΠΎΠΊΡ€Π°Ρ‰Π΅Π½ΠΈΡŽ Π·Π°Π΄Π΅Ρ€ΠΆΠΊΠΈ, создаваСмой Java GC. LMAX Disruptor, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, прСдставляСт собой Ρ‚ΠΎΡ€Π³ΠΎΠ²ΡƒΡŽ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡƒ с Π½ΠΈΠ·ΠΊΠΈΠΌ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ Π·Π°Π΄Π΅Ρ€ΠΆΠΊΠΈ, Π½Π°ΠΏΠΈΡΠ°Π½Π½ΡƒΡŽ Π½Π° Java, Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΠΎΡΡ‚Ρ€ΠΎΠ΅Π½Π½ΡƒΡŽ ΠΊΠ°ΠΊ Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΈΠΌΠ΅Π΅Ρ‚ «мСханичСскоС взаимодСйствиС» с ΠΎΠ±ΠΎΡ€ΡƒΠ΄ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ ΠΎΠ½ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚, ΠΈ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π½Π΅ Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠΈ. ΠŸΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ смягчСны, Ссли Π²Ρ‹ создаСтС систСму, которая ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ процСсс Π½Π΅ΠΏΡ€Π΅Ρ€Ρ‹Π²Π½ΠΎΠΉ ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΠΈ ΠΈ доставки (CI / CD), ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ CI / CD допускаСт автоматичСскоС Ρ€Π°Π·Π²Π΅Ρ€Ρ‚Ρ‹Π²Π°Π½ΠΈΠ΅ ΠΏΡ€ΠΎΠ²Π΅Ρ€Π΅Π½Π½Ρ‹Ρ… ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ ΠΊΠΎΠ΄Π°. Π­Ρ‚ΠΎ связано с Ρ‚Π΅ΠΌ, Ρ‡Ρ‚ΠΎ CI / CD обСспСчиваСт ΠΈΡ‚Π΅Ρ€Π°Ρ‚ΠΈΠ²Π½Ρ‹ΠΉ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ ΠΊ ΡƒΠΌΠ΅Π½ΡŒΡˆΠ΅Π½ΠΈΡŽ Π·Π°Π΄Π΅Ρ€ΠΆΠ΅ΠΊ сборки мусора, ΠΏΡ€ΠΈ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ Java ΠΌΠΎΠΆΠ΅Ρ‚ постСпСнно ΡƒΠ»ΡƒΡ‡ΡˆΠ°Ρ‚ΡŒΡΡ ΠΈ Π°Π΄Π°ΠΏΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΠΊ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹ΠΌ Π°ΠΏΠΏΠ°Ρ€Π°Ρ‚Π½Ρ‹ΠΌ срСдам Π±Π΅Π· рСсурсоСмкого процСсса ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΠΊΠΈ ΠΊΠΎΠ΄Π° для Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… спСцификаций оборудования ΠΏΠ΅Ρ€Π΅Π΄ Π΅Π³ΠΎ ΠΎΡ‚ΠΏΡ€Π°Π²ΠΊΠΎΠΉ. ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Java Π² IDE Π½Π°ΠΌΠ½ΠΎΠ³ΠΎ ΡˆΠΈΡ€Π΅, Ρ‡Π΅ΠΌ Π² C++, Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ срСд (Eclipse, IntelliJ IDEA) ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ Ρ€Π΅Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΈΠ½Π³ Java. Π­Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ IDE ΠΌΠΎΠ³ΡƒΡ‚ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠ΄ для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Π½ΠΈΠ·ΠΊΠΈΠΌ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ Π·Π°Π΄Π΅Ρ€ΠΆΠΊΠΈ, хотя эта Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ всС Π΅Ρ‰Π΅ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Π° ΠΏΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ с C++. Π”Π°ΠΆΠ΅ Ссли ΠΊΠΎΠ΄ Java Π½Π΅ совсСм соотвСтствуСт C++ ΠΏΠΎ скорости, Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Ρƒ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² всС Ρ€Π°Π²Π½ΠΎ Π»Π΅Π³Ρ‡Π΅ Π΄ΠΎΡΡ‚ΠΈΡ‡ΡŒ ΠΏΡ€ΠΈΠ΅ΠΌΠ»Π΅ΠΌΠΎΠΉ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ Π² Java, Ρ‡Π΅ΠΌ Π² C++.

Π§Ρ‚ΠΎ ΠΌΡ‹ ΠΏΠΎΠ΄Ρ€Π°Π·ΡƒΠΌΠ΅Π²Π°Π΅ΠΌ ΠΏΠΎΠ΄ словом «быстрСС»?

ЀактичСски, Π΅ΡΡ‚ΡŒ вСская ΠΏΡ€ΠΈΡ‡ΠΈΠ½Π° ΡƒΡΠΎΠΌΠ½ΠΈΡ‚ΡŒΡΡ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ C++ Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Β«Π±ΠΎΠ»Π΅Π΅ быстрый» ΠΈΠ»ΠΈ Π²ΠΎΠΎΠ±Ρ‰Π΅ ΠΈΠΌΠ΅Π΅Ρ‚ Β«ΠΌΠ΅Π½ΡŒΡˆΡƒΡŽ Π·Π°Π΄Π΅Ρ€ΠΆΠΊΡƒΒ», Ρ‡Π΅ΠΌ Java. Π― осознаю, Ρ‡Ρ‚ΠΎ попадаю Π² довольно β€œΠΌΡƒΡ‚Π½Ρ‹Π΅ воды”, ΠΈ Ρ‡Ρ‚ΠΎ ΠΌΠ½ΠΎΠ³ΠΈΠ΅ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ Π½Π°Ρ‡Π½ΡƒΡ‚ ΡΠΎΠΌΠ½Π΅Π²Π°Ρ‚ΡŒΡΡ Π² ΠΌΠΎΠ΅ΠΌ Π·Π΄Ρ€Π°Π²ΠΎΠΌ ΡƒΠΌΠ΅. Но Π²Ρ‹ΡΠ»ΡƒΡˆΠ°ΠΉΡ‚Π΅ мСня. ΠŸΡ€Π΅Π΄ΡΡ‚Π°Π²ΠΈΠΌ Ρ‚Π°ΠΊΡƒΡŽ ΡΠΈΡ‚ΡƒΠ°Ρ†ΠΈΡŽ: Ρƒ вас Π΅ΡΡ‚ΡŒ Π΄Π²Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ° β€” ΠΎΠ΄ΠΈΠ½ ΠΏΠΈΡˆΠ΅Ρ‚ Π½Π° C++, Π° Π΄Ρ€ΡƒΠ³ΠΎΠΉ Π½Π° Java, ΠΈ Π²Ρ‹ проситС ΠΈΡ… Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡƒ для высокоскоростной Ρ‚ΠΎΡ€Π³ΠΎΠ²Π»ΠΈ с нуля. Π’ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ систСма, написанная Π½Π° Java, Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ Ρ‚ΠΎΡ€Π³ΠΎΠ²Ρ‹Π΅ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ дольшС, Ρ‡Π΅ΠΌ систСма Π½Π° C++. Однако Java ΠΈΠΌΠ΅Π΅Ρ‚ Π³ΠΎΡ€Π°Π·Π΄ΠΎ мСньшС случаСв Π½Π΅ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ³ΠΎ повСдСния, Ρ‡Π΅ΠΌ C++. Π’ΠΎΠ·ΡŒΠΌΠ΅ΠΌ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄ΠΈΠ½ ΠΏΡ€ΠΈΠΌΠ΅Ρ€: индСксация Π·Π° ΠΏΡ€Π΅Π΄Π΅Π»Π°ΠΌΠΈ массива являСтся ошибкой ΠΊΠ°ΠΊ Π² Java, Ρ‚Π°ΠΊ ΠΈ Π² C++. Если Π²Ρ‹ случайно сдСлаСтС это Π½Π° C++, Ρƒ вас ΠΌΠΎΠΆΠ΅Ρ‚ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΡƒΡ‚ΡŒ ошибка segfault ΠΈΠ»ΠΈ (Ρ‡Π°Ρ‰Π΅) Π²Ρ‹ просто ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚Π΅ ΠΊΠ°ΠΊΠΎΠ΅-Ρ‚ΠΎ случайноС число. Π’ Java ΠΏΡ€ΠΈ Π²Ρ‹Ρ…ΠΎΠ΄Π΅ Π·Π° Π³Ρ€Π°Π½ΠΈΡ†Ρ‹ всСгда Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ ошибка ArrayIndexOutOfBoundsException. Π­Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ ΠΎΡ‚Π»Π°Π΄ΠΊΠ° Π² Java Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ упрощаСтся, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ ошибки, ΠΊΠ°ΠΊ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ, сразу ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‚ΡΡ, ΠΈ мСстонахоТдСниС ошибки Π»Π΅Π³Ρ‡Π΅ ΠΎΡ‚ΡΠ»Π΅Π΄ΠΈΡ‚ΡŒ. Π’Π΄ΠΎΠ±Π°Π²ΠΎΠΊ, ΠΏΠΎ ΠΊΡ€Π°ΠΉΠ½Π΅ΠΉ ΠΌΠ΅Ρ€Π΅, ΠΏΠΎ ΠΌΠΎΠ΅ΠΌΡƒ ΠΎΠΏΡ‹Ρ‚Ρƒ, Java Π»ΡƒΡ‡ΡˆΠ΅ распознаСт, ΠΊΠ°ΠΊΠΈΠ΅ Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚Ρ‹ ΠΊΠΎΠ΄Π° Π½Π΅ Π½ΡƒΠΆΠ½ΠΎ Π·Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ, Π° ΠΊΠ°ΠΊΠΈΠ΅ ΠΊΡ€ΠΈΡ‚ΠΈΡ‡Π½Ρ‹ для Ρ€Π°Π±ΠΎΡ‚Ρ‹ вашСго ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния. Π’Ρ‹, ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎ, ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠΎΡ‚Ρ€Π°Ρ‚ΠΈΡ‚ΡŒ Π΄Π½ΠΈ Π½Π° настройку своСго ΠΊΠΎΠ΄Π° C++, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ½ Π½Π΅ содСрТал Π°Π±ΡΠΎΠ»ΡŽΡ‚Π½ΠΎ Π½ΠΈΠΊΠ°ΠΊΠΎΠ³ΠΎ постороннСго ΠΊΠΎΠ΄Π°, Π½ΠΎ Π² Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠΌ ΠΌΠΈΡ€Π΅ каТдая Ρ‡Π°ΡΡ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния содСрТит Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ Ρ€Π°Π·Π΄ΡƒΡ‚ΠΎΡΡ‚ΡŒ, ΠΈ Java Π»ΡƒΡ‡ΡˆΠ΅ распознаСт Π΅Π³ΠΎ автоматичСски. Π­Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ Π² Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠΌ ΠΌΠΈΡ€Π΅ Java часто быстрСС, Ρ‡Π΅ΠΌ C++, Π΄Π°ΠΆΠ΅ ΠΏΠΎ стандартным показатСлям Π·Π°Π΄Π΅Ρ€ΠΆΠΊΠΈ. И Π΄Π°ΠΆΠ΅ Ρ‚Π°ΠΌ, Π³Π΄Π΅ это Π½Π΅ Ρ‚Π°ΠΊ, Ρ€Π°Π·Π½ΠΈΡ†Π° Π² Π·Π°Π΄Π΅Ρ€ΠΆΠΊΠ΅ ΠΌΠ΅ΠΆΠ΄Ρƒ языками часто пСрСкрываСтся Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ Ρ„Π°ΠΊΡ‚ΠΎΡ€Π°ΠΌΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π΅ Π½Π°ΡΡ‚ΠΎΠ»ΡŒΠΊΠΎ Π²Π΅Π»ΠΈΠΊΠΈ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΠΌΠ΅Ρ‚ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π΄Π°ΠΆΠ΅ Π² высокоскоростной Ρ‚ΠΎΡ€Π³ΠΎΠ²Π»Π΅.

ΠŸΡ€Π΅ΠΈΠΌΡƒΡ‰Π΅ΡΡ‚Π²Π° Java для систСм с Π½ΠΈΠ·ΠΊΠΎΠΉ Π·Π°Π΄Π΅Ρ€ΠΆΠΊΠΎΠΉ

ВсС эти Ρ„Π°ΠΊΡ‚ΠΎΡ€Ρ‹, Π½Π° ΠΌΠΎΠΉ взгляд, ΡΠΎΠ·Π΄Π°ΡŽΡ‚ довольно Π½Π΅ΠΎΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΆΠΈΠΌΡ‹ΠΉ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ Π² ΠΏΠΎΠ»ΡŒΠ·Ρƒ использования Java для написания высокоскоростных Ρ‚ΠΎΡ€Π³ΠΎΠ²Ρ‹Ρ… ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌ (ΠΈ систСм с Π½ΠΈΠ·ΠΊΠΈΠΌ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ Π·Π°Π΄Π΅Ρ€ΠΆΠΊΠΈ Π² ​​цСлом, ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½Π΅Π΅ ΠΎΠ± этом Ρ‡ΡƒΡ‚ΡŒ ΠΏΠΎΠ·ΠΆΠ΅). Однако, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠΎΠ²Π»ΠΈΡΡ‚ΡŒ Π½Π° энтузиастов C++, Π΄Π°Π²Π°ΠΉΡ‚Π΅ рассмотрим ряд Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… ΠΏΡ€ΠΈΡ‡ΠΈΠ½ для использования Java:
  • Π’ΠΎ-ΠΏΠ΅Ρ€Π²Ρ‹Ρ…, любая избыточная Π·Π°Π΄Π΅Ρ€ΠΆΠΊΠ°, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ Java привносит Π² вашС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ΅ обСспСчСниС, вСроятно, Π±ΡƒΠ΄Π΅Ρ‚ Π½Π°ΠΌΠ½ΠΎΠ³ΠΎ мСньшС, Ρ‡Π΅ΠΌ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ Ρ„Π°ΠΊΡ‚ΠΎΡ€Ρ‹, Π²Π»ΠΈΡΡŽΡ‰ΠΈΠ΅ Π½Π° Π·Π°Π΄Π΅Ρ€ΠΆΠΊΡƒ β€” Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ с ΠΈΠ½Ρ‚Π΅Ρ€Π½Π΅Ρ‚ΠΎΠΌ. Π­Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ любой (Ρ…ΠΎΡ€ΠΎΡˆΠΎ написанный) ΠΊΠΎΠ΄ Java ΠΌΠΎΠΆΠ΅Ρ‚ Π»Π΅Π³ΠΊΠΎ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Ρ‚Π°ΠΊ ΠΆΠ΅, ΠΊΠ°ΠΊ C++, Π² Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π΅ Ρ‚ΠΎΡ€Π³ΠΎΠ²Ρ‹Ρ… ситуаций.

  • Π‘ΠΎΠ»Π΅Π΅ ΠΊΠΎΡ€ΠΎΡ‚ΠΊΠΎΠ΅ врСмя Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Java Ρ‚Π°ΠΊΠΆΠ΅ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ Π² Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠΌ ΠΌΠΈΡ€Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ΅ обСспСчСниС, написанноС Π½Π° Java, ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ быстрСС Π°Π΄Π°ΠΏΡ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΎ ΠΊ измСнСнию оборудования (ΠΈΠ»ΠΈ Π΄Π°ΠΆΠ΅ ΠΊ Π½ΠΎΠ²Ρ‹ΠΌ Ρ‚ΠΎΡ€Π³ΠΎΠ²Ρ‹ΠΌ стратСгиям), Ρ‡Π΅ΠΌ C++.

  • Если ΡƒΠ³Π»ΡƒΠ±ΠΈΡ‚ΡŒΡΡ Π² это, Π²Ρ‹ ΡƒΠ²ΠΈΠ΄ΠΈΡ‚Π΅, Ρ‡Ρ‚ΠΎ Π΄Π°ΠΆΠ΅ оптимизация ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния Java ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ быстрСС (Ссли Ρ€Π°ΡΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°Ρ‚ΡŒ Π΅Π΅ Π² Ρ€Π°ΠΌΠΊΠ°Ρ… всСго ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния), Ρ‡Π΅ΠΌ аналогичная Π·Π°Π΄Π°Ρ‡Π° Π½Π° C++.

Π˜Π½Ρ‹ΠΌΠΈ словами, Π²Ρ‹ Π²ΠΏΠΎΠ»Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΊΠΎΠ΄ Π½Π° Java с Ρ†Π΅Π»ΡŒΡŽ ΡƒΠΌΠ΅Π½ΡŒΡˆΠ΅Π½ΠΈΡ Π·Π°Π΄Π΅Ρ€ΠΆΠΊΠΈ. Π’Π°ΠΌ просто Π½ΡƒΠΆΠ½ΠΎ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ Π΅Π³ΠΎ ΠΊΠ°ΠΊ C++, имСя Π² Π²ΠΈΠ΄Ρƒ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΏΠ°ΠΌΡΡ‚ΡŒΡŽ Π½Π° ΠΊΠ°ΠΆΠ΄ΠΎΠΌ этапС Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ. ΠŸΡ€Π΅ΠΈΠΌΡƒΡ‰Π΅ΡΡ‚Π²ΠΎ Π½Π΅ ΠΏΠΈΡΠ°Ρ‚ΡŒ Π² C++ состоит Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ΠΎΡ‚Π»Π°Π΄ΠΊΠ°, гибкая Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° ΠΈ адаптация ΠΊ нСскольким срСдам Π² Java выполняСтся Π»Π΅Π³Ρ‡Π΅ ΠΈ быстрСС.

Π’Ρ‹Π²ΠΎΠ΄Ρ‹

Если Π²Ρ‹ Π½Π΅ Ρ€Π°Π·Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Π΅Ρ‚Π΅ Ρ‚ΠΎΡ€Π³ΠΎΠ²Ρ‹Π΅ систСмы с Π½ΠΈΠ·ΠΊΠΈΠΌ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ Π·Π°Π΄Π΅Ρ€ΠΆΠΊΠΈ, Π²Π°ΠΌ, вСроятно, Π±ΡƒΠ΄Π΅Ρ‚ интСрСсно, ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΠΌΠΎ Π»ΠΈ Ρ‡Ρ‚ΠΎ-Π»ΠΈΠ±ΠΎ ΠΈΠ· Π²Ρ‹ΡˆΠ΅ΠΏΠ΅Ρ€Π΅Ρ‡ΠΈΡΠ»Π΅Π½Π½ΠΎΠ³ΠΎ ΠΈΠΌΠ΅Π½Π½ΠΎ ΠΊ Π²Π°ΠΌ. ΠžΡ‚Π²Π΅Ρ‚, ΠΊΡ€ΠΎΠΌΠ΅ ΠΎΡ‡Π΅Π½ΡŒ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΈΡ… ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΉ, ΠΏΠΎΠ»ΠΎΠΆΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ. Π‘ΠΏΠΎΡ€Ρ‹ ΠΎ Ρ‚ΠΎΠΌ, ΠΊΠ°ΠΊ Π΄ΠΎΠ±ΠΈΡ‚ΡŒΡΡ Π½ΠΈΠ·ΠΊΠΎΠΉ Π·Π°Π΄Π΅Ρ€ΠΆΠΊΠΈ, Π½Π΅ Π½ΠΎΠ²Ρ‹ ΠΈ Π½Π΅ ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹ для ΠΌΠΈΡ€Π° финансов. По этой ΠΏΡ€ΠΈΡ‡ΠΈΠ½Π΅ ΠΈΠ· Π½Π΅Π³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΠ·Π²Π»Π΅Ρ‡ΡŒ Ρ†Π΅Π½Π½Ρ‹Π΅ ΡƒΡ€ΠΎΠΊΠΈ для Π΄Ρ€ΡƒΠ³ΠΈΡ… ситуаций. Π’ частности, ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½Ρ‹ΠΉ Π²Ρ‹ΡˆΠ΅ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ ΠΎ Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ Java Β«Π»ΡƒΡ‡ΡˆΠ΅Β», ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ ΠΎΠ½Π° Π±ΠΎΠ»Π΅Π΅ гибкая, Π±ΠΎΠ»Π΅Π΅ отказоустойчивая ΠΈ, Π² ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎΠΌ счСтС, быстрСС Π² Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ ΠΈ обслуТивании, ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒΡΡ Π²ΠΎ ΠΌΠ½ΠΎΠ³ΠΈΡ… областях Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния. ΠŸΡ€ΠΈΡ‡ΠΈΠ½Ρ‹, ΠΏΠΎ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ я (Π»ΠΈΡ‡Π½ΠΎ) ΠΏΡ€Π΅Π΄ΠΏΠΎΡ‡ΠΈΡ‚Π°ΡŽ ΠΏΠΈΡΠ°Ρ‚ΡŒ систСмы с Π½ΠΈΠ·ΠΊΠΈΠΌ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ Π·Π°Π΄Π΅Ρ€ΠΆΠΊΠΈ Π½Π° Java, Ρ‚Π΅ ΠΆΠ΅, Ρ‡Ρ‚ΠΎ ΠΈ Ρ‚Π΅, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ сдСлали язык Ρ‚Π°ΠΊΠΈΠΌ ΡƒΡΠΏΠ΅ΡˆΠ½Ρ‹ΠΌ Π·Π° послСдниС 25 Π»Π΅Ρ‚. На Java Π»Π΅Π³ΠΊΠΎ ΠΏΠΈΡΠ°Ρ‚ΡŒ, ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ, Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ ΠΎΡ‚Π»Π°Π΄ΠΊΡƒ ΠΈ ΠΈΠ·ΡƒΡ‡Π°Ρ‚ΡŒ. Π­Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Ρ‚Ρ€Π°Ρ‚ΠΈΡ‚ΡŒ мСньшС Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ Π½Π° написаниС ΠΊΠΎΠ΄Π° ΠΈ большС Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ Π½Π° Π΅Π³ΠΎ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΡŽ. На ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ΅ это ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ ΠΊ Π±ΠΎΠ»Π΅Π΅ Π½Π°Π΄Π΅ΠΆΠ½Ρ‹ΠΌ ΠΈ быстрым Ρ‚ΠΎΡ€Π³ΠΎΠ²Ρ‹ΠΌ систСмам. И это всС, Ρ‡Ρ‚ΠΎ ΠΈΠΌΠ΅Π΅Ρ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ для высокоскоростной Ρ‚ΠΎΡ€Π³ΠΎΠ²Π»ΠΈ.
ΠšΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ (3)
  • популярныС
  • Π½ΠΎΠ²Ρ‹Π΅
  • старыС
Для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ Π’Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π°Π²Ρ‚ΠΎΡ€ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ
12 ΠΌΠ°Ρ€Ρ‚Π° 2021, 10:38
ΠŸΡ€ΡΠΌΠΎ тянСт Π½Π° Ρ€Π΅ΠΊΠ»Π°ΠΌΡƒ Π‘++
АлСксСй
Π£Ρ€ΠΎΠ²Π΅Π½ΡŒ 29
4 ΠΌΠ°Ρ€Ρ‚Π° 2021, 12:30
вторая Ρ‡Π°ΡΡ‚ΡŒ Π²ΠΎΠΎΠ±Ρ‰Π΅ Π½ΠΈΠΎΡ‡Π΅ΠΌ. ΠšΠΎΠΌΡƒ интСрСсно - ΠΏΠΎΡ‡ΠΈΡ‚Π°ΠΉΡ‚Π΅ источник, Ρ‚ΠΎΡ‡Π½Π΅Π΅ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ. Π’Π°ΠΌ эту ΡΡ‚Π°Ρ‚ΡŒΡŽ нСнавидят всС, Π΄Π°ΠΆΠ΅ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ jvm. Π’Π°ΠΊΠΎΠ΅ чувству, Ρ‡Ρ‚ΠΎ ΠΎΠ½Π° для Ρ‚ΠΎΠ³ΠΎ ΠΈ писалась - ΡΠΎΠ±Ρ€Π°Ρ‚ΡŒ побольшС ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠ΅Π².
warlinux
Π£Ρ€ΠΎΠ²Π΅Π½ΡŒ 41
4 ΠΌΠ°Ρ€Ρ‚Π° 2021, 12:18
ΠΈΠ· ΠΏΠ°Π»ΡŒΡ†Π° высосано Π½Π΅ встрСчал hft систСм ΠΈ Π½ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ Π±Ρ€ΠΎΠΊΠ΅Ρ€ΠΈΠ΄ΠΆΠ° Π½Π° ΠΆΠ°Π²Π΅