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

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

2
คอมไพเลอร์ทำงานอย่างไร [ปิด]
ตามที่เป็นอยู่ในปัจจุบันคำถามนี้ไม่เหมาะสำหรับรูปแบบคำถาม & คำตอบของเรา เราคาดหวังคำตอบที่จะได้รับการสนับสนุนจากข้อเท็จจริงการอ้างอิงหรือความเชี่ยวชาญ แต่คำถามนี้อาจเรียกร้องให้มีการถกเถียงโต้แย้งโต้แย้งหรือการอภิปรายเพิ่มเติม หากคุณรู้สึกว่าคำถามนี้สามารถปรับปรุงและเปิดใหม่ได้โปรดไปที่ศูนย์ช่วยเหลือเพื่อขอคำแนะนำ ปิดให้บริการใน8 ปีที่ผ่านมา หมายเหตุ: ฉันประหลาดใจที่สิ่งนี้ไม่ได้ถูกถามมาก่อนและหากฉันไม่พบในการค้นหา ฉันอยู่ในเว็บไซต์หลายแห่งฉันอ่านบทความมากมายและฉันได้ยินคำอธิบายมากมาย ส่วนใหญ่ของพวกเขาดี แต่พวกเขาทั้งหมดจะกว้างหรือซับซ้อนเกินไปหรือเพียงแค่ไม่ดีธรรมดา ดังนั้นคำถามของฉันคือคอมไพเลอร์ทำงานอย่างไร หากนี่เป็นคำถามที่ยากและกว้างโปรดบอกฉัน แต่ถ้าไม่ใช่โปรดตอบคำถาม
17 compiler 

2
การทดสอบ Joel ทันสมัยแค่ไหน? [ปิด]
ปิด คำถามนี้เป็นคำถามความคิดเห็นตาม ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้สามารถตอบข้อเท็จจริงและการอ้างอิงได้โดยแก้ไขโพสต์นี้ ปิดให้บริการใน6 ปีที่ผ่านมา ฉันต้องการโน้มน้าวใจคู่ค้าของเราว่าเราควรมีสเป็คและข้อผิดพลาดนั้นควรได้รับการแก้ไขก่อนที่จะเขียนโค้ดใหม่ ฉันควรอ้างถึงการทดสอบ Joelหรือไม่? คุณคิดว่าการทดสอบ Joel นั้นทันสมัยหรือไม่? ฉันคิดว่าการไม่มีสเป็คเป็นการจัดการโครงการที่ไม่ดี คุณเห็นด้วยกับการทดสอบ Joel หรือไม่? คุณสามารถเพิ่มอะไรได้ไหม ไม่ได้พูดถึง Open Source เช่น

7
แนวทางปฏิบัติที่ดีที่สุดที่จะตามด้วยดัชนีฐานข้อมูล [ปิด]
ตามที่เป็นอยู่ในปัจจุบันคำถามนี้ไม่เหมาะสำหรับรูปแบบคำถาม & คำตอบของเรา เราคาดหวังคำตอบที่จะได้รับการสนับสนุนจากข้อเท็จจริงการอ้างอิงหรือความเชี่ยวชาญ แต่คำถามนี้อาจเรียกร้องให้มีการถกเถียงโต้แย้งโต้แย้งหรือการอภิปรายเพิ่มเติม หากคุณรู้สึกว่าคำถามนี้สามารถปรับปรุงและเปิดใหม่ได้โปรดไปที่ศูนย์ช่วยเหลือเพื่อขอคำแนะนำ ปิดให้บริการใน6 ปีที่ผ่านมา อะไรคือ DOs และ DONT สำหรับการปรับปรุงประสิทธิภาพของฐานข้อมูลโดยใช้ดัชนี? DO จะเป็นกรณีที่ควรสร้างดัชนีหรือดัชนีอื่นที่เกี่ยวข้องกับเคล็ดลับที่จะปรับปรุงประสิทธิภาพ DONT จะเป็นกรณีที่ไม่ควรสร้างดัชนีหรือดัชนีที่เกี่ยวข้องกับการกระทำที่อาจส่งผลกระทบต่อประสิทธิภาพการทำงาน

6
จำเป็นต้องเขียนความคิดเห็น javadoc สำหรับพารามิเตอร์ EVERY ในลายเซ็นของเมธอดหรือไม่?
หนึ่งในทีมของฉันเชื่อว่าจำเป็นต้องเขียนความคิดเห็น javadoc สำหรับพารามิเตอร์ EVERY ในลายเซ็นของเมธอด ฉันไม่คิดว่ามันเป็นสิ่งจำเป็นและอันที่จริงฉันคิดว่ามันอาจเป็นอันตรายได้ ก่อนอื่นฉันคิดว่าชื่อพารามิเตอร์ควรเป็นคำอธิบายและจัดทำเอกสารด้วยตนเอง หากไม่ชัดเจนว่าพารามิเตอร์ของคุณเป็นอย่างไรคุณอาจทำผิด อย่างไรก็ตามฉันเข้าใจว่าบางครั้งมันก็ไม่ชัดเจนว่าพารามิเตอร์สำหรับดังนั้นในกรณีเหล่านั้นใช่คุณควรเขียนความคิดเห็น javadoc อธิบายพารามิเตอร์ แต่ฉันคิดว่ามันไม่จำเป็นที่จะทำเช่นนั้นสำหรับพารามิเตอร์ทุกคน หากเห็นได้ชัดว่าพารามิเตอร์สำหรับความคิดเห็น javadoc นั้นซ้ำซ้อน; คุณกำลังสร้างงานพิเศษสำหรับตัวคุณเอง นอกจากนี้คุณกำลังสร้างงานพิเศษสำหรับทุกคนที่ต้องรักษารหัสของคุณ วิธีการเปลี่ยนแปลงเมื่อเวลาผ่านไปและการบำรุงรักษาความคิดเห็นเกือบจะสำคัญเท่ากับการบำรุงรักษาโค้ดของคุณ มีกี่ครั้งที่คุณเห็นความคิดเห็นเช่น "X ทำ Y เพื่อ Z เหตุผล" เพียงเพื่อดูว่าความคิดเห็นนั้นล้าสมัยและในความเป็นจริงวิธีการไม่ได้ใช้พารามิเตอร์ X อีกต่อไป? มันเกิดขึ้นตลอดเวลาเพราะคนลืมที่จะอัพเดทความคิดเห็น ฉันจะยืนยันว่าความคิดเห็นที่ทำให้เข้าใจผิดเป็นอันตรายมากกว่าความคิดเห็นที่ไม่ทั้งหมด และดังนั้นจึงเป็นอันตรายของการแสดงความคิดเห็นมากเกินไป: โดยการสร้างเอกสารที่ไม่จำเป็นคุณจะต้อง อย่างไรก็ตามฉันเคารพนักพัฒนาคนอื่นในทีมของฉันและยอมรับว่าบางทีเขาอาจจะพูดถูกและฉันผิด ทำไมฉันถึงนำคำถามมาให้คุณผู้พัฒนาเพื่อน: จำเป็นต้องเขียนความคิดเห็น javadoc สำหรับพารามิเตอร์ EVERY หรือไม่? สมมติว่านี่เป็นรหัสภายใน บริษัท ของฉันและบุคคลภายนอกใด ๆ จะไม่ถูกใช้


4
วิธีการใช้วิธีการแบบว่องไวสำหรับการพัฒนาเฟิร์มแวร์ / ระบบสมองกลฝังตัวซอฟต์แวร์?
ฉันสงสัยอยู่เสมอว่าจะใช้วิธีการแบบเปรียวได้อย่างไรในซอฟต์แวร์ระบบสมองกลฝังตัวที่ซับซ้อนขนาดใหญ่ (วิศวกรมากกว่า 100 คน) การพัฒนาเฟิร์มแวร์มีลักษณะเฉพาะบางอย่างที่ทำให้ยากต่อการใช้งาน (เช่นฮาร์ดแวร์ไม่สามารถใช้งานได้จนถึงช่วงท้ายของรอบการพัฒนาเมื่อผลิตภัณฑ์ออกวางจำหน่ายแล้วจะไม่สามารถอัปเดตเฟิร์มแวร์ได้ง่าย ฯลฯ ) บรรทัดฐานในการพัฒนาประเภทนี้คือเอกสารที่มีความหนาและความคิดเห็นที่โหดเหี้ยม คุณไม่สามารถแก้ไขรหัสอย่างง่ายได้เช่นเปลี่ยนชื่อตัวแปรโดยไม่มีลายเซ็น 2-3 รายการ (ฉันพูดเกินจริงไปเล็กน้อย แต่นี่เป็นเรื่องปกตินอกจากนี้ผู้คนจำนวนมากใช้ทางลัดและผู้จัดการโครงการจะอนุมัติพวกเขาโดยเฉพาะอย่างยิ่งเมื่อต้องเผชิญกับเส้นตายของตลาดที่ยากลำบาก) ฉันอยากจะฟังเคล็ดลับหรือแนวทางใด ๆ เกี่ยวกับวิธีการใช้ระเบียบวิธีแบบเปรียวสำหรับโครงการพัฒนาเฟิร์มแวร์

2
คำสั่งที่ควรละเอียดในรูปแบบของ CQ [R] S เป็นอย่างไร
ฉันกำลังพิจารณาโครงการเพื่อเป็นส่วนหนึ่งของ SOA โยกย้ายตาม WCF ของเรามากกว่าที่จะเป็นรูปแบบรถบัสบริการ (อาจ nServiceBus) และการใช้บางขั้นพื้นฐานผับย่อยเพื่อให้บรรลุการแยกคำสั่ง Query ฉันไม่ใช่คนใหม่สำหรับ SOA หรือแม้แต่กับโมเดลบัสเซอร์วิส แต่ฉันยอมรับว่าจนกระทั่งเมื่อเร็ว ๆ นี้แนวคิดเรื่อง "การแยก" ของฉันนั้น จำกัด อยู่ที่การสะท้อนและการจำลองฐานข้อมูล แต่ถึงกระนั้นฉันก็ยังดึงดูดความคิดเพราะมันดูเหมือนจะให้ประโยชน์ทั้งหมดของระบบที่สอดคล้องกันในที่สุดในขณะที่หลีกเลี่ยงข้อเสียที่เห็นได้ชัดหลายประการ (โดยเฉพาะอย่างยิ่งการขาดการสนับสนุนการทำธุรกรรมที่เหมาะสม) ฉันได้อ่านเรื่องราวมากมายจากอุดีดาฮันซึ่งโดยทั่วไปเป็นปรมาจารย์ในสถาปัตยกรรม ESB (อย่างน้อยในโลก Microsoft) แต่สิ่งหนึ่งที่เขาบอกว่าทำให้ฉันปริศนา: เมื่อเรามีเอนทิตีที่ใหญ่ขึ้นและมีฟิลด์มากขึ้นเราก็มีนักแสดงมากขึ้นที่ทำงานกับเอนทิตี้เดียวกันเหล่านั้นและยิ่งมีโอกาสมากขึ้นที่บางสิ่งจะสัมผัสคุณลักษณะบางอย่างของพวกเขาในเวลาใดก็ตาม [ ... ] องค์ประกอบหลักของ CQRS กำลังคิดทบทวนการออกแบบส่วนต่อประสานกับผู้ใช้เพื่อให้เราสามารถจับภาพความตั้งใจของผู้ใช้ของเราได้ว่าการทำให้ลูกค้าเป็นที่ต้องการนั้นเป็นหน่วยงานที่แตกต่างกันสำหรับผู้ใช้มากกว่าการบ่งชี้ว่าลูกค้าย้ายไปแล้ว แต่งงาน การใช้ UI ที่มีลักษณะคล้าย Excel สำหรับการเปลี่ยนแปลงข้อมูลไม่ได้หมายถึงเจตนาตามที่เราเห็นด้านบน - Udi Dahan ชี้แจง CQRS จากมุมมองที่อธิบายไว้ในใบเสนอราคาเป็นการยากที่จะโต้แย้งกับตรรกะนั้น แต่ดูเหมือนว่าจะขัดแย้งกับธัญพืชด้วยความเคารพต่อ SOA SOA (และการบริการทั่วไปโดยทั่วไป) ควรจัดการกับข้อความหยาบๆ …

11
โครงสร้างข้อมูลที่ซับซ้อนที่สุดที่คุณใช้ในสถานการณ์จริงคืออะไร? [ปิด]
ตามที่เป็นอยู่ในปัจจุบันคำถามนี้ไม่เหมาะสำหรับรูปแบบคำถาม & คำตอบของเรา เราคาดหวังคำตอบที่จะได้รับการสนับสนุนจากข้อเท็จจริงการอ้างอิงหรือความเชี่ยวชาญ แต่คำถามนี้อาจเรียกร้องให้มีการถกเถียงโต้แย้งโต้แย้งหรือการอภิปรายเพิ่มเติม หากคุณรู้สึกว่าคำถามนี้สามารถปรับปรุงและเปิดใหม่ได้โปรดไปที่ศูนย์ช่วยเหลือเพื่อขอคำแนะนำ ปิดให้บริการใน7 ปีที่ผ่านมา เชื้อโรคสำหรับคำถามนี้เกิดขึ้นจากการสนทนาที่ฉันมีกับนักพัฒนาเพื่อนสองคนจากอุตสาหกรรม ปรากฎว่าในหลาย ๆ ที่ผู้จัดการโครงการมีความระมัดระวังเกี่ยวกับโครงสร้างข้อมูลที่ซับซ้อนและโดยทั่วไปยืนยันในสิ่งที่มีอยู่นอกกรอบจากไลบรารี / แพ็คเกจมาตรฐาน แนวคิดทั่วไปดูเหมือนจะเป็นเหมือนการใช้การรวมกันของสิ่งที่มีอยู่แล้วยกเว้นว่าประสิทธิภาพการทำงานจะถูกขัดขวางอย่างจริงจัง สิ่งนี้ช่วยให้การรักษารหัสพื้นฐานง่ายขึ้นซึ่งไม่ใช่การทูตหมายถึง "เรามีการขัดสีสูงและการจ้างงานใหม่ที่เราจ้างอาจไม่ดีเท่านี้" ดังนั้นจึงไม่มีการคัดกรองบลูมหรือข้ามรายการหรือสเปรย์ต้นไม้สำหรับคุณ CS ขยะ ดังนั้นนี่คือคำถาม (อีกครั้ง): โครงสร้างข้อมูลที่ซับซ้อนที่สุดที่คุณทำหรือใช้ในสำนักงานคืออะไร ช่วยให้เข้าใจว่าซอฟต์แวร์โลกแห่งความจริงที่ดี / ซับซ้อนเพียงใด

10
Ruby on Rails ควรจะมีช่วงการเรียนรู้ที่สูงชันหรือเป็นแค่ฉันหรือเปล่า [ปิด]
ปิด คำถามนี้เป็นคำถามความคิดเห็นตาม ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้สามารถตอบข้อเท็จจริงและการอ้างอิงได้โดยแก้ไขโพสต์นี้ ปิดให้บริการใน6 ปีที่ผ่านมา ฉันเป็นโปรแกรมเมอร์ที่สอนตัวเอง ฉันได้เรียนรู้ RoR ตั้งแต่เดือนตุลาคมด้วยความรุนแรงที่แตกต่างกัน (บางครั้งทั้งวันบางครั้งก็ไม่มีอะไรเป็นเวลาหลายสัปดาห์) ก่อนหน้านั้นฉันรู้จัก Java เท่านั้น แต่รู้ดีทีเดียว ฉันเคยได้ยินคำพูดที่เกินจริงเกี่ยวกับ RoR และวิธีการที่จะทำให้คุณมีความสุขมีประสิทธิผลและอื่น ๆ จนถึงตอนนี้มันทำให้ฉันผิดหวังเท่านั้น ฉันเรียนรู้จากหนังสือ Agile และฉันสงสัยว่าส่วนหนึ่งของความยากลำบากอาจเกี่ยวข้องกับ JavaScript และ CSS ของฉันโดยไม่รู้ตัวและการเข้าใจเพียงเล็กน้อยเกี่ยวกับฐานข้อมูลและ HTML แต่เห็นได้ชัดว่าฉันใช้เวลานานกว่าจะเสร็จสิ้นโครงการในหนังสือ Agile มากกว่าคนอื่น ๆ และฉันก็ยังจำไม่ได้มาก มีบางสิ่งเกี่ยวกับ Rails ที่ฉันดูเหมือนจะไม่ได้รับเช่นเมื่อใช้สัญลักษณ์และเมื่อไม่ทำหรือวิธีเรียกใช้แบบไดนามิก เมื่อเร็ว ๆ นี้ฉันได้รับมอบหมาย Rails เล็ก ๆ ซึ่งฉันขอให้ทำการเปลี่ยนแปลงเล็กน้อยกับอินเทอร์เฟซ ฉันใช้เวลาประมาณ 25 ชั่วโมงและแม้ว่าฉันจะมีความคืบหน้าในการทำความเข้าใจโค้ด แต่ฉันก็ยังไม่รู้ว่าจะดำเนินการอย่างไร ฉันไม่สามารถถาม Stack …

7
ข้อดีและข้อเสียของภาษาที่ใช้ช่องว่างกับ {} เพื่อระบุขอบเขตคืออะไร [ปิด]
ปิด คำถามนี้เป็นคำถามความคิดเห็นตาม ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้สามารถตอบข้อเท็จจริงและการอ้างอิงได้โดยแก้ไขโพสต์นี้ ปิดให้บริการใน5 ปีที่ผ่านมา ดูเหมือนว่ามีข้อขัดแย้งกันว่าควรใช้ช่องว่างหรือโทเค็นเช่นวงเล็บเพื่อระบุขอบเขต ฉันได้เห็นวิธีแก้ปัญหาการสรรเสริญของงูใหญ่จำนวนมากเพื่อแก้ไขปัญหาการเยื้องที่ไม่สอดคล้องกันแต่หลายคนไม่เห็นด้วย: ภาษาใดก็ตามที่มีช่องว่างเป็นโทเค็นจะต้องตาย โพสต์ในภายหลังในคำตอบเดียวกัน: ฉันถูกจัดเรียงของต่อต้านช่องว่างเป็นโทเค็นจนกว่าฉันจะลองจริง มันอาจช่วยได้ว่าเลย์เอาต์ white-space ส่วนตัวของฉันนั้นตรงกับสิ่งที่ทุกคนใน python-land ใช้ อาจเป็นเพราะฉันเป็นคนที่เรียบง่าย แต่ถ้าคุณจะเยื้อง ๆ ทำไมต้องกังวลกับ {} s? ฉันเห็นข้อโต้แย้งที่ชัดเจนสำหรับแต่ละด้าน: ใช้ช่องว่าง: ช่วยลดการเยื้องที่ไม่สอดคล้องกันในโค้ด ล้างหน้าจอโดยแทนที่โทเค็นที่มองเห็นได้ด้วยช่องว่างเพื่อให้บริการในวัตถุประสงค์เดียวกัน ใช้โทเค็น: ง่ายกว่าในการตัดและวางรหัสในระดับที่แตกต่างกัน (คุณไม่ต้องแก้ไขการเยื้อง) สอดคล้องกันมากขึ้น เครื่องมือแก้ไขข้อความบางส่วนแสดงพื้นที่ว่างต่างกัน ที่นิยมมากขึ้นในปัจจุบัน มีจุดใดที่ฉันพลาดหรือไม่ คุณชอบอันไหน? คำพูดใด ๆ ของปัญญาหลังจากทำงานกับคนใดคนหนึ่งเป็นเวลานาน? PS ฉันเกลียดเมื่อภาษาไม่ใช้โทเค็นเดียวกันสำหรับแต่ละโครงสร้างการควบคุม VB นั้นน่ารำคาญมากกับข้อความEnd IfและEnd Whileข้อความภาษาอื่น ๆ ส่วนใหญ่ใช้ {} เพื่อทุกสิ่ง แต่อาจเป็นหัวข้อสำหรับคำถามอื่น ...

4
วิธีที่ดีที่สุดในการจัดระเบียบไฟล์คลาสและส่วนต่อประสาน
ตกลง .. หลังจากการสนทนาทั้งหมดฉันเปลี่ยนคำถามเล็กน้อยเพื่อให้สะท้อนตัวอย่างที่เป็นรูปธรรมที่ฉันจัดการดีขึ้น ฉันมีสองคลาสModelOneและคลาสModelTwoเหล่านี้มีฟังก์ชันการทำงานที่คล้ายกัน แต่ไม่เกี่ยวข้องกัน แต่ฉันมีชั้นที่สามCommonFuncที่มีบางฟังก์ชันการทำงานของประชาชนที่จะดำเนินการทั้งในModelOneและและได้รับปัจจัยจากการเป็นต่อModelTwo DRYทั้งสองรุ่นมีอินสแตนซ์ภายในModelMainคลาส (ซึ่งเป็นอินสแตนซ์ในระดับที่สูงขึ้น ฯลฯ - แต่ฉันหยุดที่ระดับนี้) ภาชนะ IoC ว่าฉันใช้เป็นไมโครซอฟท์สามัคคี ฉันไม่แกล้งทำเป็นผู้เชี่ยวชาญ แต่ฉันเข้าใจว่าคุณลงทะเบียน tuple ของ interface และ class กับ container และเมื่อคุณต้องการ class คอนกรีตคุณถาม IoC container สำหรับวัตถุใด ๆ ที่ตรงกับ interface เฉพาะ นี่ก็หมายความว่าสำหรับทุกวัตถุที่ฉันต้องการยกตัวอย่างจาก Unity จะต้องมีอินเตอร์เฟสที่ตรงกัน เพราะแต่ละชั้นเรียนของฉันดำเนินการที่แตกต่างกัน (และไม่ทับซ้อนกัน) ฟังก์ชั่นนี้หมายถึงว่ามีอัตราส่วน 1: ระหว่างอินเตอร์เฟซและชั้น 1 1 อย่างไรก็ตามมันไม่ได้หมายความว่าฉันกำลังเขียนอินเทอร์เฟซสำหรับแต่ละคลาสที่ฉันเขียน ดังนั้นรหัสฉลาดฉันท้ายด้วย2 : public interface ICommonFunc { …

4
ฉันควรทำการแปลเป็นภาษาท้องถิ่นที่ไหน (ฝั่งเซิร์ฟเวอร์หรือฝั่งไคลเอ็นต์)
ขณะนี้ฉันกำลังพัฒนาเว็บแอปพลิเคชันใหม่โดยใช้ไคลเอนต์ JavaScript ที่มีการสื่อสารกับบริการเว็บ REST หลายแห่งบนเซิร์ฟเวอร์ของฉัน แอปพลิเคชันนั้นมีวัตถุประสงค์เพื่อใช้ในประเทศอย่างน้อยสองที่มีภาษาแตกต่างกันดังนั้นเราจึงจำเป็นต้องแปลเป็นภาษาท้องถิ่น คำถามของฉันคือที่ใดที่ฉันควรจัดการการแปล: บริการ REST ควรได้รับการร้องขอและส่งคำตอบกับข้อมูลที่แปลแล้วหรือลูกค้าควรรับและส่งข้อมูลทั่วไปแล้วรับผิดชอบในการแปล

3
เมื่อใช้ DDD และ CRQS ควรเป็นหนึ่งเหตุการณ์ต่อคำสั่งใช่หรือไม่
ฉันกำลังมองหาวิธีในการออกแบบแอพพลิเคชั่น ddd ด้วยระเบียบการตั้งค่า สมมติว่า "ลูกค้า" โดยรวมมีคำสั่งที่กำหนดไว้ว่า "FillProfile" มันจะยกเหตุการณ์ "ProfileFilled" อย่างมีเหตุผล มีกรณีที่คำสั่งจะเพิ่มมากกว่าเหตุการณ์หรือคำสั่งที่จะเพิ่มเหตุการณ์ที่แตกต่างกันตามตรรกะบางอย่าง? หรือนี่คือความสัมพันธ์แบบ 1 - 1 เสมอ (คำสั่ง 1 จะไม่มีการเพิ่มหรือเป็นเหตุการณ์ประเภทที่กำหนดไว้เสมอ) ฉันถามสิ่งนี้เพราะถ้านี่เป็นความจริงที่ว่าคำสั่งจะเพิ่มเหตุการณ์เดียวกันฉันสามารถสร้างระบบการประชุมของฉันในความเป็นจริงนั้น ฉันรู้ว่า "RaiseEvent" จะส่งผลให้ "EventRaised" ...

6
เมื่อใดที่ enums ไม่มีกลิ่นรหัส
ภาวะที่กลืนไม่เข้าคายไม่ออก ฉันได้อ่านหนังสือฝึกหัดที่ดีที่สุดมากมายเกี่ยวกับการฝึกฝนเชิงวัตถุและหนังสือเกือบทุกเล่มที่ฉันอ่านมีส่วนที่พวกเขาบอกว่า enums เป็นกลิ่นรหัส ฉันคิดว่าพวกเขาพลาดส่วนที่พวกเขาอธิบายเมื่อ enums ถูกต้อง ดังนั้นฉันกำลังมองหาแนวทางและ / หรือกรณีการใช้งานที่ enums ไม่ได้กลิ่นรหัสและในความเป็นจริงโครงสร้างที่ถูกต้อง แหล่งที่มา: "คำเตือนตามกฎของหัวแม่มือ, enums เป็นรหัสที่มีกลิ่นและควรได้รับการ refactored เพื่อเรียน polymorphic [8]" Seemann, Mark, การฉีดพึ่งพาใน. Net, 2011, p. 342 [8] Martin Fowler et al., Refactoring: การปรับปรุงการออกแบบของรหัสที่มีอยู่ (นิวยอร์ก: Addison-Wesley, 1999), 82 บริบท สาเหตุของภาวะที่กลืนไม่เข้าคายไม่ออกของฉันคือการซื้อขาย API พวกเขาให้กระแสข้อมูล Tick โดยส่งผ่านวิธีนี้: void TickPrice(TickType tickType, double value) ที่ไหน …

4
การจัดการการตรวจสอบฝั่งไคลเอ็นต์และฝั่งเซิร์ฟเวอร์ในที่เดียว
ฉัน 100% ในคณะกรรมการที่มีกรณีที่หนึ่งควร แน่นอนใช้ทั้งฝั่งไคลเอ็นต์และเซิร์ฟเวอร์ด้านการตรวจสอบข้อมูล อย่างไรก็ตามในกรอบงานและสภาพแวดล้อมที่ฉันได้ทำงานวิธีที่ฉันเห็นไม่เคยแห้ง เวลาส่วนใหญ่ไม่มีแผนหรือรูปแบบ - การตรวจสอบความถูกต้องถูกเขียนในสเป็คโมเดลและการตรวจสอบความถูกต้องจะถูกเขียนในแบบฟอร์มในมุมมอง (หมายเหตุ: ประสบการณ์มือแรกของฉันส่วนใหญ่คือ Rails, Sinatra และ PHP w / jQuery) ดูเหมือนว่ามันจะไม่ยากที่จะสร้างเครื่องกำเนิดไฟฟ้าซึ่งได้รับชุดการตรวจสอบความถูกต้อง (เช่นชื่อรุ่นเขตข้อมูลสภาพ) สามารถผลิตวัสดุทั้งฝั่งไคลเอ็นต์และฝั่งเซิร์ฟเวอร์ที่จำเป็น อีกทางหนึ่งเครื่องมือดังกล่าวสามารถทำการตรวจสอบความถูกต้องฝั่งเซิร์ฟเวอร์ (เช่นvalidatesรหัสในรูปแบบ ActiveRecord) และสร้างการตรวจสอบความถูกต้องฝั่งไคลเอ็นต์ (เช่นปลั๊กอิน jQuery ซึ่งจะถูกนำไปใช้กับแบบฟอร์ม เห็นได้ชัดว่าข้างต้นเป็นเพียง "เฮ้ฉันมีความคิดนี้" รำพึงและไม่ใช่ข้อเสนออย่างเป็นทางการ สิ่งนี้เป็นเรื่องยากกว่าที่คิดเมื่อฉันคิด นั่นนำมาสู่คำถาม: คุณจะออกแบบเทคนิค "การเขียนครั้งเดียวทำงานบนเซิร์ฟเวอร์และไคลเอนต์" ได้อย่างไรเพื่อการตรวจสอบข้อมูล หัวข้อย่อยที่เกี่ยวข้อง: เครื่องมือเช่นนี้มีอยู่สำหรับเฟรมเวิร์กเฉพาะหรือเทคโนโลยีไคลเอ็นต์เซิร์ฟเวอร์หรือไม่? gotchas หรือความท้าทายที่สำคัญด้วยการพยายามรักษาชุดตรวจสอบเพียงชุดเดียวคืออะไร

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