คำถามติดแท็ก software-craftsmanship

14
สิ่งที่ควรทำก่อนหน้า: YAGNI หรือ Good Design
YAGNIควรใช้จุดไหนในการต่อต้านการเขียนโค้ดที่ดีและในทางกลับกัน ฉันกำลังทำงานในโครงการในที่ทำงานและต้องการแนะนำมาตรฐานรหัสที่ดีให้กับเพื่อนร่วมงานของฉันอย่างช้าๆ (ปัจจุบันไม่มีและทุกอย่างก็แค่แฮ็คเข้าด้วยกันโดยไม่มีสัมผัสหรือเหตุผล) แต่หลังจากสร้างชุดของคลาส (เรา อย่าทำ TDD หรือน่าเสียดายที่การทดสอบหน่วยใด ๆ เลย) ฉันถอยหลังไปหนึ่งก้าวและคิดว่ามันเป็นการละเมิด YAGNI เพราะฉันรู้ด้วยความมั่นใจว่าเราไม่ต้องการขยายชั้นเรียนเหล่านี้ นี่คือตัวอย่างที่เป็นรูปธรรมของสิ่งที่ฉันหมายถึง: ฉันมีชั้นการเข้าถึงข้อมูลห่อชุดของขั้นตอนการจัดเก็บซึ่งใช้รูปแบบ Repository สไตล์พื้นฐานกับฟังก์ชั่น CRUD ขั้นพื้นฐาน IRepositoryเนื่องจากมีกำมือของวิธีการที่ทุกชั้นเรียนที่เก็บของฉันต้องฉันสร้างอินเตอร์เฟซทั่วไปสำหรับเก็บของฉันเรียกว่า อย่างไรก็ตามฉันได้สร้างอินเทอร์เฟซ "ตัวทำเครื่องหมาย" (เช่นอินเทอร์เฟซที่ไม่เพิ่มฟังก์ชันการทำงานใหม่) สำหรับที่เก็บแต่ละประเภท (เช่นICustomerRepository) และคลาสคอนกรีตนำไปใช้ ฉันได้ทำสิ่งเดียวกันกับการใช้ Factory เพื่อสร้างออบเจ็กต์ทางธุรกิจจาก DataReaders / DataSets ที่ส่งคืนโดย Stored Procedure ลายเซ็นของคลาสที่เก็บของฉันมีแนวโน้มที่จะมีลักษณะเช่นนี้: public class CustomerRepository : ICustomerRepository { ICustomerFactory factory = null; public CustomerRepository() : this(new …

4
คุณควรนำอะไรมาไว้ในตารางในฐานะสถาปนิกซอฟต์แวร์ [ปิด]
ปิด. คำถามนี้เป็นคำถามปิดหัวข้อ ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัพเดตคำถามเพื่อให้เป็นหัวข้อสำหรับ Software Engineering Stack Exchange ปิดให้บริการใน4 ปีที่แล้ว มีการหลายคำถามที่มีคำตอบที่ดีเกี่ยวกับบทบาทของสถาปนิกซอฟต์แวร์ (SA) ในStackOverflowและโปรแกรมเมอร์ SE ฉันพยายามถามคำถามที่เน้นกว่าเล็กน้อย คำจำกัดความของ SA นั้นกว้างดังนั้นคำถามนี้จึงให้คำจำกัดความของ SA ดังนี้: สถาปนิกซอฟต์แวร์แนะนำการออกแบบโดยรวมของโครงการมีส่วนร่วมกับความพยายามในการเขียนโค้ดดำเนินการตรวจสอบโค้ดและเลือกเทคโนโลยีที่จะใช้ ในคำอื่น ๆ ฉันไม่ได้พูดเกี่ยวกับส่วนที่เหลือของการบริหารจัดการและเสื้อกั๊กที่ SAs ประเภทคำ (บทกวีคำต่อไป) ยอด ถ้าฉันจะไล่ตามตำแหน่ง SA ทุกประเภทฉันไม่ต้องการออกห่างจากการเข้ารหัส ฉันอาจเสียสละเวลาเพื่อติดต่อกับลูกค้าและนักวิเคราะห์ธุรกิจ ฯลฯ แต่ฉันยังคงมีส่วนร่วมทางเทคนิคและฉันไม่เพียงแค่รู้ว่าเกิดอะไรขึ้นในการประชุม เมื่อคำนึงถึงประเด็นเหล่านี้แล้ว SA ควรนำอะไรมาสู่ตาราง พวกเขาควรเข้ามาในความคิดของ "วางกฎหมาย" (เพื่อพูด) และบังคับใช้เครื่องมือบางอย่างเพื่อให้เหมาะสมกับ "ทาง" คือแนวทางการเข้ารหัสแหล่งควบคุมรูปแบบเอกสาร UML ฯลฯ ? หรือพวกเขาควรระบุทิศทางเริ่มต้นและกลยุทธ์แล้ววางกลับเข้ามาตามความจำเป็นเพื่อแก้ไขทิศทางของเรือ? ขึ้นอยู่กับองค์กรซึ่งอาจไม่ทำงาน SA …

9
เส้นทางไปสู่การชำนาญ JavaScript คืออะไร? [ปิด]
ตามที่เป็นอยู่ในปัจจุบันคำถามนี้ไม่เหมาะสำหรับรูปแบบคำถาม & คำตอบของเรา เราคาดหวังคำตอบที่จะได้รับการสนับสนุนจากข้อเท็จจริงการอ้างอิงหรือความเชี่ยวชาญ แต่คำถามนี้อาจเรียกร้องให้มีการถกเถียงอภิปรายโต้แย้งหรือการอภิปรายเพิ่มเติม หากคุณรู้สึกว่าคำถามนี้สามารถปรับปรุงและเปิดใหม่ได้โปรดไปที่ศูนย์ช่วยเหลือเพื่อขอคำแนะนำ ปิดให้บริการใน7 ปีที่ผ่านมา ฉันรู้ว่าเราเริ่มต้นด้วย JavaScript ได้อย่างไรเราตัดและวางส่วนย่อยเพื่อรับฟังก์ชั่นหรือการตรวจสอบความถูกต้องของฝั่งไคลเอ็นต์ แต่ถ้าคุณทำตามเส้นทางนี้ในการพยายามที่จะใช้พฤติกรรมการโต้ตอบที่หลากหลายมันใช้เวลาไม่นานก่อนที่คุณจะรู้ว่าคุณกำลังสร้าง Big Ball Of Mud ดังนั้นเส้นทางสู่ความเชี่ยวชาญในการเขียนโปรแกรมเลเยอร์การโต้ตอบคืออะไร? หนังสือแบบฝึกหัดแบบฝึกหัดและกระบวนการใดบ้างที่สนับสนุนความสามารถในการโปรแกรมจาวาสคริปต์ที่บำรุงรักษาได้ เราทุกคนรู้ว่าการฝึกฝนนั้นมีความสำคัญในความพยายามใด ๆ แต่ฉันกำลังมองหาเส้นทางที่คล้ายกับคำตอบที่นี่: /programming/2573135/

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

2
หลีกเลี่ยง getters และ setters โดยแสดงข้อมูลผู้ใช้
พื้นหลัง ฉันกำลังอ่าน "หนังสือรหัสสะอาด" และใน paralel ฉันกำลังทำงานกับวัตถุแบบคาลินิเทนิกกะตะเช่นบัญชีธนาคารและฉันติดอยู่กับกฎนั้น: กฎข้อที่ 9 ของวัตถุแบบคาลิสฟีนิกคือเราไม่ใช้ทะลุหรือเซ็ตเตอร์ ดูเหมือนจะสนุกมากและฉันเห็นด้วยกับหลักการนี้ ยิ่งไปกว่านั้นที่หน้า 98-99 ของ Clean Code ผู้เขียนอธิบายว่า getters / setters ทำลายสิ่งที่เป็นนามธรรมและเราไม่ต้องถามวัตถุของเรา แต่เราต้องบอกวัตถุของเรา มันทำให้รู้สึกที่สมบูรณ์แบบในใจของฉันและฉันเห็นด้วยกับหลักการนี้อย่างเต็มที่ ปัญหาเกิดขึ้นในทางปฏิบัติ บริบท ตัวอย่างเช่นฉันมีแอปพลิเคชันที่ฉันจะต้องแสดงรายชื่อผู้ใช้บางส่วนและเพื่อแสดงรายละเอียดผู้ใช้ ผู้ใช้ของฉันประกอบด้วย: -> Name --> Firstname --> String --> Lastname --> String -> PostalAddress --> Street --> String --> PostalCode --> String ปัญหา ฉันจะทำอย่างไรหรือฉันจะทำอย่างไรเพื่อหลีกเลี่ยง getters เมื่อฉันเพียงต้องการแสดงข้อมูลอย่างง่าย …
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.