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

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

4
การรักษาความสมบูรณ์ของ Referential ระหว่างไคลเอนต์มือถือและเซิร์ฟเวอร์
ดังนั้นฉันจึงมีระบบที่ค่อนข้างเรียบง่าย ลูกค้าโทรศัพท์มือถือสร้างบันทึกในฐานข้อมูล SQLite ที่ผมอยากจะได้ซิงค์กับเซิร์ฟเวอร์ระยะไกล SQL (ที่ใช้ร่วมกันกับลูกค้ามือถืออื่น ๆ ) ดังนั้นเมื่อฉันสร้างระเบียนใหม่ในตาราง sqlite ของโทรศัพท์ฉันจะผลักดันการเปลี่ยนแปลงไปยังบริการระยะไกลของฉันผ่าน RESTful API ปัญหาที่ฉันมีคือฉันจะสั่งซื้อคีย์หลักอย่างไรเพื่อไม่ให้เกิดการชนกันของข้อมูล (เช่นบันทึกในโทรศัพท์มีคีย์หลักเดียวกันกับระเบียนที่แตกต่างกันโดยสิ้นเชิงบนเซิร์ฟเวอร์) "แนวปฏิบัติที่ดีที่สุดสำหรับการอ้างอิงระเบียนบนไคลเอนต์คืออะไรและสำหรับการอ้างอิงระเบียนเดียวกันบนเซิร์ฟเวอร์?
21 sql  web-services 

13
เมื่อไรที่จะไม่แก้ไข windows ที่เสียหาย
ในการอ้างอิงถึงหน้าต่างที่ใช้งานไม่ได้มีบางครั้งที่การปรับโครงสร้างสิ่งที่ดีที่สุดสำหรับกิจกรรมในอนาคตใช่หรือไม่ ตัวอย่างเช่นหากโครงการเพื่อเพิ่มคุณสมบัติใหม่ให้กับระบบภายในที่มีอยู่ให้กับทีมที่ไม่ได้ทำงานกับระบบจนถึงตอนนี้และได้รับกำหนดเวลาสั้น ๆ ในการทำงานด้วย - จะเป็นสิ่งที่สมเหตุสมผลหรือไม่ เลื่อนการ refactorings ที่สำคัญไปยังรหัสที่มีอยู่เพื่อประโยชน์ในการกำหนดเวลาในสถานการณ์นี้?

3
วิธีการหลีกเลี่ยงการโยนข้อยกเว้นที่น่ารำคาญ?
การอ่านบทความของ Eric Lippert เกี่ยวกับข้อยกเว้นเป็นการเปิดตาอย่างแน่นอนเกี่ยวกับวิธีที่ฉันควรเข้าหาข้อยกเว้นทั้งในฐานะผู้ผลิตและผู้บริโภค อย่างไรก็ตามฉันยังคงพยายามกำหนดแนวทางเกี่ยวกับวิธีหลีกเลี่ยงการโยนข้อยกเว้นที่น่ารำคาญ โดยเฉพาะ: สมมติว่าคุณมีวิธีการบันทึกที่สามารถล้มเหลวเพราะก) ใครบางคนอื่น ๆ มีการปรับเปลี่ยนการบันทึกก่อนที่คุณหรือข) ค่าที่คุณกำลังพยายามที่จะสร้างที่มีอยู่แล้ว เงื่อนไขเหล่านี้คาดว่าจะเกิดขึ้นและไม่ได้ยอดเยี่ยมดังนั้นแทนที่จะทิ้งข้อยกเว้นที่คุณตัดสินใจที่จะสร้าง TrySave ของเมธอดของคุณซึ่งจะส่งคืนบูลีนที่ระบุว่าการบันทึกสำเร็จหรือไม่ แต่ถ้ามันล้มเหลวผู้บริโภคจะรู้ได้อย่างไรว่าปัญหาคืออะไร หรือมันจะดีที่สุดที่จะกลับ enum ระบุผลชนิดของ Ok / RecordAlreadyModified / ValueAlreadyExists? ด้วยจำนวนเต็ม TryParse ปัญหานี้ไม่มีอยู่เนื่องจากมีเพียงเหตุผลเดียวที่วิธีการล้มเหลว ตัวอย่างก่อนหน้านี้เป็นสถานการณ์ที่น่ารำคาญจริง ๆ หรือไม่? หรือจะโยนข้อยกเว้นในกรณีนี้เป็นวิธีที่ต้องการหรือไม่ ฉันรู้ว่ามันเป็นวิธีการที่ทำในห้องสมุดและกรอบงานส่วนใหญ่รวมถึง Entity framework คุณจะตัดสินใจเมื่อสร้างรุ่นลองของวิธีการของคุณเทียบกับวิธีการทดสอบก่อนว่าวิธีการทำงานหรือไม่ ฉันกำลังปฏิบัติตามแนวทางเหล่านี้: หากมีโอกาสเกิดสภาวะการแข่งขันให้สร้างรุ่นทดลอง สิ่งนี้จะป้องกันความต้องการของผู้บริโภคที่จะได้รับการยกเว้นจากภายนอก ตัวอย่างเช่นในวิธีการบันทึกอธิบายไว้ก่อนหน้านี้ หากวิธีการทดสอบเงื่อนไขค่อนข้างจะทำทุกอย่างที่วิธีการเดิมทำแล้วให้ลองสร้างเวอร์ชัน ตัวอย่างเช่นจำนวนเต็ม.TryParse () ในกรณีอื่น ๆ ให้สร้างวิธีการทดสอบเงื่อนไข
21 exceptions 

7
ในฐานข้อมูลดั้งเดิมฉันจะทราบได้อย่างรวดเร็วว่ามีการใช้อะไรและสิ่งใดไม่ได้
ฉันได้รับการขอให้ประเมินสิ่งที่ดูเหมือนว่าเป็นรหัสฐานแบบดั้งเดิมที่มีความสำคัญในฐานะที่เป็นสารตั้งต้นในการทำสัญญาในการรักษารหัสฐานนั้น นี่ไม่ใช่ครั้งแรกที่ฉันอยู่ในสถานการณ์นี้ ในตัวอย่างปัจจุบันรหัสนี้มีไว้สำหรับเว็บไซต์เกมที่มีผู้เล่นหลายคนที่มีรายละเอียดสูงและค่อนข้างสูงโดยมีผู้เล่นอย่างน้อยหลายพันคนออนไลน์พร้อมกัน เป็นเว็บไซต์ดังกล่าวเป็นจำนวนมากหนึ่งนี้เป็นการผสมผสานระหว่างเทคโนโลยีด้านหน้าและด้านหลัง โครงสร้างเว็บไซต์ตามที่เห็นจากภายในสู่ภายนอกเป็นสิ่งที่ไม่เป็นระเบียบ มีโฟลเดอร์ที่ต่อท้าย "_OLD" และ "_DELETE" วางอยู่ทั่วทุกที่ หลาย ๆ โฟลเดอร์ปรากฏว่าไม่มีจุดประสงค์หรือมีชื่อที่คลุมเครือมาก อาจมีสคริปต์เก่าและไม่ได้ใช้งานจำนวนหนึ่งวางอยู่แม้ในโฟลเดอร์ที่ถูกกฎหมาย ไม่เพียงแค่นั้น แต่ยังมีหลายส่วนของรหัสที่หมดอายุอย่างไม่ต้องสงสัยแม้ในสคริปต์การดำเนินการเป็นอย่างอื่น (ข้อกังวลเร่งด่วนน้อยกว่า) นี่คือการส่งมอบจากผู้ดูแลหน้าที่กลับไปยังผู้พัฒนา / ผู้ดูแลไซต์ดั้งเดิม เนื่องจากเป็นเรื่องปกติที่เข้าใจได้ในสถานการณ์ต่าง ๆ เหล่านี้ผู้ดำรงตำแหน่งไม่ต้องการให้เกี่ยวข้องกับการส่งมอบนอกเหนือไปจากสิ่งที่ถูกต้องตามสัญญาและถูกต้องตามกฎหมายของพวกเขาในการผลักดันมันออกไปยังผู้ดูแล ดังนั้นการแยกข้อมูลเกี่ยวกับโครงสร้างเว็บไซต์ที่มีอยู่ออกจากหน้าที่เป็นเพียงคำถาม วิธีเดียวที่จะนึกถึงการเข้าไปใน codebase คือการเริ่มต้นที่รูทของไซต์และอย่างช้า ๆ แต่ต้องไปตามสคริปต์ที่เชื่อมโยง ... และมีแนวโน้มที่จะใช้งานหลายร้อยครั้งและอีกหลายร้อยที่ไม่ใช่ เนื่องจากส่วนใหญ่ของเว็บไซต์อยู่ใน Flash นี่เป็นเรื่องที่ไม่ซับซ้อนเพราะโดยเฉพาะอย่างยิ่งในแอปพลิเคชัน Flash รุ่นเก่าลิงก์ไปยังสคริปต์อื่น ๆ อาจถูกฝังในไบนารี (.FLAs) มากกว่าในไฟล์ข้อความ (.AS / ActionScript) ดังนั้นฉันจึงสงสัยว่าใครมีคำแนะนำที่ดีกว่าเกี่ยวกับวิธีการประเมิน codebase โดยรวมเพื่อการบำรุงรักษา มันจะยอดเยี่ยมถ้ามีวิธีการดูกราฟความถี่การเข้าถึงไฟล์บนระบบปฏิบัติการของเว็บเซิร์ฟเวอร์ (ซึ่งฉันมีสิทธิ์เข้าถึง) เนื่องจากอาจให้ข้อมูลเชิงลึกเกี่ยวกับไฟล์ที่สำคัญที่สุดแม้ว่าจะไม่ สามารถกำจัดไฟล์ที่ไม่เคยใช้งานได้ …

7
ขึ้นเขียงประวัติส่วนตัวสำหรับงานมืออาชีพ [ปิด]
ปิด. คำถามนี้เป็นคำถามปิดหัวข้อ ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัพเดตคำถามเพื่อให้เป็นหัวข้อสำหรับ Software Engineering Stack Exchange ปิดให้บริการใน4 ปีที่แล้ว ในประวัติย่อของฉันฉันระบุว่าตัวเองมี "7 ปีแห่งประสบการณ์การเขียนโปรแกรมด้วยมือใน C" เพื่อความกระจ่างแจ้งฉันเป็นโปรแกรมเมอร์ C ที่สอนตัวเองด้วยหลักสูตรวิทยาลัยบางหลักสูตร ฉันทำงานเกี่ยวกับโปรเจ็กต์ส่วนตัวเล็ก ๆ และฉันคิดว่าตัวเองเก่งกว่าวิทยาศาสตร์คอมพิวเตอร์ที่ไม่มีประสบการณ์ในโลกแห่งความเป็นจริงแม้ว่าฉันจะอยู่ใกล้กับการเป็นผู้เชี่ยวชาญก็ตาม ปัญหาคือสิ่งนี้ ... ฉันได้รับโทรศัพท์และอีเมลจากนายหน้าที่ดูประวัติย่อของฉันบนไซต์งานสอบถามเกี่ยวกับความสนใจของฉันในตำแหน่งนักพัฒนาอาวุโสสัญญา ฯลฯ ซึ่งฉันรู้สึกว่าฉันมีคุณสมบัติไม่สมบูรณ์ ประวัติการทำงานของฉันมีเพียง 3 ปีของประสบการณ์การทำงานที่ระบุไว้ (ซึ่งเป็นเรื่องไอทีทั้งหมด) ดังนั้นเมื่อพวกเขาถามเกี่ยวกับประสบการณ์ก่อนหน้านี้ของฉันใน C ฉันต้องชี้แจงว่ามันเป็นงานส่วนตัวไม่ใช่งานมืออาชีพ ฉันชอบงานในฐานะนักพัฒนา แต่ฉันไม่ต้องการได้รับการจ้างงานเพื่อสิ่งที่ฉันจัดการไม่ได้และฉันไม่ต้องการบิดเบือนตัวเองในขณะที่พยายามแสดงจุดแข็งของฉัน ฉันจงใจเลือกถ้อยคำ "มือ" เพื่อบอกเป็นนัยว่ามันไม่ใช่มืออาชีพ ฉันจะใช้ประสบการณ์ C ในประวัติการทำงานของฉันเพื่ออธิบายให้ดีขึ้นได้อย่างไร

6
ทำให้เป็นเรื่องง่ายในตอนนี้หรือตั้งโปรแกรมโดยคำนึงถึงอนาคต
ฉันกำลังเขียนรหัสแอปพลิเคชันใหม่สำหรับ บริษัท ของฉันที่ค่อนข้างเกี่ยวข้อง เพื่อให้ตรงตามกำหนดเวลาฟังก์ชันการทำงานได้รับการปรับลดลงเล็กน้อยเพื่อให้เราสามารถมีบางสิ่งบางอย่างพร้อมสำหรับการเปิดตัว ฉันได้รับมอบหมายให้ทำงานเวอร์ชั่น 1 และทำงานภายในสิ้นเดือนนี้ ฉันผ่านการพัฒนาไปครึ่งทางแล้วและฉันก็มาถึงจุดนี้แล้ว เมื่อวานนี้ฉันใช้เวลาหาวิธีแก้ปัญหาที่ง่ายมาก ๆ สำหรับความต้องการอย่างใดอย่างหนึ่งและฉันภูมิใจในสิ่งที่มันเปิดออก เมื่อเช้านี้มีการส่งเอกสารเวอร์ชัน 2 และมีข้อกำหนดที่จะต้องใช้รหัสที่ฉันเขียนเมื่อวานนี้ว่าต้องเสียใจมากหรือมีการเปลี่ยนแปลงอย่างรุนแรง มันจะต้องใช้งานจำนวนมากในอนาคตถ้าฉันปล่อยให้มันเป็นอย่างที่มันเป็น ฉันสามารถใช้เวลาเพิ่มอีกหนึ่งวันในการทำให้โซลูชั่นปัจจุบันของฉันมีประสิทธิภาพยิ่งขึ้นเพื่อให้คุณสมบัติ v2 นั้นสามารถเพิ่มได้โดยใช้ความพยายามน้อยลง ฉันไม่รู้ว่าฉันจะทำ v2 หรือไม่ อาจเป็นฉันหรืออาจเป็นเพื่อนร่วมงานหรือแม้แต่เป็นผู้ฝึกงาน ถ้าคุณอยู่ในรองเท้าของฉันคุณจะใช้เวลาตอนนี้เพื่อให้ง่ายขึ้นในอนาคตหรือคุณจะออกจากการแก้ปัญหาของคุณและจัดการกับมันเมื่อถึงเวลา?

6
เราควรเชื่อมโยงมุมมองกับคุณสมบัติของโมเดลหรือ ViewModel ควรมีเป็นของตัวเอง .. ?
ฉันเริ่มต้นโครงการด้วยสภาพแวดล้อมทางเทคนิคต่อไปนี้:. Net 4.0, Entity Framework 4.0, WPF พร้อมสถาปัตยกรรม MVVM ฉันเห็นตัวอย่างมากมายในเน็ตหนังสือบางเล่มเกี่ยวกับสภาพแวดล้อมนี้ ในตัวอย่างที่ผู้เขียนมีความคิดนี้: Viemodel จะมีตัวอย่างของคลาส Model (Entity Framework Entity เช่น Person) ผูกคอนโทรล WPF view เข้ากับคุณสมบัติของ Model ในขณะที่ผู้เขียนบางคนทำ: Viemodel จะเปิดเผยคุณสมบัติทั้งหมดของโมเดล เชื่อมโยงคอนโทรลมุมมอง WPF กับคุณสมบัติของ ViewModel แทนที่จะเชื่อมโยงกับโมเดลโดยตรง ดังนั้นเป็นความคิดที่ดีหรือไม่ที่จะให้มุมมองเชื่อมโยงคุณสมบัติจากแบบจำลองแทนที่จะเป็นมุมมองที่เปิดเผยตัวตน หรือจะเลือกอันไหนดีกว่ากัน?

17
โอเพนซอร์สนั้นไม่ดีสำหรับนักพัฒนาหรือไม่? [ปิด]
ตามที่เป็นอยู่ในปัจจุบันคำถามนี้ไม่เหมาะสำหรับรูปแบบคำถาม & คำตอบของเรา เราคาดหวังคำตอบที่จะได้รับการสนับสนุนจากข้อเท็จจริงการอ้างอิงหรือความเชี่ยวชาญ แต่คำถามนี้จะเรียกร้องให้มีการอภิปรายโต้แย้งโต้แย้งหรือการอภิปรายเพิ่มเติม หากคุณรู้สึกว่าคำถามนี้สามารถปรับปรุงและเปิดใหม่ได้โปรดไปที่ศูนย์ช่วยเหลือเพื่อขอคำแนะนำ ปิดให้บริการใน7 ปีที่ผ่านมา ทำไมโปรแกรมเมอร์ถึงชอบแนวคิดของโอเพ่นซอร์ส? ฉันไม่ได้พูดถึงผู้สร้างโครงการเหล่านั้นแน่นอนว่าพวกเขาได้รับชื่อเสียง แต่ฉันกำลังพูดถึงอุตสาหกรรมโดยทั่วไปทำไมเราถึงชอบแนวคิดโอเพนซอร์ซเมื่อมันสร้างผลกระทบที่เลวร้ายมากมายต่ออุตสาหกรรม ก่อนอื่นโครงการเช่น wordpress และ CMS อื่น ๆ พวกเขาจะทำงานอิสระมากมายที่ลูกค้าต้องการบล็อกหรือเว็บไซต์ง่ายๆ ประการที่สองโปรเจ็กต์เช่น Rails และไลบรารี่อื่น ๆ และ API นั้นทำให้โปรแกรมเมอร์จำนวนมากหยุดทำงานและทำให้ความต้องการโปรแกรมเมอร์ลดลงเพราะตอนนี้ API ของโอเพ่นซอร์สเหล่านี้โปรแกรมเมอร์หนึ่งคนสามารถทำสิ่งต่าง ๆ ที่โปรแกรมเมอร์ 10 คนเคยทำ และสุดท้ายด้วยซอฟต์แวร์โอเพ่นซอร์สเช่น Notepad ++ ตอนนี้ผู้คนรู้สึกตลกเมื่อคุณขอให้พวกเขาซื้อซอฟต์แวร์ ดังนั้นคำถามคือทำไมเรายังชอบโอเพ่นซอร์สถ้ามันทำให้เรายากจน? อาจเป็นไปได้ว่าชีวิตของฉันในฐานะโปรแกรมเมอร์จะยากขึ้น แต่อย่างน้อยฉันก็สามารถหาเลี้ยงชีพได้ แต่ตอนนี้มันเป็นเหมือนเครื่องจักรแทนที่มนุษย์สิ่งที่ตลกคือเรากำลังสร้าง "เครื่องจักร" ที่แทนที่ตัวเราเอง สมมติว่าถ้าคุณคิดค้นเครื่องมือคุณไม่จำเป็นต้องแชร์เครื่องมือนี้มันจะยังคงช่วยคุณและ บริษัท ของคุณ แม้จะไม่มีเครื่องมือโอเพนซอร์ซเหล่านี้โปรแกรมเมอร์คนอื่นก็ยังคงใช้ชีวิตได้เพราะพวกเขายังมีงานทำเงิน

12
มันมีค่าใช้จ่ายมากในการแก้ไขจุดบกพร่องในตอนท้ายของโครงการหรือไม่?
ในการโพสต์บล็อกโดย Andrew Hayความจริงดังต่อไปนี้ถูกโพสต์ : มีค่าใช้จ่ายมากขึ้นในการแก้ไขข้อบกพร่องในตอนท้ายของโครงการที่ทำเพื่อแก้ไขข้อผิดพลาดเดียวกันก่อนหน้านี้ในโครงการ อย่างไรก็ตามสิ่งนี้ดูเหมือนจะไม่แน่นอนโดยเฉพาะหลังจากอ่านโพสต์บล็อกบน Less Wrong ที่ไม่ถูกต้องและข้อมูลที่ฉันเห็นเพื่อสำรองนั้นเก่ามาก วันนี้ยังคงเป็นความจริงที่ถูกต้องหรือไม่

7
Python เป็นแอปพลิเคชั่นประเภทใดเป็นตัวเลือกที่ไม่ดี [ปิด]
ปิด คำถามนี้เป็นคำถามความคิดเห็นตาม ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้สามารถตอบข้อเท็จจริงและการอ้างอิงได้โดยแก้ไขโพสต์นี้ ปิดให้บริการใน3 ปีที่ผ่านมา ฉันเพิ่งเริ่มเรียนรู้ Python และฉันต้องการได้รับบริบทเพิ่มเติมเกี่ยวกับภาษา ฉันรู้ว่าในหลายกรณี Python เป็นภาษาที่ช้าเมื่อเทียบกับ C หรือ C ++ ดังนั้น Python จึงไม่ใช่ทางเลือกที่ดีที่สุดสำหรับแอปพลิเคชั่นที่จำเป็นต้องเรียกใช้โดยเร็วที่สุด นอกเหนือจากนี้ดูเหมือนว่า Python เป็นภาษาวัตถุประสงค์ทั่วไปที่ยอดเยี่ยมซึ่งง่ายต่อการอ่านและเขียน ห้องสมุดที่มีให้นั้นมีฟังก์ชั่นจำนวนมาก นอกเหนือจากแอปพลิเคชั่นที่สำคัญด้านประสิทธิภาพแล้วมันเป็นตัวเลือกที่ไม่ดีที่จะใช้ Python (และทำไม)
21 python 

4
ความกังวลของโปรแกรมเมอร์เกี่ยวกับข้อ จำกัด การส่งออกจากสหรัฐอเมริกา
คำถามนี้ถูกโยกย้ายจาก Stack Overflow เพราะสามารถตอบได้ใน Software Engineering Stack Exchange อพยพ 7 ปีที่ผ่านมา ฉันต้องพิจารณาด้านใดเมื่อออกแบบและเผยแพร่ซอฟต์แวร์ที่ต้องเป็นไปตามข้อ จำกัด การส่งออกของสหรัฐอเมริกาสำหรับซอฟต์แวร์เข้ารหัสลับ Wikipediaกล่าวว่ามีหลายประเภทที่คุณสามารถกำหนดให้กับซอฟต์แวร์การเข้ารหัสลับได้ และปลายทางการส่งออก (เช่นจีนรัสเซีย) ก็มีบทบาทสำคัญเช่นกัน แต่ฉันไม่เข้าใจข้อ จำกัด เหล่านั้นและผลกระทบต่อการทำงานของฉัน มีใครอธิบายได้ไหม ฉันถามเพราะถ้าคุณพยายามเผยแพร่แอปพลิเคชันของคุณ (เช่นใน Apple App Store หรือ Android Market) คุณต้องมั่นใจว่าแอปพลิเคชันของคุณตรงตามข้อ จำกัด การส่งออกของสหรัฐฯ และมีแอพพลิเคชั่นมากมายที่ให้การจัดเก็บข้อมูลที่ปลอดภัยเช่นสำหรับรหัสผ่าน พวกเขาทุกคนแจ้งรัฐบาลและขอให้มีการตรวจสอบหรือไม่? แน่นอนคุณไม่สามารถรู้ว่าพวกเขาทำ แต่พวกเขาต้องทำเช่นนี้?

5
ข้อมูลจะถูกส่งผ่านระหว่าง Javascript ฝั่งไคลเอ็นต์และรหัส C # หลังแอพ ASP.NET ได้อย่างไร
ฉันกำลังมองหาวิธีที่มีประสิทธิภาพ / มาตรฐานในการส่งผ่านข้อมูลระหว่างรหัส JavaScript ฝั่งไคลเอ็นต์และรหัส C # หลังแอปพลิเคชัน ASP.NET ฉันใช้วิธีการดังต่อไปนี้เพื่อให้บรรลุสิ่งนี้ แต่พวกเขาทั้งหมดรู้สึกว่าเหลวไหล ในการส่งข้อมูลจาก JavaScript ไปยังรหัส C # คือการตั้งค่าตัวแปร ASP ที่ซ่อนอยู่และเรียกใช้ postback: <asp:HiddenField ID="RandomList" runat="server" /> function SetDataField(data) { document.getElementById('<%=RandomList.ClientID%>').value = data; } จากนั้นในรหัส C # ฉันรวบรวมรายการ: protected void GetData(object sender, EventArgs e) { var _list = RandomList.value; } กลับไปทางอื่นฉันมักจะใช้ ScriptManager เพื่อลงทะเบียนฟังก์ชั่นและส่งผ่านข้อมูลระหว่าง …

8
มีส่วนย่อยของโปรแกรมที่หลีกเลี่ยงปัญหาการหยุดชะงักหรือไม่
ฉันเพิ่งอ่านคำอธิบายของปัญหาการหยุดพักอีกและมันทำให้ฉันคิดว่าปัญหาทั้งหมดที่ฉันเห็นที่ได้รับเป็นตัวอย่างที่เกี่ยวข้องกับลำดับอนันต์ แต่ฉันไม่เคยใช้ลำดับที่ไม่มีที่สิ้นสุดในโปรแกรมของฉัน - มันใช้เวลานานเกินไป แอปพลิเคชันในโลกแห่งความเป็นจริงทั้งหมดมีขอบเขตที่ต่ำและสูงกว่า แม้ reals ไม่ใช่ reals อย่างแท้จริง - มันเป็นค่าประมาณ 32/64 บิตเป็นต้น ดังนั้นคำถามคือมีส่วนย่อยของโปรแกรมที่สามารถกำหนดได้หากพวกเขาหยุด? ดีพอสำหรับโปรแกรมส่วนใหญ่หรือไม่ ฉันสามารถสร้างชุดภาษาสร้างที่ฉันสามารถกำหนด 'haltability' ของโปรแกรม ฉันแน่ใจว่าสิ่งนี้ได้รับการศึกษามาก่อนเพื่อให้พอยน์เตอร์น่าชื่นชม ภาษาจะไม่ได้รับการทำให้สมบูรณ์ แต่มีสิ่งใดที่เกือบจะสมบูรณ์ซึ่งดีพอหรือไม่ โดยธรรมชาติแล้วโครงสร้างที่เพียงพอจะต้องไม่รวมการเรียกซ้ำและไม่ได้ถูก จำกัด ในขณะที่ลูป แต่ฉันสามารถเขียนโปรแกรมได้โดยไม่ต้องมีความสะดวกเพียงพอ การอ่านจากอินพุตมาตรฐานเป็นตัวอย่างจะต้องถูก จำกัด แต่ก็ง่ายพอ - ฉันจะ จำกัด การป้อนข้อมูลของฉันเหลือ 10,000,000 ตัวอักษรขึ้นอยู่กับโดเมนปัญหา TIA [Update] หลังจากอ่านความคิดเห็นและคำตอบบางทีฉันควรทบทวนคำถามอีกครั้ง สำหรับโปรแกรมที่กำหนดซึ่งอินพุตทั้งหมดถูก จำกัด ขอบเขตคุณสามารถพิจารณาได้ว่าโปรแกรมหยุดทำงานหรือไม่ ถ้าเป็นเช่นนั้นข้อ จำกัด ของภาษาคืออะไรและอะไรคือข้อ จำกัด ของชุดอินพุต ชุดสูงสุดของโครงสร้างเหล่านี้จะกำหนดภาษาที่สามารถอนุมานได้ว่าจะหยุดหรือไม่ มีการศึกษาบางอย่างที่ทำกับสิ่งนี้หรือไม่? [อัพเดท 2] …

3
มีทางเลือกอะไรบ้างในการใช้สูตรอาหารตัวเลข [ปิด]
ปิด. คำถามนี้เป็นคำถามปิดหัวข้อ ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัพเดตคำถามเพื่อให้เป็นหัวข้อสำหรับ Software Engineering Stack Exchange ปิดให้บริการใน4 ปีที่แล้ว ในอดีตหนังสือสูตรอาหารที่มีตัวเลขถือเป็นการอ้างอิงมาตรฐานทองคำสำหรับอัลกอริธึมเชิงตัวเลข Fortran Edition ที่เก่าที่สุดนั้นตามมาด้วยรุ่นต่างๆใน C และ C ++ และอื่น ๆ ซึ่งจะทำให้มีความทันสมัยมากขึ้น ผ่านสิ่งเหล่านี้มันให้รหัสอ้างอิงสำหรับอัลกอริทึม state-of-the-art ของวัน รุ่นเก่ามีให้บริการออนไลน์ฟรีทุกวันนี้ น่าเสียดายที่ฉันคิดว่าตอนนี้มันมีประโยชน์เป็นส่วนใหญ่เท่านั้นในประวัติศาสตร์โตเม การปฏิบัติของ "วิศวกรรมซอฟต์แวร์" นั้นดูเหมือนว่าล้าสมัยแล้วและเนื้อหาที่แท้จริงยังไม่ทันกับวรรณกรรม ผู้เขียนโปรแกรมสมัยใหม่ควรมองไปที่การอ้างอิงที่ครอบคลุม แต่ยังเข้าถึงได้ในทำนองเดียวกัน

3
ประโยชน์ของ“ Micro-ORM” คืออะไร?
ฉันได้มองหาสิ่งที่เรียกว่า "Micro ORMs" เช่น Dapper และ (ในระดับที่น้อยกว่าเนื่องจากอาศัย. NET 4.0) ขนาดใหญ่เนื่องจากสิ่งเหล่านี้อาจจะง่ายต่อการใช้งานในที่ทำงานมากกว่า ORM แบบเต็มเป่าตั้งแต่ระบบปัจจุบันของเรา มีความเชื่อมั่นอย่างสูงในขั้นตอนการจัดเก็บและจะต้องมีการปรับโครงสร้างที่สำคัญในการทำงานกับ ORM เช่น NHibernate หรือ EF ประโยชน์ของการใช้หนึ่งในสิ่งเหล่านี้ผ่าน ORM ที่มีคุณลักษณะครบถ้วนคืออะไร ดูเหมือนว่าเป็นเพียงเลเยอร์เล็ก ๆ รอบ ๆ การเชื่อมต่อฐานข้อมูลที่ยังคงบังคับให้คุณเขียน SQL ดิบ - บางทีฉันผิด แต่ฉันก็มักจะบอกเหตุผลของ ORMs ตั้งแต่แรกคือคุณไม่ต้องเขียน SQL มัน สามารถสร้างขึ้นโดยอัตโนมัติ โดยเฉพาะอย่างยิ่งสำหรับการรวมหลายตารางและความสัมพันธ์ในการจับคู่ระหว่างตารางซึ่งเป็นความเจ็บปวดที่ต้องทำใน SQL บริสุทธิ์ แต่ไม่สำคัญกับ ORM ตัวอย่างเช่นการดูตัวอย่างของ Dapper: var connection = new SqlConnection(); // setup …
21 .net  orm 

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