ความแตกต่างระหว่างแนวปฏิบัติที่ดีที่สุดและสามัญสำนึก?


13

มีการสนทนามากมายเกี่ยวกับแนวปฏิบัติที่ดีที่สุด1ในการพัฒนาซอฟต์แวร์ ฉันเคยเห็นจุดสำคัญอย่างน้อยสามข้อได้รับการอภิปรายมากมายทั้งใน SE และที่อื่น ๆ :

  • สิ่งที่มีคุณสมบัติเป็นการปฏิบัติที่ดีที่สุดและทำไม?
  • แนวปฏิบัติที่ดีที่สุดควรค่าแก่การพูดคุยกันตั้งแต่แรกเพราะมีเหตุผลที่จะยืนยันว่าการฝึกฝนนั้นไม่มีแนวปฏิบัติที่ดีที่สุด?
  • เมื่อใดที่คุณควรสละแนวทางปฏิบัติที่ดีที่สุด - หรืออาจเป็นแนวทางปฏิบัติที่ดีที่สุด - เพราะมันดูไม่เหมาะสมหรือเนื่องจากข้อ จำกัด ภายนอก (เวลาเงิน ฯลฯ ) ที่ทำให้การแลกเปลี่ยนเป็นไปไม่ได้?

สิ่งที่ดูเหมือนว่าจะเกิดขึ้นน้อยกว่ามาก แต่ไม่เคยมีมาก่อนเป็นแนวคิดที่ใช้กันทั่วไปในการพัฒนาซอฟต์แวร์ ประสบการณ์เมื่อเร็ว ๆ นี้ได้นำความคิดนี้ไปสู่ความคิดของฉันอีกครั้ง

ความประทับใจครั้งแรกของฉันคือมันเป็นการสนทนาที่แตกต่างจากแนวปฏิบัติที่ดีที่สุด แต่อาจมีบางการผสมข้าม

เมื่อฉันคิดถึงสามัญสำนึกฉันคิดถึงกฎที่คุณเลือกขึ้นมาหรือได้รับการสอนที่ให้พื้นฐานกับเหตุผลและการตัดสินใจ การใช้สามัญสำนึกเป็นวิธีที่ดีในการหลีกเลี่ยงการยิงขาทั้งคู่ แต่นอกเหนือจากพื้นฐานที่ค่อนข้างต่ำสามัญสำนึกเปิดทางให้มีความจำเป็นในการตัดสินใจการศึกษาและการตัดสินใจที่มีการศึกษาสามารถแทนที่สามัญสำนึกเมื่อหลักฐานดูเหมือนน่าสนใจเพียงพอ ฉันอาจจะเล่นเล็กน้อยกับคำจำกัดความที่นี่ แต่ฉันคิดว่ามันใกล้พอที่จะเป็นหัวหอกในตัวอย่างของฉัน

เมื่อฉันนึกถึงสามัญสำนึกในการพัฒนาซอฟต์แวร์ฉันคิดถึงกฎพื้นฐานของสุขอนามัยขั้นพื้นฐานทั้งหมดเพื่อป้องกันไม่ให้ codebase เน่าเปื่อยอย่างรวดเร็วจนกลายเป็นระเบียบที่เข้าใจไม่ได้ ตัวอย่างเช่นสิ่งต่าง ๆ : ไม่ได้ใช้โครงสร้างส่วนกลางเดียวเพื่อบำรุงรักษาและสื่อสารสถานะภายในโปรแกรมที่ไม่สำคัญ ไม่ใช้ตัวแปร / เมธอด / คลาสที่เป็นเพียงการพูดพล่อยๆแบบสุ่ม; สิ่งที่อาจมีลักษณะคล้ายกับสิ่งที่เราได้เรียกต่อต้านรูปแบบที่ค่อนข้างใกล้ชิด ในกรณีที่ใช้แนวปฏิบัติที่ดีที่สุดแบบอะนาล็อกที่ใช้กับรูปแบบการเรียนรู้การใช้สามัญสำนึกอาจถูกมองว่าเป็นอะนาล็อกในทางปฏิบัติของการเรียนรู้รูปแบบการต่อต้าน

ด้วยความคิดนี้ฉันต้องการตั้งคำถามสองสามข้อที่เห็นคำตอบของคนอื่นเพราะอาจช่วยฉันหาเหตุผลผ่านสิ่งนี้

คนอื่นเชื่อหรือไม่ว่ามีความคิดสามัญสำนึกในการพัฒนาซอฟต์แวร์? จะมีความสนใจในการรู้เหตุผลด้วยวิธีใด

ถ้าเป็นเช่นนั้นเป็นความคิดที่คุ้มค่าพูดคุยหรือไม่ มันเป็นสิ่งที่เราควรผลักดันให้มากที่สุดเท่าที่บางครั้งเราทำกับแนวทางปฏิบัติที่ดีที่สุด? มันเป็นสิ่งที่คุ้มค่าที่จะผลักดันให้หนักขึ้นหรือไม่?

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

นี่เป็นเรื่องที่เปิดกว้างมากขึ้นและอาจคุ้มค่ากับคำถามที่ตามมาทั้งหมดของตัวเองคุณจะชี้ให้เห็นข้อแนะนำประเภทใดที่ดูเหมือนเป็นเรื่องของสามัญสำนึก

ความคิดอื่น ๆ ก็ยินดีต้อนรับ


1บางทีฉันอาจจะทำได้ดีกว่าที่จะเรียกพวกเขาว่า "รูปแบบโดเมนที่เกิดขึ้นเป็นประจำ" แต่ชื่อ "แนวทางปฏิบัติที่ดีที่สุด" นั้นเป็นเรื่องปกติที่ทุกคนรู้ว่าพวกเขาคืออะไรถึงแม้ว่าพวกเขาจะไม่เห็นด้วยก็ตาม หากส่วนที่ "ดีที่สุด" รบกวนคุณคุณลองจินตนาการว่าฉันได้แทนที่ "แนวปฏิบัติที่ดีที่สุด" ด้วยเสียงที่น่าเชื่อถือน้อยกว่า


2
การมีสามัญสำนึกหมายความว่าคุณสามารถใช้มันเพื่อหาเหตุผลข้อดีข้อเสียของการแก้ปัญหาต่าง ๆ และเลือกสิ่งที่ดีที่สุดสำหรับปัญหา คนที่มีประสบการณ์ประกอบด้วยการอ่านหนังสือสองเล่มเกี่ยวกับรูปแบบการออกแบบและแนวปฏิบัติที่ดีที่สุดไม่เข้าใจว่าจะใช้ที่ไหนและอย่างไร
Blrfl

คำตอบ:


10

แนวปฏิบัติที่ดีที่สุดคือแนวปฏิบัติที่พบว่าทำงานได้ดีในสถานการณ์ที่ค่อนข้างกว้าง ปัญหาที่เกิดขึ้นกับพวกเขาคือก) การแสดงออกบางครั้งถูกใช้เพื่อการตลาดและ B) เป็นกฎตายตัวพวกเขาไม่ยืดหยุ่นพอ ไม่ควรปฏิบัติตามกฏที่กำหนดไว้โดยไม่คิดว่าจะใช้กับสถานการณ์ปัจจุบันหรือไม่

แนวปฏิบัติที่ดีที่สุดนั้นยอดเยี่ยมเมื่อพวกเขามาพร้อมคำอธิบายว่าทำไมพวกเขาถึง "ดีที่สุด" และในสถานการณ์ใดที่พวกเขาควรใช้ จากนั้นคุณสามารถเหตุผลเกี่ยวกับเมื่อไม่ใช้พวกเขา

ปัญหาของ "สามัญสำนึก" ก็คือมันยืดหยุ่นเกินไป - สามารถใช้เพื่อพิสูจน์ความจริงทุกอย่างและคุณไม่สามารถพูดคุยอย่างมีเหตุผลได้เมื่อผู้คนไม่เห็นด้วยและทั้งคู่อ้างว่าตำแหน่งของพวกเขาคือ "สามัญสำนึก" เป็นเรื่องดีที่มี แต่แย่เป็นแนวทางสำหรับทีมที่จะติดตาม


10

ฉันคิดว่าคุณมีมันย้อนหลัง

เมื่อสอนพื้นฐานความปลอดภัยให้กับผู้เขียนโปรแกรมฉันมักจะสอนให้พวกเขาใช้best practicesและเมื่อต้องรับมือกับผู้เชี่ยวชาญด้านความปลอดภัย (หรือโปรแกรมเมอร์ที่มีประสบการณ์ด้านความปลอดภัย) ฉันจะไม่พูดคุยเกี่ยวกับbest practicesความจริงแล้วฉันมักจะละเมิดพวกเขา

คำนิยามที่ดีกว่าคือ:

"วิธีปฏิบัติที่ดีที่สุด" เป็นความรู้สึกร่วมกันจากผู้เชี่ยวชาญซึ่งควรนำไปใช้โดยผู้ที่ไม่ใช่ผู้เชี่ยวชาญ

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

"แนวทางปฏิบัติที่ดีที่สุด" เป็นตัวยึดตำแหน่งชั่วคราวจนกว่าคุณจะมีประสบการณ์เพียงพอในการใช้ "สามัญสำนึก" ของคุณเอง


3
โอ้และถ้าคุณไม่คุ้นเคยกับแนวทางปฏิบัติที่ดีที่สุดคุณก็ไม่มีความรู้สึกเช่นกัน
AviD

7

แนวทางปฏิบัติที่ดีที่สุด -> "ก่อนอื่นคุณต้องเรียนรู้กฎ" ประสบการณ์ -> "จากนั้นคุณเรียนรู้เวลาและวิธีทำลาย"

ความเต็มใจที่จะทดลองกับทางเลือกอื่น (ในรหัสที่ไม่สำคัญ - แน่นอนว่าเป็นโครงการส่วนตัวและการทิ้งขยะ) สามารถช่วยสร้างประสบการณ์ที่คุณต้องการ

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

มันง่ายมากที่จะ "เข้าข้างข้าง" ในความเป็นจริงเป็นไปไม่ได้ที่จะหลีกเลี่ยง - บางครั้งด้านใดด้านหนึ่งถูกต้องและอีกด้านเป็นสิ่งที่ผิดและมันก็ไม่มีเหตุผลที่จะโต้แย้งเพื่อความสมดุล ปัญหาที่นี่คือนรกจริงไม่ได้ชั่งน้ำหนักหนึ่งแนวปฏิบัติที่ดีที่สุดสำหรับความเกี่ยวข้อง แต่เมื่อความคิดเห็นที่ขัดแย้งกันระหว่างแนวปฏิบัติที่ดีที่สุดสองข้อขัดแย้งกัน

การจัดการกับสิ่งนี้อาจเป็นเรื่องเกี่ยวกับทักษะผู้คนมากกว่าทักษะด้านเทคนิค ฉันแย่มากที่ :-(

แม้จะเป็นเช่นนั้นก็ยังคงเป็นสิ่งสำคัญที่จะต้องเรียนรู้จากประสบการณ์ของคนอื่นรวมถึงตัวคุณเอง - คือการค้นหาว่าการปฏิบัติที่ดีที่สุดคืออะไรทำไมพวกเขาถึงถูกใช้และข้อดี (และข้อเสีย) คืออะไร


6

สำหรับฉันดูเหมือนว่าคำถามนี้เป็นกลอุบายที่มีความหมาย ถ้าเราใช้คำจำกัดความเหล่านี้แล้วไม่มีคำถาม:

วิธีปฏิบัติที่ดีที่สุด: วิธีที่ได้รับการพิสูจน์แล้วในการแก้ปัญหาในโดเมนที่กำหนด (เช่นแนวปฏิบัติที่ดีที่สุดแบบเรียลไทม์นั้นต่างจากวิธีปฏิบัติที่ดีที่สุดสำหรับฐานข้อมูล)

สามัญสำนึก: ประสบการณ์ระดับมืออาชีพที่ทำหน้าที่เตือนโปรแกรมเมอร์ของข้อผิดพลาดที่ควรหลีกเลี่ยง

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


ดี ... มันเป็นความหมายอะไรบางอย่างหรืออื่น ๆ ไม่แน่ใจเรื่องกลอุบาย "สามัญสำนึก" ไม่ได้หมายถึงสิ่งที่พูดเสมอไป มันได้รับความรู้สึกของการไม่ปฏิบัติตามกฎการศึกษา - แง่มุมของสิ่งที่สมองและสามัญสำนึกที่โดยทั่วไปหมายถึงการคิดนอกขอบเขตของกฎ บางครั้งแนวทางปฏิบัติที่ดีที่สุดไม่สามารถนำไปใช้ได้จริง - ความจริงซับซ้อนเกินไปสำหรับชุดการสรุปทั่วไปที่สมบูรณ์แบบดังนั้นจึงมีหลายครั้งที่คุณต้องใช้ประสบการณ์ของตัวเองและ - อะแฮ่ม - "สามัญสำนึก"
Steve314

@ แพทริค: มันไม่ใช่ความตั้งใจของฉันที่จะเล่ห์เหลี่ยมทั้งหมด ส่วนหนึ่งของการถามคำถามนี้คือการสำรวจความเข้าใจที่ฉันมีเกี่ยวกับแนวคิดทั้งสองนี้โดยเฉพาะอย่างยิ่ง "สามัญสำนึก" จนถึงจุดนี้ การใช้กลอุบายที่ชัดเจนใด ๆ อาจเป็นเพียงสัญลักษณ์บ่งบอกว่าสัญชาตญาณของฉันเกี่ยวกับความคิดเหล่านี้ไม่มีที่ใกล้สมบูรณ์แบบ
Ed Carrel


4

ช่วงเวลาที่น่าสนใจ เมื่อสัปดาห์ที่แล้วบทความนี้ตีพิมพ์การอภิปรายว่าทำไมสามัญสำนึกไม่จำเป็นต้องเหมาะสมในทุกสถานการณ์

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

(คำพูดของฉันเป็นตัวหนา)

โดยทั่วไป - มนุษย์ไม่ดีที่ใช้สามัญสำนึกในพื้นที่เช่นนี้ที่เรายังไม่ได้พัฒนาระบบที่ฝังแน่นดังนั้นเราควรจะเสมอใช้ชุดเอกสารของมาตรฐานและไม่ต้องพึ่งพาสามัญสำนึกของเราเอง!


ความรู้ความเข้าใจมีอคติ ... อีกครั้ง และที่ว่าทำไมคุณจะต้องเป็นผู้เชี่ยวชาญได้รับการยอมรับก่อนที่คุณจะพึ่งพาสามัญสำนึกของคุณ ...
Avid

2

สามัญสำนึกไม่สอดคล้องกับการเรียนรู้รูปแบบต่อต้านและไม่แตกต่างจากหรือตรงกันข้ามกับวิธีปฏิบัติที่ดีที่สุด

ปัญหาแรกที่มีสามัญสำนึกคือชื่อของมัน - มันนำไปสู่ข้อสรุปว่ามันเป็นเรื่องธรรมดาและมีเหตุผล ตามที่ใช้กันทั่วไปมันจะถูกโจมตีทั้งสองจำนวน ใช้ตัวอย่างของคุณ:

รูปแบบการต่อต้านถูกใช้เฉพาะในกรณีที่ไม่มีวิธีอื่นและแม้กระทั่งในสถานการณ์ที่ จำกัด เท่านั้น

ฉันเข้าใจว่านี่ไม่ใช่วิธีที่รูปแบบการต่อต้านเกิดขึ้น มันมาจากการเพิ่มขึ้นของปัจจัยทางวัฒนธรรมและสังคม การไม่คำนึงถึงแนวปฏิบัติที่ดีที่สุดและมาตรฐานในช่วงเวลาที่สำคัญ การเพิกเฉยต่อต้นทุนในอนาคตเพื่อให้เกิดประโยชน์ในระยะสั้น - ตัวอย่างเช่นเพื่อให้ตรงตามกำหนดเวลาโดยใช้วิธีลัดที่เป็นฝันร้ายของการบำรุงรักษา ฯลฯ ไม่มีร่างกายกำหนดให้ใช้รูปแบบต่อต้านแบบจงใจ - มันเพิ่งเติบโต

สามัญสำนึกก็มักจะถูกใช้เพื่อหมายถึง "ที่ทำกันทั่วไป" และทำให้ขาดความคิดความเข้าใจและการทำงานอย่างหนักในการแก้ไขสิ่งที่เกี่ยวข้องในการจัดหาวิธีแก้ปัญหา มันยังใช้เป็นเหตุผลสำหรับ "มันเป็นวิธีที่ฉันทำมันเห็นได้ชัดว่ามันเป็นเรื่องธรรมดา" - และเพื่อป้องกันการวิจารณ์และวิจารณ์

เท่าที่การปฏิบัติที่ดีที่สุดเกี่ยวข้องกับ @ วรรคสองของไมเคิลเป็นการสรุปที่ยอดเยี่ยมของการปฏิบัติที่ดีที่สุดที่ควรเป็น - ทรัพยากรที่จะช่วยทุกคนในการปรับปรุงสิ่งที่พวกเขาทำ นอกจากนี้ยังให้ความโปร่งใสในการตัดสินใจ (การตัดสินใจออกแบบโดยเฉพาะ) และความสามารถในการเรียนรู้จากผู้อื่น ข้อเสียของแนวปฏิบัติที่ดีที่สุดคือเมื่อมันสร้างวัฒนธรรมรายการตรวจสอบ - "ฉันทำเครื่องหมายทุกช่องแล้วดังนั้นสิ่งที่ฉันทำไปต้องเป็นไร" - โดยไม่ต้องใช้ความคิดการดูแลและใส่ใจกับธรรมชาติของการบังคับใช้รายการตรวจสอบ


1

นี่เป็นข้อโต้แย้งที่ลื่นลาดซึ่งมักจะกลายเป็นสงครามทางศาสนา

เกือบทุกวิธีปฏิบัติที่ดีที่สุดสามารถโต้กลับด้วยกรณีที่ถูกต้องสำหรับการทำตรงข้าม

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

ในบางสถานการณ์สามัญสำนึกและแนวทางปฏิบัติที่ดีที่สุดแม้จะขัดแย้งกัน

ไม่มีหน่วยงานกำกับดูแลที่ดีที่สุดและไม่มีกลุ่มใดที่มีอยู่แม้ว่าจะมีอยู่ก็สามารถกำหนด "ดีที่สุด" ที่เป็นไปได้สำหรับทุกสถานการณ์ที่เป็นไปได้ หลายสิ่งหลายอย่างที่ระบุว่าเป็นแนวทางปฏิบัติที่ดีที่สุดเป็นเพียงการตลาดที่ไม่ดีพยายามขายเครื่องมือหรือการฝึกอบรมบุคคลที่ไม่รู้ข้อมูล

แม้ว่าทีมของคุณจะเห็นด้วยว่ามีบางสิ่งที่ดีที่สุดก็เป็นไปไม่ได้ที่จะนำไปใช้ในทางที่เป็นปัจจัย จำกัด

IMHO คุณต้องใช้แนวปฏิบัติที่ดีที่สุดเพื่อเป็นแนวทางในการพิจารณาอย่างรอบคอบในการออกแบบของคุณ คุณอาจมีเหตุผลที่ถูกต้องในการเบี่ยงเบน แต่คุณอาจต้องทำให้แน่ใจว่าทุกคนในทีมเห็นด้วยก่อนที่คุณจะไปและสร้างบางสิ่งที่แปลก

ข้อโต้แย้งบางประการเกี่ยวกับแนวปฏิบัติที่ดีที่สุดหลังจากนั้นจุดที่ค่อนข้างจะท่วมท้นลงมากจนไม่ได้สร้างบางสิ่งที่นักพัฒนาคนต่อไปที่ต้องทำมันจะเกลียด ทุกคนเกลียดโค้ดที่ไม่ใช่สไตล์ของพวกเขาและทุกคนโทษทุกอย่างกับคนที่ทิ้งดังนั้นคุณจะอธิบายมันให้กับนักพัฒนาคนต่อไปหลังจากที่พวกเขาบ่นเกี่ยวกับบางสิ่งบางอย่างหรือคุณจะไม่ไปที่นั่น ไม่ว่าคุณจะใช้รหัสอย่างไร สิ่งนี้ทำให้ความกังวลส่วนใหญ่ไม่เกี่ยวข้อง


1

สามัญสำนึกไม่ได้ให้ผลลัพธ์ที่ดีที่สุดเสมอไป อย่างไรก็ตามได้มีการทดลองใช้แนวทางปฏิบัติที่ดีที่สุดแล้ว ทำให้การปฏิบัติที่ดีที่สุดเป็นแหล่งข้อมูลที่น่าเชื่อถือ


0

แนวปฏิบัติที่ดีที่สุดนั้นไม่ได้ดีที่สุดและสามัญสำนึกนั้นไม่ใช่เรื่องธรรมดา ;-)

สำหรับแนวปฏิบัติที่ดีที่สุดหรือสามัญสำนึกฉันชอบคิดว่าพวกเขาเป็นรูปแบบ โปรดจำไว้ว่าความหมายของรูปแบบนี้: การแก้ปัญหาในบริบทการแก้ปัญหากองกำลังเข้าไปในบริบทที่เกิด

สำหรับสิ่งที่คุณต้องการทำคุณควรรู้บริบทที่เกี่ยวข้องกับมันบังคับให้แก้ไขและบริบทที่เกิดขึ้น จากนั้นตัดสินใจเลือกรูปแบบที่คุณจะใช้ในทีมของคุณ (สิ่งนี้อาจเป็นทางการหรือไม่เป็นทางการ แต่อย่างใดมันใหญ่กว่าหนังสือ Gang of Four มากซึ่งรวมถึงสำนวนภาษาและห้องสมุดผู้ช่วยท้องถิ่นไม่ใช่รูปแบบการตีพิมพ์)

ถ้าคุณรู้สึกตามประสบการณ์ของคุณว่าในบางสถานการณ์มันจะเป็นการดีกว่าถ้าคุณไม่ใช้รูปแบบที่กำหนด แต่เพื่อทำสิ่งอื่นให้คนอื่นรู้ น่าจะเป็นบริบทหรือกองกำลังที่แตกต่างกันที่นี่ (หรืออาจจะบริบทที่เกิดขึ้นจะเป็นที่ไม่พึงประสงค์.) ฉันไม่สนใจว่าจะเป็นการประชุมแสดงความคิดเห็นรหัสหรือสิ่งที่ แต่ถ้าคุณทำให้มันชัดเจนว่าคุณมีเสียรูปแบบเกี่ยวกับวัตถุประสงค์ , คุณจะได้รับไมล์ล่วงหน้า


-1

แนวปฏิบัติที่ดีที่สุดคือสิ่งที่พวกเขาสอนคุณที่โรงเรียนสามัญสำนึกคือสิ่งที่หัวหน้าต้องการให้คุณ อดีตสร้างซอฟต์แวร์ที่ตรงตามมาตรฐานบางอย่างของความสง่างามสไตล์และเช่น หลังจ่ายตั๋วเงิน / ทำเงินเพื่อให้คุณได้รับเงินในแต่ละสัปดาห์

หนึ่งคือศิลปะธุรกิจอื่น ๆ พวกเราหลายคนลืมมันไป


เจ้านายไม่สนใจว่าคุณจะหาเหตุผลเข้าข้างตนเองในการแสดงอย่างไรเขาใส่ใจว่าไม่มีปัญหา วิธีการแก้ปัญหาที่คุณเรียกว่า 'สำเร็จโดยสามัญสำนึก' นั้นดีสำหรับเขาเช่นเดียวกับ 'ประสบความสำเร็จโดยปฏิบัติตามแนวทางปฏิบัติที่ดีที่สุด'
keppla

ฉันขอใช้คำตอบใหม่ แนวปฏิบัติที่ดีที่สุดมักถูกใช้เป็นข้ออ้างในเรื่องวิศวกรรมมากกว่าขอบเขตที่มีความหมายเหมือนกันในซอฟต์แวร์หลายแห่ง สามัญสำนึกคือการงดเว้นจากวิศวกรรมมากกว่าในความสนใจของความสำเร็จ (ปกติเชิงพาณิชย์) ของโครงการ
mattnz

-1

การพูดเกินจริงเล็กน้อย: ความแตกต่างคือสามัญสำนึกคืออคติการปฏิบัติที่ดีที่สุดคือ (ควร) วิทยาศาสตร์

จากประสบการณ์ของฉัน 'สามัญสำนึก' ถูกนำมาใช้เมื่อไม่มีใครต้องการแสดงหลักฐานหรืออย่างน้อยก็มีข้อโต้แย้งในการทำสิ่งต่าง ๆ ไม่ได้หมายความว่าวิธีนี้ผิดปกติ แต่ไม่ได้หมายความว่าดี

ในบรรดาสิ่งต่าง ๆ ที่ฉันพบว่ามีเหตุผลเหมือนผึ้งทั่วไปก็คืออัญมณีเหล่านี้

  • HTTP-Method ส่วนใหญ่ไม่เกี่ยวข้องใช้ GET เมื่อคุณส่งข้อมูลเล็กน้อยใช้ POST เมื่อส่งสัญญาณมากขึ้น (เช่นส่งไปยัง URL มาก)
  • ฟังก์ชั่นไม่ควรเล็กเกินไปเพราะมันยากที่จะจำได้ว่ามันทำอะไร หนึ่งฟังก์ชั่นใหญ่ดีกว่า 5 อันเล็กเพราะคุณสามารถอ่านมันเป็นหนึ่งเดียว
  • ฐานข้อมูลและเว็บเซิร์ฟเวอร์ต้องทำงานบนเครื่องเดียวกันไม่เช่นนั้นเว็บเซอร์จะช้าลง วิธีเดียวที่จะขยายขนาดคือการเพิ่มความเร็วโค้ดโดยการแฮ็กและการยกเลิกนามธรรมเพื่อให้พลังงานของเครื่องหนึ่งพอเพียง

สิ่งที่ตลกเกี่ยวกับ 'สามัญสำนึก' คือมันไม่ใช่เรื่องธรรมดา: เลือกสองทีมและให้พวกเขาระบุว่าสิ่งที่พวกเขาเป็น 'สามัญสำนึก' และสนุกกับสงครามศาสนา

ในทางตรงกันข้ามในฐานะ 'Best Practice' ฉันจะพิจารณาวิธีการทำสิ่งต่าง ๆ ที่มี 'peer review' มากกว่า ในการพิจารณาบางสิ่งที่เป็น 'แนวปฏิบัติที่ดีที่สุด' ฉันคาดหวังว่ามันจะถูกกำหนดอย่างชัดเจนเพียงพอเพื่อให้สามารถนำเสนอเป็นแนวคิด ('การเขียนโปรแกรมแบบโครงสร้าง' เป็นแนวปฏิบัติที่ดีที่สุด 'gotos สับสนหลีกเลี่ยงพวกเขา' เป็นสามัญสำนึก) นำไปใช้มากกว่าหนึ่งครั้งด้วยผลลัพธ์ที่ดี


คุณกำลังพูดว่า "การปฏิบัติที่ดีที่สุด" เหมาะสมเสมอในทุกสถานการณ์และการปฏิบัติที่ดีที่สุดไม่ได้ทำอย่างมีสติไม่ดี ("ไม่ดี")
mattnz

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