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

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

3
แอปพลิเคชันบนเดสก์ท็อปสื่อสารกับเซิร์ฟเวอร์ระยะไกลก่อนเว็บเซอร์อย่างไร
ฉันไม่มีประสบการณ์กับแอพพลิเคชั่นบนเดสก์ท็อปมากนัก แต่ถ้าฉันต้องสร้างแอพพลิเคชั่นบนเดสก์ท็อปเซิร์ฟเวอร์ลูกค้าการเข้าถึงข้อมูลจะทำได้ผ่านเว็บเซอร์ ฉันเชื่อว่าการเข้าถึงข้อมูลผ่านเว็บเซอร์วิซเป็นการรักษาความปลอดภัยฉันไม่จำเป็นต้องผ่านชื่อผู้ใช้และรหัสผ่านของเซิร์ฟเวอร์ db เป็นต้น ก่อนเว็บเซอร์แอปพลิเคชันฐานข้อมูลทำสิ่งนี้ได้อย่างไร ข้อมูล db ที่สำคัญทั้งหมดถูกส่งผ่านไปยังการติดตั้งแอพเดสก์ท็อปหรือไม่ ถ้าเป็นเช่นนั้นโปรแกรมเมอร์ทำหน้าที่จัดการด้านความปลอดภัยอย่างไร? หรือโปรแกรมเมอร์ใช้บางอย่างที่คล้ายกับ webservices

4
มีประโยชน์ใด ๆ ของการใช้ตัวแปรพิเศษนี้ในการทำหมายเหตุประกอบแบบลูปหรือไม่
ฉันได้พบคำอธิบายประกอบแบบวนรอบต่อไปนี้ในโครงการขนาดใหญ่ที่ฉันกำลังทำงาน (pseudocode): var someOtherArray = []; for (var i = 0, n = array.length; i < n; i++) { someOtherArray[i] = modifyObjetFromArray(array[i]); } สิ่งที่ทำให้ฉันสนใจคือตัวแปรพิเศษ "n" ฉันไม่เคยเห็น a lop เขียนในลักษณะนี้มาก่อน เห็นได้ชัดว่าในสถานการณ์นี้ไม่มีเหตุผลว่าทำไมโค้ดนี้ไม่สามารถเขียนได้ด้วยวิธีต่อไปนี้ (ซึ่งฉันคุ้นเคยมาก): var someOtherArray = []; for (var i = 0; i < array.length; i++) { someOtherArray[i] = modifyObjetFromArray(array[i]); } แต่มันทำให้ฉันคิด …

4
วิธีการส่วนตัวควรใช้เส้นทางสาธารณะในการเข้าถึงข้อมูลส่วนตัวเมื่อใด
วิธีการส่วนตัวควรใช้เส้นทางสาธารณะในการเข้าถึงข้อมูลส่วนตัวเมื่อใด ตัวอย่างเช่นถ้าฉันมีคลาส 'ตัวทวีคูณ' ที่ไม่เปลี่ยนรูปแบบ (มีการประดิษฐ์มาบ้างฉันรู้): class Multiplier { public: Multiplier(int a, int b) : a(a), b(b) { } int getA() const { return a; } int getB() const { return b; } int getProduct() const { /* ??? */ } private: int a, b; }; มีสองวิธีที่ฉันสามารถใช้getProduct: int getProduct() const { …

2
“ Clean Code” มีการปฏิบัติจริง ๆ ที่สะอาดและมีประโยชน์หรือไม่? [ปิด]
ปิด คำถามนี้เป็นคำถามความคิดเห็นตาม ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้สามารถตอบข้อเท็จจริงและการอ้างอิงได้โดยแก้ไขโพสต์นี้ ปิดให้บริการใน6 ปีที่ผ่านมา ขณะนี้ฉันกำลังฝึกงานใน บริษัท ขนาดใหญ่และพวกเขาอยู่ระหว่างการเปลี่ยนแปลงโครงสร้างการส่งมอบซอฟต์แวร์จำนวนมาก (ย้ายไปที่เปรียว) ในช่วงสองสามเดือนที่ผ่านมาฉันสังเกตเห็นความผูกพันทางศาสนานี้กับClean Codeการฝึกฝนและหนังสือเล่มนี้ เป็นเหมือนคัมภีร์ไบเบิลสำหรับนักพัฒนา ตอนนี้หนึ่งในคุณสมบัติที่สำคัญที่สุดของรหัสสะอาดคือรหัสอธิบายตนเองซึ่งตั้งอยู่บนพื้นฐานของการตั้งชื่อที่เข้าใจได้และการแยกตัวประกอบอย่างเข้มงวด ตามด้วยno commentingกฎ ฉันเข้าใจว่าโค้ดที่สะอาดนี้เป็นการลงทุนระยะยาวซึ่งจะช่วยให้การบำรุงรักษาและการปรับปรุงโค้ดง่ายขึ้น แต่ ... มันคุ้มค่าจริง ๆ ไหม ทุกคนจะแบ่งปันประสบการณ์ของพวกเขาเกี่ยวกับรหัสสะอาดและความคิดเห็นใด ๆ ไม่ว่าฉันจะเป็นเพียงแค่หัวโบราณเกินไปหรือเป็นเพียงแนวโน้มชั่วคราว

2
การมอบหมายคืออะไรและทำไมจึงมีความสำคัญในการเขียนโปรแกรม iOS
ในขณะที่ฉันสอนตัวเองการเขียนโปรแกรม iOS และแนวคิดหนึ่งที่ฉันคิดว่ายากมากที่จะสรุปคือการมอบหมาย มันคืออะไร? ทำไมและมีการใช้อย่างไร? ข้อดีคืออะไร การเขียนทางเทคนิคจากหนังสือที่ฉันอ่านทำให้ยากที่จะเข้าใจ

4
วิธีการโน้มน้าวใจเพื่อนร่วมงานของฉันว่าการทำสิ่งที่ถูกต้องจะช่วยให้พวกเขาประหยัดเวลา
ฉันเพิ่งเริ่มต้นที่ บริษัท ใหม่พร้อมโปรแกรมเมอร์จำนวนหนึ่ง เป็น บริษัท ขนาดกลางที่มีพนักงานประมาณ 70 คน แต่ไอทีมีเพียง 9-10 คนเท่านั้นและมี "โปรแกรมเมอร์" 3 คนอยู่เคียงข้างฉัน อย่างไรก็ตามพวกเหล่านี้มีประสบการณ์ จำกัด มากและกำลังทำสิ่งต่าง ๆ มากมายอย่างน่ากลัวจริงๆ ตัวอย่างเช่นหนึ่งในโครงการของเราคือเว็บไซต์ PHP รหัสส่วนใหญ่จะถูกเก็บไว้ในคอนโทรลเลอร์ PHP 20,000 บรรทัดโดยมี ~ 6,000 บรรทัดของ JavaScript ฝังอยู่ใน PHP ฉันทำข้อเสนอแนะเล็ก ๆ ที่นี่และที่นั่น แต่ไม่มีใครฟังทุกคนบอกว่าพวกเขายุ่งเกินไปที่จะใช้คำแนะนำ สิ่งคือพวกเขาไม่ควรยุ่งขนาดนั้นและจะไม่ทำสิ่งที่ถูกต้อง พวกเขาใช้เวลาส่วนใหญ่แก้ไขสิ่งต่าง ๆ ที่ทำให้แตกหัก หากแต่ละโครงการสร้างขึ้นอย่างถูกต้องฉันสามารถทำเองทั้งหมดได้ ฉันควรใช้วิธีใดในการโน้มน้าวใจคนเหล่านี้หรือผู้จัดการว่าสิ่งต่าง ๆ จำเป็นต้องเปลี่ยนแปลงและสิ่งที่เปลี่ยนแปลงไปจะช่วยประหยัดเวลาได้มาก ฉันควรข้ามไปพยายามโน้มน้าวให้เพื่อนร่วมงานของฉันและตรงไปที่ผู้จัดการพร้อมข้อเสนอทางธุรกิจว่า บริษัท จะประหยัดเงินได้มากแค่ไหนหากพวกเขาเริ่มทำสิ่งที่ถูกต้อง?

2
POST / Redirect / GET ด้วยการส่งแบบฟอร์มที่ไม่ถูกต้อง?
ในด้านการพัฒนาเว็บคุณควรทำPOST / Redirect / GET หรือไม่เมื่อเขตข้อมูลในการส่งแบบฟอร์มไม่ถูกต้องเช่นกัน? โดยทั่วไปแล้วจะไม่มีธุรกรรมที่ละเอียดอ่อนเกิดขึ้นในเหตุการณ์นี้ อย่างไรก็ตามการโต้แย้งสามารถทำเช่นนั้นได้ยังคงเป็นวิธีที่ดีในการใช้รูปแบบ POST / Redirect / GET?

13
การจัดการกับน้ำซุปรั้งหยิก
ฉันเขียนโปรแกรมทั้ง C # และ VB.NET มาหลายปีแล้ว แต่ส่วนใหญ่เป็น VB ฉันเปลี่ยนอาชีพไปสู่ ​​C # และโดยรวมแล้วฉันชอบ C # ดีกว่า แต่ประเด็นหนึ่งที่ฉันมีก็คือซุปรั้งปีกนก ใน VB คำหลักโครงสร้างแต่ละคำมีคีย์เวิร์ดปิดที่ตรงกันตัวอย่างเช่น: Namespace ... Class ... Function ... For ... Using ... If ... ... End If If ... ... End If End Using Next End Function End Class End Namespace รหัสเดียวกันที่เขียนใน C …

3
เป็นการเริ่มต้นที่ดีกว่าการเตรียมแอตทริบิวต์ในชั้นเรียนหรือเพิ่มไปตามทาง?
ฉันขอโทษถ้านี่เป็นคำถามที่ซับซ้อนอย่างแน่นอน แต่ฉันอยากรู้ว่าแนวทางปฏิบัติที่ดีที่สุดออกไปที่นั่นและฉันดูเหมือนจะไม่พบคำตอบที่ดีใน Google ใน Python ฉันมักจะใช้คลาสที่ว่างเปล่าเป็นคอนเทนเนอร์โครงสร้างข้อมูล super-catchall (เรียงลำดับเหมือนไฟล์ JSON) และเพิ่มคุณสมบัติไปพร้อมกัน: class DataObj: "Catch-all data object" def __init__(self): pass def processData(inputs): data = DataObj() data.a = 1 data.b = "sym" data.c = [2,5,2,1] สิ่งนี้ทำให้ฉันมีความยืดหยุ่นอย่างมากเนื่องจากอ็อบเจกต์คอนเทนเนอร์สามารถเก็บอะไรก็ได้ ดังนั้นหากความต้องการใหม่เกิดขึ้นฉันจะเพิ่มมันเป็นคุณสมบัติอื่นไปยังวัตถุ DataObj (ซึ่งฉันผ่านไปรอบ ๆ ในรหัสของฉัน) อย่างไรก็ตามเมื่อเร็ว ๆ นี้ฉันรู้สึกประทับใจ (โดยโปรแกรมเมอร์ FP) ว่านี่เป็นการฝึกฝนที่แย่มากเพราะมันยากที่จะอ่านรหัส หนึ่งจะต้องผ่านรหัสทั้งหมดเพื่อคิดออกว่าคุณลักษณะ DataObj จริงมีอะไร คำถาม : ฉันจะเขียนสิ่งนี้ใหม่เพื่อการบำรุงรักษาที่มากขึ้นได้อย่างไรโดยไม่ลดความยืดหยุ่นลง? …

7
สรุปการใช้ตัวแปรภายในโค้ด
ฉันอยากจะรู้ว่ามันเป็นการปฏิบัติที่ดีที่จะทำให้ตัวแปรทั่วไป (ใช้ตัวแปรเดียวเพื่อเก็บค่าทั้งหมด) ลองพิจารณาตัวอย่างง่ายๆ Strings querycre,queryins,queryup,querydel; querycre = 'Create table XYZ ...'; execute querycre ; queryins = 'Insert into XYZ ...'; execute queryins ; queryup = 'Update XYZ set ...'; execute queryup; querydel = 'Delete from XYZ ...'; execute querydel ; และ Strings query; query= 'Create table XYZ ... '; execute …

3
เมื่อเปรียบเทียบตัวแปรสตริงกับสตริงตัวอักษรกับ. equals () มีวิธีปฏิบัติมาตรฐานสำหรับลำดับของรายการหรือไม่ [ปิด]
เป็นการยากที่จะบอกสิ่งที่ถูกถามที่นี่ คำถามนี้คลุมเครือคลุมเครือไม่สมบูรณ์กว้างเกินไปหรือโวหารและไม่สามารถตอบได้อย่างสมเหตุสมผลในรูปแบบปัจจุบัน สำหรับความช่วยเหลือในการทำความเข้าใจคำถามนี้เพื่อที่จะสามารถเปิด, ไปที่ศูนย์ช่วยเหลือ ปิดให้บริการใน7 ปีที่ผ่านมา มีประโยชน์สำหรับแต่ละคนและฉันเข้าใจความแตกต่าง แต่สิ่งที่ถือว่าเป็นวิธีที่ดีที่สุด / มาตรฐาน? และทำไม? ตัวอย่างเช่น : "myString".equals(myStringVar) หลีกเลี่ยง NPE ที่อาจเกิดขึ้นและไม่จำเป็นต้องมีการตรวจสอบ null (สิ่งที่ดี?) ทำความสะอาดเพื่ออ่านเนื่องจากไม่จำเป็นต้องตรวจสอบ null หากค่า Null ไม่ใช่ค่าที่คาดหวังโปรแกรมของคุณอาจแตกหักโดยไม่ต้องมีไหวพริบ อย่างไรก็ตาม myStringVar.equals("myString") ต้องมีการตรวจสอบ null หากค่า null เป็นค่าที่คาดไว้ (สิ่งที่ดี?) สามารถถ่วงเงื่อนไขผสมกับการตรวจสอบเป็นโมฆะ ช่วยให้ NPE แจ้งให้เราทราบว่ามีบางอย่างผิดปกติ รูปแบบใดที่ถือว่าเป็นมาตรฐานที่ใช้สำหรับ Java และทำไม

5
ฉันควรล้างส่วน "การใช้งาน" ด้วยเหตุผลใดใน C #
เมื่อฉัน refactoring รหัสของฉันฉันก็ขึ้น IDE ไปยังส่วนการใช้งานของคลาส C # ของฉันและทำความสะอาดnamespaces ที่ไม่ได้ใช้และnamespaces ที่ซ้ำกันและเรียงลำดับพวกเขาทั้งหมด คู่ของฉัน (การเขียนโปรแกรมคู่) ถามฉันถึงเหตุผล ฉันไม่รู้ว่าทำไมฉันถึงทำอย่างนั้น ฉันทำมันออกจากนิสัยเพื่อรักษารหัสของฉันให้สะอาดและเป็นระเบียบเรียบร้อย ฉันหมายความว่าฉันบอกเขาว่ามีรหัสทำความสะอาดเป็นความคิดที่ดีในการทั่วไป แต่แน่นอนว่าเหตุผลที่ไม่ได้เป็นเหตุผลที่ดีที่ผมจะไม่ได้รำคาญที่จะใช้เวลาของฉันในการใช้ส่วนของ C # หน้ารหัสใด ๆ เนื่องจากหลายครั้งที่คุณย้ายคลาสหรือ enum (หรือประเภททั่วไป) จากเนมสเปซหนึ่งไปยังเนมสเปซอื่นและนี่เป็นการเพิ่มคำสั่งใหม่โดยใช้คำสั่งในรหัสของคุณ (ไม่ว่าจะด้วยตนเองโดยขึ้นไปที่หน้าต่างรหัส ผ่านการแก้ไขโดยใช้Alt+ Ctrl+ F10รวมกัน) และตั้งแต่เหล่านี้ใหม่โดยใช้งบจะถูกเพิ่มเข้าไปในส่วนท้ายของใช้ส่วนซึ่งทำให้พวกเขาไม่ได้เรียงตามตัวอักษรและตั้งแต่คอมไพเลอร์ไม่เคยร้องเรียนเกี่ยวกับปัญหาใด ๆ เหล่านี้ว่าทำไมเราควรสนใจที่จะทำให้เรื่องนี้ ส่วนที่สะอาดและเป็นระเบียบ? เรามีเหตุผลอะไรบ้าง

4
การอ้างอิงถึงข้อบกพร่อง / ปัญหาในการส่งข้อความถือว่าเป็นแนวปฏิบัติที่ดีหรือไม่?
ฉันกำลังทำงานในโครงการที่เรามีการควบคุมแหล่งที่มาตั้งค่าให้เขียนบันทึกในตัวติดตามบั๊กโดยอัตโนมัติ เราเพียงแค่เขียน ID ปัญหาข้อบกพร่องในข้อความกระทำและข้อความกระทำจะถูกเพิ่มเป็นบันทึกในการติดตามข้อผิดพลาด ฉันเห็นข้อเสียเพียงเล็กน้อยสำหรับการฝึกนี้ หากบางครั้งในอนาคตรหัสแหล่งที่มาจะถูกแยกออกจากซอฟต์แวร์ติดตามบั๊ก (หรือรายงานข้อบกพร่อง / ปัญหาหายไป) หรือเมื่อใครบางคนกำลังค้นหาประวัติของการกระทำ แต่ไม่มีสิทธิ์เข้าถึงตัวติดตามบั๊กของเรา คำถามของฉันคือถ้ามีการอ้างอิงข้อบกพร่อง / ปัญหาในข้อความกระทำถือว่าเป็นการปฏิบัติที่ดี? มีข้อเสียอื่น ๆ บ้างไหม?

2
ใช้ประโยชน์จากความคิดสร้างสรรค์ด้วย“ เวลาว่าง”
บริษัท บางแห่งค้นพบความประหลาดใจและผลกำไรของพวกเขาว่าโปรแกรมเมอร์เป็นคนที่มีความคิดสร้างสรรค์มาก ตัวอย่างเช่นฉันคิดถึง Google และAtlassianที่อนุญาตให้มีการใช้งานปกติ (รายเดือน) "วันว่าง" ที่ผู้เขียนโปรแกรมจะทำงานในสิ่งที่พวกเขาต้องการ (ด้วยการอนุมัติ) และ บริษัท ได้รับรางวัลใหม่ ตัวอย่างที่อ้างถึงคือผลิตภัณฑ์ใหม่การแก้ไขข้อผิดพลาดที่ไม่มีใครต้องการแก้ไขก่อนสร้างทีมใหม่ ฯลฯ ผลลัพธ์อื่น (และอาจเป็นเป้าหมายดั้งเดิม) ก็คือสำหรับวันที่เหลือระหว่างเวลาว่างโปรแกรมเมอร์มีแรงจูงใจมากขึ้น มีการสนับสนุนทฤษฎีนี้มากขึ้นหรือไม่ว่าการปล่อยให้ความคิดสร้างสรรค์แบบ "ควบคุม" นั้นดีต่อแรงจูงใจและขวัญกำลังใจหรือเป็นตัวอย่างของความสำเร็จด้วยแนวทางนี้

11
จะอธิบายให้ผู้ที่ไม่ใช่โปรแกรมเมอร์ทราบได้อย่างไรว่าการเขียนโปรแกรมไม่ใช่งานซ้ำ ๆ [ปิด]
ปิด คำถามนี้เป็นคำถามความคิดเห็นตาม ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้สามารถตอบข้อเท็จจริงและการอ้างอิงได้โดยแก้ไขโพสต์นี้ ปิดให้บริการใน5 ปีที่ผ่านมา บางคนมีมุมมองของการเขียนโปรแกรมว่าเป็นเพียงการพิมพ์ซ้ำ ๆ บนแป้นพิมพ์ สิ่งนี้ไม่เป็นความจริง ก่อนอื่นคุณต้องทำมากกว่าที่จะพิมพ์รหัสเช่นสถาปัตยกรรมการออกแบบและอื่น ๆ ประการที่สองอาจเป็นงานที่แตกต่างและไม่ซ้ำซากอย่างมากโดยมีความท้าทายใหม่ ๆ เกิดขึ้นตลอดเวลา วิธีที่คุณควรอธิบายว่าการเขียนโปรแกรมเป็นไม่ได้เป็นงานที่ซ้ำโปรแกรมเมอร์ไม่ ?

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