วิศวกรรมซอฟต์แวร์

ถาม - ตอบสำหรับมืออาชีพนักวิชาการและนักเรียนที่ทำงานในวงจรการพัฒนาระบบ

3
วิธีการเขียนโปรแกรมเชิงหน้าที่สำหรับเกมที่ง่ายขึ้นโดยใช้ Scala และ LWJGL
I ซึ่งเป็นโปรแกรมเมอร์ที่จำเป็นของ Java ต้องการที่จะเข้าใจวิธีการสร้าง Space Invaders แบบง่าย ๆ ตามหลักการออกแบบฟังก์ชั่น Programming (โดยเฉพาะ Referential Transparency) อย่างไรก็ตามในแต่ละครั้งที่ฉันลองนึกถึงการออกแบบฉันจะหลงทางในความแปรปรวนอย่างรุนแรงซึ่งเป็นความไม่แน่นอนที่เหมือนกันซึ่งเป็นที่รังเกียจของนักเขียนโปรแกรมการทำงาน เป็นความพยายามที่จะเรียนรู้หน้าที่ Programming ฉันตัดสินใจที่จะพยายามที่จะสร้างเกมแบบโต้ตอบ 2D ง่ายมากช่องว่าง Invader (หมายเหตุขาดพหูพจน์) ในScalaใช้lwjgl นี่คือข้อกำหนดสำหรับเกมพื้นฐาน: ผู้ใช้จัดส่งที่ด้านล่างของหน้าจอเลื่อนไปทางซ้ายและขวาด้วยปุ่ม "A" และ "D" ตามลำดับ กระสุนของผู้ใช้ยิงพุ่งขึ้นมาเปิดใช้งานโดยตรงโดยสเปซบาร์โดยมีการหยุดชั่วคราวอย่างน้อยระหว่างนัดเป็น 0.5 วินาที กระสุนของเรือรบต่างด้าวยิงตรงลงโดยใช้เวลาสุ่ม 0.5 ถึง 1.5 วินาทีระหว่างการยิง สิ่งที่จงใจทิ้งไว้จากเกมดั้งเดิมคือเอเลี่ยนของ WxH อุปสรรคในการป้องกันที่ย่อยสลายได้ x3 จานรองความเร็วสูงที่ด้านบนของหน้าจอ ตกลงไปยังโดเมนปัญหาจริงแล้ว สำหรับฉันทุกส่วนที่กำหนดไว้ชัดเจน มันเป็นชิ้นส่วนที่ไม่สามารถกำหนดได้ซึ่งดูเหมือนจะปิดกั้นความสามารถของฉันในการพิจารณาวิธีการเข้าถึง ส่วนที่กำหนดขึ้นมานั้นเป็นวิถีกระสุนของกระสุนทันทีที่มีการเคลื่อนไหวอย่างต่อเนื่องของเอเลี่ยนและการระเบิดเนื่องจากการชนทั้งสอง (หรือทั้งสองอย่าง) ของเรือของผู้เล่นหรือมนุษย์ต่างดาว ชิ้นส่วนที่ไม่สามารถกำหนดค่าได้ (สำหรับฉัน) กำลังจัดการสตรีมอินพุตของผู้ใช้การจัดการดึงค่าสุ่มสำหรับการกำหนดกระสุนไฟเอเลี่ยนและการจัดการเอาต์พุต …

4
วิธีการต่อต้านรหัสฐานช้าลงอย่างสม่ำเสมอ
เรากำลังทำงานอยู่ในระดับปานกลาง C ขนาด ++ รหัสฐาน (10Mloc) ซึ่งผ่านความพยายามเพิ่มประสิทธิภาพของเราจะกลายเป็นเหมือนกันช้า รหัสฐานนี้เป็นชุดของห้องสมุดที่เรารวมกันเพื่อให้ทำงานได้ เมื่อเฟรมเวิร์กทั่วไปของวิธีที่การสื่อสารของไลบรารีเหล่านี้ได้รับการพัฒนามีความสำคัญต่อประสิทธิภาพการทำงานและในภายหลังเมื่อมีส่วนเพิ่มมากขึ้นเฟรมเวิร์กทั่วไปจะไม่เปลี่ยนแปลงมากนัก การปรับให้เหมาะสมทำเมื่อจำเป็นและตามที่ฮาร์ดแวร์ของเราพัฒนาขึ้น การตัดสินใจครั้งแรกนี้มีราคาแพงชัดเจนมากในภายหลังเท่านั้น ขณะนี้เราอยู่ในจุดที่การเพิ่มประสิทธิภาพเพิ่มเติมนั้นมีราคาแพงกว่ามากเนื่องจากพวกเขาต้องการการเขียนส่วนใหญ่ของฐานรหัส เราพบว่าตัวเองกำลังเข้าใกล้จุดต่ำสุดที่ไม่พึงประสงค์ในท้องถิ่นเนื่องจากเรารู้ว่าในหลักการแล้วรหัสควรจะสามารถทำงานได้เร็วขึ้นมาก มีวิธีการที่ประสบความสำเร็จหรือไม่ซึ่งช่วยในการตัดสินใจว่าอะไรจะเกิดขึ้นกับการวิวัฒนาการของรหัสฐานไปสู่โซลูชั่นที่มีประสิทธิภาพสูงสุดทั่วโลกซึ่งไม่สับสนอย่างง่ายดายจากโอกาสในการปรับให้เหมาะสมที่ง่ายดาย? แก้ไข หากต้องการตอบคำถามว่าเราโปรไฟล์อย่างไร: เรามีเพียงสถานการณ์จำลองที่แตกต่างกันสองวิธีที่วิธีการใช้รหัสนี้ทั้งคู่ขนานที่น่าอาย การทำโปรไฟล์ทำได้ทั้งเวลาที่นาฬิกาแขวนมีค่าเฉลี่ยในกลุ่มตัวอย่างขนาดใหญ่ของอินพุตและการทำงานที่มีรายละเอียดมากขึ้น (ต้นทุนการสอน สิ่งนี้ทำงานได้ดีเนื่องจากเราทำงานเฉพาะในเครื่องที่เป็นเนื้อเดียวกันมาก (คลัสเตอร์ของเครื่องที่เหมือนกันสองพันเครื่อง) เนื่องจากเรามักจะทำให้เครื่องของเรายุ่งตลอดเวลาส่วนใหญ่ทำงานได้เร็วขึ้นหมายความว่าเราสามารถดูสิ่งใหม่เพิ่มเติม ปัญหาคือแน่นอนว่าเมื่อรูปแบบการป้อนข้อมูลใหม่ปรากฏขึ้นพวกเขาอาจได้รับโทษขั้นปลายเนื่องจากเราลบความไร้ประสิทธิภาพที่ชัดเจนที่สุดสำหรับกรณีการใช้งานอื่น ๆ ดังนั้นจึงอาจลดจำนวนสถานการณ์
11 c++  optimization 

1
การพัฒนาเอกสารซ้ำเป็นไปได้และส่งมอบเอกสารที่มีประสิทธิภาพหรือไม่
ฉันมีโครงการสำหรับมหาวิทยาลัยที่ฉันจะไม่เริ่มต้นในทันที แต่ได้คิดมานานพอสมควรแล้ว ฉันเข้าใจว่าการพัฒนาโครงการของมหาวิทยาลัยไม่เหมือนอุตสาหกรรม (ตอนนี้ฉันฝึกงานด้วยตนเอง) ดังนั้นสถานการณ์ที่ฉันจะชี้ให้เห็นในขณะนี้อาจดูเหมือนไร้สาระกับผู้พัฒนาซอฟต์แวร์จริง ^^' ตัวโครงการเองต้องการให้เราทำเอกสารงานของเรามากมาย ดังนั้นนอกจากการส่งรหัสซึ่งนับรวมเครื่องหมายบางอย่างแล้วเราต้องส่งเอกสารดังนี้: เอกสารวิเคราะห์ความต้องการ แผนโครงการ รายการตามแผนของกรณีการใช้งานวัตถุและโมเดลไดนามิกและการทดสอบการยอมรับ เอกสารขั้นตอนการทดสอบและความสำเร็จของการทดสอบ การอภิปรายและการวิเคราะห์การใช้เวลาอื่น ๆ การส่งมอบเหล่านี้จะต้องจัดส่งในลักษณะดังต่อไปนี้: RAD ก่อน ตามด้วยโครงการโครงการใช้แบบจำลองและการทดสอบ (ประมาณ 3 สัปดาห์ต่อมา) สุดท้ายเอกสารประกอบของโปรแกรมจริงกระบวนการทดสอบ ฯลฯ + โปรแกรมจริง (ประมาณ 5 สัปดาห์ต่อมา) ดังนั้นจากสิ่งที่ฉันเข้าใจนี่คือการมุ่งสู่แนวทางแบบน้ำตกในโครงการ ปัญหาเดียว (ในความคิดของฉัน) คือว่านี่เป็นโครงการของมหาวิทยาลัยและนักเรียนมีแรงกดดันมากพอที่จะพยายามพัฒนาโครงการเมื่อสิ้นสุดภาคการศึกษาในช่วงสัปดาห์ของโครงการ ฉันไม่ต้องการเขียนโค้ด / พัฒนา / ทดสอบทุกอย่างเมื่อสิ้นสุดภาคการศึกษาเมื่อฉันจะตื่นตระหนกกับการประเมินอื่น ๆ อีกมากมายที่ฉันต้องรับมือ อย่างน้อยฉันก็ลองและทำวงจรการพัฒนาแบบวนซ้ำซึ่งหมายความว่าเราสามารถเริ่มต้นการเข้ารหัส / การสร้างต้นแบบตั้งแต่ต้นมีวงจรการพัฒนาอย่างต่อเนื่องที่ไม่ได้มุ่งเน้นที่จะทำทุกอย่างในนาทีสุดท้ายและไม่มีแรงกดดันมากนัก จุดสิ้นสุดของภาคเรียนเพื่อเสร็จสิ้นโครงการนี้ และมาถึงคำถามที่แท้จริงของฉัน: ฉันสามารถตกลงกันได้หรือไม่ว่าจะต้องส่งเอกสารทั้งหมดด้วยวัฏจักรการพัฒนาที่รวดเร็วทำซ้ำ / สร้างต้นแบบ? มีกลยุทธ์ในการสร้างเอกสารในลักษณะวนซ้ำหรือไม่? ฉันไม่มีเหตุผลเลยที่จะขอสิ่งนี้และคาดหวังว่าจะทำได้ในมหาวิทยาลัยหรือไม่? นอกจากนี้ฉันเข้าใจว่าคำถามนี้แปลเป็นภาษาท้องถิ่นอย่างมากดังนั้นฉันจึงอยากถามคำถามแบบเดียวกันกับที่ฉันถามไปข้างต้นในแง่ของอุตสาหกรรมและไม่ว่าจะเป็นปัญหาประเภทใดก็ตามที่กระบวนการเปรียวเผชิญอยู่นั้นแตกต่างกันหรือไม่ …

6
QA ควรเป็นส่วนหนึ่งของแผนกพัฒนาหรือไม่?
ฉันทำงานกับ บริษัท เล็ก ๆ ที่มีแผนกพัฒนาผลิตภัณฑ์มาระยะหนึ่งแล้ว อย่างไรก็ตามสิ่งที่เรายังไม่มีคือกลุ่มควบคุมคุณภาพ / ทดสอบ เรากำลังมองหาเพื่อเพิ่มกลุ่มการทดสอบ แต่กำลังดิ้นรนเพื่อกำหนดตำแหน่งที่ดีที่สุดในการวางโครงสร้างองค์กรของ บริษัท โดยเฉพาะเราจะจ้างตำแหน่ง "ผู้ทดสอบลีดเดอร์" พวกเขาควรจะใส่เป็นส่วนหนึ่งของแผนกพัฒนาผลิตภัณฑ์หรือควรเป็นแผนกใหม่ พวกเขาควรจะอยู่ที่อื่นหรือไม่ บริษัท ของเรามีโครงสร้างคร่าวๆดังนี้: ผู้บริหารสูงสุด CTO ผู้อำนวยการฝ่ายพัฒนาผลิตภัณฑ์ ผู้อำนวยการฝ่ายบริการลูกค้า นักพัฒนา รองประธานฝ่ายปฏิบัติการ วิศวกรเครือข่าย วิศวกรฝ่ายขาย / ฝ่ายขาย ประธาน ตัวควบคุม

6
การเลือกกลยุทธ์การแยกสาขาที่เหมาะสมสำหรับการเผยแพร่
เริ่มต้นด้วยทีม dev ใหม่ในโครงการใหม่และเราต้องกำหนดกลยุทธ์การแบ่งสาขาสำหรับแหล่งเก็บข้อมูลของเรา ( เช่น Microsoft Team Foundation Server 2010 ) เราได้ทำการอภิปรายกันอย่างเหนียวแน่นว่าจะ ... ก . มีสาขาReleaseหนึ่งสาขาที่เราผลิตงานสร้างและจากนั้นLabelเมื่อมีบางอย่างออกวางจำหน่ายจริง หรือ ข . มีสาขาReleaseใหม่สำหรับแต่ละ Release ใหม่เข้าสู่การผลิต ( เช่นเวอร์ชัน 1, 2, 3, ฯลฯ ... ) ตัวเลือกAดูเหมือนจะตรงไปตรงมา แต่เราไม่แน่ใจว่าสิ่งนี้จะนำไปสู่ปัญหาในระยะยาวหรือไม่ ตัวเลือกBดูเหมือนว่าจะเป็นเพียงการสร้างกิ่งไม้ที่มีอายุยืนยาวจำนวนมากเพียงครั้งเดียว ไม่มีใครมีประสบการณ์อย่างใดอย่างหนึ่งที่สามารถช่วยเราตัดสินใจได้ โดยเฉพาะฉันกำลังมองหาว่าจุดปวดอยู่ที่ใดสำหรับทางเลือกหนึ่ง อย่าลังเลที่จะมอบประสบการณ์เฉพาะที่เกี่ยวข้องกับ TFS และ / หรือนัยต่อการจัดการที่วางจำหน่าย

3
เลือก C ++ หรือ Java สำหรับแอปพลิเคชันที่ต้องการ RAM จำนวนมากใช่ไหม [ปิด]
ปิด คำถามนี้เป็นคำถามความคิดเห็นตาม ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้สามารถตอบข้อเท็จจริงและการอ้างอิงได้โดยแก้ไขโพสต์นี้ ปิดให้บริการใน6 ปีที่ผ่านมา ฉันกำลังคิดถึงแอปพลิเคชันทางวิทยาศาสตร์ที่ส่วนใหญ่ใช้โปรเซสเซอร์และมีน้ำหนักมากในการใช้งานฮีป (อย่างน้อยหลายกิกะไบต์) ช่วงเวลาอื่นของปีที่ฉันจะไปกับ C ++ อย่างมีความสุข แต่ในกรณีนี้ฉันสงสัยว่าการกระจายตัวตามธรรมชาติของตัวจัดการหน่วยความจำ C ++ อาจเป็นปัญหาร้ายแรงเมื่อเทียบกับข้อดีของตัวสะสมขนาดกะทัดรัดของ Java ใครสามารถชี้ให้เห็นตัวอย่างที่แท้จริงเกี่ยวกับสิ่งนี้
11 java  c++  memory  big-data 

4
บรรทัดของโค้ดถูกเรียกใช้งานโดย CPU อย่างไร
ฉันพยายามที่จะเข้าใจจริงๆว่าภาษาระดับสูงถูกแปลงเป็นรหัสเครื่องอย่างไรและดำเนินการโดย cpu ฉันเข้าใจว่ารหัสถูกรวบรวมเป็นรหัสเครื่องซึ่งเป็นรหัสระดับต่ำที่ CPU สามารถใช้ได้ ถ้าฉันมีคำสั่งมอบหมายพูด: x = x + 5; y = x - 3; CPU ดำเนินการทีละบรรทัดหรือไม่? ดังนั้นก่อนจะดำเนินการ x = x + 5; คำสั่งแล้วคำสั่งถัดไปที่ CPU จะดำเนินการคือ y = x- 3; ฉันพยายามเข้าใจขั้นตอนการดำเนินการจริง ๆ และวิธีการที่โค้ดที่ฉันเขียนนั้นถูกใช้งานจริงโดย CPU

1
เครื่องมือจัดการการกำหนดค่าคือใคร
ฉันต้องการถามสมาชิกของชุมชนเกี่ยวกับบทบาทของเครื่องมือจัดการการกำหนดค่าตามที่คุณเห็น ฉันไม่ได้ถามว่าการจัดการการกำหนดค่าคืออะไรตราบใดที่มันถูกถามมาก่อน สิ่งที่ฉันต้องรู้คือ: คุณคิดว่างานใดที่เครื่องมือจัดการการกำหนดค่าควรทำงาน (หรือทำงาน) ในทีมของคุณ อะไรคือความรับผิดชอบหลักของเครื่องมือจัดการการกำหนดค่า ความรับผิดชอบรอง / สำรองของเครื่องมือจัดการการกำหนดค่าคืออะไร เครื่องมือจัดการการกำหนดค่าต้องรับผิดชอบกระบวนการพัฒนาในโครงการ / บริษัท หรือไม่หรือเขาควรได้รับแจ้งว่าต้องทำอย่างไร? อะไรคือความสัมพันธ์ระหว่างเครื่องมือจัดการการกำหนดค่า, ตัวจัดการการสร้าง, ตัวจัดการการเผยแพร่, วิศวกรการปรับใช้, บทบาทวิศวกร CI? ไม่เหมือนกันทั้งหมด - การจัดการการกำหนดค่า บางทีการจัดการการกำหนดค่าเป็นคำซ้ำซ้อนและหัวหน้าฝ่ายเทคนิค / ทีมควรทำงานที่เกี่ยวข้องทั้งหมดแทนหรือไม่ มันจะดีมากถ้าคุณสามารถแบ่งปันวิสัยทัศน์และประสบการณ์ของคุณ

3
ประเภทการดำรงอยู่แตกต่างจากอินเตอร์เฟสได้อย่างไร
กำหนดประเภทการดำรงอยู่ T = ∃X.{op₁:X, op₂:X→boolean} และอินเตอร์เฟส Java ทั่วไปนี้: interface T<X> { X op₁(); boolean op₂(X something); } อะไรคือความแตกต่างพื้นฐานระหว่างประเภทที่มีอยู่และส่วนต่อประสาน Java? เห็นได้ชัดว่ามีความแตกต่างทางไวยากรณ์และการวางแนววัตถุของ Java (ซึ่งรวมถึงรายละเอียดเช่นthisพารามิเตอร์ที่ซ่อนอยู่ฯลฯ ) ฉันไม่ได้สนใจสิ่งเหล่านี้มากนักในความแตกต่างทางความคิดและความหมาย - แม้ว่าบางคนอยากจะแสดงความเห็นในบางประเด็นที่ละเอียดกว่า (เช่นความแตกต่างระหว่างตัวละครTกับT<X>) ที่จะได้รับการชื่นชมเช่นกัน

2
จะทำอย่างไรกับการประเมินเรื่องราวที่ไม่สมบูรณ์
ฉันเป็นส่วนหนึ่งของทีมพัฒนาที่ค่อนข้างใหม่Scrumสมมติว่าในตอนท้ายของการวิ่งเรื่องราวใหญ่ ๆ สองสามเรื่องนั้นไม่ว่าin progressจะacceptedโดย PO หรือไม่ก็ตาม ประการแรกเกิดอะไรขึ้นกับเรื่องราวของผู้ใช้เหล่านั้น คุณแค่พาพวกเขาไปสู่การวิ่งครั้งต่อไปหรือไม่? ถ้าเป็นเช่นนั้นพวกเขาควรได้รับการประเมินอีกครั้ง? ในมุมมองของฉันงานที่เหลือในเรื่องราวของผู้ใช้เหล่านี้อาจน้อยหรือมาก? ถ้าไม่ทำไมล่ะ แก้ไข: ในกรณีเฉพาะของฉันเรื่องราวยังไม่เสร็จสมบูรณ์เนื่องจากมีอุปสรรคที่ยาวไม่กี่วันไม่ใช่เพราะการประเมินเรื่องราวของผู้ใช้ต่ำไป สำหรับผู้ที่อาจช่วยเราใช้VersionOne
11 agile  scrum 

3
สุ่มสร้างกราฟกำกับบนตาราง
ฉันพยายามที่จะสร้างกราฟกำกับแบบสุ่มเพื่อจุดประสงค์ในการสร้างเกมไขปริศนาคล้ายกับปริศนาเลื่อนน้ำแข็งจากโปเกมอน นี้เป็นหลักสิ่งที่ฉันต้องการที่จะสามารถสร้างแบบสุ่ม: http://bulbanews.bulbagarden.net/wiki/Crunching_the_numbers:_Graph_theory ฉันต้องสามารถ จำกัด ขนาดของกราฟในมิติ x และ y ได้ ในตัวอย่างที่ให้ไว้ในลิงค์มันจะถูก จำกัด ไว้ที่ตาราง 8x4 ปัญหาที่ฉันพบคือการสร้างกราฟแบบสุ่ม แต่สร้างกราฟแบบสุ่มซึ่งฉันสามารถแมปพื้นที่ในพื้นที่ 2 มิติได้อย่างเหมาะสมเนื่องจากฉันต้องการบางสิ่ง (เช่นก้อนหิน) ที่อยู่ฝั่งตรงข้ามของโหนดเพื่อทำให้เกิด มองเห็นได้ชัดเจนเมื่อคุณหยุดเลื่อน ปัญหาเกี่ยวกับเรื่องนี้คือบางครั้งก้อนหินจะสิ้นสุดลงในเส้นทางระหว่างสองโหนดอื่น ๆ หรืออาจเกิดขึ้นกับโหนดอื่นเองซึ่งทำให้กราฟทั้งหมดแตกหัก หลังจากพูดคุยปัญหากับคนไม่กี่คนที่ฉันรู้จักเรามาถึงข้อสรุปที่อาจนำไปสู่การแก้ปัญหา รวมถึงอุปสรรคในตารางเป็นส่วนหนึ่งของกราฟเมื่อสร้างมัน เริ่มต้นด้วยกริดที่เต็มไปอย่างสมบูรณ์และเพียงแค่วาดเส้นทางสุ่มและลบบล็อกที่จะทำให้เส้นทางนั้นทำงาน จากนั้นปัญหาก็จะกลายเป็นสิ่งที่คนที่จะลบเพื่อหลีกเลี่ยงการแนะนำเส้นทางเพิ่มเติมที่สั้นกว่า เรายังคิดว่าอัลกอริทึมการเขียนโปรแกรมแบบไดนามิกอาจเป็นประโยชน์แม้ว่าเราไม่มีใครมีฝีมือเกินไปในการสร้างอัลกอริทึมการเขียนโปรแกรมแบบไดนามิกจากอะไร แนวคิดหรือการอ้างอิงใด ๆ เกี่ยวกับปัญหาที่เรียกว่าเป็นทางการ (หากเป็นปัญหากราฟอย่างเป็นทางการ) จะเป็นประโยชน์มากที่สุด นี่คือตัวอย่างบางส่วนของสิ่งที่ฉันประสบความสำเร็จจนถึงเพียงแค่วางบล็อกแบบสุ่มและสร้างกราฟการนำทางจากจุดเริ่มต้น / สิ้นสุดที่เลือก แนวคิด (ตามที่อธิบายไว้ในลิงค์ก่อนหน้า) คือคุณเริ่มที่สีเขียว S และต้องการไปที่สีเขียว F. คุณทำสิ่งนี้โดยเลื่อนขึ้น / ลง / ซ้าย / ขวาและคุณดำเนินการต่อในทิศทางที่เลือกจนกว่าคุณจะตี …

3
ฉันสามารถใช้ Ruby เพื่อทำให้ทุกอย่างเป็นอัตโนมัติได้หรือไม่
ฉันเผชิญกับแอพพลิเคชั่นหลายประเภท (บนเว็บ, อิง GUI, บรรทัดคำสั่ง ฯลฯ ) บนแพลตฟอร์มต่างๆ (Windows, Linux และอื่น ๆ ) เพื่อให้ทำงานได้ทุกวัน มีโอกาสที่ดีสำหรับฉันที่จะทำงานอัตโนมัติโดยการเขียนสคริปต์ แต่แอปพลิเคชันและแพลตฟอร์มเกือบทุกประเภทมีภาษาหรือเครื่องมือการเขียนสคริปต์ดั้งเดิม (เช่นVBScriptและPowerShellสำหรับ Windows, สคริปต์ Bash สำหรับ Linux, ซีลีเนียมสำหรับเว็บแอปพลิเคชันและAutoItสำหรับแอปพลิเคชัน GUI เป็นต้น) มันฆ่าฉันให้เรียนรู้และบำรุงรักษาภาษาสคริปต์มากมาย ฉันมีความรู้สึกว่าทับทิมสามารถทำงานร่วมกับแพลตฟอร์มต่าง ๆ ได้อย่างง่ายดายและเป็นสิ่งที่แสดงออกมาก ดังนั้นคำถามของฉันคือ: เป็นไปได้ไหมที่จะใช้ Ruby เพื่อเขียนสคริปต์ทุกอย่าง ถ้าเป็นเช่นนั้นข้อเสียเปรียบหลักเมื่อเปรียบเทียบกับภาษาสคริปต์ของแต่ละแพลตฟอร์มคืออะไร

5
ฉันจะโฆษณาโครงการโอเพนซอร์ซของฉันได้ที่ไหนดีที่สุดเพื่อเพิ่มโอกาสในการหาผู้ทำงานร่วมกันมากที่สุด [ปิด]
ปิด. คำถามนี้เป็นคำถามปิดหัวข้อ ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้เป็นหัวข้อสำหรับ Software Engineering Stack Exchange ปิดให้บริการใน4 ปีที่แล้ว ฉันกำลังทำงานในโครงการโอเพนซอร์สและกำลังมองหาผู้ทำงานร่วมกัน สิ่งที่เป็นทางออกที่ดีที่สุดของฉันในแง่ของการโฆษณาโครงการของฉันด้วยการมองหานักพัฒนาอื่น ๆ ที่สนใจมีส่วนร่วมโดยเฉพาะ

5
เมื่องานสามารถทำได้โดยทั้ง Javascript หรือ CSS มันจะดีกว่าถ้าใช้ CSS? [ปิด]
ปิด คำถามนี้เป็นคำถามความคิดเห็นตาม ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้สามารถตอบข้อเท็จจริงและการอ้างอิงได้โดยแก้ไขโพสต์นี้ ปิดให้บริการใน5 ปีที่ผ่านมา ฉันมักจะยับยั้ง JavaScript โดยใช้ CSS ให้มากที่สุด นั่นคือฉันสร้างแท็บและปุ่มแบบโรลโอเวอร์โดยใช้ CSS แทน JavaScript ฉันได้เห็นวิธีแก้ปัญหาบางอย่าง - โดยเฉพาะWt web-frameworkซึ่งสนับสนุน JavaScript; แต่ปรับลดรุ่นเป็น CSS อย่างสวยงามหากเบราว์เซอร์ไม่สามารถ / js-disabled ฉันรู้ CSS และ JavaScript มีวัตถุประสงค์ที่แตกต่างกัน แต่มีการทับซ้อนกัน ซึ่งเป็นบอร์นของคำถามนี้ ฉันควรใช้ CSS ต่อไปให้มากกว่า JavaScript หรือไม่
11 javascript  css 

5
ฉันสามารถใช้แพ็คเกจที่ได้รับอนุญาต GPL, LGPL, MPL กับแอปพลิเคชันของฉันและทำให้มันเป็นแหล่งข้อมูลปิดได้หรือไม่?
ฉันเห็น บริษัท กำลังใช้BusyBoxและใช้แพ็คเกจ Gpl + Lgpl + Mpl อยู่ด้วยจากนั้นพวกเขาก็มีแอปพลิเคชันของตัวเองที่ทำงานอยู่ แอปพลิเคชั่นของพวกเขาคือแพ็คเกจแหล่งข้อมูลปิด คุณซื้ออุปกรณ์ แต่เป็นแหล่งข้อมูลปิด ทำไม GPL ที่ผสมกับ LGPL + MPL กลายเป็นแหล่งข้อมูลปิด? ฉันคิดว่ากฎคืออะไร? หรือฉันผิดหรือข้อมูลต่อไปนี้ไม่ถูกต้อง: GPL: หากคุณใช้ในแอปพลิเคชันของคุณคุณต้องเผยแพร่แอปพลิเคชันของคุณภายใต้ GPL ไม่ได้หมายความว่าคุณไม่สามารถขายได้ (เช่นพวกเขาขายลินุกซ์ซีดี) แต่คุณต้องปล่อยซอร์สโค้ดฟรี นั่นอาจใช้งานได้สำหรับคุณ แต่อาจไม่ใช่ LGPL: หากคุณใช้ในแอปพลิเคชันของคุณคุณยังสามารถมีแอปพลิเคชั่นลิขสิทธิ์ที่เป็นลิขสิทธิ์แบบโอเพ่นซอร์ส แต่ถ้าคุณแก้ไขไลบรารี LGPL คุณต้องปล่อยการปรับเปลี่ยนของคุณภายใต้ LGPL แม้ว่าแอปพลิเคชันของคุณจะยังคงปิดอยู่
11 licensing  gpl  lgpl  mpl 

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