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

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

4
node.js เหมาะสมกับการประมวลผลเบื้องหลังหรือไม่?
ฉันเรียนรู้อย่างช้า ๆnode.jsและมีโครงการเล็ก ๆ ที่ฉันต้องการเริ่ม โครงการจะมีกระบวนการพื้นหลังจำนวนมาก (การดาวน์โหลดข้อมูลจากไซต์ภายนอกการแยกไฟล์ CSV และอื่น ๆ ) "ชนะ" ที่ยิ่งใหญ่สำหรับฉันและโหนดคือความจริงที่ว่ามันใช้ JavaScript สำหรับทั้งไคลเอนต์และเซิร์ฟเวอร์ ฉันใช้รหัสใน Java และ JavaScript ในงานประจำวันของฉัน แต่ฉันก็ยังเก่งที่ Ruby แต่อย่างที่ฉันบอกดูเหมือนว่ามันน่าดึงดูดใจที่จะใช้ภาษาใดภาษาหนึ่งในทุกที่และ JS ดูเหมือนจะเหมาะสมกับบิล อย่างไรก็ตามฉันไม่ได้มีประสบการณ์มากในการใช้งาน JS สำหรับการทำงานแบ็กกราวด์ ดูเหมือนว่าทับทิมจะเก่งกว่านี้ และฉันไม่ได้ต่อต้านการใช้งาน แล้วคุณมีความคิดอย่างไรที่จะทำ JS 100% สำหรับสิ่งนี้ ฉันตระหนักว่าโครงการขนาดใหญ่มากต้องการโซลูชันที่กำหนดเอง ฉันแค่สงสัยว่ามันคุ้มค่ากับความพยายาม หรือฉันควรติดรูบี้กับงานบ้านแบบนั้นเหรอ? ความเห็นชื่นชม ขอบคุณ

3
มีกลยุทธ์ในการค้นหาบริการ REST โดยใช้ HATEOAS หรือไม่
เมื่อสร้างบริการ REST ด้วยข้อ จำกัดHATEOASมันง่ายมากที่จะโฆษณาการมีอยู่ของทรัพยากรผ่านการเชื่อมโยง คุณทำGETถึงรูทของเว็บไซต์ของฉันและฉันตอบกลับด้วยเอกสารรูทที่แสดงรายการทรัพยากรระดับแรกทั้งหมด: { users: { href: "/users" } questions { href: "/questions" } } ลูกค้าที่เข้าใจวิธีการอ่านhrefค่าเหล่านี้สามารถดำเนินการGETตามคำขอและค้นหาทรัพยากรปัจจุบันทั้งหมดที่มีอยู่ในแอปพลิเคชัน สิ่งนี้ทำงานได้ดีสำหรับสถานการณ์การค้นหาขั้นพื้นฐาน แต่ไม่ได้ระบุว่าทรัพยากรสามารถสืบค้นได้หรือไม่ ตัวอย่างเช่นอาจมีเหตุผลที่จะดำเนินการ: GET /users?surname=Smith มีรูปแบบใดบ้างที่สามารถแสดงความสามารถในการสืบค้นด้วยข้อมูลที่เพียงพอที่ลูกค้าสามารถสร้างแบบสอบถามแบบเชื่อมโยงกันโดยไม่จำเป็นต้องมีความรู้มาก่อนเกี่ยวกับทรัพยากรหรือไม่ นอกจากนี้ยังมีวิธีที่จะแสดงว่าลูกค้าได้รับอนุญาตให้ดำเนินการPOSTไปยังสถานที่ที่กำหนดพร้อมกับสถานที่ที่คาดหวัง ตัวอย่างเช่นอาจเป็นไปได้ว่าลูกค้าจะทำสิ่งต่อไปนี้เพื่อสร้างทรัพยากรคำถามใหม่: POST /questions { title: "Are there strategies for discovering REST services using HATEOAS?", body: "When building a REST service with the HATEOAS constraint, it's …
10 design  rest  hateoas 

7
เมื่อใดที่เริ่มคิดเกี่ยวกับความยืดหยุ่น [ปิด]
ปิด คำถามนี้เป็นคำถามความคิดเห็นตาม ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้สามารถตอบข้อเท็จจริงและการอ้างอิงได้โดยแก้ไขโพสต์นี้ ปิดให้บริการใน6 ปีที่ผ่านมา ฉันมีปัญหาตลก แต่ก็แย่มาก ฉันกำลังจะเปิดตัวแอพ (iPhone) ใหม่ มันเป็นเกมแบบเล่นพร้อมกันหลายคนที่ทำงานบนแบ็คเอนด์ที่กำหนดเองของฉัน แต่ฉันกลัวที่จะเปิดตัว ด้วยเหตุผลบางอย่างฉันคิดว่ามันอาจกลายเป็นสิ่งที่ยิ่งใหญ่และความนิยมของมันจะทำลายฐานข้อมูล MySQL + เซิร์ฟเวอร์เดี่ยวที่โดดเดี่ยวของฉัน ในมือข้างหนึ่งฉันคิดว่าถ้ามันเพิ่มขึ้นฉันควรเตรียมพร้อมและมีโครงสร้างพื้นฐานที่ปรับขนาดได้แล้ว ในทางกลับกันฉันแค่รู้สึกอยากจะนำมันออกไปสู่โลกและดูว่าเกิดอะไรขึ้น ฉันมักจะอ่านสิ่งต่าง ๆ เช่น "การเพิ่มประสิทธิภาพก่อนวัยอันควรเป็นรากของความชั่วร้ายทั้งหมด" หรือผู้คนที่บอกว่าคุณควรสร้างเกมนักฆ่าของคุณตอนนี้ด้วยเครื่องมือที่พร้อมใช้งานและกังวลเรื่องอื่น ๆ เช่นความยืดหยุ่นในภายหลัง ฉันชอบที่จะได้ยินความคิดเห็นเกี่ยวกับเรื่องนี้จากผู้เชี่ยวชาญหรือผู้ที่มีประสบการณ์เกี่ยวกับเรื่องนี้ ขอบคุณ!

1
วิธีโน้มน้าวเจ้านายให้ซื้อ Visual Studio 2012 Professional [ปิด]
ปิด. คำถามนี้เป็นคำถามปิดหัวข้อ ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้เป็นหัวข้อสำหรับ Software Engineering Stack Exchange ปิดให้บริการใน6 ปีที่ผ่านมา ข้อได้เปรียบหลักคือการใช้ ReSharper และโปรแกรมเสริมอื่น ๆ แต่เราจำเป็นต้องสร้างข้อโต้แย้งที่น่าเชื่อถือสำหรับการซื้อ Visual Studio 2012 Professional ขณะนี้เรากำลังใช้ Visual Studio 2012 Express สำหรับ Windows มันค่อนข้างดี แต่ยากที่จะเปลี่ยนจากการใช้เวอร์ชัน Professional แบบเต็มในอดีต จนถึงตอนนี้ทีมได้รวบรวมรายการต่อไปนี้: ฟังก์ชันแยกส่วนขาดหายไป มีประโยชน์มากสำหรับรหัส SOLID ที่สะอาด ไม่มีการสนับสนุนเพิ่มเติม ไม่สามารถติดตั้ง StyleCop หรือเครื่องมือเพิ่มประสิทธิภาพ AnkhSvn, เครื่องตรวจตัวสะกด, เครื่องมือเพิ่มประสิทธิภาพการผลิต, GhostDoc, เครื่องมือแก้ไข Regex, PowerCommands ผู้ช่วยยกเว้นมีข้อ จำกัด ในรุ่นด่วน …

5
แนวคิด REST API
ฉันมีคำถามสามข้อเกี่ยวกับการออกแบบ REST API ที่ฉันหวังว่าบางคนสามารถทำให้เข้าใจได้ ฉันค้นหาอย่างไม่ลดละเป็นเวลาหลายชั่วโมง แต่ไม่พบคำตอบสำหรับคำถามของฉันที่ใดก็ได้ (บางทีฉันอาจไม่รู้ว่าต้องค้นหาอะไร) คำถามที่ 1 คำถามแรกของฉันเกี่ยวกับการกระทำ / RPC ฉันพัฒนา REST API มาระยะหนึ่งแล้วและฉันเคยคิดถึงสิ่งต่าง ๆ ในแง่ของการรวบรวมและทรัพยากร อย่างไรก็ตามฉันได้เจอสองสามกรณีที่กระบวนทัศน์ไม่ได้นำไปใช้และฉันสงสัยว่ามีวิธีที่จะกระทบยอดกับกระบวนทัศน์ REST หรือไม่ โดยเฉพาะฉันมีกรณีที่การแก้ไขทรัพยากรทำให้อีเมลถูกสร้างขึ้น อย่างไรก็ตามในภายหลังผู้ใช้สามารถระบุได้โดยเฉพาะว่าพวกเขาต้องการส่งอีเมลที่ถูกส่งไปก่อนหน้านี้อีกครั้ง เมื่อส่งอีเมลอีกครั้งจะไม่มีการแก้ไขทรัพยากร ไม่มีการเปลี่ยนแปลงสถานะ มันเป็นการกระทำที่ต้องเกิดขึ้น การดำเนินการจะเชื่อมโยงกับประเภททรัพยากรเฉพาะ เหมาะสมไหมที่จะรวมการเรียกการดำเนินการบางอย่างกับ URI ทรัพยากร (เช่น/collection/123?action=resendEmail)? จะเป็นการดีกว่าถ้าระบุการกระทำและส่งรหัสทรัพยากรให้ (เช่น/collection/resendEmail?id=123) นี่เป็นวิธีที่ผิดที่จะเกิดขึ้นหรือไม่? ตามเนื้อผ้า (อย่างน้อยด้วย HTTP) การดำเนินการที่ดำเนินการอยู่เป็นวิธีการร้องขอ (GET, POST, PUT, DELETE) แต่สิ่งเหล่านั้นไม่อนุญาตให้มีการกระทำที่กำหนดเองกับทรัพยากร คำถามที่ 2 ฉันใช้ส่วนการสอบถามของ URL เพื่อกรองชุดของทรัพยากรที่ส่งคืนเมื่อทำการสืบค้นคอลเลกชัน (เช่น/collection?someField=someval) ภายในตัวควบคุม …
10 api  rest 

2
วิธีการตรวจสอบความสำเร็จในการเล่นเกม?
ฉันโพสต์สิ่งนี้ไปยัง stackoverflow โดยไม่ตั้งใจและตอนนี้โพสต์ที่นี่ตามคำแนะนำในเว็บไซต์นั้น ... นี่เป็นคำถามเชิงแนวคิดระดับสูงมาก พูดในแอปพลิเคชันซอฟต์แวร์ฉันมีการกระทำที่แตกต่างกัน 4 อย่างเช่นอัปโหลดแชร์แสดงความคิดเห็นและกดไลค์ และฉันต้องการมอบป้ายความสำเร็จให้กับผู้ใช้ที่ชอบ: Rookie - อัปโหลด 5 ไฟล์แรกของคุณ อัปโหลด Junkie - อัปโหลด 20 ไฟล์ใน 1 วัน ซอฟต์แวร์รวบรวมข้อมูลกลางคืน - อัปโหลดไฟล์หลังเที่ยงคืน Share-a-holic - แบ่งปัน 10 ไฟล์ที่แตกต่างกัน Likes-Everything - ชอบ 20 ไฟล์ที่แตกต่างกัน คุณได้รับความคิด เขาเป็นวิธีที่ดีที่สุดในการตรวจสอบและดูว่าผู้ใช้ได้รับความสำเร็จโดยเฉพาะโดยไม่ต้องรวบรวมตรรกะเพื่อความสำเร็จในรหัสของฉันหรือไม่ และ .. - รักษาความสามารถในการเพิ่มความสำเร็จใหม่หลังการคอมไพล์ (xml หรือ db) - ความสำเร็จต้องติดตามการกระทำที่เฉพาะเจาะจงจำนวนครั้งและเกณฑ์เพิ่มเติม (เช่นเวลาของวัน) - การตรวจจับควรใกล้เวลาจริงเพื่อให้ผู้ใช้แจ้งเตือน เกือบจะในทันทีเมื่อสำเร็จลุล่วง …

6
วิธีบันทึกระหว่างการทำงานร่วมกันแบบเรียลไทม์
ฉันต้องการให้ผู้ใช้หลายคนแก้ไขเอกสารเดียวกัน ปัญหาที่ฉันเผชิญคือเมื่อผู้ใช้ใหม่เข้าร่วมเขาอาจเห็นเอกสารที่ล้าสมัย ฉันจะแน่ใจได้อย่างไรว่าผู้ใช้ใหม่ได้รับการเปลี่ยนแปลงล่าสุด วิธีแก้ปัญหาที่ฉันคิด: ประหยัดทุกการเปลี่ยนแปลง ฉันไม่ชอบโซลูชันนี้เพราะจะทำให้ช้าลงใน UI และทำให้โหลดบน db เมื่อผู้ใช้ใหม่เข้าร่วมทริกเกอร์บันทึกลูกค้าอื่น ๆ ทั้งหมด หลังจากบันทึกไคลเอนต์อื่นแล้วให้โหลดเอกสาร ด้วยสิ่งนี้จะยังคงไม่สอดคล้องกัน ข้อเสนอแนะอื่น ๆ จะเป็นประโยชน์ อัปเดต:หลังจากดูวิธีการแก้ปัญหาที่แนะนำแล้ว Google Realtime API ฉันพบว่า: ผู้ใช้แอปของคุณจะต้องมี Google ไดรฟ์และให้คุณเข้าถึงไดรฟ์ของพวกเขา สิ่งนี้อาจทำให้เกิดการไหลของ UI ที่น่าอึดอัดใจที่สุดหรือป้องกันผู้ใช้ที่ไม่มี Google Drive จากการใช้คุณสมบัติเรียลไทม์ การตั้งค่าการแชร์ทั้งหมดที่อยู่ข้างคุณต้องทำซ้ำสำหรับเอกสาร Google อัปเดต 2:เพื่อบรรลุเป้าหมายฉันไปกับFirebase ของ Google

3
การใช้ SQL Server เปลี่ยนการดักจับข้อมูลด้วยสคีมาที่เปลี่ยนแปลงบ่อยครั้ง
เรากำลังพิจารณาที่จะเปิดใช้งานการจับข้อมูลการเปลี่ยนแปลงเซิร์ฟเวอร์ SQL สำหรับระบบย่อยใหม่ที่เรากำลังสร้าง มันไม่ได้เป็นเพราะเราต้องการมัน แต่เราถูกผลักดันให้มีการตรวจสอบย้อนหลังอย่างสมบูรณ์และ CDC จะแก้ปัญหานี้ได้อย่างดีด้วยความพยายามขั้นต่ำในส่วนของเรา เรากำลังติดตามกระบวนการพัฒนาที่คล่องตัวซึ่งในกรณีนี้หมายความว่าเราทำการเปลี่ยนแปลงโครงสร้างฐานข้อมูลบ่อยครั้งเช่นการเพิ่มคอลัมน์ใหม่การย้ายข้อมูลไปยังคอลัมน์อื่น ๆ ฯลฯ เราทำการทดสอบขนาดเล็กที่เราสร้างตารางเปิดใช้งาน CDC สำหรับตารางนั้นแล้วเพิ่มคอลัมน์ใหม่ลงในตาราง การเปลี่ยนแปลงในคอลัมน์ใหม่ไม่ได้ลงทะเบียนในตาราง CDC มีกลไกในการอัปเดตตาราง CDC เป็นสคีมาใหม่หรือไม่และมีวิธีปฏิบัติที่ดีที่สุดสำหรับวิธีที่คุณจัดการกับข้อมูลที่บันทึกเมื่อทำการย้ายสคีมาฐานข้อมูลหรือไม่

3
วิธีซิงค์นาฬิกาผ่านเครือข่ายเพื่อการพัฒนาเกม
ฉันกำลังเขียนเกมที่มีหลายแง่มุมตามเวลา ฉันใช้เวลาเพื่อช่วยประเมินตำแหน่งผู้เล่นเมื่อเครือข่ายแผงลอยและแพ็กเก็ตไม่ผ่าน (และเวลาระหว่างการรับแพ็คเก็ตและไม่ได้) มันเป็นเกมประเภท Pacman ในแง่ที่ว่าผู้เล่นเลือกทิศทางและไม่สามารถหยุดเคลื่อนไหวได้ดังนั้นระบบจึงมีเหตุผล (หรืออย่างน้อยฉันก็คิดว่ามันเป็นอย่างนั้น) ดังนั้นฉันมีสองคำถาม: 1) ฉันจะซิงค์นาฬิกาของเกมตั้งแต่เริ่มต้นอย่างไรเนื่องจากเครือข่ายล่าช้า 2) ไม่เป็นไรหรือไม่ที่จะซิงค์พวกเขาและเพียงสมมติว่าพวกเขาเหมือนกัน (รหัสของฉันคือเขตเวลาอิสระ) ไม่ใช่เกมที่มีการแข่งขันสูงที่ผู้คนจะเปลี่ยนนาฬิกาเป็นโกง แต่ก็ยัง เกมกำลังเขียนโปรแกรมใน Java และ Python (การพัฒนาแบบขนานเป็นโครงการ)

1
การพิมพ์เป็ดการตรวจสอบข้อมูลและการเขียนโปรแกรมที่เหมาะสมใน Python
เกี่ยวกับการพิมพ์เป็ด : การพิมพ์เป็ดนั้นได้รับความช่วยเหลือจากการไม่ได้ทดสอบประเภทของข้อโต้แย้งในวิธีการและร่างกายโดยอาศัยเอกสารประกอบรหัสที่ชัดเจนและการทดสอบเพื่อให้แน่ใจว่าการใช้งานถูกต้อง เกี่ยวกับการตรวจสอบข้อโต้แย้ง (EAFP: ง่ายกว่าที่จะขอการอภัยมากกว่าการอนุญาต) ตัวอย่างที่ดัดแปลงจากที่นี่ : ... มันเป็นสิ่งที่ต้องทำยิ่งกว่า: def my_method(self, key): try: value = self.a_dict[member] except TypeError: # do something else ซึ่งหมายความว่าทุกคนที่ใช้รหัสของคุณไม่จำเป็นต้องใช้พจนานุกรมจริงหรือคลาสย่อย - พวกเขาสามารถใช้วัตถุใด ๆ ที่ใช้อินเทอร์เฟซการแมป น่าเสียดายในทางปฏิบัติมันไม่ง่ายอย่างนั้น ถ้าสมาชิกในตัวอย่างด้านบนอาจเป็นจำนวนเต็ม จำนวนเต็มไม่เปลี่ยนรูปดังนั้นจึงเหมาะสมอย่างยิ่งที่จะใช้เป็นคีย์พจนานุกรม อย่างไรก็ตามพวกมันยังใช้เพื่อจัดทำดัชนีวัตถุประเภทลำดับ หากสมาชิกเกิดขึ้นเป็นจำนวนเต็มตัวอย่างที่สองสามารถผ่านรายการและสตริงเช่นเดียวกับพจนานุกรม เกี่ยวกับการเขียนโปรแกรมที่แน่วแน่ : การยืนยันเป็นวิธีที่เป็นระบบในการตรวจสอบว่าสถานะภายในของโปรแกรมเป็นไปตามที่โปรแกรมเมอร์คาดไว้โดยมีเป้าหมายในการจับข้อบกพร่อง โดยเฉพาะอย่างยิ่งพวกเขาดีสำหรับการจับสมมติฐานที่ผิดพลาดที่เกิดขึ้นในขณะที่เขียนรหัสหรือใช้อินเทอร์เฟซโดยโปรแกรมเมอร์อื่น นอกจากนี้พวกเขาสามารถทำหน้าที่เป็นเอกสารในบรรทัดบางส่วนโดยทำให้สมมติฐานของโปรแกรมเมอร์ชัดเจน ("ชัดเจนดีกว่าโดยนัย") แนวคิดที่กล่าวถึงบางครั้งมีข้อขัดแย้งดังนั้นฉันจึงพิจารณาปัจจัยต่อไปนี้เมื่อเลือกว่าฉันไม่ได้ทำการตรวจสอบความถูกต้องของข้อมูลเลยให้ทำการตรวจสอบความถูกต้องอย่างแรงหรือใช้การยืนยัน: การตรวจสอบที่แข็งแกร่ง โดยการตรวจสอบที่แข็งแกร่งฉันหมายถึงการเพิ่มข้อยกเว้นที่กำหนดเอง ( ApiErrorตัวอย่าง) หากฟังก์ชัน / เมธอดของฉันเป็นส่วนหนึ่งของ API สาธารณะจะเป็นการดีกว่าถ้าตรวจสอบอาร์กิวเมนต์เพื่อแสดงข้อความแสดงข้อผิดพลาดที่ดีเกี่ยวกับประเภทที่ไม่คาดคิด โดยการตรวจสอบประเภทที่ฉันไม่ได้หมายถึงการใช้เพียงอย่างเดียวisinstanceแต่ยังถ้าวัตถุผ่านการสนับสนุนอินเทอร์เฟซที่จำเป็น …

4
ฉันควรรวมอะไรไว้ในที่เก็บของฉันจากโครงการ IDE
ฉันต้องการเพิ่มโครงการซึ่งในกรณีนี้ถูกสร้างขึ้นใน Netbeans แต่คำถามนี้เป็นคำถามทั่วไปสำหรับ IDE ส่วนใหญ่ เป็นเพียงสิ่งที่ฉันควรรวมไว้ในที่เก็บของฉัน ตัวอย่างเช่น Netbeans สร้างโฟลเดอร์ nbproject, eclipse สร้างโฟลเดอร์ .settings เป็นต้นฉันควรรวมสิ่งเหล่านี้ไว้ในที่เก็บของฉันข้อดี / ข้อเสียของการรวมหรือไม่รวมถึงการตั้งค่าเฉพาะของโครงการคืออะไร ในกรณีนี้เป็นโครงการส่วนบุคคลดังนั้นฉันไม่คิดว่าคนอื่นจะเริ่มทำงานกับมัน แต่มันเป็นการดีที่จะเพิ่มการตั้งค่าโครงการขั้นต่ำเปล่าดังนั้นโครงการจะง่ายต่อการเริ่มทำงานบนเครื่องที่แตกต่างกัน

3
Python Multiprocessing กับ Queue กับ ZeroMQ IPC
ฉันไม่ว่างเขียนโปรแกรมประยุกต์ใช้งูหลามZeroMQและการดำเนินการการเปลี่ยนแปลงของรูปแบบ Majordomo ตามที่อธิบายไว้ในZGuide ฉันมีนายหน้าเป็นตัวกลางระหว่างชุดคนงานและลูกค้า ฉันต้องการบันทึกข้อมูลอย่างละเอียดสำหรับทุกคำขอที่เข้ามา แต่ฉันไม่ต้องการให้นายหน้าทำอย่างนั้นเสียเวลา นายหน้าควรส่งคำขอบันทึกข้อมูลนั้นไปยังอย่างอื่น ฉันคิดสองวิธี: - สร้างคนงานที่มีไว้สำหรับการเข้าสู่ระบบและใช้การขนส่ง ZeroMQ IPC เท่านั้น ใช้การประมวลผลหลายตัวพร้อมกับคิว ฉันไม่แน่ใจว่าอันไหนดีกว่าหรือเร็วกว่าสำหรับเรื่องนั้น ตัวเลือกแรกทำให้ฉันสามารถใช้คลาสพื้นฐานของผู้ปฏิบัติงานปัจจุบันที่ฉันใช้สำหรับผู้ปฏิบัติงานปกติอยู่แล้ว แต่ตัวเลือกที่สองดูเหมือนจะเร็วกว่าที่จะใช้ ฉันต้องการคำแนะนำหรือความเห็นด้านบนหรืออาจเป็นวิธีแก้ไขปัญหาอื่น

5
วิธีจัดการกับค่าสถานะใน if-else หลายรายการ
ฉันดูเหมือนจะเห็นสิ่งนี้บ่อยพอในรหัสของฉันและคนอื่น ๆ ดูเหมือนจะไม่มีอะไรผิดปกติ แต่มันทำให้ฉันรำคาญเพราะดูเหมือนว่ามันจะทำได้ดีกว่า ฉันคิดว่าคำสั่งกรณีอาจทำให้รู้สึกมากกว่าเล็กน้อย แต่บ่อยครั้งที่ตัวแปรเป็นประเภทที่ไม่ทำงานได้ดีหรือเลยด้วยคำสั่ง case (ขึ้นอยู่กับภาษา) If variable == A if (Flag == true) doFooA() else doFooA2 else if variable == B if (Flag == true) doFooB() else doFooB2 else if variable == C if (Flag == true) doFooC() else doFooC2 ดูเหมือนว่ามีหลายวิธีในการ "คำนึงถึง" สิ่งนี้เช่น if-elses 2 ชุดโดยที่หนึ่งชุดจัดการเมื่อ Flag …

7
ฉันเชื่อว่าฉันมีรหัส C และ C ++ ผสมกันเมื่อฉันไม่ควรมี; นี่เป็นปัญหาและวิธีแก้ไขหรือไม่
พื้นหลัง / สถานการณ์ ฉันเริ่มเขียนแอปพลิเคชัน CLI อย่างหมดจดใน C (โปรแกรม C หรือ C ++ ที่เหมาะสมครั้งแรกของฉันที่ไม่ใช่ "Hello World" หรือรูปแบบอื่น ๆ ของมัน) ประมาณครึ่งทางผ่านฉันทำงานกับ "สตริง" ของอินพุตของผู้ใช้ (อาร์เรย์อาร์เรย์) และฉันค้นพบวัตถุลำแสงสตริง C ++ ฉันเห็นว่าฉันสามารถบันทึกรหัสโดยใช้สิ่งเหล่านี้ได้ดังนั้นฉันจึงใช้มันผ่านแอปพลิเคชัน ซึ่งหมายความว่าฉันมีการเปลี่ยนแปลงนามสกุลไฟล์ที่จะ .cpp และตอนนี้รวบรวม app กับแทนg++ gccดังนั้นตามนี้ฉันจะบอกว่าแอปพลิเคชันตอนนี้เป็นแอปพลิเคชั่นทางเทคนิค C ++ (แม้ว่า 90% + ของรหัสจะถูกเขียนในสิ่งที่ฉันจะเรียก C เนื่องจากมีการข้ามไปมาระหว่างสองภาษาจำนวนมาก ทั้งสอง). เป็นไฟล์. cpp ไฟล์เดียวยาวประมาณ 900 บรรทัด ปัจจัยสำคัญ ฉันต้องการให้โปรแกรมฟรี (เป็นเงิน) และสามารถแจกจ่ายได้อย่างอิสระและใช้ได้สำหรับทุกคน …
10 c++  c 

3
ทำไมคอมพิวเตอร์ถึงไม่มีฮาร์ดแวร์พิเศษเช่นเครือข่ายการเรียงลำดับ
แทนที่จะเขียนโปรแกรมในแบบที่เราทำทำไมเราไม่สร้างข้อกำหนดเฉพาะของงานทั่วไปเช่น "การเรียงลำดับ" แล้วปล่อยให้สภาพแวดล้อมรวบรวมเพื่อใช้ประโยชน์จากฮาร์ดแวร์ให้ดีที่สุด ด้วยวิธีนี้เราสามารถจัดส่งคอมพิวเตอร์พร้อมฮาร์ดแวร์พิเศษใหม่ ๆ เช่นเครือข่ายการเรียงลำดับและจะทำงานกับรหัสที่มีอยู่โดยอัตโนมัติ

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