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

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

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

4
ออกแบบซอฟต์แวร์ด้วยการหลอก?
คุณรู้วิธีที่ดีในการออกแบบซอฟต์แวร์ (เช่นเขียนลง) ด้วยวิธีการตามหลอกรหัสหรือไม่? ฉันยังใหม่กับการออกแบบซอฟต์แวร์และอ่านข้อมูลเกี่ยวกับ UML ลำดับชั้นชั้นต่ำต้อยของฉันนั้นดีอย่างไรก็ตามหลังจากมันซับซ้อนฉันสังเกตว่าด้วยภาพ "เห็นภาพทั้งหมด" ฉันสามารถใช้โครงสร้างที่แตกต่างเพื่อความยืดหยุ่นในอนาคตที่มากขึ้น เนื่องจาก Python นั้นดีในการสร้างต้นแบบฉันเกือบจะดีที่เพิ่งเริ่มเขียน แต่ก็ไม่มากนัก ดังนั้นฉันจึงลองไดอะแกรมคลาส UML แต่พวกเขาดูเหมือนจะไม่ช่วยฉันมากนัก ปัญหาที่ฉันแก้ไขที่นั่นฉันสามารถทำในหัวของฉัน แต่ฉันสังเกตเห็นความต้องการการออกแบบเพิ่มเติมเมื่อฉันเริ่ม pseudocode วิธีการที่เกิดขึ้นจริง ดังนั้นหากคุณต้องการออกแบบโดย pseudocode คุณจะทำอย่างไร ฉันเชื่อว่าฉันเป็นวิธีที่ประมาณ 1 ต่อ 1 กับรหัสทำงานได้ดีที่สุด แต่ซอฟต์แวร์ UML ส่วนใหญ่ไม่ได้แสดงรหัสของวิธีการ (ตรงข้ามกับรูปภาพในเช่น GoF) มีคนอ้างว่า UML สำหรับเอกสารและการนำเสนอเท่านั้นและไม่เหมาะสำหรับการออกแบบ? ฉันก็รู้สึกเช่นนั้น ฉันคิดว่า UML บริสุทธิ์และกระดานไวท์บอร์ดแบบง่าย ๆ เป็นวิธีการออกแบบซอฟต์แวร์จนกระทั่ง googling ฉันพบ Envision APDT ดังนั้นการพัฒนาความคล่องตัวเป็นสิ่งที่ฉันควรระวังหรือพวกเขาสุ่มเรียกว่าเปรียว - ฉันคิดว่าเปรียวเป็นเรื่องเกี่ยวกับตารางเท่านั้นหรือไม่ หรือฉันกำลังออกแบบอย่างไม่ถูกต้อง (ด้วย …
9 agile  uml  design 

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

6
วิธีที่ดีที่สุดในการแยกวิเคราะห์ไฟล์
ฉันพยายามที่จะหาทางออกที่ดีสำหรับการทำ parser ให้บางส่วนของรูปแบบไฟล์ที่มีชื่อเสียงออกมีเช่น: EDIFACTและTRADACOMS หากคุณไม่คุ้นเคยกับมาตรฐานเหล่านี้ลองดูตัวอย่างนี้จาก Wikipedia: ดูตัวอย่างข้อความ EDIFACT ด้านล่างที่ใช้เพื่อตอบคำขอความพร้อมใช้งานของผลิตภัณฑ์: - UNA:+.? ' UNB+IATB:1+6XPPC+LHPPC+940101:0950+1' UNH+1+PAORES:93:1:IA' MSG+1:45' IFT+3+XYZCOMPANY AVAILABILITY' ERC+A7V:1:AMD' IFT+3+NO MORE FLIGHTS' ODI' TVL+240493:1000::1220+FRA+JFK+DL+400+C' PDI++C:3+Y::3+F::1' APD+714C:0:::6++++++6X' TVL+240493:1740::2030+JFK+MIA+DL+081+C' PDI++C:4' APD+EM2:0:130::6+++++++DA' UNT+13+1' UNZ+1+1' เซ็กเมนต์ UNA เป็นทางเลือก หากมีจะระบุอักขระพิเศษที่จะใช้ในการตีความส่วนที่เหลือของข้อความ มีหกตัวอักษรตาม UNA ในลำดับนี้: องค์ประกอบตัวแยกองค์ประกอบข้อมูล (: ในตัวอย่างนี้) ตัวแยกองค์ประกอบข้อมูล (+ ในตัวอย่างนี้) การแจ้งเตือนทศนิยม (. ในตัวอย่างนี้) ตัวละครที่วางจำหน่าย (ในตัวอย่างนี้) สงวนต้องเป็นพื้นที่ ตัวยุติเซ็กเมนต์ …

4
ทางเลือกที่ใช้ได้จริงใด ๆ กับรูปแบบสัญญาณ + สล็อตสำหรับการเขียนโปรแกรม GUI?
GUI Toolkits ส่วนใหญ่ทุกวันนี้ใช้รูปแบบสัญญาณ + สล็อต มันเป็น Qt และ GTK + ถ้าฉันไม่ผิดใครเป็นผู้บุกเบิก คุณรู้หรือไม่ว่าวิดเจ็ตหรือวัตถุกราฟิก (บางครั้งแม้แต่รายการที่ไม่ได้แสดง) จะส่งสัญญาณไปยังตัวจัดการหลักของลูป ตัวจัดการหลักของวงแล้วเรียกเหตุการณ์ , การเรียกกลับหรือช่องที่ได้รับมอบหมายสำหรับเครื่องมือวัตถุที่ / กราฟิก โดยปกติจะมีvirtualตัวจัดการเหตุการณ์เริ่มต้น (และในกรณีส่วนใหญ่) ชุดเครื่องมือสำหรับการจัดการสัญญาณที่กำหนดไว้ล่วงหน้าทั้งหมดซึ่งแตกต่างจากการออกแบบก่อนหน้านี้ที่ผู้พัฒนาต้องเขียนทั้ง main-loop และ handler สำหรับแต่ละข้อความ (คิดว่า WINAPI) ผู้พัฒนาเพียง แต่ต้องกังวลเกี่ยวกับสัญญาณที่เขาต้องการในการใช้งานฟังก์ชั่นใหม่ ตอนนี้การออกแบบนี้ถูกใช้ในชุดเครื่องมือที่ทันสมัยที่สุดเท่าที่ฉันรู้ มี Qt, GTK +, FLTK เป็นต้นมี Java Swing C # มีคุณสมบัติภาษาสำหรับมัน (เหตุการณ์และผู้รับมอบสิทธิ์) และ Windows Forms ได้รับการพัฒนาในการออกแบบนี้ ในความเป็นจริงในทศวรรษที่ผ่านมาการออกแบบสำหรับการเขียนโปรแกรม GUI นี้ได้กลายเป็นมาตรฐานที่ไม่ได้เขียนไว้ …

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

1
เป็นการออกแบบที่ไม่ดีหรือไม่? จะปรับปรุงได้อย่างไร?
ฉันเขียนสิ่งต่อไปนี้กลับมา แต่ฉันมาตรวจสอบเมื่อเร็ว ๆ นี้และตอนนี้ไม่คิดว่ามันจะเป็นการออกแบบที่ดี การออกแบบสำหรับชั้นฐานข้อมูลแบบแยกส่วนโดยใช้ Entity Framework 4 มีวัตถุฐานข้อมูลเดียวซึ่งโหลดกรอบ (เอนทิตี้ของ) เอนทิตีกรอบบริบทจากไลบรารีภายนอกในตำแหน่งที่ระบุและอินสแตนซ์ของบริบทที่โหลดจะถูกเก็บไว้ในตารางแฮช ชื่อของพวกเขา (EG "ContentMgmtContext") การติดต่อกับฐานข้อมูลทั้งหมดในระบบนี้ผ่านขั้นตอนการจัดเก็บ ในการโทรไปยังฐานข้อมูลลายเซ็นวิธีการสืบค้นจะมีลักษณะดังนี้ List<TReturn> Query<TReturn>(string Context, string Procedure, TransactionScope Scope, List<ObjectParameter> QueryParameters) ต้นแบบนี้เป็นสิ่งที่ฉันชอบ อย่างไรก็ตามมีข้อเสียเปรียบที่สำคัญอย่างหนึ่งสำหรับวิธีนี้: when using the database layer, the code using it has to have a reference to the library in which the context is stored, …
9 design 

8
อะไรคือสาเหตุที่นำไปสู่ซอฟต์แวร์ที่มีการทำ overbloated [ปิด]
ปิด คำถามนี้จะต้องมีมากขึ้นมุ่งเน้น ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้มุ่งเน้นที่ปัญหาเดียวโดยแก้ไขโพสต์นี้ ปิดให้บริการใน5 ปีที่ผ่านมา วันนี้ฉันตัดสินใจที่จะทำการติดตั้งใหม่ทั้งหมดสำหรับไดรเวอร์ Creative Sound Blaster เนื่องจากพวกเขาเริ่มผิดพลาดด้วยตัวเองทุกครั้ง และนั่นหมายความว่าฉันต้องทำตามขั้นตอนการล้างทั้งหมด และนั่นใช้เวลาเกือบ 2 ชั่วโมง .. และอย่างสุจริตฉันไม่เห็นเหตุผลว่าทำไม! และถึงแม้ว่า Creative, IMHO จะเป็นผู้ชนะอันดับหนึ่งในการผลิตซอฟต์แวร์ที่มีคุณภาพต่ำซึ่งไม่สามารถใช้งานได้ แต่ปัญหาของ bloat นั้นไม่ได้ จำกัด เฉพาะพวกเขาเท่านั้น พีซีที่มีไดรเวอร์กล้องดิจิตอลของ Canon จะมีรายการ Canon ประมาณ 10 รายการที่เชื่อมต่อกับการเชื่อมต่อทุกประเภท Visual Studio เป็นตัวอย่างที่ดีมีรายการประมาณ 50 รายการสำหรับการติดตั้งแบบเต็มและการซ่อมแซมสิ่งนั้นเป็นไปได้เฉพาะเมื่อใช้ nuking ที่สมบูรณ์ และเมื่อมันยังจัดการทำลายการติดตั้งระบบปฏิบัติการทั้งหมดเมื่อฉันอัพเกรดจาก VS2k8 เป็น VS2k8SP1 หรือบางสิ่งบางอย่าง ตามที่ปรากฎว่าพื้นที่ว่าง 5GB นั้นไม่เพียงพอสำหรับแพทช์ 300Mb …

3
Git ถูกออกแบบมาอย่างไร?
ที่ทำงานของฉันเพิ่งเปลี่ยนมาใช้ Git และฉันก็รัก (และเกลียดชัง!) ฉันรักมันมากและมันก็ทรงพลังมาก ส่วนเดียวที่ฉันเกลียดคือบางครั้งมันมีพลังมากเกินไป (และอาจทำให้สับสน / สับสนเล็กน้อย) คำถามของฉันคือ ... Git ถูกออกแบบมาอย่างไร เพียงใช้มันในระยะเวลาสั้น ๆ คุณจะรู้สึกว่าสามารถจัดการเวิร์กโฟลว์ที่คลุมเครือจำนวนมากซึ่งระบบควบคุมเวอร์ชันอื่นไม่สามารถทำได้ แต่มันก็ให้ความรู้สึกหรูหราภายใต้ และรวดเร็ว! ไม่มีข้อสงสัยในส่วนของพรสวรรค์ของไลนัส แต่ฉันสงสัยว่าการออกแบบโดยรวมของคอมไพล์อิงจากบางสิ่งหรือไม่? ฉันได้อ่านเกี่ยวกับ BitKeeper แล้ว แต่บัญชีก็ขาดแคลนรายละเอียดทางเทคนิค การบีบอัดกราฟการกำจัดหมายเลขการแก้ไขการเน้นการแยกการ stashing การควบคุมระยะไกล ... มันมาจากไหน? ลีนุสเคาะมันออกจากสวนสาธารณะและลองครั้งแรกเลยทีเดียว! มันค่อนข้างดีที่จะใช้เมื่อคุณผ่านช่วงการเรียนรู้

8
การจัดโครงสร้างใหม่หรืออัพเกรดฐานข้อมูลเพื่อจัดการกับคุณสมบัติใหม่
คำตอบหลายคำถามของสคีมาฐานข้อมูลแนะนำตารางเพิ่มเติมเพื่อทำให้ฐานข้อมูลเป็นปกติสำหรับคุณลักษณะที่ไม่ได้เป็นส่วนหนึ่งของข้อกำหนดปัจจุบัน (ตาราง UserDepartment เพื่ออนุญาตให้มีความสัมพันธ์แบบหลายต่อกลุ่มระหว่างพนักงาน / ผู้ใช้และแผนกต่างๆ เป็นของ.). ไม่ขัดกับการฟื้นฟู ดูเหมือนว่าเมื่อมันมาถึงการออกแบบฐานข้อมูลมีแรงผลักดันที่จะรวมคุณสมบัติที่พวกเขา 'มั่นใจ' จะมีใครบางคนต้องการในอนาคต มันยากที่จะเพิ่มตาราง / สาขาไปยังฐานข้อมูลเพื่อรองรับคุณสมบัติที่มีแนวโน้มที่จะวิศวกรมากเกินไปหรือไม่? พวกเขาจะไม่ได้รับการปรับปรุงใหม่หรืออัปเกรดเหมือนกับส่วนที่เหลือของแอปหากจำเป็นหรือไม่ การทำสิ่งต่าง ๆ ไม่ใช่เรื่องสนุก แต่การย้ายข้อมูลจากตารางหนึ่งไปยังตารางใหม่สามารถทำได้ แค่ไม่แน่ใจว่าแนวความคิดนี้จะจบลงที่ใด แก้ไข: มีความเกลียดชังในเรื่องนี้มากฉันสงสัยว่าหลายโครงการจบลงด้วยการไม่เพิ่มคุณสมบัติที่ต้องมีการเปลี่ยนแปลงฐานข้อมูลอย่างมากหรือเป็นแนวทางที่ไม่ได้รับการปรับให้เป็นมาตรฐานเช่นการเพิ่มฟิลด์ DepartmentID2 แทนตารางใหม่ ความต้องการหลายแผนกสำหรับพนักงานเป็นปัญหาโดเมนทั่วไป ฉันไม่ได้สังเกตเห็นสกีมาฐานข้อมูลจำนวนมากที่ทิ้งกระจุยกระจายกับความสัมพันธ์แบบหลายต่อหลายคน

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

6
ในกรณีที่เป็นระบบเชิงวัตถุคุณควรเลือก struct (สไตล์ C) บนคลาสหรือไม่?
C และเป็นไปได้ว่าภาษาอื่น ๆ มักจะมีstructคำหลักสำหรับการสร้างโครงสร้าง (หรือบางสิ่งในลักษณะที่คล้ายกัน) เหล่านี้คือ (อย่างน้อยใน C) จากมุมมองแบบง่ายเช่นคลาส แต่ไม่มี polymorphism, inheritance, methods และอื่น ๆ นึกถึงภาษาเชิงวัตถุ (หรือหลายกระบวนทัศน์) ด้วยโครงสร้าง C-style คุณจะเลือกเรียนที่ไหนดี? ตอนนี้ฉันไม่เชื่อว่าพวกเขาจะต้องใช้กับ OOP เนื่องจากคลาสดูเหมือนจะแทนที่วัตถุประสงค์ของพวกเขา แต่ฉันสงสัยว่ามีสถานการณ์ที่พวกเขาจะได้รับความนิยมมากกว่าคลาสในโปรแกรมเชิงวัตถุหรือในสถานการณ์ประเภทใด มีสถานการณ์เช่นนี้หรือไม่?

4
เหตุใดจึงไม่แนะนำให้มีคุณสมบัติแบบเซ็ตเท่านั้น
วันนี้ที่ทำงานเพื่อนร่วมงานคนหนึ่งของฉันตรวจสอบรหัสของฉันและแนะนำให้ฉันลบคุณสมบัติที่กำหนดเท่านั้นและใช้วิธีการแทน เมื่อเราทั้งคู่กำลังยุ่งกับสิ่งอื่นเขาบอกให้ฉันดูProperty Designหัวข้อจากหนังสือ "แนวทางการออกแบบกรอบงาน" ในหนังสือเล่มนี้ผู้เขียนพูดเพียงเพื่อหลีกเลี่ยง: คุณสมบัติที่มี setter ที่เข้าถึงได้กว้างกว่า getter และตอนนี้ฉันสงสัยว่าทำไมมันไม่แนะนำให้มีคุณสมบัติเป็นชุดเท่านั้น? บางคนสามารถอธิบายให้ฉันได้ไหม

7
การคัดลอกผลงาน HTML / CSS
ฉันกำลังเผชิญกับปัญหาที่นี่ ลูกค้าขอให้ฉันคัดลอกไซต์ที่ถูกต้องและแม้ว่าฉันพยายามโน้มน้าวให้เขาออกแบบใหม่เขาก็ไม่ยอมรับ เขาชอบการออกแบบนี้มาก (ในหมายเหตุด้านมันน่ากลัวและล้าสมัย แต่ฉันจะไม่พูดแบบนั้นกับเขา!) สองสามสัปดาห์ที่ผ่านมาเนื่องจากเรากำลังพูดถึงเรื่องนี้และฉันไม่รู้จะทำอย่างไร คุณมีประสบการณ์ที่คล้ายกันหรือไม่ ฉันไม่ต้องการสูญเสียลูกค้าเขาจ่ายดีและงานของเขาง่ายมาก ในเวลาเดียวกันฉันไม่ต้องการที่จะใส่ลายเซ็นของฉันในงานของคนอื่น ข้อเสนอแนะใด ๆ ประสบการณ์ที่คล้ายกัน? ขอบคุณ!
9 design  ethics 


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