From fe4742464f5db0f976930dd5056af87b449ec487 Mon Sep 17 00:00:00 2001 From: Prasit Tongpradit Date: Mon, 13 Mar 2023 18:14:57 +0700 Subject: [PATCH] Revise code editor --- .../3-code-editors/article.md | 52 ++++++++++--------- 1 file changed, 28 insertions(+), 24 deletions(-) diff --git a/1-js/01-getting-started/3-code-editors/article.md b/1-js/01-getting-started/3-code-editors/article.md index e86d370fe..5d2348766 100644 --- a/1-js/01-getting-started/3-code-editors/article.md +++ b/1-js/01-getting-started/3-code-editors/article.md @@ -1,45 +1,49 @@ -# Code editors +# เครื่องมือแก้ไขโค้ด (Code editor) -Code editor เป็นสิ่งที่นักพัฒนามักใช้เวลาร่วมมากที่สุด +เครื่องมือแก้ไขโค้ด (Code editor) เป็นที่ที่นักพัฒนาโปรแกรมใช้เวลามากที่สุดในการทำงาน -โดยจะมี 2 ประเภทหลักๆ นักพัฒนาจะใช้หนึ่งในสองอย่างนี้ คือ IDE และ lightweight editor +โดยทั่วไปแล้วมีสองประเภทหลักของเครื่องมือแก้ไขโค้ดที่นิยมใช้ คือ IDE และ lightweight editor โดยส่วนใหญ่ผู้ใช้งานจะใช้เครื่องมือจากทั้งสองประเภทเพื่อใช้งานในส่วนต่าง ๆ ## IDE -คำว่า [IDE](https://en.wikipedia.org/wiki/Integrated_development_environment) (Integrated Development Environment) หมายถึงเครื่องมือที่ประกอบด้วยฟีเจอร์มากมายที่ใช้จัดการงานระดับโปรเจ็คต์ IDE จึงไม่ใช่แค่ text editor ธรรมดา แต่เป็น "development environment" เต็มรูปแบบ +คำว่า [IDE](https://th.wikipedia.org/wiki/สิ่งแวดล้อมสำหรับการพัฒนาแบบเบ็ดเสร็จ) (Integrated Development Environment) หมายถึงเครื่องมือแก้ไขโปรแกรมที่มีความสามารถและฟีเจอร์มากมาย โดยส่วนใหญ่จะใช้งานบนโปรเจกต์ใหญ่ๆ ไม่ใช่เพียงแค่เครื่องมือแก้ไขโปรแกรมเท่านั้น แต่ยังเป็นสภาพแวดล้อมการพัฒนาโปรแกรมอย่างครบวงจร โดยมีฟีเจอร์ต่างๆ อย่างเช่น การแก้ไขโค้ด การทดสอบโปรแกรม การสร้างเอกสาร การแก้ไขรูปภาพ และอื่นๆ อีกมากมาย -IDE โหลดโปรเจค (ที่ประกอบด้วยไฟล์จำนวนมาก) ที่มีฟีเจอร์หลักๆคือ navigation ระหว่างไฟล์, autocompletion, บางตัวจะมี version management system อย่างกิต (git) ให้ด้วย, testing environment และฟีเจอร์ที่จัดการกับโปรเจ็คต์โดยเฉพาะ +IDE จะโหลดโปรเจกต์ (ซึ่งอาจประกอบไปด้วยไฟล์หลายไฟล์) และช่วยให้ผู้ใช้สามารถเลือกไฟล์ต่าง ๆ ได้ง่ายขึ้น รวมไปถึงให้คำแนะนำด้วยระบบ autocompletion โดยพิจารณาจากโปรเจกต์ทั้งหมดไม่ใช่เพียงไฟล์ที่เปิดอยู่เท่านั้น นอกจากนี้ยังรวมถึงระบบการจัดการเวอร์ชัน (เช่น [git](https://git-scm.com/)) รวมถึงการทดสอบโปรแกรมและฟังก์ชันอื่น ๆ ของโปรเจกต์ -หากยังไม่มี IDE ในดวงใจ ลองดู IDE ด้านล่างไว้พิจารณา +หากคุณยังไม่ได้เลือก IDE ที่เหมาะสมสำหรับคุณ ขอแนะนำสองตัวเลือกต่อไปนี้ -- [Visual Studio Code](https://code.visualstudio.com/) (cross-platform, ฟรี). -- [WebStorm](http://www.jetbrains.com/webstorm/) (cross-platform, เสียตัง). +- [Visual Studio Code](https://code.visualstudio.com/) (สามารถใช้งานได้ทั้งบนแพลตฟอร์มหลายระบบ และฟรี) +- [WebStorm](http://www.jetbrains.com/webstorm/) (สามารถใช้งานได้ทั้งบนแพลตฟอร์มหลายระบบ แต่ต้องจ่ายค่าใช้จ่าย) -สำหรับผู้ใช้ Windows หลายๆคนอาจมีความสับสนกับชื่อระหว่าง Visual Studio Code กับ Visual Studio ตัวหลังเป็น IDE แบบเสียตัง และดีที่สุดของ IDE สำหรับ Windows โดยเฉพาะฝั่งของ .NET และ JavaScript ก็พอใช้ได้ ยังมีเวอร์ชั่นฟรีให้ใช้ด้วย [Visual Studio Community](https://www.visualstudio.com/vs/community/). +สำหรับ Windows ยังมี "Visual Studio" ซึ่งชวนให้สับสนกับ "Visual Studio Code" ตัว "Visual Studio" นี้ เป็นเครื่องมือแก้ไขโค้ดที่เหมาะสำหรับ .NET platform แต่เราสามารถใช้มันสำหรับการเขียนโค้ดภาษา JavaScript ได้ นอกจากนี้ยังมีเวอร์ชันฟรีอย่าง [Visual Studio Community](https://www.visualstudio.com/vs/community/) อีกด้วย -IDE ส่วนมากจะเสียตัง แต่จะมีระยะเวลาทดลองใช้ แต่ค่าใช้จ่ายส่วนนี้มักจะเล็กน้อยเมื่อเทียบกับรายได้ของนักพัฒนาต่างประเทศ เก่งๆ หรือทำงานมาหลายปี ดังนั้นเลือกที่ตัวเองชอบมากที่สุด +ในทางปฏิบัติ หลาย ๆ IDE จะจ่ายเงินแต่มีระยะเวลาทดลองใช้ ค่าใช้จ่ายที่ต้องจ่ายต่อเดือนก็น้อยมากเมื่อเปรียบเทียบกับเงินเดือนนักพัฒนาที่มีความรู้ความสามารถ ดังนั้นเพียงแค่เลือก IDE ที่เหมาะสมกับที่คุณ -## Lightweight editors +## Lightweight editor (เครื่องมือแก้ไขโค้ดที่มีขนาดเล็กและไม่ซับซ้อน) -"Lightweight editors" ไม่ได้มีฟีเจอร์เทียบเท่า IDE แต่เร็ว สวย และใช้งานง่าย +โดยทั่วไปแล้ว "Lightweight editor" ไม่มีความสามารถเทียบเท่ากับ "IDE" แต่มีความเร็ว สวยงาม และใช้งานง่ายมากกว่า IDE -ส่วนใหญ่มักจะใช้เพื่อเปิดไฟล์แก้ไขได้ทันที +โดยปกติแล้ว "Lightweight editor" จะใช้เพื่อเปิดและแก้ไขไฟล์ทันที -ความแตกต่างระหว่าง IDE กับ Lightweight editors คือ IDE มักจะทำงานในระดับโปรเจค ที่ต้องอาศัยการประมวล โหลดข้อมูลจำนวนมาก หรือวิเคราะห์โครงสร้างในโปรเจ็คต์ และอื่นๆ ส่วนแบบ lightweight จะตอบโจทย์ด้านความเร็ว หากเราต้องการแก้ไขไฟล์แค่ไฟล์เดียว +โดยไม่ต้องโหลดข้อมูลโปรเจกต์ใหญ่ ๆ เหมือน "IDE" ที่ต้องโหลดข้อมูลโปรเจกต์และวิเคราะห์โครงสร้างโปรเจกต์ก่อนที่จะเริ่มทำงาน ดังนั้น "Lightweight editor" จึงมีความเร็วกว่าเมื่อเราต้องการแก้ไขเพียงไฟล์เดียว แต่ถ้าเราต้องการแก้ไขไฟล์หลายไฟล์ในโปรเจกต์ จะต้องเปิดโปรเจกต์ใน "IDE" แทน -ในทางปฎิบัติ lightweight editors บางตัวอาจมีปลั๊กอินไว้ติดตั้งเพิ่มเติมด้วย เช่น ตัววิเคราะห์ directory-level syntax และ autocompleters ดังนั้นจึงไม่มีเส้นแบ่งระหว่างตัวที่เป็น IDE กับ lightweight ชัดเจนมากนัก +ในการปฏิบัติงาน "Lightweight editor" อาจมีปลั๊กอินหลายตัวที่สามารถวิเคราะห์ไฟล์และให้คำแนะนำตามไดเรกทอรีได้ ดังนั้นไม่มีขอบเขตที่ชัดเจนระหว่าง "Lightweight editor" และ "IDE" แต่ในทางปฎิบัติ "Lightweight editor" จะมีความเร็วมากกว่า "IDE" แต่ไม่มีความสามารถเทียบเท่ากับ "IDE" -ก็จะมีตัวเลือกดังต่อไปนี้ +มีตัวเลือกหลากหลายอย่างเช่น -- [Atom](https://atom.io/) (cross-platform, ใช้งานได้ฟรี) -- [Sublime Text](http://www.sublimetext.com) (cross-platform, ให้ทดลองใช้). -- [Notepad++](https://notepad-plus-plus.org/) (Windows, ใช้งานได้ฟรี). -- [Vim](http://www.vim.org/) และ [Emacs](https://www.gnu.org/software/emacs/) ถ้าใช้เป็นจะเท่มากในหมู่โค้ดเดอร์ +- [Sublime Text](http://www.sublimetext.com) (สามารถใช้งานได้บนแพลตฟอร์มหลายระบบ และเป็นแชร์แวร์) +- [Notepad++](https://notepad-plus-plus.org/) (สำหรับ Windows เป็นฟรีแวร์) +- [Vim](http://www.vim.org/) และ [Emacs](https://www.gnu.org/software/emacs/) ก็เป็นตัวเลือกที่เยี่ยมยอดมาก หากคุณรู้จักใช้งานและมีความสนใจ -## อย่าเถียงกันเลย +## เรามาเลิกทะเลาะกันเถอะ -รายการ editor ข้างที่แนะนำข้างต้น เป็น editor ที่คนรอบข้างที่เป็นนักพัฒนาและตัวผมเองใช้ (แค่ตัวเดียวนะ) เป็นเวลานาน และมีความสุขที่ได้ใช้ +เครื่องมือแก้ไขโค้ดที่แนะนำไปข้างต้น คือตัวเลือกที่ผมและเพื่อน ๆ นักพัฒนาที่เก่ง ๆ ใช้งานมานานและพึงพอใจกับการใช้งาน -มี editor อีกมากมายพร้อมเป็นตัวเลือกสำหรับเรา จงเลือกตัวที่เหมาะกับเรามากที่สุด +โลกของเรายังมีเครื่องมือแก้ไขโค้ดที่ยอดเยี่ยมมากมายอยู่ด้วย อย่าลืมเลือกตัวเลือกที่คุณชื่นชอบมากที่สุดนะ -ตัว editor เอง ก็เป็นเหมือนเครื่องมืออื่นๆ ดังนั้นเหตุผลจึงขึ้นอยู่กับโปรเจคที่ทำ นิสัย และความชอบของเรามากกว่า +การเลือกเครื่องมือแก้ไขโค้ดเช่นเดียวกับเครื่องมืออื่น ๆ ขึ้นอยู่กับแต่ละคน ขึ้นอยู่กับโปรเจกต์ ตวามเคยชิน และความชื่นชอบส่วนบุคคล + +ความเห็นส่วนบุคคลของผู้เขียน: + +- หากฉันพัฒนาโปรแกรมฝั่งเว็บโดยส่วนใหญ่ ฉันจะใช้ [Visual Studio Code](https://code.visualstudio.com/) +- แต่หากโปรแกรมภาษา/แพลตฟอร์มอื่นๆ มีส่วนผสมของโปรแกรมฝั่งเว็บ ฉันจะพิจารณาเลือกโปรแกรมแก้ไขโค้ดอื่นๆ เช่น XCode (สำหรับ Mac), Visual Studio (สำหรับ Windows) หรือ Jetbrains family (Webstorm, PHPStorm, RubyMine เป็นต้น) โดยขึ้นอยู่กับภาษาที่ใช้งาน