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

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

8
ความสัมพันธ์ระหว่างการวางแนววัตถุและอัลกอริทึม
เมื่อฉันอ่านหนังสืออัลกอริทึมบางเล่มพวกเขาเต็มไปด้วยกระบวนการที่ชาญฉลาดสำหรับปัญหาบางอย่าง (การเรียงลำดับเส้นทางที่สั้นที่สุด) หรือวิธีการทั่วไปบางอย่าง (อัลกอริทึมแบบเรียกซ้ำแบ่งและพิชิตการเขียนโปรแกรมแบบไดนามิก ... ) ฉันพบร่องรอยการเขียนโปรแกรมเชิงวัตถุน้อย (ทำไมพวกเขาถึงมุ่งเน้นกระบวนการมากขึ้น?) จากนั้นฉันก็คิดว่า: ความสัมพันธ์ระหว่างอัลกอริทึมกับ OOP คืออะไร พวกเขาเป็นสองหัวข้ออิสระ? มีปัญหาบางอย่างที่สามารถนำเสนอและแก้ไขโดย OOP เท่านั้น? OOP จะช่วยอัลกอริทึมได้อย่างไร หรือในทิศทางที่มันสามารถส่งผลกระทบต่อมัน?

7
ความรู้ที่ลึกซึ้งของ C ++ จะช่วยคุณในการเรียนรู้ภาษาอื่น ๆ เร็วขึ้น / ง่ายขึ้นหรือไม่ [ปิด]
ปิด คำถามนี้เป็นคำถามความคิดเห็นตาม ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้สามารถตอบข้อเท็จจริงและการอ้างอิงได้โดยแก้ไขโพสต์นี้ ปิดให้บริการใน5 ปีที่ผ่านมา มีความเป็นไปได้ไหมที่ใครบางคนที่เรียนรู้ทุกแง่มุมที่สำคัญของ C ++ และรู้พื้นฐานของภาษาเป็นอย่างดีจะเรียนรู้ภาษาอื่น ๆ (เช่น Python, Perl, Java) เร็วขึ้นและง่ายขึ้นหรือไม่
9 c++ 

2
การพัฒนาบน Android โดยไม่ต้องใช้ Java [ปิด]
ปิด คำถามนี้จะต้องมีมากขึ้นมุ่งเน้น ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้มุ่งเน้นที่ปัญหาเดียวโดยแก้ไขโพสต์นี้ ปิดให้บริการใน5 ปีที่ผ่านมา ตามชื่อของคำถามนี้ฉันขอรอคอยที่จะพัฒนาแอปบนแพลตฟอร์ม Android โดยไม่ต้องใช้ Javaเลย ไม่ได้หมายความว่าฉันมีความพยาบาทต่อภาษาที่สวยงามนี้หรือฉันไม่รู้วิธีพัฒนาแอพใน Java แต่ฉันกำลังพิจารณาว่าใบสมัครของฉันสามารถพัฒนาได้โดยใช้ XML, JavaScript และ Ajax เท่านั้น ดังนั้นฉันยังต้องพึ่งพา Java หรือไม่ มีข้อเสียใด ๆ ที่ไม่ได้ใช้ Java หรือไม่? ฉันจะยังสามารถขยายแอพของฉันในอนาคตได้หรือไม่? ฉันถามคำถามงี่เง่าจริง ๆ ที่นี่หรือไม่ กรุณาช่วยฉันออก แก้ไข: แอพที่ฉันกำลังทำงาน (ยังอยู่บนไวท์บอร์ดต้องการความคิดเห็นของผู้เชี่ยวชาญเกี่ยวกับวิธีการนี้) จะดึงข้อมูลข่าวจากแหล่งข่าวต่างๆและจะแสดงต่อผู้ใช้

2
String [] args vs (String.... args)
เมื่อเขียนโปรแกรมสำหรับ android ทุกครั้งที่ฉันใช้ AsyncTask วิธี doInBackground จะมีลักษณะดังนี้ protected String doInBackground(String... args) แต่เมื่อใช้อาร์กิวเมนต์ที่ใดก็ได้ในบล็อกนั้นฉันสามารถเข้าถึงพวกเขาเหมือนอาร์เรย์สตริงปกติเช่นในโปรแกรมของฉัน @Override protected String doInBackground(String... args) { String details = ""; try { details = facade.getRecipeDetails(args[0]); } catch(Exception ex) { ex.printStackTrace(); } return details; } ซึ่งใช้งานได้ดีและฉันไม่มีปัญหาในการจัดการกับมัน แต่ฉันสงสัยว่าทำไมพวกเขาจึงใช้ (String.... args) แทนที่จะเป็นสตริงปกติ เป็นเพราะในวิธีการโทรคุณก็สามารถเขียนสิ่งที่ชอบ: new AsyncHandler.execute("argument1","argument2","argument3",...) แทนที่จะสร้างอาร์เรย์ใหม่เพื่อส่งต่ออาร์กิวเมนต์? แม้ว่าเราจะเขียนได้ new AsyncHandler().execute(new String[]{"Argument1","Argument2"}); ซึ่งเป็น …
9 java  android 

4
การใช้ struct เพื่อบังคับใช้การตรวจสอบความถูกต้องของชนิดในตัว
วัตถุโดเมนทั่วไปมีคุณสมบัติที่สามารถแสดงโดยชนิดในตัว แต่มีค่าที่ถูกต้องเป็นส่วนย่อยของค่าที่อาจแสดงโดยประเภทนั้น ในกรณีเหล่านี้ค่าสามารถจัดเก็บได้โดยใช้ชนิดในตัว แต่จำเป็นต้องตรวจสอบให้แน่ใจว่าค่านั้นได้รับการตรวจสอบความถูกต้องเสมอ ณ จุดเริ่มต้นมิฉะนั้นเราอาจสิ้นสุดการทำงานด้วยค่าที่ไม่ถูกต้อง วิธีหนึ่งในการแก้ไขปัญหานี้คือการเก็บค่าเป็นแบบกำหนดเองstructซึ่งมีprivate readonlyเขตข้อมูลสำรองเดียวของชนิดในตัวและตัวสร้างที่ตรวจสอบความถูกต้องของค่าที่ให้มา จากนั้นเราสามารถมั่นใจได้ว่าใช้ค่าที่ตรวจสอบได้โดยใช้structประเภทนี้เสมอ นอกจากนี้เรายังสามารถให้บริการตัวดำเนินการส่งจากและไปยังชนิดในตัวเพื่อให้ค่าสามารถเข้าและออกจากประเภทพื้นฐานได้อย่างราบรื่น ยกตัวอย่างสถานการณ์ที่เราต้องการแสดงชื่อของวัตถุโดเมนและค่าที่ถูกต้องคือสตริงใด ๆ ที่มีความยาวระหว่าง 1 ถึง 255 อักขระ เราสามารถนำเสนอสิ่งนี้โดยใช้โครงสร้างต่อไปนี้: public struct ValidatedName : IEquatable<ValidatedName> { private readonly string _value; private ValidatedName(string name) { _value = name; } public static bool IsValid(string name) { return !String.IsNullOrEmpty(name) && name.Length <= 255; } public …
9 c#  .net 

1
ใบอนุญาต CC (0, BY, BY-SA) ส่งผลต่อแอปพลิเคชันแหล่งที่เป็นกรรมสิทธิ์ / ปิดอย่างไร
ฉันคิดว่าคำถามนี้เป็นคำถามที่เฉพาะเจาะจงสำหรับนักพัฒนาอินดีที่จะต้องกังวล คิดว่ามันเป็น "คำชี้แจงสิทธิ์การใช้งาน" หรือ "กรณีการใช้งานในทางปฏิบัติที่มีลิขสิทธิ์" ฉันจำเป็นต้องรู้ว่าจะต้องมีโครงสร้างแพ็คเกจพื้นฐานของโครงการอย่างไรและฉันจะแจกจ่ายได้อย่างไร ฉันเป็นนักพัฒนาแอปฉันยังไม่มีไซต์ฉันจะสร้างรหัส (แพคเกจ (B) จะเป็นสินทรัพย์ที่ยึดตำแหน่งฉันจัดการเพื่อสร้างด้วยทักษะที่ จำกัด มากหรือสินทรัพย์ที่ฉันสามารถซื้อได้ในภายหลังเพื่อให้โครงการของฉันมี ฟีเจอร์ visual / sfx / music ที่ไม่ซ้ำใครหากไม่ขัดแย้งกับ package (C) ในทางใดทางหนึ่งที่อาจทำให้ฉันมีปัญหา) ฉันคิดว่า: A) แพคเกจแอปพลิเคชันที่ปฏิบัติการได้ซึ่งเป็นกรรมสิทธิ์ของไบนารี (ไม่มีการกระจายแหล่งที่มา) B) แพ็คเกจสื่อ / ทรัพย์สินของสื่อที่เป็นกรรมสิทธิ์ (สามารถอัดแน่นด้วย (A)) C) แพ็คเกจสื่อ / สินทรัพย์ของเนื้อหา CC ปัญหาเกี่ยวกับ package (C) คือ: CC-0 เป็นเนื้อหา CC เดียวที่ฉันสามารถสงบได้ ฉันจะต้องแจกจ่ายอย่างน้อยเป็นแพ็คเกจ CC-BY ตามนี้: ถ้าฉันสร้าง -a- …

5
กำจัดวัตถุอย่างถูกต้องเมื่อเซิร์ฟเวอร์ถูกยกเลิก
ฉันกำลังทำงานในโครงการ C ++ ขนาดใหญ่ ประกอบด้วยในเซิร์ฟเวอร์ที่เปิดเผย REST API ให้ส่วนติดต่อที่เรียบง่ายและใช้งานง่ายสำหรับระบบที่กว้างมากซึ่งประกอบด้วยเซิร์ฟเวอร์อื่น ๆ codebase นั้นค่อนข้างใหญ่และซับซ้อนและพัฒนาไปตามกาลเวลาโดยไม่มีการออกแบบที่เหมาะสม งานของฉันคือการใช้คุณสมบัติใหม่และ refactor / แก้ไขรหัสเก่าเพื่อให้มีเสถียรภาพและเชื่อถือได้มากขึ้น ในขณะนี้เซิร์ฟเวอร์สร้างวัตถุที่มีอายุยืนยาวจำนวนหนึ่งซึ่งไม่เคยยกเลิกหรือกำจัดเมื่อกระบวนการยุติลง สิ่งนี้ทำให้ Valgrind เกือบจะใช้การไม่ได้สำหรับการตรวจจับการรั่วไหลเนื่องจากเป็นไปไม่ได้ที่จะแยกแยะระหว่างการรั่วไหลที่ถูกต้องตามกฎหมายนับพันจากการ "ที่อันตราย" ความคิดของฉันคือการตรวจสอบให้แน่ใจว่าวัตถุทั้งหมดถูกกำจัดก่อนที่จะถูกยกเลิก แต่เมื่อฉันทำข้อเสนอนี้เพื่อนร่วมงานและเจ้านายของฉันไม่เห็นด้วยฉันชี้ให้เห็นว่าระบบปฏิบัติการจะเพิ่มหน่วยความจำนั้นต่อไป จะทำให้การปิดเซิร์ฟเวอร์ช้าลง (ซึ่งในขณะนี้เป็นการเรียกไปยังstd::exit) ฉันตอบว่าการมีขั้นตอนการปิด "สะอาด" ไม่ได้แปลว่าต้องใช้ เราสามารถโทรstd::quick_exitหรือkill -9ดำเนินการได้ตลอดเวลาหากเรารู้สึกใจร้อน พวกเขาตอบว่า "daemons Linux และกระบวนการส่วนใหญ่ไม่ต้องกังวลเรื่องการเพิ่มหน่วยความจำเมื่อปิดเครื่อง" ในขณะที่ฉันเห็นว่ามันเป็นความจริงที่ว่าโครงการของเราต้องการการแก้ไขข้อบกพร่องของหน่วยความจำที่แม่นยำเนื่องจากฉันได้พบความผิดพลาดของหน่วยความจำดับเบิ้ลอิสระและตัวแปรเริ่มต้น คุณคิดยังไง? ฉันกำลังพยายามอย่างไม่มีจุดหมายหรือไม่? ถ้าไม่ฉันจะโน้มน้าวใจเพื่อนร่วมงานและเจ้านายของฉันได้อย่างไร ถ้าเป็นเช่นนั้นทำไมและควรทำอย่างไร
9 c++  debugging  memory 

3
ฉันควรเก็บข้อมูลทดสอบไว้ที่ไหน?
ฉันมีการทดสอบหน่วยขนาดเล็กที่ใช้ตัวอย่างข้อมูลขนาดเล็กจากชุดข้อมูลจริง ฉันต้องการทดสอบโปรแกรมของฉันกับชุดข้อมูลแบบเต็มด้วยเหตุผลมากมาย ปัญหาเดียวคือชุดข้อมูลจริงเพียงชุดเดียวมีขนาดประมาณ 5GB ฉันไม่พบตัวเลขที่ยากสำหรับที่เก็บ Git ใด ๆ แต่ดูเหมือนว่ามากเกินไป ตามโพสต์โปรแกรมเมอร์นี้ฉันควรเก็บข้อมูลทั้งหมดของฉันที่จำเป็นในการทดสอบโครงการในพื้นที่เก็บข้อมูล วิธีแก้ปัญหาที่ทีมของฉันนำมาใช้คือโครงการมีไฟล์ที่มีเส้นทางไปยังระบบไฟล์ที่เชื่อมต่อกับเครือข่ายที่เก็บข้อมูลการทดสอบของเรา ไฟล์ถูกละเว้น Git ฉันรู้สึกว่านี่เป็นวิธีที่ไม่สมบูรณ์ด้วยสองเหตุผล เมื่อ NAS ไม่ทำงานช้าหรือลงกว่าที่เราไม่สามารถทำการทดสอบเต็มรูปแบบได้ เหตุผลที่สองคือเมื่อมีคนโคลนที่เก็บข้อมูลครั้งแรกหน่วยทดสอบล้มเหลวดังนั้นพวกเขาจึงต้องคิดหาวิธีการเมานท์สิ่งต่าง ๆ ด้วยชื่อที่แน่นอนและไวยากรณ์ที่ใช้สร้างไฟล์พา ธ ทดสอบ ดังนั้นคำถามของฉันคือสองเท่า ข้อมูลที่เก็บในการควบคุมการแก้ไขมีจำนวนข้อมูลเท่าใด วิธีที่ดีกว่าในการจัดการข้อมูลทดสอบจำนวนมากคืออะไร
9 testing 

1
ทำไม GCC ใช้ไวยากรณ์ AT&T เป็นค่าเริ่มต้น
ฉันคิดว่าชื่อกล่าวมันทั้งหมด :) มีเหตุผลในทางปฏิบัติที่เฉพาะเจาะจงหรือไม่ (ฉันคิดว่าส่วนใหญ่เป็นประวัติศาสตร์ แต่ฉันไม่สามารถหาได้ด้วยตนเอง) ทำไม GCC ใช้ไวยากรณ์ AT & T / GAS หมายเหตุ: ฉันรู้ว่านี่เป็นเพียงค่าเริ่มต้นและคุณสามารถเปลี่ยนได้ หมายเหตุ 2: ฉันพบว่า "ไวยากรณ์ของ Intel" สามารถอ่านได้มากขึ้นด้วยเหตุนี้มันจึงทำให้ฉันประหลาดใจ
9 history  assembly  gcc 

5
การแย่งชิง: มันเป็นการดีสำหรับการออกแบบ / UX ของเรื่องราวของผู้ใช้ที่จะเกิดขึ้นในการวิ่งเช่นเดียวกับการใช้งาน
ขณะนี้ฉันกำลังวิ่ง (สองสัปดาห์) ที่นักออกแบบมอบหมายให้กำหนดข้อกำหนดและ UX ของเรื่องราวผู้ใช้เฉพาะ ในการวิ่งเหมือนกันฉันจะใช้การออกแบบนี้ ในระหว่างการวางแผนการวิ่งฉันต้องเดาอย่างหนักว่าเรื่องราวของผู้ใช้ที่ไม่ได้กำหนดจะต้องใช้เวลานานเท่าใด วันนี้ฉันได้รับการออกแบบในที่สุด น่าเสียดายที่การออกแบบไม่สมบูรณ์ / คลุมเครือและคล้ายกับความต้องการของลูกค้ามากกว่าการออกแบบ อย่างไรก็ตามจากนี้ฉันยังคงเห็นว่าฉันยังไม่ได้ประมาณพอ เพื่อทำให้เรื่องแย่ลงนี่ไม่ใช่ครั้งแรก ในการวิ่งครั้งสุดท้ายสิ่งเดียวกันก็เกิดขึ้นอย่างแน่นอน ฉันตั้งค่าสถานะมันในการหวนกลับของเราและอาจารย์การต่อสู้ไม่มีคำตอบของวิธีการแก้ปัญหานี้แทนที่จะพูดว่า "นั่นเป็นเพียงการพัฒนาสำหรับคุณ" เขากระแทกอย่างน่าขันถ้าการเผาไหม้ไม่ได้อยู่ที่เป้าหมาย ... ตอนนี้ฉันจะต้องถาม / ทำงานกับนักออกแบบเพื่อให้งานของเขาเสร็จ สิ่งนี้จะทำให้ฉันหมดแรงเมื่อฉันทำภารกิจอื่นทั้งหมดของฉันเสร็จแล้ว ดังนั้นคำถามของฉันคือ A) คุณจัดการการพึ่งพาในการวางแผนการวิ่งอย่างไร แก้ไข: มันใช้ได้หรือไม่สำหรับการออกแบบ / UX ของเรื่องราวของผู้ใช้ที่จะเกิดขึ้นในการวิ่งเช่นเดียวกับการใช้งาน B) ฉันจะเข้าใกล้การวิ่งได้อย่างไร? ประเมินเรื่องราวของผู้ใช้ปัจจุบันอีกครั้งและดูการเบิร์นอินกลายเป็นเบิร์นอัพและดูว่าไร้ความสามารถ / ไม่ก่อผล หรือเพิ่มงานใหม่ให้กับการวิ่งปัจจุบันตามแนวของ "ช่วยให้นักออกแบบสร้างการออกแบบที่เหมาะสม"
9 agile  scrum  planning 

2
การทดสอบหน่วยเฟรมเวิร์ก stateful เช่น Phaser?
TL; DRฉันต้องการความช่วยเหลือในการระบุเทคนิคเพื่อลดความซับซ้อนของการทดสอบหน่วยอัตโนมัติเมื่อทำงานภายในกรอบงานที่เป็นมลรัฐ พื้นหลัง: ฉันกำลังเขียนเกมใน typescript และเป็นกรอบ Phaser Phaser อธิบายว่าตัวเองเป็นเกมเฟรมเวิร์ก HTML5 ที่พยายามอย่างน้อยที่สุดเพื่อ จำกัด โครงสร้างของรหัสของคุณ สิ่งนี้มาพร้อมกับการแลกเปลี่ยนไม่กี่อย่างนั่นคือมีPhaser God-object อยู่ซึ่งอนุญาตให้คุณเข้าถึงทุกสิ่ง: แคชฟิสิกส์สถานะเกมและอื่น ๆ สถานะนี้ทำให้ยากต่อการทดสอบการใช้งานมากมายเช่นไทล์แมปของฉัน ลองดูตัวอย่าง: ที่นี่ฉันกำลังทดสอบว่าเลเยอร์ไทล์ของฉันถูกต้องหรือไม่และฉันสามารถระบุกำแพงและสิ่งมีชีวิตภายในไทล์แมปของฉัน: export class TilemapTest extends tsUnit.TestClass { constructor() { super(); this.map = this.mapLoader.load("maze", this.manifest, this.mazeMapDefinition); this.parameterizeUnitTest(this.isWall, [ [{ x: 0, y: 0 }, true], [{ x: 1, y: 1 }, …

4
การแยกการดึงข้อมูลและวัตถุธุรกิจระหว่างชั้น DAL และ BLL
ฉันได้ทำการวิจัยก่อนโพสต์คำถามนี้ ในบรรดาคำถามหรือโพสต์อื่น ๆ ข้อใดข้อหนึ่งมีให้ด้านล่าง ฉันไม่สามารถทราบวิธีการกำหนด .. วัตถุธุรกิจภายใน Data Access Layer ฉันมีที่เก็บและชั้นธุรกิจเรียกที่เก็บเพื่อเรียกข้อมูล ตัวอย่างเช่นสมมติว่าฉันมีคลาสต่อไปนี้สำหรับ BLL และ DAL: class BllCustomer { public int CustomerId {get; set;} public String Name {get; set;} public BllAddress Address {get; set;} } class BllAddress { public int AddressId {get; set;} public String Street {get; set;} public String City …

1
ออกแบบสำหรับกรอบแอปพลิเคชันที่จะช่วยให้แต่ละการใช้งานสามารถปรับแต่งส่วนต่างๆของ UI
ฉันได้รับมอบหมายให้ออกแบบเฟรมเวิร์กแอปพลิเคชันที่จะอนุญาตให้แต่ละการปรับใช้ส่วนต่าง ๆ ของส่วนติดต่อผู้ใช้เอง ตัวอย่างหนึ่งดังกล่าวอาจเป็นไปได้ว่าการใช้งาน (ลองเรียกว่าไคลเอนต์นับจากนี้เป็นต้นไป) สามารถกำหนดเซลล์มุมมองคอลเลกชันที่จะกลับมาสำหรับหน้าจอเฉพาะ เฟรมเวิร์กมีหน้าที่รับผิดชอบในการจำหน่ายวัตถุที่เหมาะสมเพื่อให้การสร้างแอปง่ายขึ้นมากเนื่องจากเราจะสร้างอินสแตนซ์ที่ดูคล้ายกันหลายครั้ง แนวทางปัจจุบันของฉันในกรอบการทำงานคือการออกแบบตัวควบคุมประสานงานที่รับผิดชอบการนำเสนอและเลิกจ้างกิจกรรมทั้งหมดในแอพ ตัวควบคุมการประสานงานเริ่มต้นจะแสดงตัวควบคุมมุมมองเริ่มต้นทั้งหมดภายในกรอบงานที่ทำงานทั้งหมดที่เกี่ยวข้องโดยไม่จำเป็นต้องมี UI ที่กำหนดค่าไว้ ตัวอย่างเช่น: หนึ่งคอนโทรลเลอร์จะแสดงมุมมองคอลเลกชันที่มีเซลล์แม่แบบและไม่มีอะไรพิเศษ ประโยชน์ของการออกแบบนี้คือการลบการเชื่อมต่อระหว่างตัวควบคุมและยังช่วยให้ลูกค้าสามารถแทนที่ผู้ประสานงานเริ่มต้นและส่งกลับตัวควบคุมมุมมองใหม่ทั้งหมดสำหรับงานเฉพาะ ปัญหาที่ฉันมีคือฉันควรออกแบบกรอบงานนี้อย่างไรเพื่อให้ลูกค้าสามารถเพิ่ม UI ที่กำหนดเองของตัวเองลงในแอพได้ แนวทางที่หนึ่ง ทำให้เฟรมเวิร์กจำเป็นต้องใช้มุมมองจากโรงงานและให้มุมมองนี้จากโรงงานรับผิดชอบในการจำหน่ายมุมมองที่เกี่ยวข้องทั้งหมด ดังนั้นใน App Delegate เราอาจบังคับให้ไคลเอนต์สร้าง CollectionViewCellFactory เป็นต้นและอินเทอร์เฟซจะกำหนดเซลล์ทั้งหมดที่คลาสที่สอดคล้องกันใด ๆ จะต้องจัดหา ฉันสืบทอดฐานรหัสด้วยการออกแบบนี้และย้ายออกไปจากที่นี่เพราะมันเป็นนามธรรมและปรับแต่งได้ มันมาพร้อมกับโรงงานมากมายสำหรับทุกแง่มุมของแอพและจะเพิ่มวันเข้าสู่เวลาตั้งค่าของแอพทุกตัว แนวทางที่สอง แต่ละตัวควบคุมมุมมองระบุ hooks subclassing หรือ setup API ที่จะอนุญาตให้กำหนด UI คลาสแบบกำหนดเองเหล่านี้ในเวลาทำงาน (คล้ายกับวิธีที่ UISplitViewController อนุญาตให้ผู้เรียกตั้งค่าตัวควบคุมโดยใช้คุณสมบัติ viewControllers) ในการทำสิ่งนี้ลูกค้าแต่ละคนจะทำการ subclass Base ประสานงานควบคุมและในแต่ละงานนำเสนอของคอนโทรลเลอร์ ตั้งค่าที่เหมาะสมลงบนคอนโทรลเลอร์เพื่อให้ได้ UI ที่ต้องการ …

1
แหล่งดั้งเดิมของ `(เมล็ด * 9301 + 49297) อัลกอริธึม% 233280` แบบสุ่มหรือไม่
หากคุณค้นหาตัวอย่างของการสร้างตัวสร้างตัวเลขแบบสุ่ม (หลอก) คุณจะพบสิ่งเช่นนี้ (ตัวอย่างเฉพาะhttp://indiegamr.com/generate-repeatable-random-numbers-in-js/ ): // the initial seed Math.seed = 6; // in order to work 'Math.seed' must NOT be undefined, // so in any case, you HAVE to provide a Math.seed Math.seededRandom = function(max, min) { max = max || 1; min = min || 0; Math.seed = …
9 history  random 

4
ฉันต้องเปิดซอร์สโค้ดหรือไม่หากฉันใช้ซอฟต์แวร์ลิขสิทธิ์ GPLv2 เพื่อรับข้อมูล
ฉันกำลังทำงานในโครงการปฏิทินด้วยตัวเอง ในโครงการนี้ผมใช้สวิส Ephemeris มันได้รับใบอนุญาตภายใต้ GPLv2 และเชิงพาณิชย์ นักพัฒนาซอฟต์แวร์มีสิทธิ์ในการเผยแพร่ซอฟต์แวร์ตามที่เขา / เธอต้องการ แต่นี่เป็นโครงการส่วนตัวของฉันฉันจะใช้สิทธิ์การใช้งาน GPLv2 ด้วยการใช้ไลบรารีและไฟล์ข้อมูลฉันกำลังสร้างข้อมูลสำหรับปฏิทิน ในอนาคตฉันจะเผยแพร่ปฏิทินเหล่านี้ในเว็บไซต์ได้อย่างอิสระ ในกระบวนการนี้เห็นได้ชัดว่าฉันต้องแก้ไขห้องสมุดเขียนรหัสของตัวเองและงานบ้านอื่น ๆ ฉันจะเปิดซอร์สโค้ดสุดท้ายของฉันไหม ฉันไม่มีปัญหาใด ๆ ที่จะทำให้เป็นสาธารณะ แต่ฉันถามถ้าฉันจะ แก้ไข: จากคำตอบโดยละเอียดจาก @apsillers & คนอื่น ๆ เป็นที่ชัดเจนสำหรับฉันว่าฉันจะไม่ต้องทำ GPL ซอฟต์แวร์ของฉันหรือให้รหัสต้นฉบับแก่ผู้เยี่ยมชมเว็บไซต์ แม้ว่าฉันจะทำให้ GPL ข้อมูลที่แสดงของฉันโดยประโยคเป็นข้อมูล Swiss Ephemeris ที่ได้รับอนุญาตภายใต้ GPLv2 หรือใหม่กว่าและเชิงพาณิชย์: โดยทั่วไปเมื่อโปรแกรมแปลอินพุตเป็นรูปแบบอื่นสถานะลิขสิทธิ์ของเอาต์พุตจะรับช่วงเวลาของอินพุตที่สร้างจาก

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