Skip to main content

Posts

āļĨāļ­āļ‡āđ€āļĨ่āļ™ SonarQube āļ„āļĨื่āļ™āđ‚āļ‹āļ™āļēāļĢ์āļŠ่āļ§āļĒāļ•āļĢāļ§āļˆāļŠāļ­āļšāļ„ุāļ“āļ āļēāļžāļ‚āļ­āļ‡ code

SonarQube  āļ„ืāļ­āđ€āļ„āļĢื่āļ­āļ‡āļĄืāļ­āļŠ่āļ§āļĒāļ•āļĢāļ§āļˆāļŠāļ­āļšāļ„ุāļ“āļ āļēāļžāļ‚āļ­āļ‡ source code āļŠ่āļ§āļĒāļŦāļēāļ‚้āļ­āļšāļāļžāļĢ่āļ­āļ‡āđƒāļ™ source code āđ„āļĄ่āļ§่āļēāļˆāļ°āđ€āļ›็āļ™ Bug āļ—ี่āļ™่āļēāļˆāļ°āđ€āļิāļ”āļ‚ึ้āļ™ āļŠ่āļ­āļ‡āđ‚āļŦāļ§่āļ—āļēāļ‡āļ”้āļēāļ™āļ„āļ§āļēāļĄāļ›āļĨāļ­āļ”āļ ัāļĒāļŦāļĢืāļ­āļāļĨิ่āļ™āđ„āļĄ่āļ”ีāđƒāļ™ source code āļ‚āļ­āļ‡āđ€āļĢāļē (Code Smell) āđāļĨāļ° āļŠ่āļ§āļĒāļ•āļĢāļ§āļˆāļŠāļ­āļšāđ€āļĢāļēāđ€āļ‚ีāļĒāļ™ code āļ—āļ”āļŠāļ­āļšāļ„āļĢāļ­āļšāļ„āļĨุāļĄāļŦāļĢืāļ­āļ”ีāđāļĨ้āļ§āļĒัāļ‡āļĒัāļ‡ (code coverage) Code Smell āđ„āļĄ่āđ„āļ”้āđƒāļŠ้āļ§ัāļ”āļ§่āļē source code āļ™ี้āļŠāļēāļĄāļēāļĢāļ–āļ—āļģāļ‡āļēāļ™āđ„āļ”้āļ–ูāļāļ•้āļ­āļ‡ āļĄี bug āļŦāļĢืāļ­āļŠ่āļ­āļ‡āđ‚āļŦāļ§่āļŦāļĢืāļ­āđ„āļĄ่ āđāļ•่ Code Smell āđƒāļŠ้āļ§ัāļ”āļ–ึāļ‡āļ„ุāļ“āļ āļēāļžāļ‚āļ­āļ‡āļāļēāļĢāļ­āļ­āļāđāļšāļš āđ€āļžื่āļ­āļ•āļĢāļ§āļˆāļŠāļ­āļšāļ§่āļē source code āļ—ี่āđ€āļ›็āļ™āļ­āļĒู่āđƒāļ™āļ›ัāļˆāļˆุāļšัāļ™āļˆāļ°āļŠāļēāļĄāļēāļĢāļ–āļ•่āļ­āđ€āļ•ิāļĄ āđāļ้āđ„āļ‚āļŦāļĢืāļ­āļ—āļ”āļŠāļ­āļšāđ„āļ”้āļ‡่āļēāļĒāļŦāļĢืāļ­āđ„āļĄ่ āđ‚āļ”āļĒāļŦāļĨัāļāđ€āļāļ“āļ‘์āļ—ี่āļ™āļģāļĄāļēāđƒāļŠ้āļ§ัāļ”āđƒāļ™āļŠ่āļ§āļ™āļ‚āļ­āļ‡ Code Smell āļ„ืāļ­ āļ„āļ§āļēāļĄāļ‹้āļģāļ‹้āļ­āļ™āļ‚āļ­āļ‡ code āļĄี code āđāļšāļšāđ€āļ”ีāļĒāļ§āļัāļ™āđ„āļ›āļ‹้āļģāļัāļ™āđƒāļ™āđ„āļŸāļĨ์āđ„āļŦāļ™āļš้āļēāļ‡ āļ•āļĢāļ§āļˆāļŠāļ­āļšāđ€āļ‡ื่āļ­āļ™āđ„āļ‚āđƒāļ™ if āđƒāļŦ้ āļ§่āļēāđ€āļ‡ื่āļ­āļ™āđ„āļ‚āļ•āļĢāļ‡āļ™ี้āļĄัāļ™āļĄีāđ‚āļ­āļāļēāļŠāđ€āļ›็āļ™āđ„āļ›āđ„āļ”้āđ„āļŦāļĄ āđ€āļžāļĢāļēāļ°āļšāļēāļ‡āļ—ีāđ€āļ‡ื่āļ­āļ™āđ„āļ‚āļ—ี่āđ€āļĢāļēāđ€āļ‚ีāļĒāļ™āļ‚ึ้āļ™āļĄāļēāđ€āļžื่āļ­āļ”ัāļāđ„āļ§้āđƒāļ™āļšāļēāļ‡āļ„āļĢั้āļ‡āļĄัāļ™āđāļ—āļšāļˆāļ°āđ„āļĄ่āļĄีāđ‚āļ­āļāļēāļŠāļ—ี่āđ€āļ§āļĨāļēāļĄัāļ™āļ—āļģāļ‡āļēāļ™āđāļĨ้āļ§āđ€āļ‚้āļēāđ€āļ‡ื่āļ­āļ™āđ„āļ‚āđƒāļ™āļŠ่āļ§āļ™āļ™ั้āļ™ āđ€āļ›็āļ™āļ•้āļ™ āļŠāļēāļĄāļēāļĢāļ–āđ„āļ›āļ­่āļēāļ™āļĢāļēāļĒāļĨāļ°āđ€āļ­ีāļĒāļ”āđ€āļžิ่āļĄāđ€āļ•ิāļĄāđ„āļ”้āļ—ี่āļ™ี่ http://www.somkiat.cc/code-smell-internal-class/ āļ™āļ­āļāļˆāļēāļ SonarQube āļˆāļ°āļŠāļēāļĄāļēāļĢāļ–āļšāļ­āļāļ–ึāļ‡āļ„ุāļ“āļ āļēāļžāļ‚āļ­āļ‡ source code āđ€āļĢāļēāđ„āļ”้āđāļĨ้āļ§ āļĒัāļ‡āļŠāļēāļĄāļēāļĢāļ–āđƒāļŠ้āđƒāļ™āļāļēāļĢāđāļˆāļāđāļˆāļ‡āļ‡...
Recent posts

āļĨāļ­āļ‡āđ€āļĨ่āļ™āđāļĨāļ°āđ€āļĢีāļĒāļ™āļĢู้āļžื้āļ™āļāļēāļ™āļ‚ั้āļ™āļ•้āļ™āļ‚āļ­āļ‡ Spring Framework

** āļŠāļģāļŦāļĢัāļšāđƒāļ„āļĢāļ—ี่āđ„āļĄ่āđ€āļ„āļĒāđ€āļĢีāļĒāļ™āļĢู้āđƒāļ™āļ”้āļēāļ™āļ‚āļ­āļ‡ Java EE āļŦāļĢืāļ­ J2EE āļ­āļēāļˆāļˆāļ°āļĄึāļ™āļ‡āļ‡āļัāļšāļĻัāļžāļ—์āļŦāļ™่āļ­āļĒāļ„āļĢัāļš āļ—āļģāđ„āļĄāļ•้āļ­āļ‡ Spring Spring āđ€āļ›็āļ™ framework āļ—ี่āļ™ิāļĒāļĄāļĄāļēāļāđƒāļ™āļāļēāļĢāļ™āļģāđ„āļ›āļŠāļĢ้āļēāļ‡āļĢāļ°āļšāļšāđƒāļ™āļĢāļ°āļ”ัāļš enterprise āđƒāļ™āđ€āļĢิ่āļĄāđāļĢāļāļ—ี่ Spring āđ€āļิāļ”āļĄāļē āļĄีāļˆุāļ”āļĄุ่āļ‡āļŦāļĄāļēāļĒāđ€āļžื่āļ­āļ—ี่āļˆāļ°āļĄāļēāđāļ—āļ™āļ—ี่āļĄāļēāļ•āļĢāļāļēāļ™āļ‚āļ­āļ‡ Java āļ­āļĒ่āļēāļ‡ J2EE (Java 2 Enterprise Edition) āļ—ี่āļĄัāļ™āļ—ั้āļ‡āļŦāļ™่āļ§āļ‡āļ—ั้āļ‡āļ­ืāļ”āđāļĨāļ°āļĒุ่āļ‡āļĒāļēāļ āđ‚āļ”āļĒāđ€āļ‰āļžāļēāļ°āđƒāļ™āļŠ่āļ§āļ™āļ‚āļ­āļ‡ EJB (Enterprise Java Bean) āļ—ี่āļ–ืāļ­āļ§่āļēāđ€āļ›็āļ™āļัāļ™āļĢ้āļēāļĒāļ‚āļ­āļ‡āļ™ัāļāļžัāļ’āļ™āļē āļ—āļģāđƒāļŦ้āļูāļĢูāļŠāļēāļĒ Java āđƒāļ™āļŠ่āļ§āļ‡āļ™ั้āļ™āļ–ึāļ‡āļัāļšāđāļ™āļ°āļ™āļģāļ§่āļē āļ–้āļēāļˆāļģāđ€āļ›็āļ™āļ—ี่āļ•้āļ­āļ‡āļžัāļ’āļ™āļēāļĢāļ°āļšāļšāļ”้āļ§āļĒ J2EE āļˆāļ‡āļ­āļĒ่āļēāđƒāļŠ้ EJB āļ–ึāļ‡āļ‚ั้āļ™āļ–ึāļ‡āļัāļšāļĄีāļŦāļ™ัāļ‡āļŠืāļ­āđāļ™āļ°āđāļ™āļ§āļ—āļēāļ‡āļāļēāļĢāļžัāļ’āļ™āļēāļĢāļ°āļšāļš J2EE āđ‚āļ”āļĒāđ„āļĄ่āđƒāļŠ้ EJB āļ­āļĒ่āļēāļ‡āđ„āļĢāļ็āļ•āļēāļĄāļ—āļēāļ‡ Sun āļœู้āđ€āļ›็āļ™āđ€āļˆ้āļēāļ‚āļ­āļ‡ Java āđƒāļ™āļŠāļĄัāļĒāļ™ั้āļ™ āļ–ึāļ‡āļัāļšāļ•้āļ­āļ‡āļĄāļēāļĨ้āļēāļ‡āļĢāļ°āļšāļš J2EE āđƒāļŦāļĄ่āđƒāļ™āļ›ี 2006 āļˆัāļ”āļāļēāļĢāđƒāļ™ EJB āđƒāļŦ้āđƒāļŠ้āļ‡่āļēāļĒāļ‚ึ้āļ™ āļĄีāļ›āļĢāļ°āļŠิāļ—āļ˜ิāļ āļēāļžāļĄāļēāļāļ‚ึ้āļ™ āđāļĨāļ°āļĄีāļāļēāļĢāđ€āļ›āļĨี่āļĒāļ™āļŠื่āļ­āļˆāļēāļ J2EE āđ€āļ›็āļ™ Java EE (Java Enterprise Edition) āđ€āļžื่āļ­āļĨāļšāļ āļēāļžāļ­ัāļ™āđ€āļĨāļ§āļĢ้āļēāļĒāļ‚āļ­āļ‡āđ€āļ”ิāļĄāđƒāļŦ้āļŦāļĄāļ” āđāļĨāļ°āđ„āļ”้āļĄีāļāļēāļĢāļ™āļģāļŸีāđ€āļˆāļ­āļĢ์āđ€āļ”็āļ”āđ† āļ‚āļ­āļ‡ open source framework āļŦāļĨāļēāļĒāđ† āļ•ัāļ§ āļ­āļĒ่āļēāļ‡āđ€āļŠ่āļ™āđāļāļ™āļŦāļĨัāļāļ‚āļ­āļ‡ Spring āļ­āļĒ่āļēāļ‡ IoC (Inversion of Control) āļŦāļĢืāļ­ OR Mapping (Object Relational Mapping) āļ—ี่āđ€āļ›็āļ™āļ—ี่āļ™ิāļĒāļĄāļ­āļĒ่āļēāļ‡ Hibernate āđāļ•่āļ็āđ„...

Inversion of Control āđāļĨāļ° Dependency Injection

Inversion of Control (IoC) āļ„ืāļ­āļ­āļ°āđ„āļĢ IoC āđ€āļ›็āļ™āļ—āļĪāļĐāļีāļ—ี่āļ§่āļēāļ”้āļ§āļĒ āļāļēāļĢāļĨāļ”āļ„āļ§āļēāļĄāļœูāļāļĄัāļ” (dependency) āļัāļ™āđƒāļ™āļĢāļ°āļŦāļ§่āļēāļ‡ module āđ€āļžื่āļ­āđƒāļŦ้ application āļ‚āļ­āļ‡āđ€āļĢāļēāđāļ้āđ„āļ‚ (maintain) āļ•่āļ­āđ€āļ•ิāļĄ (extensible) āļŦāļĢืāļ­āļ—āļ”āļŠāļ­āļš (test) āđ„āļ”้āļ‡่āļēāļĒāļ‚ึ้āļ™ āļ‹ึ่āļ‡āđ€āļ­āļēāļˆāļĢิāļ‡āđ† IoC āđ€āļ›็āļ™āļ­āļ°āđ„āļĢāļ—ี่āļ—āļģāđƒāļŦ้āđ€āļĢāļēāļŠัāļšāļŠāļ™āđāļĨāļ°āļ‡ุāļ™āļ‡āļ‡āļĄāļēāļāđ† āļ§่āļēāļĄัāļ™āļ„ืāļ­āļ­āļ°āđ„āļĢ āļŦāļĨāļēāļĒāđ† āļ„āļ™āļˆึāļ‡āļĒāļāđƒāļŦ้āļ§่āļē IoC āļ„ืāļ­ Dependency Injection (DI) āļ‹ึ่āļ‡āļˆāļĢิāļ‡āđ† āļĄัāļ™āļ็āđ„āļĄ่āļ–ูāļāļ‹āļ°āļ—ีāđ€āļ”ีāļĒāļ§  Dependency āļ„ืāļ­āļ­āļ°āđ„āļĢ Dependency āļ„ืāļ­āļāļēāļĢāļœูāļāļĄัāļ”āļ—ี่āđ€āļิāļ”āļ‚ึ้āļ™āđƒāļ™āļĢāļ°āļšāļš āđ€āļĄื่āļ­ module āļ™ึāļ‡āļĄีāļāļēāļĢāđ€āļĢีāļĒāļāđƒāļŠ้āļ­ีāļ module āļ™ึāļ‡āļ”้āļ§āļĒāļāļēāļĢāļ­้āļēāļ‡āļ­ิāļ‡ (reference) āļ•āļĢāļ‡āđ† āđāļĨ้āļ§āļ­āļ°āđ„āļĢāļ—ี่āđ€āļĢีāļĒāļāļ§่āļēāļāļēāļĢ āļ­้āļēāļ‡āļ­ิāļ‡ (Reference) āđāļšāļšāļ•āļĢāļ‡āđ†   āļ­āļĒ่āļēāļ‡āļ āļēāļž diagram āļ”้āļēāļ™āļšāļ™ class LogEngine āļĄีāļāļēāļĢāđ€āļĢีāļĒāļāđƒāļŠ้ ConsoleLog āđ‚āļ”āļĒāļ•āļĢāļ‡ āļ‹ึ่āļ‡āļĄāļ­āļ‡āļœ่āļēāļ™ diagram āļ­āļēāļˆāļˆāļ°āđ„āļĄ่āđ€āļŦ็āļ™āļ āļēāļžāļĨāļ­āļ‡āļ”ู code āļัāļ™ public class ConsoleLog { public void openLog(){ //do something to open log } public void log(String message){ //do something to log } public void closeLog(){ //do something to close log } } public class LogEngine { private ConsoleLog log; public LogEng...

āļĨāļ­āļ‡āđ€āļĨ่āļ™ Lambda Expression āļŸีāđ€āļˆāļ­āļĢ์āđ€āļ”่āļ™āđƒāļ™ Java 8

āļ›āļĢāļ°āļ§ัāļ•ิāļ„āļ§āļēāļĄāđ€āļ›็āļ™āļĄāļēāļ‚āļ­āļ‡ Lambda expression Lambda expression āđ„āļĄ่āđƒāļŠ่āļŠิ่āļ‡āđāļ›āļĨāļāđƒāļŦāļĄ่āđƒāļ™āļ§āļ‡āļāļēāļĢ āļ āļēāļĐāļēāđ‚āļ›āļĢāđāļāļĢāļĄ ( Programming Language ) āđ€āļžāļĢāļēāļ° lambda āļĄัāļ™āđ€āļ›็āļ™āđāļāļ™āļŦāļĨัāļāļ‚āļ­āļ‡ āļāļēāļĢāđ€āļ‚ีāļĒāļ™āđ‚āļ›āļĢāđāļāļĢāļĄāđ€āļŠิāļ‡āļŸัāļ‡āļ์āļŠัāļ™ ( Functional Programming ) āļ‹ึ่āļ‡āļĄีāļ­āļēāļĒุāļĄāļēāļ™āļēāļ™āļĄāļēāļāđāļĨ้āļ§ āđāļ•่ Java āđ€āļžิ่āļ‡āļ™āļģāđ€āļ­āļēāļ„ุāļ“āļŠāļĄāļšัāļ•ิāļ™ี้āđ€āļ­āļēāļĄāļēāđƒāļŠ่āļĨāļ‡āđƒāļ™āđ€āļ§āļ­āļĢ์āļŠัāļ™ 8 āļŦāļēāļāļˆāļ°āļāļĨ่āļēāļ§āļ–ึāļ‡āļ—ี่āļĄāļēāļ‚āļ­āļ‡ lambda āļ„āļ‡āļ•้āļ­āļ‡āđ„āļ›āļ”ูāļ—ี่āļ–ึāļ‡āļ—ี่āļĄāļēāļ‚āļ­āļ‡ lambda calculus āļ‹ึ่āļ‡āļ–ูāļāļŠāļĢ้āļēāļ‡āļ‚ึ้āļ™āļĄāļēāļ•ั้āļ‡āđāļ•่āļ›ี 1930 āđ‚āļ”āļĒāļ™ัāļāļ„āļ“ิāļ•āļĻāļēāļŠāļ•āļĢ์āļŠāļēāļ§āļ­āđ€āļĄāļĢิāļัāļ™  Alonzo Church  āđ€āļžื่āļ­āđƒāļŠ้āđƒāļ™āļāļēāļĢāđāļ้āđ‚āļˆāļ—āļĒ์āļ›ัāļāļŦāļēāļ—āļēāļ‡āļ„āļ“ิāļ•āļĻāļēāļŠāļ•āļĢ์āļ—ี่āļĄีāļ„āļ§āļēāļĄāļ‹ัāļšāļ‹้āļ­āļ™ āđƒāļ™āļšāļēāļ‡āļ„āļĢั้āļ‡āļŠāļĄāļāļēāļĢāļ—āļēāļ‡āļ„āļ“ิāļ•āļĻāļēāļŠāļ•āļĢ์āļ—ี่āļĒāļēāļ§āđ„āļ›āļ­āļēāļˆāļˆāļ°āļ—āļģāđƒāļŦ้āđ€āļิāļ”āļ„āļ§āļēāļĄāļ‹ัāļšāļ‹้āļ­āļ™āđ‚āļ”āļĒāđƒāļŠ่āđ€āļŦāļ•ุ lambda calculus āļˆāļ°āļ—āļģāļāļēāļĢāļĒุāļšāļšāļēāļ‡āļŠ่āļ§āļ™āļ‚āļ­āļ‡āļŠāļĄāļāļēāļĢāļ™ั้āļ™āļ­āļ­āļāļĄāļēāđ€āļ›็āļ™āļŸัāļ‡āļ์āļŠัāļ™āļĒ่āļ­āļĒāđ† āđ€āļžื่āļ­āļ—āļģāđƒāļŦ้āļŠāļĄāļāļēāļĢāļ™ั้āļ™āđ€āļ‚้āļēāđƒāļˆāļ‡่āļēāļĒāļ‚ึ้āļ™ āļ•่āļ­āļĄāļēāļŦāļĨัāļāļāļēāļĢāļ‚āļ­āļ‡ lambda calculus āđ„āļ”้āļ–ูāļāļ™āļģāđ„āļ›āđƒāļŠ้āđƒāļ™ Turing Machine āļ‹ึ่āļ‡āđ€āļ›็āļ™āđāļšāļšāļˆāļģāļĨāļ­āļ‡āđƒāļ™āļ­ุāļ”āļĄāļ„āļ•ิāļ‚āļ­āļ‡ Alan Turing  āļ—ี่āļ•่āļ­āļĄāļēāļāļĨāļēāļĒāđ€āļ›็āļ™āļ•้āļ™āđāļšāļšāļ—ี่āļ–ูāļāļ™āļģāđ„āļ›āđƒāļŠ้āđƒāļ™āļāļēāļĢāļœāļĨิāļ•  Von Neumann Machine  āļ‹ึ่āļ‡ Von Neumann Machine āļ•ัāļ§āļ™ี้āđ„āļ”้āļāļĨāļēāļĒāđ€āļ›็āļ™āļ•้āļ™āđāļšāļšāļ‚āļ­āļ‡āļ„āļ­āļĄāļžิāļ§āđ€āļ•āļ­āļĢ์āđ€āļ„āļĢื่āļ­āļ‡āđāļĢāļāļ‚āļ­āļ‡āđ‚āļĨāļāđƒāļ™āđ€āļ§āļĨāļēāļ•่āļ­āļĄāļē āļ—้āļēāļĒāļ—ี่āļŠุāļ”āđāļ™āļ§āļ„ิāļ”āļ‚āļ­āļ‡ lambda calculus āļ็āļ–ูāļ...

āļāļĢāļĄāļŠāļĢāļĢāļžāļēāļāļĢāļāļģāļĨัāļ‡āļžิāļˆāļēāļĢāļ“āļēāļˆัāļ”āđ€āļ็āļšāļ āļēāļĐีāļˆāļēāļāļāļēāļĢāļ‹ื้āļ­āļ‚āļēāļĒāđāļ­āļžāļšāļ™ Google Play āđāļĨāļ° App Store

āđ€āļ™ื่āļ­āļ‡āļ”้āļ§āļĒāļ•āļĨāļēāļ”āļŠāļĄāļēāļĢ์āļ—āđ‚āļŸāļ™āļ™ั้āļ™āđ€āļ•ิāļšāđ‚āļ•āļ­āļĒ่āļēāļ‡āļĢāļ§āļ”āđ€āļĢ็āļ§ āļ—āļģāđƒāļŦ้āļ•āļĨāļēāļ”āđāļ­āļžāļžิāļĨāđ€āļ„āļŠัāļ™āđ‚āļ•āļ•āļēāļĄāđ„āļ›āļ”้āļ§āļĒ āđāļ–āļĄāļĒัāļ‡āļĄีāđ€āļ‡ิāļ™āļŠāļ°āļžัāļ”āļĄāļēāļāļāļ§่āļēāļ•āļĨāļēāļ”āļŠāļĄāļēāļĢ์āļ—āđ‚āļŸāļ™āđ€āļŠีāļĒāļ­ีāļ āļˆึāļ‡āļ—āļģāđƒāļŦ้āļāļĢāļĄāļŠāļĢāļĢāļžāļēāļāļĢāļāļģāļĨัāļ‡āļžิāļˆāļēāļĢāļ“āļēāļĻึāļāļĐāļēāđāļ™āļ§āļ—āļēāļ‡āļ„āļ§āļēāļĄāđ€āļ›็āļ™āđ„āļ›āđ„āļ”้āđƒāļ™āļˆัāļ”āļāļēāļĢāđ€āļ็āļšāļ āļēāļĐีāļĄูāļĨāļ„่āļēāđ€āļžิ่āļĄ (VAT) āļˆāļēāļāļāļēāļĢāļ‹ื้āļ­āđāļ­āļžāļžิāļĨāđ€āļ„āļŠัāļ™āļšāļ™ Google Play āđāļĨāļ° App Store āļ—āļēāļ‡āļāļĢāļĄāļŠāļĢāļĢāļžāļēāļāļĢāļāļĨ่āļēāļ§āļ§่āļēāļ›ีāļ—ี่āļœ่āļēāļ™āļĄāļēāļĄูāļĨāļ„่āļēāđ‚āļ”āļĒāļĢāļ§āļĄāļ‚āļ­āļ‡āļ•āļĨāļēāļ”āđāļ­āļžāļžิāļĨāđ€āļ„āļŠัāļ™āļŠูāļ‡āļ–ึāļ‡ 15,000 āļĨ้āļēāļ™āļšāļēāļ—āđāļĨāļ°āđƒāļ™āļ›ีāļ™ี้āļ™่āļēāļˆāļ°āļŠูāļ‡āļ–ึāļ‡ 20,000 āļĨ้āļēāļ™āļšāļēāļ— āđ€āļ™ื่āļ­āļ‡āļˆāļēāļāđ„āļĄ่āļĄีāļāļēāļĢāđ€āļ็āļšāļ āļēāļĐีāļĄูāļĨāļ„่āļēāđ€āļžิ่āļĄāđƒāļ™āļŠ่āļ§āļ™āļ™ี้āļ—āļģāđƒāļŦ้āļĢัāļāļŠูāļāđ€āļŠีāļĒāļĢāļēāļĒāđ„āļ”้āđ„āļ›āļ–ึāļ‡ 1,400 āļĨ้āļēāļ™āļšāļēāļ— āđāļ•่āļāļēāļĢāļˆัāļ”āđ€āļ็āļšāļ„āļ‡āļĒัāļ‡āđ„āļĄ่āļĄีāđƒāļ™āđ€āļĢ็āļ§āđ† āļ™ี้ āđ€āļžāļĢāļēāļ°āļ—āļēāļ‡āļāļĢāļĄāļŠāļĢāļĢāļžāļēāļāļĢāļĒัāļ‡āļ•้āļ­āļ‡āļĻึāļāļĐāļēāļ§ิāļ˜ีāļāļēāļĢāļˆัāļ”āđ€āļ็āļšāļ āļēāļĐี āđ€āļžāļĢāļēāļ°āļœู้āļ„้āļēāļšāļēāļ‡āļĢāļēāļĒāđ„āļĄ่āđ„āļ”้āļ•ั้āļ‡āļšāļĢิāļĐัāļ—āļ­āļĒู่āļ›āļĢāļ°āđ€āļ—āļĻāđ„āļ—āļĒ āļ›āļĢāļ°āđ€āļ”็āļ™āļ•่āļ­āļĄāļēāļ–้āļēāļĄีāļāļēāļĢāļˆัāļ”āđ€āļ็āļšāļ āļēāļĐีāđāļĨ้āļ§āļˆāļ°āļ—āļģāđƒāļŦ้āļĢāļēāļ„āļēāđāļ­āļžāļžิāļĨāđ€āļ„āļŠัāļ™āļšāļ™ Google Play āđāļĨāļ° App Store āļŠูāļ‡āļ‚ึ้āļ™āļŦāļĢืāļ­āđ„āļĄ่ āļœāļĄāļ„ิāļ”āļ§่āļēāļ„āļ‡āđ„āļĄ่ āļ āļēāļĐีāļĄูāļĨāļ„่āļēāđ€āļžิ่āļĄāļ„āļ‡āļˆāļ°āļĢāļ§āļĄāļ­āļĒู่āđƒāļ™āļĢāļēāļ„āļēāļ‚āļ­āļ‡āđāļ­āļžāļžิāļĨāđ€āļ„āļŠัāļ™āļ­āļĒู่āđāļĨ้āļ§ āđ€āļžีāļĒāļ‡āđāļ•่āļ•āļ­āļ™āļ™ี้āđ„āļ—āļĒāļĒัāļ‡āđ„āļĄ่āđ„āļ”้āđ€āļĢีāļĒāļāđ€āļ็āļšāđ€āļ—่āļēāļ™ั้āļ™āđ€āļ­āļ‡ āļ•āļēāļĄāļĢูāļ›āļ”้āļēāļ™āļšāļ™āļ•āļĢāļ‡āļ§āļ‡āļāļĨāļĄāļŠีāđāļ”āļ‡āļˆāļ°āđ€āļŦ็āļ™āļ§่āļēāļ•āļĢāļ‡āļĢāļēāļ„āļēāļĢāļ§āļĄ (Total) āļ–้āļēāđ€āļ›็āļ™āļ‚āļ­āļ‡āđ„āļ—āļĒāļˆāļ°āđ„āļĄ่āļĄีāļ āļēāļĐีāļĄูāļĨāļ„่āļēāđ€āļžิ่āļĄāļĢāļ§āļĄāļ­āļĒู่āđƒāļ™āļ™ั้āļ™ āđƒāļ™āļāļĢāļ“ีāļ™ี้āļĒัāļ‡āđ„āļĄ่āđāļ™่āļŠัāļ”āļ§่āļēāļšāļĢิāļāļēāļĢāļ­ื่āļ™āđ† āļšāļ™ Google Play āđāļĨāļ° iTunes Sto...

āļĢีāļ§ิāļ§ Connect 5701Q āļĄืāļ­āļ–ืāļ­ house brand āļ™้āļ­āļ‡āđƒāļŦāļĄ่āļˆāļēāļ Mondo

āļ™ัāļšāļˆāļēāļ WellcoM āļ‹ึ่āļ‡āđ€āļ›็āļ™ house brand āļĢāļēāļĒāđāļĢāļāļ—ี่āļ›āļĢāļ°āļŠāļšāļ„āļ§āļēāļĄāļŠāļģāđ€āļĢ็āļˆāļัāļšāļŠāļĄāļēāļĢ์āļ—āđ‚āļŸāļ™ Android āļĢāļēāļ„āļēāļ›āļĢāļ°āļŦāļĒัāļ”āļˆāļēāļ WellcoM A88  (āđ€āļŠื่āļ­āļ§่āļēāđ€āļ›็āļ™āļĄืāļ­āļ–ืāļ­ Android āļ•ัāļ§āđāļĢāļāļ‚āļ­āļ‡āđƒāļ„āļĢāļŦāļĨāļēāļĒāđ† āļ„āļ™) āđāļĨāļ°āļĒัāļ‡āļ„āļ‡āđ„āļ”้āļĢัāļšāļ„āļ§āļēāļĄāļŠāļ™āđƒāļˆāļ­āļĒ่āļēāļ‡āļ•่āļ­āđ€āļ™ื่āļ­āļ‡āđƒāļ™ WellcoM A99  āđāļ•่āļŦāļĨัāļ‡āļˆāļēāļāļ—ี่āđ‚āļ”āļ™āļ‹ื้āļ­āļิāļˆāļāļēāļĢāđ„āļ›āļ็āļŦāļēāļĒāļ•ัāļ§āđ„āļ›āļ­āļĒ่āļēāļ‡āđ€āļ‡ีāļĒāļšāđ† āļˆāļ™āļāļĢāļ°āļ—ั่āļ‡āđƒāļ™āļ›ัāļˆāļˆุāļšัāļ™āļ็āļĄี house brand āļœุāļ”āļ‚ึ้āļ™āļĄāļēāļŦāļĨāļēāļĒāđ† āļĢāļēāļĒāļĢāļ§āļĄāđ„āļ›āļ–ึāļ‡āļœู้āđƒāļŦ้āļšāļĢิāļāļēāļĢāļ็āļāļĢāļ°āđ‚āļ”āļ”āđ€āļ‚้āļēāļĄāļēāđ€āļĨ่āļ™āđƒāļ™āļ•āļĨāļēāļ”āļ™ี้āļ”้āļ§āļĒ āđ€āļŠ่āļ™ True Beyond āđāļĨāļ° Go Live S āļˆāļēāļ True Move H, TriNet phone āļˆāļēāļ Dtac āđ‚āļ”āļĒāđƒāļ™āļ§ัāļ™āļ™ี้āđ€āļĢāļēāļˆāļ°āļĄāļēāļžูāļ”āļ–ึāļ‡āļ™้āļ­āļ‡āđƒāļŦāļĄ่āļĨ่āļēāļŠุāļ”āļ­āļĒ่āļēāļ‡ Mondo Mondo (āļĄāļ­āļ™āđ‚āļ”) āđ„āļĄ่āļ–ืāļ­āļ§่āļēāđ€āļ›็āļ™ house brand āļŠัāļāļŠāļēāļ•ิāđ„āļ—āļĒ āđ€āļžāļĢāļēāļ° Mondo āļ­āļĒู่āđƒāļ™āđ€āļ„āļĢืāļ­āļ‚āļ­āļ‡ āļšāļĢิāļĐัāļ— Brightstar āļœู้āđ€āļŠี่āļĒāļ§āļŠāļēāļāļāļēāļĢāļˆัāļ”āļˆāļģāļŦāļ™่āļēāļĒāļŠิāļ™āļ„้āļē IT āļ—ั่āļ§āđ‚āļĨāļ  āļŠ่āļ§āļ™āđƒāļ™āđ„āļ—āļĒ Brightstar āđ€āļ›็āļ™āļœู้āļˆัāļ”āļˆāļģāļŦāļ™่āļēāļĒ (āļ”ิāļŠāļ—āļĢิāļšิāļ§āđ€āļ•āļ­āļĢ์) āļĄืāļ­āļ–ืāļ­āđƒāļŦ้āļัāļš HTC  āļ‹ึ่āļ‡āļĢāļ§āļĄāļ–ึāļ‡āļšāļĢิāļāļēāļĢāļŦāļĨัāļ‡āļāļēāļĢāļ‚āļēāļĒ āđāļ•่āđƒāļ™āļŠ่āļ§āļ™āļ‚āļ­āļ‡ Mondo āļ™ั้āļ™āļ”ูāđ€āļŦāļĄืāļ­āļ™āļ§่āļē Brightstar āļˆāļ°āđƒāļŦ้āļšāļĢิāļĐัāļ— Advice āđ€āļ›็āļ™āļ•ัāļ§āđāļ—āļ™āļˆัāļ”āļˆāļģāļŦāļ™่āļēāļĒāđāļĨāļ°āļšāļĢิāļāļēāļĢāļŦāļĨัāļ‡āļāļēāļĢāļ‚āļēāļĒ āđ€āļ™ื่āļ­āļ‡āļˆāļēāļāļœāļĄāļĄีāđ‚āļ­āļāļēāļŠāđ„āļ”้āļĢัāļšāļĄืāļ­āļ–ืāļ­āļˆāļēāļ Mondo  āļĄāļē 2 āđ€āļ„āļĢื่āļ­āļ‡ Click 4001 āđāļĨāļ° Connect 5701Q (āđ„āļ”้āļĢัāļšāļĄāļēāļˆāļēāļāđ€āļžื่āļ­āļ™āļ—ี่āļ—āļģāļ‡āļēāļ™āļ­āļĒู่āļ—ี่āļšāļĢิāļĐัāļ— āđ‚āļ—āļĢāļĻ...