เจฎเฉเจ เจคเฉเจนเจพเจจเฉเฉฐ เจเฉฑเจ เจตเจฟเจคเจฐเจฟเจค เจธเจฟเจธเจเจฎ เจฆเฉ เจธเฉฐเจฐเจเจจเจพ เจฆเฉ เจจเจพเจฒ เจเฉฐเจฎ เจเจฐเจจ เจฒเจ เจเฉฑเจ เจฆเจฟเจฒเจเจธเจช เจตเจฟเจงเฉ เจฆเฉฑเจธเจฃเจพ เจเจพเจนเจพเจเจเจพเฅค เจธเฉฐเจฐเจเจจเจพ เจจเฉเฉฐ เจธเฉเจฐเฉฑเจเจฟเจ เจค เจเจฟเจธเจฎเจพเจ เจฆเฉ เจตเจฐเจคเฉเจ เจเจฐเจเฉ เจเฉฑเจ เจเฉฐเจชเจพเจเจฒ เจเฉเจคเฉ เจญเจพเจธเจผเจพ (เจธเจเจพเจฒเจพ) เจตเจฟเฉฑเจ เจธเจฟเฉฑเจงเจพ เจชเฉเจฐเจธเจคเฉเจค เจเฉเจคเจพ เจเจพเจเจฆเจพ เจนเฉเฅค เจเจน เจชเฉเจธเจ เจ เจเจฟเจนเฉ เจธเฉฐเจฐเจเจจเจพ เจฆเฉ เจเฉฑเจ เจเจฆเจพเจนเจฐเจฃ เจชเฉเจฐเจฆเจพเจจ เจเจฐเจฆเฉ เจนเฉ เจ เจคเฉ เจธเจฎเฉเฉฑเจเฉ เจตเจฟเจเจพเจธ เจชเฉเจฐเจเจฟเจฐเจฟเจ เจตเจฟเฉฑเจ เจเฉฑเจ เจธเฉฐเจเจฒเจฟเจค เจธเฉฐเจฐเจเจจเจพ เจจเฉเฉฐ เจฒเจพเจเฉ เจเจฐเจจ เจฆเฉ เจตเฉฑเจ-เจตเฉฑเจ เจชเจนเจฟเจฒเฉเจเจ เจฆเฉ เจเจฐเจเจพ เจเจฐเจฆเฉ เจนเฉเฅค
เจเจพเจฃ เจชเจเจพเจฃ
เจเฉฑเจ เจญเจฐเฉเจธเฉเจฏเฉเจ เจตเจฟเจคเจฐเจฟเจค เจธเจฟเจธเจเจฎ เจฌเจฃเจพเจเจฃ เจฆเจพ เจฎเจคเจฒเจฌ เจนเฉ เจเจฟ เจธเจพเจฐเฉ เจจเฉเจก เจธเจนเฉ เจธเฉฐเจฐเจเจจเจพ เจฆเฉ เจตเจฐเจคเฉเจ เจเจฐเจฆเฉ เจนเจจ, เจฆเฉเจเฉ เจจเฉเจกเจพเจ เจจเจพเจฒ เจธเจฎเจเจพเจฒเฉเฅค DevOps เจคเจเจจเจพเจฒเฉเจเฉเจเจ (เจเฉเจฐเจพเจซเจพเจฐเจฎ, เจเจตเจพเจฌเจฆเฉเจน เจเจพเจ เจ เจเจฟเจนเจพ เจเฉเจ) เจเจฎ เจคเฉเจฐ 'เจคเฉ เจเจชเจฃเฉ เจเจช เจธเฉฐเจฐเจเจจเจพ เจซเจพเจเจฒเจพเจ (เจ เจเจธเจฐ เจนเจฐเฉเจ เจจเฉเจก เจฒเจ เจเจพเจธ) เจฌเจฃเจพเจเจฃ เจฒเจ เจตเจฐเจคเฉเจเจ เจเจพเจเจฆเฉเจเจ เจนเจจเฅค เจ เจธเฉเจ เจเจน เจตเฉ เจฏเจเฉเจจเฉ เจฌเจฃเจพเจเจฃเจพ เจเจพเจนเจพเจเจเฉ เจเจฟ เจธเจพเจฐเฉ เจธเฉฐเจเจพเจฐ เจจเฉเจก เจเฉฑเจเฉ เจเจฟเจนเฉ เจชเฉเจฐเฉเจเฉเจเฉเจฒ เจฆเฉ เจตเจฐเจคเฉเจ เจเจฐ เจฐเจนเฉ เจนเจจ (เจเฉฑเจเฉ เจธเฉฐเจธเจเจฐเจฃ เจธเจฎเฉเจค)เฅค เจจเจนเฉเจ เจคเจพเจ, เจธเจพเจกเฉ เจตเจฟเจคเจฐเจฟเจค เจธเจฟเจธเจเจฎ เจตเจฟเฉฑเจ เจ เจธเฉฐเจเจคเจคเจพ เจฌเจฃเจพเจ เจเจพเจตเฉเจเฉเฅค JVM เจธเฉฐเจธเจพเจฐ เจตเจฟเฉฑเจ, เจเจธ เจฒเฉเฉ เจฆเจพ เจเฉฑเจ เจจเจคเฉเจเจพ เจเจน เจนเฉ เจเจฟ เจชเฉเจฐเฉเจเฉเจเฉเจฒ เจธเฉเจจเฉเจนเจฟเจเจ เจตเจพเจฒเฉ เจฒเจพเจเจฌเฉเจฐเฉเจฐเฉ เจฆเจพ เจเจนเฉ เจธเฉฐเจธเจเจฐเจฃ เจนเจฐ เจฅเจพเจ เจตเจฐเจคเจฟเจ เจเจพเจฃเจพ เจเจพเจนเฉเจฆเจพ เจนเฉเฅค
เจเฉฑเจ เจตเจฟเจคเจฐเจฟเจค เจธเจฟเจธเจเจฎ เจฆเฉ เจเจพเจเจ เจเจฐเจจ เจฌเจพเจฐเฉ เจเฉ? เจฌเฉเจธเจผเฉฑเจ, เจ เจธเฉเจ เจเจน เจฎเฉฐเจจเจฆเฉ เจนเจพเจ เจเจฟ เจเจเฉเจเจฐเจฃ เจเฉเจธเจเจฟเฉฐเจ 'เจคเฉ เจ เฉฑเจเฉ เจตเจงเจฃ เจคเฉเจ เจชเจนเจฟเจฒเจพเจ เจธเจพเจฐเฉ เจนเจฟเฉฑเจธเจฟเจเจ เจฆเฉ เจฏเฉเจจเจฟเจ เจเฉเจธเจ เจนเฉเฉฐเจฆเฉ เจนเจจเฅค (เจฐเฉฐเจจเจเจพเจเจฎ เจฒเจ เจเฉเจธเจ เจฆเฉ เจจเจคเฉเจเจฟเจเจ เจจเฉเฉฐ เจเจเจธเจเจฐเจพเจชเฉเจฒเฉเจ เจเจฐเจจ เจฒเจ, เจธเจพเจจเฉเฉฐ เจเฉเจธเจเจฟเฉฐเจ เจชเฉเจพเจ เจ เจคเฉ เจฐเจจเจเจพเจเจฎ 'เจคเฉ เจฒเจพเจเจฌเฉเจฐเฉเจฐเฉเจเจ เจฆเจพ เจเฉฑเจ เจธเจฎเจพเจจ เจธเฉเฉฑเจ เจตเฉ เจชเฉเจฐเจฆเจพเจจ เจเจฐเจจเจพ เจเจพเจนเฉเจฆเจพ เจนเฉเฅค)
เจเจเฉเจเจฐเจฃ เจเฉเจธเจเจพเจ เจจเจพเจฒ เจเฉฐเจฎ เจเจฐเจฆเฉ เจธเจฎเฉเจ, เจธเจพเจฐเฉ เจจเฉเจกเจพเจ 'เจคเฉ เจนเจฐ เจเจเฉเจนเจพ เจเฉฑเจเฉ เจเจฒเจพเจธเจชเจพเจฅ เจฆเฉ เจตเจฐเจคเฉเจ เจเจฐเจจเจพ เจ เจเจธเจฐ เจเจธเจพเจจ เจนเฉเฉฐเจฆเจพ เจนเฉเฅค เจธเจพเจจเฉเฉฐ เจธเจฟเจฐเจซเจผ เจเจน เจฏเจเฉเจจเฉ เจฌเจฃเจพเจเจฃเจพ เจนเฉ เจเจฟ เจฐเจจเจเจพเจเจฎ 'เจคเฉ เจเฉฑเจเฉ เจเจฒเจพเจธเจชเจพเจฅ เจฆเฉ เจตเจฐเจคเฉเจ เจเฉเจคเฉ เจเจพเจตเฉเฅค (เจนเจพเจฒเจพเจเจเจฟ เจตเฉฑเจ-เจตเฉฑเจ เจเจฒเจพเจธเจชเจพเจฅเจพเจ เจจเจพเจฒ เจตเฉฑเจ-เจตเฉฑเจ เจจเฉเจกเจพเจ เจจเฉเฉฐ เจเจฒเจพเจเจฃเจพ เจชเฉเจฐเฉ เจคเจฐเฉเจนเจพเจ เจธเฉฐเจญเจต เจนเฉ, เจเจน เจธเจฎเฉเฉฑเจเฉ เจธเฉฐเจฐเจเจจเจพ เจตเจฟเฉฑเจ เจเฉเฉฐเจเจฒเจฆเจพเจฐเจคเจพ เจ เจคเฉ เจคเฉเจจเจพเจคเฉ เจ เจคเฉ เจเจเฉเจเจฐเจฃ เจเฉเจธเจเจพเจ เจตเจฟเฉฑเจ เจฎเฉเจธเจผเจเจฒเจพเจ เจจเฉเฉฐ เจเฉเฉเจฆเจพ เจนเฉเฅค) เจเจธ เจชเฉเจธเจ เจฆเฉ เจเจฆเฉเจธเจผเจพเจ เจฒเจ, เจ เจธเฉเจ เจเจน เจฎเฉฐเจจ เจฐเจนเฉ เจนเจพเจ เจเจฟ เจธเจพเจฐเฉ เจจเฉเจก เจเฉฑเจเฉ เจเจฒเจพเจธเจชเจพเจฅ เจฆเฉ เจตเจฐเจคเฉเจ เจเจฐเจจเจเฉเฅค
เจเจชเจฒเฉเจเฉเจธเจผเจจ เจฆเฉ เจจเจพเจฒ เจธเฉฐเจฐเจเจจเจพ เจตเจฟเจเจธเจฟเจค เจนเฉเฉฐเจฆเฉ เจนเฉเฅค เจ
เจธเฉเจ เจชเฉเจฐเฉเจเจฐเจพเจฎ เจฆเฉ เจตเจฟเจเจพเจธ เจฆเฉ เจตเฉฑเจ-เจตเฉฑเจ เจชเฉเจพเจตเจพเจ เจฆเฉ เจชเจเจพเจฃ เจเจฐเจจ เจฒเจ เจธเฉฐเจธเจเจฐเจฃเจพเจ เจฆเฉ เจตเจฐเจคเฉเจ เจเจฐเจฆเฉ เจนเจพเจเฅค เจธเฉฐเจฐเจเจจเจพ เจฆเฉ เจตเฉฑเจ-เจตเฉฑเจ เจธเฉฐเจธเจเจฐเจฃเจพเจ เจฆเฉ เจชเจเจพเจฃ เจเจฐเจจเจพ เจตเฉ เจคเจฐเจเจชเฉเจฐเจจ เจเจพเจชเจฆเจพ เจนเฉเฅค เจ
เจคเฉ เจธเฉฐเจฐเจเจจเจพ เจจเฉเฉฐ เจเจชเจฃเฉ เจเจช เจจเฉเฉฐ เจธเฉฐเจธเจเจฐเจฃ เจจเจฟเจฏเฉฐเจคเจฐเจฃ เจธเจฟเจธเจเจฎ เจตเจฟเฉฑเจ เจฐเฉฑเจเฉ. เจเฉเจเจฐ เจเจคเจชเจพเจฆเจจ เจตเจฟเฉฑเจ เจธเจฟเจฐเจซเจผ เจเฉฑเจ เจธเฉฐเจฐเจเจจเจพ เจนเฉ, เจคเจพเจ เจ
เจธเฉเจ เจธเจฟเจฐเจซเจผ เจตเจฐเจเจจ เจจเฉฐเจฌเจฐ เจฆเฉ เจตเจฐเจคเฉเจ เจเจฐ เจธเจเจฆเฉ เจนเจพเจเฅค เจเฉ เจ
เจธเฉเจ เจเจคเจชเจพเจฆเจจ เจฆเฉ เจเจ เจเจฆเจพเจนเจฐเจฃเจพเจ เจฆเฉ เจตเจฐเจคเฉเจ เจเจฐเจฆเฉ เจนเจพเจ, เจคเจพเจ เจธเจพเจจเฉเฉฐ เจเจเจเจ เจฆเฉ เจฒเฉเฉ เจชเจตเฉเจเฉ
เจธเฉฐเจฐเจเจจเจพ เจธเจผเจพเจเจพเจตเจพเจ เจ
เจคเฉ เจธเฉฐเจธเจเจฐเจฃ เจคเฉเจ เจเจฒเจพเจตเจพ เจเฉฑเจ เจตเจพเจงเฉ เจฒเฉเจฌเจฒ (เจเจฆเจพเจนเจฐเจจ เจฒเจ, เจธเจผเจพเจเจพ เจฆเจพ เจจเจพเจฎ)เฅค เจเจธ เจคเจฐเฉเจนเจพเจ เจ
เจธเฉเจ เจธเจนเฉ เจธเฉฐเจฐเจเจจเจพ เจจเฉเฉฐ เจธเจชเจธเจผเจ เจฐเฉเจช เจตเจฟเฉฑเจ เจชเจเจพเจฃ เจธเจเจฆเฉ เจนเจพเจเฅค เจนเจฐเฉเจ เจธเฉฐเจฐเจเจจเจพ เจชเจเจพเจฃเจเจฐเจคเจพ เจตเจฟเจฒเฉฑเจเจฃ เจคเฉเจฐ 'เจคเฉ เจตเจฟเจคเจฐเจฟเจค เจจเฉเจกเจพเจ, เจชเฉเจฐเจเจพเจ, เจฌเจพเจนเจฐเฉ เจธเจฐเฉเจคเจพเจ, เจ
เจคเฉ เจฒเจพเจเจฌเฉเจฐเฉเจฐเฉ เจธเฉฐเจธเจเจฐเจฃเจพเจ เจฆเฉ เจเฉฑเจ เจเจพเจธ เจธเฉเจฎเฉเจฒ เจจเจพเจฒ เจฎเฉเจฒ เจเจพเจเจฆเจพ เจนเฉเฅค เจเจธ เจชเฉเจธเจ เจฆเฉ เจเจฆเฉเจธเจผเจพเจ เจฒเจ เจ
เจธเฉเจ เจเจน เจฎเฉฐเจจเจพเจเจเฉ เจเจฟ เจเฉฑเจฅเฉ เจธเจฟเจฐเจซ เจเฉฑเจ เจธเจผเจพเจเจพ เจนเฉ เจ
เจคเฉ เจ
เจธเฉเจ เจเฉฑเจ เจฌเจฟเฉฐเจฆเฉ (1.2.3) เจฆเฉเจเจฐเจพ เจตเฉฑเจ เจเฉเจคเฉ เจคเจฟเฉฐเจจ เจจเฉฐเจฌเจฐเจพเจ เจฆเฉ เจตเจฐเจคเฉเจ เจเจฐเจเฉ เจเจฎ เจคเจฐเฉเจเฉ เจจเจพเจฒ เจธเฉฐเจฐเจเจจเจพ เจฆเฉ เจชเจเจพเจฃ เจเจฐ เจธเจเจฆเฉ เจนเจพเจเฅค
เจเจงเฉเจจเจฟเจ เจตเจพเจคเจพเจตเจฐเจฃ เจตเจฟเฉฑเจ, เจธเฉฐเจฐเจเจจเจพ เจซเจพเจเจฒเจพเจ เจฌเจนเฉเจค เจเฉฑเจ เจนเฉ เจนเฉฑเจฅเฉเจ เจฌเจฃเจพเจเจเจ เจเจพเจเจฆเฉเจเจ เจนเจจเฅค เจ
เจเจธเจฐ เจเจน เจคเฉเจจเจพเจคเฉ เจฆเฉ เจฆเฉเจฐเจพเจจ เจคเจฟเจเจฐ เจเฉเจคเฉ เจเจพเจเจฆเฉ เจนเจจ เจ
เจคเฉ เจนเฉเจฃ เจเจนเจจเจพเจ เจจเฉเฉฐ เจเฉเจนเจฟเจ เจจเจนเฉเจ เจเจพเจเจฆเจพ เจนเฉ (เจคเจพเจ เจเจฟ
เจเจธ เจชเฉเจธเจ เจตเจฟเฉฑเจ เจ เจธเฉเจ เจเฉฑเจ เจธเฉฐเจเจฒเจฟเจค เจเจฐเจเฉเจซเฉเจเจ เจฆเฉ เจ เฉฐเจฆเจฐ เจเฉฑเจ เจธเฉฐเจฐเจเจจเจพ เจจเฉเฉฐ เจฆเจฐเจธเจพเจเจฃ เจฆเฉ เจตเจฟเจเจพเจฐ เจฆเฉ เจชเฉเจเฉเจฒ เจเจฐเจพเจเจเฉ.
เจธเฉฐเจเจฒเจฟเจค เจธเฉฐเจฐเจเจจเจพ
เจเจน เจญเจพเจ เจเฉฑเจ เจธเจฅเจฟเจฐ เจธเฉฐเจเจฒเจฟเจค เจธเฉฐเจฐเจเจจเจพ เจฆเฉ เจเจฆเจพเจนเจฐเจจ เจฆเจฟเฉฐเจฆเจพ เจนเฉเฅค เจฆเฉ เจธเจงเจพเจฐเจจ เจธเฉเจตเจพเจตเจพเจ เจฒเจพเจเฉ เจเฉเจคเฉเจเจ เจเจเจเจ เจนเจจ - เจเจเฉ เจธเจฐเจตเจฟเจธ เจ เจคเฉ เจเจเฉ เจธเจฐเจตเจฟเจธ เจเจฒเจพเจเฉฐเจเฅค เจเจนเจจเจพเจ เจฆเฉ เจธเฉเจตเจพเจตเจพเจ เจฆเฉ เจ เจงเจพเจฐ เจคเฉ, เจฆเฉ เจธเจฟเจธเจเจฎ เจตเจฟเจเจฒเจช เจเจเฉฑเจ เฉ เจเฉเจคเฉ เจเจ เจนเจจเฅค เจเฉฑเจ เจตเจฟเจเจฒเจช เจตเจฟเฉฑเจ, เจฆเฉเจตเฉเจ เจธเฉเจตเจพเจตเจพเจ เจเฉฑเจเฉ เจจเฉเจก 'เจคเฉ เจธเจฅเจฟเจค เจนเจจ, เจฆเฉเจเฉ เจตเจฟเจเจฒเจช เจตเจฟเฉฑเจ - เจตเฉฑเจ-เจตเฉฑเจ เจจเฉเจกเจพเจ 'เจคเฉเฅค
เจเจฎ เจคเฉเจฐ 'เจคเฉ เจเฉฑเจ เจตเฉฐเจกเฉ เจธเจฟเจธเจเจฎ เจตเจฟเฉฑเจ เจเจ เจจเฉเจก เจนเฉเฉฐเจฆเฉ เจนเจจเฅค เจคเฉเจธเฉเจ เจเจฟเจธเฉ เจเจฟเจธเจฎ เจฆเฉ เจฎเฉเฉฑเจฒเจพเจ เจฆเฉ เจตเจฐเจคเฉเจ เจเจฐเจเฉ เจจเฉเจกเจพเจ เจฆเฉ เจชเจเจพเจฃ เจเจฐ เจธเจเจฆเฉ เจนเฉ NodeId
:
sealed trait NodeId
case object Backend extends NodeId
case object Frontend extends NodeId
เจ
case class NodeId(hostName: String)
เจเจพเจ เจตเฉ
object Singleton
type NodeId = Singleton.type
เจจเฉเจก เจตเฉฑเจ-เจตเฉฑเจ เจญเฉเจฎเจฟเจเจพเจตเจพเจ เจจเจฟเจญเจพเจเจเจฆเฉ เจนเจจ, เจเจน เจธเฉเจตเจพเจตเจพเจ เจเจฒเจพเจเจเจฆเฉ เจนเจจ เจ เจคเฉ เจเจนเจจเจพเจ เจตเจฟเจเจเจพเจฐ TCP/HTTP เจเจจเฉเจเจธเจผเจจ เจธเจฅเจพเจชเจค เจเฉเจคเฉ เจเจพ เจธเจเจฆเฉ เจนเจจเฅค
เจเฉฑเจ TCP เจเฉเจจเฉเจเจธเจผเจจ เจฆเจพ เจตเจฐเจฃเจจ เจเจฐเจจ เจฒเจ เจธเจพเจจเฉเฉฐ เจเฉฑเจเฉ-เจเฉฑเจ เจเฉฑเจ เจชเฉเจฐเจ เจจเฉฐเจฌเจฐ เจฆเฉ เจฒเฉเฉ เจนเฉเฉฐเจฆเฉ เจนเฉเฅค เจ เจธเฉเจ เจเจธ เจชเฉเจฐเฉเจเฉเจเฉเจฒ เจจเฉเฉฐ เจตเฉ เจฆเจฐเจธเจพเจเจฃเจพ เจเจพเจนเจพเจเจเฉ เจเฉ เจเจธ เจชเฉเจฐเจ 'เจคเฉ เจธเจฎเจฐเจฅเจฟเจค เจนเฉ เจเจน เจฏเจเฉเจจเฉ เจฌเจฃเจพเจเจฃ เจฒเจ เจเจฟ เจเจฒเจพเจเฉฐเจ เจ เจคเฉ เจธเจฐเจตเจฐ เจฆเฉเจตเฉเจ เจเฉฑเจเฉ เจชเฉเจฐเฉเจเฉเจเฉเจฒ เจฆเฉ เจตเจฐเจคเฉเจ เจเจฐ เจฐเจนเฉ เจนเจจเฅค เจ เจธเฉเจ เจนเฉเจ เจพเจ เจฆเจฟเฉฑเจคเฉ เจเจฒเจพเจธ เจฆเฉ เจตเจฐเจคเฉเจ เจเจฐเจเฉ เจเฉเจจเฉเจเจธเจผเจจ เจฆเจพ เจตเจฐเจฃเจจ เจเจฐเจพเจเจเฉ:
case class TcpEndPoint[Protocol](node: NodeId, port: Port[Protocol])
เจเจฟเฉฑเจฅเฉ Port
- เจธเจฟเจฐเจซเจผ เจเฉฑเจ เจชเฉเจฐเจจ เจ
เฉฐเจ Int
เจธเจตเฉเจเจพเจฐเจฏเฉเจ เจฎเฉเฉฑเจฒเจพเจ เจฆเฉ เจฐเฉเจเจ เจจเฉเฉฐ เจฆเจฐเจธเจพเจเจเจฆเจพ เจนเฉ:
type PortNumber = Refined[Int, Closed[_0, W.`65535`.T]]
เจธเจผเฉเฉฑเจง เจเจฟเจธเจฎ
เจฒเจพเจเจฌเฉเจฐเฉเจฐเฉ เจตเฉเจเฉ
HTTP (REST) โโเจชเฉเจฐเฉเจเฉเจเฉเจฒ เจฒเจ, เจชเฉเจฐเจ เจจเฉฐเจฌเจฐ เจคเฉเจ เจเจฒเจพเจตเจพ, เจธเจพเจจเฉเฉฐ เจธเฉเจตเจพ เจฒเจ เจฎเจพเจฐเจ เจฆเฉ เจตเฉ เจฒเฉเฉ เจนเฉ เจธเจเจฆเฉ เจนเฉ:
type UrlPathPrefix = Refined[String, MatchesRegex[W.`"[a-zA-Z_0-9/]*"`.T]]
case class PortWithPrefix[Protocol](portNumber: PortNumber, pathPrefix: UrlPathPrefix)
เจซเฉเจเจเจฎ เจเจฟเจธเจฎเจพเจ
เจเฉฐเจชเจพเจเจฒ เจธเจฎเฉเจ เจชเฉเจฐเฉเจเฉเจเฉเจฒ เจฆเฉ เจชเจเจพเจฃ เจเจฐเจจ เจฒเจ, เจ เจธเฉเจ เจเฉฑเจ เจเจฟเจธเจฎ เจฆเฉ เจชเฉเจฐเจพเจฎเฉเจเจฐ เจฆเฉ เจตเจฐเจคเฉเจ เจเจฐเจฆเฉ เจนเจพเจ เจเฉ เจเจฒเจพเจธ เจฆเฉ เจ เฉฐเจฆเจฐ เจจเจนเฉเจ เจตเจฐเจคเจฟเจ เจเจพเจเจฆเจพ เจนเฉเฅค เจเจน เจซเฉเจธเจฒเจพ เจเจธ เจคเฉฑเจฅ เจฆเฉ เจเจพเจฐเจจ เจนเฉ เจเจฟ เจ เจธเฉเจ เจฐเจจเจเจพเจเจฎ 'เจคเฉ เจเฉฑเจ เจชเฉเจฐเฉเจเฉเจเฉเจฒ เจเจฆเจพเจนเจฐเจฃ เจฆเฉ เจตเจฐเจคเฉเจ เจจเจนเฉเจ เจเจฐเจฆเฉ, เจชเจฐ เจ เจธเฉเจ เจเฉฐเจชเจพเจเจฒเจฐ เจจเฉเฉฐ เจชเฉเจฐเฉเจเฉเจเฉเจฒ เจ เจจเฉเจเฉเจฒเจคเจพ เจฆเฉ เจเจพเจเจ เจเจฐเจจเจพ เจเจพเจนเจพเจเจเฉเฅค เจชเฉเจฐเฉเจเฉเจเฉเจฒ เจจเฉเฉฐ เจจเจฟเจธเจผเจเจฟเจค เจเจฐเจเฉ, เจ เจธเฉเจ เจเฉฑเจ เจจเจฟเจฐเจญเจฐเจคเจพ เจฆเฉ เจคเฉเจฐ 'เจคเฉ เจ เจฃเจเจเจฟเจค เจธเฉเจตเจพ เจจเฉเฉฐ เจชเจพเจธ เจเจฐเจจ เจฆเฉ เจฏเฉเจ เจจเจนเฉเจ เจนเฉเจตเจพเจเจเฉเฅค
เจเฉฑเจ เจเจฎ เจชเฉเจฐเฉเจเฉเจเฉเจฒ Json เจธเฉเจฐเฉเจ เจฒเจพเจเจเจผเฉเจธเจผเจจ เจฆเฉ เจจเจพเจฒ REST API เจนเฉ:
sealed trait JsonHttpRestProtocol[RequestMessage, ResponseMessage]
เจเจฟเฉฑเจฅเฉ RequestMessage
- เจฌเฉเจจเจคเฉ เจฆเฉ เจเจฟเจธเจฎ, ResponseMessage
- เจเจตเจพเจฌ เจฆเฉ เจเจฟเจธเจฎ.
เจฌเฉเจธเจผเฉฑเจ, เจ
เจธเฉเจ เจนเฉเจฐ เจชเฉเจฐเฉเจเฉเจเฉเจฒ เจตเจฐเจฃเจจ เจฆเฉ เจตเจฐเจคเฉเจ เจเจฐ เจธเจเจฆเฉ เจนเจพเจ เจเฉ เจธเจพเจจเฉเฉฐ เจฒเฉเฉเฉเจเจฆเฉ เจตเจฐเจฃเจจ เจฆเฉ เจธเจผเฉเฉฑเจงเจคเจพ เจชเฉเจฐเจฆเจพเจจ เจเจฐเจฆเฉ เจนเจจเฅค
เจเจธ เจชเฉเจธเจ เจฆเฉ เจเจฆเฉเจธเจผเจพเจ เจฒเจ, เจ เจธเฉเจ เจชเฉเจฐเฉเจเฉเจเฉเจฒ เจฆเฉ เจเฉฑเจ เจธเจฐเจฒ เจฐเฉเจช เจฆเฉ เจตเจฐเจคเฉเจ เจเจฐเจพเจเจเฉ:
sealed trait SimpleHttpGetRest[RequestMessage, ResponseMessage]
เจเฉฑเจฅเฉ เจฌเฉเจจเจคเฉ url เจจเจพเจฒ เจเฉเฉเฉ เจเจ เจเฉฑเจ เจธเจคเจฐ เจนเฉ เจ เจคเฉ เจเจตเจพเจฌ HTTP เจเจตเจพเจฌ เจฆเฉ เจฎเฉเฉฑเจ เจญเจพเจ เจตเจฟเฉฑเจ เจตเจพเจชเจธ เจเฉเจคเฉ เจเจ เจธเจคเจฐ เจนเฉเฅค
เจธเฉเจตเจพ เจธเฉฐเจฐเจเจจเจพ เจจเฉเฉฐ เจธเฉเจตเจพ เจฆเฉ เจจเจพเจฎ, เจชเฉเจฐเจเจพเจ เจ
เจคเฉ เจจเจฟเจฐเจญเจฐเจคเจพเจตเจพเจ เจฆเฉเจเจฐเจพ เจฆเจฐเจธเจพเจเจ เจเจฟเจ เจนเฉเฅค เจเจนเจจเจพเจ เจคเฉฑเจคเจพเจ เจจเฉเฉฐ เจธเจเฉเจฒเจพ เจตเจฟเฉฑเจ เจเจ เจคเจฐเฉเจเจฟเจเจ เจจเจพเจฒ เจฆเจฐเจธเจพเจเจ เจเจพ เจธเจเจฆเจพ เจนเฉ (เจเจฆเจพเจนเจฐเจจ เจฒเจ, HList
-s, เจฌเฉเจเจเจฃเจฟเจคเจฟเจ เจกเฉเจเจพ เจเจฟเจธเจฎเจพเจ)เฅค เจเจธ เจชเฉเจธเจ เจฆเฉ เจเจฆเฉเจธเจผเจพเจ เจฒเจ, เจ
เจธเฉเจ เจเฉเจ เจชเฉเจเจฐเจจ เจฆเฉ เจตเจฐเจคเฉเจ เจเจฐเจพเจเจเฉ เจ
เจคเฉ เจตเจฐเจคเจฆเฉ เจนเฉเจ เจฎเฉเจกเฉเจเจฒ เจฆเฉ เจจเฉเจฎเจพเจเฉฐเจฆเจเฉ เจเจฐเจพเจเจเฉ trait
'เจ. (เจเฉเจ เจชเฉเจเจฐเจจ เจเจธ เจชเจนเฉเฉฐเจ เจฆเจพ เจเฉฑเจ เจฒเฉเฉเฉเจเจฆเจพ เจคเฉฑเจค เจจเจนเฉเจ เจนเฉเฅค เจเจน เจธเจฟเจฐเจซเจผ เจเฉฑเจ เจธเฉฐเจญเจต เจฒเจพเจเฉ เจเจฐเจจเจพ เจนเฉเฅค)
เจธเฉเจตเจพเจตเจพเจ เจฆเฉ เจตเจฟเจเจเจพเจฐ เจจเจฟเจฐเจญเจฐเจคเจพ เจจเฉเฉฐ เจเจนเจจเจพเจ เจคเจฐเฉเจเจฟเจเจ เจตเจเฉเจ เจฆเจฐเจธเจพเจเจ เจเจพ เจธเจเจฆเจพ เจนเฉ เจเฉ เจชเฉเจฐเจเจพเจ เจจเฉเฉฐ เจตเจพเจชเจธ เจเจฐเจฆเฉ เจนเจจ EndPoint
เจฆเฉ เจนเฉเจฐ เจจเฉเจกเจธ:
type EchoProtocol[A] = SimpleHttpGetRest[A, A]
trait EchoConfig[A] extends ServiceConfig {
def portNumber: PortNumber = 8081
def echoPort: PortWithPrefix[EchoProtocol[A]] = PortWithPrefix[EchoProtocol[A]](portNumber, "echo")
def echoService: HttpSimpleGetEndPoint[NodeId, EchoProtocol[A]] = providedSimpleService(echoPort)
}
เจเฉฑเจ เจเจเฉ เจธเฉเจตเจพ เจฌเจฃเจพเจเจฃ เจฒเจ, เจคเฉเจนเจพเจจเฉเฉฐ เจธเจฟเจฐเจซเจผ เจเฉฑเจ เจชเฉเจฐเจ เจจเฉฐเจฌเจฐ เจ เจคเฉ เจเฉฑเจ เจธเฉฐเจเฉเจค เจฆเฉ เจฒเฉเฉ เจนเฉ เจเจฟ เจชเฉเจฐเจ เจเจเฉ เจชเฉเจฐเฉเจเฉเจเฉเจฒ เจฆเจพ เจธเจฎเจฐเจฅเจจ เจเจฐเจฆเจพ เจนเฉเฅค เจ เจธเฉเจ เจเฉฑเจ เจเจพเจธ เจชเฉเจฐเจ เจจเฉเฉฐ เจจเจฟเจฐเจงเจพเจฐเจฟเจค เจจเจนเฉเจ เจเจฐ เจธเจเจฆเฉ, เจเจฟเจเจเจเจฟ... เจเฉเจฃ เจคเฉเจนเจพเจจเฉเฉฐ เจฌเจฟเจจเจพเจ เจฒเจพเจเฉ เจเฉเจคเฉ เจคเจฐเฉเจเจฟเจเจ เจฆเจพ เจเจฒเจพเจจ เจเจฐเจจ เจฆเฉ เจเจเจพเจเจผเจค เจฆเจฟเฉฐเจฆเฉ เจนเจจ (เจธเจพเจฐ เจตเจฟเจงเฉเจเจ)เฅค เจเจธ เจธเจฅเจฟเจคเฉ เจตเจฟเฉฑเจ, เจเฉฑเจ เจ เฉเจธ เจธเฉฐเจฐเจเจจเจพ เจฌเจฃเจพเจเจเจฆเฉ เจธเจฎเฉเจ, เจเฉฐเจชเจพเจเจฒเจฐ เจจเฉเฉฐ เจธเจพเจจเฉเฉฐ เจเจฌเจธเจเจฐเฉเจเจ เจตเจฟเจงเฉ เจจเฉเฉฐ เจฒเจพเจเฉ เจเจฐเจจ เจ เจคเฉ เจเฉฑเจ เจชเฉเจฐเจ เจจเฉฐเจฌเจฐ เจชเฉเจฐเจฆเจพเจจ เจเจฐเจจ เจฆเฉ เจฒเฉเฉ เจนเฉเจตเฉเจเฉเฅค เจเจฟเจเจเจเจฟ เจ เจธเฉเจ เจตเจฟเจงเฉ เจจเฉเฉฐ เจฒเจพเจเฉ เจเฉเจคเจพ เจนเฉ, เจเฉฑเจ เจเจพเจธ เจธเฉฐเจฐเจเจจเจพ เจฌเจฃเจพเจเจฃ เจตเฉเจฒเฉ, เจ เจธเฉเจ เจเฉฑเจ เจตเฉฑเจเจฐเฉ เจชเฉเจฐเจ เจจเจฟเจฐเจงเจพเจฐเจค เจจเจนเฉเจ เจเจฐ เจธเจเจฆเฉ เจนเจพเจเฅค เจกเจฟเจซเจพเจฒเจ เจฎเฉเฉฑเจฒ เจตเจฐเจคเจฟเจ เจเจพเจตเฉเจเจพเฅค
เจเจฒเจพเจเฉฐเจ เจเฉเจเจซเจฟเจเจฐเฉเจธเจผเจจ เจตเจฟเฉฑเจ เจ เจธเฉเจ เจเจเฉ เจธเฉเจตเจพ 'เจคเฉ เจจเจฟเจฐเจญเจฐเจคเจพ เจเฉเจธเจผเจฟเจค เจเจฐเจฆเฉ เจนเจพเจ:
trait EchoClientConfig[A] {
def testMessage: String = "test"
def pollInterval: FiniteDuration
def echoServiceDependency: HttpSimpleGetEndPoint[_, EchoProtocol[A]]
}
เจจเจฟเจฐเจญเจฐเจคเจพ เจเจธเฉ เจเจฟเจธเจฎ เจฆเฉ เจนเฉ เจเจฟเจตเฉเจ เจจเจฟเจฐเจฏเจพเจค เจธเฉเจตเจพ echoService
. เจเจพเจธ เจคเฉเจฐ 'เจคเฉ, เจเจเฉ เจเจฒเจพเจเฉฐเจ เจตเจฟเฉฑเจ เจธเจพเจจเฉเฉฐ เจเฉฑเจเฉ เจชเฉเจฐเฉเจเฉเจเฉเจฒ เจฆเฉ เจฒเฉเฉ เจนเฉเฉฐเจฆเฉ เจนเฉเฅค เจเจธ เจฒเจ, เจฆเฉ เจธเฉเจตเจพเจตเจพเจ เจจเฉเฉฐ เจเฉเฉเจฆเฉ เจธเจฎเฉเจ, เจ
เจธเฉเจ เจจเจฟเจธเจผเจเจค เจนเฉ เจธเจเจฆเฉ เจนเจพเจ เจเจฟ เจธเจญ เจเฉเจ เจธเจนเฉ เจขเฉฐเจ เจจเจพเจฒ เจเฉฐเจฎ เจเจฐเฉเจเจพเฅค
เจธเฉเจตเจพเจตเจพเจ เจจเฉเฉฐ เจฒเจพเจเฉ เจเจฐเจจเจพ
เจธเฉเจตเจพ เจธเจผเฉเจฐเฉ เจเจฐเจจ เจ
เจคเฉ เจฌเฉฐเจฆ เจเจฐเจจ เจฒเจ เจเฉฑเจ เจซเฉฐเจเจธเจผเจจ เจฆเฉ เจฒเฉเฉ เจนเฉเฉฐเจฆเฉ เจนเฉเฅค (เจเจฟเจธเฉ เจธเฉเจตเจพ เจจเฉเฉฐ เจฐเฉเจเจฃ เจฆเฉ เจฏเฉเจเจคเจพ เจเฉเจธเจเจฟเฉฐเจ เจฒเจ เจฎเจนเฉฑเจคเจตเจชเฉเจฐเจจ เจนเฉเฅค) เจฆเฉเจฌเจพเจฐเจพ, เจ
เจเจฟเจนเฉ เจตเจฟเจธเจผเฉเจธเจผเจคเจพ เจจเฉเฉฐ เจฒเจพเจเฉ เจเจฐเจจ เจฒเจ เจเจ เจตเจฟเจเจฒเจช เจนเจจ (เจเจฆเจพเจนเจฐเจฃ เจฒเจ, เจ
เจธเฉเจ เจธเฉฐเจฐเจเจจเจพ เจเจฟเจธเจฎ เจฆเฉ เจ
เจงเจพเจฐ เจคเฉ เจเจฟเจธเจฎ เจฆเฉเจเจ เจเจฒเจพเจธเจพเจ เจฆเฉ เจตเจฐเจคเฉเจ เจเจฐ เจธเจเจฆเฉ เจนเจพเจ)เฅค เจเจธ เจชเฉเจธเจ เจฆเฉ เจเจฆเฉเจธเจผเจพเจ เจฒเจ เจ
เจธเฉเจ เจเฉเจ เจชเฉเจเจฐเจจ เจฆเฉ เจตเจฐเจคเฉเจ เจเจฐเจพเจเจเฉเฅค เจ
เจธเฉเจ เจเจฒเจพเจธ เจฆเฉ เจตเจฐเจคเฉเจ เจเจฐเจเฉ เจธเฉเจตเจพ เจฆเฉ เจจเฉเจฎเจพเจเฉฐเจฆเจเฉ เจเจฐเจพเจเจเฉ cats.Resource
, เจเจฟเจเจเจเจฟ เจเจน เจธเจผเฉเจฐเฉเจฃเฉ เจชเจนเจฟเจฒเจพเจ เจนเฉ เจธเจฎเฉฑเจธเจฟเจเจตเจพเจ เจฆเฉ เจธเจฅเจฟเจคเฉ เจตเจฟเฉฑเจ เจธเจฐเฉเจคเจพเจ เจฆเฉ เจฐเจฟเจนเจพเจ เจฆเฉ เจธเฉเจฐเฉฑเจเจฟเจ
เจค เจเจพเจฐเฉฐเจเฉ เจฆเฉเจฃ เจฒเจ เจธเจพเจงเจจ เจชเฉเจฐเจฆเจพเจจ เจเจฐเจฆเฉ เจนเฉเฅค เจเฉฑเจ เจธเจฐเฉเจค เจชเฉเจฐเจพเจชเจค เจเจฐเจจ เจฒเจ, เจธเจพเจจเฉเฉฐ เจธเฉฐเจฐเจเจจเจพ เจ
เจคเฉ เจเฉฑเจ เจฐเฉเจกเฉเจฎเฉเจก เจฐเจจเจเจพเจเจฎ เจธเฉฐเจฆเจฐเจญ เจชเฉเจฐเจฆเจพเจจ เจเจฐเจจ เจฆเฉ เจฒเฉเฉ เจนเฉเฅค เจธเจฐเจตเจฟเจธ เจธเจเจพเจฐเจเจ
เจช เจซเฉฐเจเจธเจผเจจ เจเจธ เจคเจฐเฉเจนเจพเจ เจฆเจฟเจเจพเจ เจฆเฉ เจธเจเจฆเจพ เจนเฉ:
type ResourceReader[F[_], Config, A] = Reader[Config, Resource[F, A]]
trait ServiceImpl[F[_]] {
type Config
def resource(
implicit
resolver: AddressResolver[F],
timer: Timer[F],
contextShift: ContextShift[F],
ec: ExecutionContext,
applicative: Applicative[F]
): ResourceReader[F, Config, Unit]
}
เจเจฟเฉฑเจฅเฉ
Config
โ เจเจธ เจธเฉเจตเจพ เจฒเจ เจธเฉฐเจฐเจเจจเจพ เจเจฟเจธเจฎAddressResolver
โ เจเฉฑเจ เจฐเจจเจเจพเจเจฎ เจเจฌเจเฉเจเจ เจเฉ เจคเฉเจนเจพเจจเฉเฉฐ เจนเฉเจฐ เจจเฉเจกเจพเจ เจฆเฉ เจชเจคเฉ เจฒเฉฑเจญเจฃ เจฆเฉ เจเจเจพเจเจผเจค เจฆเจฟเฉฐเจฆเจพ เจนเฉ (เจนเฉเจ เจพเจ เจฆเฉเจเฉ)
เจ
เจคเฉ เจฒเจพเจเจฌเฉเจฐเฉเจฐเฉ เจคเฉเจ เจนเฉเจฐ เจเจฟเจธเจฎเจพเจ cats
:
F[_]
- เจชเฉเจฐเจญเจพเจต เจฆเฉ เจเจฟเจธเจฎ (เจธเจงเจพเจฐเจจ เจธเจฅเจฟเจคเฉ เจตเจฟเฉฑเจF[A]
เจธเจฟเจฐเจซเจผ เจเฉฑเจ เจซเฉฐเจเจธเจผเจจ เจนเฉ เจธเจเจฆเจพ เจนเฉ() => A
. เจเจธ เจชเฉเจธเจ เจตเจฟเฉฑเจ เจ เจธเฉเจ เจตเจฐเจคเจพเจเจเฉcats.IO
.)Reader[A,B]
- เจซเฉฐเจเจธเจผเจจ เจจเจพเจฒ เจเฉฑเจ เจเจพเจ เจเฉฑเจ เจธเจฎเจพเจจเจพเจฐเจฅเฉA => B
cats.Resource
- เจเฉฑเจ เจธเจฐเฉเจค เจเฉ เจชเฉเจฐเจพเจชเจค เจ เจคเฉ เจเจพเจฐเฉ เจเฉเจคเจพ เจเจพ เจธเจเจฆเจพ เจนเฉTimer
- เจเจพเจเจฎเจฐ (เจคเฉเจนเจพเจจเฉเฉฐ เจเฉเจ เจธเจฎเฉเจ เจฒเจ เจธเฉเจฃ เจ เจคเฉ เจธเจฎเฉเจ เจฆเฉ เจ เฉฐเจคเจฐเจพเจฒ เจจเฉเฉฐ เจฎเจพเจชเจฃ เจฆเฉ เจเจเจฟเจ เจฆเจฟเฉฐเจฆเจพ เจนเฉ)ContextShift
- เจเจจเจพเจฒเจพเจExecutionContext
Applicative
- เจเฉฑเจ เจชเฉเจฐเจญเจพเจต เจเจฟเจธเจฎ เจฆเฉ เจเจฒเจพเจธ เจเฉ เจคเฉเจนเจพเจจเฉเฉฐ เจตเจฟเจ เจเจคเฉเจเจค เจชเฉเจฐเจญเจพเจตเจพเจ (เจฒเจเจญเจ เจเฉฑเจ เจฎเฉเจจเจพเจก) เจจเฉเฉฐ เจเฉเฉเจจ เจฆเฉ เจเจเจฟเจ เจฆเจฟเฉฐเจฆเฉ เจนเฉเฅค เจตเจงเฉเจฐเฉ เจเฉเฉฐเจเจฒเจฆเจพเจฐ เจเจชเจฒเฉเจเฉเจธเจผเจจเจพเจ เจตเจฟเฉฑเจ เจเจธเจจเฉเฉฐ เจตเจฐเจคเจฃเจพ เจฌเจฟเจนเจคเจฐ เจฒเฉฑเจเจฆเจพ เจนเฉMonad
/ConcurrentEffect
.
เจเจธ เจซเฉฐเจเจธเจผเจจ เจฆเจธเจคเจเจค เจฆเฉ เจตเจฐเจคเฉเจ เจเจฐเจเฉ เจ เจธเฉเจ เจเจ เจธเฉเจตเจพเจตเจพเจ เจจเฉเฉฐ เจฒเจพเจเฉ เจเจฐ เจธเจเจฆเฉ เจนเจพเจเฅค เจเจฆเจพเจนเจฐเจจ เจฒเจ, เจเฉฑเจ เจธเฉเจตเจพ เจเฉ เจเฉเจ เจจเจนเฉเจ เจเจฐเจฆเฉ:
trait ZeroServiceImpl[F[_]] extends ServiceImpl[F] {
type Config <: Any
def resource(...): ResourceReader[F, Config, Unit] =
Reader(_ => Resource.pure[F, Unit](()))
}
(เจธเฉ.เจฎเฉ.
ะธ
เจเฉฑเจ เจจเฉเจก เจเฉฑเจ เจตเจธเจคเฉ เจนเฉ เจเฉ เจเจ เจธเฉเจตเจพเจตเจพเจ เจจเฉเฉฐ เจฒเจพเจเจ เจเจฐ เจธเจเจฆเฉ เจนเฉ (เจธเจฐเฉเจคเจพเจ เจฆเฉ เจเฉฑเจ เจฒเฉเฉ เจฆเฉ เจธเจผเฉเจฐเฉเจเจค เจเฉเจ เจชเฉเจเจฐเจจ เจฆเฉเจเจฐเจพ เจฏเจเฉเจจเฉ เจฌเจฃเจพเจ เจเจพเจเจฆเฉ เจนเฉ):
object SingleNodeImpl extends ZeroServiceImpl[IO]
with EchoServiceService
with EchoClientService
with FiniteDurationLifecycleServiceImpl
{
type Config = EchoConfig[String] with EchoClientConfig[String] with FiniteDurationLifecycleConfig
}
เจเจฟเจฐเจชเจพ เจเจฐเจเฉ เจงเจฟเจเจจ เจฆเจฟเจ เจเจฟ เจ เจธเฉเจ เจเจธ เจจเฉเจก เจฒเจ เจฒเฉเฉเฉเจเจฆเฉ เจธเฉฐเจฐเจเจจเจพ เจฆเฉ เจธเจนเฉ เจเจฟเจธเจฎ เจจเจฟเจฐเจงเจพเจฐเจค เจเจฐ เจฐเจนเฉ เจนเจพเจเฅค เจเฉเจเจฐ เจ เจธเฉเจ เจเจฟเจธเฉ เจเจพเจธ เจธเฉเจตเจพ เจฒเจ เจฒเฉเฉเฉเจเจฆเฉ เจธเฉฐเจฐเจเจจเจพ เจเจฟเจธเจฎเจพเจ เจตเจฟเฉฑเจเฉเจ เจเฉฑเจ เจจเฉเฉฐ เจจเจฟเจฐเจงเจพเจฐเจค เจเจฐเจจเจพ เจญเฉเฉฑเจฒ เจเจพเจเจฆเฉ เจนเจพเจ, เจคเจพเจ เจเฉฑเจ เจธเฉฐเจเจฒเจจ เจเจฒเจคเฉ เจนเฉเจตเฉเจเฉเฅค เจจเจพเจฒ เจนเฉ, เจ เจธเฉเจ เจเฉฑเจ เจจเฉเจก เจธเจผเฉเจฐเฉ เจเจฐเจจ เจฆเฉ เจฏเฉเจ เจจเจนเฉเจ เจนเฉเจตเจพเจเจเฉ เจเจฆเฉเจ เจคเฉฑเจ เจ เจธเฉเจ เจธเจพเจฐเฉ เจฒเฉเฉเฉเจเจฆเฉ เจกเฉเจเจพ เจฆเฉ เจจเจพเจฒ เจขเฉเจเจตเฉเจ เจเจฟเจธเจฎ เจฆเฉ เจเฉเจ เจตเจธเจคเฉ เจชเฉเจฐเจฆเจพเจจ เจจเจนเฉเจ เจเจฐเจฆเฉ เจนเจพเจเฅค
เจนเฉเจธเจ เจจเจพเจฎ เจฐเฉเจเจผเฉเจฒเจฟเจเจธเจผเจจ
เจเฉฑเจ เจฐเจฟเจฎเฉเจ เจนเฉเจธเจ เจจเจพเจฒ เจเฉเฉเจจ เจฒเจ, เจธเจพเจจเฉเฉฐ เจเฉฑเจ เจ เจธเจฒเฉ IP เจเจกเจฐเฉเฉฑเจธ เจฆเฉ เจฒเฉเฉ เจนเฉเฅค เจเจน เจธเฉฐเจญเจต เจนเฉ เจเจฟ เจชเจคเจพ เจฌเจพเจเฉ เจธเฉฐเจฐเจเจจเจพ เจจเจพเจฒเฉเจ เจฌเจพเจ เจฆ เจตเจฟเฉฑเจ เจเจพเจฃเจฟเจ เจเจพเจตเฉเจเจพเฅค เจเจธ เจฒเจ เจธเจพเจจเฉเฉฐ เจเฉฑเจ เจซเฉฐเจเจธเจผเจจ เจฆเฉ เจฒเฉเฉ เจนเฉ เจเฉ เจจเฉเจก ID เจจเฉเฉฐ เจเฉฑเจ เจชเจคเฉ 'เจคเฉ เจฎเฉเจช เจเจฐเจฆเจพ เจนเฉ:
case class NodeAddress[NodeId](host: Uri.Host)
trait AddressResolver[F[_]] {
def resolve[NodeId](nodeId: NodeId): F[NodeAddress[NodeId]]
}
เจเจธ เจซเฉฐเจเจธเจผเจจ เจจเฉเฉฐ เจฒเจพเจเฉ เจเจฐเจจ เจฆเฉ เจเจ เจคเจฐเฉเจเฉ เจนเจจ:
- เจเฉเจเจฐ เจกเจฟเจชเจฒเจพเจเจฎเฉเจเจ เจคเฉเจ เจชเจนเจฟเจฒเจพเจ เจชเจคเฉ เจธเจพเจจเฉเฉฐ เจเจพเจฃ เจเจพเจเจฆเฉ เจนเจจ, เจคเจพเจ เจ
เจธเฉเจ เจเจธ เจจเจพเจฒ เจธเจเจพเจฒเจพ เจเฉเจก เจคเจฟเจเจฐ เจเจฐ เจธเจเจฆเฉ เจนเจพเจ
เจเจกเจฐเฉเฉฑเจธ เจ เจคเฉ เจซเจฟเจฐ เจฌเจฟเจฒเจก เจเจฒเจพเจเฅค เจเจน เจเฉเจธเจเจพเจ เจจเฉเฉฐ เจเฉฐเจชเจพเจเจฒ เจ เจคเฉ เจเจฒเจพเจเจเจพเฅค
เจเจธ เจธเจฅเจฟเจคเฉ เจตเจฟเฉฑเจ, เจซเฉฐเจเจธเจผเจจ เจจเฉเฉฐ เจธเจฅเจฟเจฐ เจฐเฉเจช เจตเจฟเฉฑเจ เจเจพเจฃเจฟเจ เจเจพเจตเฉเจเจพ เจ เจคเฉ เจเฉฑเจ เจฎเฉเจชเจฟเฉฐเจ เจฆเฉ เจฐเฉเจช เจตเจฟเฉฑเจ เจเฉเจก เจตเจฟเฉฑเจ เจฆเจฐเจธเจพเจเจ เจเจพ เจธเจเจฆเจพ เจนเฉMap[NodeId, NodeAddress]
. - เจเฉเจ เจฎเจพเจฎเจฒเจฟเจเจ เจตเจฟเฉฑเจ, เจ
เจธเจฒ เจชเจคเจพ เจจเฉเจก เจฆเฉ เจธเจผเฉเจฐเฉ เจนเฉเจฃ เจคเฉเจ เจฌเจพเจ
เจฆ เจนเฉ เจเจพเจฃเจฟเจ เจเจพเจเจฆเจพ เจนเฉเฅค
เจเจธ เจธเจฅเจฟเจคเฉ เจตเจฟเฉฑเจ, เจ เจธเฉเจ เจเฉฑเจ "เจเฉเจ เจธเฉเจตเจพ" เจจเฉเฉฐ เจฒเจพเจเฉ เจเจฐ เจธเจเจฆเฉ เจนเจพเจ เจเฉ เจฆเฉเจเฉ เจจเฉเจกเจพเจ เจคเฉเจ เจชเจนเจฟเจฒเจพเจ เจเฉฑเจฒเจฆเฉ เจนเฉ เจ เจคเฉ เจธเจพเจฐเฉ เจจเฉเจก เจเจธ เจธเฉเจตเจพ เจจเจพเจฒ เจฐเจเจฟเจธเจเจฐ เจนเฉเจฃเจเฉ เจ เจคเฉ เจนเฉเจฐ เจจเฉเจกเจพเจ เจฆเฉ เจชเจคเจฟเจเจ เจฆเฉ เจฌเฉเจจเจคเฉ เจเจฐเจจเจเฉเฅค - เจเฉเจเจฐ เจ
เจธเฉเจ เจธเฉเจง เจธเจเจฆเฉ เจนเจพเจ
/etc/hosts
, เจซเจฟเจฐ เจคเฉเจธเฉเจ เจชเจนเจฟเจฒเจพเจ เจคเฉเจ เจชเจฐเจฟเจญเจพเจธเจผเจฟเจค เจนเฉเจธเจเจจเจพเจฎเจพเจ เจฆเฉ เจตเจฐเจคเฉเจ เจเจฐ เจธเจเจฆเฉ เจนเฉ (เจเจฟเจตเฉเจmy-project-main-node
ะธecho-backend
) เจ เจคเฉ เจฌเจธ เจเจนเจจเจพเจ เจจเจพเจฎเจพเจ เจจเฉเฉฐ เจฒเจฟเฉฐเจ เจเจฐเฉ
เจคเฉเจจเจพเจคเฉ เจฆเฉเจฐเจพเจจ IP เจชเจคเจฟเจเจ เจฆเฉ เจจเจพเจฒเฅค
เจเจธ เจชเฉเจธเจ เจตเจฟเฉฑเจ เจ
เจธเฉเจ เจเจนเจจเจพเจ เจฎเจพเจฎเจฒเจฟเจเจ เจจเฉเฉฐ เจนเฉเจฐ เจตเจฟเจธเจฅเจพเจฐ เจตเจฟเฉฑเจ เจจเจนเฉเจ เจตเจฟเจเจพเจฐเจพเจเจเฉเฅค เจธเจพเจกเฉ เจฒเจ
เจเฉฑเจ เจเจฟเจกเฉเจฃเฉ เจฆเฉ เจเจฆเจพเจนเจฐเจจ เจตเจฟเฉฑเจ, เจธเจพเจฐเฉ เจจเฉเจกเจพเจ เจฆเจพ เจเฉฑเจเฉ IP เจชเจคเจพ เจนเฉเจตเฉเจเจพ - 127.0.0.1
.
เจ เฉฑเจเฉ, เจ เจธเฉเจ เจตเฉฐเจกเฉ เจธเจฟเจธเจเจฎ เจฒเจ เจฆเฉ เจตเจฟเจเจฒเจชเจพเจ 'เจคเฉ เจตเจฟเจเจพเจฐ เจเจฐเจฆเฉ เจนเจพเจ:
- เจธเจพเจฐเฉเจเจ เจธเฉเจตเจพเจตเจพเจ เจจเฉเฉฐ เจเฉฑเจ เจจเฉเจก 'เจคเฉ เจฐเฉฑเจเจฃเจพเฅค
- เจ เจคเฉ เจตเฉฑเจ-เจตเฉฑเจ เจจเฉเจกเจพเจ 'เจคเฉ เจเจเฉ เจธเฉเจตเจพ เจ เจคเฉ เจเจเฉ เจเจฒเจพเจเฉฐเจ เจฆเฉ เจฎเฉเจเจผเจฌเจพเจจเฉ เจเจฐ เจฐเจฟเจนเจพ เจนเฉเฅค
เจฒเจ เจธเฉฐเจฐเจเจจเจพ
เจธเจฟเฉฐเจเจฒ เจจเฉเจก เจธเฉฐเจฐเจเจจเจพ
object SingleNodeConfig extends EchoConfig[String]
with EchoClientConfig[String] with FiniteDurationLifecycleConfig
{
case object Singleton // identifier of the single node
// configuration of server
type NodeId = Singleton.type
def nodeId = Singleton
/** Type safe service port specification. */
override def portNumber: PortNumber = 8088
// configuration of client
/** We'll use the service provided by the same host. */
def echoServiceDependency = echoService
override def testMessage: UrlPathElement = "hello"
def pollInterval: FiniteDuration = 1.second
// lifecycle controller configuration
def lifetime: FiniteDuration = 10500.milliseconds // additional 0.5 seconds so that there are 10 requests, not 9.
}
เจเจฌเจเฉเจเจ เจเจฒเจพเจเฉฐเจ เจ
เจคเฉ เจธเจฐเจตเจฐ เจฆเฉเจตเจพเจ เจฆเฉ เจธเฉฐเจฐเจเจจเจพ เจจเฉเฉฐ เจฒเจพเจเฉ เจเจฐเจฆเจพ เจนเฉเฅค เจเฉฑเจ เจเจพเจเจฎ-เจเฉ-เจฒเจพเจเจต เจธเฉฐเจฐเจเจจเจพ เจตเฉ เจตเจฐเจคเฉ เจเจพเจเจฆเฉ เจนเฉ เจคเจพเจ เจเฉ เจ
เฉฐเจคเจฐเจพเจฒ เจคเฉเจ เจฌเจพเจ
เจฆ lifetime
เจชเฉเจฐเฉเจเจฐเจพเจฎ เจจเฉเฉฐ เจเจคเจฎ เจเจฐเฉ. (Ctrl-C เจธเจพเจฐเฉ เจธเจฐเฉเจคเจพเจ เจจเฉเฉฐ เจธเจนเฉ เจขเฉฐเจ เจจเจพเจฒ เจเฉฐเจฎ เจเจฐเจฆเจพ เจนเฉ เจ
เจคเฉ เจฎเฉเจเจค เจเจฐเจฆเจพ เจนเฉเฅค)
เจธเฉฐเจฐเจเจจเจพ เจ
เจคเฉ เจฒเจพเจเฉ เจเจฐเจจ เจฆเฉ เจเฉเจฃเจพเจ เจฆเจพ เจเฉฑเจเฉ เจธเฉเฉฑเจ เจเฉฑเจ เจธเจฟเจธเจเจฎ เจฌเจฃเจพเจเจฃ เจฒเจ เจตเจฐเจคเจฟเจ เจเจพ เจธเจเจฆเจพ เจนเฉ เจเจฟเจธ เจตเจฟเฉฑเจ เจธเจผเจพเจฎเจฒ เจนเจจ
เจฆเฉ เจจเฉเจก เจธเฉฐเจฐเจเจจเจพ
object NodeServerConfig extends EchoConfig[String] with SigTermLifecycleConfig
{
type NodeId = NodeIdImpl
def nodeId = NodeServer
override def portNumber: PortNumber = 8080
}
object NodeClientConfig extends EchoClientConfig[String] with FiniteDurationLifecycleConfig
{
// NB! dependency specification
def echoServiceDependency = NodeServerConfig.echoService
def pollInterval: FiniteDuration = 1.second
def lifetime: FiniteDuration = 10500.milliseconds // additional 0.5 seconds so that there are 10 request, not 9.
def testMessage: String = "dolly"
}
เจฎเจนเฉฑเจคเจตเจชเฉเจฐเจจ! เจงเจฟเจเจจ เจฆเจฟเจ เจเจฟ เจธเฉเจตเจพเจตเจพเจ เจเจฟเจตเฉเจ เจเฉเฉเฉเจเจ เจนเฉเจเจเจ เจนเจจเฅค เจ เจธเฉเจ เจเฉฑเจ เจจเฉเจก เจฆเฉเจเจฐเจพ เจฒเจพเจเฉ เจเฉเจคเฉ เจธเฉเจตเจพ เจจเฉเฉฐ เจเจฟเจธเฉ เจนเฉเจฐ เจจเฉเจก เจฆเฉ เจจเจฟเจฐเจญเจฐเจคเจพ เจตเจฟเจงเฉ เจฆเฉ เจฒเจพเจเฉ เจเจฐเจจ เจฆเฉ เจฐเฉเจช เจตเจฟเฉฑเจ เจจเจฟเจฐเจงเจพเจฐเจค เจเจฐเจฆเฉ เจนเจพเจเฅค เจเฉฐเจชเจพเจเจฒเจฐ เจฆเฉเจเจฐเจพ เจจเจฟเจฐเจญเจฐเจคเจพ เจเจฟเจธเจฎ เจฆเฉ เจเจพเจเจ เจเฉเจคเฉ เจเจพเจเจฆเฉ เจนเฉ, เจเจฟเจเจเจเจฟ เจชเฉเจฐเฉเจเฉเจเฉเจฒ เจฆเฉ เจเจฟเจธเจฎ เจธเจผเจพเจฎเจฟเจฒ เจนเฉเฅค เจเจฆเฉเจ เจเจฒเจพเจเจ เจเจพเจเจฆเจพ เจนเฉ, เจจเจฟเจฐเจญเจฐเจคเจพ เจตเจฟเฉฑเจ เจธเจนเฉ เจเฉเจเจพ เจจเฉเจก ID เจธเจผเจพเจฎเจฒ เจนเฉเจตเฉเจเจพเฅค เจเจธ เจธเจเฉเจฎ เจฒเจ เจงเฉฐเจจเจตเจพเจฆ, เจ เจธเฉเจ เจชเฉเจฐเจ เจจเฉฐเจฌเจฐ เจจเฉเฉฐ เจฌเจฟเจฒเจเฉเจฒ เจเฉฑเจ เจตเจพเจฐ เจจเจฟเจฐเจงเจพเจฐเจค เจเจฐเจฆเฉ เจนเจพเจ เจ เจคเฉ เจนเจฎเฉเจธเจผเจพ เจธเจนเฉ เจชเฉเจฐเจ เจฆเจพ เจนเจตเจพเจฒเจพ เจฆเฉเจฃ เจฆเฉ เจเจฐเฉฐเจเฉ เจฆเจฟเฉฑเจคเฉ เจเจพเจเจฆเฉ เจนเฉเฅค
เจฆเฉ เจธเจฟเจธเจเจฎ เจจเฉเจกเจพเจ เจจเฉเฉฐ เจฒเจพเจเฉ เจเจฐเจจเจพ
เจเจธ เจธเฉฐเจฐเจเจจเจพ เจฒเจ, เจ เจธเฉเจ เจฌเจฟเจจเจพเจ เจเจฟเจธเฉ เจฌเจฆเจฒเจพเจ เจฆเฉ เจเจนเฉ เจธเฉเจตเจพ เจฒเจพเจเฉเจเจฐเจจ เจฆเฉ เจตเจฐเจคเฉเจ เจเจฐเจฆเฉ เจนเจพเจเฅค เจซเจฐเจ เจธเจฟเจฐเจซ เจเจน เจนเฉ เจเจฟ เจนเฉเจฃ เจธเจพเจกเฉ เจเฉเจฒ เจฆเฉ เจตเจธเจคเฉเจเจ เจนเจจ เจเฉ เจธเฉเจตเจพเจตเจพเจ เจฆเฉ เจตเฉฑเจ-เจตเฉฑเจ เจธเฉเฉฑเจเจพเจ เจจเฉเฉฐ เจฒเจพเจเฉ เจเจฐเจฆเฉเจเจ เจนเจจ:
object TwoJvmNodeServerImpl extends ZeroServiceImpl[IO] with EchoServiceService with SigIntLifecycleServiceImpl {
type Config = EchoConfig[String] with SigTermLifecycleConfig
}
object TwoJvmNodeClientImpl extends ZeroServiceImpl[IO] with EchoClientService with FiniteDurationLifecycleServiceImpl {
type Config = EchoClientConfig[String] with FiniteDurationLifecycleConfig
}
เจชเจนเจฟเจฒเจพ เจจเฉเจก เจธเจฐเจตเจฐ เจจเฉเฉฐ เจฒเจพเจเฉ เจเจฐเจฆเจพ เจนเฉ เจ
เจคเฉ เจเฉเจตเจฒ เจธเจฐเจตเจฐ เจธเฉฐเจฐเจเจจเจพ เจฆเฉ เจฒเฉเฉ เจนเฉเฉฐเจฆเฉ เจนเฉเฅค เจฆเฉเจเจพ เจจเฉเจก เจเจฒเจพเจเฉฐเจ เจจเฉเฉฐ เจฒเจพเจเฉ เจเจฐเจฆเจพ เจนเฉ เจ
เจคเฉ เจธเฉฐเจฐเจเจจเจพ เจฆเฉ เจตเฉฑเจเจฐเฉ เจนเจฟเฉฑเจธเฉ เจฆเฉ เจตเจฐเจคเฉเจ เจเจฐเจฆเจพ เจนเฉเฅค เจจเจพเจฒ เจนเฉ เจฆเฉเจตเฉเจ เจจเฉเจกเจพเจ เจจเฉเฉฐ เจเฉเจตเจจ เจญเจฐ เจชเฉเจฐเจฌเฉฐเจงเจจ เจฆเฉ เจฒเฉเฉ เจนเฉเฉฐเจฆเฉ เจนเฉเฅค เจธเจฐเจตเจฐ เจจเฉเจก เจ
เจฃเจฎเจฟเฉฑเจฅเฉ เจธเจฎเฉเจ เจคเฉฑเจ เจเฉฑเจฒเจฆเจพ เจนเฉ เจเจฆเฉเจ เจคเฉฑเจ เจเจธเจจเฉเฉฐ เจฐเฉเจเจฟเจ เจจเจนเฉเจ เจเจพเจเจฆเจพ SIGTERM
'om, เจ
เจคเฉ เจเจฒเจพเจเฉฐเจ เจจเฉเจก เจเฉเจ เจธเจฎเฉเจ เจฌเจพเจ
เจฆ เจธเจฎเจพเจชเจค เจนเฉ เจเจพเจเจฆเจพ เจนเฉเฅค เจธเฉ.เจเจฎ.
เจเจฎ เจตเจฟเจเจพเจธ เจฆเฉ เจชเฉเจฐเจเจฟเจฐเจฟเจ
เจเจ เจฆเฉเจเฉเจ เจเจฟ เจเจน เจธเฉฐเจฐเจเจจเจพ เจชเจนเฉเฉฐเจ เจธเจฎเฉเฉฑเจเฉ เจตเจฟเจเจพเจธ เจชเฉเจฐเจเจฟเจฐเจฟเจ เจจเฉเฉฐ เจเจฟเจตเฉเจ เจชเฉเจฐเจญเจพเจตเจฟเจค เจเจฐเจฆเฉ เจนเฉเฅค
เจธเฉฐเจฐเจเจจเจพ เจจเฉเฉฐ เจฌเจพเจเฉ เจเฉเจก เจฆเฉ เจจเจพเจฒ เจเฉฐเจชเจพเจเจฒ เจเฉเจคเจพ เจเจพเจตเฉเจเจพ เจ เจคเฉ เจเฉฑเจ เจเจฐเจเฉเจซเฉเจเจ (.jar) เจคเจฟเจเจฐ เจเฉเจคเจพ เจเจพเจตเฉเจเจพเฅค เจธเฉฐเจฐเจเจจเจพ เจจเฉเฉฐ เจเฉฑเจ เจตเฉฑเจเจฐเฉ เจเจฐเจเฉเจซเฉเจเจ เจตเจฟเฉฑเจ เจชเจพเจเจฃเจพ เจธเจฎเจเจฆเจพเจฐ เจเจพเจชเจฆเจพ เจนเฉเฅค เจเจน เจเจธ เจฒเจ เจนเฉ เจเจฟเจเจเจเจฟ เจธเจพเจกเฉ เจเฉเจฒ เจเฉฑเจเฉ เจเฉเจก เจฆเฉ เจเจงเจพเจฐ 'เจคเฉ เจเจ เจธเฉฐเจฐเจเจจเจพเจตเจพเจ เจนเฉ เจธเจเจฆเฉเจเจ เจนเจจเฅค เจฆเฉเจฌเจพเจฐเจพ เจซเจฟเจฐ, เจตเฉฑเจ-เจตเฉฑเจ เจธเฉฐเจฐเจเจจเจพ เจธเจผเจพเจเจพเจตเจพเจ เจจเจพเจฒ เจธเฉฐเจฌเฉฐเจงเจฟเจค เจเจฒเจพเจเฉเจฐเจฟเจคเฉเจเจ เจจเฉเฉฐ เจคเจฟเจเจฐ เจเจฐเจจเจพ เจธเฉฐเจญเจต เจนเฉเฅค เจฒเจพเจเจฌเฉเจฐเฉเจฐเฉเจเจ เจฆเฉ เจเจพเจธ เจธเฉฐเจธเจเจฐเจฃเจพเจ 'เจคเฉ เจจเจฟเจฐเจญเจฐเจคเจพ เจธเฉฐเจฐเจเจจเจพ เจฆเฉ เจจเจพเจฒ เจธเฉเจฐเฉฑเจเจฟเจ เจค เจเฉเจคเฉ เจเจพเจเจฆเฉ เจนเฉ, เจ เจคเฉ เจเจฆเฉเจ เจตเฉ เจ เจธเฉเจ เจธเฉฐเจฐเจเจจเจพ เจฆเฉ เจเจธ เจธเฉฐเจธเจเจฐเจฃ เจจเฉเฉฐ เจฒเจพเจเฉ เจเจฐเจจ เจฆเจพ เจซเฉเจธเจฒเจพ เจเจฐเจฆเฉ เจนเจพเจ เจคเจพเจ เจเจน เจธเฉฐเจธเจเจฐเจฃ เจนเจฎเฉเจธเจผเจพ เจฒเจ เจธเฉเจฐเฉฑเจเจฟเจ เจค เจนเฉ เจเจพเจเจฆเฉ เจนเจจเฅค
เจเฉเจ เจตเฉ เจธเฉฐเจฐเจเจจเจพ เจคเจฌเจฆเฉเจฒเฉ เจเฉเจก เจคเจฌเจฆเฉเจฒเฉ เจตเจฟเฉฑเจ เจฌเจฆเจฒ เจเจพเจเจฆเฉ เจนเฉเฅค เจ
เจคเฉ เจเจธ เจฒเจ, เจนเจฐเฉเจ
เจคเจฌเจฆเฉเจฒเฉ เจจเฉเฉฐ เจเจฎ เจเฉเจฃเจตเฉฑเจคเจพ เจญเจฐเฉเจธเจพ เจชเฉเจฐเจเจฟเจฐเจฟเจ เจฆเฉเจเจฐเจพ เจเจตเจฐ เจเฉเจคเจพ เจเจพเจตเฉเจเจพ:
เจฌเฉฑเจ เจเจฐเฉเจเจฐ เจตเจฟเฉฑเจ เจเจฟเจเจ -> PR -> เจธเจฎเฉเจเจฟเจ -> เจธเฉฐเจฌเฉฐเจงเจฟเจค เจธเจผเจพเจเจพเจตเจพเจ เจจเจพเจฒ เจฎเจฟเจฒเจพเจ ->
เจเจเฉเจเจฐเจฃ -> เจคเฉเจจเจพเจคเฉ
เจเฉฐเจชเจพเจเจฒ เจเฉเจคเฉ เจธเฉฐเจฐเจเจจเจพ เจจเฉเฉฐ เจฒเจพเจเฉ เจเจฐเจจ เจฆเฉ เจฎเฉเฉฑเจ เจจเจคเฉเจเฉ เจนเจจ:
-
เจตเจฟเจคเจฐเจฟเจค เจธเจฟเจธเจเจฎ เจฆเฉ เจธเจพเจฐเฉ เจจเฉเจกเจพเจ เจตเจฟเฉฑเจ เจธเฉฐเจฐเจเจจเจพ เจเจเจธเจพเจฐ เจนเฉเจตเฉเจเฉเฅค เจเจธ เจคเฉฑเจฅ เจฆเฉ เจเจพเจฐเจจ เจเจฟ เจธเจพเจฐเฉ เจจเฉเจก เจเฉฑเจ เจธเจฐเฉเจค เจคเฉเจ เจเฉฑเจเฉ เจเจฟเจนเฉ เจธเฉฐเจฐเจเจจเจพ เจชเฉเจฐเจพเจชเจค เจเจฐเจฆเฉ เจนเจจ.
-
เจธเจฟเจฐเจซ เจเฉฑเจ เจจเฉเจก เจตเจฟเฉฑเจ เจธเฉฐเจฐเจเจจเจพ เจจเฉเฉฐ เจฌเจฆเจฒเจฃเจพ เจฎเฉเจธเจผเจเจฒ เจนเฉเฅค เจเจธ เจฒเจ, "เจธเฉฐเจฐเจเจจเจพ เจตเจนเจฟเจฃ" เจฆเฉ เจธเฉฐเจญเจพเจตเจจเจพ เจจเจนเฉเจ เจนเฉเฅค
-
เจธเฉฐเจฐเจเจจเจพ เจตเจฟเฉฑเจ เจเฉเจเฉเจเจ เจคเจฌเจฆเฉเจฒเฉเจเจ เจเจฐเจจเจพ เจตเจงเฉเจฐเฉ เจฎเฉเจธเจผเจเจฒ เจนเฉ เจเจพเจเจฆเจพ เจนเฉเฅค
-
เจเจผเจฟเจเจฆเจพเจคเจฐ เจธเฉฐเจฐเจเจจเจพ เจคเจฌเจฆเฉเจฒเฉเจเจ เจธเจฎเฉเฉฑเจเฉ เจตเจฟเจเจพเจธ เจชเฉเจฐเจเจฟเจฐเจฟเจ เจฆเฉ เจนเจฟเฉฑเจธเฉ เจตเจเฉเจ เจนเฉเจฃเจเฉเจเจ เจ เจคเฉ เจธเจฎเฉเจเจฟเจ เจฆเฉ เจ เจงเฉเจจ เจนเฉเจฃเจเฉเจเจเฅค
เจเฉ เจฎเฉเจจเฉเฉฐ เจเจคเจชเจพเจฆเจจ เจธเฉฐเจฐเจเจจเจพ เจจเฉเฉฐ เจธเจเฉเจฐ เจเจฐเจจ เจฒเจ เจเฉฑเจ เจตเฉฑเจเจฐเฉ เจฐเจฟเจชเฉเจเจผเจเจฐเฉ เจฆเฉ เจฒเฉเฉ เจนเฉ? เจเจธ เจธเฉฐเจฐเจเจจเจพ เจตเจฟเฉฑเจ เจชเจพเจธเจตเจฐเจก เจ เจคเฉ เจนเฉเจฐ เจธเฉฐเจตเฉเจฆเจจเจธเจผเฉเจฒ เจเจพเจฃเจเจพเจฐเฉ เจนเฉ เจธเจเจฆเฉ เจนเฉ เจเจฟเจธ เจคเฉฑเจ เจ เจธเฉเจ เจชเจนเฉเฉฐเจ เจจเฉเฉฐ เจธเฉเจฎเจค เจเจฐเจจเจพ เจเจพเจนเฉเฉฐเจฆเฉ เจนเจพเจเฅค เจเจธ เจฆเฉ เจเจงเจพเจฐ 'เจคเฉ, เจ เฉฐเจคเจฟเจฎ เจธเฉฐเจฐเจเจจเจพ เจจเฉเฉฐ เจเฉฑเจ เจตเฉฑเจเจฐเฉ เจฐเจฟเจชเฉเจเจผเจเจฐเฉ เจตเจฟเฉฑเจ เจธเจเฉเจฐ เจเจฐเจจ เจฆเจพ เจฎเจคเจฒเจฌ เจเจพเจชเจฆเจพ เจนเฉเฅค เจคเฉเจธเฉเจ เจธเฉฐเจฐเจเจจเจพ เจจเฉเฉฐ เจฆเฉ เจนเจฟเฉฑเจธเจฟเจเจ เจตเจฟเฉฑเจ เจตเฉฐเจก เจธเจเจฆเฉ เจนเฉโเจเฉฑเจ เจตเจฟเฉฑเจ เจเจจเจคเจ เจคเฉเจฐ 'เจคเฉ เจชเจนเฉเฉฐเจเจฏเฉเจ เจธเฉฐเจฐเจเจจเจพ เจธเฉเจเจฟเฉฐเจเจพเจ เจ เจคเฉ เจเฉฑเจ เจตเจฟเฉฑเจ เจชเฉเจฐเจคเจฟเจฌเฉฐเจงเจฟเจค เจธเฉเจเจฟเฉฐเจเจพเจ เจธเจผเจพเจฎเจฒ เจนเจจเฅค เจเจน เจเจผเจฟเจเจฆเจพเจคเจฐ เจกเจฟเจตเฉเจฒเจชเจฐเจพเจ เจจเฉเฉฐ เจเจฎ เจธเฉเจเจฟเฉฐเจเจพเจ เจคเฉฑเจ เจชเจนเฉเฉฐเจ เจเจฐเจจ เจฆเฉ เจเจเจพเจเจผเจค เจฆเฉเจตเฉเจเจพเฅค เจกเจฟเจซเฉเจฒเจ เจฎเฉเฉฑเจฒเจพเจ เจตเจพเจฒเฉ เจเฉฐเจเจฐเจฎเฉเจกเฉเจเจ เจเฉเจฃเจพเจ เจฆเฉ เจตเจฐเจคเฉเจ เจเจฐเจเฉ เจเจน เจตเจฟเจเฉเฉเจพ เจชเฉเจฐเจพเจชเจค เจเจฐเจจเจพ เจเจธเจพเจจ เจนเฉเฅค
เจธเฉฐเจญเจต เจญเจฟเฉฐเจจเจคเจพเจตเจพเจ
เจเจ เจธเฉฐเจเจฒเจฟเจค เจธเฉฐเจฐเจเจจเจพ เจฆเฉ เจคเฉเจฒเจจเจพ เจเฉเจ เจเจฎ เจตเจฟเจเจฒเจชเจพเจ เจจเจพเจฒ เจเจฐเจจ เจฆเฉ เจเฉเจธเจผเจฟเจธเจผ เจเจฐเฉเจ:
- เจเฉเจเฉ เจฆเฉ เจฎเจธเจผเฉเจจ 'เจคเฉ เจเฉเจเจธเจ เจซเจพเจเจฒ.
- เจเฉเจเจฆเจฐเฉเจเฉเจฐเจฟเจค เจเฉเฉฐเจเฉ-เจฎเฉเฉฑเจฒ เจธเจเฉเจฐ (
etcd
/zookeeper
). - เจชเฉเจฐเฉเจธเฉเจธ เจเฉฐเจชเฉเจจเฉเจเจเจธ เจเฉ เจชเฉเจฐเจเจฟเจฐเจฟเจ เจจเฉเฉฐ เจฐเฉเจธเจเจพเจฐเจ เจเฉเจคเฉ เจฌเจฟเจจเจพเจ เจฎเฉเฉ เจธเฉฐเจฐเจเจฟเจค/เจฎเฉเฉ-เจธเจผเฉเจฐเฉ เจเฉเจคเฉ เจเจพ เจธเจเจฆเฉ เจนเจจเฅค
- เจเจฐเจเฉเจซเฉเจเจ เจ เจคเฉ เจธเฉฐเจธเจเจฐเจฃ เจจเจฟเจฏเฉฐเจคเจฐเจฃ เจคเฉเจ เจฌเจพเจนเจฐ เจธเฉฐเจฐเจเจจเจพ เจจเฉเฉฐ เจธเจเฉเจฐ เจเจฐเจจเจพเฅค
เจเฉเจเจธเจ เจซเจพเจเจฒเจพเจ เจเฉเจเฉเจเจ เจคเจฌเจฆเฉเจฒเฉเจเจ เจฆเฉ เจฐเฉเจช เจตเจฟเฉฑเจ เจฎเจนเฉฑเจคเจตเจชเฉเจฐเจจ เจฒเจเจเจคเจพ เจชเฉเจฐเจฆเจพเจจ เจเจฐเจฆเฉเจเจ เจนเจจเฅค เจธเจฟเจธเจเจฎ เจชเฉเจฐเจฌเฉฐเจงเจ เจฐเจฟเจฎเฉเจ เจจเฉเจก เจตเจฟเฉฑเจ เจฒเฉเจเจเจจ เจเจฐ เจธเจเจฆเจพ เจนเฉ, เจเจเจฟเจค เจซเจพเจเจฒเจพเจ เจตเจฟเฉฑเจ เจฌเจฆเจฒเจพเจ เจเจฐ เจธเจเจฆเจพ เจนเฉ เจ เจคเฉ เจธเฉเจตเจพ เจจเฉเฉฐ เจฎเฉเฉ เจเจพเจฒเฉ เจเจฐ เจธเจเจฆเจพ เจนเฉเฅค เจตเฉฑเจกเฉ เจธเจฟเจธเจเจฎเจพเจ เจฒเจ, เจนเจพเจฒเจพเจเจเจฟ, เจ เจเจฟเจนเฉ เจฒเจเจเจคเจพ เจซเจพเจเจฆเฉเจฎเฉฐเจฆ เจจเจนเฉเจ เจนเฉ เจธเจเจฆเฉเฅค เจเฉเจคเฉเจเจ เจคเจฌเจฆเฉเจฒเฉเจเจ เจนเฉเจฐ เจธเจฟเจธเจเจฎเจพเจ เจตเจฟเฉฑเจ เจเฉเจ เจจเจฟเจธเจผเจพเจจ เจจเจนเฉเจ เจเฉฑเจกเจฆเฉเจเจเฅค เจเฉเจ เจตเฉ เจคเจฌเจฆเฉเจฒเฉเจเจ เจฆเฉ เจธเจฎเฉเจเจฟเจ เจจเจนเฉเจ เจเจฐเจฆเจพเฅค เจเจน เจชเจคเจพ เจฒเจเจพเจเจฃเจพ เจฎเฉเจธเจผเจเจฒ เจนเฉ เจเจฟ เจ เจธเจฒ เจตเจฟเฉฑเจ เจคเจฌเจฆเฉเจฒเฉเจเจ เจเจฟเจธ เจจเฉ เจเฉเจคเฉเจเจ เจ เจคเฉ เจเจฟเจธ เจเจพเจฐเจจ เจฒเจเฅค เจคเจฌเจฆเฉเจฒเฉเจเจ เจฆเฉ เจเจพเจเจ เจจเจนเฉเจ เจเฉเจคเฉ เจเจพเจเจฆเฉเฅค เจเฉเจเจฐ เจธเจฟเจธเจเจฎ เจตเฉฐเจกเจฟเจ เจเจพเจเจฆเจพ เจนเฉ, เจคเจพเจ เจชเฉเจฐเจธเจผเจพเจธเจ เจนเฉเจฐ เจจเฉเจกเจพเจ 'เจคเฉ เจ เจจเฉเจธเจพเจฐเฉ เจคเจฌเจฆเฉเจฒเฉ เจเจฐเจจเจพ เจญเฉเฉฑเจฒ เจธเจเจฆเจพ เจนเฉเฅค
(เจเจน เจตเฉ เจจเฉเจ เจเฉเจคเจพ เจเจพเจฃเจพ เจเจพเจนเฉเจฆเจพ เจนเฉ เจเจฟ เจเฉฐเจชเจพเจเจฒ เจเฉเจคเฉ เจธเฉฐเจฐเจเจจเจพ เจฆเฉ เจตเจฐเจคเฉเจ เจเจฐเจจ เจจเจพเจฒ เจญเจตเจฟเฉฑเจ เจตเจฟเฉฑเจ เจเฉเจเจธเจ เจซเจพเจเจฒเจพเจ เจฆเฉ เจตเจฐเจคเฉเจ เจเจฐเจจ เจฆเฉ เจธเฉฐเจญเจพเจตเจจเจพ เจฌเฉฐเจฆ เจจเจนเฉเจ เจนเฉเฉฐเจฆเฉ เจนเฉเฅค เจเจน เจเฉฑเจ เจชเจพเจฐเจธเจฐ เจ
เจคเฉ เจตเฉเจฒเฉเจกเฉเจเจฐ เจจเฉเฉฐ เจเฉเฉเจจ เจฒเจ เจเจพเจซเฉ เจนเฉเจตเฉเจเจพ เจเฉ เจเจเจเจชเฉเฉฑเจ เจฆเฉ เจธเจฎเจพเจจ เจเจฟเจธเจฎ เจฆเจพ เจเจคเจชเจพเจฆเจจ เจเจฐเจฆเจพ เจนเฉเฅค Config
, เจ
เจคเฉ เจคเฉเจธเฉเจ เจเฉเจเจธเจ เจซเจพเจเจฒเจพเจ เจฆเฉ เจตเจฐเจคเฉเจ เจเจฐ เจธเจเจฆเฉ เจนเฉเฅค เจเจน เจคเฉเจฐเฉฐเจค เจเจธ เจเฉฑเจฒ เจฆเฉ เจชเจพเจฒเจฃเจพ เจเจฐเจฆเจพ เจนเฉ เจเจฟ เจเฉฐเจชเจพเจเจฒ เจเฉเจคเฉ เจธเฉฐเจฐเจเจจเจพ เจตเจพเจฒเฉ เจธเจฟเจธเจเจฎ เจฆเฉ เจเฉเฉฐเจเจฒเจคเจพ เจเฉเจเจธเจ เจซเจพเจเจฒเจพเจ เจฆเฉ เจตเจฐเจคเฉเจ เจเจฐเจจ เจตเจพเจฒเฉ เจธเจฟเจธเจเจฎ เจฆเฉ เจเฉเฉฐเจเจฒเจคเจพ เจจเจพเจฒเฉเจ เจเฉเจ เจเฉฑเจ เจนเฉ, เจเจฟเจเจเจเจฟ เจเฉเจเจธเจ เจซเจพเจเจฒเจพเจ เจจเฉเฉฐ เจตเจพเจงเฉ เจเฉเจก เจฆเฉ เจฒเฉเฉ เจนเฉเฉฐเจฆเฉ เจนเฉเฅค)
เจเฉฑเจ เจเฉเจเจฆเจฐเฉเจเฉเจฐเจฟเจค เจเฉเฉฐเจเฉ-เจฎเฉเฉฑเจฒ เจธเจเฉเจฐ เจเฉฑเจ เจตเจฟเจคเจฐเจฟเจค เจเจชเจฒเฉเจเฉเจธเจผเจจ เจฆเฉ เจฎเฉเจเจพ เจชเฉเจฐเจพเจฎเฉเจเจฐเจพเจ เจจเฉเฉฐ เจตเฉฐเจกเจฃ เจฒเจ เจเฉฑเจ เจตเจงเฉเจ เจตเจฟเจงเฉ เจนเฉเฅค เจธเจพเจจเฉเฉฐ เจเจน เจซเฉเจธเจฒเจพ เจเจฐเจจ เจฆเฉ เจฒเฉเฉ เจนเฉ เจเจฟ เจธเฉฐเจฐเจเจจเจพ เจชเฉเจฐเจพเจฎเฉเจเจฐ เจเฉ เจนเจจ เจ
เจคเฉ เจธเจฟเจฐเจซเจผ เจกเฉเจเจพ เจเฉ เจนเจจเฅค เจเจ เจเฉฑเจ เจซเฉฐเจเจธเจผเจจ เจเจฐเฉเจ C => A => B
, เจ
เจคเฉ เจชเฉเจฐเจพเจฎเฉเจเจฐ C
เจฌเจนเฉเจค เจเฉฑเจ เจคเจฌเจฆเฉเจฒเฉเจเจ, เจ
เจคเฉ เจกเฉเจเจพ A
- เจ
เจเจธเจฐ. เจเจธ เจฎเจพเจฎเจฒเฉ เจตเจฟเฉฑเจ เจ
เจธเฉเจ เจเจนเจฟ เจธเจเจฆเฉ เจนเจพเจ เจเจฟ C
- เจธเฉฐเจฐเจเจจเจพ เจชเฉเจฐเจพเจฎเฉเจเจฐ, เจ
เจคเฉ A
- เจกเจพเจเจพเฅค เจเจน เจเจพเจชเจฆเจพ เจนเฉ เจเจฟ เจเฉเจเจซเจฟเจเจฐเฉเจธเจผเจจ เจชเฉเจฐเจพเจฎเฉเจเจฐ เจกเฉเจเจพ เจจเจพเจฒเฉเจ เจตเฉฑเจเจฐเฉ เจนเฉเฉฐเจฆเฉ เจนเจจ เจเจฟเจเจเจเจฟ เจเจน เจเจฎ เจคเฉเจฐ 'เจคเฉ เจกเฉเจเจพ เจจเจพเจฒเฉเจ เจเฉฑเจ เจตเจพเจฐ เจฌเจฆเจฒเจฆเฉ เจนเจจเฅค เจจเจพเจฒ เจนเฉ, เจกเฉเจเจพ เจเจฎ เจคเฉเจฐ 'เจคเฉ เจเฉฑเจ เจธเจฐเฉเจค เจคเฉเจ เจเจเจเจฆเจพ เจนเฉ (เจเจชเจญเฉเจเจคเจพ เจคเฉเจ), เจ
เจคเฉ เจธเฉฐเจฐเจเจจเจพ เจชเฉเจฐเจพเจฎเฉเจเจฐ เจฆเฉเจเฉ เจคเฉเจ (เจธเจฟเจธเจเจฎ เจชเฉเจฐเจธเจผเจพเจธเจ เจคเฉเจ)เฅค
เจเฉเจเจฐ เจชเฉเจฐเฉเจเจฐเจพเจฎ เจจเฉเฉฐ เจฐเฉเจธเจเจพเจฐเจ เจเฉเจคเฉ เจฌเจฟเจจเจพเจ เจเฉฑเจ เจนเฉ เจฌเจฆเจฒเจฆเฉ เจชเฉเจฐเจพเจฎเฉเจเจฐเจพเจ เจจเฉเฉฐ เจ เฉฑเจชเจกเฉเจ เจเจฐเจจ เจฆเฉ เจฒเฉเฉ เจนเฉเฉฐเจฆเฉ เจนเฉ, เจคเจพเจ เจเจน เจ เจเจธเจฐ เจชเฉเจฐเฉเจเจฐเจพเจฎ เจฆเฉ เจชเฉเจเฉเจฆเจเฉ เจฆเจพ เจเจพเจฐเจจ เจฌเจฃ เจธเจเจฆเจพ เจนเฉ, เจเจฟเจเจเจเจฟ เจธเจพเจจเฉเฉฐ เจเจฟเจธเฉ เจคเจฐเฉเจนเจพเจ เจฎเจพเจชเจฆเฉฐเจกเจพเจ เจจเฉเฉฐ เจกเจฟเจฒเฉเจตเจฐ เจเจฐเจจ, เจธเจเฉเจฐ เจเจฐเจจ, เจชเจพเจฐเจธ เจเจฐเจจ เจ เจคเฉ เจเจพเจเจ เจเจฐเจจ เจ เจคเฉ เจเจฒเจค เจฎเฉเฉฑเจฒเจพเจ เจฆเฉ เจชเฉเจฐเจเจฟเจฐเจฟเจ เจเจฐเจจ เจฆเฉ เจฒเฉเฉ เจชเจตเฉเจเฉเฅค เจเจธ เจฒเจ, เจชเฉเจฐเฉเจเจฐเจพเจฎ เจฆเฉ เจเฉเฉฐเจเจฒเจคเจพ เจจเฉเฉฐ เจเจเจพเจเจฃ เจฆเฉ เจฆเฉเจฐเจฟเจธเจผเจเฉเจเฉเจฃ เจคเฉเจ, เจเจน เจฎเจพเจชเจฆเฉฐเจกเจพเจ เจฆเฉ เจธเฉฐเจเจฟเจ เจจเฉเฉฐ เจเจเจพเจเจฃเจพ เจธเจฎเจเจฆเจพ เจนเฉ เจเฉ เจชเฉเจฐเฉเจเจฐเจพเจฎ เจฆเฉ เจธเฉฐเจเจพเจฒเจจ เจฆเฉเจฐเจพเจจ เจฌเจฆเจฒ เจธเจเจฆเฉ เจนเจจ (เจเจพเจ เจ เจเจฟเจนเฉ เจฎเจพเจชเจฆเฉฐเจกเจพเจ เจฆเจพ เจธเจฎเจฐเจฅเจจ เจจเจนเฉเจ เจเจฐเจฆเฉ)เฅค
เจเจธ เจชเฉเจธเจ เจฆเฉ เจเจฆเฉเจธเจผเจพเจ เจฒเจ, เจ เจธเฉเจ เจธเจฅเจฟเจฐ เจ เจคเฉ เจเจคเฉเจธเจผเฉเจฒ เจฎเจพเจชเจฆเฉฐเจกเจพเจ เจตเจฟเฉฑเจ เจซเจฐเจ เจเจฐเจพเจเจเฉเฅค เจเฉ เจธเฉเจตเจพ เจฆเฉ เจคเจฐเจ เจจเฉเฉฐ เจชเฉเจฐเฉเจเจฐเจพเจฎ เจฆเฉ เจธเฉฐเจเจพเจฒเจจ เจฆเฉเจฐเจพเจจ เจฎเจพเจชเจฆเฉฐเจก เจฌเจฆเจฒเจฃ เจฆเฉ เจฒเฉเฉ เจนเฉเฉฐเจฆเฉ เจนเฉ, เจคเจพเจ เจ เจธเฉเจ เจ เจเจฟเจนเฉ เจชเฉเจฐเจพเจฎเฉเจเจฐเจพเจ เจจเฉเฉฐ เจเจคเฉเจธเจผเฉเจฒ เจเจนเจพเจเจเฉเฅค เจจเจนเฉเจ เจคเจพเจ เจตเจฟเจเจฒเจช เจธเจฅเจฟเจฐ เจนเจจ เจ เจคเฉ เจเฉฐเจชเจพเจเจฒ เจเฉเจคเฉ เจธเฉฐเจฐเจเจจเจพ เจฆเฉ เจตเจฐเจคเฉเจ เจเจฐเจเฉ เจธเฉฐเจฐเจเจฟเจค เจเฉเจคเฉ เจเจพ เจธเจเจฆเฉ เจนเจจเฅค เจเจคเฉเจธเจผเฉเจฒ เจชเฉเจจเจฐ-เจธเฉฐเจฐเจเจจเจพ เจฒเจ, เจธเจพเจจเฉเฉฐ เจจเจตเฉเจ เจชเฉเจฐเจพเจฎเฉเจเจฐเจพเจ เจฆเฉ เจจเจพเจฒ เจชเฉเจฐเฉเจเจฐเจพเจฎ เจฆเฉ เจญเจพเจเจพเจ เจจเฉเฉฐ เจฎเฉเฉ-เจเจพเจฒเฉ เจเจฐเจจ เจฒเจ เจเฉฑเจ เจตเจฟเจงเฉ เจฆเฉ เจฒเฉเฉ เจนเฉ เจธเจเจฆเฉ เจนเฉ, เจเจฟเจตเฉเจ เจเจฟ เจเจชเจฐเฉเจเจฟเฉฐเจ เจธเจฟเจธเจเจฎ เจชเฉเจฐเจเจฟเจฐเจฟเจเจตเจพเจ เจจเฉเฉฐ เจฎเฉเฉ-เจธเจผเฉเจฐเฉ เจเฉเจคเจพ เจเจพเจเจฆเจพ เจนเฉเฅค (เจธเจพเจกเฉ เจฐเจพเจ เจตเจฟเฉฑเจ, เจฐเฉเจ เจฒ-เจเจพเจเจฎ เจชเฉเจจเจฐ-เจธเฉฐเจฐเจเจจเจพ เจคเฉเจ เจฌเจเจฃ เจฆเฉ เจธเจฒเจพเจน เจฆเจฟเฉฑเจคเฉ เจเจพเจเจฆเฉ เจนเฉ, เจเจฟเจเจเจเจฟ เจเจน เจธเจฟเจธเจเจฎ เจฆเฉ เจเจเจฟเจฒเจคเจพ เจจเฉเฉฐ เจตเจงเจพเจเจเจฆเจพ เจนเฉเฅค เจเฉเจเจฐ เจธเฉฐเจญเจต เจนเฉเจตเฉ, เจคเจพเจ เจชเฉเจฐเจเจฟเจฐเจฟเจเจตเจพเจ เจจเฉเฉฐ เจฎเฉเฉ เจเจพเจฒเฉ เจเจฐเจจ เจฒเจ เจฎเจฟเจเจฐเฉ OS เจธเจฎเจฐเฉฑเจฅเจพเจตเจพเจ เจฆเฉ เจตเจฐเจคเฉเจ เจเจฐเจจเจพ เจฌเจฟเจนเจคเจฐ เจนเฉเฅค)
เจธเจฅเจฟเจฐ เจธเฉฐเจฐเจเจจเจพ เจฆเฉ เจตเจฐเจคเฉเจ เจเจฐเจจ เจฆเจพ เจเฉฑเจ เจฎเจนเฉฑเจคเจตเจชเฉเจฐเจจ เจชเจนเจฟเจฒเฉ เจเฉ เจฒเฉเจเจพเจ เจจเฉเฉฐ เจเจคเฉเจธเจผเฉเจฒ เจชเฉเจจเจฐ-เจธเฉฐเจฐเจเจจเจพ เจฌเจพเจฐเฉ เจตเจฟเจเจพเจฐ เจเจฐเจฆเจพ เจนเฉ, เจเจน เจธเจฎเจพเจ เจนเฉ เจเฉ เจธเจฟเจธเจเจฎ เจจเฉเฉฐ เจเฉฑเจ เจธเฉฐเจฐเจเจจเจพ เจ
เฉฑเจชเจกเฉเจ (เจกเจพเจเจจเจเจพเจเจฎ) เจคเฉเจ เจฌเจพเจ
เจฆ เจฐเฉเจฌเฉเจ เจเจฐเจจ เจตเจฟเฉฑเจ เจฒเฉฑเจเจฆเจพ เจนเฉเฅค เจตเจพเจธเจคเจต เจตเจฟเฉฑเจ, เจเฉเจเจฐ เจธเจพเจจเฉเฉฐ เจธเจฅเจฟเจฐ เจธเฉฐเจฐเจเจจเจพ เจตเจฟเฉฑเจ เจคเจฌเจฆเฉเจฒเฉเจเจ เจเจฐเจจ เจฆเฉ เจฒเฉเฉ เจนเฉ, เจคเจพเจ เจธเจพเจจเฉเฉฐ เจจเจตเฉเจ เจฎเฉเฉฑเจฒเจพเจ เจจเฉเฉฐ เจชเฉเจฐเจญเจพเจตเฉ เจเจฐเจจ เจฒเจ เจธเจฟเจธเจเจฎ เจจเฉเฉฐ เจฎเฉเฉ เจเจพเจฒเฉ เจเจฐเจจเจพ เจชเจตเฉเจเจพเฅค เจตเฉฑเจ-เจตเฉฑเจ เจชเฉเจฐเจฃเจพเจฒเฉเจเจ เจฒเจ เจกเจพเจเจจเจเจพเจเจฎ เจธเจฎเฉฑเจธเจฟเจ เจเฉฐเจญเฉเจฐเจคเจพ เจตเจฟเฉฑเจ เจตเฉฑเจเจฐเฉ เจนเฉเฉฐเจฆเฉ เจนเฉเฅค เจเฉเจ เจฎเจพเจฎเจฒเจฟเจเจ เจตเจฟเฉฑเจ, เจคเฉเจธเฉเจ เจเจธ เจธเจฎเฉเจ เจเฉฑเจ เจฐเฉเจฌเฉเจ เจจเฉเฉฐ เจคเจนเจฟ เจเจฐ เจธเจเจฆเฉ เจนเฉ เจเจฆเฉเจ เจฒเฉเจก เจเฉฑเจ เจนเฉเจตเฉเฅค เจเฉเจเจฐ เจคเฉเจนเจพเจจเฉเฉฐ เจฒเจเจพเจคเจพเจฐ เจธเฉเจตเจพ เจชเฉเจฐเจฆเจพเจจ เจเจฐเจจ เจฆเฉ เจฒเฉเฉ เจนเฉ, เจคเจพเจ เจคเฉเจธเฉเจ เจฒเจพเจเฉ เจเจฐ เจธเจเจฆเฉ เจนเฉ
เจเจ เจนเฉเจฃ เจเจฐเจเฉเจซเฉเจเจ เจฆเฉ เจ เฉฐเจฆเจฐ เจเจพเจ เจฌเจพเจนเจฐ เจธเฉฐเจฐเจเจจเจพ เจจเฉเฉฐ เจธเจเฉเจฐ เจเจฐเจจ เจฆเฉ เจฎเฉเฉฑเจฆเฉ 'เจคเฉ เจตเจฟเจเจพเจฐ เจเจฐเฉเจเฅค เจเฉ เจ เจธเฉเจ เจเฉฑเจ เจเจฐเจเฉเจซเฉเจเจ เจฆเฉ เจ เฉฐเจฆเจฐ เจธเฉฐเจฐเจเจจเจพ เจจเฉเฉฐ เจธเจเฉเจฐ เจเจฐเจฆเฉ เจนเจพเจ, เจคเจพเจ เจเฉฑเจเฉ เจเฉฑเจ เจธเจพเจกเฉ เจเฉเจฒ เจเจฐเจเฉเจซเฉเจเจ เจฆเฉ เจ เจธเฉเจเจฌเจฒเฉ เจฆเฉ เจฆเฉเจฐเจพเจจ เจธเฉฐเจฐเจเจจเจพ เจฆเฉ เจธเจผเฉเฉฑเจงเจคเจพ เจฆเฉ เจชเฉเจธเจผเจเฉ เจเจฐเจจ เจฆเจพ เจฎเฉเจเจพ เจธเฉเฅค เจเฉเจเจฐ เจเฉเจเจซเจฟเจเจฐเฉเจธเจผเจจ เจจเจฟเจฏเฉฐเจคเจฐเจฟเจค เจเจฐเจเฉเจซเฉเจเจ เจคเฉเจ เจฌเจพเจนเจฐ เจนเฉ, เจคเจพเจ เจเจน เจชเจคเจพ เจฒเจเจพเจเจฃเจพ เจฎเฉเจธเจผเจเจฒ เจนเฉ เจเจฟ เจเจธ เจซเจพเจเจฒ เจตเจฟเฉฑเจ เจเจฟเจธเจจเฉ เจ เจคเฉ เจเจฟเจเจ เจคเจฌเจฆเฉเจฒเฉเจเจ เจเฉเจคเฉเจเจ เจนเจจเฅค เจเจน เจเจฟเฉฐเจจเจพ เจเจผเจฐเฉเจฐเฉ เจนเฉ? เจธเจพเจกเฉ เจฐเจพเจ เจตเจฟเฉฑเจ, เจฌเจนเฉเจค เจธเจพเจฐเฉ เจเจคเจชเจพเจฆเจจ เจชเฉเจฐเจฃเจพเจฒเฉเจเจ เจฒเจ เจเฉฑเจ เจธเจฅเจฟเจฐ เจ เจคเฉ เจเฉฑเจ-เจเฉเจฃเจตเฉฑเจคเจพ เจธเฉฐเจฐเจเจจเจพ เจนเฉเจฃเจพ เจฎเจนเฉฑเจคเจตเจชเฉเจฐเจจ เจนเฉ.
เจเจฐเจเฉเจซเฉเจเจ เจฆเจพ เจธเฉฐเจธเจเจฐเจฃ เจคเฉเจนเจพเจจเฉเฉฐ เจเจน เจจเจฟเจฐเจงเจพเจฐเจค เจเจฐเจจ เจฆเฉ เจเจเจพเจเจผเจค เจฆเจฟเฉฐเจฆเจพ เจนเฉ เจเจฟ เจเจน เจเจฆเฉเจ เจฌเจฃเจพเจเจ เจเจฟเจ เจธเฉ, เจเจธ เจตเจฟเฉฑเจ เจเจฟเจนเฉเฉ เจฎเฉเฉฑเจฒ เจธเจผเจพเจฎเจฒ เจนเจจ, เจเจฟเจนเฉเฉ เจซเฉฐเจเจธเจผเจจ เจธเจฎเจฐเฉฑเจฅ/เจ เจฏเฉเจ เจนเจจ, เจ เจคเฉ เจเฉเจเจซเจฟเจเจฐเฉเจธเจผเจจ เจตเจฟเฉฑเจ เจเจฟเจธเฉ เจตเฉ เจคเจฌเจฆเฉเจฒเฉ เจฒเจ เจเฉเจฃ เจเจผเจฟเฉฐเจฎเฉเจตเจพเจฐ เจนเฉเฅค เจฌเฉเจธเจผเฉฑเจ, เจเฉฑเจ เจเจฐเจเฉเจซเฉเจเจ เจฆเฉ เจ เฉฐเจฆเจฐ เจธเฉฐเจฐเจเจจเจพ เจจเฉเฉฐ เจธเจเฉเจฐ เจเจฐเจจ เจฒเจ เจเฉเจ เจเจคเจจเจพเจ เจฆเฉ เจฒเฉเฉ เจนเฉเฉฐเจฆเฉ เจนเฉ, เจเจธ เจฒเจ เจคเฉเจนเจพเจจเฉเฉฐ เจเฉฑเจ เจธเฉเจเจฟเจค เจซเฉเจธเจฒเจพ เจฒเฉเจฃ เจฆเฉ เจฒเฉเฉ เจนเฉเฉฐเจฆเฉ เจนเฉเฅค
เจฒเจพเจญ เจ เจคเฉ เจนเจพเจจเฉเจเจ
เจฎเฉเจ เจชเฉเจฐเจธเจคเจพเจตเจฟเจค เจคเจเจจเจพเจฒเฉเจเฉ เจฆเฉ เจเฉฐเจเฉ เจ เจคเฉ เจจเฉเจเจธเจพเจจเจพเจ 'เจคเฉ เจงเจฟเจเจจ เจฆเฉเจฃเจพ เจเจพเจนเจพเจเจเจพเฅค
เจฒเจพเจญ
เจนเฉเจ เจพเจ เจเฉฑเจ เจเฉฐเจชเจพเจเจฒเจก เจกเจฟเจธเจเฉเจฐเฉเจฌเจฟเจเจเจฟเจก เจธเจฟเจธเจเจฎ เจเฉเจเจซเจฟเจเจฐเฉเจธเจผเจจ เจฆเฉเจเจ เจฎเฉเฉฑเจ เจตเจฟเจธเจผเฉเจธเจผเจคเจพเจตเจพเจ เจฆเฉ เจเฉฑเจ เจธเฉเจเฉ เจนเฉ:
- เจธเจฅเจฟเจฐ เจธเฉฐเจฐเจเจจเจพ เจเจพเจเจเฅค เจคเฉเจนเจพเจจเฉเฉฐ เจเจน เจฏเจเฉเจจเฉ เจฌเจฃเจพเจเจฃ เจฒเจ เจธเจนเจพเจเจ เจนเฉ
เจธเฉฐเจฐเจเจจเจพ เจธเจนเฉ เจนเฉเฅค - เจ
เจฎเฉเจฐ เจธเฉฐเจฐเจเจจเจพ เจญเจพเจธเจผเจพ. เจเจฎ เจคเฉเจฐ 'เจคเฉ, เจนเฉเจฐ เจธเฉฐเจฐเจเจจเจพ เจตเจฟเจงเฉเจเจ เจตเฉฑเจง เจคเฉเจ เจตเฉฑเจง เจธเจเฉเจฐเจฟเฉฐเจ เจตเฉเจฐเฉเจเจฌเจฒ เจฌเจฆเจฒ เจคเฉฑเจ เจธเฉเจฎเจฟเจค เจนเฉเฉฐเจฆเฉเจเจ เจนเจจเฅค Scala เจฆเฉ เจตเจฐเจคเฉเจ เจเจฐเจฆเฉ เจธเจฎเฉเจ, เจคเฉเจนเจพเจกเฉ เจธเฉฐเจฐเจเจจเจพ เจจเฉเฉฐ เจฌเจฟเจนเจคเจฐ เจฌเจฃเจพเจเจฃ เจฒเจ เจญเจพเจธเจผเจพ เจฆเฉเจเจ เจตเจฟเจธเจผเฉเจธเจผเจคเจพเจตเจพเจ เจฆเฉ เจเฉฑเจ เจตเจฟเจธเจผเจพเจฒ เจธเจผเฉเจฐเฉเจฃเฉ เจเจชเจฒเจฌเจง เจนเฉเฉฐเจฆเฉ เจนเฉเฅค เจเจฆเจพเจนเจฐเจฃ เจตเจเฉเจ เจ
เจธเฉเจ เจตเจฐเจค เจธเจเจฆเฉ เจนเจพเจ
เจกเจฟเจซเจพเจฒเจ เจฎเฉเฉฑเจฒเจพเจ เจฒเจ เจเฉเจฃ, เจธเจฎเฉเจน เจชเฉเจฐเจพเจฎเฉเจเจฐเจพเจ เจฒเจ เจเจฌเจเฉเจเจ เจฆเฉ เจตเจฐเจคเฉเจ เจเจฐเจฆเฉ เจนเฉเจ, เจ เจธเฉเจ เจเจจเจเจฒเฉเจเจผเจฟเฉฐเจ เจธเจเฉเจช เจตเจฟเฉฑเจ เจธเจฟเจฐเจซ เจเฉฑเจ เจตเจพเจฐ เจเฉเจธเจผเจฟเจค เจเฉเจคเฉ เจตเจพเจฒเจพเจ (DRY) เจฆเจพ เจนเจตเจพเจฒเจพ เจฆเฉ เจธเจเจฆเฉ เจนเจพเจเฅค เจคเฉเจธเฉเจ เจเจฟเจธเฉ เจตเฉ เจเจฒเจพเจธ เจจเฉเฉฐ เจธเจฟเฉฑเจงเฉ เจธเฉฐเจฐเจเจจเจพ เจฆเฉ เจ เฉฐเจฆเจฐ เจธเจผเฉเจฐเฉ เจเจฐ เจธเจเจฆเฉ เจนเฉ (Seq
,Map
, เจเจธเจเจฎ เจเจฒเจพเจธเจพเจ)เฅค - DSL. Scala เจตเจฟเฉฑเจ เจฌเจนเฉเจค เจธเจพเจฐเฉเจเจ เจญเจพเจธเจผเจพ เจตเจฟเจธเจผเฉเจธเจผเจคเจพเจตเจพเจ เจนเจจ เจเฉ เจเฉฑเจ DSL เจฌเจฃเจพเจเจฃเจพ เจเจธเจพเจจ เจฌเจฃเจพเจเจเจฆเฉเจเจ เจนเจจเฅค เจเจนเจจเจพเจ เจตเจฟเจธเจผเฉเจธเจผเจคเจพเจตเจพเจ เจฆเจพ เจซเจพเจเจฆเจพ เจเจ เจพเจเจฃเจพ เจ เจคเฉ เจเฉฑเจ เจธเฉฐเจฐเจเจจเจพ เจญเจพเจธเจผเจพ เจจเฉเฉฐ เจฒเจพเจเฉ เจเจฐเจจเจพ เจธเฉฐเจญเจต เจนเฉ เจเฉ เจเจชเจญเฉเจเจคเจพเจตเจพเจ เจฆเฉ เจเฉเจเฉ เจธเจฎเฉเจน เจฒเจ เจตเจงเฉเจฐเฉ เจธเฉเจตเจฟเจงเจพเจเจจเจ เจนเฉ, เจคเจพเจ เจเฉ เจธเฉฐเจฐเจเจจเจพ เจเฉฑเจเฉ เจเฉฑเจ เจกเฉเจฎเฉเจจ เจฎเจพเจนเจฐเจพเจ เจฆเฉเจเจฐเจพ เจชเฉเฉเจนเจจเจฏเฉเจ เจนเฉเจตเฉเฅค เจฎเจพเจนเจฐ, เจเจฆเจพเจนเจฐเจจ เจฒเจ, เจธเฉฐเจฐเจเจจเจพ เจธเจฎเฉเจเจฟเจ เจชเฉเจฐเจเจฟเจฐเจฟเจ เจตเจฟเฉฑเจ เจนเจฟเฉฑเจธเจพ เจฒเฉ เจธเจเจฆเฉ เจนเจจเฅค
- เจจเฉเจกเจพเจ เจตเจฟเจเจเจพเจฐ เจเจเจธเจพเจฐเจคเจพ เจ เจคเฉ เจธเจฎเจเจพเจฒเฉเฅค เจเฉฑเจ เจธเจฟเฉฐเจเจฒ เจฌเจฟเฉฐเจฆเฉ 'เจคเฉ เจธเจเฉเจฐ เจเฉเจคเฉ เจเฉฑเจ เจชเฉเจฐเฉ เจกเจฟเจธเจเจฐเฉเจฌเจฟเจเจเจก เจธเจฟเจธเจเจฎ เจฆเฉ เจธเฉฐเจฐเจเจจเจพ เจนเฉเจฃ เจฆเจพ เจเฉฑเจ เจซเจพเจเจฆเจพ เจเจน เจนเฉ เจเจฟ เจธเจพเจฐเฉ เจฎเฉเฉฑเจฒเจพเจ เจจเฉเฉฐ เจเฉฑเจ เจตเจพเจฐ เจเฉเจธเจผเจฟเจค เจเฉเจคเจพ เจเจพเจเจฆเจพ เจนเฉ เจ เจคเฉ เจซเจฟเจฐ เจเจฟเฉฑเจฅเฉ เจตเฉ เจเจนเจจเจพเจ เจฆเฉ เจฒเฉเฉ เจนเฉเฉฐเจฆเฉ เจนเฉ, เจฆเฉเจฌเจพเจฐเจพ เจตเจฐเจคเฉเจ เจเฉเจคเฉ เจเจพเจเจฆเฉ เจนเฉเฅค เจชเฉเจฐเจเจพเจ เจจเฉเฉฐ เจเฉเจธเจผเจฟเจค เจเจฐเจจ เจฒเจ เจซเฉเจเจเจฎ เจเจฟเจธเจฎเจพเจ เจฆเฉ เจตเจฐเจคเฉเจ เจเจฐเจจเจพ เจฏเจเฉเจจเฉ เจฌเจฃเจพเจเจเจฆเจพ เจนเฉ เจเจฟ เจจเฉเจก เจธเจพเจฐเฉเจเจ เจธเจนเฉ เจธเจฟเจธเจเจฎ เจธเฉฐเจฐเจเจจเจพเจตเจพเจ เจตเจฟเฉฑเจ เจ เจจเฉเจเฉเจฒ เจชเฉเจฐเฉเจเฉเจเฉเจฒ เจตเจฐเจค เจฐเจนเฉ เจนเจจเฅค เจจเฉเจกเจพเจ เจตเจฟเจเจเจพเจฐ เจธเจชเฉฑเจธเจผเจ เจฒเจพเจเจผเจฎเฉ เจจเจฟเจฐเจญเจฐเจคเจพ เจนเฉเจฃ เจจเจพเจฒ เจเจน เจฏเจเฉเจจเฉ เจนเฉเฉฐเจฆเจพ เจนเฉ เจเจฟ เจธเจพเจฐเฉเจเจ เจธเฉเจตเจพเจตเจพเจ เจเฉเฉเฉเจเจ เจนเฉเจเจเจ เจนเจจเฅค
- เจเฉฑเจ เจเฉเจฃเจตเฉฑเจคเจพ เจตเจฟเฉฑเจ เจฌเจฆเจฒเจพเจ . เจเฉฑเจ เจธเจพเจเจเฉ เจตเจฟเจเจพเจธ เจชเฉเจฐเจเจฟเจฐเจฟเจ เจฆเฉ เจตเจฐเจคเฉเจ เจเจฐเจเฉ เจธเฉฐเจฐเจเจจเจพ เจตเจฟเฉฑเจ เจคเจฌเจฆเฉเจฒเฉเจเจ เจเจฐเจจ เจจเจพเจฒ เจธเฉฐเจฐเจเจจเจพ เจฒเจ เจเฉฑเจ เจเฉเจฃเจตเฉฑเจคเจพ เจตเจพเจฒเฉ เจฎเจฟเจเจฐเจพเจ เจจเฉเฉฐ เจชเฉเจฐเจพเจชเจค เจเจฐเจจเจพ เจตเฉ เจธเฉฐเจญเจต เจนเฉ เจเจพเจเจฆเจพ เจนเฉเฅค
- เจธเจฎเจเจพเจฒเฉ เจธเฉฐเจฐเจเจจเจพ เจ เฉฑเจชเจกเฉเจ. เจธเฉฐเจฐเจเจจเจพ เจคเจฌเจฆเฉเจฒเฉเจเจ เจคเฉเจ เจฌเจพเจ เจฆ เจเจเฉเจฎเฉเจเจฟเจ เจธเจฟเจธเจเจฎ เจคเฉเจจเจพเจคเฉ เจฏเจเฉเจจเฉ เจฌเจฃเจพเจเจเจฆเจพ เจนเฉ เจเจฟ เจธเจพเจฐเฉ เจจเฉเจก เจ เฉฑเจชเจกเฉเจ เจเฉเจคเฉ เจเจ เจนเจจเฅค
- เจเจชเจฒเฉเจเฉเจธเจผเจจ เจจเฉเฉฐ เจธเจฐเจฒ เจฌเจฃเจพเจเจฃเจพ. เจเจชเจฒเฉเจเฉเจธเจผเจจ เจจเฉเฉฐ เจชเจพเจฐเจธเจฟเฉฐเจ, เจธเฉฐเจฐเจเจจเจพ เจเจพเจเจ, เจเจพเจ เจเจฒเจค เจฎเฉเฉฑเจฒเจพเจ เจจเฉเฉฐ เจธเฉฐเจญเจพเจฒเจฃ เจฆเฉ เจฒเฉเฉ เจจเจนเฉเจ เจนเฉเฅค เจเจน เจเจชเจฒเฉเจเฉเจธเจผเจจ เจฆเฉ เจเฉเฉฐเจเจฒเจคเจพ เจจเฉเฉฐ เจเจเจพเจเจเจฆเจพ เจนเฉ. (เจธเจพเจกเฉ เจเจฆเจพเจนเจฐเจจ เจตเจฟเฉฑเจ เจฆเฉเจเฉ เจเจ เจเฉเจ เจธเฉฐเจฐเจเจจเจพ เจเจเจฟเจฒเจคเจพ เจเฉฐเจชเจพเจเจฒ เจเฉเจคเฉ เจธเฉฐเจฐเจเจจเจพ เจฆเฉ เจตเจฟเจธเจผเฉเจธเจผเจคเจพ เจจเจนเฉเจ เจนเฉ, เจชเจฐ เจธเจฟเจฐเจซ เจเฉฑเจ เจธเฉเจเฉเจค เจซเฉเจธเจฒเจพ เจนเฉ เจเฉ เจเจฟ เจตเจงเฉเจฐเฉ เจเจฟเจธเจฎ เจฆเฉ เจธเฉเจฐเฉฑเจเจฟเจ เจชเฉเจฐเจฆเจพเจจ เจเจฐเจจ เจฆเฉ เจเฉฑเจเจพ เจฆเฉเจเจฐเจพ เจธเฉฐเจเจพเจฒเจฟเจค เจนเฉเฅค) เจเจฎ เจธเฉฐเจฐเจเจจเจพ เจคเฉ เจตเจพเจชเจธ เจเจพเจฃเจพ เจเจพเจซเจผเฉ เจเจธเจพเจจ เจนเฉ - เจฌเจธ เจเฉเฉฐเจฎ เจจเฉเฉฐ เจฒเจพเจเฉ เจเจฐเฉ เจนเจฟเฉฑเจธเฉ. เจเจธ เจฒเจ, เจคเฉเจธเฉเจ, เจเจฆเจพเจนเจฐเจจ เจฒเจ, เจเฉฑเจ เจเฉฐเจชเจพเจเจฒ เจเฉเจคเฉ เจธเฉฐเจฐเจเจจเจพ เจจเจพเจฒ เจธเจผเฉเจฐเฉ เจเจฐ เจธเจเจฆเฉ เจนเฉ, เจฌเฉเจฒเฉเฉเฉ เจนเจฟเฉฑเจธเจฟเจเจ เจจเฉเฉฐ เจฒเจพเจเฉ เจเจฐเจจ เจจเฉเฉฐ เจเจฆเฉเจ เจคเฉฑเจ เจฎเฉเจฒเจคเจตเฉ เจเจฐ เจธเจเจฆเฉ เจนเฉ เจเจฆเฉเจ เจคเฉฑเจ เจเจน เจ เจธเจฒ เจตเจฟเฉฑเจ เจฒเฉเฉเฉเจเจฆเจพ เจนเฉ.
- เจชเฉเจฐเจฎเจพเจฃเจฟเจค เจธเฉฐเจฐเจเจจเจพเฅค เจเจฟเจเจเจเจฟ เจธเฉฐเจฐเจเจจเจพ เจคเจฌเจฆเฉเจฒเฉเจเจ เจเจฟเจธเฉ เจนเฉเจฐ เจคเจฌเจฆเฉเจฒเฉเจเจ เจฆเฉ เจเจฎ เจเจฟเจธเจฎเจค เจฆเฉ เจชเจพเจฒเจฃเจพ เจเจฐเจฆเฉเจเจ เจนเจจ, เจเจธ เจฒเจ เจธเจพเจจเฉเฉฐ เจเฉ เจเจเจเจชเฉเฉฑเจ เจฎเจฟเจฒเจฆเจพ เจนเฉ เจเจน เจเฉฑเจ เจตเจฟเจฒเฉฑเจเจฃ เจธเฉฐเจธเจเจฐเจฃ เจฆเฉ เจจเจพเจฒ เจเฉฑเจ เจเจฒเจพเจคเจฎเจ เจนเฉเฉฐเจฆเจพ เจนเฉเฅค เจเจน เจธเจพเจจเฉเฉฐ, เจเจฆเจพเจนเจฐเจจ เจฒเจ, เจเฉเจเจฐ เจฒเฉเฉ เจนเฉเจตเฉ เจคเจพเจ เจธเฉฐเจฐเจเจจเจพ เจฆเฉ เจชเจฟเจเจฒเฉ เจธเฉฐเจธเจเจฐเจฃ 'เจคเฉ เจตเจพเจชเจธ เจเจพเจฃ เจฆเฉ เจเจเจพเจเจผเจค เจฆเจฟเฉฐเจฆเจพ เจนเฉเฅค เจ เจธเฉเจ เจเฉฑเจ เจธเจพเจฒ เจชเจนเจฟเจฒเจพเจ เจฆเฉ เจธเฉฐเจฐเจเจจเจพ เจฆเฉ เจตเจฐเจคเฉเจ เจตเฉ เจเจฐ เจธเจเจฆเฉ เจนเจพเจ เจ เจคเฉ เจธเจฟเจธเจเจฎ เจฌเจฟเจฒเจเฉเจฒ เจเจธเฉ เจคเจฐเฉเจนเจพเจ เจเฉฐเจฎ เจเจฐเฉเจเจพเฅค เจเฉฑเจ เจธเจฅเจฟเจฐ เจธเฉฐเจฐเจเจจเจพ เจเฉฑเจ เจตเฉฐเจกเฉ เจธเจฟเจธเจเจฎ เจฆเฉ เจญเจตเจฟเฉฑเจเจฌเจพเจฃเฉ เจ เจคเฉ เจญเจฐเฉเจธเฉเจฏเฉเจเจคเจพ เจตเจฟเฉฑเจ เจธเฉเจงเจพเจฐ เจเจฐเจฆเฉ เจนเฉเฅค เจเจฟเจเจเจเจฟ เจธเฉฐเจฐเจเจจเจพ เจจเฉเฉฐ เจธเฉฐเจเจฒเจจ เจฆเฉ เจชเฉเจพเจ 'เจคเฉ เจจเจฟเจธเจผเจเจฟเจค เจเฉเจคเจพ เจเจฟเจ เจนเฉ, เจเจธ เจฒเจ เจเจธเจจเฉเฉฐ เจเจคเจชเจพเจฆเจจ เจตเจฟเฉฑเจ เจเจพเจ เจฒเฉ เจฌเจฃเจพเจเจฃเจพ เจเจพเจซเจผเฉ เจฎเฉเจธเจผเจเจฒ เจนเฉเฅค
- เจฎเจพเจกเจฟเจเจฒเจฐเจฟเจเฉเฅค เจชเฉเจฐเจธเจคเจพเจตเจฟเจค เจซเจฐเฉเจฎเจตเจฐเจ เจฎเจพเจกเจฟเจเจฒเจฐ เจนเฉ เจ เจคเฉ เจตเฉฑเจ-เจตเฉฑเจ เจชเฉเจฐเจฃเจพเจฒเฉเจเจ เจจเฉเฉฐ เจฌเจฃเจพเจเจฃ เจฒเจ เจฎเฉเจกเจฟเจเจฒเจพเจ เจจเฉเฉฐ เจตเฉฑเจ-เจตเฉฑเจ เจคเจฐเฉเจเจฟเจเจ เจจเจพเจฒ เจเฉเฉเจฟเจ เจเจพ เจธเจเจฆเจพ เจนเฉเฅค เจเจพเจธ เจคเฉเจฐ 'เจคเฉ, เจคเฉเจธเฉเจ เจธเจฟเจธเจเจฎ เจจเฉเฉฐ เจเฉฑเจ เจฐเฉเจช เจตเจฟเฉฑเจ เจเฉฑเจ เจธเจฟเฉฐเจเจฒ เจจเฉเจก 'เจคเฉ เจเจฒเจพเจเจฃ เจฒเจ, เจ เจคเฉ เจฆเฉเจเฉ เจตเจฟเฉฑเจ เจเจ เจจเฉเจกเจพเจ 'เจคเฉ เจเจฒเจพเจเจฃ เจฒเจ เจธเฉฐเจฐเจเจฟเจค เจเจฐ เจธเจเจฆเฉ เจนเฉเฅค เจคเฉเจธเฉเจ เจธเจฟเจธเจเจฎ เจฆเฉ เจเจคเจชเจพเจฆเจจ เจเจฆเจพเจนเจฐเจจเจพเจ เจฒเจ เจเจ เจธเฉฐเจฐเจเจจเจพเจตเจพเจ เจฌเจฃเจพ เจธเจเจฆเฉ เจนเฉเฅค
- เจเฉเจธเจเจฟเฉฐเจ. เจตเจฟเจ เจเจคเฉเจเจค เจธเฉเจตเจพเจตเจพเจ เจจเฉเฉฐ เจจเจเจฒเฉ เจตเจธเจคเฉเจเจ เจจเจพเจฒ เจฌเจฆเจฒ เจเฉ, เจคเฉเจธเฉเจ เจธเจฟเจธเจเจฎ เจฆเฉ เจเจ เจธเฉฐเจธเจเจฐเจฃ เจชเฉเจฐเจพเจชเจค เจเจฐ เจธเจเจฆเฉ เจนเฉ เจเฉ เจเจพเจเจ เจฒเจ เจธเฉเจตเจฟเจงเจพเจเจจเจ เจนเจจเฅค
- เจเจเฉเจเจฐเจฃ เจเฉเจธเจเจฟเฉฐเจ. เจชเฉเจฐเฉ เจตเจฟเจคเจฐเจฟเจค เจธเจฟเจธเจเจฎ เจฒเจ เจเฉฑเจ เจธเจฟเฉฐเจเจฒ เจเฉเจเจซเจฟเจเจฐเฉเจธเจผเจจ เจนเฉเจฃ เจจเจพเจฒ เจเจเฉเจเจฐเจฃ เจเฉเจธเจเจฟเฉฐเจ เจฆเฉ เจนเจฟเฉฑเจธเฉ เจตเจเฉเจ เจเฉฑเจ เจจเจฟเจฏเฉฐเจคเจฐเจฟเจค เจตเจพเจคเจพเจตเจฐเจฃ เจตเจฟเฉฑเจ เจธเจพเจฐเฉ เจญเจพเจเจพเจ เจจเฉเฉฐ เจเจฒเจพเจเจฃเจพ เจธเฉฐเจญเจต เจนเฉ เจเจพเจเจฆเจพ เจนเฉเฅค เจเจน เจจเจเจฒ เจเจฐเจจเจพ เจเจธเจพเจจ เจนเฉ, เจเจฆเจพเจนเจฐเจจ เจฒเจ, เจ เจเจฟเจนเฉ เจธเจฅเจฟเจคเฉ เจเจฟเฉฑเจฅเฉ เจเฉเจ เจจเฉเจก เจชเจนเฉเฉฐเจเจฏเฉเจ เจนเฉ เจเจพเจเจฆเฉ เจนเจจเฅค
เจจเฉเจเจธเจพเจจ เจ เจคเฉ เจธเฉเจฎเจพเจตเจพเจ
เจเฉฐเจชเจพเจเจฒ เจเฉเจคเฉ เจธเฉฐเจฐเจเจจเจพ เจนเฉเจฐ เจธเฉฐเจฐเจเจจเจพ เจชเจนเฉเฉฐเจเจพเจ เจคเฉเจ เจตเฉฑเจเจฐเฉ เจนเฉ เจ เจคเฉ เจเฉเจ เจเจชเจฒเฉเจเฉเจธเจผเจจเจพเจ เจฒเจ เจขเฉเจเจตเฉเจ เจจเจนเฉเจ เจนเฉ เจธเจเจฆเฉเฅค เจนเฉเจ เจพเจ เจเฉเจ เจจเฉเจเจธเจพเจจ เจนเจจ:
- เจธเจฅเจฟเจฐ เจธเฉฐเจฐเจเจจเจพเฅค เจเจ เจตเจพเจฐ เจคเฉเจนเจพเจจเฉเฉฐ เจเจคเจชเจพเจฆเจจ เจตเจฟเฉฑเจ เจธเฉฐเจฐเจเจจเจพ เจจเฉเฉฐ เจคเฉเจเจผเฉ เจจเจพเจฒ เจ เฉเจ เจเจฐเจจ เจฆเฉ เจฒเฉเฉ เจนเฉเฉฐเจฆเฉ เจนเฉ, เจธเจพเจฐเฉ เจธเฉเจฐเฉฑเจเจฟเจ เจชเฉเจฐเจฃเจพเจฒเฉเจเจ เจจเฉเฉฐ เจเฉฑเจก เจเฉ. เจเจธ เจชเจนเฉเฉฐเจ เจจเจพเจฒ เจเจน เจนเฉเจฐ เจฎเฉเจธเจผเจเจฒ เจนเฉ เจธเจเจฆเจพ เจนเฉ. เจฌเจนเฉเจค เจเฉฑเจ เจคเฉเจ เจเฉฑเจ, เจธเฉฐเจเจฒเจจ เจ เจคเฉ เจเจเฉเจฎเฉเจเจฟเจ เจคเฉเจจเจพเจคเฉ เจฆเฉ เจ เจเฉ เจตเฉ เจฒเฉเฉ เจนเฉเจตเฉเจเฉเฅค เจเจน เจชเจนเฉเฉฐเจ เจฆเฉ เจเฉฑเจ เจฒเจพเจญเจฆเจพเจเจ เจตเจฟเจธเจผเฉเจธเจผเจคเจพ เจนเฉ เจ เจคเฉ เจเฉเจ เจฎเจพเจฎเจฒเจฟเจเจ เจตเจฟเฉฑเจ เจเฉฑเจ เจจเฉเจเจธเจพเจจ เจนเฉเฅค
- เจธเฉฐเจฐเจเจจเจพ เจชเฉเฉเฉเจนเฉ. เจเฉเจเจฐ เจธเฉฐเจฐเจเจจเจพ เจซเจพเจเจฒ เจเฉฑเจ เจเจเฉเจฎเฉเจเจฟเจ เจเฉเจฒ เจฆเฉเจเจฐเจพ เจคเจฟเจเจฐ เจเฉเจคเฉ เจเจพเจเจฆเฉ เจนเฉ, เจคเจพเจ เจฌเจฟเจฒเจก เจธเจเฉเจฐเจฟเจชเจ เจจเฉเฉฐ เจเจเฉเจเฉเจฐเจฟเจค เจเจฐเจจ เจฒเจ เจตเจพเจงเฉ เจเฉเจธเจผเจฟเจธเจผเจพเจ เจฆเฉ เจฒเฉเฉ เจนเฉ เจธเจเจฆเฉ เจนเฉเฅค
- เจธเฉฐเจฆเฅค เจตเจฐเจคเจฎเจพเจจ เจตเจฟเฉฑเจ, เจธเฉฐเจฐเจเจจเจพ เจจเจพเจฒ เจเฉฐเจฎ เจเจฐเจจ เจฒเจ เจคเจฟเจเจฐ เจเฉเจคเฉเจเจ เจธเจนเฉเจฒเจคเจพเจ เจ เจคเฉ เจคเจเจจเฉเจเจพเจ เจเฉเจเจธเจ เจซเจพเจเจฒเจพเจ 'เจคเฉ เจ เจงเจพเจฐเจค เจนเจจเฅค เจ เจเจฟเจนเฉเจเจ เจธเจพเจฐเฉเจเจ เจเจชเจฏเฉเจเจคเจพเจตเจพเจ/เจคเจเจจเฉเจเจพเจ เจเฉฑเจ เจธเฉฐเจเจฒเจฟเจค เจธเฉฐเจฐเจเจจเจพ เจตเจฟเฉฑเจ เจเจชเจฒเจฌเจง เจจเจนเฉเจ เจนเฉเจฃเจเฉเจเจเฅค
- เจฐเจตเฉฑเจเจ เจตเจฟเฉฑเจ เจคเจฌเจฆเฉเจฒเฉ เจฆเฉ เจฒเฉเฉ เจนเฉเฅค เจกเจฟเจตเฉเจฒเจชเจฐ เจ เจคเฉ DevOps เจเฉเจเจธเจ เจซเจพเจเจฒเจพเจ เจฆเฉ เจเจฆเฉ เจนเจจเฅค เจเฉฑเจ เจธเฉฐเจฐเจเจจเจพ เจเฉฐเจชเจพเจเจฒ เจเจฐเจจ เจฆเจพ เจฌเจนเฉเจค เจนเฉ เจตเจฟเจเจพเจฐ เจฅเฉเฉเจพ เจ เจเจพเจจเจ เจ เจคเฉ เจ เจธเจพเจงเจพเจฐเจจ เจนเฉ เจธเจเจฆเจพ เจนเฉ เจ เจคเฉ เจ เจธเจตเฉเจเจพเจฐ เจฆเจพ เจเจพเจฐเจจ เจฌเจฃ เจธเจเจฆเจพ เจนเฉเฅค
- เจเฉฑเจ เจเฉฑเจ เจเฉเจฃเจตเฉฑเจคเจพ เจตเจฟเจเจพเจธ เจชเฉเจฐเจเจฟเจฐเจฟเจ เจฆเฉ เจฒเฉเฉ เจนเฉ. เจเฉฐเจชเจพเจเจฒ เจเฉเจคเฉ เจธเฉฐเจฐเจเจจเจพ เจจเฉเฉฐ เจเจฐเจพเจฎ เจจเจพเจฒ เจตเจฐเจคเจฃ เจฒเจ, เจเจชเจฒเฉเจเฉเจธเจผเจจ (CI/CD) เจจเฉเฉฐ เจฌเจฃเจพเจเจฃ เจ เจคเฉ เจคเฉเจจเจพเจค เจเจฐเจจ เจฆเฉ เจชเฉเจฐเจเจฟเจฐเจฟเจ เจฆเจพ เจชเฉเจฐเจพ เจเจเฉเจฎเฉเจธเจผเจจ เจเจผเจฐเฉเจฐเฉ เจนเฉเฅค เจจเจนเฉเจ เจคเจพเจ เจเจน เจเจพเจซเจผเฉ เจ เจธเฉเจตเจฟเจงเจพเจเจจเจ เจนเฉเจตเฉเจเจพ.
เจเจ เจ เจธเฉเจ เจตเจฟเจเจพเจฐเฉ เจเจ เจเจฆเจพเจนเจฐเจฃ เจฆเฉเจเจ เจเจ เจธเฉเจฎเจพเจตเจพเจ 'เจคเฉ เจตเฉ เจงเจฟเจเจจ เจฆเฉเจเจ เจเฉ เจเฉฑเจ เจธเฉฐเจเจฒเจฟเจค เจธเฉฐเจฐเจเจจเจพ เจฆเฉ เจตเจฟเจเจพเจฐ เจจเจพเจฒ เจธเจฌเฉฐเจงเจค เจจเจนเฉเจ เจนเจจ:
- เจเฉเจเจฐ เจ
เจธเฉเจ เจฌเฉเจฒเฉเฉเฉ เจธเฉฐเจฐเจเจจเจพ เจเจพเจฃเจเจพเจฐเฉ เจชเฉเจฐเจฆเจพเจจ เจเจฐเจฆเฉ เจนเจพเจ เจเฉ เจจเฉเจก เจฆเฉเจเจฐเจพ เจจเจนเฉเจ เจตเจฐเจคเฉ เจเจพเจเจฆเฉ เจนเฉ, เจคเจพเจ เจเฉฐเจชเจพเจเจฒเจฐ เจเฉเฉฐเจฎ เจฒเจพเจเฉเจเจฐเจจ เจฆเจพ เจชเจคเจพ เจฒเจเจพเจเจฃ เจตเจฟเฉฑเจ เจธเจพเจกเฉ เจฎเจฆเจฆ เจจเจนเฉเจ เจเจฐเฉเจเจพเฅค เจเจธ เจธเจฎเฉฑเจธเจฟเจ เจจเฉเฉฐ เจเฉเจ เจชเฉเจเจฐเจจ เจจเฉเฉฐ เจเฉฑเจก เจเฉ เจ
เจคเฉ เจนเฉเจฐ เจธเจเจผเจค เจเจฟเจธเจฎเจพเจ เจฆเฉ เจตเจฐเจคเฉเจ เจเจฐเจเฉ เจนเฉฑเจฒ เจเฉเจคเจพ เจเจพ เจธเจเจฆเจพ เจนเฉ, เจเจฆเจพเจนเจฐเจจ เจฒเจ,
HList
เจเจพเจ เจธเฉฐเจฐเจเจจเจพ เจจเฉเฉฐ เจฆเจฐเจธเจพเจเจฃ เจฒเจ เจฌเฉเจเจเจฃเจฟเจคเจฟเจ เจกเฉเจเจพ เจเจฟเจธเจฎเจพเจ (เจเฉเจธ เจเจฒเจพเจธเจพเจ)เฅค - เจธเฉฐเจฐเจเจจเจพ เจซเจพเจเจฒ เจตเจฟเฉฑเจ เจ
เจเจฟเจนเฉเจเจ เจฒเจพเจเจจเจพเจ เจนเจจ เจเฉ เจธเฉฐเจฐเจเจจเจพ เจจเจพเจฒ เจธเฉฐเจฌเฉฐเจงเจฟเจค เจจเจนเฉเจ เจนเจจ: (
package
,import
,เจเจฌเจเฉเจเจ เจเฉเจธเจผเจฃเจพเจตเจพเจ;override def
เจฆเฉ เจชเฉเจฐเจพเจฎเฉเจเจฐเจพเจ เจฒเจ เจเจฟเจจเฉเจนเจพเจ เจฆเฉ เจกเจฟเจซเฉเจฒเจ เจฎเฉเฉฑเจฒ เจนเจจ)เฅค เจเจธ เจคเฉเจ เจ เฉฐเจธเจผเจ เจคเฉเจฐ 'เจคเฉ เจฌเจเจฟเจ เจเจพ เจธเจเจฆเจพ เจนเฉ เจเฉเจเจฐ เจคเฉเจธเฉเจ เจเจชเจฃเฉ เจเฉเจฆ เจฆเฉ DSL เจจเฉเฉฐ เจฒเจพเจเฉ เจเจฐเจฆเฉ เจนเฉ. เจเจธ เจคเฉเจ เจเจฒเจพเจตเจพ, เจนเฉเจฐ เจเจฟเจธเจฎเจพเจ เจฆเฉเจเจ เจธเฉฐเจฐเจเจจเจพเจตเจพเจ (เจเจฆเจพเจนเจฐเจจ เจฒเจ, XML) เจซเจพเจเจฒ เจขเจพเจเจเฉ 'เจคเฉ เจเฉเจ เจชเจพเจฌเฉฐเจฆเฉเจเจ เจตเฉ เจฒเจพเจเจเจฆเฉเจเจ เจนเจจเฅค - เจเจธ เจชเฉเจธเจ เจฆเฉ เจเจฆเฉเจธเจผเจพเจ เจฒเจ, เจ เจธเฉเจ เจธเจฎเจพเจจ เจจเฉเจกเจพเจ เจฆเฉ เจเจฒเฉฑเจธเจเจฐ เจฆเฉ เจเจคเฉเจธเจผเฉเจฒ เจชเฉเจจเจฐ-เจธเฉฐเจฐเจเจจเจพ 'เจคเฉ เจตเจฟเจเจพเจฐ เจจเจนเฉเจ เจเจฐ เจฐเจนเฉ เจนเจพเจเฅค
เจธเจฟเฉฑเจเจพ
เจเจธ เจชเฉเจธเจ เจตเจฟเฉฑเจ, เจ เจธเฉเจ เจธเจเฉเจฒเจพ เจเจพเจเจช เจธเจฟเจธเจเจฎ เจฆเฉเจเจ เจเฉฑเจจเจค เจธเจฎเจฐเฉฑเจฅเจพเจตเจพเจ เจฆเฉ เจตเจฐเจคเฉเจ เจเจฐเจฆเฉ เจนเฉเจ เจธเจฐเฉเจค เจเฉเจก เจตเจฟเฉฑเจ เจธเฉฐเจฐเจเจจเจพ เจจเฉเฉฐ เจฆเจฐเจธเจพเจเจฃ เจฆเฉ เจตเจฟเจเจพเจฐ เจฆเฉ เจชเฉเจเฉเจฒ เจเฉเจคเฉ เจนเฉเฅค เจเจน เจชเจนเฉเฉฐเจ xml เจเจพเจ เจเฉเจเจธเจ เจซเจพเจเจฒเจพเจ เจฆเฉ เจ เจงเจพเจฐ เจคเฉ เจฐเจตเจพเจเจคเฉ เจธเฉฐเจฐเจเจจเจพ เจตเจฟเจงเฉเจเจ เจฆเฉ เจฌเจฆเจฒ เจตเจเฉเจ เจตเฉฑเจ-เจตเฉฑเจ เจเจชเจฒเฉเจเฉเจธเจผเจจเจพเจ เจตเจฟเฉฑเจ เจตเจฐเจคเฉ เจเจพ เจธเจเจฆเฉ เจนเฉเฅค เจญเจพเจตเฉเจ เจธเจพเจกเฉ เจเจฆเจพเจนเจฐเจจ เจธเจเฉเจฒเจพ เจตเจฟเฉฑเจ เจฒเจพเจเฉ เจเฉเจคเฉ เจเจ เจนเฉ, เจเจนเฉ เจตเจฟเจเจพเจฐ เจฆเฉเจเฉเจเจ เจเฉฐเจชเจพเจเจฒ เจเฉเจคเฉเจเจ เจญเจพเจธเจผเจพเจตเจพเจ (เจเจฟเจตเฉเจ เจเจฟ เจเฉเจเจฒเจฟเจจ, เจธเฉ#, เจธเจตเจฟเจซเจ, ...) เจตเจฟเฉฑเจ เจเฉเจฐเจพเจเจธเจซเจฐ เจเฉเจคเฉ เจเจพ เจธเจเจฆเฉ เจนเจจเฅค เจคเฉเจธเฉเจ เจนเฉเจ เจพเจ เจฆเจฟเฉฑเจคเฉ เจชเฉเจฐเฉเจเฉเจเจเจพเจ เจตเจฟเฉฑเจเฉเจ เจเฉฑเจ เจตเจฟเฉฑเจ เจเจธ เจชเจนเฉเฉฐเจ เจฆเฉ เจเฉเจธเจผเจฟเจธเจผ เจเจฐ เจธเจเจฆเฉ เจนเฉ, เจ เจคเฉ, เจเฉเจเจฐ เจเจน เจเฉฐเจฎ เจจเจนเฉเจ เจเจฐเจฆเจพ เจนเฉ, เจคเจพเจ เจเฉเฉฐเจฎ เจนเฉเจ เจญเจพเจเจพเจ เจจเฉเฉฐ เจเฉเฉเจฆเฉ เจนเฉเจ, เจเฉเจเจธเจ เจซเจพเจเจฒ 'เจคเฉ เจเจพเจเฅค
เจเฉเจฆเจฐเจคเฉ เจคเฉเจฐ 'เจคเฉ, เจเฉฑเจ เจธเฉฐเจเจฒเจฟเจค เจธเฉฐเจฐเจเจจเจพ เจฒเจ เจเฉฑเจ เจเฉฑเจ เจเฉเจฃเจตเฉฑเจคเจพ เจตเจฟเจเจพเจธ เจชเฉเจฐเจเจฟเจฐเจฟเจ เจฆเฉ เจฒเฉเฉ เจนเฉเฉฐเจฆเฉ เจนเฉ. เจฌเจฆเจฒเฉ เจตเจฟเฉฑเจ, เจธเฉฐเจฐเจเจจเจพ เจฆเฉ เจเฉฑเจ เจเฉเจฃเจตเฉฑเจคเจพ เจ เจคเฉ เจญเจฐเฉเจธเฉเจฏเฉเจเจคเจพ เจจเฉเฉฐ เจฏเจเฉเจจเฉ เจฌเจฃเจพเจเจ เจเจพเจเจฆเจพ เจนเฉ.
เจตเจฟเจเจพเจฐเฉ เจชเจนเฉเฉฐเจ เจฆเจพ เจตเจฟเจธเจคเจพเจฐ เจเฉเจคเจพ เจเจพ เจธเจเจฆเจพ เจนเฉ:
- เจคเฉเจธเฉเจ เจเฉฐเจชเจพเจเจฒ-เจเจพเจเจฎ เจเจพเจเจเจพเจ เจเจฐเจจ เจฒเจ เจฎเฉเจเจฐเฉ เจฆเฉ เจตเจฐเจคเฉเจ เจเจฐ เจธเจเจฆเฉ เจนเฉเฅค
- เจคเฉเจธเฉเจ เจธเฉฐเจฐเจเจจเจพ เจจเฉเฉฐ เจ เจเจฟเจนเฉ เจคเจฐเฉเจเฉ เจจเจพเจฒ เจชเฉเจธเจผ เจเจฐเจจ เจฒเจ เจเฉฑเจ DSL เจฒเจพเจเฉ เจเจฐ เจธเจเจฆเฉ เจนเฉ เจเฉ เจ เฉฐเจคเจฎ เจเจชเจญเฉเจเจคเจพเจตเจพเจ เจฒเจ เจชเจนเฉเฉฐเจเจฏเฉเจ เจนเฉเจตเฉเฅค
- เจคเฉเจธเฉเจ เจเจเฉเจฎเฉเจเจฟเจ เจเฉเจเจซเจฟเจเจฐเฉเจธเจผเจจ เจเจกเจเจธเจเจฎเฉเจเจ เจฆเฉ เจจเจพเจฒ เจเจคเฉเจธเจผเฉเจฒ เจธเจฐเฉเจค เจชเฉเจฐเจฌเฉฐเจงเจจ เจจเฉเฉฐ เจฒเจพเจเฉ เจเจฐ เจธเจเจฆเฉ เจนเฉเฅค เจเจฆเจพเจนเจฐเจจ เจฒเจ, เจเฉฑเจ เจเจฒเฉฑเจธเจเจฐ เจตเจฟเฉฑเจ เจจเฉเจกเจพเจ เจฆเฉ เจธเฉฐเจเจฟเจ เจจเฉเฉฐ เจฌเจฆเจฒเจฃ เจฒเจ เจเจน เจฒเฉเฉ เจนเฉเฉฐเจฆเฉ เจนเฉ เจเจฟ (1) เจนเจฐเฉเจ เจจเฉเจก เจจเฉเฉฐ เจฅเฉเฉเฉเจนเจพ เจตเฉฑเจเจฐเจพ เจธเฉฐเจฐเจเจจเจพ เจชเฉเจฐเจพเจชเจค เจนเฉเจตเฉ; (2) เจเจฒเฉฑเจธเจเจฐ เจฎเฉเจจเฉเจเจฐ เจจเฉ เจจเจตเฉเจ เจจเฉเจกเจพเจ เจฌเจพเจฐเฉ เจเจพเจฃเจเจพเจฐเฉ เจชเฉเจฐเจพเจชเจค เจเฉเจคเฉเฅค
เจชเฉเจฐเจตเจพเจจเจเฉ
เจฎเฉเจ เจกเจฐเจพเจซเจ เจฒเฉเจ เจฆเฉ เจฐเจเจจเจพเจคเจฎเจ เจเจฒเฉเจเจจเจพ เจฒเจ เจเจเจฆเจฐเฉเจ เจธเจเจธเฉเจจเฉเจต, เจชเจพเจตเฉเจฒ เจชเฉเจชเฉเจต เจ เจคเฉ เจเจเจเฉเจจ เจจเฉเจเจพเจเจต เจฆเจพ เจงเฉฐเจจเจตเจพเจฆ เจเจฐเจจเจพ เจเจพเจนเจพเจเจเจพเฅค
เจธเจฐเฉเจค: www.habr.com