คำถามติดแท็ก philosophy

7
จะหลีกเลี่ยงการถูกแยกจากกันโดยการมีส่วนร่วมที่ทรงพลังมากขึ้นได้อย่างไร?
ตามที่รายงานเมื่อเร็ว ๆ นี้ที่นี่ : Xamarin ได้แยก Cocos2D-XNA ซึ่งเป็นกรอบการพัฒนาเกม 2D / 3D สร้างห้องสมุดข้ามแพลตฟอร์มที่สามารถรวมไว้ในโครงการ PCL อย่างไรก็ตามผู้ก่อตั้งโครงการที่ถูกแยกออกพูดว่า : วัตถุประสงค์ของใบอนุญาต MIT คือการยกเลิกการใช้งานอย่างเป็นธรรมของคุณ ไม่สนับสนุนให้คุณใช้ซอฟต์แวร์เปลี่ยนโฉมให้เป็นของคุณเองแล้ว "นำไปในทิศทางใหม่" ตามที่คุณพูด ในขณะที่ไม่ผิดกฎหมายก็ผิดจรรยาบรรณ ดูเหมือนว่าหน้า GitHub ของโครงการใหม่ไม่ได้ระบุว่ามันเป็นทางแยกในลักษณะ GitHub ทั่วไปการเลือกสำหรับส่วนประวัติที่ถอดออกได้อย่างง่ายดายแทน (ดูด้านล่าง) ดังนั้นคำถามของฉันคือ: การกระทำของ Xamarin และวิธีการกระทำนั้นถูกต้องตามหลักจริยธรรมหรือไม่? เป็นไปได้หรือไม่ที่จะหลีกเลี่ยงสถานการณ์เช่นนี้หากคุณเป็นผู้พัฒนาเดี่ยวหรือกลุ่มนักพัฒนาขนาดเล็กที่ไม่มีเงินทุน? ฉันหวังว่านี่อาจเป็นคำถามแบบ wiki หรือจะมีคำตอบที่ตรงตามวัตถุประสงค์บนพื้นฐานจริยธรรม / ปรัชญา OSS ที่ทันสมัย

13
ปรัชญาที่อยู่เบื้องหลังพฤติกรรมที่ไม่ได้กำหนด
ข้อมูลจำเพาะ C \ C ++ ทำให้พฤติกรรมไม่เปิดจำนวนมากสำหรับคอมไพเลอร์เพื่อนำไปใช้ในทางของตัวเอง มีคำถามจำนวนมากที่มักถูกถามอยู่เสมอเกี่ยวกับสิ่งเดียวกันและเรามีโพสต์ที่ยอดเยี่ยมเกี่ยวกับเรื่องนี้: https://stackoverflow.com/questions/367633/what-are-all-the-common-undefined-behaviour-that-ac-programmer-should-know-abo https://stackoverflow.com/questions/4105120/what-is-undefined-behavior https://stackoverflow.com/questions/4176328/undefined-behavior-and-sequence-points คำถามของฉันไม่ได้เกี่ยวกับพฤติกรรมที่ไม่ได้กำหนดหรือมันแย่จริงๆ ฉันรู้ถึงอันตรายและการอ้างอิงพฤติกรรมที่ไม่ได้กำหนดที่เกี่ยวข้องส่วนใหญ่จากมาตรฐานดังนั้นโปรดงดเว้นการโพสต์คำตอบเกี่ยวกับความเลวร้ายของมัน คำถามนี้เกี่ยวกับปรัชญาเบื้องหลังการละทิ้งพฤติกรรมที่เปิดกว้างสำหรับการใช้งานคอมไพเลอร์ ฉันอ่านโพสต์บล็อกที่ยอดเยี่ยมที่ระบุว่าประสิทธิภาพเป็นเหตุผลหลัก ฉันสงสัยว่าการทำงานเป็นเพียงเกณฑ์ในการอนุญาตหรือมีปัจจัยอื่น ๆ ที่มีอิทธิพลต่อการตัดสินใจที่จะเปิดโอกาสให้คอมไพเลอร์ใช้งานได้หรือไม่? หากคุณมีตัวอย่างใด ๆ ที่จะกล่าวถึงพฤติกรรมที่ไม่ได้กำหนดไว้อย่างใดอย่างหนึ่งให้พื้นที่เพียงพอสำหรับคอมไพเลอร์เพื่อเพิ่มประสิทธิภาพโปรดแสดงรายการเหล่านั้น หากคุณทราบถึงปัจจัยอื่น ๆ นอกเหนือจากประสิทธิภาพโปรดกลับคำตอบของคุณพร้อมรายละเอียดที่เพียงพอ หากคุณไม่เข้าใจคำถามหรือไม่มีหลักฐาน / แหล่งข้อมูลเพียงพอที่จะตอบคำถามของคุณโปรดอย่าโพสต์คำตอบที่คาดเดาอย่างกว้าง ๆ

7
หลักการที่เป็นของแข็งเทียบกับ YAGNI
หลักการ SOLID กลายเป็น YAGNI เมื่อใด ในฐานะโปรแกรมเมอร์เราทำการแลกเปลี่ยนตลอดเวลาระหว่างความซับซ้อนการบำรุงรักษาเวลาในการสร้างและอื่น ๆ ในบรรดาคนอื่น ๆ แนวทางที่ฉลาดที่สุดสองข้อในการเลือกอยู่ในใจของฉันคือหลักการของ SOLID และ YAGNI หากคุณไม่ต้องการมัน อย่าสร้างมันและรักษาความสะอาด ยกตัวอย่างเช่นตอนที่ฉันดูซีรีส์ dimecast บน SOLIDฉันเห็นว่ามันเริ่มจากโปรแกรมที่ค่อนข้างง่ายและกลายเป็นคอมเพล็กซ์ที่ค่อนข้างซับซ้อน (ตอนจบใช่ความซับซ้อนยังอยู่ในสายตาของคนดู) แต่ก็ยังทำให้ ฉันสงสัยว่า: เมื่อใดที่หลักการของ SOLID เปลี่ยนเป็นสิ่งที่คุณไม่ต้องการ หลักการที่มั่นคงทั้งหมดเป็นวิธีการทำงานที่เปิดใช้งานการเปลี่ยนแปลงในภายหลัง แต่ถ้าหากปัญหาในการแก้ไขเป็นเรื่องที่ค่อนข้างง่าย หรือหลักการของ SOLID เป็นสิ่งที่ใช้อยู่เสมอ ตามที่ถามในความคิดเห็น: หลักการที่เป็นของแข็ง YAGNI

26
สิ่งใดที่คุณต้องการให้นักออกแบบภาษาให้ความสนใจ? [ปิด]
วัตถุประสงค์ของคำถามนี้คือการรวบรวมรายการซักผ้าของคุณสมบัติการเขียนโปรแกรมภาษาที่คุณขาดไม่ได้หรือต้องการเป็นภาษาหลักที่คุณเลือก จุดประสงค์ของคำถามนี้คือนำเสนอมุมมองของการออกแบบที่อ่อนล้านักออกแบบภาษาส่วนใหญ่อาจไม่ได้คิดถึง ดังนั้นแทนที่จะคิดเกี่ยวกับคุณสมบัติภาษา X ลองคิดดูฟิสโซฟิคสักหน่อย หนึ่งในอคติของฉันและบางทีมันอาจเป็นการโต้เถียงกันคือด้านวิศวกรรมที่นุ่มนวล - สิ่งที่ควรทำ - สิ่งสำคัญคือหลายครั้งที่สำคัญกว่าด้านคอนกรีต ตัวอย่างเช่น Ruby ได้รับการออกแบบโดยมีเป้าหมายเพื่อพัฒนาความสุขของนักพัฒนา ในขณะที่ความคิดเห็นของคุณอาจถูกปนกันไม่ว่าจะนำเสนอหรือไม่ก็ตามความจริงที่เป็นเป้าหมายนั้นหมายความว่าตัวเลือกบางอย่างในการออกแบบภาษาได้รับอิทธิพลจากปรัชญานั้น กรุณาอย่าโพสต์: สงครามเปลวไฟวากยสัมพันธ์ มาดูกันเรามีการตั้งค่าของเราและไวยากรณ์เป็นสิ่งสำคัญตามที่เกี่ยวข้องกับการออกแบบภาษา ฉันแค่ต้องการหลีกเลี่ยงการต่อสู้ที่ยิ่งใหญ่ของธรรมชาติของ emacs กับ VI (ซึ่งผู้คนจำนวนมากในทุกวันนี้ไม่รู้อะไรเลย) "ภาษาใด ๆ ที่ไม่มีคุณลักษณะ X ไม่สมควรมีอยู่" พิมพ์ข้อคิดเห็น มีอย่างน้อยหนึ่งเหตุผลสำหรับภาษาการเขียนโปรแกรมทั้งหมดที่มีอยู่ - ดีหรือไม่ดี โปรดทำโพสต์: แนวความคิดที่เป็นแนวร่วมที่นักออกแบบภาษาดูเหมือนจะพลาด แนวคิดทางเทคนิคที่ดูเหมือนว่าจะนำมาใช้ไม่ดีบ่อยกว่าไม่ โปรดยกตัวอย่างความเจ็บปวดที่เกิดขึ้นและหากคุณมีความคิดว่าคุณต้องการให้มันทำงานอย่างไร สิ่งที่คุณต้องการอยู่ในห้องสมุดทั่วไปของแพลตฟอร์ม แต่ไม่ค่อยมี หนึ่งในโทเค็นเดียวกันสิ่งต่าง ๆ ที่มักจะอยู่ในห้องสมุดทั่วไปที่คุณไม่ต้องการ คุณสมบัติด้านแนวคิดเช่นการสนับสนุนการจัดการการทดสอบ / การยืนยัน / สัญญา / ข้อผิดพลาดที่คุณต้องการให้ภาษาการเขียนโปรแกรมทั้งหมดจะใช้งานได้อย่างถูกต้องและกำหนดอย่างเหมาะสม ฉันหวังว่ามันจะเป็นหัวข้อที่สนุกและน่าตื่นเต้น แก้ไข: อธิบายสิ่งที่ฉันหมายถึงโดย …

4
ตัวอย่างที่เป็นรูปธรรมของ Python“ วิธีเดียวที่จะทำได้” maxim [ปิด]
ฉันกำลังเรียนรู้ Python และรู้สึกทึ่งกับประเด็นต่อไปนี้ใน PEP 20 The Zen of Python : ควรมีอย่างน้อยหนึ่งวิธีที่ชัดเจนกว่าที่จะทำ แม้ว่าวิธีนี้อาจไม่ชัดเจนในตอนแรกเว้นแต่ว่าคุณเป็นชาวดัตช์ ใครสามารถเสนอตัวอย่างที่เป็นรูปธรรมของคติพจน์นี้ได้บ้าง ฉันสนใจเป็นพิเศษในการเปรียบเทียบกับภาษาอื่นเช่นทับทิม ส่วนหนึ่งของปรัชญาการออกแบบทับทิม (ที่มาจากภาษา Perl ฉันคิดว่า?) ก็คือการทำสิ่งต่าง ๆ เป็นสิ่งที่ดี ทุกคนสามารถเสนอตัวอย่างที่แสดงข้อดีข้อเสียของแต่ละวิธีได้หรือไม่ หมายเหตุฉันไม่ได้หลังจากคำตอบที่ดีกว่า (ซึ่งอาจเป็นอัตนัยเกินกว่าที่จะตอบ) แต่เป็นการเปรียบเทียบที่ไม่ลำเอียงของทั้งสองสไตล์

10
จัดส่งได้ แต่เช้าไม่ส่ง [ปิด]
สิ่งนี้เริ่มต้นในฐานะ "หมายเหตุถึงตัวเอง" ดังนั้นโปรดยกโทษให้ฉันถ้าความยุ่งยากนั้นชัดเจนและการเขียนนั้นน้อยกว่าตัวเอก ... สามวิชาหลักที่ฉันมีอยู่ในระดับแนวหน้าของจิตใจของฉันเมื่อเร็ว ๆ นี้: แรงจูงใจ การเรียนรู้ (อยากรู้อยากเห็น) ทำ (ทำ) ตอนนี้ฉันเรียนแรงจูงใจและแรงจูงใจมาหลายเดือนแล้ว ดูเหมือนว่ามีแรงจูงใจที่แตกต่างกันมากมายที่ผู้คนอาจมีเพื่อทำสิ่งต่าง ๆ (ฉันตระหนักว่าฟังดูน่าเบื่อ แต่ทนกับฉัน) ฉันได้รับการวาดจริงๆมันเพราะฉันหมดหวังที่จะหาเหตุผลที่ผมทำในสิ่งที่ฉันทำและทำไมฉันจะไม่ทำสิ่งที่ฉันต้องการจะทำ แต่ไม่ทำ ฉันอยู่ท่ามกลางการอ่านหนังสือแฮกเกอร์และจิตรกรชื่อดังของพอลเกรแฮม ในนั้นเขาทำให้กรณีที่แฮ็กเกอร์และจิตรกรมีความคล้ายคลึงกันมาก จิตรกรทำภาพวาด แฮกเกอร์ทำซอฟต์แวร์ จิตรกรไม่จำเป็นต้องเข้าใจองค์ประกอบทางเคมีของสีเพื่อสร้างภาพวาดที่สวยงาม และแฮกเกอร์ไม่จำเป็นต้องรู้ 1 และ 0 เพื่อสร้างซอฟต์แวร์ที่สวยงาม เกรแฮมนั้นดึงความแตกต่างระหว่างสาขาวิทยาศาสตร์คอมพิวเตอร์ที่แตกต่างกัน: บางคนดูเหมือนจะเรียนคณิตศาสตร์ ดูเหมือนว่าบางคนกำลังศึกษาคอมพิวเตอร์ด้วยตัวเอง แฮกเกอร์กำลังสร้างซอฟต์แวร์ ความแตกต่างนั้นสำคัญอย่างไม่น่าเชื่อ ดูเหมือนว่าแรงจูงใจสำหรับบางคนคือการทำสิ่งที่สวยงาม และแรงจูงใจสำหรับผู้อื่นคือการเรียนรู้จากความอยากรู้ แรงจูงใจบางอย่างดูเหมือนจะชัดเจนสำหรับฉัน แต่ความอยากรู้อยากเห็นดูเหมือนชัดเจนน้อยลง ฉันจะถือว่าตัวเองเป็นคนที่มีความอยากรู้อยากเห็นอย่างแน่นอนและไม่สามารถดับได้เพื่อเรียนรู้ทุกอย่างที่ฉันทำได้ แต่นี่คือสิ่งที่ปัญหาเกิดขึ้น สิ่งที่ทำให้ฉันกลัวมากคือฉันอยากทำทุกอย่าง ฉันอยากทำสิ่งต่าง ๆ อย่างยิ่ง ฉันต้องการเขียนหนังสือ ฉันต้องการทาสี ฉันต้องการแต่งเพลง ฉันต้องการทำสิ่งต่าง ๆ เช่นการเดินทาง …

5
การโปรแกรมในปรัชญา UNIX เหมือนกับการเขียนโปรแกรมเชิงหน้าที่หรือไม่?
สภาพแวดล้อมการเขียนโปรแกรม UNIX (ข้อความคลาสสิก) ระบุว่าวิธี UNIX ในการเขียนโปรแกรมคือการสร้างเครื่องมือขนาดเล็กที่กำหนดอย่างดีซึ่งสามารถรวมกันเพื่อแก้ไขปัญหาที่ซับซ้อนมากขึ้น ในการเรียนรู้ C และ Bash shell ฉันพบว่านี่เป็นแนวคิดที่ทรงพลังที่สามารถใช้เพื่อจัดการกับปัญหาการเขียนโปรแกรมที่หลากหลาย เพียงแค่ใช้แพลตฟอร์ม Linux แนวคิดนั้นค่อนข้างชัดเจนและใช้งานได้ตลอดเวลา การแสดงออกใด ๆ ที่เกิดขึ้นในบรรทัดคำสั่งที่เปลี่ยนเส้นทาง I / O, การเชื่อมโยงเครื่องมือระบบเช่น ls, grep, อื่น ๆ และอื่น ๆ แสดงให้เห็นว่าแนวคิดนี้มีประสิทธิภาพเพียงใด สิ่งที่ทำให้ฉันสับสนคือหลายโปรแกรมเหล่านี้เขียนด้วยภาษา C โดยใช้รูปแบบการเขียนโปรแกรมที่จำเป็น / ขั้นตอน แต่วิธีที่พวกเขาใช้และเชื่อมต่อเข้าด้วยกันในบรรทัดคำสั่งนั้นดูเหมือนโปรแกรมการทำงานกับฉันมากขึ้น ฟังก์ชั่นแยกที่ไม่ได้ขึ้นอยู่กับสถานะของโปรแกรมอื่น ๆ ที่มันอาจจะเข้าร่วม สิ่งนี้ถูกต้องหรือไม่การเข้าใจปรัชญาการเขียนโปรแกรมของ UNIX นั้นคือการเขียนโปรแกรมที่ใช้งานได้โดยใช้เครื่องมือที่อาจสร้างขึ้นโดยใช้รูปแบบการเขียนโปรแกรมที่จำเป็น?

7
มีปรัชญาการเขียนโปรแกรม Windows หรือไม่ [ปิด]
ฉันเขียนโปรแกรมทั้งใน Unix และ Windows ส่วนใหญ่ฉันทำงานใน Unix ซึ่งฉันได้เรียนรู้ปรัชญา Unixซึ่งสามารถสรุปได้ดังนี้ เขียนโปรแกรมที่ทำสิ่งหนึ่งและทำได้ดี เขียนโปรแกรมเพื่อทำงานร่วมกัน เขียนโปรแกรมเพื่อจัดการสตรีมข้อความเนื่องจากเป็นอินเตอร์เฟสสากล ดูเหมือนว่าจะมีความแตกต่างที่ชัดเจนในวัฒนธรรมการเขียนโปรแกรมระหว่างโลก Unix และ Windows เช่น: GUI เทียบกับ CLI ไฟล์ Registry vs config เครื่องมือจำนวนมากที่มีความเชี่ยวชาญสำหรับความต้องการใด ๆ เทียบกับกลุ่มของเครื่องมือมุมฉากทั่วไปซึ่งสามารถรวมกันได้ มี "ปรัชญา Unix" ใน Windows หรือไม่ สิ่งที่โปรแกรมเมอร์ Unix สามารถเรียนรู้จาก Windows หรือควรระวังเมื่อย้ายไปเขียนโปรแกรมใน Windows ฉันต้องการคำตอบเพื่อมุ่งเน้นการปฏิบัติที่ดีที่สุดของการเขียนโปรแกรม Windows (และไม่ใช่การต่อสู้ระหว่าง Windows และ Unix)

8
Emacs-as-OS: ล้าสมัยแล้วหรือ [ปิด]
ปิด คำถามนี้เป็นคำถามความคิดเห็นตาม ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้สามารถตอบข้อเท็จจริงและการอ้างอิงได้โดยแก้ไขโพสต์นี้ ปิดให้บริการใน5 ปีที่ผ่านมา ในความพยายามที่จะเข้าถึงสถานะผู้เริ่มต้นอย่างน้อยด้วยโปรแกรมแก้ไขตำนานฉันได้รับการเข้ารหัสใน Emacs ในช่วงสองเดือนที่ผ่านมา ฉันพยายามเก็บใจที่เปิดกว้าง แต่ฉันพบว่าตัวเองไม่เห็นด้วยอย่างต่อเนื่องกับตัวเลือกการออกแบบหลักหนึ่ง: Emacs อนุญาตให้ผู้ใช้ไม่ต้องออกจาก ในโลก 2010 ฉันแค่คิดว่าคุณสมบัติทุกด้านของ Emacs นั้นอยู่เบื้องหลังซอฟต์แวร์เฉพาะ: ฉันจะไม่ใช้เบราว์เซอร์ในตัว Chrome เป็นปีต่อไป ฉันจะไม่ใช้คุณสมบัติที่น่ากลัวของมัน Path Finder (Mac OS X) เหมาะสมกับความต้องการของฉัน ฉันจะไม่ใช้อีเมลในตัว เว็บอินเตอร์เฟสของ Gmail มีคุณสมบัติที่เกี่ยวข้องมากกว่าเช่นกล่องจดหมายสำคัญ เป็นต้น แน่นอนว่าฉันอาจจุ่ม Emacs เป็นครั้งคราวเพื่อใช้งาน regexps ฯลฯ สำหรับงานใดงานหนึ่งข้างต้น แต่นอกเหนือจาก regexps ฉันไม่เห็นเหตุผลที่จะสัมผัสคุณสมบัติด้านข้างเหล่านั้นเลย ฉันเป็นมือใหม่อย่างสมบูรณ์ แต่ฉันมีความรู้สึกที่แข็งแกร่งที่ Emacs-as-an-OS ล้าสมัย ผู้เชี่ยวชาญของ Emacs คุณคิดว่าทางเลือกของ …

7
ภาษาธรรมชาติอะไรมีข้อดีเมื่อพูดถึงการเขียนโปรแกรม? [ปิด]
ปิด คำถามนี้เป็นคำถามความคิดเห็นตาม ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้สามารถตอบข้อเท็จจริงและการอ้างอิงได้โดยแก้ไขโพสต์นี้ ปิดให้บริการใน4 ปีที่แล้ว สัมพัทธภาพทางภาษาเป็นความคิดที่ว่าภาษาเป็นตัวกำหนดวิธีที่เราคิด คำถามของฉันคือสิ่งนี้นำไปใช้กับการเขียนโปรแกรมเท่าไหร่และเท่าไหร่? ภาษาพื้นเมืองบางภาษาเป็นธรรมชาติเหมาะสำหรับการคิดเกี่ยวกับการเขียนโปรแกรมมากกว่าภาษาอื่นหรือไม่? ตัวอย่างเช่นต่อไปนี้สามารถระบุไว้อย่างกระชับมากขึ้นในภาษาที่ไม่ใช่ภาษาอังกฤษ? Select a pivot. Move all the items less than the pivot to one side of the list, and all the items greater than the pivot to the other side. โปรแกรมเมอร์ที่พูดภาษาจีนดูการเขียนโปรแกรมในเลนส์ที่แตกต่างอย่างสิ้นเชิงจากโปรแกรมเมอร์ที่พูดภาษาอังกฤษหรือไม่หรือความแตกต่างหายไปเมื่อทั้งสองถูกแช่อยู่ในเรื่องหรือไม่? ภาษาการเขียนโปรแกรมและโดเมนบางอย่างง่ายกว่าที่คิดในภาษาหนึ่งหรืออีกภาษาหนึ่ง ยกตัวอย่างเช่นมันจะง่ายกว่าไหมถ้าคุณเป็นคนญี่ปุ่นเพราะผู้สร้างทับทิมเป็นคนญี่ปุ่น โปรดทราบว่าคำถามนี้ไม่ได้เน้นที่ "ภาษาการเขียนโปรแกรมมีผลต่อวิธีที่ผู้คนคิดเกี่ยวกับการเขียนโปรแกรมอย่างไร" แต่ " ภาษาธรรมชาติมีผลต่อวิธีที่ผู้คนคิดเกี่ยวกับการเขียนโปรแกรมอย่างไร ที่จะได้รับมันออกมาจากวิธีการหนึ่งภาษาที่ชัดเจนมีข้อได้เปรียบในทางปฏิบัติเป็นภาษาอังกฤษ ผมคิดว่าประโยชน์มีน้อยจะทำอย่างไรกับการเขียนโปรแกรมภาษาเลือกคำหลักภาษาอังกฤษเช่นif, …
21 philosophy 

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

7
วิทยาศาสตร์คอมพิวเตอร์เป็นสาขาใด [ปิด]
ปิด คำถามนี้เป็นคำถามความคิดเห็นตาม ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้สามารถตอบข้อเท็จจริงและการอ้างอิงได้โดยแก้ไขโพสต์นี้ ปิดให้บริการใน6 ปีที่ผ่านมา วิทยาศาสตร์คอมพิวเตอร์คือคณิตศาสตร์ประยุกต์วิศวกรรมศาสตร์ศิลปะปรัชญาหรือไม่ "อื่น ๆ"? เพื่อให้พื้นหลังนี่คือการโพสต์บล็อกของ Steven Wartik สำหรับ Scientific American ที่มีชื่อว่า " ฉันไม่ใช่นักวิทยาศาสตร์ที่แท้จริงและไม่เป็นไร " บทความนี้ครอบคลุมหัวข้อที่ดีสำหรับคำถามนี้ แต่เปิดทิ้งไว้มากกว่าคำตอบ หากคุณนึกถึงสาขาวิชาวิทยาศาสตร์คอมพิวเตอร์จะเข้ากับคำนิยามได้อย่างไร สาขาวิชาวิทยาการคอมพิวเตอร์ควรตั้งอยู่บนพื้นฐานของสิ่งที่โปรแกรมเมอร์ทำหรือนักวิชาการทำอะไร? คุณได้คำตอบแบบไหนจากคนที่คิดอย่างลึกซึ้งเกี่ยวกับเรื่องนี้? พวกเขาให้เหตุผลอะไร

5
ทำไมเราไม่สามารถจับการออกแบบซอฟต์แวร์ให้มีประสิทธิภาพมากกว่า [ปิด]
ปิด คำถามนี้เป็นคำถามความคิดเห็นตาม ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้สามารถตอบข้อเท็จจริงและการอ้างอิงได้โดยแก้ไขโพสต์นี้ ปิดให้บริการใน4 ปีที่แล้ว ในฐานะวิศวกรเราทุกคน "ออกแบบ" สิ่งประดิษฐ์ (อาคารโปรแกรมวงจรโมเลกุล ... ) นั่นเป็นกิจกรรม (คำกริยาออกแบบ) ที่สร้างผลลัพธ์บางอย่าง (คำนามการออกแบบ) ฉันคิดว่าเราทุกคนเห็นพ้องต้องกันว่าการออกแบบคำนามเป็นสิ่งที่แตกต่างจากสิ่งประดิษฐ์เอง กิจกรรมหลักในธุรกิจซอฟต์แวร์ (แน่นอนในธุรกิจใด ๆ ที่จำเป็นต้องปรับปรุงสิ่งประดิษฐ์ที่เป็นผลลัพธ์) คือการเข้าใจ "การออกแบบ (คำนาม)" ถึงกระนั้นเราก็ดูเหมือนว่าเป็นชุมชนที่จะล้มเหลวอย่างสมบูรณ์ในการบันทึกเป็นหลักฐานตามจำนวนของความพยายามที่ผู้คนใส่ลงไปเพื่อค้นหาข้อเท็จจริงเกี่ยวกับฐานรหัสของพวกเขา ขอให้ใครสักคนแสดงการออกแบบของรหัสและดูว่าคุณได้รับอะไร ฉันคิดว่าการออกแบบซอฟต์แวร์มีดังนี้: ข้อกำหนดที่ชัดเจนสำหรับซอฟต์แวร์ที่ควรทำและใช้งานได้ดีเพียงใด รหัสรุ่นที่ชัดเจน (ส่วนนี้เป็นเรื่องง่ายใคร ๆ ก็มี) คำอธิบายสำหรับวิธีการที่แต่ละส่วนของรหัสทำหน้าที่เพื่อให้บรรลุข้อกำหนด (เช่นความสัมพันธ์ระหว่างชิ้นส่วน spec และชิ้นส่วนรหัส) เหตุผลว่าทำไมรหัสเป็นวิธีที่มันเป็น (เช่นทำไมเป็นทางเลือกหนึ่งมากกว่าอีก) สิ่งที่ไม่ใช่การออกแบบคือมุมมองเฉพาะของรหัส ตัวอย่างเช่น [ไม่ให้เลือกโดยเฉพาะ] แผนภาพ UML ไม่ได้ออกแบบ แต่เป็นคุณสมบัติที่คุณสามารถได้รับจากรหัสหรือคุณสมบัติที่คุณต้องการให้คุณได้มาจากรหัส แต่ตามกฎทั่วไปคุณไม่สามารถรับโค้ดจาก UML ได้ ทำไมหลังจากสร้างซอฟต์แวร์มานานกว่า …

3
แนะนำรูปแบบการออกแบบ / แนวทางในการเปิดเผย / ยอมรับ / กู้คืนจากข้อผิดพลาดของระบบการจัดการข้อยกเว้น (egs ใน Java, C ++, Perl, PHP)
คุณสามารถแนะนำรูปแบบการออกแบบ / แนวทางในการเปิดเผย / ยอมรับ / กู้คืนจากข้อผิดพลาดของระบบการจัดการข้อยกเว้น (Java, C ++, Perl, PHP) หรือไม่ จำเป็นต้องรายงานข้อผิดพลาดบางอย่าง ข้อผิดพลาดบางอย่างสามารถจัดการภายใน (โดยลองใหม่หรือไม่สำคัญ (สามารถเพิกเฉย) คุณจัดโครงสร้างรหัสเพื่อจับพวกเขาอย่างไร แต่จะต้องมีการบันทึกข้อผิดพลาดทั้งหมด มีแนวทางปฏิบัติที่ดีที่สุดอะไรบ้าง และสำหรับการจำลองพวกเขาเพื่อให้สามารถทดสอบส่วนประกอบที่ได้รับผลกระทบโดยสมบูรณ์ได้ คำถามเฉพาะที่ไม่ใช่ภาษาโปรแกรมทั่วไปที่ใช้กับภาษาการเขียนโปรแกรมสมัยใหม่หลายภาษา แต่ยินดีต้อนรับตัวอย่างภาพประกอบของรูปแบบวิธีการและปรัชญาใน Java, C ++, PHP และ Perl (ถามด้วยใน stackoverflow: /programming/7432596/recommend-a-design-pattern-approach-to-exposing-tolerating-recovering-from-system) แต่ฉันคิดว่ามันควรถามโปรแกรมเมอร์เช่นกัน ฉันคิดว่าโปรแกรมเมอร์ถาม - ตอบครอบคลุมถึงซอฟต์แวร์ / ปัญหาการเขียนโปรแกรมที่กว้างขึ้น
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.