JavaRush /จาวาบล็อก /Random-TH /รายการตรวจสอบของนักพัฒนา Java สิ่งที่นักพัฒนาควรรู้
Константин
ระดับ

รายการตรวจสอบของนักพัฒนา Java สิ่งที่นักพัฒนาควรรู้

เผยแพร่ในกลุ่ม
สวัสดี! วันนี้เราจะมาพูดถึงเส้นทางการพัฒนาของ Java Developer และสิ่งที่เขาต้องรู้เพื่อที่จะเป็นที่ต้องการ รายการตรวจสอบของนักพัฒนา Java  สิ่งที่นักพัฒนาควรรู้ - 1นักพัฒนาคนใดก็ตามในการสัมภาษณ์สามารถ “ล้มเหลว” ผู้สมัครรับตำแหน่งได้ ตัวอย่างเช่น เขาจะเริ่มถามคำถามเกี่ยวกับหัวข้อเฉพาะที่เขาพบในโครงการปัจจุบัน แต่ก็ไม่เป็นไรที่จะรู้ทุกอย่าง การที่คุณไม่ตอบคำถามบางข้อก็เป็นเรื่องปกติเช่นกัน โดยทั่วไปแล้ว โปรแกรมเมอร์ Java ทุกคนควรมีความรู้พื้นฐานในการพัฒนา มาดูกันว่าเทคโนโลยีใดที่ถือว่าเป็น "พื้นฐาน"

1. อัลกอริธึมพื้นฐาน

สิ่งแรกที่คุณควรทำเมื่อเริ่มเรียนการเขียนโปรแกรม (ซึ่งใช้ไม่ได้กับ Java เท่านั้น) คือการวิเคราะห์พื้นฐาน ตัวอย่างเช่น อัลกอริธึม มีจำนวนอนันต์และคุณไม่ควรใช้เวลาทั้งปีในการพยายามเรียนรู้อัลกอริธึมให้มากที่สุดเท่าที่จะเป็นไปได้ ส่วนใหญ่จะไม่เป็นประโยชน์สำหรับคุณ ความรู้ขั้นต่ำที่จำเป็นสามารถหาได้จากหนังสือ " Grocking Algorithms " นี่จะเพียงพอสำหรับการเริ่มต้นการเดินทาง แต่ถ้าคุณต้องการ คุณสามารถเรียนรู้โดยใช้หนังสือ “ Structures and Algorithms ” หรือ “ Algorithms in Java” โดย Robert Sedgwick และ Kevin Wayne ฉันขอแนะนำให้คุณพัฒนาความรู้พื้นฐานของวิทยาการคอมพิวเตอร์ด้วย ซึ่งสามารถทำได้ใน JavaRush โดยใช้หลักสูตรCS50

2. ไวยากรณ์จาวา

หลังจากเรียนรู้พื้นฐานของอัลกอริธึมแล้ว เราจะต้องเรียนรู้ไวยากรณ์ Java ท้ายที่สุดแล้ว เราทุกคนกำลังเรียนรู้ที่จะเป็นโปรแกรมเมอร์ Java ที่นี่ใช่ไหม หลักสูตร JavaRush เหมาะสำหรับสิ่งนี้ ในกระบวนการปฏิบัติงานหลายอย่าง คุณจะคล่องแคล่วในการใช้ไวยากรณ์ Java และจะเขียน/อ่านโค้ด Java โดยไม่ต้องคิดอะไรมาก ราวกับว่าเป็นภาษาแม่ของคุณ JavaRush เป็นการฝึกฝน และนอกเหนือจากนั้น คุณยังต้องดูทฤษฎีด้วยเพื่อทำความเข้าใจว่าคุณกำลังทำอะไรอยู่ เมื่อต้องการทำเช่นนี้ คุณสามารถอ่านหนังสือได้ ตัวอย่างเช่น รายการใดรายการหนึ่งต่อไปนี้:
  • หัวหน้าคนแรก Java ”;
  • “Java for Dummies” โดย แบร์รี่ เบิร์ด;
  • “ชวา คู่มือสำหรับผู้เริ่มต้น” Herbert Schildt
หลังจากอ่านหนังสือเหล่านี้แล้ว คุณสามารถอ่านหนังสือที่ยากขึ้นได้:
  • “ปรัชญาแห่งชวา” โดย บรูซ เอคเคล;
  • “การเขียนโปรแกรมที่มีประสิทธิภาพ”, Joshua Bloch;
  • “ชวา คู่มือฉบับสมบูรณ์” โดย Herbert Schildt
หนังสือสามเล่มสุดท้ายไม่ใช่เรื่องง่ายสำหรับผู้เริ่มต้นในการอ่าน แต่สามารถให้พื้นฐานที่มั่นคงในทฤษฎี Java ได้ นอกจากนี้ อย่าลืมบทความเกี่ยวกับ JavaRush เนื่องจากสามารถค้นหาคำอธิบายในหัวข้อส่วนใหญ่ที่คุณสนใจได้ คุณสามารถค้นหาบทความที่คุณต้องการได้โดยพิมพ์หัวข้อที่คุณสนใจ: ฉันรายการตรวจสอบของนักพัฒนา Java  สิ่งที่นักพัฒนาควรรู้ - 2ขอแนะนำอย่างยิ่งให้มองหาคำถามสัมภาษณ์ Java เช่นในชุดคำถามเกี่ยวกับคลาสนามธรรมและอินเทอร์เฟซ สิ่งนี้จะช่วยให้คุณเข้าใจว่าคุณต้องเรียนอะไรและต้องเตรียมคำถามอะไรบ้างรายการตรวจสอบของนักพัฒนา Java  สิ่งที่นักพัฒนาควรรู้ - 3

3. รูปแบบการเขียนโปรแกรม

รูปแบบการเขียนโปรแกรมคือรูปแบบที่สามารถทำซ้ำได้ซึ่งแสดงถึงวิธีแก้ไขปัญหาภายในบริบทที่พบบ่อย ในนั้นมีเทมเพลตพื้นฐานและเรียบง่ายที่โปรแกรมเมอร์ที่เคารพตนเองทุกคนควรรู้ เพื่อทำความเข้าใจหัวข้อนี้ ให้ใช้หนังสือ “ Head First” รูปแบบการออกแบบ ” เธอจะอธิบายรูปแบบการเขียนโปรแกรมพื้นฐานอย่างชัดเจน แต่หนังสือเล่มนี้พูดถึง Javaมากมายดังนั้นในขณะที่ศึกษาหนังสือ คุณจะต้องเชี่ยวชาญภาษาการเขียนโปรแกรมนี้ หากต้องการเจาะลึกเกี่ยวกับรูปแบบ คุณสามารถอ่าน “เทคนิคการออกแบบเชิงวัตถุ” ได้ Design Patterns” จาก Gang of Four ( Gang of Four: ทีมผู้เขียนซึ่งรวมถึง Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides - หมายเหตุบรรณาธิการ ) หลังจากศึกษาหัวข้อนี้ คุณจะเริ่มเห็นรูปแบบแทบทุกที่ในโค้ดของคุณ โปรดใส่ใจกับสิ่งนี้ โดยเฉพาะรูปแบบที่ใช้ในSpringเนื่องจากนี่เป็นคำถามยอดนิยมในการสัมภาษณ์

4. กระบวนทัศน์การเขียนโปรแกรม ความสะอาดของรหัส

นอกจากรูปแบบการเขียนโปรแกรมมาตรฐานแล้ว ยังมีหลักการและกระบวนทัศน์ต่างๆ ที่คุณต้องรู้ ( SOLID , GRASP ) นอกจากนี้ยังจำเป็นเพื่อให้แน่ใจว่าโค้ดนั้นสะอาดและสามารถอ่านได้ ทุกสิ่งที่คุณจำเป็นต้องรู้ในหัวข้อนี้มีอยู่ในหนังสือ “ Clean Code ” โดย Robert Martin หรืออ่านหนังสือ “ Perfect Code” โดย Steve McConnell

5.SQL

ขั้นตอนต่อไป ของ เราคือการศึกษาภาษาของฐานข้อมูลเชิงสัมพันธ์ - SQL ฐานข้อมูลเป็นที่เก็บข้อมูล (ข้อมูล) ของเว็บแอปพลิเคชัน ฐานข้อมูลประกอบด้วยตารางจำนวนมาก (สมุดที่อยู่ในโทรศัพท์ของคุณเป็นตัวอย่างที่ง่ายที่สุดของตารางดังกล่าว) คุณสามารถอ่านเพิ่มเติมเกี่ยวกับฐานข้อมูลได้ในบทความนี้ สำหรับนักพัฒนา Java พื้นที่รับผิดชอบไม่ได้เป็นเพียงแอปพลิเคชัน Java เท่านั้น แต่ยังรวมถึงฐานข้อมูลที่โต้ตอบและตำแหน่งที่เก็บข้อมูลด้วย ในฐานข้อมูลเชิงสัมพันธ์ (ที่พบบ่อยที่สุด) การโต้ตอบทั้งหมดเกิดขึ้นผ่านภาษาพิเศษ - Structured Query Language หรือ SQL เพื่อให้เข้าใจหัวข้อนี้การอ่านหนังสือสักเล่มก็เพียงพอแล้ว:
  • “การเรียนรู้ SQL”, อลัน บิวลีย์;
  • “SQL”, คริส เฟียลี;
  • “Head First SQL” โดยลินน์ เบลีย์
แต่การฝึกฝนโดยไม่มีทฤษฎีไม่ได้ผลใช่ไหม? และในการสัมภาษณ์เพื่อทดสอบความรู้เกี่ยวกับ SQL พวกเขามักจะให้ปัญหาหนึ่งหรือสองข้อในการเขียนแบบสอบถาม SQL (เกือบทุกครั้ง) ดังนั้นจึงเป็นเรื่องสำคัญมากที่จะต้องฝึกฝนทักษะ SQL เชิงปฏิบัติเพื่อแสดงตัวเองในแง่ดี ทรัพยากรที่ดีเยี่ยมสำหรับการฝึกฝน SQL อาจเป็นทรัพยากรsql-ex.ru

6. MySQL/PostgreSQL

หลังจากเรียนรู้ภาษา SQL แล้ว คุณจะต้องทำความคุ้นเคยกับการใช้งานฐานข้อมูลเฉพาะ คำสั่งบางคำสั่งอาจแตกต่างกันอย่างมากทั้งนี้ขึ้นอยู่กับฐานข้อมูล และความแตกต่างในความสามารถของฐานข้อมูลก็ค่อนข้างชัดเจน ฐานข้อมูล เชิงสัมพันธ์ที่พบบ่อยที่สุดคือMySQLและPostgreSQL รายการตรวจสอบของนักพัฒนา Java  สิ่งที่นักพัฒนาควรรู้ - 4MySQLนั้นง่ายกว่ามาก แต่PostgreSQL มี ความสามารถมากกว่า ขั้นแรก การทำความคุ้นเคยกับอย่างน้อยหนึ่งรายการก็เพียงพอแล้ว คุณสามารถศึกษาการใช้งานฐานข้อมูลได้หากคุณใช้ทักษะ Google ค้นหาบทความและบทช่วยสอนที่จำเป็นบน Youtube คุณต้องเก่งในการค้นหาคำถามที่คุณสนใจอย่างถูกต้อง เนื่องจากโปรแกรมเมอร์คือบุคคลที่ “มีเข็มขัดหนังสีดำ” ในการค้นหาของ Google

7. มาเวน/กราเดิล

คุณต้องศึกษาหนึ่งในเฟรมเวิร์กGradleหรือMavenซึ่งได้รับการออกแบบมาสำหรับการประกอบโปรเจ็กต์ เนื่องจากตอนนี้สำหรับคุณ Java ไม่เพียงแต่งานจากสองสามคลาสเท่านั้น แต่ยังเป็นภาษาสำหรับการเขียนแอปพลิเคชันที่มีคุณสมบัติครบถ้วนอีกด้วย คุณต้องเข้าใจวิธีการประกอบโปรเจ็กต์ ขั้นตอนการประกอบคืออะไร วิธีโหลดไลบรารีภายนอกที่จำเป็นด้วยโค้ดสำเร็จรูป และอื่นๆ อีกมากมาย แม้ว่า Gradle จะใหม่กว่าและกระชับกว่า แต่ Maven ก็ถูกใช้ในกรณีส่วนใหญ่ ดังนั้นควรใส่ใจเป็นพิเศษกับวงจรชีวิตของการประกอบ

8. คอมไพล์

Gitคือระบบควบคุมเวอร์ชันแบบกระจาย เทคโนโลยีนี้ช่วยให้นักพัฒนาสามารถร่วมกันสร้างแอปพลิเคชั่นเดียวได้โดยไม่รบกวนซึ่งกันและกัน แน่นอนว่าระบบควบคุมเวอร์ชันนี้มีความคล้ายคลึงกัน ตัวอย่างเช่นการโค่นล้ม แต่เป็น Gitที่ใช้เป็นหลักและคุณต้องสามารถทำงานกับมันได้ รายการตรวจสอบของนักพัฒนา Java  สิ่งที่นักพัฒนาควรรู้ - 5นอกจากบทความด้านการศึกษาแล้วยังมีวิดีโอบน Youtube เพียงพอที่จะช่วยให้คุณเชี่ยวชาญเทคโนโลยีนี้ทีละขั้นตอน ในตอนแรก จะดีกว่าถ้าใช้คอนโซล Git ไม่ใช่การใช้งานอินเทอร์เฟซบางประเภท เพราะในนั้นคุณจะต้องทำทุกอย่างผ่านคำสั่ง ในระหว่างการสัมภาษณ์ ผู้คนมักจะถามถึง คำสั่ง Gitดังนั้นฉันขอแนะนำให้คุณจดบันทึกไว้และเก็บไว้ในที่ที่สะดวก ฉันขอแนะนำให้คุณจดบันทึกที่คุณจะทำเครื่องหมายจุดที่สำคัญที่สุดเพื่อที่ก่อนการสัมภาษณ์คุณสามารถอ่านและฟื้นฟูความจำของคุณ

9. เจดีบีซี

เทคโนโลยีนี้ได้รับการออกแบบเพื่อให้มีการเชื่อมต่อระหว่างแอปพลิเคชัน Java ของคุณและฐานข้อมูลเชิงสัมพันธ์ เพื่อทำความคุ้นเคยกับพื้นฐาน ฉันแนะนำให้อ่านบทความJDBC หรือ Where It All Begins มีบทความมากมายที่อธิบายเทคโนโลยี JDBC และยกตัวอย่างเบื้องต้น แม้ว่าจะไม่มีใครใช้ JDBC เปล่าโดยตรงอีกต่อไปแล้วก็ตาม

10.เจพีเอ ไฮเบอร์เนต

JPAเป็นวิธีการสร้างการเชื่อมต่อระหว่างแอปพลิเคชัน Java และฐานข้อมูล เช่นเดียวกับ JDBC แต่ในขณะเดียวกัน JPA ก็เป็นเทคโนโลยีระดับสูงกว่าและใช้งานง่ายกว่า แต่ JPA เป็นเพียงข้อกำหนด (แนวคิด) ที่ไม่ได้นำไปใช้และต้องมีการใช้งานเฉพาะ มีการใช้งานดังกล่าวมากมาย แต่การใช้งานที่ใกล้เคียงกับอุดมคติของ JPA ซึ่งเป็นที่นิยมและพัฒนามากที่สุดนั้นถือเป็นHibernate ในอาชีพการพัฒนาของคุณ คุณจะพบกับเทคโนโลยีนี้มากกว่าหนึ่งครั้ง ดังนั้นนอกเหนือจากการทำความคุ้นเคยกับเทคโนโลยีนี้ผ่านบทความแล้ว ยังอาจคุ้มค่าที่จะพิจารณาอ่านหนังสือเกี่ยวกับเรื่องนี้ เช่น “ Java Persistence API

11. ฤดูใบไม้ผลิ

เมื่อคุณเป็น Java Developer แล้ว Spring ไม่ได้เป็นเพียงคำพูดสำหรับคุณอีกต่อไป รายการตรวจสอบของนักพัฒนา Java  สิ่งที่นักพัฒนาควรรู้ - 6ตอนนี้เฟรมเวิร์กนี้มีความสำคัญเป็นอันดับหนึ่งกับความจำเป็นในการรู้ไวยากรณ์ของภาษา Java คุณสามารถพูดได้ว่า Spring มีสิ่งที่เหมือนกัน นั่นคือ เทคโนโลยี Java EE แต่ Java EE ล้าสมัยและไม่ได้ใช้ในโปรเจ็กต์ใหม่อีกต่อไป ขณะนี้นักพัฒนา Java ส่วนใหญ่คือนักพัฒนา Java Spring ดังนั้นความรู้เกี่ยวกับเทคโนโลยีพื้นฐานของ Spring จึงเป็นสิ่งจำเป็น Spring ไม่ใช่แค่เฟรมเวิร์ก แต่เป็นแพลตฟอร์มทั้งหมดของเฟรมเวิร์ก: รายการตรวจสอบของนักพัฒนา Java  สิ่งที่นักพัฒนาควรรู้ - 7และนี่เป็นเพียงส่วนหนึ่งของเฟรมเวิร์กที่ Spring มอบให้เท่านั้น ก็เพียงพอแล้วสำหรับผู้เริ่มต้นที่จะรู้เพียงไม่กี่อย่าง:

  • แกนสปริง

คุณควรทำความเข้าใจก่อนว่า Spring คืออะไร: Spring Container, beans, DI, IoC และอื่นๆ คืออะไร ถ้าจะพูดให้เข้าใจหลักปรัชญาของการใช้ Spring การศึกษาเพิ่มเติมเกี่ยวกับ Spring Frameworks จะเกิดขึ้นตามฐานนี้ มันอาจจะคุ้มค่าที่จะสร้างแอปพลิเคชันขนาดเล็กของคุณเอง ซึ่งคุณจะค่อยๆ เพิ่มเทคโนโลยีใหม่ที่คุณได้เรียนรู้ไป

  • สปริง JDBC

ก่อนหน้านี้เราได้พูดถึงเทคโนโลยี JDBC ว่าเป็นเทคโนโลยีในการสร้างการเชื่อมต่อกับฐานข้อมูล โดยทั่วไป การใช้เทคโนโลยีแบบ "เปลือยเปล่า" อาจไม่พบในโครงการในขณะนี้ ดังนั้นจึงอาจดูเหมือนว่าการเรียนรู้ JDBC นั้นไม่จำเป็น แต่มันไม่เป็นเช่นนั้น เมื่อดูที่ส่วนลึกของ JDBC คุณจะมองเห็นเทคโนโลยีในระดับที่ต่ำกว่า และเข้าใจปัญหาและข้อบกพร่องของมัน เมื่อคุณเริ่มเรียนรู้ Spring JDBC คุณจะเข้าใจว่าเฟรมเวิร์กนี้ปรับปรุง เพิ่มประสิทธิภาพ และซ่อนอะไรจากสายตาของเรา

  • ฤดูใบไม้ผลิไฮเบอร์เนต

เช่นเดียวกับ JDBC แบบเปลือย เฟรมเวิร์กนี้ปรับปรุงการใช้เทคโนโลยีที่มีอยู่ ในกรณีนี้คือ Hibernate หากคุณพิจารณาใช้ Hibernate โดยไม่มี Spring คุณจะเข้าใจอย่างชัดเจนว่าการใช้ Spring Hibernate คืออะไร

  • ฤดูใบไม้ผลิ JPA

ก่อนหน้านี้เราได้พูดคุยเกี่ยวกับ JPA และวิธีที่เป็นเพียงข้อกำหนดซึ่งมีการใช้งานที่แตกต่างกัน ในบรรดาการใช้งานเหล่านี้ Hibernate นั้นใกล้เคียงกับอุดมคติมากที่สุด Spring มีการใช้งาน JPA ในอุดมคติของตัวเอง ซึ่งใช้ Hibernate “ภายใต้ประทุน” และใกล้เคียงกับอุดมคติของข้อกำหนด JPA มากที่สุด เทคโนโลยีนี้เรียกว่า Spring JPA อย่างไรก็ตาม มันทำให้การเข้าถึงฐานข้อมูลง่ายขึ้นมาก คุณสามารถเรียนรู้ JPA ได้โดยไม่ต้องเรียนรู้ JDBC, Hibernate, Spring JDBC, Spring Hibernate แต่ในกรณีนี้ ความรู้ของคุณเกี่ยวกับการเชื่อมต่อกับฐานข้อมูลจะเป็นเพียงผิวเผินมาก

  • สปริงเอ็มวีซี

ด้วยเทคโนโลยีนี้ เราสามารถแสดงเว็บอินเทอร์เฟซของแอปพลิเคชันของเราแก่ผู้ใช้ และอนุญาตให้อินเทอร์เฟซสื่อสารกับส่วนที่เหลือของแอปพลิเคชันได้ เทคโนโลยีนี้ยังสามารถทำงานได้โดยไม่ต้องแสดงผล เมื่อมีแอปพลิเคชันบางตัวที่รับผิดชอบในการแสดงผล และคุณโต้ตอบกับแอปพลิเคชันนี้โดยใช้คำขอและการตอบกลับโดยใช้เทคโนโลยีRESTful เพื่อทำความเข้าใจข้อมูลเกี่ยวกับ Spring ให้ดียิ่งขึ้น นอกเหนือจากบทความและการบรรยายบน YouTube คุณสามารถอ่านหนังสือหลายเล่มได้ ฉันชอบหนังสือ Spring in Action ของ Walls Craig มาก น่าเสียดายที่ตอนนี้มีเพียงเวอร์ชันที่สามในรัสเซียเท่านั้นซึ่งถือว่าล้าสมัย ฉันแนะนำให้คุณอ่านเวอร์ชัน 6 ถ้าคุณรู้ภาษาอังกฤษดี หนังสือดีๆ อีกเล่มเกี่ยวกับฤดูใบไม้ผลิคือ “Spring 5 for Professionals” การเรียนรู้นั้นยากกว่าและเหมือนกับพระคัมภีร์ ฤดูใบไม้ ผลิที่เก็บไว้มีประโยชน์มากกว่าการอ่านจากหน้าหนึ่งไปอีกหน้าหนึ่งรายการตรวจสอบของนักพัฒนา Java  สิ่งที่นักพัฒนาควรรู้ - 8

  • รองเท้าบูทสปริง

เทคโนโลยีนี้ทำให้การใช้ Spring ง่ายขึ้นอย่างมาก ฉันใส่มันไว้ที่ท้ายรายการด้วยเหตุผลเพราะมันซ่อนอยู่ใต้ "ประทุน" ไว้มากมายและสำหรับคนที่ไม่คุ้นเคยกับฤดูใบไม้ผลิปกติหลายจุดอาจไม่ชัดเจนและไม่สามารถเข้าใจได้ อันดับแรก เพื่อให้เข้าใจถึงวิธีการทำงานของ Spring Framework ได้ดียิ่งขึ้น คุณควรใช้ Spring ปกติ จากนั้นจึงใช้ Spring Boot เพื่อประโยชน์ที่สูงกว่าทั้งหมด ฉันแนะนำให้คุณทำความคุ้นเคยกับ Spring Security และ Spring AOP ด้วย แต่ต่างจากเทคโนโลยีข้างต้น ตอนนี้ไม่จำเป็นต้องมีความรู้เชิงลึกเกี่ยวกับทั้งสองสิ่งนี้ เทคโนโลยีนี้ไม่เหมาะสำหรับผู้เริ่มต้น ในระหว่างการสัมภาษณ์ จะไม่ถามรุ่นน้องเกี่ยวกับพวกเขา (ยกเว้นคำถามผิวเผินหนึ่งคำถาม) อ่านโดยทั่วไปว่าเทคโนโลยีเหล่านี้คืออะไรและทำงานอย่างไร ตลอดบทความนี้ฉันได้กล่าวถึงการอ่านหนังสือซ้ำแล้วซ้ำอีก ประการหนึ่งสิ่งนี้ไม่จำเป็น คุณสามารถเป็นโปรแกรมเมอร์ได้โดยไม่ต้องอ่านหนังสือสักเล่ม โดยศึกษาทุกสิ่งที่คุณต้องการจากบทความและวิดีโอการฝึกอบรม ในทางกลับกัน ในขณะนี้ การแข่งขันในตลาดสำหรับนักพัฒนามือใหม่อยู่ในระดับสูง ซึ่งยกระดับความรู้เบื้องต้นที่จำเป็นสำหรับผู้เริ่มต้น ดังนั้น ยิ่งคุณรู้มากเท่าไร คุณก็ยิ่งได้งานแรกเร็วขึ้นเท่านั้นโดยทำให้ผู้สัมภาษณ์ประทับใจด้วยระดับความรู้ของคุณ ขอบคุณทุกท่าน และขอให้Java อยู่กับ คุณรายการตรวจสอบของนักพัฒนา Java  สิ่งที่นักพัฒนาควรรู้ - 9
ความคิดเห็น
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION