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

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

2
คุณจะใช้ Google Search อย่างไร [ปิด]
สมมติว่าคุณถูกถามในการสัมภาษณ์ "คุณจะใช้ Google Search อย่างไร" คุณจะตอบคำถามนี้อย่างไร อาจมีแหล่งข้อมูลที่อธิบายว่ามีการใช้งานชิ้นส่วนบางอย่างใน Google ได้อย่างไร (BigTable, MapReduce, PageRank, ... ) แต่ไม่เหมาะสำหรับการสัมภาษณ์ คุณจะใช้สถาปัตยกรรมใดโดยรวมและคุณจะอธิบายสิ่งนี้อย่างไรในช่วงเวลา 15-30 นาที ฉันจะเริ่มต้นด้วยการอธิบายวิธีสร้างเครื่องมือค้นหาที่จัดการกับเอกสาร ~ 100k แล้วขยายสิ่งนี้ด้วยการส่งผ่านเอกสารประมาณ 50 ล้านเอกสารจากนั้นอาจก้าวกระโดดทางสถาปัตยกรรม / ทางเทคนิคอื่น นี่คือมุมมอง 20,000 ฟุต สิ่งที่ฉันต้องการคือรายละเอียด - คุณจะตอบอย่างไรในการสัมภาษณ์ โครงสร้างข้อมูลใดที่คุณจะใช้ สถาปัตยกรรมของคุณประกอบด้วยบริการ / เครื่องจักรใด เวลาแฝงของแบบสอบถามทั่วไปจะเป็นอย่างไร สิ่งที่เกี่ยวกับปัญหา failover / split brain? ฯลฯ ...

10
การทดสอบหน่วยช่วยการออกแบบได้อย่างไร
เพื่อนร่วมงานของเราส่งเสริมการทดสอบการเขียนในหน่วยเป็นจริงช่วยเราในการปรับแต่งการออกแบบและสิ่ง refactor ของเรา แต่ฉันไม่เห็นว่า หากฉันกำลังโหลดไฟล์ CSV และแยกวิเคราะห์หน่วยทดสอบ (ตรวจสอบความถูกต้องของค่าในฟิลด์) จะช่วยฉันยืนยันการออกแบบได้อย่างไร เขาพูดถึงการมีเพศสัมพันธ์และแบบแยกส่วนเป็นต้น แต่สำหรับฉันมันไม่สมเหตุสมผลเลย - แต่ฉันไม่มีพื้นหลังทางทฤษฎีมากนัก นั่นไม่เหมือนกับคำถามที่คุณทำเครื่องหมายว่าซ้ำกันฉันจะสนใจตัวอย่างจริง ๆ ว่ามันช่วยได้อย่างไรไม่ใช่แค่ทฤษฎีที่บอกว่า "ช่วยได้" ฉันชอบคำตอบด้านล่างและความคิดเห็น แต่ฉันต้องการเรียนรู้เพิ่มเติม

7
การอ้างอิงค่าฐานข้อมูลในตรรกะทางธุรกิจ
ฉันเดาว่านี่เป็นคำถามเกี่ยวกับการเข้ารหัสและแนวทางปฏิบัติที่ดีที่สุด สมมติว่าฉันมีรายการค่าให้บอกผลไม้ที่เก็บไว้ในฐานข้อมูล (จำเป็นต้องอยู่ในฐานข้อมูลเนื่องจากตารางจะใช้เพื่อวัตถุประสงค์อื่นเช่นรายงาน SSRS) พร้อมรหัส: 1 Apple 2 Banana 3 Grapes ฉันอาจนำเสนอให้กับผู้ใช้เขาเลือกหนึ่งมันจะถูกเก็บไว้ในโปรไฟล์ของเขาเป็น FavouriteFruit และ ID ที่เก็บไว้ในบันทึกของเขาในฐานข้อมูล เมื่อพูดถึงกฎเกณฑ์ทางธุรกิจ / ลอจิกโดเมนอะไรคือคำแนะนำสำหรับการกำหนดตรรกะให้กับค่าเฉพาะ พูดถ้าผู้ใช้เลือกองุ่นฉันต้องการทำงานพิเศษบางอย่างวิธีที่ดีที่สุดในการอ้างอิงค่าองุ่นคือ: // Hard coded name if (user.FavouriteFruit.Name == "Grapes") // Hard coded ID if (user.FavoriteFruit.ID == 3) // Grapes // Duplicate the list of fruits in an enum if (user.FavouriteFruit.ID == …
43 design 

7
เมื่อใดที่จะไม่ใช้หลักการผกผันของการพึ่งพาอาศัย
ฉันกำลังพยายามหา SOLID อยู่ ดังนั้นหลักการการพึ่งพาการพึ่งพาจึงหมายความว่าสองคลาสใด ๆ ควรสื่อสารผ่านอินเทอร์เฟซไม่ใช่โดยตรง ตัวอย่าง: หากclass Aมีวิธีที่คาดว่าตัวชี้ไปยังวัตถุของการพิมพ์แล้ววิธีนี้ควรจริงคาดว่าวัตถุของการพิมพ์class B abstract base class of Bสิ่งนี้จะช่วยในการเปิด / ปิดเช่นกัน โดยมีเงื่อนไขว่าฉันเข้าใจที่ถูกต้องคำถามของฉันจะเป็นมันเป็นวิธีที่ดีที่จะใช้นี้ทั้งหมดปฏิสัมพันธ์ชั้นเรียนหรือฉันควรพยายามที่จะคิดในแง่ของชั้น ? เหตุผลที่ฉันสงสัยก็เพราะเราจ่ายราคาบางอย่างสำหรับการทำตามหลักการนี้ บอกว่าฉันต้องใช้คุณสมบัติZนี้ หลังจากการวิเคราะห์ผมสรุปได้ว่าคุณลักษณะที่Zประกอบด้วยฟังก์ชั่นA, และB Cฉันจะสร้างซุ้มระดับZที่ผ่านอินเตอร์เฟซที่ใช้เรียนA, และB Cฉันเริ่มต้นการเข้ารหัสและการดำเนินการในบางจุดที่ผมทราบดีว่างานที่Zจริงประกอบด้วยฟังก์ชั่นA, และB Dตอนนี้ฉันต้องทำให้เสียCอินเตอร์เฟส, Cคลาสต้นแบบและเขียนDอินเตอร์เฟสและคลาสแยกกัน หากไม่มีอินเทอร์เฟซจะต้องเปลี่ยนคลาสเท่านั้น กล่าวอีกนัยหนึ่งคือการเปลี่ยนแปลงบางสิ่งฉันต้องเปลี่ยน 1. ผู้โทร 2. ส่วนต่อประสาน 3. การประกาศ 4. การดำเนินการ ในไพ ธ อนการใช้งานร่วมกันโดยตรงฉันจะต้องเปลี่ยนเฉพาะการใช้งานเท่านั้น

7
หลักการที่เป็นของแข็งเทียบกับ YAGNI
หลักการ SOLID กลายเป็น YAGNI เมื่อใด ในฐานะโปรแกรมเมอร์เราทำการแลกเปลี่ยนตลอดเวลาระหว่างความซับซ้อนการบำรุงรักษาเวลาในการสร้างและอื่น ๆ ในบรรดาคนอื่น ๆ แนวทางที่ฉลาดที่สุดสองข้อในการเลือกอยู่ในใจของฉันคือหลักการของ SOLID และ YAGNI หากคุณไม่ต้องการมัน อย่าสร้างมันและรักษาความสะอาด ยกตัวอย่างเช่นตอนที่ฉันดูซีรีส์ dimecast บน SOLIDฉันเห็นว่ามันเริ่มจากโปรแกรมที่ค่อนข้างง่ายและกลายเป็นคอมเพล็กซ์ที่ค่อนข้างซับซ้อน (ตอนจบใช่ความซับซ้อนยังอยู่ในสายตาของคนดู) แต่ก็ยังทำให้ ฉันสงสัยว่า: เมื่อใดที่หลักการของ SOLID เปลี่ยนเป็นสิ่งที่คุณไม่ต้องการ หลักการที่มั่นคงทั้งหมดเป็นวิธีการทำงานที่เปิดใช้งานการเปลี่ยนแปลงในภายหลัง แต่ถ้าหากปัญหาในการแก้ไขเป็นเรื่องที่ค่อนข้างง่าย หรือหลักการของ SOLID เป็นสิ่งที่ใช้อยู่เสมอ ตามที่ถามในความคิดเห็น: หลักการที่เป็นของแข็ง YAGNI

6
บทบาทของนักพัฒนานำในทีมเปรียวคืออะไร?
ในทีมพัฒนาที่ไม่คล่องตัวนักพัฒนาที่เป็นผู้นำมักจะ : ตั้งค่ามาตรฐาน (การเข้ารหัสและอื่น ๆ ) วิจัยเทคโนโลยีใหม่สำหรับทีม กำหนดทิศทางทางเทคนิคสำหรับทีม มีการพูดครั้งสุดท้ายในเรื่อง ออกแบบสถาปัตยกรรมของระบบ อย่างไรก็ตามทีมเปรียวทำงานแตกต่างกัน: ทีมเปรียวจะพึ่งพาการออกแบบฉุกเฉินมากกว่าด้านหน้า ทีมว่องไวออกแบบร่วมกันแทนที่จะออกแบบโดยหนึ่งคน ทีมว่องไวตัดสินใจเลือกทิศทางด้านเทคนิคของตัวเอง สิ่งนี้จะปล่อยให้นักพัฒนานำในทีมเปรียวที่ไหน เป็นไปได้หรือไม่ที่จะมีผู้พัฒนาหลักในทีมที่คล่องตัว? ทีมเปรียวต้องการความรับผิดชอบที่แตกต่างจากผู้นำหรือไม่?

7
ฉันจะหยุดการออกแบบและเริ่มสร้างโครงการนี้ตามที่แนะนำโดยลูกค้าเป้าหมายของฉันได้อย่างไร [ปิด]
ฉันเป็นนักพัฒนารุ่นน้อง (ประมาณ 3 ปี) และที่งานของฉันเรากำลังอยู่ระหว่างการออกแบบระบบใหม่ ผู้พัฒนาหลักของฉันจะเป็นสถาปนิกหลัก แต่เขาท้าทายให้ฉันลองสร้างระบบด้วยตัวเอง (ในแบบคู่ขนาน) ในช่วงไม่กี่ครั้งของการระดมความคิดและเสนอสิ่งที่ฉันเห็นว่าเป็นคำแนะนำด้านสถาปัตยกรรมผู้นำของฉันได้ให้ข้อเสนอแนะแก่ฉันว่าสิ่งที่ฉันทำส่วนใหญ่คือ "การออกแบบ" และไม่ใช่ "การออกแบบสถาปัตยกรรม" เขาอธิบายถึงความแตกต่างในขณะที่การใช้งานสถาปัตยกรรมไม่เชื่อเรื่องพระเจ้าในขณะที่การออกแบบเป็นคำอธิบายของการดำเนินการ เขาบอกว่าฉันต้องถอดหมวกออกแบบและสวมหมวกสถาปนิกของฉัน เขาให้คำแนะนำเล็กน้อยกับฉันเกี่ยวกับการทำเช่นนั้น แต่ฉันอยากจะถามคุณเช่นกัน: ฉันจะออกจากโหมดผู้ออกแบบซอฟต์แวร์และเริ่มคิดเหมือนสถาปนิกได้อย่างไร ต่อไปนี้เป็นตัวอย่างของ "การออกแบบ" ที่ฉันเห็นว่าไม่เกี่ยวข้องกับสถาปัตยกรรมโดยผู้นำของฉัน: ฉันคิดอัลกอริทึมสำหรับการโหลดและการยกเลิกการโหลดทรัพยากรจากระบบของเราและลูกค้าของฉันบอกว่าอัลกอริทึมไม่ใช่สถาปัตยกรรม ฉันเกิดเหตุการณ์ต่าง ๆ ขึ้นมาระบบควรจะเพิ่มและสิ่งที่มันควรจะยกระดับ แต่สิ่งนี้ก็ดูเหมือนจะไม่ตัดเป็นสถาปัตยกรรม ฉันดูเหมือนจะจมอยู่กับรายละเอียดและก้าวถอยหลังไม่ไกลพอ ฉันพบว่าแม้เมื่อฉันคิดอะไรบางอย่างที่อยู่ในระดับสถาปัตยกรรมฉันก็มักจะไปถึงที่นั่นด้วยการลองใช้งานที่หลากหลายและการล้อเล่นรายละเอียดจากนั้นทำการสรุปและสรุป เมื่อฉันอธิบายสิ่งนี้กับผู้นำของฉันเขาบอกว่าฉันใช้วิธีการที่ผิด: ฉันต้องคิดว่า "จากบนลงล่าง" และไม่ใช่ "ลงล่าง" นี่คือรายละเอียดเฉพาะเพิ่มเติมเกี่ยวกับโครงการ : โครงการที่เราออกแบบคือเว็บแอปพลิเคชั่น ฉันประมาณรหัสประมาณ 10,000 บรรทัด เราเริ่มแล้ว ทีมวิศวกรของเราประมาณ 3-5 คน สิ่งที่ใกล้เคียงที่สุดที่ฉันสามารถเปรียบเทียบใบสมัครของเราคือ CMS ที่มีน้ำหนักเบา มันมีความซับซ้อนและข้อตกลงคล้ายกันส่วนใหญ่กับการโหลดและการขนถ่ายส่วนประกอบการจัดการเลย์เอาต์และโมดูลสไตล์ปลั๊กอิน แอปพลิเคชันคือ Ajax-y ผู้ใช้ดาวน์โหลดไคลเอ็นต์หนึ่งครั้งจากนั้นร้องขอข้อมูลตามที่ต้องการจากเซิร์ฟเวอร์ เราจะใช้รูปแบบ …

6
วิธีที่ถูกต้องในการทำงานกับนักออกแบบกราฟิกคืออะไร [ปิด]
เมื่อเร็ว ๆ นี้เราได้ทำงานร่วมกับนักออกแบบกราฟิก (จัดโดยลูกค้า) เพื่อจัดหาสกินสำหรับแอปพลิเคชัน Django + Bootstrap ที่เราสร้างขึ้น ผู้ออกแบบได้จัดเตรียมรูปภาพสแตติกของเลย์เอาต์ใหม่พร้อมกับเอกสารที่อธิบายถึงคุณลักษณะทางเทคนิคบางอย่าง (ขนาดตัวอักษรสีมิติต่างๆเป็นต้น) มันกลับกลายเป็นเสียเวลาอย่างไม่น่าเชื่อที่จะใช้สิ่งนี้ แม้ว่าไซต์ทั้งหมดจะเป็นหน้าแรกหน้าดัชนีและหน้ารายละเอียดครึ่งโหล แต่ฉันใช้เวลาอย่างน้อย 5 วันในการปรับใช้ CSS และ HTML การเปลี่ยนแปลง ดังนั้นฉันจะออกไปบนกิ่งไม้และเรียกสิ่งนี้ผิดวิธี วิธีการพื้นฐานของฉันคือ: เปรียบเทียบภาพนิ่งและการเรนเดอร์ปัจจุบันและสังเกตเห็นความแตกต่าง คาดเดาสิ่งที่การเปลี่ยนแปลงจะต้องมีใน CSS / HTML ทำการเปลี่ยนแปลงนั้น ไปที่ขั้นตอนที่ 1 ปัญหาเฉพาะบางอย่างคือฉันไม่เข้าใจว่าการออกแบบรวมการเปลี่ยนแปลงจาก 8 คอลัมน์เป็น 12 รูปภาพบางรูปที่ให้ในรูปแบบที่ไม่ถูกต้อง (.png's สามารถแสดงผลแตกต่างกันในเบราว์เซอร์ / แพลตฟอร์มที่แตกต่างกัน) CSS มวยปล้ำตามปกติเพื่อให้ได้การเรนเดอร์พิกเซลที่สมบูรณ์แบบเป็นต้นและบางครั้งฉันก็ต้องจัดเทมเพลต HTML ใหม่เพื่อให้ได้พฤติกรรมที่แน่นอน วิธีที่ถูกต้องคืออะไร?

3
ฉันควรใช้ไฟล์กำหนดค่าหรือฐานข้อมูลสำหรับจัดเก็บกฎทางธุรกิจหรือไม่
ฉันเพิ่งได้อ่านThe Pragmatic Programmerซึ่งระบุว่า: รายละเอียดทำให้รหัสเดิมของเรายุ่งเหยิงโดยเฉพาะอย่างยิ่งหากมีการเปลี่ยนแปลงบ่อยครั้ง ทุกครั้งที่เราต้องเข้าไปและเปลี่ยนรหัสเพื่อรองรับการเปลี่ยนแปลงบางอย่างในตรรกะทางธุรกิจหรือในกฎหมายหรือในรสนิยมส่วนตัวของผู้บริหารของวันที่เราจะเสี่ยงต่อการทำลายระบบ - การแนะนำข้อผิดพลาดใหม่ ล่าแอนดรู; โทมัสเดวิด (1999-10-20) โปรแกรมเมอร์ในทางปฏิบัติ: จาก Journeyman ถึง Master (จุดติดตั้ง 2651-2653) การศึกษาของเพียร์สัน (สหรัฐอเมริกา) จุด Edition. ขณะนี้ฉันกำลังเขียนโปรแกรมเว็บแอปที่มีบางรุ่นที่มีคุณสมบัติที่สามารถมาจากชุดของค่าเท่านั้นเช่น (ไม่ใช่ตัวอย่างจริงเนื่องจากข้อมูลแอปบนเว็บเป็นความลับ): light-> type = sphere / cube / cylinder ประเภทไฟสามารถเป็นค่าสามค่าข้างต้นเท่านั้น แต่ตาม TPP ฉันควรเขียนโค้ดราวกับว่าพวกเขาสามารถเปลี่ยนและวางค่าของพวกเขาในไฟล์ปรับแต่งได้ เนื่องจากมีหลายเหตุการณ์ในแอปนี้คำถามของฉันคือ: ฉันควรเก็บค่าเหล่านี้ไว้ใน: ไฟล์ปรับแต่ง: 'light-types' => array(sphere, cube, cylinder), 'other-type' => value, 'etc' => etc-value ตารางเดียวในฐานข้อมูลที่มีหนึ่งบรรทัดสำหรับแต่ละรายการกำหนดค่า …

15
มันไม่ได้ตั้งใจที่จะทำให้ฟังก์ชั่นที่เป็นหลักเปลี่ยนชื่อฟังก์ชั่นในตัวหรือไม่?
ฉันสับสนกับฟังก์ชั่นขั้นต่ำและสูงสุดในบางบริบท ในบริบทเดียวเมื่อคุณใช้ฟังก์ชั่นเพื่อรับค่าที่มากหรือน้อยกว่าสองค่าก็จะไม่มีปัญหา ตัวอย่างเช่น, //how many autographed CD's can I give out? int howManyAutographs(int CDs, int Cases, int Pens) { //if no pens, then I cannot sign any autographs if (Pens == 0) return 0; //I cannot give away a CD without a case or a case without a CD return …

9
เราจำเป็นต้องทำการบันทึกเมื่อทำ TDD หรือไม่?
เมื่อทำการ Red, Green & Refactor cycle เราควรเขียนโค้ดขั้นต่ำเพื่อผ่านการทดสอบ นี่คือวิธีที่ฉันได้รับการสอนเกี่ยวกับ TDD และวิธีที่หนังสือเกือบทั้งหมดบรรยายกระบวนการ แต่สิ่งที่เกี่ยวกับการเข้าสู่ระบบ? จริงๆแล้วฉันไม่ค่อยได้ใช้การบันทึกในแอพพลิเคชั่นเว้นแต่มีบางสิ่งที่ซับซ้อนจริงๆที่เกิดขึ้นอย่างไรก็ตามฉันได้เห็นโพสต์มากมายที่พูดถึงความสำคัญของการบันทึกที่เหมาะสม ดังนั้นนอกเหนือจากการบันทึกข้อยกเว้นฉันไม่สามารถพิสูจน์ความสำคัญที่แท้จริงของการบันทึกในแอปพลิเคชันที่ผ่านการทดสอบที่เหมาะสม (การทดสอบหน่วย / การรวม / การยอมรับ) ดังนั้นคำถามของฉันคือ: เราจำเป็นต้องเข้าสู่ระบบหากเรากำลังทำ TDD อยู่หรือไม่? การทดสอบที่ล้มเหลวจะไม่เปิดเผยว่ามีอะไรผิดปกติกับแอปพลิเคชันหรือไม่ เราควรเพิ่มการทดสอบสำหรับกระบวนการบันทึกในแต่ละวิธีในแต่ละคลาสหรือไม่ หากระดับการบันทึกบางส่วนถูกปิดใช้งานในสภาพแวดล้อมการผลิตเช่นนั้นจะไม่แนะนำการพึ่งพาระหว่างการทดสอบและสภาพแวดล้อมหรือไม่? ผู้คนพูดถึงวิธีที่ง่ายในการดีบัก แต่หนึ่งในข้อดีหลักเกี่ยวกับ TDD คือฉันมักจะรู้ว่ามีอะไรผิดปกติเนื่องจากการทดสอบที่ล้มเหลว มีบางอย่างที่ฉันพลาดไปไหม

6
ทำไมหลีกเลี่ยงการสืบทอด Java "ขยาย"
Jame Gosling กล่าว “ คุณควรหลีกเลี่ยงการสืบทอดการปฏิบัติเมื่อทำได้” และใช้การสืบทอดส่วนต่อประสานแทน แต่ทำไม เราจะหลีกเลี่ยงการสืบทอดโครงสร้างของวัตถุโดยใช้คำสำคัญ "ขยาย" และในเวลาเดียวกันทำให้รหัสของเราเป็นวัตถุเชิง? ใครช่วยกรุณายกตัวอย่าง Object Oriented ที่แสดงแนวคิดนี้ในสถานการณ์เช่น "สั่งซื้อหนังสือในร้านหนังสือ"

7
มันเป็นการปฏิบัติที่ไม่ถูกต้องหรือไม่ที่จะมีส่วนต่อประสานเพื่อกำหนดค่าคงที่หรือไม่?
ฉันกำลังเขียนคลาสชุดทดสอบ Junit ใน Java มีค่าคงที่หลายค่าเช่นสตริงที่ฉันต้องการในคลาสทดสอบที่แตกต่างกัน ฉันกำลังคิดเกี่ยวกับอินเทอร์เฟซที่กำหนดพวกเขาและทุกชั้นทดสอบจะใช้มัน ประโยชน์ที่ฉันเห็นมี: เข้าถึงค่าคงที่ได้ง่าย: MY_CONSTANTแทนThatClass.MY_CONSTANT แต่ละค่าคงที่กำหนดเพียงครั้งเดียว วิธีนี้ค่อนข้างดีหรือไม่ดี? ฉันรู้สึกว่าใช้แนวคิดของอินเตอร์เฟสแบบไม่เหมาะสม คุณสามารถตอบโดยทั่วไปเกี่ยวกับอินเทอร์เฟซ / ค่าคงที่ แต่ยังเกี่ยวกับการทดสอบหน่วยหากมีบางสิ่งที่พิเศษเกี่ยวกับมัน

3
AngularJS: จัดโครงสร้างเว็บแอปพลิเคชั่นด้วย ng-apps หลายตัว
blogosphere มีบทความจำนวนหนึ่งเกี่ยวกับหัวข้อของแนวทางการจัดทำแอป AngularJS เช่นสิ่งเหล่านี้ (และอื่น ๆ ): http://www.johnpapa.net/angular-app-structuring-guidelines/ http://codingsmackdown.tv/blog/2013/04/19/angularjs-modules-for-great-justice/ http://danorlando.com/angularjs-architecture-understanding-modules/ http://henriquat.re/modularizing-angularjs/modularizing-angular-applications/modularizing-angular-applications.html อย่างไรก็ตามสถานการณ์หนึ่งที่ฉันยังไม่เจอสำหรับแนวทางและแนวปฏิบัติที่ดีที่สุดคือกรณีที่คุณมีแอปพลิเคชันเว็บขนาดใหญ่ที่มีแอพ "มินิสปา" หลายตัวและแอปมินิสปาทั้งหมดแชร์รหัสจำนวนหนึ่ง ฉันไม่ได้อ้างถึงกรณีที่พยายามมีng-appการประกาศหลายครั้งในหน้าเดียวกัน ค่อนข้างฉันหมายถึงส่วนต่าง ๆ ของไซต์ขนาดใหญ่ที่มีng-appการประกาศเฉพาะของตนเอง ดังที่ Scott Allen เขียนไว้ในบล็อกOdeToCodeของเขา: สถานการณ์หนึ่งที่ฉันไม่พบว่าได้รับการแก้ไขเป็นอย่างดีคือสถานการณ์ที่มีหลายแอปอยู่ในแอปพลิเคชันเว็บที่ดีกว่าเดิมและต้องการรหัสที่ใช้ร่วมกันบางอย่างกับลูกค้า มีแนวทางใดที่แนะนำให้ทำผิดพลาดเพื่อหลีกเลี่ยงหรือโครงสร้างตัวอย่างที่ดีของสถานการณ์นี้ที่คุณสามารถชี้ไปได้หรือไม่? อัพเดท - 9/10/2558 โครงการหนึ่งที่มีกลยุทธ์องค์กรที่น่าสนใจคือ MEAN.JS และโฟลเดอร์โมดูล https://github.com/meanjs/mean https://github.com/meanjs/mean/tree/master/modules อีกตัวอย่างหนึ่งมาจากตัวอย่าง ASP.NET Music Store SPA https://github.com/aspnet/MusicStore https://github.com/aspnet/MusicStore/tree/master/src/MusicStore.Spa/ng-apps

13
การใช้พารามิเตอร์บูลีนผิดพลาดหรือไม่
ตามที่มันเป็นความผิดที่จะใช้พารามิเตอร์แบบบูลเพื่อตรวจสอบพฤติกรรม? ฉันรู้ถึงความสำคัญของการหลีกเลี่ยงการใช้พารามิเตอร์บูลีนเพื่อกำหนดพฤติกรรมเช่น: รุ่นเดิม public void setState(boolean flag){ if(flag){ a(); }else{ b(); } c(); } เวอร์ชั่นใหม่: public void setStateTrue(){ a(); c(); } public void setStateFalse(){ b(); c(); } แต่วิธีการเกี่ยวกับกรณีที่พารามิเตอร์บูลีนจะใช้ในการกำหนดค่าแทนพฤติกรรม? เช่น: public void setHint(boolean isHintOn){ this.layer1.visible=isHintOn; this.layer2.visible=!isHintOn; this.layer3.visible=isHintOn; } ฉันกำลังพยายามกำจัดการตั้งค่าสถานะ isHintOn และสร้าง 2 ฟังก์ชันที่แยกกัน: public void setHintOn(){ this.layer1.visible=true; this.layer2.visible=false; this.layer3.visible=true; } public …

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