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

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

3
ความเห็น XML เป็นเอกสารที่จำเป็นหรือไม่
ฉันเคยเป็นแฟนที่ต้องการแสดงความคิดเห็น XML สำหรับเอกสาร ฉันเปลี่ยนใจเนื่องจากเหตุผลหลักสองข้อ: เช่นเดียวกับรหัสที่ดีวิธีการควรอธิบายด้วยตนเอง ในทางปฏิบัติความคิดเห็น XML ส่วนใหญ่เป็นเสียงที่ไร้ประโยชน์ซึ่งไม่มีค่าเพิ่มเติม หลายครั้งที่เราใช้ GhostDoc เพื่อสร้างความคิดเห็นทั่วไปและนี่คือสิ่งที่ฉันหมายถึงด้วยเสียงไร้ประโยชน์: /// <summary> /// Gets or sets the unit of measure. /// </summary> /// <value> /// The unit of measure. /// </value> public string UnitOfMeasure { get; set; } สำหรับฉันนั่นชัดเจน ต้องบอกว่าถ้ามีคำแนะนำพิเศษที่จะรวมแล้วเราควรใช้ความเห็น XML อย่างแน่นอน ฉันชอบข้อความที่ตัดตอนมาจากบทความนี้ : บางครั้งคุณจะต้องเขียนความคิดเห็น แต่ควรเป็นข้อยกเว้นไม่ใช่กฎ ความคิดเห็นควรใช้เมื่อแสดงสิ่งที่ไม่สามารถแสดงในรหัสได้ หากคุณต้องการเขียนโค้ดที่หรูหราให้พยายามกำจัดความคิดเห็นและเขียนรหัสเอกสารเอง ฉันผิดที่คิดว่าเราควรใช้ความคิดเห็น …

3
การเขียนโปรแกรม * เป็น * ภาษาเทียบกับการเขียนรหัส C ใน Ruby
รหัสรัฐที่สมบูรณ์แบบที่คุณควรรหัสสิ่งที่เข้ามาในภาษาที่ตรงข้ามกับรหัสในมัน โดยที่พวกเขาหมายถึง อย่า จำกัด การคิดโปรแกรมของคุณเฉพาะกับแนวคิดที่ภาษาของคุณสนับสนุนโดยอัตโนมัติ โปรแกรมเมอร์ที่ดีที่สุดนึกถึงสิ่งที่พวกเขาต้องการทำแล้วพวกเขาประเมินวิธีบรรลุวัตถุประสงค์ด้วยเครื่องมือการเขียนโปรแกรมเมื่อถึงเวลา (ตอนที่ 34.4) สิ่งนี้นำไปสู่การใช้รูปแบบการเขียนโปรแกรมหนึ่งรูปแบบในทุกภาษาหรือไม่โดยไม่คำนึงถึงจุดแข็งและจุดอ่อนของภาษาโดยเฉพาะ หรือเพื่อตั้งคำถามในรูปแบบที่ตอบได้มากขึ้น: คุณขอเสนอว่าควรพยายามเข้ารหัสปัญหาของตัวเองอย่างประณีตที่สุดเท่าที่จะทำได้ด้วยภาษาของคนหนึ่งคนหรือคุณควรค้นหาวิธีแก้ปัญหาที่สง่างามที่สุดโดยรวมแม้ว่านั่นหมายความว่า ในภาษาของใคร?

2
“ bodyshop” (ในบริบทของการเขียนโปรแกรมงาน / สภาพแวดล้อม) หมายถึงอะไร
ฉันยังคงเจอคำว่า "bodyshop" ในแง่ของการเขียนโปรแกรมงาน / สภาพแวดล้อม แต่ถึงแม้ว่า googling ฉันไม่สามารถหาสิ่งที่มันหมายถึง? ใครช่วยได้โปรดให้ความรู้แก่ฉัน

9
การรับมือกับโครงการที่ไม่รู้จบ
เรามีเว็บไซต์ขนาดใหญ่ (1200+ ชั่วโมง) ที่มีหนี้สินทางเทคนิคจำนวนมาก สาเหตุส่วนใหญ่เกิดจากสาเหตุ (ตามปกติ) ต่อไปนี้ โปรแกรมเมอร์หลายคนที่เดินทางมาระหว่างการพัฒนา การเปลี่ยนแปลงข้อกำหนดในระหว่างการพัฒนา เพิ่มฟังก์ชันการทำงานจำนวนมากเข้ามา (ในช่วงเวลาสั้น ๆ ) ลูกค้าต้องการฟังก์ชั่นใหม่ ๆ มากมายและโดยทั่วไปแล้วจะทำงานกับโครงการนี้ทุกสัปดาห์เป็นเวลา 10+ ชั่วโมง เนื่องจากหนี้ทางเทคนิคที่เราใช้จ่ายมากชั่วโมงการแก้ไขหรือตรวจสอบปัญหาที่มักพบต้นกำเนิดของพวกเขาในหนึ่งดังต่อไปนี้: ข้อบกพร่องที่ไร้ยางอายไร้สาระที่ทำให้ผู้คนร้องไห้ คุณสมบัติใหม่ส่งผลให้เกิดขึ้นข้างต้นเพราะเราไม่ได้เล็งเห็นทุกสถานที่คุณลักษณะใหม่จะมีอิทธิพล ปัญหาอื่น ๆ ที่เราเผชิญ (การโอนย้ายเซิร์ฟเวอร์, การอัพเกรด) เรามีปัญหาทุกวันและเราได้ลองทำสิ่งต่าง ๆ เพื่อให้หยุดชะงัก: สร้างเอกสารทางเทคนิคเกี่ยวกับการนำเข้าการชำระเงินและการทำงานทั่วไปของเว็บไซต์ มีการประชุมในช่วงเริ่มต้นของสัปดาห์ - พูดคุยเกี่ยวกับปัญหาในปัจจุบันหรือการปรับปรุงและวิธีที่พวกเขาควรได้รับการแก้ไข มีแผนการทดสอบ โปรแกรมเมอร์ A การทดสอบ B, B ทดสอบ C และ C การทดสอบ A. จากนั้น Project Manager ของเราจะทำการทดสอบ เกี่ยวกับผลกระทบของคุณลักษณะที่เราใช้งานในสภาพแวดล้อมการจัดเตรียมและให้ลูกค้าตรวจสอบด้วยตัวเอง …

3
การทดสอบหน่วยเขียนพวกเขาก่อนหรือหลังกรอบ? [ปิด]
ปิด คำถามนี้เป็นคำถามความคิดเห็นตาม ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้สามารถตอบข้อเท็จจริงและการอ้างอิงได้โดยแก้ไขโพสต์นี้ ปิดให้บริการใน4 ปีที่แล้ว นี่เป็นคำถามแรกของฉันที่นี่ดังนั้นฉันจะทำให้มันสั้นและตรงประเด็น เมื่อเขียนการทดสอบหน่วยคุณควรเขียนก่อนหรือหลังจากที่คุณได้ทำกรอบพื้นฐานสำหรับพวกเขา? สิ่งนี้เกิดขึ้นระหว่างการสนทนาระหว่าง CEO และกรรมการผู้จัดการใหญ่ของฉันและฉันต้องการความคิดเห็นของคุณในเรื่องนี้ โดยส่วนตัวฉันมักจะเขียนรหัสก่อนแล้วจึงเขียนบททดสอบ แต่คุณล่ะ?

5
แนวปฏิบัติที่ดีที่สุด - การห่อถ้ารอบ ๆ การเรียกใช้ฟังก์ชัน vs การเพิ่มการออกก่อนหน้าถ้าการป้องกันในการทำงาน
ฉันรู้ว่านี่สามารถใช้เฉพาะกรณีได้ แต่ฉันพบว่าตัวเองสงสัยว่าสิ่งนี้บ่อยเกินไป มีไวยากรณ์ที่ต้องการโดยทั่วไปหรือไม่ ฉันไม่ได้ถามว่าอะไรคือวิธีที่ดีที่สุดเมื่ออยู่ในฟังก์ชั่นฉันกำลังถามว่าฉันควรออกจากเร็วหรือควรจะไม่เรียกฟังก์ชั่นนี้ Wrap ถ้าเรียกฟังก์ชันรอบ if (shouldThisRun) { runFunction(); } มีฟังก์ชั่นif ( guard ) runFunction() { if (!shouldThisRun) return; } ตัวเลือกหลังมีความเป็นไปได้ที่จะลดความซ้ำซ้อนของรหัสหากฟังก์ชั่นนี้เรียกว่าหลายครั้ง แต่บางครั้งมันก็รู้สึกผิดที่จะเพิ่มเข้าไปที่นี่แล้วคุณอาจสูญเสียความรับผิดชอบเดียวของฟังก์ชั่น นี่เป็นตัวอย่าง ถ้าฉันมีฟังก์ชั่น updateStatus () ที่จะอัพเดทสถานะของบางสิ่ง ฉันต้องการเฉพาะสถานะที่อัปเดตหากมีการเปลี่ยนแปลงสถานะ ฉันรู้ว่าสถานที่ในรหัสของฉันที่สถานะมีศักยภาพในการเปลี่ยนแปลงและฉันรู้ว่าสถานที่อื่น ๆ ที่มีการเปลี่ยนแปลงท้าทาย ฉันไม่แน่ใจว่ามันเป็นแค่ฉันหรือเปล่า แต่มันก็ค่อนข้างสกปรกที่จะตรวจสอบฟังก์ชั่นภายในเพราะฉันต้องการให้ฟังก์ชั่นนี้บริสุทธิ์ที่สุดเท่าที่จะเป็นไปได้ - ถ้าฉันเรียกมันว่าฉันคาดว่าสถานะจะได้รับการอัพเดต แต่ฉันไม่สามารถบอกได้ว่าจะดีกว่าที่จะวางสายในสถานที่ไม่กี่แห่งที่ฉันรู้ว่ามีศักยภาพที่จะไม่เปลี่ยนแปลง

6
มีอะไรผิดพลาดในบริบทของการเขียนโปรแกรมการทำงานถ้าวัตถุของฉันไม่แน่นอน?
ฉันสามารถเห็นประโยชน์ของวัตถุที่เปลี่ยนแปลงไม่ได้กับวัตถุที่เปลี่ยนแปลงไม่ได้เช่นวัตถุที่ไม่เปลี่ยนรูปทำให้ยากต่อการแก้ไขปัญหาในการเขียนโปรแกรมแบบมัลติเธรดเนื่องจากสถานะที่ใช้ร่วมกันและเขียนได้ ในทางตรงกันข้ามวัตถุที่ไม่แน่นอนช่วยในการจัดการกับตัวตนของวัตถุมากกว่าการสร้างสำเนาใหม่ทุกครั้งและยังปรับปรุงประสิทธิภาพและการใช้หน่วยความจำโดยเฉพาะอย่างยิ่งสำหรับวัตถุขนาดใหญ่ สิ่งหนึ่งที่ฉันพยายามเข้าใจคือสิ่งที่ผิดพลาดในการมีวัตถุที่ไม่แน่นอนในบริบทของการเขียนโปรแกรมการทำงาน อย่างหนึ่งในจุดที่บอกกับฉันคือผลลัพธ์ของการเรียกฟังก์ชั่นในลำดับที่แตกต่างกันนั้นไม่ได้กำหนดขึ้น ฉันกำลังมองหาตัวอย่างที่เป็นรูปธรรมที่ชัดเจนว่าอะไรผิดพลาดได้โดยใช้วัตถุที่ไม่แน่นอนในการเขียนโปรแกรมฟังก์ชั่น โดยทั่วไปถ้ามันไม่ดีก็ไม่ดีโดยไม่คำนึงถึง OO หรือกระบวนทัศน์การเขียนโปรแกรมการทำงานใช่ไหม ฉันเชื่อว่าข้อความของฉันตอบคำถามนี้เอง แต่ฉันก็ยังต้องการตัวอย่างเพื่อที่ฉันจะได้รู้สึกเป็นธรรมชาติมากขึ้น OO ช่วยในการจัดการการพึ่งพาและเขียนโปรแกรมที่ง่ายขึ้นและบำรุงรักษาด้วยความช่วยเหลือของเครื่องมือเช่น encapsulation, polymorphism เป็นต้น ฟังก์ชั่นการเขียนโปรแกรมยังมีแรงจูงใจเดียวกันในการส่งเสริมรหัสที่สามารถบำรุงรักษาได้ แต่โดยการใช้สไตล์ซึ่งไม่จำเป็นต้องใช้เครื่องมือและเทคนิค OO - หนึ่งในสิ่งที่ฉันเชื่อคือการลดผลข้างเคียงฟังก์ชั่นบริสุทธิ์ ฯลฯ

5
ทำตามเส้นทางของสิ่งที่ฉันรู้จากนั้นลองใช้วิธีการเข้ารหัสที่ถูกต้องหรือเริ่มต้นด้วยวิธีการเข้ารหัสที่ดีและพยายามฝืนวิธีของฉันผ่าน?
ก่อนอื่นฉันอยากจะบอกว่าฉันคุ้นเคยกับการทำ Programming Processural เป็นงานอดิเรกของฉัน - ฉันพยายามเรียนรู้ OOP ในสองภาษาและเข้าใจทฤษฎีไม่ใช่แค่การฝึกฝน ฉันมีโครงการสัตว์เลี้ยงที่ฉันต้องการสร้างโดยเฉพาะใน PHP ด้วยแบ็กเอนด์ฐานข้อมูล (ไม่สนใจเลย) เหตุผลหลักของฉันคือการใช้แอพในอุปกรณ์ใด ๆ ดังนั้น WebApp จึงดูเหมือนเป็นตัวเลือกที่สมเหตุสมผล ฉันเข้าใจว่าในการสร้าง PHP WebApps ที่บำรุงรักษาได้มันควรใช้ OOP, Classes, Frameworks, Libraries และอื่น ๆ ซึ่งฟังดูสมเหตุสมผลดังนั้นฉันจึงตัดสินใจลองบางอย่างที่เป็นที่นิยม อย่างไรก็ตามหลังจากสุดสัปดาห์ที่ผ่านมาเพียงแค่พยายามและพยายามผ่านบทช่วยสอนฉันก็สับสนและหงุดหงิดกับการพยายามปรับบทเรียนให้เข้ากับโครงการขนาดเล็กของฉัน ฉันตัดสินใจส่วนใหญ่เป็นหลักฐานพิสูจน์แนวคิดในการสร้างแอปในโปรแกรมอื่น (Microsoft Access) และบรรลุเป้าหมายหลักของฉันในเวลาเพียงไม่กี่ชั่วโมง - ยกเว้นส่วนของเว็บ คำถามของฉันคือฉันควรทำตามเส้นทางของสิ่งที่ฉันรู้จากนั้นลองใช้วิธีการเข้ารหัสที่ถูกต้องหรือฉันควรเริ่มต้นด้วยวิธีการเข้ารหัสที่ดีและพยายามฝืนวิธีของฉันผ่าน? สำหรับโครงการนี้ฉันอยากให้เป็น Open Sourced บน GitHub ดังนั้นฉันจะเปิดให้คนอื่นที่ใช้และเปลี่ยนรหัสของฉัน แต่ฉันก็รู้ว่าถ้าเขียนรหัสไม่ดีมันก็ยากที่จะรวบรวม coders มาช่วย

2
วิธีการห่อหุ้มตัวแปร 'ทั่วโลก' ใน C #? /ปฏิบัติที่ดีที่สุด
ต้องการปรับปรุงโพสต์นี้หรือไม่? ให้คำตอบโดยละเอียดสำหรับคำถามนี้รวมถึงการอ้างอิงและคำอธิบายว่าทำไมคำตอบของคุณถึงถูกต้อง คำตอบที่ไม่มีรายละเอียดเพียงพออาจแก้ไขหรือลบออกได้ ใน C # วิธีที่ดีที่สุดสำหรับการห่อหุ้มตัวแปรที่ฉันต้องการใช้ในหลายวิธีคืออะไร? ตกลงไหมที่จะประกาศพวกเขาที่ชั้นบนสุดของชั้นเรียนของฉันเหนือสองวิธี? นอกจากนี้หากฉันใช้การตั้งค่าแอพจากไฟล์ปรับแต่งฉันควรใช้ getter หรือไม่? แบบนี้... private string mySetting{ get { return WebConfigurationManager.AppSettings["mySetting"]; } } การปฏิบัติที่ดีที่สุดคืออะไร?

3
กฎเกี่ยวกับความคมชัดของชนิดพารามิเตอร์เมธอดชนิดส่งคืนและชนิดคุณสมบัติ
บางครั้งที่ผ่านมาฉันอ่าน "กฎของหัวแม่มือ" เกี่ยวกับความคมชัดของชนิดพารามิเตอร์เมธอดชนิดส่งคืนและชนิดคุณสมบัติ แต่ฉันจำไม่ได้ มันบอกอะไรบางอย่างเกี่ยวกับการรักษาประเภทการคืนสินค้าของคุณอย่างเป็นรูปธรรมมากที่สุดและพารามิเตอร์ประเภทของคุณจะเป็นนามธรรมมากที่สุด ... หรือในทางกลับกัน ฉันไม่รู้ว่าจริง ๆ แล้วมันเป็นคำแนะนำที่ดีหรือไม่ดีดังนั้นหากคุณมีความคิดของคุณเองเกี่ยวกับเรื่องนี้โปรดแจ้งความคิดเห็น ไชโย

9
ทำไม (ตำแหน่ง <ขนาด) รูปแบบที่แพร่หลายเช่นนี้ในเงื่อนไข
ในคำสั่งเงื่อนไข (IF) ทุกคนใช้(position &lt; size)แต่ทำไม? การประชุมเท่านั้นหรือมีเหตุผลที่ดีสำหรับสิ่งนั้น? พบในป่า: if (pos &lt; array.length) { // do some with array[pos]; } ไม่ค่อยพบ: if (array.length &gt; pos) { // do some with array[pos]; }

8
'การเพิ่มประสิทธิภาพโค้ด' เมื่อใด == 'โครงสร้างข้อมูล' เมื่อใด
บทความล่าสุดโดย ycombinatorแสดงความคิดเห็นด้วยหลักการของโปรแกรมเมอร์ที่ยอดเยี่ยม #7. โปรแกรมเมอร์ที่ดี: ฉันเพิ่มประสิทธิภาพรหัส โปรแกรมเมอร์ที่ดีกว่า: ฉันจัดโครงสร้างข้อมูล โปรแกรมเมอร์ที่ดีที่สุด: ความแตกต่างคืออะไร? การยอมรับแนวคิดที่เป็นอัตนัยและเป็นที่ถกเถียงกัน - ไม่มีใครมีตำแหน่งในสิ่งนี้หมายความว่าอะไร? ฉันทำ แต่ฉันต้องการแก้ไขคำถามนี้ในภายหลังด้วยความคิดของฉันเพื่อไม่ให้คำตอบที่จูงใจ

7
คำถามวิศวกรระดับเริ่มต้นเกี่ยวกับการจัดการหน่วยความจำ
ไม่กี่เดือนที่ผ่านมาตั้งแต่ฉันเริ่มต้นตำแหน่งในฐานะนักพัฒนาซอฟต์แวร์ระดับเริ่มต้น ตอนนี้ฉันผ่านโค้งการเรียนรู้บางอย่าง (เช่นภาษาศัพท์แสงไวยากรณ์ของ VB และ C #) ฉันเริ่มมุ่งเน้นที่หัวข้อลึกลับมากขึ้นเพื่อเขียนซอฟต์แวร์ที่ดีขึ้น คำถามง่าย ๆ ที่ฉันนำเสนอให้เพื่อนร่วมงานได้รับการตอบสนองด้วยการ ในขณะที่ฉันเคารพเพื่อนร่วมงานคนนี้ฉันไม่เห็นด้วยว่านี่เป็น "สิ่งผิด" ที่จะมุ่งเน้น นี่คือรหัส (ใน VB) และตามด้วยคำถาม หมายเหตุ: Function GenerateAlert () จะคืนค่าจำนวนเต็ม Dim alertID as Integer = GenerateAlert() _errorDictionary.Add(argErrorID, NewErrorInfo(Now(), alertID)) VS ... _errorDictionary.Add(argErrorID, New ErrorInfo(Now(), GenerateAlert())) ฉันเขียนตอนหลังและเขียนใหม่ด้วย "Dim alertID" เพื่อให้คนอื่นสามารถอ่านได้ง่ายขึ้น แต่นี่คือความกังวลและคำถามของฉัน: เราควรเขียนสิ่งนี้ด้วย Dim AlertID จริงๆแล้วมันต้องใช้หน่วยความจำมากขึ้น จำกัด แต่มากขึ้นและควรเรียกวิธีนี้หลาย ๆ …

2
คุณสมบัติภายใต้ ARC: เสมอหรือสาธารณะเท่านั้น
หลังจากอ่านบทความชื่อ"รหัสบัญญัติ: วิธีปฏิบัติที่ดีที่สุดสำหรับการเข้ารหัส Objective-C" โดย Robert McNallyน้อยกว่าสองปีที่ผ่านมาเล็กน้อยฉันยอมรับการฝึกใช้คุณสมบัติสำหรับสมาชิกข้อมูลทุกคนในคลาส Objective-C ของฉัน ( บัญญัติที่ 3 ณ เดือนพฤษภาคม 2012) McNally แสดงเหตุผลเหล่านี้ในการทำเช่นนั้น (สิ่งที่ฉันให้ความสำคัญ): คุณสมบัติบังคับใช้ข้อ จำกัด การเข้าถึง (เช่นอ่านได้อย่างเดียว) คุณสมบัติบังคับใช้นโยบายการจัดการหน่วยความจำ (แข็งแรงอ่อนแอ) คุณสมบัติให้โอกาสในการใช้ setters และ getters แบบกำหนดเองอย่างโปร่งใส คุณสมบัติที่มี setters หรือ getters แบบกำหนดเองสามารถใช้เพื่อบังคับใช้กลยุทธ์ความปลอดภัยของเธรด การมีวิธีการเข้าถึงตัวแปรอินสแตนซ์เดียวช่วยเพิ่มความสามารถในการอ่านรหัส ฉันใส่คุณสมบัติส่วนใหญ่ของฉันในหมวดหมู่ส่วนตัวดังนั้นหมายเลข 1 และ 4 มักจะไม่ใช่ปัญหาที่ฉันเรียกใช้ ข้อโต้แย้งที่ 3 และ 5 นั้นนุ่มนวลกว่าและด้วยเครื่องมือที่เหมาะสมและความสอดคล้องอื่น ๆ พวกเขาอาจกลายเป็นไม่ใช่ประเด็นปัญหา ในที่สุดสำหรับฉันข้อโต้แย้งที่มีอิทธิพลมากที่สุดคือหมายเลข 2 การจัดการหน่วยความจำ ฉันทำสิ่งนี้มานับ …

5
บริษัท ต่าง ๆ จะซ่อนเว็บไซต์เมื่ออยู่ในการพัฒนาอย่างไร
ฉันยังใหม่กับสิ่งนี้และยังเป็นนักพัฒนา PHP อายุ 19 ปีที่เพิ่งได้รับการว่าจ้างดังนั้นฉันไม่แน่ใจว่ามันทำงานอย่างไร บริษัท จำนวนมากเมื่อพัฒนาเว็บไซต์ทำให้เว็บไซต์ของพวกเขาถูกซ่อนไว้ไม่ให้ถูกจัดทำดัชนี html5 / css มีวิธีใดบ้างและ php / mysql ทำงานถูกซ่อนจากเครื่องมือค้นหา หากฉันไม่ผิดนี่เป็นเทคนิค: การพัฒนาแบบออฟไลน์: ใช้ที่จัดเก็บในตัวเครื่องเพื่อแสดงผล html / css; ไม่แน่ใจว่า PHP / mysql จะทำงานอย่างไร ใช้. htaccess เพื่อป้องกันการเข้าถึง ใช้ VPN เพื่อป้องกันการเข้าถึง

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