คำถามติดแท็ก design

คำถามเกี่ยวกับการแก้ปัญหาและการวางแผนแก้ปัญหาผ่านการออกแบบซอฟต์แวร์

3
การออกแบบการทดสอบหน่วยสำหรับระบบ stateful
พื้นหลัง การทดสอบพัฒนาการขับเคลื่อนได้รับความนิยมหลังจากเรียนจบแล้วและในอุตสาหกรรม ฉันพยายามที่จะเรียนรู้ แต่สิ่งสำคัญบางอย่างยังคงหลบหนีฉัน ผู้เสนอ TDD พูดหลายสิ่งหลายอย่างเช่น (ต่อไปนี้เรียกว่า "หลักการยืนยันเดียว" หรือSAP ): บางครั้งฉันก็คิดว่าการทดสอบ TDD นั้นเรียบง่ายมีความหมายและสง่างามเท่าที่จะทำได้ บทความนี้สำรวจเล็กน้อยเกี่ยวกับสิ่งที่ต้องการทำแบบทดสอบที่ง่ายและย่อยสลายได้มากที่สุด: มีเป้าหมายสำหรับการยืนยันเดียวในแต่ละการทดสอบ ที่มา: http://www.artima.com/weblogs/viewpost.jsp?thread=35578 พวกเขายังพูดแบบนี้ (ซึ่งต่อไปจะเรียกว่า "หลักการวิธีการส่วนตัว" หรือPMP ): โดยทั่วไปคุณไม่ได้ทดสอบหน่วยวิธีการส่วนตัวโดยตรง เนื่องจากเป็นข้อมูลส่วนบุคคลให้พิจารณารายละเอียดการใช้งาน ไม่มีใครเคยเรียกหนึ่งในพวกเขาและคาดหวังว่ามันจะทำงานในรูปแบบเฉพาะ คุณควรทดสอบส่วนต่อประสานสาธารณะแทน หากวิธีการที่เรียกวิธีการส่วนตัวของคุณทำงานได้ตามที่คุณคาดไว้คุณจะถือว่าส่วนขยายนั้นวิธีส่วนตัวของคุณทำงานอย่างถูกต้อง ที่มา: คุณทำการทดสอบวิธีการส่วนตัวอย่างไร สถานการณ์ ฉันพยายามทดสอบระบบการประมวลผลข้อมูลที่เป็นรัฐ ระบบสามารถทำสิ่งที่แตกต่างกันสำหรับข้อมูลชิ้นเดียวกันที่ได้รับจากสถานะก่อนที่จะรับข้อมูลนั้น พิจารณาการทดสอบที่ตรงไปตรงมาที่สร้างสถานะขึ้นในระบบจากนั้นทดสอบพฤติกรรมที่วิธีการที่กำหนดไว้มีวัตถุประสงค์เพื่อทดสอบ SAP แนะนำว่าฉันไม่ควรทดสอบ "ขั้นตอนการสร้างรัฐ" ฉันควรสมมติว่าสถานะเป็นสิ่งที่ฉันคาดหวังจากรหัสการสะสมแล้วทดสอบการเปลี่ยนสถานะเดียวที่ฉันพยายามทดสอบ PMP แนะนำว่าฉันไม่สามารถข้ามขั้นตอน "state build up" นี้ได้และเพียงทดสอบวิธีการที่ควบคุมการทำงานนั้นอย่างอิสระ ผลลัพธ์ในรหัสจริงของฉันคือการทดสอบที่มีการป่องซับซ้อนซับซ้อนยาวและยากที่จะเขียน และหากการเปลี่ยนสถานะเปลี่ยนไปการทดสอบจะต้องเปลี่ยน ... ซึ่งจะดีกับการทดสอบขนาดเล็กที่มีประสิทธิภาพ แต่ใช้เวลานานมากและสับสนกับการทดสอบแบบป่องยาวเหล่านี้ ปกติแล้วจะทำอย่างไร?

7
ข้อมูลคงที่ควรถูกเก็บไว้ในฐานข้อมูลหรือที่อื่น?
ฉันกำลังทำงานกับซอฟต์แวร์บางอย่างในขณะนี้และฉันไม่แน่ใจว่าจะใช้เส้นทางนี้กับอะไร ฉันมีข้อมูลบางอย่างเพื่อเก็บไว้ที่ไหนสักแห่งบนอุปกรณ์มือถือ ข้อมูลจะไม่เปลี่ยนแปลงและมีความสัมพันธ์แบบลำดับชั้นและจะใช้ในการเติมการแสดงผล ข้อมูลนี้มีจำนวนพอสมควร ฉันมีตัวเลือกดังต่อไปนี้: ชุดของ enums / วัตถุ ไฟล์ XML ฐานข้อมูล SQLite แบบฝัง ในกรณีพิเศษนี้ฉันคิดว่าตัวเลือก enums นั้นใช้งานได้น้อยที่สุด แต่ฉันได้กลิ่นจากข้อมูลที่ฝังอยู่ในโค้ดเช่นนั้น ไฟล์ XML เหมาะสมที่สุดที่ฉันคิด แต่การแยกวิเคราะห์จะเป็นแหล่งข้อมูลที่ดูเหมือนว่าเสียเพราะจะไม่มีการเปลี่ยนแปลง ฐานข้อมูลควรให้ประสิทธิภาพการทำงานน้อยลง แต่ดูเหมือนว่า overkill สำหรับข้อมูลคงที่ เส้นทางการออกแบบที่ถูกต้องที่นี่คืออะไร? หมายเหตุ:การเปลี่ยนแปลง 'ไม่' ฉันหมายถึงว่ามันจะไม่ค่อยเปลี่ยนแปลง ข้อมูลที่เป็นปัญหานั้นเป็นแบบจำลองของมาตรฐานรัฐบาลดังนั้นอาจมีการเปลี่ยนแปลงในบางจุดในอนาคต แต่จะไม่เป็นประจำและจะไม่อัปเดตซอฟต์แวร์ของเราโดยอัตโนมัติเมื่อการเปลี่ยนแปลงมาตรฐานทำได้ดี ก่อให้เกิดการเปลี่ยนแปลงในข้อกำหนดของเรา
20 design 

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

3
เราจะสร้างซอฟต์แวร์ที่เสียบปลั๊กได้อย่างไร
หากคุณมีแอพพลิเคชั่นบางประเภทและคุณต้องการให้ผู้ใช้ของคุณสามารถเขียนปลั๊กอินได้แอปพลิเคชันควรได้รับการออกแบบอย่างไร? คุณต้องคำนึงถึงอะไรรูปแบบการออกแบบสำหรับ ฯลฯ นี้คืออะไร

2
มีทางเลือกอะไรบ้างในการใช้เลย์เอาต์ HTML / CSS สำหรับเว็บไซต์ [ปิด]
ต้องการปรับปรุงโพสต์นี้หรือไม่? ให้คำตอบโดยละเอียดสำหรับคำถามนี้รวมถึงการอ้างอิงและคำอธิบายว่าทำไมคำตอบของคุณถึงถูกต้อง คำตอบที่ไม่มีรายละเอียดเพียงพออาจแก้ไขหรือลบออกได้ เป็นการยากที่จะบอกสิ่งที่ถูกถามที่นี่ คำถามนี้คลุมเครือคลุมเครือไม่สมบูรณ์กว้างเกินไปหรือโวหารและไม่สามารถตอบได้อย่างสมเหตุสมผลในรูปแบบปัจจุบัน สำหรับความช่วยเหลือในการทำความเข้าใจคำถามนี้เพื่อที่จะสามารถเปิด, ไปที่ศูนย์ช่วยเหลือ ปิดให้บริการใน7 ปีที่ผ่านมา มีผู้ใช้อยู่หรือไม่หรือแม้แต่แค่ความพยายามในการสร้างมาร์กอัปหรือนิพจน์แบบเป็นโปรแกรมสำหรับการออกแบบเลย์เอาท์ของเว็บไซต์อื่นที่ไม่ใช่ HTML / CSS? หากมีคนอื่นออกมีและพวกเขาดูเหมือนจะไม่ใช้งานหนัก ทำไมนี้

3
ไม่ทำให้สมาชิกสาธารณะเสมือนหรือเป็นนามธรรม - จริงเหรอ?
ย้อนกลับไปในยุค 2000 เพื่อนร่วมงานคนหนึ่งของฉันบอกฉันว่ามันเป็นรูปแบบการต่อต้านเพื่อทำให้วิธีการสาธารณะเสมือนหรือนามธรรม ตัวอย่างเช่นเขาถือว่าคลาสเช่นนี้ไม่ได้ออกแบบมาอย่างดี: public abstract class PublicAbstractOrVirtual { public abstract void Method1(string argument); public virtual void Method2(string argument) { if (argument == null) throw new ArgumentNullException(nameof(argument)); // default implementation } } เขากล่าวว่า นักพัฒนาของคลาสที่ได้รับที่ใช้Method1และการแทนที่Method2มีการทำซ้ำการตรวจสอบอาร์กิวเมนต์ ในกรณีที่ผู้พัฒนาคลาสพื้นฐานตัดสินใจที่จะเพิ่มบางสิ่งรอบ ๆ ส่วนที่กำหนดเองได้Method1หรือMethod2ใหม่กว่าเขาจะไม่สามารถทำได้ เพื่อนร่วมงานของฉันเสนอวิธีการนี้แทน: public abstract class ProtectedAbstractOrVirtual { public void Method1(string argument) { if (argument …

1
URL REST ที่ซ้อนกันและรหัสหลักซึ่งมีการออกแบบที่ดีกว่า
เอาล่ะเรามีสองทรัพยากร: และAlbum Songนี่คือ API: GET,POST /albums GET,POST /albums/:albumId GET,POST /albums/:albumId/songs GET,POST /albums/:albumId/songs/:songId เรารู้ว่าเราเกลียดบางเพลงมันถูกเรียกSusyเช่น เราควรsearchลงมือทำที่ไหน? คำถามอื่น โอเคตอนนี้มันเป็นของจริงมากขึ้น เราเปิดอัลบั้มที่ 1 และโหลดเพลงทั้งหมด เราสร้างวัตถุ JS removeแต่ละเก็บข้อมูลเพลงและมีวิธีการบางอย่างเพื่อให้: update, เพลงวัตถุมี ID ชื่อและสิ่งของ แต่ไม่มีเงื่อนงำเกี่ยวกับผู้ปกครองว่าเป็นของมันเพราะเราดึงรายชื่อเพลงตามการสืบค้นและมันจะไม่ดีที่จะส่งคืนรหัสผู้ปกครองด้วยกัน ฉันผิดหรือเปล่า? ดังนั้นฉันเห็นวิธีแก้ปัญหาเล็กน้อย แต่ฉันไม่แน่ใจจริงๆ ทำให้ id หลักเป็นตัวเลือก - ตามที่ได้รับพารามิเตอร์ ฉันใช้วิธีนี้ในปัจจุบัน แต่ฉันรู้สึกว่ามันน่าเกลียด List,Create /songs?album=albumId Update,Delete /songs/:songId Get /songs/?name=susy # also, solution for first question เป็นลูกผสม …

10
เมื่อใดควรปรับปรุงซอฟต์แวร์ให้เหมาะสมเพื่อประสิทธิภาพที่ดีขึ้นตั้งแต่เริ่มต้นหรือสิ้นสุดการพัฒนา
ฉันเป็นนักพัฒนาซอฟต์แวร์รุ่นเยาว์และฉันสงสัยว่าเมื่อใดจะเป็นเวลาที่ดีที่สุดในการปรับแต่งซอฟต์แวร์เพื่อประสิทธิภาพที่ดีขึ้น (ความเร็ว) สมมติว่าซอฟต์แวร์มีขนาดไม่ใหญ่มากและซับซ้อนในการจัดการควรใช้เวลามากขึ้นในช่วงเริ่มต้นในการปรับให้เหมาะสมหรือควรพัฒนาซอฟต์แวร์ที่ใช้งานฟังก์ชั่นทั้งหมดอย่างถูกต้องแล้วดำเนินการปรับแต่งเพื่อประสิทธิภาพที่ดีขึ้นหรือไม่

5
“ ลำดับชั้นการจัดวางองค์ประกอบลึก” นั้นไม่ดีเช่นกันใช่ไหม
ขออภัยถ้า "ลำดับชั้นการแต่งเพลง" ไม่ใช่เรื่องอะไร แต่ฉันจะอธิบายสิ่งที่ฉันหมายถึงในคำถาม ไม่มีโปรแกรมเมอร์ OO ที่ยังไม่ได้พบกับรูปแบบของ "Keep hierarchies flat" หรือ "ชอบเรียงความมากกว่าการสืบทอด" และอื่น ๆ อย่างไรก็ตามลำดับชั้นขององค์ประกอบที่ลึกซึ้งดูเหมือนว่าจะมีปัญหาเช่นกัน สมมติว่าเราต้องการชุดของรายงานที่มีรายละเอียดผลลัพธ์ของการทดสอบ: class Model { // ... interface Array<Result> m_results; } ผลลัพธ์แต่ละรายการมีคุณสมบัติบางอย่าง สิ่งเหล่านี้รวมถึงเวลาของการทดสอบรวมถึงข้อมูลเมตาจากแต่ละขั้นตอนของการทดสอบ: enum Stage { Pre = 1, Post }; class Result { // ... interface Epoch m_epoch; Map<Stage, ExperimentModules> m_modules; } โอเคเยี่ยมเลย ตอนนี้แต่ละโมดูลการทดสอบมีสตริงที่อธิบายผลลัพธ์ของการทดสอบรวมถึงชุดของการอ้างอิงไปยังชุดตัวอย่างการทดลอง: class …

4
การมีตัวแปรอินสแตนซ์มากเกินไปนำไปสู่การทำซ้ำรหัสได้อย่างไร
ตามRefactoring เพื่อรูปแบบ : เมื่อคลาสพยายามทำมากเกินไปมันมักจะแสดงตัวแปรอินสแตนซ์มากเกินไป เมื่อคลาสมีตัวแปรอินสแตนซ์มากเกินไปรหัสที่ซ้ำกันจะไม่สามารถล้าหลังได้ การมีตัวแปรอินสแตนซ์มากเกินไปนำไปสู่การทำซ้ำรหัสได้อย่างไร

4
“ ใช้แผนที่แทนคลาสเพื่อแสดงข้อมูล” -Rich Hickey
ในวิดีโอนี้โดย Rich Hickeyผู้สร้าง Clojure เขาแนะนำให้ใช้แผนที่เพื่อแสดงข้อมูลแทนการใช้คลาสเพื่อเป็นตัวแทนของมันดังที่ทำใน Java ฉันไม่เข้าใจว่ามันจะดีกว่านี้ได้อย่างไรเนื่องจากผู้ใช้ API จะรู้ได้อย่างไรว่าปุ่มป้อนข้อมูลคืออะไรหากมีการแสดงเป็นแผนที่ ตัวอย่าง : PersonAPI { Person addPerson(Person obj); Map<String, Object> addPerson(Map<String, Object> personMap); } ในฟังก์ชั่นที่สองผู้ใช้ API จะรู้ได้อย่างไรว่าอินพุตใดที่จะสร้างบุคคล
19 java  design  class  clojure  map 

8
เป็นเรื่องปกติหรือไม่ที่โปรแกรมเมอร์จะไม่มีความคมชัด 100% เหนือรหัสของตัวเองในบางครั้ง? [ปิด]
ปิด คำถามนี้เป็นคำถามความคิดเห็นตาม ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้สามารถตอบข้อเท็จจริงและการอ้างอิงได้โดยแก้ไขโพสต์นี้ ปิดให้บริการใน5 ปีที่ผ่านมา ฉันไม่ใช่โปรแกรมเมอร์ผู้เชี่ยวชาญดังนั้นนี่อาจเป็นเหตุผล แต่ฉันสังเกตว่าเมื่อใดก็ตามที่ฉันสร้างรหัสที่ซับซ้อน (เช่นเกมหมากรุกที่ฉันเพิ่งทำ) ฉันสามารถเขียนรหัสที่ถูกต้องเพื่อให้โปรแกรมทำงานได้ แม้ว่าฉันจะพบว่าหลังจากนั้น - หรือหลังจากนั้นไม่กี่วินาที! - ฉันมักจะต้องหยุดและคิดว่ามันใช้งานได้อย่างไร? ไม่เพียงแค่นั้น แต่ฉันก็มักจะไม่คิดเกี่ยวกับรหัสและฉันเพิ่งพิมพ์ออกไป ตัวอย่างเช่นในเกมหมากรุกของฉันฉันตัดสินใจที่จะใช้อาเรย์ห้ามิติสำหรับการประมวลผลการเคลื่อนไหวและฉันพบว่าฉันสามารถทำได้โดยไม่ต้องคิดอย่างมีสติ อย่างไรก็ตามเมื่อฉันหยุดและอ่านมันฉันพบว่ามันท้าทายที่จะทำให้ฉันเข้าใจแนวคิดห้ามิติทั้งหมดและฉันใช้เวลาสองสามนาทีในการทำความเข้าใจสิ่งที่ฉันทำและวิธีการทำงานของรหัส เป็นเรื่องปกติหรือไม่ที่โปรแกรมเมอร์เมื่อเขียนโค้ดที่ซับซ้อนเพื่อไม่เข้าใจสิ่งที่พวกเขากำลังทำอยู่ครึ่งเวลา?

8
ประโยชน์ของการสลับใช้ Strings ใน Java 7 คืออะไร
เมื่อฉันเริ่มโปรแกรมใน Java ความจริงที่ว่างบ switch ไม่ได้ทำให้สายผิดหวัง จากนั้นในการใช้ Enums ฉันตระหนักถึงประโยชน์ที่คุณได้รับกับพวกเขาแทนที่จะส่งผ่านค่าดิบ - ความปลอดภัยของประเภท ฉันกำลังดิ้นรนที่จะนึกถึงสถานการณ์ที่มี SE7 ตอนนี้ฉันตัดสินใจที่จะใช้สวิตช์ที่มีสตริงเป็นอินพุตแทนที่จะเป็น Enums หากพวกเขาจะดำเนินการผ่านการเปลี่ยนสตริงทั้งหมด (เช่นมากกว่าการแข่งขันบางส่วนหรือ regex) ก็ดูเหมือนจะไม่ให้เหตุผลน้อยกว่ารหัสที่จะเปลี่ยน และด้วยเครื่องมือ IDE และอัตราส่วนการอ่าน - เขียนของการเขียนโค้ดฉันจะมีความสุขมากขึ้นในการสร้าง Enum พิเศษโดยอัตโนมัติมากกว่าการส่งผ่านค่าสตริง พวกเขานำประโยชน์อะไรมาให้เราในฐานะโปรแกรมเมอร์ จานหม้อไอน้ำน้อยลงหรือไม่ ไม่รู้สึกว่าภาษากำลังใช้งานคุณสมบัตินี้ แม้ว่าอาจจะมีกรณีการใช้งานที่ฉันมองเห็น

4
วิธีการสร้างรหัส OO ที่ดีขึ้นในแอปพลิเคชันที่ขับเคลื่อนด้วยฐานข้อมูลเชิงสัมพันธ์ซึ่งฐานข้อมูลนั้นได้รับการออกแบบไม่ดี
ฉันกำลังเขียนโปรแกรมเว็บ Java ที่ประกอบด้วยส่วนใหญ่ของหน้าคล้ายกันที่ทุกหน้ามีหลายตารางและตัวกรองที่ใช้กับตารางเหล่านั้น ข้อมูลในตารางเหล่านี้มาจากฐานข้อมูล SQL ฉันใช้ myBatis เป็น ORM ซึ่งอาจไม่ใช่ตัวเลือกที่ดีที่สุดในกรณีของฉันเนื่องจากฐานข้อมูลได้รับการออกแบบไม่ดีและ mybatis เป็นเครื่องมือที่มุ่งเน้นฐานข้อมูลมากขึ้น ฉันพบว่าฉันกำลังเขียนรหัสซ้ำกันมากมายเนื่องจากเนื่องจากการออกแบบที่ไม่ดีของฐานข้อมูลฉันต้องเขียนแบบสอบถามที่แตกต่างกันสำหรับสิ่งที่คล้ายกันเนื่องจากแบบสอบถามเหล่านั้นอาจแตกต่างกันมาก นั่นคือฉันไม่สามารถหาพารามิเตอร์ของแบบสอบถามได้อย่างง่ายดาย สิ่งนี้แพร่กระจายเข้าไปในรหัสของฉันและแทนที่จะเติมแถวในคอลัมน์ในตารางของฉันด้วยการวนรอบแบบง่ายฉันมีรหัสเช่น: ได้รับข้อมูล (p1, ... , ปี่); รับข้อมูลB (p1, ... , pi); รับข้อมูลC (p1, ... , pi); รับข้อมูลD (p1, ... , pi); ... และในไม่ช้านี้จะระเบิดเมื่อเรามีตารางที่แตกต่างกันและมีคอลัมน์ต่างกัน นอกจากนี้ยังเพิ่มความซับซ้อนให้กับความจริงที่ว่าฉันใช้ "ประตู" ซึ่งมีผลต่อการแมปวัตถุกับองค์ประกอบ html ในหน้าเว็บ ดังนั้นโค้ด Java ของฉันจึงกลายเป็นอะแดปเตอร์ระหว่างฐานข้อมูลและส่วนหน้าซึ่งทำให้ฉันสร้างการเดินสายจำนวนมากโค้ดสำเร็จรูปที่มีตรรกะบางอย่างแทรกอยู่ภายใน วิธีการแก้ปัญหาที่ถูกต้องจะห่อหุ้ม mappers ORM ด้วย extralayer …

2
ฉันจะแยกส่วนติดต่อผู้ใช้ออกจากตรรกะทางธุรกิจในขณะที่ยังคงรักษาประสิทธิภาพได้อย่างไร
สมมติว่าฉันต้องการที่จะแสดงรูปแบบที่แสดงถึง 10 วัตถุที่แตกต่างกันใน combobox ตัวอย่างเช่นฉันต้องการให้ผู้ใช้เลือกหนึ่งแฮมเบอร์เกอร์จาก 10 เมนูที่มีมะเขือเทศ เนื่องจากฉันต้องการแยก UI และตรรกะฉันจะต้องผ่านแบบฟอร์มการเป็นตัวแทนสตริงของแฮมเบอร์เกอร์เพื่อแสดงบน Combobox มิฉะนั้น UI จะต้องขุดลงในช่องวัตถุ จากนั้นผู้ใช้จะเลือกแฮมเบอร์เกอร์จากคอมโบบ็อกซ์แล้วส่งกลับไปที่คอนโทรลเลอร์ ตอนนี้ผู้ควบคุมจะต้องหาแฮมเบอร์เกอร์อีกครั้งโดยอ้างอิงจากการแทนค่าสตริงที่ใช้โดยแบบฟอร์ม (อาจเป็น ID?) มันไม่มีประสิทธิภาพอย่างไม่น่าเชื่อใช่หรือไม่? คุณมีวัตถุที่คุณต้องการเลือกแล้ว หากคุณส่งแบบฟอร์มไปยังวัตถุทั้งหมดแล้วส่งคืนวัตถุเฉพาะคุณจะไม่ต้อง refind อีกครั้งในภายหลังเนื่องจากแบบฟอร์มส่งคืนการอ้างอิงไปยังวัตถุนั้นแล้ว ยิ่งกว่านั้นถ้าฉันผิดและคุณควรส่งวัตถุทั้งหมดไปยังแบบฟอร์มฉันจะแยก UI ออกจากตรรกะได้อย่างไร

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