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

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

7
คุณใช้โฟลตเมื่อใดและเมื่อไหร่ที่คุณจะใช้สองครั้ง
บ่อยครั้งในประสบการณ์การเขียนโปรแกรมของฉันฉันต้องตัดสินใจว่าฉันควรใช้ทศนิยมหรือสองเท่าสำหรับจำนวนจริงของฉัน บางครั้งฉันไปลอยบางครั้งฉันไปสำหรับสองครั้ง แต่จริง ๆ แล้วรู้สึกส่วนตัวมากกว่านี้ ถ้าฉันจะเผชิญหน้าเพื่อปกป้องการตัดสินใจของฉันฉันอาจจะไม่ให้เหตุผลที่ดี คุณใช้โฟลตเมื่อใดและเมื่อไหร่ที่คุณจะใช้สองเท่า คุณมักจะใช้สองครั้งต่อเมื่อมีข้อ จำกัด ของหน่วยความจำเกิดขึ้นและคุณจะต้องลอยตัว หรือคุณใช้งานแบบลอยตลอดเว้นแต่ความต้องการความแม่นยำต้องการให้คุณใช้สองเท่าหรือไม่ มีความแตกต่างอย่างมากเกี่ยวกับความซับซ้อนในการคำนวณของเลขคณิตพื้นฐานระหว่าง float และ double หรือไม่? ข้อดีและข้อเสียของการใช้ float หรือ double คืออะไร และคุณยังใช้คู่ยาวหรือไม่
194 c++  c  floating-point  numbers 

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

13
เหตุใดจึงต้องใช้ฐานข้อมูลแทนที่จะบันทึกข้อมูลลงดิสก์
แทนที่จะเป็นฐานข้อมูลฉันเพิ่งจัดลำดับข้อมูลของฉันไปยัง JSON บันทึกและโหลดลงดิสก์เมื่อจำเป็น การจัดการข้อมูลทั้งหมดถูกสร้างขึ้นในโปรแกรมซึ่งเร็วกว่าและง่ายกว่าการใช้คิวรี SQL ด้วยเหตุนี้ฉันจึงไม่เคยเข้าใจว่าทำไมฐานข้อมูลจึงมีความจำเป็น ทำไมหนึ่งควรใช้ฐานข้อมูลแทนการบันทึกข้อมูลลงดิสก์
193 database  sql  mysql  nosql 

17
เป็นการดีที่จะมีคีย์หลักจำนวนเต็ม autoincrement เสมอหรือไม่
ในฐานข้อมูลของฉันฉันมักจะติดนิสัยที่จะมีคีย์หลักจำนวนเต็มที่เพิ่มขึ้นอัตโนมัติพร้อมชื่อidสำหรับทุกตารางที่ฉันทำเพื่อที่ฉันจะได้ค้นหาที่ไม่ซ้ำสำหรับแถวใดแถวหนึ่ง นี่ถือว่าเป็นความคิดที่ไม่ดีหรือไม่? มีข้อเสียใด ๆ ในการทำเช่นนี้? บางครั้งฉันก็มีดัชนีหลายอย่างเช่นid, profile_id, subscriptionsที่idเป็นตัวระบุเฉพาะการprofile_idเชื่อมโยงไปยังต่างประเทศidของProfileตาราง ฯลฯ หรือมีสถานการณ์ที่คุณไม่ต้องการเพิ่มเขตข้อมูลดังกล่าวหรือไม่

20
`การแตก 'และ` การปฏิบัติการ' ที่แย่ ๆ
เจ้านายของฉันพูดถึงอย่างเมินเฉยว่าโปรแกรมเมอร์ที่ไม่ดีใช้breakและcontinueวนซ้ำ ฉันใช้มันตลอดเวลาเพราะมันสมเหตุสมผล ให้ฉันแสดงแรงบันดาลใจ: function verify(object) { if (object->value < 0) return false; if (object->value > object->max_value) return false; if (object->name == "") return false; ... } จุดที่นี่คือก่อนอื่นฟังก์ชันตรวจสอบว่าเงื่อนไขถูกต้องจากนั้นดำเนินการฟังก์ชันการทำงานจริง IMO เช่นเดียวกับลูป: while (primary_condition) { if (loop_count > 1000) break; if (time_exect > 3600) break; if (this->data == "undefined") continue; if (this->skip == …

5
อะไรคือนิสัยที่ดีในการออกแบบอาร์กิวเมนต์บรรทัดคำสั่ง
ขณะพัฒนาแอปพลิเคชันฉันเริ่มสงสัย - ฉันควรออกแบบอาร์กิวเมนต์บรรทัดคำสั่งได้อย่างไร จำนวนมากของโปรแกรมที่ใช้สูตรเช่นนี้หรือ-argument value วิธีการแก้ปัญหาที่เข้ามาอยู่ในใจของผมก็คือ/argument value argument:valueฉันคิดว่ามันดีเพราะไม่มีช่องว่างสีขาวไม่มีทางที่ค่าและการขัดแย้งสามารถทำให้ยุ่งเหยิงได้ นอกจากนี้ยังเป็นการง่ายที่จะแยกสตริงออกเป็นสอง:อักขระจากอักขระตัวแรกทางซ้าย คำถามของฉันคือ: -argument valueสูตรยอดนิยมนั้นดีกว่าargument:value(อ่านง่ายขึ้นเขียนง่ายขึ้นไร้ข้อผิดพลาดเข้าใจง่ายขึ้นโดยนักพัฒนาผู้เชี่ยวชาญ) หรือไม่ มีกฎที่รู้จักกันทั่วไปซึ่งฉันควรปฏิบัติตามในขณะที่ออกแบบอาร์กิวเมนต์บรรทัดคำสั่ง (นอกเหนือจากถ้ามันทำงานมันเป็น OK)? ขอรายละเอียดเพิ่มเติมฉันจะให้มัน อย่างไรก็ตามฉันคิดว่าพวกเขาไม่ควรส่งผลกระทบต่อคำตอบ คำถามเกี่ยวกับนิสัยที่ดีโดยทั่วไป ฉันคิดว่ามันเหมือนกันสำหรับแอปพลิเคชันทุกประเภท เรากำลังทำงานกับแอปพลิเคชั่นที่จะใช้ในสถานที่สาธารณะ (touch totems, table) แอปพลิเคชันเขียนโดยใช้ Qt Quick 5 (C ++, QML, JS) อุปกรณ์จะติดตั้ง Windows 8.1 / 10 เราจะให้ส่วนต่อประสานส่วนหน้าเพื่อจัดการอุปกรณ์ อย่างไรก็ตามผู้ดูแลระบบขั้นสูงบางรายอาจต้องการกำหนดค่าแอปพลิเคชันด้วยตนเอง มันไม่สำคัญมากนักจากธุรกิจ แต่เป็นเพราะฉันเห็นด้วยกับสิ่งที่Kilian Fothบอกว่าฉันไม่ต้องการให้ใบสมัครของฉันเจ็บปวดสำหรับผู้ใช้ ไม่พบในอินเทอร์เน็ตสิ่งที่ฉันต้องการฉันถามที่นี่ สำหรับผู้ใช้ Stack Exchange ขั้นสูง: ฉันต้องการให้คำถามนี้เป็นเรื่องทั่วไป บางทีอาจมีคุณสมบัติเป็น wiki …
190 design  parameters  cli 

8
การใช้ <? = tag ใน PHP เป็นเรื่องที่ผิดหรือไม่?
ฉันเพิ่งเจอแท็ก PHP &lt;?= ?&gt;นี้เมื่อเร็ว ๆ นี้และฉันลังเลที่จะใช้ แต่มันก็ยากที่ฉันต้องการให้คุณทำ ฉันรู้ว่ามันคือการปฏิบัติที่ดีที่จะใช้แท็กสั้น&lt;? ?&gt;และว่าเราควรจะใช้แท็กเต็มรูปแบบ&lt;?php ?&gt;แทน แต่สิ่งที่เกี่ยวกับเรื่องนี้อย่างใดอย่างหนึ่ง: &lt;?= ?&gt;? มันจะประหยัดการพิมพ์บางส่วนและมันจะดีกว่าสำหรับการอ่านรหัส IMO ดังนั้นแทนที่จะเป็นเช่นนี้: &lt;input name="someVar" value="&lt;?php echo $someVar; ?&gt;"&gt; ฉันสามารถเขียนแบบนี้ได้ซึ่งสะอาดกว่า: &lt;input name="someVar" value="&lt;?= $someVar ?&gt;"&gt; การใช้โอเปอเรเตอร์นี้ขมวดคิ้วอยู่หรือไม่?
189 php  shortcuts 

19
เมื่อใดที่จะชอบ ASP.NET WebForms มากกว่า MVC
ฉันรู้ว่า Microsoft ได้กล่าว ASP.NET MVC ไม่ใช่การแทนที่สำหรับ WebForms และนักพัฒนาบางคนบอกว่า WebForms นั้นพัฒนาได้เร็วกว่า MVC แต่ฉันเชื่อว่าความเร็วในการเขียนรหัสลงมาถึงระดับความสะดวกสบายด้วยเทคโนโลยีดังนั้นฉันไม่ต้องการคำตอบใด ๆ ในหลอดเลือดดำนั้น เนื่องจาก ASP.NET MVC ให้นักพัฒนาสามารถควบคุมแอปพลิเคชันของตนได้มากขึ้นเหตุใด WebForm จึงไม่ถือว่าล้าสมัย อีกทางเลือกหนึ่งเมื่อใดที่ฉันควรสนับสนุน WebForms ผ่าน MVC สำหรับการพัฒนาใหม่

12
มันเป็นการปฏิบัติที่ไม่ถูกต้องหรือไม่ที่จะเก็บไฟล์ขนาดใหญ่ (10 MB) ไว้ในฐานข้อมูล?
ขณะนี้ฉันกำลังสร้างเว็บแอปพลิเคชันที่อนุญาตให้ผู้ใช้จัดเก็บและแชร์ไฟล์ขนาด 1 MB - 10 MB สำหรับฉันแล้วดูเหมือนว่าการจัดเก็บไฟล์ในฐานข้อมูลจะทำให้การเข้าถึงฐานข้อมูลช้าลงอย่างมาก นี่เป็นข้อกังวลที่ถูกต้องหรือไม่? ควรเก็บไฟล์ไว้ในระบบไฟล์และบันทึกชื่อไฟล์และพา ธ ในฐานข้อมูลหรือไม่? มีแนวทางปฏิบัติที่ดีที่สุดเกี่ยวกับการจัดเก็บไฟล์เมื่อทำงานกับฐานข้อมูลหรือไม่? ฉันทำงานใน PHP และ MySQL สำหรับโครงการนี้ แต่เป็นปัญหาเดียวกันสำหรับสภาพแวดล้อมส่วนใหญ่ ( Ruby on Rails , PHP , .NET ) และฐานข้อมูล (MySQL, PostgreSQL )

2
AGPL - สิ่งที่คุณสามารถทำได้และสิ่งที่คุณทำไม่ได้
AGPL เป็นใบอนุญาตที่ค่อนข้างใหม่ที่ตั้งใจจะใช้กับเครือข่าย GPL-over-Networks อย่างไรก็ตามไม่ใช่การเป็นทนายความและไม่ได้อ่านใบขับขี่ทั้งหมดฉันไม่เข้าใจว่าคุณสามารถทำอะไรได้อย่างอิสระและไม่ได้ใช้ AGPL ความไม่แน่นอนของฉันถูกป้อนโดยโพสต์นี้เกี่ยวกับ MongoDB (ซึ่งเป็น AGPL) และมากยิ่งขึ้นโดยความคิดเห็นด้านล่าง หากเราติดตามความคิดเห็นปรากฎว่าคุณสามารถใช้ไลบรารี AGPL กับซอฟต์แวร์เซิร์ฟเวอร์เชิงพาณิชย์ของคุณได้ตราบใดที่คุณไม่ได้ทำการดัดแปลงไลบรารี เป็นอย่างนั้นเหรอ? หรือคุณต้องกระจายแอปพลิเคชันทั้งหมดของคุณเมื่อใช้ไลเซนส์ AGPL ไลเซนส์? กรณีที่มี MongoDB คือมันใช้ใบอนุญาต Apache สำหรับรหัสลูกค้าซึ่งโพสต์คำถามอื่น จะเกิดอะไรขึ้นถ้าคุณใช้ซอฟต์แวร์ AGPL แต่ปรับใช้เป็นแอปพลิเคชันอื่นที่คุณใช้ในเชิงพาณิชย์ ตัวอย่างเช่นใช้iText - เป็นไลบรารี AGPL: ถ้าคุณใช้และแก้ไขคุณต้องโอเพนซอร์สทั้งแอปพลิเคชันของคุณหรือคุณต้องแจกจ่ายเฉพาะการเปลี่ยนแปลงใน iText อีกครั้งหรือไม่ หากคุณใช้และไม่ได้ทำการแก้ไขคุณต้องเปิดโปรแกรมทั้งหมดของคุณหรือไม่? หากคุณห่อ iText ไว้ในแอปพลิเคชันอื่นที่คุณเริ่มเป็นกระบวนการแยกต่างหาก แต่ใช้มันจากแอปพลิเคชันหลักของคุณคุณควรจะเปิดทุกอย่างหรือไม่ (แอปพลิเคชัน wrapper จะเป็น HTTP-based API ซึ่งจะใช้ไฟล์ pdf และจะส่งคืนผลลัพธ์ของการใช้ iText เป็น JSON) สามารถใช้เพื่อหลีกเลี่ยงใบอนุญาต AGPL …
188 licensing  agpl 

22
ฉันจะจัดการความไม่เห็นด้วยในการตรวจสอบรหัสเกี่ยวกับกรณีขอบที่ไม่น่าได้อย่างไร
ฉันกำลังทำงานที่การเริ่มต้นของหุ่นยนต์ในทีมที่ครอบคลุมเส้นทางและหลังจากส่งคำขอการดึงรหัสของฉันจะได้รับการตรวจสอบ เพื่อนร่วมทีมของฉันซึ่งอยู่ในทีมมานานกว่าหนึ่งปีได้ให้ความคิดเห็นกับโค้ดของฉันที่แนะนำว่าฉันทำงานหนักกว่าที่ฉันเชื่อว่าจำเป็น ไม่ฉันไม่ใช่นักพัฒนาที่ขี้เกียจ ฉันชอบโค้ดที่สง่างามที่มีความคิดเห็นที่ดีชื่อตัวแปรการเยื้องและการจัดการเคสอย่างเหมาะสม อย่างไรก็ตามเขามีองค์กรประเภทอื่นที่ฉันไม่เห็นด้วย ฉันจะให้ตัวอย่าง: ฉันใช้เวลาหนึ่งวันในการเขียนกรณีทดสอบเพื่อเปลี่ยนเป็นอัลกอริธึมการเปลี่ยนผ่านที่ฉันทำ เขาแนะนำว่าฉันจัดการกับกรณีที่คลุมเครือซึ่งไม่น่าจะเกิดขึ้นจริง ๆ - ที่จริงฉันไม่แน่ใจว่ามันเป็นไปได้ที่จะเกิดขึ้น รหัสที่ฉันสร้างขึ้นนั้นใช้ได้กับกรณีทดสอบดั้งเดิมของเราและรหัสใหม่ที่ฉันพบ รหัสที่ฉันทำผ่านการจำลองมากกว่า 300 รายการของเราที่รันทุกคืน อย่างไรก็ตามในการจัดการกับกรณีที่คลุมเครือนี้จะใช้เวลา 13 ชั่วโมงซึ่งอาจใช้เวลากว่านี้ในการพยายามปรับปรุงประสิทธิภาพของหุ่นยนต์ เพื่อความชัดเจนอัลกอริธึมก่อนหน้านี้ที่เราใช้จนตอนนี้ยังไม่ได้จัดการกรณีที่คลุมเครือนี้และไม่เคยเกิดขึ้นในรายงาน 40k ที่สร้างขึ้นมาเลยแม้แต่ครั้งเดียว เราเป็นผู้เริ่มต้นและจำเป็นต้องพัฒนาผลิตภัณฑ์ ฉันไม่เคยตรวจสอบรหัสมาก่อนและฉันไม่แน่ใจว่าฉันเป็นคนโต้แย้งหรือไม่ ฉันควรจะเงียบและทำในสิ่งที่เขาพูด? ฉันตัดสินใจที่จะเดินหน้าต่อไปและเพิ่งจะเปลี่ยนแปลงแม้ว่าฉันจะไม่เห็นด้วยอย่างยิ่งว่ามันเป็นการใช้เวลาที่ดี ฉันเคารพเพื่อนร่วมงานของฉันและฉันยอมรับว่าเขาเป็นโปรแกรมเมอร์ที่ชาญฉลาด ฉันไม่เห็นด้วยกับเขาเพียงจุดเดียวและไม่รู้วิธีจัดการกับความขัดแย้งในการตรวจสอบโค้ด ฉันรู้สึกว่าคำตอบที่ฉันเลือกนั้นตรงตามเกณฑ์ของการอธิบายว่านักพัฒนารุ่นเยาว์สามารถรับมือกับความขัดแย้งในการตรวจสอบโค้ดได้อย่างไร

21
ส่วนใหญ่ของรหัสของฉันมีข้อบกพร่องในการออกแบบที่สำคัญ ปิดมันหรือแก้ไขมันตอนนี้เหรอ? [ปิด]
ฉันเป็นนักเรียนมัธยมปลายที่ทำงานในโครงการ C # กับเพื่อนของฉันเกี่ยวกับระดับทักษะเดียวกันกับฉัน จนถึงตอนนี้เราได้เขียนโค้ด 3,000 บรรทัดและโค้ดทดสอบ 250 บรรทัดในช่วง 100 คอมมิต เนื่องจากโรงเรียนฉันจึงเลื่อนโครงการไปสองสามเดือนและเมื่อเร็ว ๆ นี้ฉันสามารถเลือกได้อีกครั้ง เมื่อถึงเวลาหยิบขึ้นมาฉันเข้าใจว่ารหัสที่ฉันเขียนนั้นได้รับการออกแบบมาไม่ดีเช่นการรวมเธรดที่มากเกินไปในโหมดแสดงภาพการป้องกันสภาวะการแข่งขันที่ไม่ดีในการทำงานร่วมกันระหว่างซีพียู GPU และเกมตลับ เช่นเดียวกับรหัสที่ซ้ำซ้อนและสับสนเพียงอย่างเดียว ปัญหาคือฉันยังไม่เสร็จแม้ฟังก์ชั่นหลักของโปรแกรมของฉันดังนั้นฉันจึงไม่สามารถปรับโครงสร้างได้อย่างแท้จริงและฉันรู้สึกท้อแท้ที่จะรู้อย่างสมบูรณ์แบบว่าการออกแบบรหัสของฉันนั้นมีข้อบกพร่อง ในขณะเดียวกันฉันไม่ต้องการละทิ้งโครงการ มีความคืบหน้าเป็นจำนวนมากและงานต้องไม่ไปเสีย ฉันรู้สึกราวกับว่าฉันมีทางเลือกสองทาง: เพียงแค่ทำฟังก์ชั่นให้สมบูรณ์โดยการแก้ไขการออกแบบที่ไม่ดีและทำการปรับโครงสร้างใหม่เมื่อทุกอย่างทำงานหยุดทำงานทุกอย่างและทำงานเพื่อแก้ปัญหาทุกอย่างก่อนที่การทำงานจะเสร็จสิ้น ทั้งหมดนี้อยู่ในใจฉันใหม่อีกครั้งหรือทิ้งโครงการอย่างจริงจังเนื่องจากมีขนาดที่มากเกินไป จากประสบการณ์ของผู้อื่นในโครงการดังกล่าวการขอความช่วยเหลือในการกลับไปสู่เส้นทางที่ถูกต้องคืออะไร? จากคำตอบในเว็บไซต์นี้ฉันทามติทั่วไปคือการเขียนใหม่โดยไม่จำเป็นแต่เป็นตัวเลือกที่ใช้ได้หากไม่สามารถดูแลรักษารหัสได้โดยไม่ต้องเสียค่าใช้จ่ายมากเกินไป ฉันต้องการดำเนินโครงการนี้อย่างแท้จริง แต่อย่างที่มันเป็นรหัสของฉันไม่ได้ออกแบบมาอย่างดีพอสำหรับฉันที่จะดำเนินการต่อและความรู้สึกของความสิ้นหวังทำให้ฉันไม่สามารถดำเนินการต่อได้

15
ทำไมขนาดของโปรแกรมถึงใหญ่มาก
ถ้าเราดูโปรแกรมโบราณ Netscape Navigator หรือ Microsoft Word รุ่นก่อนหน้าโปรแกรมเหล่านั้นมีขนาดน้อยกว่า 50 MB ตอนนี้เมื่อฉันติดตั้ง google chrome ก็คือ 200 MB และ Slack เวอร์ชันเดสก์ท็อปคือ 300 MB ฉันอ่านเกี่ยวกับกฎบางอย่างที่โปรแกรมจะใช้หน่วยความจำที่มีอยู่ทั้งหมดไม่ว่าจะเป็นเท่าใด แต่ทำไม? ทำไมขนาดปัจจุบันของโปรแกรมจึงมีขนาดใหญ่เมื่อเทียบกับเมื่อ 10 หรือ 15 ปีก่อน? โปรแกรมไม่ทำงานอย่างมีนัยสำคัญมากขึ้นและดูไม่แตกต่างกันมาก มันคืออะไรหมูทรัพยากรตอนนี้หรือไม่


20
วิธีการค้นหาสิ่งที่ดีในการตรวจสอบรหัส?
หลังจากปัญหาคุณภาพที่ร้ายแรงในปีที่ผ่านมา บริษัท ของฉันเพิ่งเปิดตัวบทวิจารณ์โค้ด กระบวนการตรวจสอบโค้ดได้รับการแนะนำอย่างรวดเร็วโดยไม่มีหลักเกณฑ์หรือรายการตรวจสอบใด ๆ นักพัฒนาอีกคนและฉันที่เลือกที่จะตรวจสอบการเปลี่ยนแปลงทั้งหมดที่เกิดขึ้นกับระบบก่อนที่พวกเขาจะถูกรวมเข้ากับลำต้น เรายังได้รับเลือกให้เป็น "หัวหน้าฝ่ายเทคนิค" ซึ่งหมายความว่าเรามีความรับผิดชอบต่อคุณภาพของรหัส แต่เราไม่มีสิทธิ์ใด ๆ ในการดำเนินการเปลี่ยนแปลงในกระบวนการกำหนดผู้พัฒนาใหม่หรือระงับโครงการ ในทางเทคนิคเราสามารถปฏิเสธการรวมทำให้มันกลับไปสู่การพัฒนา ในความเป็นจริงสิ่งนี้จะจบลงบ่อยครั้งที่หัวหน้าของเราเรียกร้องให้ส่งมอบตรงเวลา ผู้จัดการของเราคือปริญญาโทบริหารธุรกิจซึ่งส่วนใหญ่เกี่ยวข้องกับการสร้างตารางเวลาของโครงการที่จะเกิดขึ้น ในขณะที่เขากำลังพยายามเขาแทบไม่รู้เลยว่าซอฟต์แวร์ของเราทำอะไรจากมุมมองทางธุรกิจและพยายามดิ้นรนเพื่อทำความเข้าใจแม้กระทั่งความต้องการขั้นพื้นฐานของลูกค้าโดยไม่มีคำอธิบายจากนักพัฒนา ในปัจจุบันการพัฒนานั้นดำเนินการในสาขาการพัฒนาใน SVN หลังจากนักพัฒนาคิดว่าเขาพร้อมเขามอบหมายตั๋วในระบบตั๋วของเราให้กับผู้จัดการของเรา จากนั้นผู้จัดการมอบหมายให้เรา บทวิจารณ์โค้ดนั้นนำไปสู่ความตึงเครียดภายในทีมของเรา โดยเฉพาะอย่างยิ่งสมาชิกเก่าบางคนถามถึงการเปลี่ยนแปลง (เช่น "เราทำแบบนี้เสมอ" หรือ "ทำไมวิธีการควรมีชื่อที่สมเหตุสมผลฉันรู้ว่ามันทำอะไร?") หลังจากสองสามสัปดาห์แรกเพื่อนร่วมงานของฉันเริ่มปล่อยให้สิ่งต่าง ๆ ไม่ทำให้เกิดปัญหากับเพื่อนร่วมงาน (เธอบอกกับตัวเองว่าหลังจากลูกค้าแจ้งข้อผิดพลาดแล้วเธอก็รู้ถึงข้อผิดพลาด แต่กลัวว่า นักพัฒนาจะโกรธเธอที่ชี้ให้เห็น) ในทางกลับกันตอนนี้ฉันรู้แล้วว่าเป็นลาเพื่อชี้ให้เห็นปัญหาเกี่ยวกับรหัสที่ได้ตกลงไว้ ฉันไม่คิดว่ามาตรฐานของฉันสูงเกินไป รายการตรวจสอบของฉันในขณะนี้คือ: รหัสจะรวบรวม มีอย่างน้อยหนึ่งวิธีที่รหัสจะทำงานได้ รหัสจะทำงานกับกรณีปกติส่วนใหญ่ รหัสจะทำงานกับกรณีขอบส่วนใหญ่ รหัสจะมีข้อยกเว้นที่สมเหตุสมผลหากข้อมูลที่ใส่ไม่ถูกต้อง แต่ฉันยอมรับความรับผิดชอบอย่างเต็มที่ในวิธีที่ฉันให้ข้อเสนอแนะ ฉันได้ให้คะแนนที่สามารถดำเนินการได้เพื่ออธิบายว่าทำไมบางสิ่งจึงควรมีการเปลี่ยนแปลงบางครั้งแม้แต่เพียงถามว่าทำไมบางสิ่งจึงถูกนำไปใช้ในทางที่เฉพาะเจาะจง เมื่อฉันคิดว่ามันไม่ดีฉันชี้ให้เห็นว่าฉันจะต้องพัฒนามันในอีกทางหนึ่ง สิ่งที่ฉันขาดคือความสามารถในการค้นหาสิ่งที่ชี้ให้เห็นว่า "ดี" ฉันอ่านว่าควรพยายามทำข่าวร้ายในข่าวประเสริฐ แต่ฉันมีเวลายากที่จะหาสิ่งที่ดี "เฮ้คราวนี้คุณทำทุกสิ่งที่คุณทำจริง ๆ " …
184 code-reviews 

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