วิศวกรรมซอฟต์แวร์

ถาม - ตอบสำหรับมืออาชีพนักวิชาการและนักเรียนที่ทำงานในวงจรการพัฒนาระบบ

13
จะหาที่ปรึกษาการเขียนโปรแกรมได้อย่างไร [ปิด]
ฉันตัดสินใจเรียนรู้การเขียนโปรแกรม ฉันอ่าน SO มาหลายวันแล้วและฉันคิดว่าฉันจะเริ่มต้นด้วย C ++ เมื่อฉันอ่านบทความ ฉันตระหนักถึงลูป, อาร์เรย์, ตรรกะของโปรแกรมและวัตถุเล็ก ๆ น้อย ๆ และฉันต้องการใครสักคนที่จะมองฉันและช่วยฉันด้วยคำถามเล็ก ๆ ที่ฉันได้รับเมื่อทำโครงการแรกของฉัน ดังนั้นนี่คือคำถาม - ฉันจะหาผู้ชายแบบนั้นได้ที่ไหน ฉันไม่มีเพื่อนที่ตั้งโปรแกรมและทั้งหมด แก้ไข: 2 ปีต่อมาฉันยังคงมองหาที่ปรึกษา ฉันไม่ได้รหัสอย่างแข็งขันเพิ่งเริ่ม 3 เดือนอีกครั้ง ฉันทำงานกับการเขียนโปรแกรม Objective-C และ iOS และการเขียนโปรแกรมเกมด้วย Cocos2d หากคุณต้องการที่จะเป็นที่ปรึกษาของฉันให้ฉันหรือแสดงความคิดเห็น
46 learning  c++  teaching 

16
ภาษาในประวัติย่อ: ควรใส่“ C / C ++” หรือ“ C, C ++” หรือไม่ [ปิด]
ฉันกำลังจะสำเร็จการศึกษาในสองสามสัปดาห์และประวัติย่อของฉัน (ตามที่คาดไว้) จะแสดงรายการภาษาที่ฉันเคยมีประสบการณ์ ก่อนหน้านี้ผมได้ใส่"C / C ++"แต่กลับมาแล้วผมไม่ได้มีที่ประสบการณ์มากกับทั้งสองภาษาที่ผมทำตอนนี้ ตอนนี้ฉันได้เรียนรู้อย่างเป็นทางการทั้งสองภาษามันก็กลายเป็นชัดเจนสำหรับฉัน (และใครก็ตามที่รู้ภาษาเหล่านี้จริง ๆ ) ว่าพวกเขาเหมือนกันและแตกต่างกันอย่างสมบูรณ์ในเวลาเดียวกัน แน่นอนว่ารหัส C ส่วนใหญ่เป็นรหัส C ++ ที่คอมไพล์ได้ แต่ไวยากรณ์และการรวมฟังก์ชั่นของไลบรารีนั้นค่อนข้างมากเมื่อความคล้ายคลึงกันนี้สิ้นสุดลง ในปัญหาที่ไม่น่ารำคาญส่วนใหญ่โอกาสที่โซลูชัน C ++ ที่พึงประสงค์จะแตกต่างจากโซลูชัน C ที่พึงประสงค์ คำถามของฉัน: นายหน้าจะรับทราบหรือไม่สนใจว่าคุณใส่"C / C ++"ตรงข้ามกับ"C, C ++"หรือไม่? พวกเขาจะสมมติว่าขาดความรู้เกี่ยวกับผลงานของทั้งสองหรือไม่เนื่องจากการรวมรูปแบบแรกหรืออาจเห็นการรวมรูปแบบที่สองว่าเป็น "งาน Beefer" ที่มีศักยภาพ (แสดงเป็น 2 ภาษาแทน "หนึ่ง") ? นอกจากนี้สำหรับงานที่คุณสมัครงานที่สนใจเป็นพิเศษในสองภาษานี้กระบวนการสัมภาษณ์ได้รวมคำถามเกี่ยวกับความแตกต่างระหว่างการเขียนโปรแกรม C และการเขียนโปรแกรม C ++ (ดังนั้นเกี่ยวกับเทคนิคการเขียนโปรแกรมจริงไม่ใช่เฉพาะกระบวนทัศน์พิเศษในภายหลัง )?
46 c++  resume  c 

3
ความแตกต่างระหว่างโปรแกรมแก้ไขด่วนและข้อผิดพลาด? [ปิด]
ฉันรู้ว่านี่เป็นคำถามพื้นฐาน แต่ฉันไม่สามารถหาคำตอบกับ Google ได้ ความแตกต่างระหว่างโปรแกรมแก้ไขด่วนและโปรแกรมแก้ไขข้อบกพร่องคืออะไร

7
Application layer กับ domain layer?
ฉันกำลังอ่านการออกแบบที่ขับเคลื่อนด้วยโดเมนโดยอีแวนส์และฉันก็เป็นส่วนหนึ่งที่พูดถึงสถาปัตยกรรมแบบเลเยอร์ ฉันเพิ่งรู้ว่าแอปพลิเคชันและโดเมนเลเยอร์แตกต่างกันและควรแยกจากกัน ในโครงการที่ฉันกำลังทำอยู่พวกเขาเป็นแบบผสมผสานและฉันไม่สามารถบอกความแตกต่างได้จนกว่าฉันจะอ่านหนังสือ (และฉันไม่สามารถบอกได้ว่าตอนนี้ฉันชัดเจนมาก) จริงๆ คำถามของฉันเนื่องจากทั้งคู่เกี่ยวข้องกับตรรกะของแอปพลิเคชันและควรจะสะอาดในด้านเทคนิคและการนำเสนอข้อดีของการวาดขอบเขตทั้งสองนี้คืออะไร

8
ทำไมเกือบจะไม่มีหน้าแฮรหัสผ่านในไคลเอนต์ก่อนที่จะส่ง (และ hashing พวกเขาอีกครั้งบนเซิร์ฟเวอร์) เพื่อ“ ป้องกัน” จากการใช้รหัสผ่านซ้ำ?
มีเว็บไซต์จำนวนมากบนอินเทอร์เน็ตที่ต้องการข้อมูลการเข้าสู่ระบบและวิธีเดียวที่จะป้องกันการใช้รหัสผ่านซ้ำคือ "สัญญา" ว่ารหัสผ่านจะถูกแฮชบนเซิร์ฟเวอร์ซึ่งไม่ได้เป็นจริงเสมอไป ดังนั้นฉันจึงสงสัยว่าการสร้างหน้าเว็บที่แฮชรหัสผ่านในคอมพิวเตอร์ไคลเอนต์ (ด้วย Javascript) นั้นมีความยากขนาดไหนก่อนส่งไปยังเซิร์ฟเวอร์ซึ่งจะถูกแฮชอีกครั้ง ในทางทฤษฎีสิ่งนี้ไม่ได้ให้ความปลอดภัยเป็นพิเศษ แต่ในทางปฏิบัติสิ่งนี้สามารถใช้เพื่อป้องกัน "ไซต์หลอกลวง" ที่ไม่ใช้รหัสผ่านของคุณในเซิร์ฟเวอร์

4
ความแตกต่างระหว่างแฮชกับพจนานุกรมคืออะไร
ความแตกต่างระหว่างHashและDictionaryคืออะไร? มาจากพื้นหลังของสคริปต์ฉันรู้สึกว่ามันคล้ายกัน แต่ฉันต้องการค้นหาความแตกต่างที่แน่นอน Googling ไม่ได้ช่วยฉันเท่าไหร่

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

9
เราจะหลีกเลี่ยงการพัฒนาที่ขับเคลื่อนด้วย CI ได้อย่างไร?
ฉันกำลังทำงานในโครงการโอเพนซอร์ซที่มุ่งเน้นการวิจัยขนาดใหญ่มากโดยมีผู้สนับสนุนรายอื่นเป็นจำนวนมาก เนื่องจากโครงการนี้ค่อนข้างใหญ่สมาคม (ประกอบด้วยพนักงานเต็มเวลาสองคนและสมาชิกไม่กี่คน) อยู่ในความดูแลของโครงการการรวมกลุ่มอย่างต่อเนื่อง (CI) ฯลฯ พวกเขาไม่มีเวลาสำหรับการรวมกลุ่มจากภายนอก ผลงานแม้ว่า โครงการประกอบด้วยโครงร่าง "แกนกลาง" ซึ่งมีรหัสครึ่งหนึ่งของรหัสครึ่งหนึ่งกลุ่มของ "ปลั๊กอิน" ซึ่งได้รับการบำรุงรักษาโดยสมาคมและปลั๊กอินภายนอกหลายแห่งซึ่งส่วนใหญ่เราไม่ได้ทำ ไม่รู้ตัวด้วยซ้ำ ปัจจุบัน CI ของเราสร้างหลักและปลั๊กอินบำรุงรักษา หนึ่งในปัญหาใหญ่ที่เราเผชิญคือผู้ให้ข้อมูลส่วนใหญ่ (และโดยเฉพาะอย่างยิ่งในบางครั้ง) ไม่สร้าง 90% ของปลั๊กอินที่บำรุงรักษาดังนั้นเมื่อพวกเขาเสนอการเปลี่ยนแปลงโครงสร้างในแกนกลาง (ซึ่งสิ่งเหล่านี้เกิดขึ้นเป็นประจำ) พวกเขาตรวจสอบว่ารหัสรวบรวมในเครื่องของพวกเขาก่อนที่จะทำการร้องขอการดึงบน GitHub รหัสทำงานได้พวกเขามีความสุขและจากนั้น CI ก็เสร็จสิ้นการสร้างและปัญหาเริ่มต้น: การรวบรวมล้มเหลวในปลั๊กอินที่ดูแลรักษาโดยกลุ่มซึ่งผู้มีส่วนร่วมไม่ได้สร้างบนเครื่องของเขา / เธอ ปลั๊กอินนั้นอาจมีการพึ่งพาไลบรารีของบุคคลที่สามเช่นCUDAเป็นต้นและผู้ใช้ไม่ต้องการไม่ทราบวิธีการหรือไม่สามารถทำได้ด้วยเหตุผลด้านฮาร์ดแวร์รวบรวมปลั๊กอินที่ใช้งานไม่ได้ ดังนั้น - ทั้ง PR ยังคงโฆษณาอยู่ในบริเวณขอบของPRs ที่ไม่เคยถูกผสาน- หรือผู้มีส่วนร่วม greps ตัวแปรที่ถูกเปลี่ยนชื่อในแหล่งที่มาของปลั๊กอินที่เสียหาย, เปลี่ยนรหัส, กดรหัสบนสาขาของเขา / เธอรอ CI ที่จะทำการรวบรวมให้เสร็จสิ้นมักจะได้รับข้อผิดพลาดมากขึ้นและทำซ้ำกระบวนการจนกว่า CI จะมีความสุข - …

9
ถือว่าเป็นอันตรายหรือไม่? รหัสสามารถทำงานได้โดยไม่ได้หรือไม่
ตกลงดังนั้นชื่อเรื่องนั้นเป็นเรื่อง clickbaity เล็ก ๆ น้อย ๆ แต่อย่างจริงจังฉันได้รับการบอกไม่ต้องถามสักครู่ ฉันชอบที่มันส่งเสริมวิธีการที่จะใช้เป็นข้อความในแบบเชิงวัตถุจริง แต่นี่เป็นปัญหาที่จู้จี้ที่คร่ำครวญในหัวของฉัน ฉันสงสัยว่ารหัสที่เขียนได้ดีสามารถปฏิบัติตามหลักการ OO และหลักการทำงานได้ในเวลาเดียวกัน returnฉันพยายามที่จะกระทบความคิดเหล่านี้และจุดเกาะใหญ่ที่ผมเคยมีที่ดินบน ฟังก์ชั่นบริสุทธิ์มีสองคุณสมบัติ: การเรียกซ้ำ ๆ ด้วยอินพุตเดียวกันจะให้ผลลัพธ์เดียวกันเสมอ นี่ก็หมายความว่ามันไม่เปลี่ยนรูป สถานะของมันถูกตั้งค่าเพียงครั้งเดียว มันไม่มีผลข้างเคียง การเปลี่ยนแปลงเพียงอย่างเดียวที่เกิดจากการเรียกมันคือการสร้างผลลัพธ์ ดังนั้นวิธีการอย่างใดอย่างหนึ่งเกี่ยวกับการทำงานอย่างหมดจดถ้าคุณได้สาบานว่าจะใช้returnเป็นวิธีการสื่อสารผลลัพธ์ของคุณ? บอกไม่ได้ถามผลงานความคิดโดยใช้สิ่งที่บางคนจะพิจารณาผลข้างเคียง เมื่อฉันจัดการกับวัตถุฉันไม่ถามเกี่ยวกับสถานะภายในของวัตถุนั้น ฉันบอกสิ่งที่ฉันต้องทำและใช้สถานะภายในเพื่อหาว่าจะทำอย่างไรกับสิ่งที่ฉันบอกให้ทำ เมื่อฉันบอกมันฉันไม่ได้ถามว่ามันทำอะไร ฉันแค่หวังว่ามันจะทำอะไรบางอย่างเกี่ยวกับสิ่งที่มันถูกบอกให้ทำ ฉันคิดว่า Tell, Don't Ask เป็นมากกว่าชื่อที่แตกต่างกันสำหรับการห่อหุ้ม เมื่อฉันใช้returnฉันไม่มีความคิดในสิ่งที่เรียกว่าฉัน ฉันไม่สามารถพูดได้ว่าเป็นโปรโตคอลฉันต้องบังคับให้จัดการกับโปรโตคอลของฉัน ซึ่งในหลายกรณีได้รับการแสดงออกเป็นสถานะภายใน แม้ว่าสิ่งที่ได้รับการเปิดเผยไม่ได้ระบุอย่างชัดเจน แต่โดยทั่วไปแล้วการคำนวณบางอย่างที่ทำกับสถานะและอินพุต args มีอินเทอร์เฟซสำหรับการตอบสนองผ่านกำบังโอกาสที่จะนวดผลลัพธ์เป็นสิ่งที่มีความหมายมากกว่าสถานะภายในหรือการคำนวณ นั่นคือข้อความผ่าน ดูตัวอย่างนี้ ย้อนกลับไปในวันที่เมื่อดิสก์ไดรฟ์มีดิสก์อยู่ในนั้นและไดรฟ์หัวแม่มือคือสิ่งที่คุณทำในรถเมื่อล้อเย็นเกินไปที่จะสัมผัสด้วยนิ้วมือของคุณฉันได้รับการสอนว่าคนที่น่ารำคาญพิจารณาฟังก์ชั่น void swap(int *first, int *second)ดูเหมือนมีประโยชน์มาก แต่เราได้รับการสนับสนุนให้เขียนฟังก์ชันที่ส่งคืนผลลัพธ์ ดังนั้นฉันจึงใส่ใจเรื่องความเชื่อและเริ่มติดตามมัน แต่ตอนนี้ฉันเห็นผู้คนกำลังสร้างสถาปัตยกรรมที่วัตถุให้วิธีที่พวกเขาสร้างการควบคุมที่พวกเขาส่งผลลัพธ์ของพวกเขา …

3
วิธีจัดการกับวิธีการที่ยังไม่ได้ใช้งานซึ่งจะทำโดยผู้ร่วมโปรแกรม?
นี่เป็นคำถามเกี่ยวกับวิธีการทำงานเป็นทีม เมื่อไม่นานมานี้ฉันทำงานโครงการเขียนโปรแกรม Java ขนาดใหญ่กว่า ~ 80 คลาสกับทีมงาน 6 คน แต่มีเพียง 4 คนเท่านั้นที่ทำงานกับโค้ดอย่างต่อเนื่อง เราแจกจ่ายงานที่ต้องทำก่อนเวลาและในบางจุดฉันจำเป็นต้องเรียกวิธีการที่ยังไม่ได้นำมาใช้โดยหนึ่งในโปรแกรมเมอร์ร่วมของฉัน วิธีที่แนะนำในการจัดการกับสิ่งนี้คืออะไร? ตัวเลือกที่ฉันเห็นแม้ว่าฉันจะไม่ชอบพวกเขาจริงๆ: เขียนตัวเอง//TODOและทบทวนบรรทัดของรหัสนี้ในภายหลังเพื่อตรวจสอบว่าวิธีการที่ได้รับการดำเนินการในระหว่างนี้ ขอให้สมาชิกในทีมที่สอดคล้องกันในการดำเนินการว่าในขณะนี้ การเปิดใช้งาน runtimeException แบบกำหนดเองพร้อมคำอธิบายที่ชัดเจนเกี่ยวกับสิ่งที่ยังไม่ได้ใช้งาน (อย่างน้อยเราไม่ต้องค้นหาเป็นเวลานานเพื่อค้นหาว่ามีอะไรขาดหายไป) การเพิ่มวิธีการที่จำเป็นในชั้นเรียนของพวกเขาและเขียนพวกเขา//TODOในเนื้อหาของข้อความอาจส่งข้อความด่วนเกี่ยวกับการเปลี่ยนแปลงนั้นให้พวกเขา (ตอนนี้ไม่ใช่ปัญหาของฉันอีกต่อไป แต่อาจทำให้เกิดข้อขัดแย้งในการรวมที่น่ารำคาญได้หากพวกเขาใช้วิธีนี้ในระหว่างนี้) การกำหนดคลาสหรืออินเทอร์เฟซแบบนามธรรมสำหรับทุกสิ่งก่อนเขียนโค้ดที่ใช้งานได้จริง (ทำงานได้ไม่ดีนักเนื่องจากอินเทอร์เฟซเหล่านี้มักจะเปลี่ยนไป)
45 teamwork 

11
Robert C. Martin หมายถึงอะไรโดย SQL นั้นไม่จำเป็น? [ปิด]
ฉันอ่าน / ดูเนื้อหา Robert C. Martin มากมาย ฉันเจอเขาแล้วบอกว่า SQL นั้นไม่จำเป็นเพราะโซลิดสเตตไดรฟ์ เมื่อฉันค้นหาแหล่งข้อมูลอื่น ๆ เพื่อสำรองสิ่งนี้ฉันได้รับบทความสุ่มจำนวนมากที่อธิบายถึงความแตกต่างของประสิทธิภาพการทำงานของ SQL ระหว่างฮาร์ดไดรฟ์และโซลิดสเตทไดรฟ์ (ซึ่งเกี่ยวข้อง แต่ไม่ใช่สิ่งที่ฉันพยายามค้นคว้า) ท้ายที่สุดฉันไม่เข้าใจสิ่งที่เขาพยายามทำ เขากำลังพูดแทนที่ SQL ด้วยเทคโนโลยี No-SQL หรือไม่ เขาบอกว่าเก็บข้อมูลในไฟล์ในระบบไฟล์หรือไม่? หรือเขาต้องการให้คนหยุดใช้ SQL / ฐานข้อมูลเชิงสัมพันธ์เนื่องจากการโจมตีของ SQLi ฉันกลัวว่าฉันพลาดจุดที่เขาพยายามจะทำ ฉันจะให้ลิงก์บางส่วนที่นี่เพื่อให้คุณสามารถอ่านได้โดยตรงจากความคิดของเขา: Bobby Tables การบรรยายสถาปัตยกรรมที่สะอาด อันดับแรกเขาระบุว่าควรลบ SQL ออกจากระบบทั้งหมด การแก้ไขปัญหา. ทางออกเดียว คือการกำจัด SQL ออกจากระบบทั้งหมด หากไม่มีเอ็นจิ้น SQL จะไม่มีการโจมตี SQLi และแม้ว่าเขาจะพูดถึงการแทนที่ SQL ด้วย API …

13
ฉันจะแก้ไขเชนของ if-else ได้อย่างไรถ้าข้อความที่เป็นไปตามหลักการ Clean Code ของลุงบ็อบ?
ฉันกำลังพยายามทำตามคำแนะนำที่ชัดเจนของลุงบ็อบและโดยเฉพาะอย่างยิ่งเพื่อให้วิธีการสั้น ฉันพบว่าตัวเองไม่สามารถตัดทอนตรรกะนี้ได้แม้ว่า: if (checkCondition()) {addAlert(1);} else if (checkCondition2()) {addAlert(2);} else if (checkCondition3()) {addAlert(3);} else if (checkCondition4()) {addAlert(4);} ฉันไม่สามารถลบ elses และแยกสิ่งทั้งหมดออกเป็นบิตขนาดเล็กทำให้ "else" ใน "else if" ช่วยประสิทธิภาพการทำงาน - การประเมินเงื่อนไขเหล่านั้นมีราคาแพงและถ้าฉันสามารถหลีกเลี่ยงการประเมินเงื่อนไขด้านล่างได้ เป็นจริงฉันต้องการหลีกเลี่ยงพวกเขา แม้แต่การพูดเชิงความหมายการประเมินเงื่อนไขถัดไปหากพบก่อนหน้านี้ก็ไม่สมเหตุสมผลจากมุมมองทางธุรกิจ แก้ไข: คำถามนี้ถูกระบุว่าเป็นที่ซ้ำกันเป็นไปได้ของวิธีที่สง่างามในการจับถ้า (ถ้าอื่น) อื่น ฉันเชื่อว่านี่เป็นคำถามที่แตกต่างกัน (คุณสามารถเห็นได้ด้วยการเปรียบเทียบคำตอบของคำถามเหล่านั้น) คำถามของฉันคือการตรวจสอบสำหรับเงื่อนไขแรกยอมรับที่จะจบได้อย่างรวดเร็ว คำถามที่เชื่อมโยงนั้นกำลังพยายามยอมรับเงื่อนไขทั้งหมดเพื่อที่จะทำอะไรสักอย่าง (เห็นได้ดีขึ้นในคำตอบสำหรับคำถามนี้: https://softwareengineering.stackexchange.com/a/122625/96955 )

5
การบำรุงรักษาซอฟต์แวร์ที่แยกต่างหากสองรุ่นจาก Codebase เดียวกันในการควบคุมเวอร์ชัน
สมมติว่าฉันกำลังเขียนซอฟต์แวร์ / program / app / script รุ่นเดียวกันสองรุ่นและเก็บไว้ภายใต้การควบคุมเวอร์ชัน รุ่นแรกเป็นรุ่น "พื้นฐาน" ฟรีในขณะที่รุ่นที่สองเป็นรุ่น "พรีเมี่ยม" แบบชำระเงินซึ่งใช้รหัสฐานของรุ่นฟรีและขยายออกไปด้วยคุณสมบัติเพิ่มมูลค่าพิเศษ แพทช์แก้ไขหรือฟีเจอร์ใหม่ใด ๆ จำเป็นต้องหาวิธีแก้ไขในทั้งสองเวอร์ชัน ขณะนี้ฉันกำลังพิจารณาใช้masterและdevelopสาขาสำหรับ codebase หลัก (รุ่นฟรี) ด้านข้างmaster-premiumและdevelop-premiumสาขาสำหรับรุ่นที่จำหน่ายได้แล้ว เมื่อมีการเปลี่ยนแปลงในเวอร์ชั่นฟรีและรวมเข้ากับmasterสาขา (หลังจากการทดสอบอย่างละเอียดในdevelopหลักสูตร) ​​มันจะถูกคัดลอกไปยังdevelop-premiumสาขาผ่านcherry-pickคำสั่งสำหรับการทดสอบเพิ่มเติมแล้วรวมเข้าmaster-premiumด้วยกัน นี่เป็นเวิร์กโฟลว์ที่ดีที่สุดในการจัดการกับสถานการณ์นี้หรือไม่ มีปัญหาที่อาจเกิดขึ้นคำเตือนหรือข้อผิดพลาดที่ควรระวังหรือไม่? มีกลยุทธ์การแตกแขนงที่ดีกว่าสิ่งที่ฉันคิดไว้แล้วหรือไม่? ความคิดเห็นของคุณได้รับการชื่นชมอย่างมาก! PS นี่สำหรับสคริปต์ PHP ที่จัดเก็บใน Git แต่คำตอบควรใช้กับภาษาหรือ VCS ใด ๆ

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

5
รูปแบบของตัวสร้าง: เมื่อใดจะล้มเหลว
เมื่อใช้รูปแบบของเครื่องมือสร้างฉันมักพบว่าตัวเองสับสนเมื่อต้องปล่อยให้สิ่งก่อสร้างล้มเหลวและฉันก็จัดการวางแผงที่แตกต่างกันในทุก ๆ วัน ก่อนอื่นให้อธิบาย: ด้วยความล้มเหลวในช่วงต้นผมหมายถึงว่าการสร้างวัตถุควรจะล้มเหลวทันทีเป็นพารามิเตอร์ที่ไม่ถูกต้องผ่านใน. SomeObjectBuilderดังนั้นภายใน ด้วยความล้มเหลวในช่วงปลายฉันหมายความว่าการสร้างวัตถุสามารถล้มเหลวในการbuild()โทรเท่านั้น จากนั้นข้อโต้แย้งบางอย่าง: ในความโปรดปรานของความล้มเหลวในช่วงปลาย: ระดับผู้สร้างไม่ควรเกินชั้นที่มีค่าเพียง นอกจากนี้ยังนำไปสู่การทำสำเนารหัสน้อยลง ในความโปรดปรานของความล้มเหลวในช่วงต้น: วิธีการทั่วไปในการเขียนโปรแกรมซอฟต์แวร์คือคุณต้องการตรวจสอบปัญหาให้เร็วที่สุดเท่าที่จะเป็นไปได้และดังนั้นสถานที่ที่มีเหตุผลที่สุดในการตรวจสอบจะอยู่ใน 'constructor,' setters ' ข้อสรุปทั่วไปเกี่ยวกับเรื่องนี้คืออะไร?

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