การเขียนโปรแกรมโดยไม่ใช้ IDE กราฟิก


18

ฉันไม่แน่ใจว่ามันจะเป็นไปได้หรือไม่ แต่ฉันได้ดูวิดีโอบางรายการที่มีตัวอย่างการเขียนโปรแกรมซึ่งดูเหมือนว่าโปรแกรมกำลังถูกเขียนด้วยพรอมต์คำสั่งบางประเภทแทนที่จะเป็น IDE กราฟิกที่ดี ฉันแค่อยากรู้เกี่ยวกับสิ่งที่อาจเกิดขึ้นในวิดีโอเหล่านี้ เป็นไปได้ไหมที่จะเขียนโปรแกรมโดยไม่ใช้ IDE?

นี่คือสองตัวอย่าง: http://www.youtube.com/watch?v=hFSY9cWjO8o (@ 6 นาที) http://www.youtube.com/watch?v=tKTZoB2Vjuk (@ 5 นาที)

ใครช่วยอธิบายวิธีนี้ทำ

ขอบคุณสำหรับข้อเสนอแนะที่ยอดเยี่ยม!


48
เห็นได้ชัดว่าคุณสามารถเขียนโปรแกรมโดยไม่ต้องใช้ IDE คุณคิดว่า IDE แรกถูกเขียนอย่างไร
Charles Salvia

34
เด็กวันนี้! คิดว่าพวกเขาไม่สามารถเขียนโปรแกรมโดยไม่ต้อง IDE แฟนซี! ทำไมในวันของฉันเราต้องรวบรวมรหัสเครื่องด้วยตัวเองเดินขึ้นเขาทั้งสองในหิมะ ...
JSB ձոգչ

33
คำถามนี้ทำให้ฉันเศร้า ยิ่งกว่าคนทั่วไปที่สมมติว่าซอฟต์แวร์และฮาร์ดแวร์เป็นอะไรที่วิเศษคุณเป็นโปรแกรมเมอร์คุณควรรู้ดีกว่า! (และสำหรับบันทึกฉันนับได้ว่าเป็นเด็กสำหรับผู้ที่ใช้รหัสเครื่อง)

10
มันไม่ใช่บรรทัดคำสั่ง แต่เป็นเท็กซ์เทอร์มิกเตอร์ โปรแกรมแก้ไขข้อความที่ได้รับความนิยมสูงสุดสองตัวคือ vi และ emacs ทำงานในเทอร์มินัล (และ GUI ด้วยในปัจจุบัน)
Lennart Regebro

4
@ jas- ขอบคุณสำหรับความคิดเห็นที่สร้างสรรค์และลึกซึ้ง
Matt

คำตอบ:


22

สิ่งที่คุณต้องเขียนคือตัวแก้ไขข้อความและคอมไพเลอร์ (หรือล่ามหากคุณกำลังเขียนในภาษาที่ไม่ได้คอมไพล์) รหัสมักเป็นข้อความธรรมดา จริงๆคุณสามารถเขียนโปรแกรมใด ๆ เท่าที่จะเป็นไปได้โดยใช้ Windows Notepad และคอมไพเลอร์บรรทัดคำสั่ง C

โปรแกรมเมอร์จำนวนมากไม่ได้ใช้ IDE ฉันเองใช้Gedit (โปรแกรมแก้ไขข้อความ Linux พื้นฐานพร้อมการเน้นไวยากรณ์) เป็นเวลานานที่สุดก่อนที่ฉันจะเปลี่ยนเป็น Eclipse ในที่สุด

ที่จริงแล้วฉันยังคงใช้ Gedit เมื่อฉันต้องการเขียนโปรแกรมอย่างง่าย บางครั้งฉันก็แค่ใช้นาโนถ้าฉันต้องการแส้สคริปอย่างรวดเร็วเพราะฉันใจร้อนเกินกว่าจะรอให้ IDE ทำการโหลด


2
ฉันเป็นแฟนตัวยงของเกดิทและเคท ฉันใช้นาโนเมื่อฉันแก้ไขรหัสจากระยะไกล
Tim Post

8
ฉันชอบ Notepad ++ :)
Mateen Ulhaq

+1 ถึงนาโนและ vi ของฉัน!
crodjer

4
ในความเป็นจริงคุณไม่จำเป็นต้องมีโปรแกรมแก้ไขข้อความเช่นกัน ใน UNIX คุณสามารถเขียนโค้ดด้วยcatใน Windows ด้วยmore ชัด ๆ ว่าคุณต้องเขียนมันในครั้งแรก แน่นอนโปรแกรมเมอร์จริงใช้ butterflies;) xkcd.com/378
OscarRyz

1
@OscarRyz - "" แน่นอนว่ามีคำสั่ง emac สำหรับสิ่งนั้น " +1 ถึง Notepad ++ แม้ว่า
Jetti

11

@ แมทมันง่ายกว่าที่คิด ลองดูวิดีโอที่สอง: พวกเขากำลังเขียนโปรแกรมหลาม Python เป็นภาษา interpred - หมายถึงว่าโปรแกรมที่เขียนใน python ไม่จำเป็นต้องรวบรวมมันเพียงแค่ต้องตีความเพื่อให้ทำงานได้

หากคุณมีเครื่องมือแก้ไขอย่างง่ายเช่นnotepad (windows) หรือnano (linux) คุณสามารถเขียนไฟล์ข้อความอย่างง่ายตั้งชื่อสมมติว่า"program.py"และเรียกใช้การแปลจากบรรทัดคำสั่งดังต่อไปนี้:

python program.py

หากคุณต้องการเขียนโปรแกรมในLuaคุณสามารถเขียนไฟล์ข้อความอย่างง่าย ๆ"program.lua"โดยใช้notepadหรือnanoและเขียนบรรทัดเดียวบนไฟล์ข้อความของคุณดังต่อไปนี้:

print("my first program in lua")

จากนั้นไปที่พรอมต์คำสั่ง (cmd บน windows, terminal ใน linux) และเรียกใช้คำสั่ง:

lua program.lua

แนวคิดหลัก:

  • โปรแกรม raw คือไฟล์ข้อความ สิ่งที่คุณต้องเขียนคือตัวแก้ไขข้อความ
  • หากตัวเลือกภาษาของคุณถูกตีความคุณจะต้องใช้ล่ามในการรันโปรแกรมของคุณ (Lua, Basic, Python, ฯลฯ ... ) ต้องติดตั้งล่ามนี้ไว้ในคอมพิวเตอร์ของคุณ
  • หากตัวเลือกภาษาของคุณเป็นภาษาที่รวบรวมคุณจะต้องมีtoolchainติดตั้ง (ส่วนใหญ่เป็นคอมไพเลอร์และตัวเชื่อมโยง) เพื่อแปลซอร์สโค้ดของคุณไปเป็นรหัสไบนารีที่เครื่องเข้าใจได้และทำงานได้ แต่ละภาษา (C, Java, C ++, C #, VB.Net, ฯลฯ ... ) มี toolchain ของตัวเอง

หวังว่าจะช่วย


4
Notepad ++ ดีกว่าสำหรับการเน้นไวยากรณ์! และอย่าลืมเกี่ยวกับ EMACS: D
K-RAN

Haskell เป็นภาษาที่รวบรวม (ที่มีล่ามด้วย)
jsternberg

ฉันพบว่า Notepad2 (หรือ Notepad2-Mod ค่อนข้าง) จะดีกว่า Notepad ++ ; P code.google.com/p/notepad2-mod
Spoike

@ jsternberg ขอบคุณสำหรับการป้อนข้อมูลใน Haskell ... ฉันไม่รู้ภาษาที่ดีเกินกว่าจะบอกได้
Machado

1
@ K-RAN: ทั้งหมดที่ฉันใช้คือ Emacs ยกเว้นว่าฉันใช้ XCode สำหรับการเขียนโปรแกรม iPhone ด้วย TRAMP มันไม่สามารถหยุดได้!
Josh

10

พระเยซูฉันรู้สึกแก่แล้วและฉันไม่เคยยุ่งกับบัตรตอกหรือการประมวลผลแบบกลุ่ม เฮ้ฉันต้องใช้เทอร์มินัลสำเนาถาวรเพียงครั้งเดียวหรือสองครั้งตลอดเส้นทางอาชีพการงานวิทยาลัยของฉัน

นี่คือวิธีที่เราทำสิ่งต่าง ๆ ในช่วงปลายยุคครีเทเชียส (ประมาณปี 1986) ฉันทำงานกับ VAX / VMS ผ่านเทอร์มินัลที่ใช้ตัวอักษรสีเหลืองอำพันบนสีดำ VT220 ซึ่งสามารถแสดงได้ทั้งในขนาด 80x24 หรือ 132x24

ก่อนอื่นคุณใช้โปรแกรมแก้ไขข้อความ:

$ EDIT/EDT HELLO.C

EDT เป็น VMS ที่เทียบเท่ากับ vi ลดลงบางแห่งในความสามารถระหว่าง DOS edlin และ Notepad คุณพิมพ์ข้อความในโปรแกรมของคุณ

#include <stdio.h>

int main(void)
{
  printf("Hello, Stupid\n");
  return 0;
}

บันทึกลงในไฟล์แล้วออกจากตัวแก้ไข

จากนั้นคุณรันโค้ดของคุณผ่านคอมไพเลอร์:

$ CC HELLO

นี่แปลซอร์สโค้ดใน HELLO.C และสร้างอ็อบเจ็กต์ไฟล์ HELLO.OBJ ไฟล์ออบเจ็กต์มีรหัสเครื่องสำหรับโปรแกรม แต่ยังไม่ได้อยู่ในรูปแบบที่ปฏิบัติการได้ สำหรับสิ่งหนึ่งรหัสไบนารีที่แท้จริงสำหรับการprintfโทรไม่มีอยู่ มีตัวยึดสำหรับมันเท่านั้น คุณยังคงต้องเรียกใช้ไฟล์วัตถุผ่านตัวเชื่อมโยงซึ่งรวมรหัสไบนารี่จากไลบรารีมาตรฐาน (และไลบรารี่อื่น ๆ ที่คุณต้องการ) และจัดรูปแบบไฟล์เพื่อให้สามารถจดจำได้ว่าเป็นไฟล์ปฏิบัติการ:

$ LINK HELLO

ผลลัพธ์ของขั้นตอนนี้คือไฟล์ HELLO.EXE ซึ่งเป็นเวอร์ชันที่รันได้ของโปรแกรมของคุณ

ขั้นตอนนี้ค่อนข้างเหมือนกันกับระบบที่ทันสมัย เป็นเพียงว่าเครื่องมือเฉพาะแตกต่างกัน ตัวอย่างเช่นลำดับของคำสั่งบนระบบ Linux ทั่วไปจะเป็น

$ vi hello.c
$ gcc -o hello hello.c 

หรือ

$ vi hello.c
$ gcc -c hello.c 
$ ld -o hello hello.o -lc

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


ฉันขอโทษที่คุณได้สัมผัสกับ (V) omit (M) aking (S) ystem เมื่ออายุยังน้อยและน่าประทับใจ ฉันหวังว่ามันจะไม่ส่งผลให้เกิดผลลัพธ์ที่ยั่งยืน ...
Tim Post

2
@Tim Post: คุณล้อเล่นใช่ไหม สำหรับฉันนั่นเป็นช่วงเวลาที่ดี มันเป็นเรื่องตกต่ำตั้งแต่นั้นมา
John Bode

บางทีฉันอาจจะฟังดูขมเล็กน้อย อย่างไรก็ตามในการป้องกันตัวของฉันฉันเป็นคนหนึ่งที่ต้องคอยอัดเสียงกันอย่างต่อเนื่องโดยเฉพาะอย่างยิ่ง Novell ที่ขับเคลื่อนเครือข่าย 3270 ผ่านวงแหวนโทเค็น ฉันยังคงมี nigtmares จากนั้นแม้จะมีการรักษาเป็นเวลาหลายปี
Tim Post

การสะกดคำที่น่าสนใจของ "โลก"

6

ใช่มันเป็น

เช่นเดียวกับที่เป็นไปได้ที่จะทำกาแฟโดยไม่ต้องดื่มนมพร้อม ๆ กันขับรถไปทำงานโดยไม่ต้องคุยโทรศัพท์และทำภาษีหรือจ้องมองดาวโดยไม่ฟัง "flight of the bumblebee" ในระบบเสียงรอบทิศทางเป็นไปได้ เพื่อคอมไพล์รหัสโดยไม่ต้องเรียกใช้โปรแกรมแก้ไข, ดีบั๊ก, ระบบวิเคราะห์รหัสและเกมงู

แต่ ... ใครที่อยากจะจ้องมองดวงดาวอย่างเงียบ ๆ ?!


1
คุณยินดีที่จะอธิบายได้อย่างไร
Matt

1
@ Matt: โปรแกรมหนึ่งต่อรหัสงาน ... เขียนในบรรณาธิการรวบรวมโดยใช้คอมไพเลอร์ , การแก้ปัญหาโดยใช้ดีบัก , ใช้เวลาพักผ่อนและการเล่นงู
Shog9

2
-1 ฉันไม่คิดว่านี่เป็นสิ่งที่สร้างสรรค์
sixtyfootersdude

1
1 ก็ไม่ได้ทำลายมันเป็นเพียงคำอุปมา อย่ากลัวเรื่องตลก
ern0

6

Editor ได้หรือไม่ ฉันไม่ต้องการตัวแก้ไขเหม็นหรือ IDE ในการเขียนรหัส:

cat << EOF > hello.c
/* This IS an example of writing code from the command line */
#include <stdio.h>

int main(void)
{
    puts("Hello, World!");
    return 0;
}

EOF

อย่างไรก็ตามมันเป็นเรื่องดีที่มีบางอย่างที่จะแก้ไขไฟล์ในภายหลัง IDE (สภาพแวดล้อมการพัฒนาแบบบูรณาการ) ได้รับรอบนานกว่าคนจำนวนมากจะแนะนำในคำตอบของพวกเขา IDE เดียวที่ฉันชอบมากที่สุดคือ IDE ที่มาพร้อมกับTurbo Cซึ่งทำงานบน DOS มันเป็นเหมือนออกซิเจนไปยังคนที่ถูกบังคับให้โคลนรอบกับEdlin

ฉันได้ลอง 'ห้องชุด' ของ IDE ที่แตกต่างกันตามคำแนะนำจากเพื่อน ๆ ที่ไม่สามารถหยุดพูดเพ้อเจ้อเกี่ยวกับเวลาที่พวกเขาประหยัดได้และพวกเขาทำทุกสิ่งได้อย่างสะดวก ทุกครั้งที่ฉันนั่งลงเพื่อลองใช้งานฉันพบว่าฉันต่อสู้มากกว่าใช้งาน

ส่วนใหญ่ฉันใช้ตัวแก้ไขข้อความที่ง่ายที่สุด สิ่งที่ฉันชอบคือ KATE ซึ่งมาพร้อมกับ KDE นี่คือคุณสมบัติที่ฉันชอบ:

  • การเน้นไวยากรณ์ที่ยอดเยี่ยม
  • การพับโค้ด
  • ค้นหา / แทนที่ด้วย regex แบบง่าย ๆ
  • หน้าต่างเชลล์แบบอินไลน์
  • หน้าต่างคอมไพเลอร์แบบอินไลน์ / หน้าต่างดีบักเกอร์
  • ตัวอย่างคลังภาพ
  • โปรแกรมดูสัญลักษณ์
  • รอยเท้าหน่วยความจำน้ำหนักเบามาก (บางโครงการของฉันมีไฟล์ต้นฉบับหลายร้อยไฟล์)
  • แท็บ / windows ที่แยกง่าย
  • เซสชันง่าย ๆ แทนที่จะเป็น 'โครงการ' ที่ซับซ้อน
  • สถาปัตยกรรมปลั๊กอิน (กึ่ง) แบบง่าย

ด้วยคุณสมบัติพื้นฐานเหล่านั้นฉันรู้สึกว่าฉันเกือบจะเสีย

ฉันทำงานได้จริงน้อยลงเมื่อทำงานกับ IDE ที่มีฟีเจอร์มากมายและขอบคุณที่ฉันไม่เคยพัฒนาการพึ่งพาที่หนึ่ง


สำหรับบันทึกคุณสมบัติส่วนใหญ่ที่คุณพูดถึงมีอยู่ในเครื่องมือแก้ไขข้อความของโปรแกรมเมอร์ที่ทันสมัยไม่ใช่เฉพาะ IDE
Xiong Chiamiov

เกลียดที่จะทำลายคุณ แต่คุณสมบัติเหล่านี้เป็นสิ่งที่ทำให้ IDE
devshorts

4

IDE ไม่ใช่คอมไพเลอร์, ดีบั๊กหรืออะไรที่คล้ายกันมันเป็น front-end ที่อนุญาตให้คุณเข้าถึงสิ่งเหล่านี้ทั้งหมดซึ่งโดยทั่วไปแล้วจะเป็นโปรแกรมแยกต่างหาก เบื้องหลังของ Visual Studio มีคอมไพเลอร์ที่คุณสามารถเข้าถึงเป็นโปรแกรมแยกการคอมไพล์โปรแกรมของคุณจาก Command Prompt และอาจมีการดีบั๊กซึ่งสามารถเข้าถึงได้แยกจากกันเป็นต้น - ฉันไม่คุ้นเคยกับโครงสร้างพื้นฐานของมันมากนัก เพราะฉันไม่ได้ใช้มัน

IDE ขึ้นอยู่กับว่าคุณถามใครมีประโยชน์มากหรือมีแนวโน้มที่จะเข้าใกล้คุณ นอกจากนี้ยังขึ้นอยู่กับสิ่งที่คุณเขียนตามขนาดรูปแบบการเขียนเป็นต้น ฉันคนหนึ่งไม่รู้สึกว่าจำเป็นต้องใช้ IDE มากเกินไป แต่ฉันคิดว่างานบางอย่างได้รับการจัดการที่ดีกว่า (หรือขึ้นอยู่กับว่าคุณมองอย่างไรว่าฉันขี้เกียจเขียนสคริปต์ / มาโครสำหรับตนเอง)


3

มันเป็นอย่างแน่นอน ในวิดีโอแรกมันเกี่ยวกับการเขียนโปรแกรม C ในการเขียนโปรแกรม C คุณต้องมีสิ่งต่อไปนี้:

  • ไฟล์ต้นฉบับบางประเภทที่เขียนโค้ดไว้
  • Toolchain เพื่อแปลงไฟล์ต้นฉบับนี้เป็นไบนารีซึ่งเป็นสิ่งเดียวที่ CPU สามารถเข้าใจได้ในที่สุด

พูดอย่างเคร่งครัดคุณไม่จำเป็นต้องใช้ไฟล์ แต่ฉันไม่รู้สภาพแวดล้อมใด ๆ ที่ไม่ได้ใช้ไฟล์สำหรับ C / C ++ คุณต้องมีเครื่องมือแก้ไขเพื่อแก้ไขรหัสต้นฉบับ แม้ว่าสิ่งที่ง่ายเหมือน Notepad ทำงานคุณต้องการสิ่งที่ซับซ้อนมากขึ้นในการเข้ารหัส (การเน้นรหัสเปิดไฟล์หลายไฟล์ในเวลาเดียวกัน ฯลฯ ... )

สำหรับจุดที่สองคุณจำเป็นต้องมีคอมไพเลอร์ (ซอร์สโค้ด -> รหัสวัตถุ) และตัวเชื่อมโยง (รหัสวัตถุรวมเข้าด้วยกัน + สนับสนุนน้อยที่สุดเพื่อเริ่มโปรแกรม)

แม้จะมี IDE งานส่วนใหญ่ที่ทำเบื้องหลังอาจทำได้จากบรรทัดคำสั่ง: ตัวอย่างเช่นใน visual studio IDE ยังคงใช้ไฟล์และเรียกคอมไพเลอร์ที่บรรทัดคำสั่งให้คุณ แต่ก็สามารถทำงานได้ด้วยวิธีอื่น ( และอาจใช้เพื่อการรวมกลุ่มเพิ่มเติม)

ดังนั้นทำไมไม่ใช้ IDE? บางคนค่อนข้างวิเคราะห์เกี่ยวกับโปรแกรมแก้ไขรหัสของพวกเขาเพราะพวกเขารู้ดี ตัวอย่างเช่นฉันค่อนข้างมีประสิทธิผลด้วยเครื่องมือแก้ไขรหัส vi IDE ก็มี จำกัด เช่นกันหากคุณต้องการโต้ตอบกับสิ่งที่ IDE ไม่ได้ออกแบบมา มีข้อแลกเปลี่ยนที่นี่ซึ่งขึ้นอยู่กับความสามารถของโปรแกรมเมอร์โครงการภาษาการเขียนโปรแกรม / เครื่องมือ ฯลฯ ... บางภาษาไม่มีแม้แต่ IDE ที่เหมาะสมภาษาอื่น ๆ บางภาษาแทบไม่สามารถใช้งานได้หากไม่มี แม้ว่าฉันจะไม่ใช้ IDE ด้วยตัวเอง แต่พื้นที่หนึ่งที่ฉันคิดว่ามีประโยชน์มากก็คือการดีบักการรวมสำหรับ C และ C ++


ฉันใช้ Notepad เพื่อเรียนรู้การเขียนโปรแกรมใน Java ฉันได้ Crimson Editor และใช้ gedit บน Linux ไม่นานหลังจากนั้น แต่ไม่ได้สัมผัส IDE จนกว่าจะถึง 2 ปีหลังจากหยิบมันขึ้นมา งานปัจจุบันของฉันเป็นโปรแกรมเมอร์ Java
Michael K

ใช่จาวาเป็นตัวอย่างทั่วไปที่ฉันไม่ค่อยพบคนที่ไม่ได้ใช้ IDE ภาษาเป็นเพียงปัจจัยเดียว: โดเมน, ขนาด, "วัฒนธรรม" ทั้งหมดเป็นปัจจัยฉันไม่ค่อยได้ใช้ IDE ด้วยตัวเอง (ส่วนใหญ่ฉันใช้ Python และ C ทุกวันนี้และฉันยังไม่เห็น IDE ของ Python ที่เหมาะสม)
David Cournapeau

คุณสามารถใช้tccเพื่อคอมไพล์ / รันโปรแกรม C โดยไม่ต้องสร้างไฟล์:printf '#include <stdio.h>\nint main() { printf("Hello, World\\n"); return 0; }' | tcc -run -
programmerjake

2

แน่นอนคุณสามารถเขียนโปรแกรมโดยไม่ใช้ IDE กราฟิก สำหรับภาษาที่คอมไพล์แล้ว (เช่น C หรือ C ++) กระบวนการจะเป็นดังนี้:

  1. เขียนโปรแกรมในโปรแกรมแก้ไขข้อความที่คุณต้องการ
  2. จากบรรทัดคำสั่งให้เรียกใช้คอมไพเลอร์และ / หรือตัวเชื่อมโยงที่จะแปลงโปรแกรมของคุณเป็นรหัสเครื่องที่ทำงานได้และดึงเข้าไปในไลบรารีภายนอกที่ต้องการ (ฉันมัวนิดหน่อยกับลำดับของการเชื่อมโยงและการคอมไพล์ที่นี่ แต่ฉันแน่ใจว่ามีบางคนจะแก้ไขฉันในเวลาไม่นาน :))

สำหรับภาษาที่แปลเช่น PHP หรือ Python คุณเขียนโค้ดในเท็กซ์เอดิเตอร์ที่คุณต้องการ (หรือเชลล์แบบอินเทอร์แอคทีฟเช่นเดียวกับไพ ธ อนที่มาพร้อมกับ) และโค้ดจะถูกดำเนินการโดยโปรแกรมตีความ ตัวอย่างเช่นในการเรียกใช้สคริปต์ Python python.exe myScript.pyคุณต้องการใช้สิ่งที่ต้องการ

Python ไม่ใช่ภาษาที่ถูกตีความอย่างแท้จริงเนื่องจากมันได้รับการคอมไพล์ก่อน แต่รูปแบบที่รวบรวมนั้นดำเนินการโดย Python interpreter ดังนั้นมันจึงยังเหมาะกับคำจำกัดความ ภาษาอื่น ๆ เช่น PHP แปลทั้งหมด


1

ใช่คุณสามารถเขียนโค้ดโดยไม่มีคอมไพเลอร์และไม่มี IDE ทั้งหมดนั้นคือการเขียน ข้อความ


2
คุณยินดีที่จะอธิบายได้อย่างไร
Matt

7
คุณพิมพ์บนแป้นพิมพ์ของคุณ
Matthew อ่าน

Matthew แปลว่าคุณสามารถเขียนโปรแกรมได้ แต่ไม่มีประโยชน์ :)
Abimaran Kugathasan

2
@Abimaran ฉันไม่แน่ใจ 100% ว่าคุณหมายถึงอะไร แต่คุณสามารถเรียกใช้ / ใช้โปรแกรมได้โดยไม่ต้องมีคอมไพเลอร์หรือ IDE ภาษาสามารถตีความได้ไม่เพียง แต่รวบรวม
Matthew อ่าน

1
@Michael ฉันไม่เห็นด้วย มันไม่ได้ตีความอะไรมากไปกว่าเครื่องมือวิเคราะห์ที่ตีความตำแหน่งของเกียร์
Matthew อ่าน

1

ฉันคิดว่าคุณกำลังอ้างถึง Integrated Development Environment's (IDE) พวกเขาให้คำแนะนำรหัสและเน้นไวยากรณ์ในสิ่งอื่น ๆ คอมไพเลอร์เพียงนำไฟล์และคอมไพล์ไปไว้ในรหัสเครื่องหรือรหัสไบต์ คอมไพเลอร์มักจะใช้โดย IDE โดยส่งคำสั่งเพื่อรวบรวมไฟล์ของคุณ

มันเป็นไปได้ที่จะเขียนโดยไม่ต้องรวบรวม ภาษาเหล่านี้ใช้ 'ล่าม' และประมวลผลสคริปต์ในขณะดำเนินการ


1
คุณยินดีที่จะอธิบายได้อย่างไร
Matt

หรือคุณอาจจะเขียนโปรแกรมในไบนารี :)
ไมเคิล K

หรือใช้ CIL .. : P Matt จากวิดีโอที่ฉันเห็นคุณสามารถติดตั้งบางอย่างเช่น BASIC และพิมพ์และเรียกใช้คำสั่งผ่านบรรทัดคำสั่ง
Ross

1

IDE ทั้งหมดมีเครื่องมือหลายอย่างในที่เดียวและจากนั้นทำให้กระบวนการบางอย่างเป็นอัตโนมัติ เครื่องมือเหล่านั้นโดยทั่วไป ...

  • โปรแกรมแก้ไขข้อความ
  • คอมไพเลอร์
  • เครื่องมือดีบั๊ก
  • โปรแกรมดูเอกสาร

ในการเขียนแหล่งที่มาของคุณคุณสามารถใช้โปรแกรมแก้ไขข้อความใด ๆ ที่ผลิตข้อความธรรมดาเช่น NotePad, Word หรือโปรแกรมแก้ไขข้อความที่สร้างขึ้นเพื่อวัตถุประสงค์

เมื่อคุณมีแหล่งข้อมูลของคุณในไฟล์ข้อความคุณสามารถเปิดคอมไพเลอร์ของคุณผ่านทางบรรทัดคำสั่งที่ส่งผ่านในไฟล์ทดสอบของคุณเช่น cc my_program.c สิ่งนี้จะสร้างไฟล์วัตถุที่คุณสามารถดำเนินการได้

ในการดีบักโปรแกรมของคุณคุณจะเปิดตัวดีบั๊กผ่าน commandline ที่ผ่านในโปรแกรมของคุณเช่น gdb my_program จากนั้นคุณสามารถตั้งค่าเบรกพอยต์, ขั้นตอนที่ผ่านโปรแกรมของคุณ, ตรวจสอบสิ่งต่าง ๆ เป็นต้น

ด้วย IDE ทั้งหมดนี้เกิดขึ้นได้ด้วยการกดปุ่มด้านหลังของฉากและ IDE จะใส่ UI ที่สวยงามไว้เหนือสิ่งอื่นใด

PS โปรแกรมเมอร์จริงใช้ commandline


2
โปรแกรมเมอร์จริงใช้ punch card และสร้าง CPU ของตนเองจากทรานซิสเตอร์ pre-MOSFET พวกเขายังเล่นหมากรุกด้วยชิ้นส่วนที่ทำจากคอนกรีตและชั่งน้ำหนักอย่างน้อย 25 ปอนด์ต่อชิ้น
งาน

1
@Job ทรานซิสเตอร์สำหรับน้องสาวข้อตกลงจริงคือ: en.wikipedia.org/wiki/Vacuum_tube
Machado

ฉันคิดว่าเราเป็นคนน่าเบื่อและไม่สามารถยกเม้าส์ได้
Michael K

2
โปรแกรมเมอร์จริงใช้เข็มแม่เหล็กและมือที่มั่นคง xkcd.com/378
Goran Jovic

1

ฉันเขียนรหัสประจำวันของฉันในโปรแกรมแก้ไข vim (โปรแกรมแก้ไขข้อความพื้นฐาน) และฉันสามารถมั่นใจได้ว่ามันจะเป็นไปอย่างราบรื่น (โค้ดส่วนใหญ่ของฉันคือ PHP) สาเหตุพิเศษที่ทำให้ en env ของฉันคือการกระจาย Linux พื้นฐานและฉันใช้ประโยชน์จากเครื่องมือเชลล์ ฉันได้ตั้งโปรแกรมแบบนี้มาหนึ่งปีแล้วและมันช่วยฉันได้มากเมื่อต้องรับมือกับการปรับใช้แอพพลิเคชั่นทางไกลและการดัดแปลงการผลิตซึ่งโดยทั่วไปคุณสามารถเข้าถึงคอนโซล * Nix ผ่าน ssh


1

คอมพิวเตอร์โปรแกรมดิจิตอลที่เก็บไว้มีการใช้งานมาตั้งแต่ปี 1950 ในขณะที่ส่วนต่อประสานกราฟิกผู้ใช้เริ่มปรากฏในปลายปี 1960 (และสำหรับผู้ใช้ปลายทางในทศวรรษ 1980) เท่านั้น คนมีการใช้ - โปรแกรม - คอมพิวเตอร์อย่างใดก่อนหน้านั้น

ในขณะที่มันมีความไม่ถูกต้องบางส่วน (ไม่ใช่ส่วนติดต่อผู้ใช้แพลตฟอร์มทุกคนเป็นชั้นบนระบบบรรทัดคำสั่ง) คุณอาจจะอ่านสั้น ๆ โอนีลสตีเฟนสันในเริ่มแรกบรรทัดคำสั่ง

มันจะทำให้คุณคิดเกี่ยวกับสิ่งต่าง ๆ บนคอมพิวเตอร์ของคุณทำงานภายใต้ประทุนและวิธีที่ "เป็นไปได้" ในการเขียนโปรแกรมโดยไม่ใช้ IDE ทำงานจริงด้วยบรรทัดคำสั่งและอื่น ๆ


1

คุณจำเป็นต้องใช้โปรแกรมแก้ไขข้อความ (นรก, แผ่นจดบันทึกจะทำงานได้) และคอมไพเลอร์ / ล่าม (สิ่งที่สำคัญกว่า)

คุณพูดอะไรเกี่ยวกับการทำมันผ่านทางบรรทัดคำสั่ง? อึฟังบ้า แต่ก็เป็นไปได้เป็นอย่างดี ฉันหมายถึงเพียงใช้ Windows ในตัวพร้อมรับคำสั่งคุณ 'สามารถ' เขียนไฟล์ผ่านecho "some codez" > target_file.sauceแต่คุณจะต้อง

A) เก่งในสิ่งที่คุณทำ

B) เขียนโปรแกรมง่าย ๆ

C) เป็นคนบ้าค้างคาว


1
... หรือพยายามสร้างความประทับใจให้ใครบางคน
Michael K

หรือคุณกำลังพยายามกู้คืนบางสิ่งจากระบบที่หนักหนาสาหัสและคุณไม่มีเวลาเปลี่ยนจอภาพ เคยทำมาแล้ว
mu สั้นเกินไป

1

คุณต้องคิดว่า IDE เป็นเพียงตัวแก้ไข + คอมไพเลอร์ + (บางประเภท) Makefile + ดีบักเกอร์ (บางครั้ง) + ตัวสร้าง UI แบบกราฟิก (บางครั้ง) ดังนั้นแน่นอนว่าคุณสามารถเลือกที่จะไม่ใช้ IDE เลยและแทนที่ พวกเขาด้วยโปรแกรมแก้ไขที่คุณเลือก (vim, emacs, gedit, notepad ++, [insert_others_here]), คอมไพเลอร์ (jdk สำหรับ java, gcc, แพลตฟอร์ม SDK หรือ [insert_Cpp_toolchain_here] สำหรับ C ++, ตัวแปลภาษาไพ ธ อนหรือเครื่องมืออื่น ๆ ที่ภาษาของคุณมี) makefile บางชนิด (เช่น autoh ... tools, cmake, ant, maven, ฯลฯ ), debugger บางประเภท (ซึ่งมักจะรวมอยู่ในคอมไพเลอร์) และถ้าคุณต้องการตัวสร้าง UI ของกราฟิก (Glade มาถึงใจ) และที่นั่นคุณมี IDE ของคุณเองโดยไม่มี IDE วิธีใดที่ดีที่สุดขึ้นอยู่กับคุณ (และฉันคิดว่าวันนี้ของ IDE มีค่ามากเกินไปเล็กน้อย)


1

กระพริบ

เขาใช้พิโกเป็นโคลนนาโน ฉันใช้มันเป็นครั้งคราว ฉันมักจะใช้ emacs ซึ่งมีประโยชน์น้อยกว่าเล็กน้อย แต่ให้ความสำคัญมากกว่า

ฉันไม่ได้ใช้ IDE เป็นกฎง่ายๆ บางครั้งฉันทิ้งมันไว้เพื่อแก้จุดบกพร่องหรือเพราะ toolchain ที่บรรทัดคำสั่งเป็นปัญหาในการค้นหา (มองที่คุณ Xilinx) ฉันยังใช้มันเพื่อร่าง C # ในโอกาสที่หายากเมื่อฉันทำ GUI แต่ IDEs ไม่ใช่บรรณาธิการที่ดีมากในประสบการณ์ของฉัน: คอร์ดตัวละครที่ไม่ยืดหยุ่นและไม่ใช้งานง่ายมากไม่รองรับหลายภาษาใช้หน่วยความจำมากเกินไป

ฉันควรใช้ emacs

คุณควรดูประวัติของการคำนวณ มันเขียนได้อย่างเข้าถึงได้ง่ายและจะให้มุมมองที่ยอดเยี่ยมเกี่ยวกับงานของเรา


1

คุณไม่จำเป็นต้องมีโปรแกรมแก้ไขข้อความ :) :)

หากคุณอยู่ใน windows ลองสิ่งนี้:

more > hello.c 
#include <stdio.h>

main()
{
   printf ("Hello World!\n");
}
Ctrl-C

หากคุณอยู่ใน UNIX

cat > hello.c <<. 
#include <stdio.h>

main()
{
   printf ("Hello World!\n");
}
.

จากนั้นก็คอมไพล์มันด้วยคอมไพเลอร์บรรทัดคำสั่งที่คุณชื่นชอบ :)

เห็นได้ชัดว่าคุณต้องเขียนมันถูกต้องในครั้งแรก

โปรดจำไว้ว่าโปรแกรมเมอร์จริงใช้ผีเสื้อ: http://xkcd.com/378/


0

นี่คือความสนุก: Harvard Extension School สอนการเขียนโปรแกรมโดยไม่มี IDE ... เว้นแต่ telnet + pico คือสิ่งที่คุณหมายถึงโดย IDE

วิธีที่ง่ายที่สุดคือการใช้โปรแกรมแก้ไขข้อความพื้นฐานเพื่อเขียนโปรแกรม Java ของคุณจากนั้นถ่ายโอนไฟล์ไปยังระบบ FAS โดยใช้โปรแกรม FTP เชื่อมต่อผ่าน telnet และรวบรวมและเรียกใช้บน FAS (fas.harvard.edu - Java ติดตั้งแล้ว ที่นั่น) พวกเขาจะต้องอยู่ใน FAS เพื่อที่จะส่งพวกเขาสำหรับการบ้านของคุณ ในการใช้วิธีนี้คุณอาจต้องการเรียนรู้มากพอเกี่ยวกับหนึ่งในเครื่องมือแก้ไขข้อความ Unix เพื่อให้สามารถแก้ไขไฟล์ของคุณได้อย่างรวดเร็วหรือวางแผนที่จะอัปเดตไฟล์ภายในเครื่องและถ่ายโอนอีกครั้ง ข้อมูลเพิ่มเติมเกี่ยวกับการถ่ายโอนไฟล์อยู่ในหน้าคำถามที่พบบ่อย

อย่าใช้โปรแกรมประมวลผลคำเช่น Word หรือ WordPerfect! พวกเขาเพิ่มอักขระการจัดรูปแบบจำนวนมากซึ่งคุณไม่เห็น แต่จะป้องกันไม่ให้โปรแกรมของคุณรวบรวม ใน Windows คุณสามารถใช้ Notepad หรือ Wordpad และตรวจสอบให้แน่ใจว่าคุณบันทึกไฟล์เป็น "Text Document" ด้วยนามสกุล. java หากระบบพยายามเพิ่มคำต่อท้าย ".txt" ให้ใส่เครื่องหมายคำพูดล้อมรอบชื่อไฟล์และส่วนขยายของคุณในกล่องบันทึกเพื่อป้องกันสิ่งนี้ คุณอาจลองใช้ตัวแก้ไขใด ๆ ในส่วนดาวน์โหลดที่มีประโยชน์ (อันที่เราขอแนะนำสำหรับ PC คือตัวแก้ไขไฟล์โปรแกรมเมอร์) บน Mac ให้ใช้ BBEdit Lite (เชื่อมโยงกับหน้าทรัพยากร) หรือหนึ่งในบรรณาธิการ Unix ในตัวซึ่งมีอยู่ในหน้าต่างเทอร์มินัล คุณสามารถรับโปรแกรม telnet ที่ปลอดภัยหรือใช้อย่างที่คุณมี telnet ในระบบ FAS และเขียนและแก้ไขโปรแกรมของคุณบนระบบ มีตัวแก้ไข Unix สามตัวที่คุณอาจลองใช้: pico, emacs และ vi เมื่อคุณเขียนโปรแกรมของคุณและบันทึกไว้จากนั้นคุณสามารถรวบรวมและเรียกใช้บน FAS

http://www.fas.harvard.edu/~libe50a/homework.html http://www.fas.harvard.edu/~libe50a/faq.html http://www.fas.harvard.edu/~libe50a /java.html

หากคุณถามฉันพวกเขากำลังทรมานเด็ก ๆ แต่ก็ไม่เป็นไร มีชาวสปาร์ตันมากขึ้นปล่อยให้ Mothakes, Perioikoi และ Helot เพียงลำพังกว่า Harvard สามารถยอมรับได้ในปีใดก็ตาม


ใช่มันเป็นไปได้ ฉันคิดว่าสิ่งที่ชอบ Notepad เป็น no-IDE แต่ emacs และ Textpad (ฉันใช้ทั้งสำหรับ C, Java หลักสูตร) ​​ถือว่าเป็น IDE ตอนนี้ ... หลังจากการเข้ารหัสใน C # ใน VS2010 ด้วย WinForms และทั้งหมดฉันไม่ต้องการกลับไปที่เครื่องมือแก้ไขข้อความในที่ทำงาน - ฉันจะถูกตะโกนที่ไม่ทำอึ

สำหรับโครงการทางวิชาการอย่างไรก็ตามเมื่อตัวอย่างมีขนาดเล็กก็ไม่มีเหตุผลที่จะใช้ IDE ข้อควรจำ: ในชั้นเรียนการเขียนโปรแกรมบทนำปัญหาในโลกแห่งความจริงจำนวนมากไม่ปรากฏ คุณอาจจะไม่ต้องเพิ่มไฟล์. xml เป็นทรัพยากรให้กับ dll คุณอาจไม่จำเป็นต้องตรวจแก้จุดบกพร่องมากคุณไม่จำเป็นต้องใช้สัญญาโค้ดหรือเปลี่ยนจาก C ++ เป็น C ++ / ClI ที่ไม่มีการจัดการจากนั้นเป็น C # และย้อนกลับ การมอบหมายงานด้านวิชาการไม่จำเป็นต้องยุ่งเพราะสามารถทำได้ตั้งแต่เริ่มต้นและวัดเป็นวัน / สัปดาห์ ไฟล์ทั้งหมดสามารถเป็นส่วนหนึ่งของโปรเจ็กต์เดียว (แม้แต่คอมไพเลอร์หรือคลาส OS) IDE อย่าง Visual Studio สามารถขัดขวางคุณได้จริงเมื่อ makefile แบบธรรมดาจะทำ คิดถึงตัวเลือกมากมายที่เราต้องกำหนดค่า เช่นเดียวกันกับ Eclipse - เป็นเครื่องมือแก้ไขที่ออกแบบมาอย่างเกินความสามารถซึ่งสามารถปรับแต่งได้อย่างไม่ จำกัด Makefile แบบง่ายและไฟล์ C แบบง่ายสองไฟล์อาจเป็นสิ่งที่คุณต้องการ ในความเป็นจริงคุณมีแนวโน้มที่จะควบคุมได้มากขึ้นเมื่อคุณระบุทุกสถานะด้วยตัวคุณเอง ฉันเขียนโค้ดแบบนี้ในห้องแล็บของมหาวิทยาลัยสักครั้ง มันเป็นเรื่องตลก แต่หนึ่งใน "ฝังตัว" (หมายถึงมันจะต้องมีขนาดเล็กมากที่มันจะพอดีกับเครื่องบิน) คอมพิวเตอร์ไม่มี GUI และไม่มีเมาส์ :) ฉันยังสามารถเข้าสู่ระบบแก้ไขรวบรวมและ ดีบักโปรแกรม C รวมถึงเพิ่มไดรเวอร์และคอมไพล์เคอร์เนลอีกครั้ง


จริง ๆ แล้วฉันเห็นด้วยกับวิธีนั้นครึ่งทางแม้ว่าฉันจะไม่บังคับ telnet - เพียงแค่บรรทัดคำสั่งและตัวแก้ไขข้อความ
Michael K

0

สำหรับการทำงานของฐานข้อมูลคุณเพียงแค่ใช้โปรแกรมแก้ไขข้อความ (notepad ++) และไคลเอนต์บรรทัดคำสั่งเช่น osql หรือ sqlcmd ไม่แม้แต่คอมไพเลอร์


0

ไม่เพียงเป็นไปได้แต่อย่างน้อยหนึ่งครั้งในชีวิตของคุณคุณต้องทำทำรายการโดยไม่ใช้ IDE มันจะช่วยให้คุณเข้าใจกระบวนการรวบรวมการใช้ห้องสมุด - บางทีนั่นอาจทำให้คุณรู้ว่าการเขียนโปรแกรมหมายถึงอะไรจริงๆ

นอกจากนี้ฉันคิดว่าโปรแกรมแก้ไขข้อความที่ดีดีกว่า IDE สำหรับ MS-Windows ฉันแนะนำPSPad (มันเป็นแฟลชที่แข็งแกร่งเช่นเดียวกับ MultiEdit ในยุค MS-DOS) สำหรับ GNU / Linux ให้ลองGeany (อาจเป็นใน repo ของ distro ของคุณ)


0

ฉันใช้สมุดบันทึกร้อยละ 99 กับ Pilot Gel Pen ที่ไว้ใจได้ของฉันในการเขียนโปรแกรม

ฉันเพิ่งพิมพ์รหัส Visual Studio อีกครั้ง

การเขียนโปรแกรมและการเข้ารหัสเป็นสองสิ่งที่แตกต่างกัน (สำหรับฉัน)


คุณเขียนโปรแกรมด้วยมือลงบนกระดาษก่อนไหม?

@ Thorbjørn - ฉันทำไปแล้วก่อนวันหลัง (ส่วนใหญ่เป็นเกมสั้น) และเมื่อฉันทำงานกับอัลกอริทึมฉันมักจะใช้ไวท์บอร์ดเพื่อวาดภาพพวกเขาเมื่อเทียบกับปากกาและกระดาษ
rjzii

ใช่ฉันเขียนโค้ดด้วยมือจำนวนมาก ไม่ใช่โปรแกรมทั้งหมดเนื่องจาก Visual Studio ทำสิ่งต่างๆมากมายโดยอัตโนมัติ
Pablo

0

การเขียนโปรแกรมโดยไม่มี IDE เป็นวิธีที่ดีในการเรียนรู้สิ่งที่เกิดขึ้น

เราเริ่มเขียนโปรแกรมในโรงเรียนด้วยโปรแกรมแก้ไขข้อความสีไวยากรณ์ การคอมไพล์เกิดขึ้นกับพรอมต์คำสั่ง (หรือผ่านแบทช์สคริปต์อย่างง่าย)

เมื่อเราเข้าใจพื้นฐานของการเขียนโปรแกรมเราย้ายไปยังบรรณาธิการที่มีประสิทธิภาพมากขึ้นเช่น Eclipse หรือ Visual Studio


0

ตามที่คาดไว้คำตอบทั้งหมดพูดในสิ่งเดียวกัน: "แน่นอนคุณทำได้! มันเป็นแค่ข้อความ! ข้อความตัวอักษรข้อความตัวอักษร!" นี่เป็นเรื่องจริงพูดโดยทั่วไปและเป็นคำตอบที่ดีที่สุดสำหรับคำถามของคุณ IDEs ส่วนใหญ่เพียงจัดการข้อความ

แต่มันไม่ได้เป็นความจริงเสมอไปและในบางกรณีการย้ายออกจากตัวแบบข้อความอย่างเดียวทำให้เกิดความก้าวหน้าอย่างมาก ความก้าวหน้าเหล่านี้มักจะถูกคัดออกโดยนักเขียนแบบตัวอักษรเท่านั้น (ซึ่งส่วนใหญ่ทุกคนเพราะมันเป็นยังไงก็ควรจะเป็น ... ไม่ใช่เรื่องบังเอิญ?!) IBM Visual Age เป็นอีกหนึ่งตัวอย่างที่เจ๋งมากที่เสียชีวิตด้วยความตายอันน่ากลัว

อีกตัวอย่างที่อยู่ในใจและมันก็เป็นที่นิยมและเป็นที่นิยมมากคือ Interface Builder สำหรับการสร้างผลิตภัณฑ์ Mac และ iOS ผลลัพธ์ของมันไม่ใช่โปรแกรมข้อความ แต่เป็นวัตถุที่ต่อเนื่องกันดังนั้นคุณจึงไม่สามารถสร้าง NIBs โดยไม่ใช้ IB หรือเขียน IB ของคุณเอง

ครูสอนจะพูดว่า "ใช่ แต่ตัวสร้างส่วนต่อประสานนั้นเขียนด้วยรหัสข้อความ!" ดังนั้น?

ฉันเชื่ออย่างแท้จริงว่า CS เป็นสาขาจะก้าวหน้าอย่างมากหากเราสามารถไปไกลกว่ากระบวนทัศน์ข้อความอย่างเดียว นอกเหนือจากนั้นฉันคิดว่าในที่สุดเราจะไปในทิศทางนี้ แต่มันจะใช้เวลาหลายสิบปี ก่อนอื่นเราต้องหาว่าตัวไหนดีกว่ากันviหรือemacs....


0

เมื่อเร็ว ๆ นี้ฉันได้อัพเกรดเป็นกลุ่ม ฉันชอบวิธีที่ไฮไลต์คำหลักในภาษาใดก็ตามที่ฉันเขียน เฮ้อเฉพาะเมื่อฉันไปถึงระบบปฏิบัติการจริงและไม่ใช้ notepad

ภรรยาของฉันเขียนภาษาโคบอลโดยใช้ edlin ฉันคิดว่ามันตลกดี

การปรับปรุงเช่นนี้กับการ์ดแบบคีย์การ์ดที่เราเคยใช้และหันกลับมาจากการทำงานตลอด 24 ชั่วโมงเพื่อค้นพบว่าเราพิมพ์ผิด

ฉันมีรูปแบบการเข้ารหัสบางแห่งในห้องใต้หลังคา

คุณมี 1 และ 0 เราต้องวาดเส้นผ่าน 0 ของเรา

แต่คุณบอกคนหนุ่มสาวในวันนี้ว่าพวกเขาจะไม่เชื่อคุณ

J

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.