portaldacalheta.pt
  • หลัก
  • การจัดการวิศวกรรม
  • บุคลากรและทีมงานของผลิตภัณฑ์
  • อื่น ๆ
  • นวัตกรรม
ส่วนหลัง

Haxe: ความลับที่ดีที่สุดของการพัฒนาข้ามแพลตฟอร์ม



ภาษาโปรแกรมสมัยใหม่ Haxe เป็นที่รู้จักกันดีในบางแวดวง แต่การอ่านจำนวนมากจะไม่เคยได้ยินมาก่อน แต่อย่าปล่อยให้สถานะเฉพาะของมันหลอกคุณ นับตั้งแต่ปรากฏตัวครั้งแรกในปี 2548 ได้รับการทดสอบการต่อสู้โดยผู้ภักดี - หากค่อนข้างเงียบ - ติดตาม มีการผสมผสานคุณสมบัติในทางปฏิบัติและเป็นผู้ใหญ่สำหรับการพัฒนาในธุรกิจเกมและแม้แต่บริบททางวิชาการ

Disney, Hasbro และ BBC ใช้ Haxe เหตุใดนักพัฒนาซอฟต์แวร์จึงไม่เคยได้ยินเรื่องนี้มาก่อน บางทีความเก่งกาจอาจหมายความว่าไม่มี 'แอปนักฆ่า' เพียงแอปเดียวสำหรับภาษาโปรแกรม Haxe



หรืออาจเป็นเพราะหนึ่งในแอปนักฆ่ารุ่นแรก ๆ ซึ่งเป็นเส้นทางการย้ายข้อมูลที่อยู่ห่างจากแพลตฟอร์ม Flash ที่กำลังจะตาย - เป็นวิธีที่เฉพาะเจาะจงเล็กน้อย ตลาดเกมแคชชวลที่น่ายกย่องในช่วงไม่กี่ปีที่ผ่านมาอยู่ภายใต้เงามืดของความไม่แน่นอนของ Adobe และในที่สุดก็เป็นที่ชัดเจนแล้วว่าอะไรก็ตามที่ใช้ Flash จะต้องย้ายอย่างเป็นทางการภายในปี 2020 .



วิศวกรซอฟต์แวร์ธุรกิจและ นักพัฒนาเว็บ - ในความเป็นจริงนักพัฒนาเกมหลายคนก็เช่นกันอาจได้ยินเสียง 'Flash' และปรับแต่งได้ทันที ดังนั้น Haxe Foundation จึงใช้ FlashDevelop IDE และรีแบรนด์ให้เป็น Haxe IDE มากขึ้น HaxeDevelop .



แต่อาจเป็นเรื่องยากที่จะสลัดความสัมพันธ์ออกไปโดยเฉพาะอย่างยิ่งเมื่อยังคงมีความเกี่ยวข้องกันอยู่ ตัวอย่างเช่น FlowPlay ที่มีเกมโซเชียล ผู้ใช้ 75 ล้านคน เลือก Haxe ผ่าน Unity และ HTML5 สำหรับการเปลี่ยนแปลงสองปีล่าสุดของพวกเขาที่ 1.4 ล้านบรรทัดของโค้ดที่อยู่ห่างจาก Flash (ดูรายละเอียดเพิ่มเติมได้ใน กรณีศึกษา .)

อาจเป็นเรื่องยากที่ Haxe Foundation จะสามารถเน้นกรณีการใช้งานเช่นนี้ได้ในขณะที่ยังดึงดูดนักพัฒนาซอฟต์แวร์ที่ไม่ใช่เกม แต่อย่าปล่อยให้สิ่งนั้นขัดขวางคุณจากการสำรวจเพียงเล็กน้อย



อะไรคือข้อตกลงที่ยิ่งใหญ่กับ Haxe?

โครงการ Debian อธิบายถึง Haxe เป็น 'ภาษาโปรแกรมสากล' มีหลายแง่มุมที่

โดยทั่วไปแล้ว ภาษา Haxe หมายถึงการนำรหัส (ดี) มาใช้ซ้ำ . โดยที่ฉันหมายถึง: คุณสามารถใช้รหัส Haxe ซ้ำได้ในหลาย ๆ แพลตฟอร์มคุณสามารถรวมเข้ากับรหัส Haxe และ non-Haxe ที่มีอยู่และสำหรับ ดี ภาษา Haxe ทำให้มีกระบวนทัศน์ที่พยายามและเป็นจริงมากมายเช่นความปลอดภัยของประเภท



การดำเนินการต่อไปตามธีมความอเนกประสงค์สิ่งนี้แปลเป็นกรณีการใช้งานหลัก ๆ หลายประเภท - แน่นอนว่าการโยกย้ายแฟลช

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



ภาษาเดียว 'เพื่อปกครองพวกเขาทั้งหมด' ขออภัยการอ้างอิง Tolkien แต่เช่นเดียวกับ Node.js ที่ได้รับการยกย่องว่าเป็นยุคของการใช้ภาษาเดียวกันที่ด้านหน้าและด้านหลังของเว็บไซต์โครงการใด ๆ ที่มีสิ่งที่คล้ายกับสถาปัตยกรรมไคลเอนต์เซิร์ฟเวอร์สามารถใช้ Haxe สำหรับทั้งสองครึ่ง

ตัวอย่างเช่นเว็บแอป FontStruct ใช้ Haxe ทั้งในการวาดภาพบนผืนผ้าใบ HTML5 ที่ส่วนหน้าและผ่าน Java2D ที่ส่วนหลัง (แต่ตามที่กล่าวไว้วิธีนี้เป็นทางเลือก - Haxe เล่นได้ดีกับโค้ดที่ไม่ใช่ Haxe ที่มีอยู่เช่นกันเพราะ ออกแบบมาไม่ให้ผูกมัดคุณ .) การรักษาแอปเกมธุรกิจและแม้แต่ตรรกะการแสดงผลให้สอดคล้องกันในทุกบริบทแพลตฟอร์มและภาษาที่แสดงผลทำได้ง่ายกว่ามากด้วยวิธีนี้



c# คำสั่งบอทที่ไม่ลงรอยกัน

หนีจาก JavaScript เพื่อพิมพ์ความปลอดภัย เดี๋ยวก่อนนี่ไม่ใช่สิ่งที่ TypeScript มีไว้เพื่อ? ใช่หากคุณต้องการ จำกัด ไว้ที่ JavaScript เอาท์พุท ในทางตรงกันข้ามภาษา Haxe ยังสามารถถ่ายทอดเป็น Java, C ++, C #, Python และ Lua ท่ามกลางคนอื่น ๆ .

ในขณะเดียวกันภาษาการเขียนโปรแกรม Haxe นั้นง่ายพอที่จะเรียนรู้ที่มาจาก JavaScript - ไวยากรณ์ของมันไม่ได้หมายถึงการเปลี่ยนกระบวนทัศน์ขนาดใหญ่เช่น Rebol แต่ประโยชน์ของการเปลี่ยนแปลงดังกล่าว ผู้พัฒนาหลักของ Haxe Dr. Andy Li เขียนการเปรียบเทียบเชิงลึกระหว่าง TypeScript และ Haxe ที่ยังคงมีความเกี่ยวข้องในปัจจุบันแม้ว่าทั้งสองภาษาจะยังคงพัฒนาต่อไป



เวิร์กโฟลว์ที่ค่อนข้างรวดเร็วสำหรับคอมไพเลอร์ นี่เป็นชิ้นส่วนที่เพิ่งเพิ่มเข้ามา (แม้ว่า Neko จะเป็นตัวเลือกก่อนหน้านี้ก็ตาม): HashLink เป็นเครื่องเสมือนข้ามแพลตฟอร์ม (VM) ที่ดูเหมือนจะสร้างความสมดุลระหว่างการคอมไพล์ได้เร็วมาก แต่ก็มีประสิทธิภาพเพียงพอที่รันไทม์สำหรับสิ่งต่างๆ เช่นเกม 3D แต่แม้แต่ในเว็บ Haxe สามารถทำงานได้ดีกว่า TypeScript ทั้งในเวลาคอมไพล์และรันไทม์ .

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

ข้อใดต่อไปนี้เป็นความรับผิดชอบของ cfo

ใครใช้ Haxe บ้าง?

สำหรับผู้เริ่มต้นพัฒนาเกมแน่นอน: Madden NFL Mobile, Evoland II, Double Kick Heroes …เหล่านี้และเกมที่เผยแพร่อื่น ๆ อีกหลายร้อยเกมได้รับการพัฒนาโดยใช้ Haxe แต่ Haxe ยังสร้างคลื่นนอกขอบเขตของเกม:

  • ย้อนกลับไปในปี 2014 TiVo ใช้ Haxe เพื่อเพิ่ม ประสิทธิภาพบนกล่อง TiVo Premiere ของพวกเขามากกว่า 30% .
  • Massive Interactive ซึ่งมีลูกค้ารวมอยู่ด้วย DAZN และ Telecine สำหรับระบบ“ สมาร์ททีวี” ที่ใช้ Haxe (ทั้งที่มีฐานผู้ใช้จำนวนมาก) ใช้ Haxe มาหลายปีแล้ว . Philippe Elsass สถาปนิก UI ของพวกเขาตั้งข้อสังเกตกับฉันว่าจากประสบการณ์ของเขาในการทำงานกับโปรเจ็กต์เว็บขนาดใหญ่ Haxe มีแนวโน้มที่จะใช้งานง่ายกว่า TypeScript และเกี่ยวกับลำดับความสำคัญในการรวบรวมเร็ว
  • Synolia ใช้ภาษา Haxe สำหรับเครื่องมือปรับแต่งออนไลน์ ไฮดี้ ซึ่งใช้โดย แบรนด์ฝรั่งเศสรายใหญ่ Carrefour และ La Fnac และตู้เพลง จากข้อมูลของ Synolia ชุดเครื่องมือ Haxe ช่วยให้พวกเขาจัดการการเปลี่ยนจาก Flash ไปเป็น HTML5 ได้อย่างมีประสิทธิภาพในขณะเดียวกันก็สามารถรับโอกาสในการพัฒนาธุรกิจใหม่ ๆ ในพื้นที่เคลื่อนที่ Heidi เป็นแอปพลิเคชัน SaaS ชุดเครื่องมือ Haxe ช่วยให้พวกเขาแชร์ซอร์สโค้ดทั่วไประหว่างเลเยอร์และบริการต่างๆของแอป
  • วิสาหกิจข้ามชาติ Docler Holding กลายเป็นพันธมิตรเชิงกลยุทธ์ของมูลนิธิ Haxe ในปี 2560 .

ระบบนิเวศของ Haxe เป็นอย่างไร

เมื่อพูดถึงเกมและ Haxe มันเป็นโลกที่กว้างไกลในแง่ของเฟรมเวิร์กและไลบรารีโอเพนซอร์ส ตั้งแต่ทีมอินดี้อิสระไปจนถึงสตูดิโอที่ประสบความสำเร็จกับลูกค้าต่างประเทศผู้ใช้ Haxe กำลังแชร์โค้ดกันทั่วทุกที่:

  • เปลวไฟ ถูกใช้โดยแบรนด์ต่างๆเช่น Disney, Coca-Cola และ Toyota ในการพัฒนาเกม HTML5
  • กอง เป็นเฟรมเวิร์กเกมประสิทธิภาพสูงที่อยู่เบื้องหลังกลยุทธ์ 3 มิติล่าสุดที่ได้รับความนิยมจาก Northgard
  • เพิ่มพลังให้กับเกมเพลย์บนมือถือนับล้านไลบรารีการพัฒนาอย่างรวดเร็ว ความกลัว 6 บางทีอาจเป็นอัญมณีที่ซ่อนอยู่ในอัญมณีที่ซ่อนอยู่
  • Kha ซึ่งสามารถกำหนดเป้าหมายไปที่ XBox One, Nintendo Switch และ PlayStation 4 นอกเหนือจากเดสก์ท็อปและมือถือได้ เอ็นจิ้นเกมมากกว่า 20 ตัวที่สร้างขึ้นด้านบน . ซึ่งรวมถึง Armory ซึ่งมีการผสานรวม Blender อย่างสมบูรณ์และเมื่อไม่นานมานี้ตัวเองกลายเป็นโอเพ่นซอร์ส
  • เดิมจำลองมาจากไลบรารี Flixel เก่าสำหรับ Flash HaxeFlixel เป็นตัวเลือกยอดนิยมที่อยู่เบื้องหลังเกมเช่นการตีนอน ภารกิจของผู้พิทักษ์ .
  • Gamua’s Starling ซึ่งเป็นเฟรมเวิร์กที่ใช้สำหรับพอร์ต Facebook ของ Angry Birds เมื่อไม่กี่ปีก่อนมีแล้ว พอร์ต Haxe แบบโอเพนซอร์ส .
  • OpenFL ซึ่งใช้ Flash API เร็ว ๆ นี้จะเป็นวิธีกำหนดเป้าหมายคอนโซลหลายเครื่องเช่น PlayStation 4, PlayStation Vita, XBox One และ Nintendo Switch โดยไม่ต้องเสียค่าลิขสิทธิ์เพิ่มเติม HaxeFlixel และ Starling สร้างขึ้นจาก OpenFL แต่เกมบางเกมได้รับการพัฒนาบน OpenFL โดยตรงเช่นเกมที่ได้รับรางวัล เอกสารโปรด .
  • เอ็นจินเนทีฟมีเดีย NME ซึ่ง OpenFL ถูกแยกออกเมื่อหลายปีก่อนก็ยังคงปล่อยเวอร์ชันหลักเช่นกัน
  • บางทีคุณอาจเห็นเมื่อ HaxePunk (สืบเชื้อสายมาจาก FlashPunk) ให้ความสำคัญกับบล็อกเรดาร์ของ GitHub .
  • ปรับให้เหมาะสมที่สุด เอ็นจินฟิสิกส์ Nape เหมาะสำหรับเอ็นจิ้นเกม 2 มิติหรือตัวจำลองที่ต้องการฟิสิกส์ที่ซับซ้อนมากขึ้น

จริงอยู่ที่ฉากการพัฒนาเกมเป็นส่วนที่มองเห็นได้ชัดเจนมากขึ้นในระบบนิเวศของภาษา Haxe (บางทีนี่อาจเป็นเพราะลักษณะของเกมติดขัดเช่น Ludum Dare?) แต่ธุรกิจและแม้แต่ฝ่ายองค์กรก็แสดงผ่านเช่นกัน ตัวอย่างเช่น:

  • เฟรมเวิร์กแอพแบบแยกส่วน hexMachina รองรับการใช้งานภาษาเฉพาะโดเมน (DSL) และสถาปัตยกรรม Model-view-controller (MVC) รวมถึงคุณสมบัติอื่น ๆ อีกมากมาย
  • เอ็นจิ้นเค้าโครง UI HaxeUI มีการพัฒนาอย่างต่อเนื่องและมีการสนับสนุนจากองค์กร สินค้าเช่น 3DVista และ ไคเซ็นสำหรับยา ได้จัดส่งแอปการผลิตด้วย
  • ไม่ใช่เพียงคนเดียว แต่เป็นไฟล์ thx.core ไลบรารีและเครือญาติให้ส่วนขยายที่ใช้งานทั่วไปแก่ Haxe เหมือนกับที่ Lodash ทำกับ JavaScript
  • เมื่อพูดถึง JavaScript โครงการ Haxe ที่กำหนดเป้าหมายอาจได้รับประโยชน์จากการใช้ประโยชน์ Haxe Modular ซึ่งช่วยทั้ง Telecine และ FlowPlay ในการปรับขนาดโครงการขนาดใหญ่ของพวกเขาในขณะที่ทำให้พวกเขาโหลดอย่างรวดเร็วในฝั่งไคลเอ็นต์
  • ระบบนิเวศของ Haxe ยังคงพัฒนาอย่างต่อเนื่องเพื่อเชื่อมต่อกับเทคโนโลยีปัจจุบัน เช่น. ตอนนี้ ไลบรารี GraphQL .
  • สุดท้ายเป็นแบบอย่าง ทิงเกอร์เบลล์ ใช้ประโยชน์จากระบบมาโครของ Haxe สำหรับงานที่มีประโยชน์ทุกประเภท มันมีเฟรมเวิร์กสำหรับการกำหนดเส้นทางเว็บการทดสอบหน่วยและการฝัง SQL รวมถึงไลบรารีสำหรับทุกอย่างตั้งแต่เทมเพลตและตัวเลือก CSS ที่แยกวิเคราะห์ไปจนถึง async / await และการจัดการสถานะรีแอคทีฟกราฟการเรียนรู้ที่ต่ำกว่า

นี่เป็นเพียงไฮไลท์ของคำแนะนำบางส่วนที่ผู้ใช้ภาษา Haxe ได้ดำเนินการไปแล้ว Haxe.org เก็บรักษาไฟล์ รายชื่อห้องสมุดทั้งหมดเรียงตามความนิยม ซึ่งคุณสามารถเรียกดูตามแท็ก แต่สิ่งที่ควรค่าแก่การเน้นสองโครงการที่มูลนิธิ Haxe ยังคงดูแล:

  • สำหรับมุม DevOps นั้นเป็นทางการ Haxe Docker repo .
  • ความเสถียรที่ชาญฉลาดแม้จะมีการอัปเดตเวอร์ชันหลัก แต่ Haxe 4 ก็ยังมีอยู่บ้าง ความช่วยเหลือด้านความเข้ากันได้สำหรับผู้ที่มีโครงการที่ขึ้นอยู่กับ Haxe 3 .

ทุกอย่างฟังดูดี แต่การที่สภาพแวดล้อมการพัฒนาเกิดขึ้นในระบบของคุณเป็นอย่างไร

Haxe Quick Start

ไม่ว่าจะเป็น Win, Mac หรือ Linux ขั้นตอนแรกคือ ดาวน์โหลด Haxe . โปรแกรมติดตั้งจะให้บางสิ่งที่แตกต่างกัน:

  1. คอมไพเลอร์ Haxe เอง ซึ่งควรให้คุณเรียกใช้ haxe จากเทอร์มินัลหรือพรอมต์คำสั่งของคุณ
  2. ไลบรารีมาตรฐาน Haxe ซึ่งช่วยให้มีพื้นฐานระดับต่ำ แต่ยังรองรับวัตถุประสงค์ทั่วไปในระดับสูงกว่าด้วย ตัวอย่างเช่น XML การประมวลผล ZIP และการเข้าถึง MySQL ทั้งหมดได้รับการอำนวยความสะดวกที่นี่
  3. ตัวจัดการแพ็คเกจ Haxelib ซึ่งช่วยให้คุณสามารถติดตั้งแพ็คเกจใหม่ผ่านทาง haxelib คำสั่ง (หมายเหตุ: นอกจากนี้ยังควรค่าแก่การตรวจสอบ ลิกซ์ สำหรับการจัดการแพ็คเกจขั้นสูงที่ Haxelib มีให้โดยเฉพาะอย่างยิ่งหากคุณกำลังพิจารณาใช้ Haxe ในบริบทของมืออาชีพ)
  4. บางคน เป้าหมายเครื่องเสมือนที่ช่วยให้สามารถคอมไพล์ใหม่และดีบักได้อย่างรวดเร็วและมีประสิทธิภาพ

(ที่กล่าวว่ามีวิธีตั้งค่ามากกว่าหนึ่งวิธีหากคุณติดตั้ง npm ไว้แล้วตัวอย่างเช่นคำแนะนำในการติดตั้งของ OpenFL จะมีตัวเลือกในการติดตั้ง Haxe ผ่านคำสั่งของ Yeoman Homebrew และ Chocolatey มีเส้นทางที่คล้ายกันด้วย )

อย่างไรก็ตามเมื่อคุณมี Haxe แล้วคุณสามารถใช้งานได้จากบรรทัดคำสั่งด้วยตัวมันเอง แต่นักพัฒนามักเลือกใช้ IDE FlashDevelop / HaxeDevelop ยังคงได้รับการสนับสนุนเป็นหลักใน Windows เท่านั้น ตัวเลือกอื่น ๆ ส่วนใหญ่เป็นข้ามแพลตฟอร์ม (Win / Mac / Linux):

  • ปลั๊กอิน Haxe ของ VSCode ได้รับการสนับสนุนอย่างดี
  • IntelliJ IDEA ยังมีปลั๊กอิน Haxe .
  • กรอบเกม Kha มี IDE ของตัวเองที่เรียกว่า รหัสสตูดิโอ (วิน / Mac / ลินุกซ์)
  • Sublime Text และ Atom มีปลั๊กอิน Haxe เช่นเดียวกับ บรรณาธิการอื่น ๆ อีกมากมาย ซึ่งบางส่วนเป็นแพลตฟอร์มเฉพาะ

สำหรับวัตถุประสงค์ของคู่มือเริ่มใช้งานฉบับย่อนี้เราจะใช้ VSCode อาจจะง่ายที่สุดในการรับไฟล์ Haxe Extension Pack ผ่าน Ctrl + P และ ext install haxe-extension-pack แต่ถ้าคุณเป็นคนเรียบง่ายคุณอาจต้องการ ext install vshaxe สำหรับปลั๊กอิน Haxe พื้นฐานแล้วเลือกและเลือกส่วนอื่น ๆ ของแพ็คที่คุณต้องการ

การสร้างโครงการ Haxe

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

สำหรับโค้ดที่เราจะใส่นั้นเรามาดูตัวอย่าง Array Comprehensive จาก try.haxe.org และวางไว้ในไฟล์ชื่อ Test.hx:

class Test { static function main() { var a = [for (i in 0...10) i]; trace(a); // [0,1,2,3,4,5,6,7,8,9] var i = 0; var b = [while(i <10) i++]; trace(b); // [0,1,2,3,4,5,6,7,8,9] } }

ตอนนี้จากตำแหน่งของ Test.hx คุณสามารถเรียกใช้ Haxe ในโหมดการตีความได้นั่นคือโดยไม่ต้องถ่ายโอนเลยเพื่อดูผลลัพธ์ของทั้งสอง trace() โทร:

$ haxe -main Test --interp Test.hx:4: [0,1,2,3,4,5,6,7,8,9] Test.hx:8: [0,1,2,3,4,5,6,7,8,9]

เยี่ยมมากมันได้ผล!

วิธีโค้ด c++

การเปลี่ยนรหัส Haxe เป็น JavaScript

สมมติว่าคุณต้องการแบ่งปันสิ่งนี้กับคนทั้งโลกผ่านทาง JavaScript บนหน้าเว็บของคุณ ที่สร้างขึ้นใน Haxe และง่ายพอ ๆ กับ:

$ haxe -main Test -js haxe-test.js

หากคุณติดตั้ง Node.js คุณสามารถตรวจสอบผลลัพธ์จากบรรทัดคำสั่งดังนี้:

$ node my-cool-test.js [ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 ] [ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 ]

มิฉะนั้นรหัสใน haxe-test.js พร้อมใช้งานแล้วหากคุณต้องการรวมไว้ในหน้าเว็บคุณจะเห็นผลลัพธ์ในคอนโซลนักพัฒนาซอฟต์แวร์ของเว็บเบราว์เซอร์เมื่อโหลด

การเปลี่ยนและการรวบรวมเป็นไบนารีดั้งเดิม

สมมติว่าคุณต้องการไบนารีแบบเนทีฟสำหรับเดสก์ท็อปที่คุณกำลังพัฒนา ในการทำเช่นนี้เราจะเปลี่ยนไปยังเป้าหมาย C ++ ดังนั้นเราจึงสามารถใช้ C ++ (สมมติว่าคุณติดตั้งไว้) เพื่อรวบรวม .cpp เอาต์พุตเป็นไบนารีดั้งเดิม ด้วยเหตุนี้เราจึงต้องมี hxcpp ดังนั้นเราจะต้องติดตั้ง:

$ haxelib install hxcpp

หลังจากนั้นเราสามารถทำการ Transpilation และ Compilation พร้อมกันด้วยคำสั่งนี้:

$ haxe -main Test -cpp bin

จากนั้นไบนารีของเราก็พร้อมที่จะทำงาน:

$ bin/Test Test.hx:4: [0,1,2,3,4,5,6,7,8,9] Test.hx:8: [0,1,2,3,4,5,6,7,8,9]

(ใน Windows จะเป็น binTest.exe แทน)

การสร้างไฟล์ Haxe Build (.hxml)

แม้จะมีส่วนขยายที่ชี้นำ .hxml ไฟล์ไม่ใช่ XML ซึ่งแตกต่างจาก .hxproj ไฟล์ที่ HaxeDevelop และ FlashDevelop ใช้ แต่ฉันจะไม่กล่าวถึงในบทความนี้ นี่คือสิ่งที่ build-all.hxml ดูเหมือนว่าจะบรรลุความสำเร็จตามที่เราได้ทำไว้ข้างต้น:

-main Test # tells Haxe our main class is Test (case-sensitive) --each # all of the above commands will be applied to each target -js haxe-test.js # our first transpilation target --next # no other options, time to move to the next target -cpp bin # our second transpilation (and compilation) target

สังเกตความแตกต่างของคำนำหน้า: -main, -js และ -cpp พารามิเตอร์แต่ละตัวที่คุณจะส่งผ่านไปยัง haxe โดยตรงในขณะที่ --each และ --next (ขีดกลางสองตัว) เป็นระดับเมตาโดยบอกคอมไพเลอร์ว่าจะทำอย่างไรกับพารามิเตอร์อื่น ๆ

ตอนนี้คุณสามารถเข้าถึงทั้ง JavaScript และเนทีฟเป้าหมายได้ง่ายๆเพียงแค่เรียกใช้ haxe build-all.hxml

หากคุณต้องการเปลี่ยนเป็น JavaScript แล้วเรียกใช้ผลลัพธ์ทันทีโดยใช้ Node คุณสามารถเรียกใช้ haxe run-js.hxml โดยที่ run-js.hxml มีลักษณะดังนี้:

-main Test -js haxe-test.js -cmd node haxe-test.js

ในทำนองเดียวกัน 'สร้างและรัน' สำหรับไบนารีดั้งเดิมจะมีลักษณะเช่นนี้ (บน Linux นั่นคือรูปแบบที่จำเป็นสำหรับ Windows):

-main Test -cpp bin -cmd bin/Test

VSCode ล่ะ? ส่วนนั้นเป็นเรื่องง่าย: ส่วนขยายที่คุณติดตั้งจะรับ .hxml เหล่านี้โดยอัตโนมัติ ไฟล์ให้งานบิวด์ที่สร้างขึ้นโดยอัตโนมัติ (โดยไม่มี tasks.json) ในเมนูแบบเลื่อนลงให้คุณเลือกไฟล์บิลด์ที่จะใช้

หมายเหตุ: ระวังถ้าคุณมี หน้าต่าง VSCode หลายหน้าต่างเปิดอยู่ แม้ว่าในขณะที่เขียนนี้อาจทำให้เกิดปัญหากับการสร้างผ่าน Ctrl + B (คุณยังสามารถใช้บรรทัดคำสั่งได้ไม่มีปัญหา)

แฮ็กซ์ 4

หากคุณทำตามการตั้งค่าข้างต้นคุณอาจสังเกตเห็นว่าหน้าดาวน์โหลดมีลิงก์ไปยังทั้ง 3.x และ 4.x สาขาของตัวติดตั้ง Haxe

คอมไพเลอร์ Haxe เวอร์ชัน 4 ที่ล้ำสมัยนำมาพร้อมกับคุณสมบัติใหม่มากมาย ในกรณีหนึ่งนี่เป็นข้อพิสูจน์ถึงพลังของระบบมาโคร: คอมไพเลอร์ Haxe เคยขาดการสนับสนุนฟังก์ชันแลมบ์ดาแบบสั้นดังนั้น ไลบรารี slambda ดำเนินการสนับสนุนผ่านมาโคร . ในเวอร์ชัน 4 การสนับสนุนจะสร้างขึ้นในคอมไพเลอร์และไลบรารีกำลังถูกเลิกใช้งาน

แล้ว Haxe 4 นำมาที่โต๊ะอะไรอีก?

ไม่จำเป็นต้องมีผู้ให้ความสนใจมากเกินไป แต่ Haxe 4 มีการปรับปรุงที่เล็กกว่ามากมาย ท้ายที่สุด Haxe เอง คือ เทคโนโลยีที่พัฒนาขึ้นโดยทีมงานขนาดเล็กและมีสมาธิมากกว่าบางทีอาจจะมากกว่าโครงการที่คล้ายกันและอาจจะต้องใช้เวลานานพอสมควรที่จะเรียกโครงการใดโครงการหนึ่ง คล้ายกัน ถึง Haxe

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

แต่โดยเฉพาะอย่างยิ่ง Haxe 4 จะเห็น:

  • การเรียกใช้มาโครเร็วขึ้น 4 เท่า
  • การสนับสนุน PHP5 ถูกยกเลิก
  • การอัปเดตวากยสัมพันธ์บางอย่างที่ผู้ใช้ TypeScript ยินดีต้อนรับแม้ว่าจะมีความแตกต่างกันเล็กน้อยระหว่างสองภาษาก็ตาม ได้แก่ ฟังก์ชันลูกศร และใหม่ ไวยากรณ์ประเภทฟังก์ชัน .

บทแนะนำ Haxe

ในขณะที่คุณสามารถดำน้ำได้ตลอดเวลา API มาตรฐานของ Haxe หรือ เอกสารไวยากรณ์ ยังมีอีกบางส่วน วัสดุ Haxe ที่เป็นมิตรกับผู้เริ่มต้น ใช้ได้ เช่นกัน .

หากคุณต้องการให้ความสำคัญกับวิดีโอ Haxe US Summit 2018 ที่ซีแอตเทิล มีการประชุมเชิงปฏิบัติการขึ้น ควบคู่ไปกับปีอื่น ๆ เพื่อรับมุมมองจากคนวงในมากขึ้น

แต่บางครั้งสิ่งที่อาจช่วยให้คุณเริ่มต้นได้ง่ายขึ้นคือบทแนะนำที่เฉพาะเจาะจงมากขึ้น ชอบ บทช่วยสอนเริ่มต้นจนจบเกี่ยวกับวิธีสร้างเกมรวบรวมข้อมูลดันเจี้ยนใน HaxeFlixel . นอกจากนี้ยังมีไฟล์ ชุดบทเรียน HaxeFlixel ที่อธิบายเพิ่มเติมว่าเกิดอะไรขึ้นเบื้องหลังในขณะที่ดำเนินไป ในตอนท้ายของ 3D มีไฟล์ บทแนะนำ Haxe เกี่ยวกับการเริ่มต้นใช้งาน Armory .

หรือบางทีคุณแค่ต้องการ บทแนะนำ Haxe เกี่ยวกับการประมวลผล XML ที่รวดเร็ว นี่เป็นหนึ่งในแบบฝึกหัดจำนวนมากที่ตอนนี้มีอายุเพียงไม่กี่ปี แต่ก็ยังค่อนข้างเกี่ยวข้อง ดังที่ฉันได้กล่าวไว้ก่อนหน้านี้แม้ว่าจะมีพรมแดนมากมาย แต่พื้นฐานหลายอย่างของการพัฒนาใน Haxe นั้นมีความเสถียรในตอนนี้ดังนั้นบทแนะนำจึงไม่จำเป็นต้องล้าสมัยเร็วนัก (ในกรณีที่พวกเขาทำมักมาจากการพึ่งพาไลบรารีเฉพาะไม่ใช่บนแกนของ Haxe เอง)


อย่างที่คุณเห็นคุณสามารถใช้ภาษา Haxe หรืออาจพาคุณไปในทิศทางต่างๆ ฉันหวังว่าคุณจะสนุกกับการแนะนำโลกที่หลากหลายและน่าสนใจของ Haxe และฉันหวังว่าจะได้ฟังสิ่งที่คุณทำด้วยเทคโนโลยีของ Haxe!

ที่เกี่ยวข้อง: รีวิว Haxe: คุณสมบัติและจุดแข็งของ Haxe 4

ทำความเข้าใจพื้นฐาน

Haxe ใหม่กว่า TypeScript หรือไม่

จริงๆแล้ว Haxe นั้นเก่ากว่า TypeScript เล็กน้อยและในขณะที่มันไม่ได้มีน้ำหนักองค์กรเท่ากัน แต่ภาษาและทรานสไพเลอร์ก็ค่อนข้างเป็นผู้ใหญ่

Haxe สามารถรวบรวมและถ่ายทอดไปยังเป้าหมายใดได้บ้าง

คอมไพเลอร์ Haxe สามารถกำหนดเป้าหมายเป็น JavaScript, Java, C ++, C #, PHP, Python, ActionScript 3, Flash และ Lua รวมถึงเครื่องเสมือน HashLink และ Neko ในทางกลับกันเอาต์พุตของ Haxe สามารถทำงานบน Windows, Linux, macOS, iOS, Android, PlayStation 4, PlayStation Vita, Nintendo Switch และ XBox One

c corp หรือ s corp llc

Haxe ใช้สำหรับการพัฒนาเกมเท่านั้นหรือไม่?

ไม่แม้ว่าระบบนิเวศ gamedev ที่มีชีวิตชีวาของ Haxe จะรวมถึงเฟรมเวิร์กเช่น OpenFL, HaxeFlixel, Heaps, Kha, Flambe, Armory, Kha, awe6, NME และ HaxePunk แต่ก็มีประโยชน์ในการผลิตสำหรับแอปพลิเคชันทางธุรกิจและเว็บไซต์

ประสบการณ์คือทุกสิ่ง - สุดยอดคู่มือ UX

การออกแบบ Ux

ประสบการณ์คือทุกสิ่ง - สุดยอดคู่มือ UX
ผู้เชี่ยวชาญด้านเทคนิค

ผู้เชี่ยวชาญด้านเทคนิค

อื่น ๆ

โพสต์ยอดนิยม
แหล่งข้อมูลสำหรับธุรกิจขนาดเล็กสำหรับ COVID-19: เงินกู้เงินช่วยเหลือและสินเชื่อ
แหล่งข้อมูลสำหรับธุรกิจขนาดเล็กสำหรับ COVID-19: เงินกู้เงินช่วยเหลือและสินเชื่อ
วิธีออกแบบประสบการณ์ที่ยอดเยี่ยมสำหรับอินเทอร์เน็ตในทุกสิ่ง
วิธีออกแบบประสบการณ์ที่ยอดเยี่ยมสำหรับอินเทอร์เน็ตในทุกสิ่ง
กลยุทธ์การสื่อสารที่มีประสิทธิภาพสำหรับนักออกแบบ
กลยุทธ์การสื่อสารที่มีประสิทธิภาพสำหรับนักออกแบบ
เรียนรู้ Markdown: เครื่องมือการเขียนสำหรับนักพัฒนาซอฟต์แวร์
เรียนรู้ Markdown: เครื่องมือการเขียนสำหรับนักพัฒนาซอฟต์แวร์
แนวโน้มต่อไปนี้: การแสดงความเคารพกับการลอกเลียนแบบการออกแบบ
แนวโน้มต่อไปนี้: การแสดงความเคารพกับการลอกเลียนแบบการออกแบบ
 
คู่มือสไตล์ Sass: บทช่วยสอน Sass เกี่ยวกับวิธีการเขียนโค้ด CSS ที่ดีขึ้น
คู่มือสไตล์ Sass: บทช่วยสอน Sass เกี่ยวกับวิธีการเขียนโค้ด CSS ที่ดีขึ้น
ทำลายกระบวนการคิดเชิงออกแบบ
ทำลายกระบวนการคิดเชิงออกแบบ
การออกแบบเว็บไซต์ CMS: คู่มือการใช้งานเนื้อหาแบบไดนามิก
การออกแบบเว็บไซต์ CMS: คู่มือการใช้งานเนื้อหาแบบไดนามิก
ทำคณิตศาสตร์: การปรับขนาดแอปพลิเคชันไมโครเซอร์วิสด้วย Orchestrators
ทำคณิตศาสตร์: การปรับขนาดแอปพลิเคชันไมโครเซอร์วิสด้วย Orchestrators
การปฏิวัติหุ่นยนต์เชิงพาณิชย์ที่กำลังจะเกิดขึ้น
การปฏิวัติหุ่นยนต์เชิงพาณิชย์ที่กำลังจะเกิดขึ้น
โพสต์ยอดนิยม
  • กระบวนการประเมินและคัดเลือกโครงการสำหรับบริษัทที่จะลงทุนเรียกว่า:
  • ราง 4 กับราง 5
  • โหนด js ส่วนที่เหลือ api กวดวิชา
  • raspberry pi เว็บเซิร์ฟเวอร์ท้องถิ่น
  • วิธีทำงบกระแสเงินสดจากงบดุล
  • c คอร์ปอเรชั่นหมายถึงอะไร
หมวดหมู่
  • การจัดการวิศวกรรม
  • บุคลากรและทีมงานของผลิตภัณฑ์
  • อื่น ๆ
  • นวัตกรรม
  • © 2022 | สงวนลิขสิทธิ์

    portaldacalheta.pt