Π§ΡΠΎ Π²ΡΠ²Π΅Π΄Π΅Ρ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ ΠΊΠΎΠ΄?
Anonymous Quiz
33%
0-0 0-1 1-0 1-1 2-0 2-1
15%
0-0 0-1 0-2 1-0 1-1 1-2 2-0 2-1 2-2
42%
ΠΠ΅ΡΠΊΠΎΠ½Π΅ΡΠ½ΡΠΉ Π²ΡΠ²ΠΎΠ΄ Β«0-0 0-1Β»
10%
0-0 0-1
π22
ΠΠ°ΠΊΠΈΠ΅ Π΅ΡΡΡ ΠΊΡΡΠΈ Π² Hibernate ΠΈ ΠΊΠ°ΠΊΠΈΠ΅ ΡΠ°Π±ΠΎΡΠ°ΡΡ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ?
3 ΡΡΠΎΠ²Π½Ρ ΠΊΠ΅ΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ:
β’ ΠΠ΅Ρ ΠΏΠ΅ΡΠ²ΠΎΠ³ΠΎ ΡΡΠΎΠ²Π½Ρ (First-level cache). ΠΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ Π²ΠΊΠ»ΡΡΠ΅Π½.
β’ ΠΠ΅Ρ Π²ΡΠΎΡΠΎΠ³ΠΎ ΡΡΠΎΠ²Π½Ρ (Second-level cache). ΠΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ ΠΎΡΠΊΠ»ΡΡΠ΅Π½.
β’ ΠΠ΅Ρ Π·Π°ΠΏΡΠΎΡΠΎΠ² (Query cache). ΠΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ ΠΎΡΠΊΠ»ΡΡΠ΅Π½.
3 ΡΡΠΎΠ²Π½Ρ ΠΊΠ΅ΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ:
β’ ΠΠ΅Ρ ΠΏΠ΅ΡΠ²ΠΎΠ³ΠΎ ΡΡΠΎΠ²Π½Ρ (First-level cache). ΠΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ Π²ΠΊΠ»ΡΡΠ΅Π½.
β’ ΠΠ΅Ρ Π²ΡΠΎΡΠΎΠ³ΠΎ ΡΡΠΎΠ²Π½Ρ (Second-level cache). ΠΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ ΠΎΡΠΊΠ»ΡΡΠ΅Π½.
β’ ΠΠ΅Ρ Π·Π°ΠΏΡΠΎΡΠΎΠ² (Query cache). ΠΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ ΠΎΡΠΊΠ»ΡΡΠ΅Π½.
π21
Π§Π΅ΠΌ ΠΎΡΠ»ΠΈΡΠ°Π΅ΡΡΡ Lazy ΠΎΡ Eager Π² Hibernate?
β’ Eager Loading β ΡΡΡΠ°ΡΠ΅Π³ΠΈΡ Π·Π°Π³ΡΡΠ·ΠΊΠΈ, ΠΏΡΠΈ ΠΊΠΎΡΠΎΡΠΎΠΉ ΠΏΠΎΠ΄Π³ΡΡΠ·ΠΊΠ° ΡΠ²ΡΠ·Π°Π½Π½ΡΡ ΡΡΡΠ½ΠΎΡΡΠ΅ΠΉ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ ΡΡΠ°Π·Ρ. ΠΠ»Ρ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΡ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π² Π°Π½Π½ΠΎΡΠ°ΡΠΈΡ ΠΎΡΠ½ΠΎΡΠ΅Π½ΠΈΡ (@OneToOne, @ManyToOne, @OneToMany, @ManyToMany) ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡ fetch = FetchType.EAGER. ΠΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ Π΄Π»Ρ ΠΎΡΠ½ΠΎΡΠ΅Π½ΠΈΠΉ @OneToOne ΠΈ @ManyToOne.
β’ Lazy Loading β ΡΡΡΠ°ΡΠ΅Π³ΠΈΡ Π·Π°Π³ΡΡΠ·ΠΊΠΈ, ΠΏΡΠΈ ΠΊΠΎΡΠΎΡΠΎΠΉ ΠΏΠΎΠ΄Π³ΡΡΠ·ΠΊΠ° ΡΠ²ΡΠ·Π°Π½Π½ΡΡ ΡΡΡΠ½ΠΎΡΡΠ΅ΠΉ ΠΎΡΠΊΠ»Π°Π΄ΡΠ²Π°Π΅ΡΡΡ ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ Π΄ΠΎΠ»ΡΡΠ΅. Π§ΡΠΎΠ±Ρ Π·Π°Π΄Π°ΡΡ ΡΠ°ΠΊΠΎΠ΅ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅, Π½ΡΠΆΠ½ΠΎ Π² Π°Π½Π½ΠΎΡΠ°ΡΠΈΡ ΠΎΡΠ½ΠΎΡΠ΅Π½ΠΈΡ (@OneToOne, @ManyToOne, @OneToMany, @ManyToMany) ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡ fetch = FetchType.LAZY. ΠΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ Π΄Π»Ρ ΠΎΡΠ½ΠΎΡΠ΅Π½ΠΈΠΉ @OneToMany, @ManyToMany. ΠΠΎ ΠΌΠΎΠΌΠ΅Π½ΡΠ° Π·Π°Π³ΡΡΠ·ΠΊΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ proxy-ΠΎΠ±ΡΠ΅ΠΊΡ, Π²ΠΌΠ΅ΡΡΠΎ ΡΠ΅Π°Π»ΡΠ½ΠΎΠ³ΠΎ. ΠΡΠ»ΠΈ ΠΎΠ±ΡΠ°ΡΠΈΡΡΡΡ ΠΊ ΡΠ°ΠΊΠΎΠΌΡ LAZY-ΠΏΠΎΠ»Ρ ΠΏΠΎΡΠ»Π΅ Π·Π°ΠΊΡΡΡΠΈΡ ΡΠ΅ΡΡΠΈΠΈ Hibernate, ΡΠΎ ΠΏΠΎΠ»ΡΡΠΈΠΌ LazyInitializationException.
β’ Eager Loading β ΡΡΡΠ°ΡΠ΅Π³ΠΈΡ Π·Π°Π³ΡΡΠ·ΠΊΠΈ, ΠΏΡΠΈ ΠΊΠΎΡΠΎΡΠΎΠΉ ΠΏΠΎΠ΄Π³ΡΡΠ·ΠΊΠ° ΡΠ²ΡΠ·Π°Π½Π½ΡΡ ΡΡΡΠ½ΠΎΡΡΠ΅ΠΉ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ ΡΡΠ°Π·Ρ. ΠΠ»Ρ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΡ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π² Π°Π½Π½ΠΎΡΠ°ΡΠΈΡ ΠΎΡΠ½ΠΎΡΠ΅Π½ΠΈΡ (@OneToOne, @ManyToOne, @OneToMany, @ManyToMany) ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡ fetch = FetchType.EAGER. ΠΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ Π΄Π»Ρ ΠΎΡΠ½ΠΎΡΠ΅Π½ΠΈΠΉ @OneToOne ΠΈ @ManyToOne.
β’ Lazy Loading β ΡΡΡΠ°ΡΠ΅Π³ΠΈΡ Π·Π°Π³ΡΡΠ·ΠΊΠΈ, ΠΏΡΠΈ ΠΊΠΎΡΠΎΡΠΎΠΉ ΠΏΠΎΠ΄Π³ΡΡΠ·ΠΊΠ° ΡΠ²ΡΠ·Π°Π½Π½ΡΡ ΡΡΡΠ½ΠΎΡΡΠ΅ΠΉ ΠΎΡΠΊΠ»Π°Π΄ΡΠ²Π°Π΅ΡΡΡ ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ Π΄ΠΎΠ»ΡΡΠ΅. Π§ΡΠΎΠ±Ρ Π·Π°Π΄Π°ΡΡ ΡΠ°ΠΊΠΎΠ΅ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅, Π½ΡΠΆΠ½ΠΎ Π² Π°Π½Π½ΠΎΡΠ°ΡΠΈΡ ΠΎΡΠ½ΠΎΡΠ΅Π½ΠΈΡ (@OneToOne, @ManyToOne, @OneToMany, @ManyToMany) ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡ fetch = FetchType.LAZY. ΠΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ Π΄Π»Ρ ΠΎΡΠ½ΠΎΡΠ΅Π½ΠΈΠΉ @OneToMany, @ManyToMany. ΠΠΎ ΠΌΠΎΠΌΠ΅Π½ΡΠ° Π·Π°Π³ΡΡΠ·ΠΊΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ proxy-ΠΎΠ±ΡΠ΅ΠΊΡ, Π²ΠΌΠ΅ΡΡΠΎ ΡΠ΅Π°Π»ΡΠ½ΠΎΠ³ΠΎ. ΠΡΠ»ΠΈ ΠΎΠ±ΡΠ°ΡΠΈΡΡΡΡ ΠΊ ΡΠ°ΠΊΠΎΠΌΡ LAZY-ΠΏΠΎΠ»Ρ ΠΏΠΎΡΠ»Π΅ Π·Π°ΠΊΡΡΡΠΈΡ ΡΠ΅ΡΡΠΈΠΈ Hibernate, ΡΠΎ ΠΏΠΎΠ»ΡΡΠΈΠΌ LazyInitializationException.
π25
Π§ΡΠΎ Π²ΡΠ²Π΅Π΄Π΅Ρ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ ΠΊΠΎΠ΄?
Anonymous Quiz
30%
ΠΡΠΎΠΈΠ·ΠΎΠΉΠ΄Π΅Ρ ΠΎΡΠΈΠ±ΠΊΠ° ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ
24%
ΠΠΎ Π²ΡΠ΅ΠΌΡ ΠΈΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π²ΠΎΠ·Π½ΠΈΠΊΠ½Π΅Ρ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ NullPointerException
38%
null
8%
1
π28π’4π₯΄3
ΠΠ°ΠΊ ΠΎΠΏΠΈΡΠ°ΡΡ ΡΠΎΡΡΠ°Π²Π½ΠΎΠΉ ΠΊΠ»ΡΡ ΠΏΡΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ Hibernate?
ΠΠ° Π²ΡΡΠΊΠΈΠΉ ΡΠ»ΡΡΠ°ΠΉ: ΡΠΎΡΡΠ°Π²Π½ΠΎΠΉ ΠΊΠ»ΡΡ β ΠΏΠ΅ΡΠ²ΠΈΡΠ½ΡΠΉ ΠΊΠ»ΡΡ, ΡΠΎΡΡΠΎΡΡΠΈΠΉ ΠΈΠ· Π΄Π²ΡΡ ΠΈ Π±ΠΎΠ»Π΅Π΅ Π°ΡΡΠΈΠ±ΡΡΠΎΠ².
Π§ΡΠΎΠ±Ρ ΠΎΠΏΠΈΡΠ°ΡΡ ΡΠΎΡΡΠ°Π²Π½ΠΎΠΉ ΠΊΠ»ΡΡ ΠΏΡΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ Hibernate, Π½Π°ΠΌ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΡΠΎΠ·Π΄Π°ΡΡ ΠΏΠΎΠ΄ ΡΡΠΎΡ ΠΊΠ»ΡΡ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΠΉ ΠΊΠ»Π°ΡΡ Ρ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡΠΌΠΈ ΠΏΠΎΠ»ΡΠΌΠΈ ΠΈ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ Π΅ΠΌΡ Π°Π½Π½ΠΎΡΠ°ΡΠΈΡ @Embeddable. ΠΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, ΠΎΠ½ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΡΡ Serializable ΠΈ ΠΈΠΌΠ΅ΡΡ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ equals ΠΈ hashcode.
Π ΡΠ°ΠΌΠΎΠΉ ΠΆΠ΅ ΡΡΡΠ½ΠΎΡΡΠΈ, Π΄Π»Ρ ΠΊΠΎΡΠΎΡΠΎΠΉ ΠΌΡ ΠΎΠΏΠΈΡΡΠ²Π°Π΅ΠΌ ΡΠΎΡΡΠ°Π²Π½ΠΎΠΉ ΠΊΠ»ΡΡ, Π΄ΠΎΠ±Π°Π²Π»ΡΠ΅ΠΌ ΠΏΠΎΠ»Π΅ ΡΠΎΠ»ΡΠΊΠΎ ΡΡΠΎ ΡΠΎΠ·Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΊΠ»Π°ΡΡΠ° ΠΊΠ»ΡΡΠ° ΠΈ Π²Π΅ΡΠ°Π΅ΠΌ Π½Π° Π½Π΅Π³ΠΎ Π°Π½Π½ΠΎΡΠ°ΡΠΈΡ @EmbeddedId.
ΠΠ° Π²ΡΡΠΊΠΈΠΉ ΡΠ»ΡΡΠ°ΠΉ: ΡΠΎΡΡΠ°Π²Π½ΠΎΠΉ ΠΊΠ»ΡΡ β ΠΏΠ΅ΡΠ²ΠΈΡΠ½ΡΠΉ ΠΊΠ»ΡΡ, ΡΠΎΡΡΠΎΡΡΠΈΠΉ ΠΈΠ· Π΄Π²ΡΡ ΠΈ Π±ΠΎΠ»Π΅Π΅ Π°ΡΡΠΈΠ±ΡΡΠΎΠ².
Π§ΡΠΎΠ±Ρ ΠΎΠΏΠΈΡΠ°ΡΡ ΡΠΎΡΡΠ°Π²Π½ΠΎΠΉ ΠΊΠ»ΡΡ ΠΏΡΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ Hibernate, Π½Π°ΠΌ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΡΠΎΠ·Π΄Π°ΡΡ ΠΏΠΎΠ΄ ΡΡΠΎΡ ΠΊΠ»ΡΡ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΠΉ ΠΊΠ»Π°ΡΡ Ρ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡΠΌΠΈ ΠΏΠΎΠ»ΡΠΌΠΈ ΠΈ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ Π΅ΠΌΡ Π°Π½Π½ΠΎΡΠ°ΡΠΈΡ @Embeddable. ΠΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, ΠΎΠ½ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΡΡ Serializable ΠΈ ΠΈΠΌΠ΅ΡΡ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ equals ΠΈ hashcode.
Π ΡΠ°ΠΌΠΎΠΉ ΠΆΠ΅ ΡΡΡΠ½ΠΎΡΡΠΈ, Π΄Π»Ρ ΠΊΠΎΡΠΎΡΠΎΠΉ ΠΌΡ ΠΎΠΏΠΈΡΡΠ²Π°Π΅ΠΌ ΡΠΎΡΡΠ°Π²Π½ΠΎΠΉ ΠΊΠ»ΡΡ, Π΄ΠΎΠ±Π°Π²Π»ΡΠ΅ΠΌ ΠΏΠΎΠ»Π΅ ΡΠΎΠ»ΡΠΊΠΎ ΡΡΠΎ ΡΠΎΠ·Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΊΠ»Π°ΡΡΠ° ΠΊΠ»ΡΡΠ° ΠΈ Π²Π΅ΡΠ°Π΅ΠΌ Π½Π° Π½Π΅Π³ΠΎ Π°Π½Π½ΠΎΡΠ°ΡΠΈΡ @EmbeddedId.
π28
Π§ΡΠΎ Π²ΡΠ²Π΅Π΄Π΅Ρ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ ΠΊΠΎΠ΄?
Anonymous Quiz
15%
falsetrue
35%
falsefalse
31%
truetrue
19%
truefalse
π26π€¨10π’7π2π1
ΠΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡΠΎΠ±ΡΠ°Π·ΠΈΡΡ Π½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΠ΅ Π½Π° ΠΠ Ρ ΠΏΠΎΠΌΠΎΡΡΡ JPA (Hibernate)?
ΠΡΡΡ 4 ΡΠΏΠΎΡΠΎΠ±Π° ΠΎΡΠΎΠ±ΡΠ°Π·ΠΈΡΡ Π½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΠ΅ Π½Π° ΠΠ Ρ ΠΏΠΎΠΌΠΎΡΡΡ JPA (Hibernate):
β’ MappedSuperclass β ΠΏΠΎΠ»Ρ ΡΠΎΠ΄ΠΈΡΠ΅Π»Ρ ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡΡ Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΡΠ°Π±Π»ΠΈΡΠ΅ Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Π΄ΠΎΡΠ΅ΡΠ½Π΅Π³ΠΎ ΠΊΠ»Π°ΡΡΠ°. ΠΠ°Π·ΠΎΠ²ΡΠΉ ΠΊΠ»Π°ΡΡ ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎΠΉ ΡΠ°Π±Π»ΠΈΡΡ Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ. ΠΠ° Π±Π°Π·ΠΎΠ²ΡΠΉ ΠΊΠ»Π°ΡΡ Π½Π°Π²Π΅ΡΠΈΠ²Π°Π΅ΠΌ @MappedSuperClass, Π° Π²ΠΎΡ Π½Π° Π΄ΠΎΡΠ΅ΡΠ½ΠΈΠ΅ @Entity. ΠΡΠ»ΠΈ Π² ΡΠ°Π±Π»ΠΈΡΠ΅ ΠΏΠΎΡΠΎΠΌΠΊΠ° ΠΏΠΎΠ»Π΅ ΡΠΎΠ΄ΠΈΡΠ΅Π»Ρ Π½Π°Π·ΡΠ²Π°Π΅ΡΡΡ Π½Π΅ ΡΠ°ΠΊ, ΠΊΠ°ΠΊ ΡΠΊΠ°Π·Π°Π½ΠΎ Π² ΡΠΎΠ΄ΠΈΡΠ΅Π»ΡΡΠΊΠΎΠΌ ΠΊΠ»Π°ΡΡΠ΅, ΡΠΎ Π΅Π³ΠΎ Π½ΡΠΆΠ½ΠΎ ΡΠΌΠ°ΠΏΠΏΠΈΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ Π°Π½Π½ΠΎΡΠ°ΡΠΈΠΈ @AttributeOverride Π² ΠΊΠ»Π°ΡΡΠ΅ ΡΡΠΎΠ³ΠΎ ΠΏΠΎΡΠΎΠΌΠΊΠ°. Π ΠΎΠ΄ΠΈΡΠ΅Π»Ρ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ ΡΡΠ°ΡΡΠ²ΠΎΠ²Π°ΡΡ Π² Π°ΡΡΠΎΡΠΈΠ°ΡΠΈΠΈ. ΠΡΠΈ ΠΏΠΎΠ»ΠΈΠΌΠΎΡΡΠ½ΡΡ Π·Π°ΠΏΡΠΎΡΠ°Ρ Ρ Π½Π°Ρ Π±ΡΠ΄ΡΡ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΠ΅ Π·Π°ΠΏΡΠΎΡΡ Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΡΠ°Π±Π»ΠΈΡΡ.
β’ Single table β Π²ΡΡ ΠΈΠ΅ΡΠ°ΡΡ ΠΈΡ ΠΊΠ»Π°ΡΡΠΎΠ² Π² ΠΎΠ΄Π½ΠΎΠΉ ΡΠ°Π±Π»ΠΈΡΠ΅. Π§ΡΠΎΠ±Ρ ΡΠ°Π·Π»ΠΈΡΠ°ΡΡ ΠΊΠ»Π°ΡΡΡ, Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ ΠΊΠΎΠ»ΠΎΠ½ΠΊΡ-Π΄ΠΈΡΠΊΡΠΈΠΌΠΈΠ½Π°ΡΠΎΡ. Π Π΄Π°Π½Π½ΠΎΠΉ ΡΡΡΠ°ΡΠ΅Π³ΠΈΠΈ Π½Π° ΡΠΎΠ΄ΠΈΡΠ΅Π»ΡΡΠΊΠΈΠΉ @Entity-ΠΊΠ»Π°ΡΡ Π½Π°Π²Π΅ΡΠΈΠ²Π°Π΅ΡΡΡ @Inheritance(strategy = InheritanceType.SINGLE_TABLE) ΠΈ @DiscriminatorColumn(name = "YOUR_DISCRIMINATOR_COLUMN_NAME") (ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ ΠΈΠΌΡ ΠΊΠΎΠ»ΠΎΠ½ΠΊΠΈ DTYPE ΠΈ ΡΠΈΠΏ VARCHAR). Π ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΠΏΠΎΠ΄ΠΊΠ»Π°ΡΡΠ΅ ΡΠΊΠ°Π·ΡΠ²Π°Π΅ΠΌ @DiscriminatorValue("ThisChildName") ΡΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ΠΌ, ΠΊΠΎΡΠΎΡΠΎΠ΅ Π±ΡΠ΄Π΅Ρ Ρ ΡΠ°Π½ΠΈΡΡΡΡ Π² ΠΊΠΎΠ»ΠΎΠ½ΠΊΠ΅-Π΄ΠΈΡΠΊΡΠΈΠΌΠΈΠ½Π°ΡΠΎΡΠ΅ Π΄Π»Ρ Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΊΠ»Π°ΡΡΠ°. ΠΡΠ»ΠΈ Π½Π΅Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ ΠΊΠΎΠ»ΠΎΠ½ΠΊΡ, ΡΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π°Π½Π½ΠΎΡΠ°ΡΠΈΡ @DiscriminatorFormula, Π² ΠΊΠΎΡΠΎΡΠΎΠΉ ΡΠΊΠ°Π·Π°ΡΡ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ CASE...WHEN β ΡΡΠΎ Π½Π΅ ΠΏΠΎ JPA, ΡΠΈΡΠΊΠ° Hibernate. ΠΠ΅Π½ΠΎΡΠΌΠ°Π»ΠΈΠ·Π°ΡΠΈΡ. ΠΡΠΎΡΡΡΠ΅ Π·Π°ΠΏΡΠΎΡΡ ΠΊ ΠΎΠ΄Π½ΠΎΠΉ ΡΠ°Π±Π»ΠΈΡΠ΅. ΠΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΠ΅ Π½Π°ΡΡΡΠ΅Π½ΠΈΠ΅ ΡΠ΅Π»ΠΎΡΡΠ½ΠΎΡΡΠΈ β ΡΡΠΎΠ»Π±ΡΡ ΠΏΠΎΠ΄ΠΊΠ»Π°ΡΡΠΎΠ² ΠΌΠΎΠ³ΡΡ ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡ NULL.
β’ Joined table β ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΠ΅ ΡΠ°Π±Π»ΠΈΡΡ Π΄Π»Ρ Π²ΡΠ΅Ρ ΠΊΠ»Π°ΡΡΠΎΠ² ΠΈΠ΅ΡΠ°ΡΡ ΠΈΠΈ, Π²ΠΊΠ»ΡΡΠ°Ρ ΡΠΎΠ΄ΠΈΡΠ΅Π»Ρ. Π ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΡΠ°Π±Π»ΠΈΡΠ΅ ΡΠΎΠ»ΡΠΊΠΎ ΡΠ²ΠΎΠΈ ΠΏΠΎΠ»Ρ, Π° Π² Π΄ΠΎΡΠ΅ΡΠ½ΠΈΡ Π΄ΠΎΠ±Π°Π²Π»ΡΠ΅ΡΡΡ Π²Π½Π΅ΡΠ½ΠΈΠΉ (ΠΎΠ½ ΠΆΠ΅ ΠΏΠ΅ΡΠ²ΠΈΡΠ½ΡΠΉ) ΠΊΠ»ΡΡ Π΄Π»Ρ ΡΠ²ΡΠ·ΠΈ Ρ ΡΠΎΠ΄ΠΈΡΠ΅Π»ΡΡΠΊΠΎΠΉ ΡΠ°Π±Π»ΠΈΡΠ΅ΠΉ. Π @Entity-ΠΊΠ»Π°ΡΡ ΡΠΎΠ΄ΠΈΡΠ΅Π»Ρ Π΄ΠΎΠ±Π°Π²Π»ΡΠ΅ΠΌ @Inheritance(strategy = InheritanceType.JOINED). ΠΠ»Ρ ΠΏΠΎΠ»ΠΈΠΌΠΎΡΡΠ½ΡΡ Π·Π°ΠΏΡΠΎΡΠΎΠ² ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ JOIN, Π° ΡΠ°ΠΊΠΆΠ΅ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ CASE...WHEN, Π²ΡΡΠΈΡΠ»ΡΡΡΠ΅Π΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΏΠΎΠ»Ρ _clazz, ΠΊΠΎΡΠΎΡΠΎΠ΅ Π·Π°ΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ Π»ΠΈΡΠ΅ΡΠ°Π»Π°ΠΌΠΈ (0 (ΡΠΎΠ΄ΠΈΡΠ΅Π»Ρ), 1, 2 ΠΈ Ρ.Π΄.) ΠΈ ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ Hibernate ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ ΠΊΠ°ΠΊΠΎΠ³ΠΎ ΠΊΠ»Π°ΡΡΠ° Π±ΡΠ΄Π΅Ρ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡ.
β’ Table per class β ΡΠ°ΠΊΠΆΠ΅ ΠΊΠ°ΠΊ ΠΈ Π² MappedSuperclass, ΠΈΠΌΠ΅Π΅ΠΌ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΠ΅ ΡΠ°Π±Π»ΠΈΡΡ Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΏΠΎΠ΄ΠΊΠ»Π°ΡΡΠ°. ΠΠ°Π·ΠΎΠ²ΡΠΉ ΠΊΠ»Π°ΡΡ ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎΠΉ ΡΠ°Π±Π»ΠΈΡΡ Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ. ΠΠΎ ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ JPA 2.2 Π΄Π°Π½Π½Π°Ρ ΡΡΡΠ°ΡΠ΅Π³ΠΈΡ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΎΠΏΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΠΉ, Π½ΠΎ Π² Hibernate ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π°, ΠΏΠΎΡΡΠΎΠΌΡ ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠΈΠΌ. Π Π΄Π°Π½Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ Π½Π° Π±Π°Π·ΠΎΠ²ΡΠΉ ΠΊΠ»Π°ΡΡ ΠΌΡ Π½Π°Π²Π΅ΡΠΈΠ²Π°Π΅ΠΌ @Entity ΠΈ @Inheritance(strategy = InheritanceType.TABLE_PER_CLASS). ΠΠΎΠ»Π΅ ΠΏΠ΅ΡΠ²ΠΈΡΠ½ΠΎΠ³ΠΎ ΠΊΠ»ΡΡΠ° (@Id) ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎ Π΄Π»Ρ ΡΠΎΠ΄ΠΈΡΠ΅Π»ΡΡΠΊΠΎΠ³ΠΎ ΠΊΠ»Π°ΡΡΠ°. Π’Π°ΠΊΠΆΠ΅ Π°Π½Π½ΠΎΡΠ°ΡΠΈΡ @AttributeOverride Π² ΡΡΠΎΠΉ ΡΡΡΠ°ΡΠ΅Π³ΠΈΠΈ Π½Π΅ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ β Π½Π°Π·ΡΠ²Π°ΠΉΡΠ΅ ΡΠΎΠ΄ΠΈΡΠ΅Π»ΡΡΠΊΠΈΠ΅ ΠΏΠΎΠ»Ρ Π² ΡΠ°Π±Π»ΠΈΡΠ°Ρ ΡΡΠ°Π·Ρ Π΅Π΄ΠΈΠ½ΠΎΠΎΠ±ΡΠ°Π·Π½ΠΎ. ΠΠΎΠ»ΠΈΠΌΠΎΡΡΠ½ΡΠΉ Π·Π°ΠΏΡΠΎΡ Π±ΡΠ΄Π΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ UNION Π΄Π»Ρ ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ ΡΠ°Π±Π»ΠΈΡ. Π§ΡΠΎΠ±Ρ ΡΠ°Π·Π»ΠΈΡΠΈΡΡ ΠΏΡΠΈ ΡΠΎΠ·Π΄Π°Π½ΠΈΠΈ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΠΎΠ² ΠΏΠΎΠ΄ΠΊΠ»Π°ΡΡΡ, Hibernate Π΄ΠΎΠ±Π°Π²Π»ΡΠ΅Ρ ΠΏΠΎΠ»Π΅ _clazz Π² Π·Π°ΠΏΡΠΎΡΡ, ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠΈΠ΅ Π»ΠΈΡΠ΅ΡΠ°Π»Ρ (1, 2 ΠΈ Ρ.Π΄.). Π ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΡΠΉ Π½Π°Π±ΠΎΡ ΡΡΠΎΠ»Π±ΡΠΎΠ² Π΄Π»Ρ ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ Π΄ΠΎΠ±ΠΈΡΠ°Π΅ΡΡΡ ΠΊΠ°ΠΊ NULL AS some_field. Π ΠΎΠ΄ΠΈΡΠ΅Π»Ρ ΠΌΠΎΠΆΠ΅Ρ ΡΡΠ°ΡΡΠ²ΠΎΠ²Π°ΡΡ Π² Π°ΡΡΠΎΡΠΈΠ°ΡΠΈΠΈ Ρ Π΄ΡΡΠ³ΠΈΠΌΠΈ ΡΡΡΠ½ΠΎΡΡΡΠΌΠΈ.
ΠΡΡΡ 4 ΡΠΏΠΎΡΠΎΠ±Π° ΠΎΡΠΎΠ±ΡΠ°Π·ΠΈΡΡ Π½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΠ΅ Π½Π° ΠΠ Ρ ΠΏΠΎΠΌΠΎΡΡΡ JPA (Hibernate):
β’ MappedSuperclass β ΠΏΠΎΠ»Ρ ΡΠΎΠ΄ΠΈΡΠ΅Π»Ρ ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡΡ Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΡΠ°Π±Π»ΠΈΡΠ΅ Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Π΄ΠΎΡΠ΅ΡΠ½Π΅Π³ΠΎ ΠΊΠ»Π°ΡΡΠ°. ΠΠ°Π·ΠΎΠ²ΡΠΉ ΠΊΠ»Π°ΡΡ ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎΠΉ ΡΠ°Π±Π»ΠΈΡΡ Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ. ΠΠ° Π±Π°Π·ΠΎΠ²ΡΠΉ ΠΊΠ»Π°ΡΡ Π½Π°Π²Π΅ΡΠΈΠ²Π°Π΅ΠΌ @MappedSuperClass, Π° Π²ΠΎΡ Π½Π° Π΄ΠΎΡΠ΅ΡΠ½ΠΈΠ΅ @Entity. ΠΡΠ»ΠΈ Π² ΡΠ°Π±Π»ΠΈΡΠ΅ ΠΏΠΎΡΠΎΠΌΠΊΠ° ΠΏΠΎΠ»Π΅ ΡΠΎΠ΄ΠΈΡΠ΅Π»Ρ Π½Π°Π·ΡΠ²Π°Π΅ΡΡΡ Π½Π΅ ΡΠ°ΠΊ, ΠΊΠ°ΠΊ ΡΠΊΠ°Π·Π°Π½ΠΎ Π² ΡΠΎΠ΄ΠΈΡΠ΅Π»ΡΡΠΊΠΎΠΌ ΠΊΠ»Π°ΡΡΠ΅, ΡΠΎ Π΅Π³ΠΎ Π½ΡΠΆΠ½ΠΎ ΡΠΌΠ°ΠΏΠΏΠΈΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ Π°Π½Π½ΠΎΡΠ°ΡΠΈΠΈ @AttributeOverride Π² ΠΊΠ»Π°ΡΡΠ΅ ΡΡΠΎΠ³ΠΎ ΠΏΠΎΡΠΎΠΌΠΊΠ°. Π ΠΎΠ΄ΠΈΡΠ΅Π»Ρ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ ΡΡΠ°ΡΡΠ²ΠΎΠ²Π°ΡΡ Π² Π°ΡΡΠΎΡΠΈΠ°ΡΠΈΠΈ. ΠΡΠΈ ΠΏΠΎΠ»ΠΈΠΌΠΎΡΡΠ½ΡΡ Π·Π°ΠΏΡΠΎΡΠ°Ρ Ρ Π½Π°Ρ Π±ΡΠ΄ΡΡ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΠ΅ Π·Π°ΠΏΡΠΎΡΡ Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΡΠ°Π±Π»ΠΈΡΡ.
β’ Single table β Π²ΡΡ ΠΈΠ΅ΡΠ°ΡΡ ΠΈΡ ΠΊΠ»Π°ΡΡΠΎΠ² Π² ΠΎΠ΄Π½ΠΎΠΉ ΡΠ°Π±Π»ΠΈΡΠ΅. Π§ΡΠΎΠ±Ρ ΡΠ°Π·Π»ΠΈΡΠ°ΡΡ ΠΊΠ»Π°ΡΡΡ, Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ ΠΊΠΎΠ»ΠΎΠ½ΠΊΡ-Π΄ΠΈΡΠΊΡΠΈΠΌΠΈΠ½Π°ΡΠΎΡ. Π Π΄Π°Π½Π½ΠΎΠΉ ΡΡΡΠ°ΡΠ΅Π³ΠΈΠΈ Π½Π° ΡΠΎΠ΄ΠΈΡΠ΅Π»ΡΡΠΊΠΈΠΉ @Entity-ΠΊΠ»Π°ΡΡ Π½Π°Π²Π΅ΡΠΈΠ²Π°Π΅ΡΡΡ @Inheritance(strategy = InheritanceType.SINGLE_TABLE) ΠΈ @DiscriminatorColumn(name = "YOUR_DISCRIMINATOR_COLUMN_NAME") (ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ ΠΈΠΌΡ ΠΊΠΎΠ»ΠΎΠ½ΠΊΠΈ DTYPE ΠΈ ΡΠΈΠΏ VARCHAR). Π ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΠΏΠΎΠ΄ΠΊΠ»Π°ΡΡΠ΅ ΡΠΊΠ°Π·ΡΠ²Π°Π΅ΠΌ @DiscriminatorValue("ThisChildName") ΡΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ΠΌ, ΠΊΠΎΡΠΎΡΠΎΠ΅ Π±ΡΠ΄Π΅Ρ Ρ ΡΠ°Π½ΠΈΡΡΡΡ Π² ΠΊΠΎΠ»ΠΎΠ½ΠΊΠ΅-Π΄ΠΈΡΠΊΡΠΈΠΌΠΈΠ½Π°ΡΠΎΡΠ΅ Π΄Π»Ρ Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΊΠ»Π°ΡΡΠ°. ΠΡΠ»ΠΈ Π½Π΅Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ ΠΊΠΎΠ»ΠΎΠ½ΠΊΡ, ΡΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π°Π½Π½ΠΎΡΠ°ΡΠΈΡ @DiscriminatorFormula, Π² ΠΊΠΎΡΠΎΡΠΎΠΉ ΡΠΊΠ°Π·Π°ΡΡ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ CASE...WHEN β ΡΡΠΎ Π½Π΅ ΠΏΠΎ JPA, ΡΠΈΡΠΊΠ° Hibernate. ΠΠ΅Π½ΠΎΡΠΌΠ°Π»ΠΈΠ·Π°ΡΠΈΡ. ΠΡΠΎΡΡΡΠ΅ Π·Π°ΠΏΡΠΎΡΡ ΠΊ ΠΎΠ΄Π½ΠΎΠΉ ΡΠ°Π±Π»ΠΈΡΠ΅. ΠΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΠ΅ Π½Π°ΡΡΡΠ΅Π½ΠΈΠ΅ ΡΠ΅Π»ΠΎΡΡΠ½ΠΎΡΡΠΈ β ΡΡΠΎΠ»Π±ΡΡ ΠΏΠΎΠ΄ΠΊΠ»Π°ΡΡΠΎΠ² ΠΌΠΎΠ³ΡΡ ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡ NULL.
β’ Joined table β ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΠ΅ ΡΠ°Π±Π»ΠΈΡΡ Π΄Π»Ρ Π²ΡΠ΅Ρ ΠΊΠ»Π°ΡΡΠΎΠ² ΠΈΠ΅ΡΠ°ΡΡ ΠΈΠΈ, Π²ΠΊΠ»ΡΡΠ°Ρ ΡΠΎΠ΄ΠΈΡΠ΅Π»Ρ. Π ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΡΠ°Π±Π»ΠΈΡΠ΅ ΡΠΎΠ»ΡΠΊΠΎ ΡΠ²ΠΎΠΈ ΠΏΠΎΠ»Ρ, Π° Π² Π΄ΠΎΡΠ΅ΡΠ½ΠΈΡ Π΄ΠΎΠ±Π°Π²Π»ΡΠ΅ΡΡΡ Π²Π½Π΅ΡΠ½ΠΈΠΉ (ΠΎΠ½ ΠΆΠ΅ ΠΏΠ΅ΡΠ²ΠΈΡΠ½ΡΠΉ) ΠΊΠ»ΡΡ Π΄Π»Ρ ΡΠ²ΡΠ·ΠΈ Ρ ΡΠΎΠ΄ΠΈΡΠ΅Π»ΡΡΠΊΠΎΠΉ ΡΠ°Π±Π»ΠΈΡΠ΅ΠΉ. Π @Entity-ΠΊΠ»Π°ΡΡ ΡΠΎΠ΄ΠΈΡΠ΅Π»Ρ Π΄ΠΎΠ±Π°Π²Π»ΡΠ΅ΠΌ @Inheritance(strategy = InheritanceType.JOINED). ΠΠ»Ρ ΠΏΠΎΠ»ΠΈΠΌΠΎΡΡΠ½ΡΡ Π·Π°ΠΏΡΠΎΡΠΎΠ² ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ JOIN, Π° ΡΠ°ΠΊΠΆΠ΅ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ CASE...WHEN, Π²ΡΡΠΈΡΠ»ΡΡΡΠ΅Π΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΏΠΎΠ»Ρ _clazz, ΠΊΠΎΡΠΎΡΠΎΠ΅ Π·Π°ΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ Π»ΠΈΡΠ΅ΡΠ°Π»Π°ΠΌΠΈ (0 (ΡΠΎΠ΄ΠΈΡΠ΅Π»Ρ), 1, 2 ΠΈ Ρ.Π΄.) ΠΈ ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ Hibernate ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ ΠΊΠ°ΠΊΠΎΠ³ΠΎ ΠΊΠ»Π°ΡΡΠ° Π±ΡΠ΄Π΅Ρ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡ.
β’ Table per class β ΡΠ°ΠΊΠΆΠ΅ ΠΊΠ°ΠΊ ΠΈ Π² MappedSuperclass, ΠΈΠΌΠ΅Π΅ΠΌ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΠ΅ ΡΠ°Π±Π»ΠΈΡΡ Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΏΠΎΠ΄ΠΊΠ»Π°ΡΡΠ°. ΠΠ°Π·ΠΎΠ²ΡΠΉ ΠΊΠ»Π°ΡΡ ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎΠΉ ΡΠ°Π±Π»ΠΈΡΡ Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ. ΠΠΎ ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ JPA 2.2 Π΄Π°Π½Π½Π°Ρ ΡΡΡΠ°ΡΠ΅Π³ΠΈΡ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΎΠΏΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΠΉ, Π½ΠΎ Π² Hibernate ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π°, ΠΏΠΎΡΡΠΎΠΌΡ ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠΈΠΌ. Π Π΄Π°Π½Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ Π½Π° Π±Π°Π·ΠΎΠ²ΡΠΉ ΠΊΠ»Π°ΡΡ ΠΌΡ Π½Π°Π²Π΅ΡΠΈΠ²Π°Π΅ΠΌ @Entity ΠΈ @Inheritance(strategy = InheritanceType.TABLE_PER_CLASS). ΠΠΎΠ»Π΅ ΠΏΠ΅ΡΠ²ΠΈΡΠ½ΠΎΠ³ΠΎ ΠΊΠ»ΡΡΠ° (@Id) ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎ Π΄Π»Ρ ΡΠΎΠ΄ΠΈΡΠ΅Π»ΡΡΠΊΠΎΠ³ΠΎ ΠΊΠ»Π°ΡΡΠ°. Π’Π°ΠΊΠΆΠ΅ Π°Π½Π½ΠΎΡΠ°ΡΠΈΡ @AttributeOverride Π² ΡΡΠΎΠΉ ΡΡΡΠ°ΡΠ΅Π³ΠΈΠΈ Π½Π΅ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ β Π½Π°Π·ΡΠ²Π°ΠΉΡΠ΅ ΡΠΎΠ΄ΠΈΡΠ΅Π»ΡΡΠΊΠΈΠ΅ ΠΏΠΎΠ»Ρ Π² ΡΠ°Π±Π»ΠΈΡΠ°Ρ ΡΡΠ°Π·Ρ Π΅Π΄ΠΈΠ½ΠΎΠΎΠ±ΡΠ°Π·Π½ΠΎ. ΠΠΎΠ»ΠΈΠΌΠΎΡΡΠ½ΡΠΉ Π·Π°ΠΏΡΠΎΡ Π±ΡΠ΄Π΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ UNION Π΄Π»Ρ ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ ΡΠ°Π±Π»ΠΈΡ. Π§ΡΠΎΠ±Ρ ΡΠ°Π·Π»ΠΈΡΠΈΡΡ ΠΏΡΠΈ ΡΠΎΠ·Π΄Π°Π½ΠΈΠΈ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΠΎΠ² ΠΏΠΎΠ΄ΠΊΠ»Π°ΡΡΡ, Hibernate Π΄ΠΎΠ±Π°Π²Π»ΡΠ΅Ρ ΠΏΠΎΠ»Π΅ _clazz Π² Π·Π°ΠΏΡΠΎΡΡ, ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠΈΠ΅ Π»ΠΈΡΠ΅ΡΠ°Π»Ρ (1, 2 ΠΈ Ρ.Π΄.). Π ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΡΠΉ Π½Π°Π±ΠΎΡ ΡΡΠΎΠ»Π±ΡΠΎΠ² Π΄Π»Ρ ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ Π΄ΠΎΠ±ΠΈΡΠ°Π΅ΡΡΡ ΠΊΠ°ΠΊ NULL AS some_field. Π ΠΎΠ΄ΠΈΡΠ΅Π»Ρ ΠΌΠΎΠΆΠ΅Ρ ΡΡΠ°ΡΡΠ²ΠΎΠ²Π°ΡΡ Π² Π°ΡΡΠΎΡΠΈΠ°ΡΠΈΠΈ Ρ Π΄ΡΡΠ³ΠΈΠΌΠΈ ΡΡΡΠ½ΠΎΡΡΡΠΌΠΈ.
π28
ΠΠ°ΠΊΠΎΠΉ ΠΌΠ΅ΡΠΎΠ΄ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΠ° Iterator ΠΌΠΎΠΆΠ΅Ρ Π±ΡΠΎΡΠΈΡΡ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ NoSuchElementException?
Anonymous Quiz
5%
add()
50%
next()
30%
remove()
15%
hasNext()
π17π15π1
Π§ΡΠΎ ΡΠ°ΠΊΠΎΠ΅ coupling ΠΈ cohesion? Π§ΡΠΎ ΠΈΠ· Π½ΠΈΡ
(ΠΈΠ»ΠΈ ΠΎΠ±Π°) Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±ΡΡΡ ΡΠΈΠ»ΡΠ½ΡΠΌ (Π²ΡΡΠΎΠΊΠΈΠΌ) ΠΈ/ΠΈΠ»ΠΈ ΡΠ»Π°Π±ΡΠΌ (Π½ΠΈΠ·ΠΊΠΈΠΌ)?
Coupling (ΠΠ°ΡΠ΅ΠΏΠ»Π΅Π½ΠΈΠ΅) β ΡΡΠ΅ΠΏΠ΅Π½Ρ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΌΠ΅ΠΆΠ΄Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΡΠΌΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ°ΠΌΠΈ. ΠΠΎΠ»ΠΆΠ½Π° Π±ΡΡΡ Π½ΠΈΠ·ΠΊΠΎΠΉ.
Cohesion (Π‘Π²ΡΠ·Π½ΠΎΡΡΡ) β ΡΡΠ΅ΠΏΠ΅Π½Ρ ΡΡΠΎΠΊΡΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΡΡΠΈ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ² ΠΊΠ»Π°ΡΡΠ°. ΠΠΎΠ»ΠΆΠ½Π° Π±ΡΡΡ Π²ΡΡΠΎΠΊΠΎΠΉ.
ΠΠΎΠ΄ΡΠΎΠ±Π½Π΅Π΅ ΠΏΠΎΡΠΈΡΠ°ΡΡ ΠΈ ΠΏΠΎΡΠΌΠΎΡΡΠ΅ΡΡ ΠΊΠ°ΡΡΠΈΠ½ΠΊΠΈ ΠΌΠΎΠΆΠ½ΠΎ ΡΡΡ Π½Π° ΡΡΡΡΠΊΠΎΠΌ.
Coupling (ΠΠ°ΡΠ΅ΠΏΠ»Π΅Π½ΠΈΠ΅) β ΡΡΠ΅ΠΏΠ΅Π½Ρ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΌΠ΅ΠΆΠ΄Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΡΠΌΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ°ΠΌΠΈ. ΠΠΎΠ»ΠΆΠ½Π° Π±ΡΡΡ Π½ΠΈΠ·ΠΊΠΎΠΉ.
Cohesion (Π‘Π²ΡΠ·Π½ΠΎΡΡΡ) β ΡΡΠ΅ΠΏΠ΅Π½Ρ ΡΡΠΎΠΊΡΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΡΡΠΈ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ² ΠΊΠ»Π°ΡΡΠ°. ΠΠΎΠ»ΠΆΠ½Π° Π±ΡΡΡ Π²ΡΡΠΎΠΊΠΎΠΉ.
ΠΠΎΠ΄ΡΠΎΠ±Π½Π΅Π΅ ΠΏΠΎΡΠΈΡΠ°ΡΡ ΠΈ ΠΏΠΎΡΠΌΠΎΡΡΠ΅ΡΡ ΠΊΠ°ΡΡΠΈΠ½ΠΊΠΈ ΠΌΠΎΠΆΠ½ΠΎ ΡΡΡ Π½Π° ΡΡΡΡΠΊΠΎΠΌ.
π25β€βπ₯3π2β‘1
Π§ΡΠΎ Π²ΡΠ²Π΅Π΄Π΅Ρ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ ΠΊΠΎΠ΄?
Anonymous Quiz
24%
NullPointerException
12%
ClassCastException
16%
Integer
47%
ΠΠΎΠ΄ Π½Π΅ ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΡΠ΅ΡΡΡ
π19π5
Π§ΡΠΎ ΡΠ°ΠΊΠΎΠ΅ ΠΊΡΠ± ΠΌΠ°ΡΡΡΠ°Π±ΠΈΡΠΎΠ²Π°Π½ΠΈΡ?
ΠΡΠ± ΠΌΠ°ΡΡΡΠ°Π±ΠΈΡΠΎΠ²Π°Π½ΠΈΡ (scale cube, ΠΈΠ· ΠΊΠ½ΠΈΠ³ΠΈ The Art of Scalability) ΡΠ²Π»ΡΠ΅ΡΡΡ Π½Π°Π³Π»ΡΠ΄Π½ΡΠΌ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ΠΌ ΡΡΡΡ ΠΎΡΡΠΎΠ³ΠΎΠ½Π°Π»ΡΠ½ΡΡ ΡΠΏΠΎΡΠΎΠ±ΠΎΠ² ΡΠ²Π΅Π»ΠΈΡΠ΅Π½ΠΈΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ: sharding, mirrorring ΠΈ microservices.
β’ Sharding (data partioning) β ΡΠ°Π·Π±ΠΈΠ΅Π½ΠΈΠ΅ ΠΈ ΡΠ°Π·ΠΌΠ΅ΡΠ΅Π½ΠΈΠ΅ ΠΎΠ΄Π½ΠΎΡΠΈΠΏΠ½ΡΡ Π΄Π°Π½Π½ΡΡ ΠΏΠΎ ΡΠ°Π·Π½ΡΠΌ ΡΠ·Π»Π°ΠΌ.
β’ Mirroring (horizontal duplication) β Π΄ΡΠ±Π»ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈΠ»ΠΈ ΠΊΠ»ΠΎΠ½ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Π΄Π°Π½Π½ΡΡ Π΄Π»Ρ ΡΠΌΠ΅Π½ΡΡΠ΅Π½ΠΈΡ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ ΠΎΡΠΊΠ»ΠΈΠΊΠ°.
β’ Microservices β Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ½ΡΠΉ ΠΏΠΎΠ΄Ρ ΠΎΠ΄, ΠΏΡΠΈ ΠΊΠΎΡΠΎΡΠΎΠΌ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΡΡΡ ΡΠΈΡΡΠ΅ΠΌΡ ΡΠ°Π·Π±ΠΈΠ²Π°Π΅ΡΡΡ Π½Π° ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΠ΅ ΡΠ΅ΡΠ²ΠΈΡΡ ΠΏΠΎ Π±ΠΈΠ·Π½Π΅Ρ-Π·Π°Π΄Π°ΡΠ°ΠΌ.
ΠΡΠ± ΠΌΠ°ΡΡΡΠ°Π±ΠΈΡΠΎΠ²Π°Π½ΠΈΡ (scale cube, ΠΈΠ· ΠΊΠ½ΠΈΠ³ΠΈ The Art of Scalability) ΡΠ²Π»ΡΠ΅ΡΡΡ Π½Π°Π³Π»ΡΠ΄Π½ΡΠΌ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ΠΌ ΡΡΡΡ ΠΎΡΡΠΎΠ³ΠΎΠ½Π°Π»ΡΠ½ΡΡ ΡΠΏΠΎΡΠΎΠ±ΠΎΠ² ΡΠ²Π΅Π»ΠΈΡΠ΅Π½ΠΈΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ: sharding, mirrorring ΠΈ microservices.
β’ Sharding (data partioning) β ΡΠ°Π·Π±ΠΈΠ΅Π½ΠΈΠ΅ ΠΈ ΡΠ°Π·ΠΌΠ΅ΡΠ΅Π½ΠΈΠ΅ ΠΎΠ΄Π½ΠΎΡΠΈΠΏΠ½ΡΡ Π΄Π°Π½Π½ΡΡ ΠΏΠΎ ΡΠ°Π·Π½ΡΠΌ ΡΠ·Π»Π°ΠΌ.
β’ Mirroring (horizontal duplication) β Π΄ΡΠ±Π»ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈΠ»ΠΈ ΠΊΠ»ΠΎΠ½ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Π΄Π°Π½Π½ΡΡ Π΄Π»Ρ ΡΠΌΠ΅Π½ΡΡΠ΅Π½ΠΈΡ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ ΠΎΡΠΊΠ»ΠΈΠΊΠ°.
β’ Microservices β Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ½ΡΠΉ ΠΏΠΎΠ΄Ρ ΠΎΠ΄, ΠΏΡΠΈ ΠΊΠΎΡΠΎΡΠΎΠΌ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΡΡΡ ΡΠΈΡΡΠ΅ΠΌΡ ΡΠ°Π·Π±ΠΈΠ²Π°Π΅ΡΡΡ Π½Π° ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΠ΅ ΡΠ΅ΡΠ²ΠΈΡΡ ΠΏΠΎ Π±ΠΈΠ·Π½Π΅Ρ-Π·Π°Π΄Π°ΡΠ°ΠΌ.
π18π₯3
Π ΠΊΠ°ΠΊΠΈΡ
ΡΠ»ΡΡΠ°ΡΡ
ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ TreeSetΠΏΡΠ΅Π΄ΠΏΠΎΡΡΠΈΡΠ΅Π»ΡΠ½Π΅Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ HashSet?
Anonymous Quiz
10%
ΠΡΠ»ΠΈ ΡΡΠ΅Π±ΡΠ΅ΡΡΡ ΠΌΠΎΠ΄ΠΈΡΠΈΡΠΈΡΠΎΠ²Π°ΡΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡ ΠΈΡΠ΅ΡΠ°ΡΠΎΡΠ° ΠΏΠΎ ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΠΈ
9%
ΠΡΠ»ΠΈ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎ ΡΠ°ΡΡΠΎ ΠΎΡΡΡΠ΅ΡΡΠ²Π»ΡΡΡ ΠΎΠ±ΡΠ°ΡΠ΅Π½ΠΈΠ΅ ΠΊ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ Set
12%
ΠΡΠ»ΠΈ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎ ΡΠ°ΡΡΠΎ Π²ΡΡΠ°Π²Π»ΡΡΡ Π² Set Π½ΠΎΠ²ΡΠ΅ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ ΠΈΠ»ΠΈ ΡΠ΄Π°Π»ΡΡΡ ΠΈΡ
69%
ΠΡΠ»ΠΈ Π½ΡΠΆΠ½ΠΎ Π³Π°ΡΠ°Π½ΡΠΈΡΠΎΠ²Π°ΡΡ ΡΠΎΡ
ΡΠ°Π½Π΅Π½ΠΈΡ ΠΏΠΎΡΡΠ΄ΠΊΠ° ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΠΈ
π₯22π9
Π§Π΅ΠΌ ΡΠ΅ΡΠ²ΠΈΡΠ½Π°Ρ Π°ΡΡ
ΠΈΡΠ΅ΠΊΡΡΡΠ° ΠΎΡΠ»ΠΈΡΠ°Π΅ΡΡΡ ΠΎΡ ΠΌΠΈΠΊΡΠΎΡΠ΅ΡΠ²ΠΈΡΠ½ΠΎΠΉ?
Π‘Π΅ΡΠ²ΠΈΡ-ΠΎΡΠΈΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½Π½Π°Ρ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ° (SOA) β Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΡΠΉ ΠΎΡ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΠΉ, ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΉ ΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΡΡ ΠΏΡΠΎΠ΄ΡΠΊΡΠΎΠ² ΠΏΠΎΠ΄Ρ ΠΎΠ΄ ΠΊ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΡ Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ ΡΠ°ΡΠΏΡΠ΅Π΄Π΅Π»ΡΠ½Π½ΡΡ , ΡΠ»Π°Π±ΠΎΡΠ²ΡΠ·Π°Π½Π½ΡΡ Π·Π°ΠΌΠ΅Π½ΡΠ΅ΠΌΡΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ² Ρ ΡΡΡΠΊΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ½Π½ΡΠΌΠΈ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ°ΠΌΠΈ ΠΈ ΠΏΡΠΎΡΠΎΠΊΠΎΠ»Π°ΠΌΠΈ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΡ. ΠΠ±Π»Π°ΡΡΡ ΠΎΡ Π²Π°ΡΠ° SOA β ΡΡΠΎ Π²ΡΡ ΠΏΡΠ΅Π΄ΠΏΡΠΈΡΡΠΈΠ΅, Π³Π΄Π΅ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ ΠΌΠ΅ΠΆΠ΄Ρ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡΠΌΠΈ. SOA Π΄Π΅Π»Π°Π΅Ρ ΡΡΠ°Π²ΠΊΡ Π½Π° Π΄ΠΎΡΡΡΠΏ ΠΊ Π±ΠΈΠ·Π½Π΅Ρ-ΡΡΠ½ΠΊΡΠΈΡΠΌ ΠΏΡΠ΅Π΄ΠΏΡΠΈΡΡΠΈΡ ΡΠ΅ΡΠ΅Π· ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΠ΅ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΡ.
Π‘Π΅ΡΠ²ΠΈΡ Π² Π΄Π°Π½Π½ΠΎΠΉ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ΅:
β’ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ Π±ΠΈΠ·Π½Π΅Ρ-Π»ΠΎΠ³ΠΈΠΊΡ Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ½Π½ΡΠΌ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠΎΠΌ (ΠΌΠ½ΠΎΠ³ΠΎ ΠΎΡΠ²Π΅ΡΡΡΠ²Π΅Π½Π½ΠΎΡΡΠ΅ΠΉ, ΡΠ²ΡΠ·Π°Π½Π½ΡΡ Π΅Π΄ΠΈΠ½ΠΎΠΉ Π±ΠΈΠ·Π½Π΅Ρ-ΠΎΠ±Π»Π°ΡΡΡΡ, ΡΠ΅Π»ΡΡ, ΡΠΌΡΡΠ»ΠΎΠΌ ΠΈ Ρ.ΠΏ.);
β’ ΠΌΠΎΠΆΠ΅Ρ ΡΠΎΡΡΠΎΡΡΡ ΠΈΠ· Π΄ΡΡΠ³ΠΈΡ ΡΠ΅ΡΠ²ΠΈΡΠΎΠ² ΠΈΠ»ΠΈ Π·Π°Π²ΠΈΡΠ΅ΡΡ ΠΎΡ Π½ΠΈΡ ;
β’ ΡΠ²Π»ΡΠ΅ΡΡΡ "ΡΡΡΠ½ΡΠΌ ΡΡΠΈΠΊΠΎΠΌ" Π΄Π»Ρ ΡΠ²ΠΎΠΈΡ ΠΊΠ»ΠΈΠ΅Π½ΡΠΎΠ².
ΠΠ°ΠΊ ΠΈ Π²ΡΠ΅ ΡΠ΅ΡΡΡΠ·Π½ΡΠ΅ ΠΏΠΎΠ΄Ρ ΠΎΠ΄Ρ ΠΊ ΡΠ΅ΠΌΡ-Π»ΠΈΠ±ΠΎ ΠΈΠΌΠ΅Π΅Ρ ΡΠ²ΠΎΠΉ ΠΌΠ°Π½ΠΈΡΠ΅ΡΡ
ΠΠΈΠΊΡΠΎΡΠ΅ΡΠ²ΠΈΡΠ½Π°Ρ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ° (MSA) β ΡΠ°ΡΡΠ½ΡΠΉ ΡΠ»ΡΡΠ°ΠΉ SOA, ΠΏΠΎΠ±ΡΠΆΠ΄Π°ΡΡΠΈΠΉ ΡΡΡΠΎΠΈΡΡ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ Π½Π°ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΡΠΎ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΠΈ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π½Π΅Π±ΠΎΠ»ΡΡΠΈΡ , ΡΠ»Π°Π±ΠΎΡΠ²ΡΠ·Π°Π½Π½ΡΡ , Π»Π΅Π³ΠΊΠΎ ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅ΠΌΡΡ ΠΈ Π²Π·Π°ΠΈΠΌΠΎΠ·Π°ΠΌΠ΅Π½ΡΠ΅ΠΌΡΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ² (ΠΌΠΈΠΊΡΠΎΡΠ΅ΡΠ²ΠΈΡΠΎΠ²). MSA ΠΎΡΠΈΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½Π°, Π² ΠΏΠ΅ΡΠ²ΡΡ ΠΎΡΠ΅ΡΠ΅Π΄Ρ, Π½Π° ΡΡΡΡΠΊΡΡΡΡ ΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎΠ³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ.
ΠΠΈΠΊΡΠΎΡΠ΅ΡΠ²ΠΈΡ:
β’ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅Ρ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΠ΄Π½Ρ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ°ΡΠ½ΡΡ ΠΈ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ½Π½ΡΡ ΡΡΠ½ΠΊΡΠΈΡ (Unix way β Π΅Π΄ΠΈΠ½ΡΡΠ²Π΅Π½Π½Π°Ρ ΠΎΡΠ²Π΅ΡΡΡΠ²Π΅Π½Π½ΠΎΡΡΡ);
β’ Π΄Π΅ΠΏΠ»ΠΎΠΈΡΡΡ ΠΈ ΡΠ°Π·ΡΠ°Π±Π°ΡΡΠ²Π°Π΅ΡΡΡ Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΠΎ ΠΎΡ Π΄ΡΡΠ³ΠΈΡ ΠΌΠΈΠΊΡΠΎΡΠ΅ΡΠ²ΠΈΡΠΎΠ²;
β’ ΡΠ²Π»ΡΠ΅ΡΡΡ Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΡΠΌ ΠΎΡ Π΄ΡΡΠ³ΠΈΡ ΠΌΠΈΠΊΡΠΎΡΠ΅ΡΠ²ΠΈΡΠΎΠ² (Π² ΡΠΎΠΌ ΡΠΈΡΠ»Π΅ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½Π°Ρ ΠΌΠΈΠ½ΠΈΠΌΠΈΠ·Π°ΡΠΈΡ ΠΎΠ±ΡΠ΅Π³ΠΎ ΠΊΠΎΠ΄Π°);
β’ ΡΠ²Π»ΡΠ΅ΡΡΡ "ΡΡΡΠ½ΡΠΌ ΡΡΠΈΠΊΠΎΠΌ" Π΄Π»Ρ ΡΠ²ΠΎΠΈΡ ΠΊΠ»ΠΈΠ΅Π½ΡΠΎΠ².
ΠΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡΠΈ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΈΡΡΠΎΡΠ½ΠΈΠΊΠΎΠ², Π³Π΄Π΅ MSA ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅ΡΡΡ ΠΊΠ°ΠΊ Π½Π΅ΡΡΠΎ Π½ΠΎΠ²ΠΎΠ΅ ΠΈ Ρ ΠΎΡΠΎΡΠ΅Π΅, Π° SOA β ΡΡΠ°ΡΠΎΠ΅ ΠΈ ΡΠΌΠΈΡΠ°ΡΡΠ΅Π΅. Π§Π°ΡΡΠΎ ΡΡΠΎ Π΅ΡΡ ΠΈ ΠΏΠΎΠ΄Π°ΡΡΡΡ ΠΏΠΎΠ΄ ΡΠΎΡΡΠΎΠΌ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΠΉ. ΠΠΠ₯Π β ΡΡΠΎ Π±ΠΎΠ»ΡΡΠ΅ ΠΌΠ°ΡΠΊΠ΅ΡΠΈΠ½Π³ΠΎΠ²Π°Ρ ΡΡΡΡΠ°, ΡΠ΅ΠΌ Ρ ΠΎΡΠΎΡΠ΅Π΅ ΡΡΠ°Π²Π½Π΅Π½ΠΈΠ΅. MSA ΠΈ SOA Π½Π΅ Π·Π°Π²ΡΠ·Π°Π½Ρ Π½Π° ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ ΠΈ Π½Π΅ ΠΎΠ³ΡΠ°Π½ΠΈΡΠΈΠ²Π°ΡΡ Π² ΠΈΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ. ΠΠΎΠ»Π΅Π΅ ΡΠΎΠ³ΠΎ, ΠΎΠ±Π° ΠΏΠΎΠ΄Ρ ΠΎΠ΄Π° ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ²ΠΌΠ΅ΡΠ°ΡΡ Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠΉ Π΄Π»Ρ Π±ΠΈΠ·Π½Π΅ΡΠ°.
Π‘Π΅ΡΠ²ΠΈΡ-ΠΎΡΠΈΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½Π½Π°Ρ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ° (SOA) β Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΡΠΉ ΠΎΡ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΠΉ, ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΉ ΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΡΡ ΠΏΡΠΎΠ΄ΡΠΊΡΠΎΠ² ΠΏΠΎΠ΄Ρ ΠΎΠ΄ ΠΊ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΡ Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ ΡΠ°ΡΠΏΡΠ΅Π΄Π΅Π»ΡΠ½Π½ΡΡ , ΡΠ»Π°Π±ΠΎΡΠ²ΡΠ·Π°Π½Π½ΡΡ Π·Π°ΠΌΠ΅Π½ΡΠ΅ΠΌΡΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ² Ρ ΡΡΡΠΊΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ½Π½ΡΠΌΠΈ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ°ΠΌΠΈ ΠΈ ΠΏΡΠΎΡΠΎΠΊΠΎΠ»Π°ΠΌΠΈ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΡ. ΠΠ±Π»Π°ΡΡΡ ΠΎΡ Π²Π°ΡΠ° SOA β ΡΡΠΎ Π²ΡΡ ΠΏΡΠ΅Π΄ΠΏΡΠΈΡΡΠΈΠ΅, Π³Π΄Π΅ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ ΠΌΠ΅ΠΆΠ΄Ρ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡΠΌΠΈ. SOA Π΄Π΅Π»Π°Π΅Ρ ΡΡΠ°Π²ΠΊΡ Π½Π° Π΄ΠΎΡΡΡΠΏ ΠΊ Π±ΠΈΠ·Π½Π΅Ρ-ΡΡΠ½ΠΊΡΠΈΡΠΌ ΠΏΡΠ΅Π΄ΠΏΡΠΈΡΡΠΈΡ ΡΠ΅ΡΠ΅Π· ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΠ΅ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΡ.
Π‘Π΅ΡΠ²ΠΈΡ Π² Π΄Π°Π½Π½ΠΎΠΉ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ΅:
β’ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ Π±ΠΈΠ·Π½Π΅Ρ-Π»ΠΎΠ³ΠΈΠΊΡ Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ½Π½ΡΠΌ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠΎΠΌ (ΠΌΠ½ΠΎΠ³ΠΎ ΠΎΡΠ²Π΅ΡΡΡΠ²Π΅Π½Π½ΠΎΡΡΠ΅ΠΉ, ΡΠ²ΡΠ·Π°Π½Π½ΡΡ Π΅Π΄ΠΈΠ½ΠΎΠΉ Π±ΠΈΠ·Π½Π΅Ρ-ΠΎΠ±Π»Π°ΡΡΡΡ, ΡΠ΅Π»ΡΡ, ΡΠΌΡΡΠ»ΠΎΠΌ ΠΈ Ρ.ΠΏ.);
β’ ΠΌΠΎΠΆΠ΅Ρ ΡΠΎΡΡΠΎΡΡΡ ΠΈΠ· Π΄ΡΡΠ³ΠΈΡ ΡΠ΅ΡΠ²ΠΈΡΠΎΠ² ΠΈΠ»ΠΈ Π·Π°Π²ΠΈΡΠ΅ΡΡ ΠΎΡ Π½ΠΈΡ ;
β’ ΡΠ²Π»ΡΠ΅ΡΡΡ "ΡΡΡΠ½ΡΠΌ ΡΡΠΈΠΊΠΎΠΌ" Π΄Π»Ρ ΡΠ²ΠΎΠΈΡ ΠΊΠ»ΠΈΠ΅Π½ΡΠΎΠ².
ΠΠ°ΠΊ ΠΈ Π²ΡΠ΅ ΡΠ΅ΡΡΡΠ·Π½ΡΠ΅ ΠΏΠΎΠ΄Ρ ΠΎΠ΄Ρ ΠΊ ΡΠ΅ΠΌΡ-Π»ΠΈΠ±ΠΎ ΠΈΠΌΠ΅Π΅Ρ ΡΠ²ΠΎΠΉ ΠΌΠ°Π½ΠΈΡΠ΅ΡΡ
ΠΠΈΠΊΡΠΎΡΠ΅ΡΠ²ΠΈΡΠ½Π°Ρ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ° (MSA) β ΡΠ°ΡΡΠ½ΡΠΉ ΡΠ»ΡΡΠ°ΠΉ SOA, ΠΏΠΎΠ±ΡΠΆΠ΄Π°ΡΡΠΈΠΉ ΡΡΡΠΎΠΈΡΡ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ Π½Π°ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΡΠΎ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΠΈ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π½Π΅Π±ΠΎΠ»ΡΡΠΈΡ , ΡΠ»Π°Π±ΠΎΡΠ²ΡΠ·Π°Π½Π½ΡΡ , Π»Π΅Π³ΠΊΠΎ ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅ΠΌΡΡ ΠΈ Π²Π·Π°ΠΈΠΌΠΎΠ·Π°ΠΌΠ΅Π½ΡΠ΅ΠΌΡΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ² (ΠΌΠΈΠΊΡΠΎΡΠ΅ΡΠ²ΠΈΡΠΎΠ²). MSA ΠΎΡΠΈΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½Π°, Π² ΠΏΠ΅ΡΠ²ΡΡ ΠΎΡΠ΅ΡΠ΅Π΄Ρ, Π½Π° ΡΡΡΡΠΊΡΡΡΡ ΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎΠ³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ.
ΠΠΈΠΊΡΠΎΡΠ΅ΡΠ²ΠΈΡ:
β’ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅Ρ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΠ΄Π½Ρ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ°ΡΠ½ΡΡ ΠΈ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ½Π½ΡΡ ΡΡΠ½ΠΊΡΠΈΡ (Unix way β Π΅Π΄ΠΈΠ½ΡΡΠ²Π΅Π½Π½Π°Ρ ΠΎΡΠ²Π΅ΡΡΡΠ²Π΅Π½Π½ΠΎΡΡΡ);
β’ Π΄Π΅ΠΏΠ»ΠΎΠΈΡΡΡ ΠΈ ΡΠ°Π·ΡΠ°Π±Π°ΡΡΠ²Π°Π΅ΡΡΡ Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΠΎ ΠΎΡ Π΄ΡΡΠ³ΠΈΡ ΠΌΠΈΠΊΡΠΎΡΠ΅ΡΠ²ΠΈΡΠΎΠ²;
β’ ΡΠ²Π»ΡΠ΅ΡΡΡ Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΡΠΌ ΠΎΡ Π΄ΡΡΠ³ΠΈΡ ΠΌΠΈΠΊΡΠΎΡΠ΅ΡΠ²ΠΈΡΠΎΠ² (Π² ΡΠΎΠΌ ΡΠΈΡΠ»Π΅ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½Π°Ρ ΠΌΠΈΠ½ΠΈΠΌΠΈΠ·Π°ΡΠΈΡ ΠΎΠ±ΡΠ΅Π³ΠΎ ΠΊΠΎΠ΄Π°);
β’ ΡΠ²Π»ΡΠ΅ΡΡΡ "ΡΡΡΠ½ΡΠΌ ΡΡΠΈΠΊΠΎΠΌ" Π΄Π»Ρ ΡΠ²ΠΎΠΈΡ ΠΊΠ»ΠΈΠ΅Π½ΡΠΎΠ².
ΠΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡΠΈ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΈΡΡΠΎΡΠ½ΠΈΠΊΠΎΠ², Π³Π΄Π΅ MSA ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅ΡΡΡ ΠΊΠ°ΠΊ Π½Π΅ΡΡΠΎ Π½ΠΎΠ²ΠΎΠ΅ ΠΈ Ρ ΠΎΡΠΎΡΠ΅Π΅, Π° SOA β ΡΡΠ°ΡΠΎΠ΅ ΠΈ ΡΠΌΠΈΡΠ°ΡΡΠ΅Π΅. Π§Π°ΡΡΠΎ ΡΡΠΎ Π΅ΡΡ ΠΈ ΠΏΠΎΠ΄Π°ΡΡΡΡ ΠΏΠΎΠ΄ ΡΠΎΡΡΠΎΠΌ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΠΉ. ΠΠΠ₯Π β ΡΡΠΎ Π±ΠΎΠ»ΡΡΠ΅ ΠΌΠ°ΡΠΊΠ΅ΡΠΈΠ½Π³ΠΎΠ²Π°Ρ ΡΡΡΡΠ°, ΡΠ΅ΠΌ Ρ ΠΎΡΠΎΡΠ΅Π΅ ΡΡΠ°Π²Π½Π΅Π½ΠΈΠ΅. MSA ΠΈ SOA Π½Π΅ Π·Π°Π²ΡΠ·Π°Π½Ρ Π½Π° ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ ΠΈ Π½Π΅ ΠΎΠ³ΡΠ°Π½ΠΈΡΠΈΠ²Π°ΡΡ Π² ΠΈΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ. ΠΠΎΠ»Π΅Π΅ ΡΠΎΠ³ΠΎ, ΠΎΠ±Π° ΠΏΠΎΠ΄Ρ ΠΎΠ΄Π° ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ²ΠΌΠ΅ΡΠ°ΡΡ Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠΉ Π΄Π»Ρ Π±ΠΈΠ·Π½Π΅ΡΠ°.
π19π₯10β€1β1
ΠΠ°ΠΊΠΈΠ΅ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ Π±ΡΠ΄ΡΡ Π±ΡΠΎΡΠ΅Π½Ρ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠΌ main?
Anonymous Quiz
38%
IndexOutOfBoundsException
29%
ΠΠΎΠ΄ Π½Π΅ ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΡΠ΅ΡΡΡ
21%
NullPointerException
12%
ClassCastException
π16π6π2
ΠΠ°ΠΊΠΈΠ΅ Π΅ΡΡΡ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΡ Ρ ΠΌΠΈΠΊΡΠΎΡΠ΅ΡΠ²ΠΈΡΠΎΠ²? ΠΠ°Π·ΠΎΠ²ΠΈΡΠ΅ Π΄ΠΎΡΡΠΎΠΈΠ½ΡΡΠ²Π° ΠΈ Π½Π΅Π΄ΠΎΡΡΠ°ΡΠΊΠΈ ΠΌΠΈΠΊΡΠΎΡΠ΅ΡΠ²ΠΈΡΠ½ΠΎΠΉ Π°ΡΡ
ΠΈΡΠ΅ΠΊΡΡΡΡ
ΠΠΎΡΡΠΎΠΈΠ½ΡΡΠ²Π°:
β’ ΠΠ΅Π½ΡΡΠ΅ ΠΊΠΎΠ΄Π° Π½Π° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΡΠΉ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ (ΠΌΠΈΠΊΡΠΎΡΠ΅ΡΠ²ΠΈΡ) -> ΠΏΡΠΎΡΠ΅ ΠΈ Π±ΡΡΡΡΠ΅Π΅ ΡΠ°Π·ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡ, ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡ, ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°ΡΡ, ΠΏΠΎΠ½ΠΈΠΌΠ°ΡΡ, Π²ΡΠ±ΡΠΎΡΠΈΡΡ ΠΈ ΠΏΠ΅ΡΠ΅ΠΏΠΈΡΠ°ΡΡ, ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²ΡΠ²Π°ΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΡΡΠΈΡ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΠΉ ΠΈ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΎΠ² (Π² ΡΠΎΠΌ ΡΠΈΡΠ»Π΅ Π½Π° Π½ΠΎΠ²ΡΠ΅)
β’ ΠΠ΅Π½ΡΡΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Π° -> ΠΌΠ΅Π½ΡΡΠ΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌ ΠΈ ΠΊΠΎΠ½ΡΠ»ΠΈΠΊΡΠΎΠ² ΠΏΡΠΈ ΠΌΡΡΠΆΠ΅ ΠΈ ΡΠΎΠ²ΠΌΠ΅ΡΡΠ½ΠΎΠΉ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ΅
β’ ΠΡΠΎΡΠ΅ Π³ΠΎΡΠΈΠ·ΠΎΠ½ΡΠ°Π»ΡΠ½ΠΎ ΠΌΠ°ΡΡΡΠ°Π±ΠΈΡΠΎΠ²Π°ΡΡ
β’ ΠΡΡΡΡΠ΅Π΅ ΠΈ ΠΏΡΠΎΡΠ΅ ΠΊΠ°ΠΊ Π²Π½Π΅Π΄ΡΡΡΡ, ΡΠ°ΠΊ ΠΈ ΠΎΡΠΊΠ°ΡΡΠ²Π°ΡΡ
ΠΠ΅Π΄ΠΎΡΡΠ°ΡΠΊΠΈ:
β’ Π£Π²Π΅Π»ΠΈΡΠ΅Π½ΠΈΠ΅ Π½Π°ΠΊΠ»Π°Π΄Π½ΡΡ ΡΠ°ΡΡ ΠΎΠ΄ΠΎΠ² Π½Π° Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ ΠΌΠ΅ΠΆΠ΄Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΡΠΌΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ°ΠΌΠΈ (ΠΌΠΈΠΊΡΠΎΡΠ΅ΡΠ²ΠΈΡΠ°ΠΌΠΈ) β ΠΎΠ±ΠΌΠ΅Π½ ΠΌΠ΅ΠΆΠ΄Ρ Π½ΠΈΠΌΠΈ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ ΠΏΠΎ ΡΠ΅ΡΠΈ ΡΠΎ Π²ΡΠ΅ΠΌ Π²ΡΡΠ΅ΠΊΠ°ΡΡΠΈΠΌ (ΡΠ΅ΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΡ/Π΄Π΅ΡΠ΅ΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΡ, Π·Π°Π΄Π΅ΡΠΆΠΊΠΈ ΠΈ Ρ.Π΄.)
β’ ΠΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΡΠ²Π»Π΅Π½ΠΈΠ΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ ΡΠ°ΡΠΏΡΠ΅Π΄Π΅Π»ΡΠ½Π½ΡΡ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΉ
β’ Π£Π²Π΅Π»ΠΈΡΠ΅Π½ΠΈΠ΅ ΠΎΠ±ΡΡΠΌΠΎΠ² Π»ΠΎΠ³ΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΈ ΠΌΠΎΠ½ΠΈΡΠΎΡΠΈΠ½Π³Π°
β’ ΠΡΠ±Π»ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΊΠΎΠ΄Π°
β’ Π‘Π»ΠΎΠΆΠ½Π΅Π΅ Π΄Π΅Π±Π°ΠΆΠΈΡΡ ΠΈ ΠΎΡΠ»Π°Π²Π»ΠΈΠ²Π°ΡΡ ΠΎΡΠΈΠ±ΠΊΠΈ
β’ ΠΡΠΆΠ½ΠΎ Π±ΡΡΡ Π³ΠΎΡΠΎΠ²ΡΠΌ ΠΈ ΡΠΏΠΎΡΠΎΠ±Π½ΡΠΌ ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠΈΡΡ ΡΠ°Π±ΠΎΡΠ°ΡΡ, ΠΊΠΎΠ³Π΄Π° Π»ΡΠ±ΠΎΠΉ ΠΈΠ· ΠΌΠΈΠΊΡΠΎΡΠ΅ΡΠ²ΠΈΡΠΎΠ² ΠΎΡΠ²Π°Π»ΠΈΡΡΡ
β’ ΠΠ±ΡΠ°Ρ ΡΠ»ΠΎΠΆΠ½ΠΎΡΡΡ ΡΠ°ΡΡΡΡ Ρ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎΠΌ ΠΌΠΈΠΊΡΠΎΡΠ΅ΡΠ²ΠΈΡΠΎΠ²
ΠΠΎΡΡΠΎΠΈΠ½ΡΡΠ²Π°:
β’ ΠΠ΅Π½ΡΡΠ΅ ΠΊΠΎΠ΄Π° Π½Π° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΡΠΉ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ (ΠΌΠΈΠΊΡΠΎΡΠ΅ΡΠ²ΠΈΡ) -> ΠΏΡΠΎΡΠ΅ ΠΈ Π±ΡΡΡΡΠ΅Π΅ ΡΠ°Π·ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡ, ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡ, ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°ΡΡ, ΠΏΠΎΠ½ΠΈΠΌΠ°ΡΡ, Π²ΡΠ±ΡΠΎΡΠΈΡΡ ΠΈ ΠΏΠ΅ΡΠ΅ΠΏΠΈΡΠ°ΡΡ, ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²ΡΠ²Π°ΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΡΡΠΈΡ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΠΉ ΠΈ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΎΠ² (Π² ΡΠΎΠΌ ΡΠΈΡΠ»Π΅ Π½Π° Π½ΠΎΠ²ΡΠ΅)
β’ ΠΠ΅Π½ΡΡΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Π° -> ΠΌΠ΅Π½ΡΡΠ΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌ ΠΈ ΠΊΠΎΠ½ΡΠ»ΠΈΠΊΡΠΎΠ² ΠΏΡΠΈ ΠΌΡΡΠΆΠ΅ ΠΈ ΡΠΎΠ²ΠΌΠ΅ΡΡΠ½ΠΎΠΉ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ΅
β’ ΠΡΠΎΡΠ΅ Π³ΠΎΡΠΈΠ·ΠΎΠ½ΡΠ°Π»ΡΠ½ΠΎ ΠΌΠ°ΡΡΡΠ°Π±ΠΈΡΠΎΠ²Π°ΡΡ
β’ ΠΡΡΡΡΠ΅Π΅ ΠΈ ΠΏΡΠΎΡΠ΅ ΠΊΠ°ΠΊ Π²Π½Π΅Π΄ΡΡΡΡ, ΡΠ°ΠΊ ΠΈ ΠΎΡΠΊΠ°ΡΡΠ²Π°ΡΡ
ΠΠ΅Π΄ΠΎΡΡΠ°ΡΠΊΠΈ:
β’ Π£Π²Π΅Π»ΠΈΡΠ΅Π½ΠΈΠ΅ Π½Π°ΠΊΠ»Π°Π΄Π½ΡΡ ΡΠ°ΡΡ ΠΎΠ΄ΠΎΠ² Π½Π° Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ ΠΌΠ΅ΠΆΠ΄Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΡΠΌΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ°ΠΌΠΈ (ΠΌΠΈΠΊΡΠΎΡΠ΅ΡΠ²ΠΈΡΠ°ΠΌΠΈ) β ΠΎΠ±ΠΌΠ΅Π½ ΠΌΠ΅ΠΆΠ΄Ρ Π½ΠΈΠΌΠΈ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ ΠΏΠΎ ΡΠ΅ΡΠΈ ΡΠΎ Π²ΡΠ΅ΠΌ Π²ΡΡΠ΅ΠΊΠ°ΡΡΠΈΠΌ (ΡΠ΅ΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΡ/Π΄Π΅ΡΠ΅ΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΡ, Π·Π°Π΄Π΅ΡΠΆΠΊΠΈ ΠΈ Ρ.Π΄.)
β’ ΠΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΡΠ²Π»Π΅Π½ΠΈΠ΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ ΡΠ°ΡΠΏΡΠ΅Π΄Π΅Π»ΡΠ½Π½ΡΡ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΉ
β’ Π£Π²Π΅Π»ΠΈΡΠ΅Π½ΠΈΠ΅ ΠΎΠ±ΡΡΠΌΠΎΠ² Π»ΠΎΠ³ΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΈ ΠΌΠΎΠ½ΠΈΡΠΎΡΠΈΠ½Π³Π°
β’ ΠΡΠ±Π»ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΊΠΎΠ΄Π°
β’ Π‘Π»ΠΎΠΆΠ½Π΅Π΅ Π΄Π΅Π±Π°ΠΆΠΈΡΡ ΠΈ ΠΎΡΠ»Π°Π²Π»ΠΈΠ²Π°ΡΡ ΠΎΡΠΈΠ±ΠΊΠΈ
β’ ΠΡΠΆΠ½ΠΎ Π±ΡΡΡ Π³ΠΎΡΠΎΠ²ΡΠΌ ΠΈ ΡΠΏΠΎΡΠΎΠ±Π½ΡΠΌ ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠΈΡΡ ΡΠ°Π±ΠΎΡΠ°ΡΡ, ΠΊΠΎΠ³Π΄Π° Π»ΡΠ±ΠΎΠΉ ΠΈΠ· ΠΌΠΈΠΊΡΠΎΡΠ΅ΡΠ²ΠΈΡΠΎΠ² ΠΎΡΠ²Π°Π»ΠΈΡΡΡ
β’ ΠΠ±ΡΠ°Ρ ΡΠ»ΠΎΠΆΠ½ΠΎΡΡΡ ΡΠ°ΡΡΡΡ Ρ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎΠΌ ΠΌΠΈΠΊΡΠΎΡΠ΅ΡΠ²ΠΈΡΠΎΠ²
π38π€2
Π§ΡΠΎ Π²ΡΠ²Π΅Π΄Π΅Ρ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ ΠΊΠΎΠ΄?
Anonymous Quiz
17%
Exception
22%
ArithmeticExceptionFinally
29%
ΠΠΎΠ΄ Π½Π΅ ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΡΠ΅ΡΡΡ
31%
ExceptionFinally
π12π8π3π2