อย่าออกแบบรูปแบบยับยั้งความคิดสร้างสรรค์


21

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

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

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

คุณคิดอย่างไร?


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

11
การเอน / การสอนแตกต่างจากการทำ ดังนั้นหลักสูตร CS ที่ดีจริงๆอาจทำให้คุณเขียนคอมไพเลอร์ - ถ้าคุณแนะนำให้นายจ้างของคุณว่าคุณต้องเขียนคอมไพเลอร์สำหรับระบบประมวลผลคำสั่งของเขาคุณจะต้องถูกไล่ออก
James Anderson

2
ฉันไม่คิดว่าทั้งสองจะต้องเทียบเคียงกัน - รูปแบบการออกแบบไม่ใช่โซลูชันแบบดั้งเดิม แต่เป็นวิธีการแก้ปัญหาที่หลากหลาย
jmoreno

1
เป็นไปได้ซ้ำกับรูปแบบการออกแบบ - คุณใช้มันหรือไม่ - คำถามอาจฟังดูแตกต่าง แต่คำตอบสำหรับคำถามนั้นเหมาะสมกับกรณีนี้
Doc Brown

2
ฉันไม่รู้เกี่ยวกับความคิดสร้างสรรค์ แต่มากมายของ "รูปแบบนี้คืออะไร" หรือ "มีรูปแบบสำหรับสิ่งนี้หรือไม่?" คำถามให้ความประทับใจที่ผู้พัฒนาบางคนคิดว่ามีรูปแบบสำหรับทุกสิ่ง
JeffO

คำตอบ:


43

อาจารย์เศรษฐศาสตร์ของคุณถูกต้องอย่างแน่นอน

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

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

นอกจากนี้รูปแบบการออกแบบส่วนใหญ่เป็นรูปแบบองค์กรรูปแบบที่มีจุดประสงค์เพื่อใช้ในระบบซอฟต์แวร์องค์กรขนาดใหญ่ หากคุณเรียนรู้สิ่งมหัศจรรย์ของ Inversion of Control container คุณจะต้องใช้มันในทุก ๆ โปรแกรมที่คุณเขียนแม้ว่าโปรแกรมส่วนใหญ่ไม่ต้องการมันจริง ๆ (มีวิธีที่ดีกว่าในการฉีดการพึ่งพาของคุณในโปรแกรมขนาดเล็ก ไม่ต้องใช้คอนเทนเนอร์ IoC)

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


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

18
@Mahdi เมื่อผู้คนจำนวนมากพบวิธีการแก้ปัญหาเดียวกันวิธีการแก้ปัญหาที่เรียกว่ารูปแบบ มันไม่ใช่วิธีอื่น ๆ - คุณไม่ได้ดูรูปแบบและใช้เป็นโซลูชันคุณมองไปที่โซลูชันและค้นหารูปแบบ
user253751

13
@Mahdi ฉันเห็นผู้เริ่มต้นที่คิดว่าถ้าเพียงพวกเขาใช้ pattern XXX พวกเขาจะสร้างซอฟต์แวร์ที่สมบูรณ์แบบทุกครั้ง (ที่ XXX คือสิ่งที่พวกเขาได้อ่านเกี่ยวกับหลักสูตรสุดท้าย) จากนั้นออกนอกเส้นทางของพวกเขาเพื่อทรมานทุกโครงการ รูปแบบนั้น
jwenting

5
@Mahdi: อย่าใช้ประโยค "โดยคนที่เข้าใจวิธีการแก้ปัญหาโดยไม่มีรูปแบบ" เกินไป แน่นอนโรเบิร์ตหมายถึง "โดยคนที่เข้าใจปัญหาในสเตคดีพอที่จะทำการตัดสินใจที่สมเหตุสมผลเกี่ยวกับเวลาที่จะใช้รูปแบบและเมื่อไม่ได้"
Doc Brown

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

21

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

น่าเสียดายที่บางคนนำสิ่งเหล่านี้เข้ามาใกล้งานเขียนศักดิ์สิทธิ์มากกว่าการออกแบบตัวอย่างที่สามารถเรียนรู้ได้ นั่นจะฆ่าความคิดสร้างสรรค์และสร้างลัทธิขนส่งสินค้า

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

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

ถ้าคุณมองปัญหาแล้วถามตัวเองว่า "ฉันจะแก้ปัญหานี้ได้อย่างไร?" ถ้ามีวิธีแก้ปัญหาที่ไม่ใช่รูปแบบคุณจะเห็นมันและถ้ามีรูปแบบที่เหมาะกับคุณก็จะเห็นเช่นกัน


10

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

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

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

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

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


3
"ฉันเรียนรู้มาก แต่ทุกคนไม่ประสบความสำเร็จฉันพยายามอย่างดีที่สุด แต่จะเกิดอะไรขึ้นถ้าไม่มี MVC อยู่ข้างนอกง่ายดีซอร์สโค้ดของฉันแย่มาก" - คำทองคำที่เป็นของแข็ง!
ankush981

5

อย่าประดิษฐ์ค้อนขึ้นมาใหม่ แต่อย่ารักษาทุกปัญหาเหมือนเล็บ

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

การถอดความคำถามของคุณ: การเรียนรู้ที่จะขับทำให้ฉันเคลื่อนไหวเร็วขึ้นหรือเดินช้าลง?

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

กลับไปยังส่วนที่สองของคำถามของคุณ - ศาสตราจารย์ของคุณถูกต้องหรือไม่

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

นี่คือเหตุผลที่คุณสอนนักเรียนให้เข้าโปรแกรมเป็นครั้งแรกและมีการนำรูปแบบดังกล่าวมาใช้ในภาคการศึกษาต่อไป


5

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

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

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

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


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

@dotslash สำหรับเหตุผลเดียวกันกับที่การทดสอบไอคิวจะหนักในคณิตศาสตร์ / ตรรกะพวกเขามีบางอย่างคุ้มค่าและพวกเขากำลังง่ายต่อการทดสอบ ที่กล่าวว่าในการทำงานของฉันในฐานะโปรแกรมเมอร์ฉันไม่ได้พบพวกเขาในการสัมภาษณ์ทั้งหมดนั้น ฉันเป็นคนออสเตรเลีย แต่อาจจะมีความแตกต่างในแฟชั่น
Ben

แต่การเรียนรู้เกี่ยวกับรูปแบบการออกแบบไม่ใช่วิธีที่ดีในการดูตัวอย่างที่เป็นรูปธรรมเกี่ยวกับวิธีคิดเกี่ยวกับโค้ด คุณจะพิจารณาสิ่งใดบ้างเพื่อเรียนรู้วิธีคิดเกี่ยวกับโค้ดหากไม่มีปัญหา + วิธีแก้ไขปัญหาทั่วไปที่แก้ปัญหาและโค้ดตัวอย่างที่ใช้วิธีแก้ไขปัญหา
Amy Blankenship

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

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

3

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

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


1

แน่นอนคำตอบคือใช่

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

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

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


3
พวกเขาเป็นเครื่องมือการสอนที่ยอดเยี่ยมสำหรับการสอนการเขียนโปรแกรม (แทนที่จะออกแบบ) พวกเขานำไปสู่คำถามทั่วไปดังนั้นในฟอรั่มอินเทอร์เน็ตของ "ฉันจะใช้ XXX โดยใช้รูปแบบ YYY" ซึ่งเป็นคำถามที่ผิดที่จะถามคำถามที่ควรจะเป็น (เมื่อคุณต้องการที่จะบังคับรูปแบบ) "รูปแบบที่เหมาะสม สำหรับการใช้งาน XXX "
jwenting

1
ฮ่า ๆ ผมบอกว่าเครื่องมือการเรียนรู้ไม่ได้สอนเครื่องมือ - ถ้าใครต้องการที่จะเรียนรู้;)
ร็อบ

-2

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


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