จะพัฒนาบน Windows และทดสอบและใช้งานบน Linux ได้อย่างไร


12

ฉันเป็นหนึ่งในสองนักพัฒนาสำหรับซอฟต์แวร์ภายใน (เขียนด้วยหลาม) ใน บริษัท ของฉัน ซอฟต์แวร์เป็นแอปพลิเคชันเซิร์ฟเวอร์ที่ออกแบบมาเพื่อใช้งานบนกล่องเฉพาะ Linux ปัจจุบันเรามีหนึ่งกล่องที่เก็บที่เก็บ SVN ของเราและกล่องนี้ยังใช้สำหรับการทดสอบ ปัญหาคือว่าฉันกำลังพัฒนามันบนเวิร์กสเตชันของฉันโดยใช้ Eclipse บน Windows และแอพนี้ไม่สามารถทำงานบน Windows

ทำอย่างไรจึงจะจัดสภาพแวดล้อมให้เหมาะสมเพื่อที่คุณจะได้ไม่เสียเวลาอันมีค่าในการถ่ายโอนโปรเจ็กต์และโค้ดเพื่อให้คุณสามารถทดสอบได้?

ขณะนี้ฉันกำลังทำการชำระเงิน svn เปลี่ยนรหัสบางส่วนแล้วอัปโหลดไปยังเซิร์ฟเวอร์การพัฒนาเพื่อทำการทดสอบ (ไม่ใช่ผ่าน svn) ทดสอบบนเซิร์ฟเวอร์เปลี่ยนบางอย่างทดสอบอีกครั้ง ฯลฯ หลังจากนั้นสิ่งที่มากระทำ การอัปโหลดและทดสอบอย่างต่อเนื่องนี้ทำให้ฉันเป็นบ้า ฉันพยายามเก็บโครงการไว้บนเซิร์ฟเวอร์ (เช็คเอาต์ที่บ้าน dir) แต่สิ่งนี้ทำให้เกิดปัญหามากมายกับ Eclipse

เห็นได้ชัดว่าฉันไม่มีประสบการณ์มากมายในเรื่องนี้ดังนั้นฉันจึงถามว่าวิธีปฏิบัติที่ดีที่สุดเกี่ยวกับปัญหาประเภทนี้คืออะไร?

คำตอบ:


14

เมานต์โฟลเดอร์บนกล่อง Linux ด้วยวิธีนี้คุณสามารถโต้ตอบกับโค้ดโดยตรง ใช้เสน่ห์ได้!


นี่คือคำตอบที่ถูกต้อง โดยเฉพาะอย่างยิ่งถ้าคุณสามารถเรียกใช้ Cygwin บนกล่อง windows ของคุณ; คุณสามารถใช้ Cygwin เพื่อแสดง Linux X-Windows (Gnome, KDE, เด็ก ๆ เท่ห์ ๆ ที่ใช้วันนี้) กลับไปที่กล่องหน้าต่างของคุณ คุณสามารถโปรแกรมใน Eclipse โดยตรงบนกล่อง Linux และทดสอบทันที
Kristofer Hoch

3
เพียงระวังความแตกต่างในระบบไฟล์ Windows ไม่รองรับชื่อไฟล์ที่คำนึงถึงขนาดตัวพิมพ์ (โดยที่ "filename" และ "FILENAME" เป็นไฟล์ที่แตกต่างกันสองไฟล์) บางตัวอักษรเป็นชื่อไฟล์ (เช่น "/") หรือซอฟต์ลิงก์
bitsoflogic

เห็นด้วยนี่เป็นตัวเลือกที่มีประโยชน์และง่ายที่สุดในการติดตั้ง การกำหนดค่า VM ตามที่ฉันต้องการจะใช้เวลามากเกินไป
c0ldcrow

@ c0ldcrow: นอกเหนือจากปัญหาของระบบไฟล์โปรดระวังว่าการเข้าถึงไฟล์ข้ามเครือข่ายเพื่อทำงาน dev นั้นขึ้นอยู่กับสิ่งที่คุณทำ โดยเฉพาะอย่างยิ่งฉันสังเกตเห็นว่าระบบควบคุมเวอร์ชันบางรุ่นทำงานช้ามากเมื่อใช้กับไดรฟ์เครือข่ายแม้ว่ากรณีนี้จะไม่เป็นปัญหาสำหรับคุณ
Matthew Scharley

10

ทางออกที่ดีที่สุดในความคิดของฉันคือการใช้สภาพแวดล้อมแบบเสมือนจริงสำหรับการทดสอบหากพีซีของคุณมีทรัพยากรที่จะใช้งาน

สำหรับคำแนะนำบางอย่างเกี่ยวกับผลิตภัณฑ์บางอย่างคุณสามารถดูคำตอบของคำถามเกี่ยวกับ StackOverflowแต่โดยทั่วไปสิ่งนี้หมายความว่าคุณจะมีพีซี Linux ตัวที่สองที่ทำงานอยู่ภายในเครื่องปัจจุบันของคุณ ฉันใช้สิ่งนี้สำหรับการพัฒนา PHP บน Windows ตลอดเวลาและทำงานได้ดีสำหรับฉันจริงๆ คุณสามารถแบ่งปัน codebase ของคุณกับทั้ง SSH / ExpanDriveหรือถ้าคุณกำลังใช้ VirtualBox แล้วตรวจสอบโฟลเดอร์ที่ใช้ร่วมกัน


6

คำแนะนำ 1: ทำงานบน Linux โดยตรงหากคุณมีเวลาเรียนรู้ เรียนรู้ว่าระบบปฏิบัติการอื่นทำงานได้ดีเพียงใดสำหรับประสบการณ์ส่วนตัวของคุณและการเพิ่ม CV ของคุณที่คุณรู้ว่าจะใช้ Linux อย่างไรจะไม่ทำให้คุณเจ็บปวด นอกจากนี้ Eclipse ยังมีอยู่ใน Linux ดังนั้นคุณจะไม่เสียอะไรเลยกับ Windows

คำแนะนำ 2: ติดตั้ง Linux บนเครื่องเสมือนในเครื่อง มันจะช่วยให้คุณทดสอบแอปพลิเคชันโดยไม่ต้องเผยแพร่ไปยังเซิร์ฟเวอร์ระยะไกลทุกครั้ง

หมายเหตุ: คุณจะเขียนแอปพลิเคชั่นที่มีเป้าหมายเป็น Linux ได้อย่างไรถ้าคุณทำงานกับ Windows มันเป็นฝันร้าย!


แม้ว่าคุณจะมีผู้ทดสอบคุณจะต้องทำการทดสอบแบบ จำกัด ในการทำงานของคุณเองแม้ว่ามันจะเป็นเพียงเพื่อให้แน่ใจว่าจริง ๆ แล้วคอมไพล์ / รันเลย หากคุณกำลังพัฒนาบนกล่อง Windows แต่คุณกำลังพัฒนาแอพพลิเคชั่นลีนุกซ์นี่จะกลายเป็นเรื่องยากขึ้นเล็กน้อย ในบันทึกของวิธีที่คุณสามารถทำได้มันง่ายพอที่จะทำกับการตั้งค่าที่เหมาะสม ฉันใช้ VM อย่างกว้างขวางในงานของฉันเอง (PHP / MySQL กำหนดเป้าหมายไปยังเซิร์ฟเวอร์ปลายทาง Linux) และมันใช้งานได้ดีจริง ๆ โดยเฉพาะอย่างยิ่งถ้าคุณมีจอภาพ 2+ ตัวให้ทำงาน
Matthew Scharley

ฉันใช้ Linux ได้ดีมาก (ฉันตั้งค่าการทดสอบและเซิร์ฟเวอร์ SVN แล้ว) ฉันยังทำการเข้ารหัส Windows (ต้องใช้ Visual Studio) และโดยทั่วไปฉันชอบ Windows มากกว่า :) การพัฒนาซอฟต์แวร์ไม่ใช่ธุรกิจหลักสำหรับ บริษัท ของฉันความปลอดภัยของคอมพิวเตอร์คือนี่เป็นเพียงแอปภายในที่เราต้องการ ฉันคิดว่าฉันสามารถยอมรับการติดตั้ง Linux ใน VM
c0ldcrow

@ Matthew Scharley: ฉันเห็นด้วย ลบบันทึกย่อที่สองของฉัน
Arseni Mourzenko

@ c0ldcrow: ดังนั้นจะต้องไม่เป็นปัญหาสำหรับคุณที่จะมีสภาพแวดล้อมเสมือนจริงเพียงเพื่อพัฒนาแอปพลิเคชันนี้ (หรือเพื่อทดสอบเท่านั้นในขณะที่เขียนโค้ดใน Windows)
Arseni Mourzenko

2

หากคุณกำลังใช้ eclipse จะมีปลั๊กอินที่สมบูรณ์แบบสำหรับคุณ: Filesync ฉันใช้มันตลอดเวลาและฉันมั่นใจว่าคุณจะรักมัน

นี่คือสิ่งที่ฉันทำตามปกติเพราะฉันทำงานในสภาพเดียวกันกับคุณ

ฉันเช็คเอาต์โครงการจาก SVN โดยใช้ Eclipse ในเครื่องของฉัน จากนั้นฉันซิงค์โครงการท้องถิ่นของฉันกับเซิร์ฟเวอร์ dev | ทดสอบระยะไกลไม่รวมไฟล์เช่น. project และเช่นนั้น ฉันขอแนะนำให้คุณใส่รหัส SSH ของคุณไปยังเซิร์ฟเวอร์ระยะไกลเพื่อเพิ่มความเร็วในการเชื่อมต่อ

และvoilà! ตอนนี้คุณสามารถทำงานได้ localy และ eclipse จะซิงค์การเปลี่ยนแปลงใด ๆ ที่คุณทำบนเซิร์ฟเวอร์ระยะไกลโดยอัตโนมัติ เมื่อทุกอย่างผ่านการทดสอบอย่างดีและพร้อมที่จะส่งมอบคุณสามารถกระทำโดยใช้ eclipse ได้เช่นกัน! ไม่จำเป็นต้องมีผงสำหรับอุดรู!

หวังว่ามันจะช่วย!


0

ฉันจัดการเพื่อเขียนรหัส c # / mono ใน Visual Studio และดีบักจากระยะไกลบนกล่อง Linux จากภายใน VS โดยใช้ปลั๊กอินดีบักเกอร์ระยะไกล GDB ทำงานได้ดีอย่างน่าอัศจรรย์ ฉันคิดว่ามันจะเร็วขึ้นหากการติดตั้ง Linux ของคุณอยู่ใน VM ท้องถิ่น (มีเครื่องใช้ VMWare Ubuntu ที่ดีบนเว็บ) แต่ฉันต้องการการ์ด Tesla GPU ที่ไม่ได้ติดตั้งในแล็ปท็อปของฉัน

มองหา WinGDB มันไม่ฟรี แต่ทำงานได้ดีอย่างไม่น่าเชื่อ

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