Elixir เป็นภาษาแบบไดนามิกและใช้งานได้จริง ออกแบบมาเพื่อสร้างแอปพลิเคชันที่ปรับขนาดได้และบำรุงรักษาได้
หากต้องการข้อมูลเพิ่มเติมเกี่ยวกับ Elixir การติดตั้ง และเอกสาร โปรดดูที่เว็บไซต์ของ Elixir
มีการประกาศรายการออกใหม่ในรายการส่งเมลประกาศ คุณสามารถสมัครรับข้อมูลโดยส่งอีเมลไปที่ [email protected] และตอบกลับอีเมลยืนยัน
การเผยแพร่ด้านความปลอดภัยทั้งหมดจะถูกแท็กด้วย [security]
สำหรับข้อมูลเพิ่มเติม โปรดอ่านนโยบายความปลอดภัยของเรา
การโต้ตอบทั้งหมดในช่องทางการสื่อสารอย่างเป็นทางการของเราเป็นไปตามหลักจรรยาบรรณของเรา
สำหรับการรายงานข้อบกพร่อง โปรดไปที่เครื่องมือติดตามปัญหาของเรา และทำตามขั้นตอนในการรายงานปัญหาใหม่ โปรดเปิดเผยช่องโหว่ด้านความปลอดภัยเป็นการส่วนตัวที่ [email protected]
จุดบกพร่องที่เปิดอยู่ทั้งหมดที่เกี่ยวข้องกับที่เก็บ Elixir จะแสดงอยู่ในเครื่องมือติดตามปัญหา ทีม Elixir ใช้เครื่องมือติดตามปัญหาเพื่อมุ่งเน้นไปที่ รายการที่ดำเนินการได้ รวมถึงการปรับปรุงตามแผนในระยะสั้นและระยะกลาง นอกจากนี้เรายังพยายามอย่างเต็มที่ในการติดป้ายกำกับรายการเพื่อความชัดเจนและเพื่อความสะดวกในการทำงานร่วมกัน
นโยบายสินค้าที่ดำเนินการได้ ของเรามีผลกระทบที่สำคัญบางประการ เช่น:
การเสนอคุณสมบัติใหม่ๆ รวมถึงการร้องขอการสนับสนุน ความช่วยเหลือ และคำแนะนำจะต้องดำเนินการในพื้นที่ของตนเอง โดยมีรายละเอียดต่อไป
ปัญหาที่เราพบว่าอยู่นอกขอบเขตของ Elixir เช่น บั๊กอัปสตรีม จะถูกปิด (และขอให้ย้ายไปที่อื่นตามความเหมาะสม)
เราพยายามปิดปัญหาที่ไม่เกี่ยวข้องและไม่สามารถดำเนินการได้เพื่อให้เครื่องมือติดตามปัญหาเป็นระเบียบเรียบร้อย เราอาจทำผิดพลาดเป็นครั้งคราว และยินดีจะทบทวนปัญหาอีกครั้ง และเปิดใหม่อีกครั้งเมื่อจำเป็น
รักษาน้ำเสียงเชิงบวกและใจดี! สำหรับข้อมูลเพิ่มเติม โปรดดูหลักจรรยาบรรณ
หากต้องการเสนอคุณสมบัติใหม่ โปรดเริ่มการสนทนาในรายชื่ออีเมล Elixir Core ประวัติความเป็นมาของการพัฒนาภาษาและการมุ่งเน้นมีอธิบายไว้ในเว็บไซต์ของเรา
โปรดทราบว่าเป็นความรับผิดชอบของคุณที่จะต้องโต้แย้งและอธิบายว่าเหตุใดฟีเจอร์จึงมีประโยชน์ และจะส่งผลกระทบต่อโค้ดเบสและชุมชนอย่างไร ข้อเสนอที่ดีประกอบด้วยคำอธิบายปัญหาและวิธีแก้ไขปัญหาที่เสนอเมื่อเปรียบเทียบกับทางเลือกอื่นที่มีอยู่ในระบบนิเวศของ Elixir (รวมถึงในภาษาอื่น ๆ ) หากต้องการนำเสนอข้อเสนอก่อนส่ง ให้พิจารณาใช้และรวบรวมคำติชมจากพื้นที่ชุมชนที่แสดงอยู่ในแถบด้านข้างของเว็บไซต์ Elixir
เมื่อยอมรับข้อเสนอแล้ว ข้อเสนอนั้นจะถูกเพิ่มลงในเครื่องมือติดตามปัญหา คุณสมบัติและการแก้ไขข้อบกพร่องที่ได้รวมเข้าด้วยกันแล้วและจะรวมอยู่ในรุ่นถัดไปจะถูก "ปิด" และเพิ่มลงในบันทึกการเปลี่ยนแปลง
สำหรับการสนทนาทั่วไป การสนับสนุน และความช่วยเหลือ โปรดใช้พื้นที่ชุมชนที่แสดงอยู่บนแถบด้านข้างของเว็บไซต์ Elixir เช่น กระดานสนทนา แพลตฟอร์มแชท ฯลฯ ซึ่งชุมชนในวงกว้างจะพร้อมให้ความช่วยเหลือคุณ
สำหรับวิธีการต่างๆ ในการติดตั้ง Elixir โปรดดูคำแนะนำในการติดตั้งของเราบนเว็บไซต์ อย่างไรก็ตาม หากคุณต้องการสนับสนุน Elixir คุณจะต้องคอมไพล์จากแหล่งที่มา
ขั้นแรกให้ติดตั้ง Erlang หลังจากนั้น ให้โคลนพื้นที่เก็บข้อมูลนี้ไปยังเครื่องของคุณ คอมไพล์และทดสอบ:
git clone https://github.com/elixir-lang/elixir.git
cd elixir
make
หมายเหตุ: หากคุณใช้งานบน Windows บทความนี้มีหมายเหตุสำคัญสำหรับการคอมไพล์ Elixir จากแหล่งที่มาบน Windows
ในกรณีที่คุณต้องการใช้เวอร์ชัน Elixir นี้เป็นเวอร์ชันระบบของคุณ คุณจะต้องเพิ่มไดเร็กทอรี bin
ให้กับตัวแปรสภาพแวดล้อม PATH ของคุณ
เมื่ออัพเดตที่เก็บ คุณอาจต้องการรัน make clean
ก่อนที่จะคอมไพล์ใหม่ สำหรับบิวด์ที่กำหนดขึ้น คุณควรตั้งค่าตัวแปรสภาพแวดล้อม ERL_COMPILER_OPTIONS=deterministic
เราขอเชิญชวนให้มีส่วนร่วมกับ Elixir เพื่อสนับสนุน มีบางสิ่งที่คุณจำเป็นต้องรู้เกี่ยวกับโค้ด ขั้นแรก รหัส Elixir จะถูกแบ่งตามแต่ละแอปพลิเคชันภายในโฟลเดอร์ lib
:
elixir
- เคอร์เนลของ Elixir และไลบรารีมาตรฐาน
eex
- EEx เป็นเครื่องมือเทมเพลตที่ให้คุณฝัง Elixir ได้
ex_unit
- ExUnit เป็นเฟรมเวิร์กการทดสอบอย่างง่ายที่มาพร้อมกับ Elixir
iex
- IEx ย่อมาจาก Interactive Elixir: เชลล์แบบโต้ตอบของ Elixir
logger
- Logger เป็นตัวตัดไม้ในตัว
mix
- Mix เป็นเครื่องมือสร้างของ Elixir
คุณสามารถรันการทดสอบทั้งหมดในไดเร็กทอรีรากด้วย make test
คุณยังสามารถรันการทดสอบสำหรับเฟรมเวิร์กเฉพาะด้วย make test_#{APPLICATION}
เช่น make test_ex_unit
หากคุณเพิ่งเปลี่ยนแปลงบางสิ่งในไลบรารีมาตรฐานของ Elixir คุณสามารถเรียกใช้เฉพาะส่วนนั้นผ่าน make test_stdlib
ได้
หากคุณเปลี่ยนไฟล์เพียงไฟล์เดียว คุณสามารถเลือกที่จะคอมไพล์และรันการทดสอบสำหรับไฟล์นั้น ๆ เพื่อให้รอบการพัฒนาเร็วขึ้น ตัวอย่างเช่น หากคุณกำลังเปลี่ยนโมดูล String คุณสามารถคอมไพล์และรันการทดสอบได้ดังนี้:
bin/elixirc lib/elixir/lib/string.ex -o lib/elixir/ebin
bin/elixir lib/elixir/test/elixir/string_test.exs
ไฟล์ทดสอบบางไฟล์จำเป็นต้องระบุ test_helper.exs
อย่างชัดเจนก่อน เช่น:
bin/elixir -r lib/logger/test/test_helper.exs lib/logger/test/logger_test.exs
คุณยังสามารถใช้ LINE
env var เพื่อทำการทดสอบครั้งเดียว:
LINE=123 bin/elixir lib/elixir/test/elixir/string_test.exs
หากต้องการคอมไพล์ใหม่ทั้งหมด (รวมถึงโมดูล Erlang):
make compile
หลังจากการเปลี่ยนแปลงของคุณเสร็จสิ้น โปรดอย่าลืมเรียกใช้ make format
เพื่อรับประกันว่าไฟล์ทั้งหมดมีการจัดรูปแบบอย่างถูกต้อง จากนั้นจึงเรียกใช้ชุดโปรแกรมเต็มด้วย make test
หากการสนับสนุนของคุณล้มเหลวในระหว่างการบูตภาษา คุณสามารถสร้างภาษาใหม่ตั้งแต่ต้นด้วย:
make clean_elixir compile
ในทำนองเดียวกัน หากคุณไม่สามารถให้ Elixir คอมไพล์ได้ หรือให้การทดสอบผ่านหลังจากอัพเดตการชำระเงินที่มีอยู่ ให้รัน make clean compile
คุณสามารถตรวจสอบสถานะการสร้างอย่างเป็นทางการได้ สามารถดูงานเพิ่มเติมได้โดยการอ่าน Makefile
เมื่อการทดสอบดำเนินอยู่และผ่านการทดสอบ คุณพร้อมที่จะสนับสนุน Elixir และส่งคำขอดึงข้อมูล เราได้บันทึกคำขอดึงข้อมูลที่ยอดเยี่ยมที่เราได้รับในอดีต ไว้ในกรณีที่คุณกำลังมองหาตัวอย่าง:
เมื่อส่งคำขอดึงแล้ว ทีม Elixir จะตรวจสอบการเปลี่ยนแปลงของคุณ เราสรุปกระบวนการด้านล่างเพื่อชี้แจงบทบาทของทุกคนที่เกี่ยวข้อง
คำร้องขอการดึงทั้งหมดต้องได้รับการอนุมัติโดยผู้คอมมิตสองคนก่อนที่จะรวมเข้ากับที่เก็บ หากจำเป็นต้องเปลี่ยนแปลง ทีมงานจะแสดงความคิดเห็นที่เหมาะสมเพื่อขอเปลี่ยนแปลงโค้ด ขออภัย เราไม่สามารถรับประกันได้ว่าคำขอดึงจะถูกรวมเข้าด้วยกัน แม้ว่าจะมีการร้องขอการแก้ไขก็ตาม เนื่องจากทีม Elixir จะประเมินการมีส่วนร่วมอีกครั้งเมื่อมีการเปลี่ยนแปลง
ผู้คอมมิชชั่นอาจส่งการเปลี่ยนแปลงรูปแบบไปยังสาขาของคุณโดยตรง หากคุณต้องการจัดการการเปลี่ยนแปลงทั้งหมดด้วยตัวเอง คุณสามารถปิดการใช้งานคุณสมบัติ "อนุญาตให้แก้ไขจากผู้ดูแล" เมื่อส่งคำขอดึงของคุณ
ทีมงาน Elixir อาจมอบหมายให้บุคคลอื่นตรวจสอบคำขอดึงข้อมูลได้ หากมีคนได้รับมอบหมาย พวกเขาจะต้องอนุมัติรหัสอย่างชัดเจนก่อนที่สมาชิกในทีมคนอื่นจะสามารถรวมรหัสนั้นได้
เมื่อการตรวจสอบเสร็จสิ้น คำขอดึงของคุณจะถูกบีบอัดและรวมเข้ากับพื้นที่เก็บข้อมูล หากคุณได้จัดระเบียบ Commit ของคุณอย่างรอบคอบ และเชื่อว่าควรรวมเข้าด้วยกันโดยไม่มีการบีบอัด โปรดระบุในความคิดเห็น
การสร้างเอกสารจำเป็นต้องมีการติดตั้ง ExDoc และสร้างควบคู่ไปกับ Elixir:
# After cloning and compiling Elixir, in its parent directory:
git clone https://github.com/elixir-lang/ex_doc.git
cd ex_doc && ../elixir/bin/elixir ../elixir/bin/mix do deps.get + compile
ตอนนี้กลับไปที่ไดเร็กทอรีรากของ Elixir แล้วรัน:
make docs # to generate HTML pages
make docs DOCS_FORMAT=epub # to generate EPUB documents
สิ่งนี้จะสร้างชุดเอกสารสำหรับ elixir
, eex
, ex_unit
, iex
, logger
และ mix
ภายใต้ไดเร็กทอรี doc
หากคุณวางแผนที่จะบริจาคเอกสาร โปรดตรวจสอบแนวทางปฏิบัติที่ดีที่สุดในการเขียนเอกสาร
"Elixir" และโลโก้ Elixir เป็นเครื่องหมายการค้าจดทะเบียนของทีม Elixir
ซอร์สโค้ด Elixir ได้รับการเผยแพร่ภายใต้ Apache License 2.0
ตรวจสอบไฟล์ประกาศและใบอนุญาตสำหรับข้อมูลเพิ่มเติม