คำถามติดแท็ก programming-practices

Programming Practices เป็นวิธีที่ใช้กันทั่วไปหรือไม่ใช้กันทั่วไปในการพัฒนาซอฟต์แวร์ สิ่งเหล่านี้อาจรวมถึงสิ่งต่าง ๆ เช่นการพัฒนาแบบ Agile, Kanban, ทางลัดการเข้ารหัส ฯลฯ

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

5
ควรหยุดการสืบทอดเมื่อใด
กาลครั้งหนึ่งนานมานี้ฉันถามคำถามเกี่ยวกับการโอเวอร์โฟลว์เกี่ยวกับการสืบทอด ฉันได้กล่าวว่าฉันออกแบบเครื่องมือหมากรุกในแบบ OOP ดังนั้นฉันจึงรับช่วงต่อของฉันทั้งหมดจากระดับนามธรรมของ Piece แต่การสืบทอดยังคงดำเนินต่อไป ให้ฉันแสดงด้วยรหัส public abstract class Piece { public void MakeMove(); public void TakeBackMove(); } public abstract class Pawn: Piece {} public class WhitePawn :Pawn {} public class BlackPawn:Pawn {} โปรแกรมเมอร์พบว่าการออกแบบของฉันมีความเหนือกว่าทางวิศวกรรมเล็กน้อยและแนะนำให้เอาคลาสสีที่มีสีออกมา public abstract class Piece { public Color Color { get; set; } public abstract void …

7
กำลังตรวจสอบว่าเมธอดส่งคืน false หรือไม่: กำหนดผลลัพธ์ให้กับตัวแปรชั่วคราวหรือทำให้การเรียกใช้เมธอดตรงตามเงื่อนไขหรือไม่
เป็นวิธีปฏิบัติที่ดีในการเรียกใช้เมธอดที่ส่งคืนค่าจริงหรือเท็จในคำสั่ง if หรือไม่? บางสิ่งเช่นนี้ private void VerifyAccount() { if (!ValidateCredentials(txtUser.Text, txtPassword.Text)) { MessageBox.Show("Invalid user name or password"); } } private bool ValidateCredentials(string userName, string password) { string existingPassword = GetUserPassword(userName); if (existingPassword == null) return false; var hasher = new Hasher { SaltSize = 16 }; bool passwordsMatch = hasher.CompareStringToHash(password, …

5
จะให้เพื่อนร่วมทีมรู้ได้อย่างไรว่าการเปลี่ยนแปลงของฉันกับวัตถุเป็นอย่างไร [ปิด]
ปิด คำถามนี้จะต้องมีมากขึ้นมุ่งเน้น ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้มุ่งเน้นที่ปัญหาเดียวโดยแก้ไขโพสต์นี้ ปิดให้บริการใน4 ปีที่แล้ว สมมติว่าฉันมีวัตถุ PHP สมมติว่า: companyObj class companyObj { private company_name; private company_address; public function print_contact() { //logic } } นี่คือสิ่งที่ฉันเขียนและแชร์กับเพื่อนร่วมทีม ตอนนี้ฉันต้องการทำให้มีประสิทธิภาพมากขึ้นเช่นนี้ class companyObj { private company_name; private company_address; private company_contact_person; public function print_contact() { //logic updated } } ตอนนี้ฉันจะแจ้งเพื่อนร่วมทีมของฉันได้อย่างไรว่าวัตถุของฉันมีคุณสมบัติมากกว่าที่พวกเขาสามารถตั้งค่าได้ แทนที่จะส่งอีเมลให้กับทุกคนในทีมพัฒนาฉันจะทำให้ทีมรู้ได้อย่างไรว่าเกิดอะไรขึ้นเมื่อฉันไม่ต้องการให้เพื่อนร่วมทีมเสียเวลาเพื่อดูว่ามีการเปลี่ยนแปลงอะไรในระดับซอร์สโค้ด

4
มันคุ้มค่ากับการพัฒนาตะกร้าสินค้าแบบกำหนดเองหรือไม่? [ปิด]
ตามที่เป็นอยู่ในปัจจุบันคำถามนี้ไม่เหมาะสำหรับรูปแบบคำถาม & คำตอบของเรา เราคาดหวังคำตอบที่จะได้รับการสนับสนุนจากข้อเท็จจริงการอ้างอิงหรือความเชี่ยวชาญ แต่คำถามนี้อาจเรียกร้องให้มีการอภิปรายโต้แย้งโต้แย้งหรือการอภิปรายเพิ่มเติม หากคุณรู้สึกว่าคำถามนี้สามารถปรับปรุงและเปิดใหม่ได้โปรดไปที่ศูนย์ช่วยเหลือเพื่อขอคำแนะนำ ปิดให้บริการใน7 ปีที่ผ่านมา เรามีห้องสมุดรูปโค้งที่สวยงามที่สถานที่ทำงานของฉันและเราพัฒนาเว็บไซต์ที่กำหนดเองตามอัตราที่ดีจนกระทั่งตะกร้าสินค้ามาถึงเราเพื่อให้กระบวนการทำงานช้าลง ฉันใช้ตะกร้าสินค้าหลากหลาย ( Magento, Opencart, Zencart ) ในโครงการที่แตกต่างกันซึ่งเราต้องรวมเข้ากับแอปพลิเคชั่นหลักของเรา ความต้องการที่กำหนดเองโดยปกติมากทำให้รถเข็นช็อปปิ้งที่ไม่เลื่อนและใช้เวลามาก ฉันกำลังคิดที่จะสร้างตะกร้าสินค้าของเราเอง ( ค่อนข้างธรรมดาในปัจจุบันและเราจะขยายออกไปเมื่อเราดำเนินการต่อ ) ตั้งแต่เริ่มต้นเพื่อให้สามารถปรับเปลี่ยนข้อกำหนดที่กำหนดเองได้อย่างง่ายดาย มันคุ้มค่าที่จะทำ? อัปเดต 24 ส.ค. - 11 ก.ย. ฉันพัฒนาตะกร้าสินค้าของเราอย่างต่อเนื่อง นี่คือประสบการณ์ของฉันที่ฉันต้องการแบ่งปันกับพวกคุณ ประโยชน์ที่ได้รับ รถเข็นใหม่ง่ายต่อการเปลี่ยนแปลงและขยาย มันช่วยประหยัดเวลาเมื่อเรามีข้อกำหนดที่คลุมเครือหรือกำหนดเองและทำให้เราสามารถนำเข้าโมดูลจากไลบรารีรหัสที่มีอยู่ของเราโดยตรง ไม่จำเป็นต้องมีการใช้เทมเพลตคู่สำหรับรถเข็นและเว็บไซต์กำหนด แผงผู้ดูแลระบบเดียวสำหรับตะกร้าสินค้าและเว็บไซต์ที่กำหนดเองของเรา ข้อ จำกัด ยังไม่โตพอที่จะซื้อเกวียนอื่น ๆ ในตลาด ความกังวลด้านความปลอดภัย เราส่วนใหญ่พึ่งพาความปลอดภัยของ CakePHP ขาดฟังก์ชั่น ประสบปัญหา การพัฒนาเกตเวย์การจัดส่ง / การชำระเงินเป็นความเจ็บปวดที่แท้จริง ในฐานะที่เป็น@davidhaskinsชี้ให้เห็น …

3
BDD: เริ่มต้น
ฉันเริ่มต้นด้วย BDD และนี่คือเรื่องราวของฉัน: Feature: Months and days to days In order to see months and days as days As a date conversion fan I need a webpage where users can enter days and months and convert them to days. ฉันมีข้อสงสัยบางอย่าง ... ฉันควรเขียนสถานการณ์ของฉันก่อนที่จะเขียนโค้ดอะไรหรือฉันควรเขียนสถานการณ์ก่อนแล้วจึงเขียนรหัสเขียนสถานการณ์อีกครั้งแล้วเขียนรหัสและอื่น ๆ ... ? ถ้าฉันควรเขียนสถานการณ์ของฉันก่อนหน้านี้ขั้นตอนของฉันจะได้รับการอนุมัติและรหัสการผลิตยังไม่เสร็จ เมื่อใดที่ฉันควรทำการปรับเปลี่ยนรหัสของฉัน หลังจากเสร็จสิ้นคุณสมบัติหรือหลังจากการนำแต่ละสถานการณ์ไปใช้

5
มันเป็นการดีหรือไม่ที่จะต้องใช้เครื่องหมายทับซ้ายสุดในชื่อไดเรกทอรี?
ฉันต้องการขอให้ผู้ใช้ของสคริปต์ทุบตีของฉันผ่านเส้นทางไดเรกทอรีเป็นอาร์กิวเมนต์ ข้อใดต่อไปนี้เป็นแบบฝึกหัดการเขียนโปรแกรมที่ดี? ต้องการให้ผู้ใช้ป้อน / (เครื่องหมายสแลช) ต้องการให้ผู้ใช้ไม่ได้ป้อน / ต่อท้าย (เครื่องหมายสแลช)

2
รูปแบบ UI อัตโนมัติและแนวปฏิบัติที่ดีที่สุดสำหรับแอปพลิเคชันเดสก์ท็อป
พื้นหลัง ฉันกำลังทำการทดสอบปลั๊กอินสำหรับ MS Office โดยอัตโนมัติ เรากำลังสร้างการทดสอบ Coded UI ใน VS 2010 ฉันคิดว่าฉันสามารถใช้เครื่องมือ " Coded UI test builder " แต่มันไม่เหมาะกับกรณีของฉัน ด้วยเหตุนี้ฉันจึงสร้างคลาส UI Map ของฉันเองและวิธีการขยายสำหรับแต่ละ UI Control / Map ที่ฉันเพิ่มฟังก์ชันการทำงานที่แตกต่างกัน ตัวอย่างเช่นกดปุ่มหรือยืนยันค่า UI บางอย่าง สถานการณ์ของกรณีทดสอบอยู่ในคลาสทดสอบ ฉันใหม่ในพื้นที่นี้และฉันยังใหม่ในการทำงานเป็นผู้ทดสอบระบบอัตโนมัติ คำถาม ผู้คนจะใจดีพอที่จะแบ่งปันประสบการณ์และคำแนะนำสำหรับแนวทางปฏิบัติที่ดีสำหรับการทดสอบระบบอัตโนมัติบนแอปพลิเคชันเดสก์ท็อปจากมุมมองการเขียนโปรแกรม / การออกแบบหรือไม่?

11
เพื่อนร่วมงานของฉันควรตรวจสอบโค้ดของกันและกันจากระบบควบคุมแหล่งที่มาหรือไม่
นั่นคือเรื่องราวของฉัน: หนึ่งในเพื่อนร่วมงานของฉันใช้ในการตรวจสอบรหัสทั้งหมดเป็นเจ้าภาพในการแก้ไขระบบ ฉันไม่ได้พูดถึงการตรวจทานการเปลี่ยนแปลงในส่วนต่าง ๆ ที่เพียงพอที่เขาเป็น เขาเฝ้าดูไฟล์รหัสเป็นไฟล์บรรทัดต่อบรรทัด ทุกไฟล์ใหม่และทุก ๆ การแก้ไข ฉันรู้สึกเหมือนกำลังถูกสอดแนม! ฉันเดาว่าถ้ารหัสถูกโฮสต์ไว้ในระบบควบคุมแล้วคุณควรเชื่อถือได้อย่างน้อยที่สุด คำถามของฉันคือบางทีฉันอาจเป็นแค่ความหวาดระแวงและการฝึกฝนทบทวนรหัสอื่น ๆ ก็ดี? PS: เราเป็นทีมงานของนักพัฒนาเพียงสามคนและฉันกลัวว่าหากมีพวกเราเพิ่มขึ้นเพื่อนร่วมงานก็จะไม่มีเวลาตรวจสอบรหัสทั้งหมดที่เราจะเขียน

1
เรียน String ตามกราฟ?
ฉันสงสัยว่าทำไมเราไม่มีคลาสสตริงที่แสดงสตริง Unicode grapheme clusters แทนที่จะเป็นรหัสจุดหรือตัวอักษร สำหรับฉันแล้วดูเหมือนว่าในแอปพลิเคชั่นส่วนใหญ่มันจะง่ายกว่าสำหรับโปรแกรมเมอร์ที่จะเข้าถึงส่วนประกอบของกราฟเมื่อจำเป็นกว่าที่จะต้องจัดระเบียบมันจากจุดรหัสซึ่งดูเหมือนจำเป็นแม้ว่าจะหลีกเลี่ยงการทำลายสตริงใน "mid-grapheme" (อย่างน้อยก็ในทางทฤษฎี) ภายในคลาสสตริงอาจใช้การเข้ารหัสความยาวตัวแปรเช่น UTF-8, UTF-16 หรือในบริบทนี้แม้ UTF-32 คือความยาวตัวแปร หรือใช้คลาสย่อยสำหรับพวกเขาทั้งหมด (และกำหนดค่าตัวเลือกในขณะใช้งานเพื่อให้ภาษาต่าง ๆ สามารถใช้การเข้ารหัสที่เหมาะสมที่สุด) แต่ถ้าโปรแกรมเมอร์สามารถ "เห็น" หน่วยกราฟเมื่อตรวจสอบสตริงจะไม่ '

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