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

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

5
ทำไมมีคอมไพเลอร์ C น้อยมาก?
C เป็นหนึ่งในภาษาที่ใช้กันอย่างแพร่หลายมากที่สุดในโลก มันคิดเป็นสัดส่วนใหญ่ของรหัสที่มีอยู่และยังคงใช้สำหรับรหัสใหม่จำนวนมหาศาล เป็นที่ชื่นชอบของผู้ใช้มันบอกอย่างกว้างขวางว่าความสามารถในการเรียกใช้ C คือคำจำกัดความที่ไม่เป็นทางการของแพลตฟอร์มและได้รับคำชมจากแฟน ๆ ว่าเป็นภาษา "เล็ก" ที่มีคุณสมบัติค่อนข้างสะอาด แล้วคอมไพเลอร์ทั้งหมดอยู่ที่ไหน? บนเดสก์ท็อปมีสอง (แนบเนียน) สอง : GCC และเสียงดังกราว ลองคิดดูสักสองสามวินาทีคุณอาจจำได้ว่า Intel มีอยู่เช่นกัน มีคนอื่นไม่กี่คนที่คลุมเครือเกินกว่าที่คนทั่วไปจะตั้งชื่อและแทบจะไม่รบกวนการสนับสนุนภาษารุ่นล่าสุด (หรือบ่อยครั้งที่แม้แต่กลุ่มย่อยภาษาที่กำหนดไว้อย่างชัดเจนเพียงแค่ "ชุดย่อย") ครึ่งหนึ่งของสมาชิกในรายการนี้เป็นเชิงอรรถเชิงประวัติศาสตร์ ที่เหลือส่วนใหญ่มีความเชี่ยวชาญเป็นพิเศษและยังไม่ได้ใช้ภาษาเต็มรูปแบบ ที่จริงมีน้อยมากที่ดูเหมือนจะเป็นโอเพ่นซอร์ส Scheme และ Forth - ภาษาขนาดเล็กอื่น ๆ ที่แฟน ๆ ชื่นชอบ - อาจมีคอมไพเลอร์มากกว่าผู้ใช้จริง แม้บางอย่างเช่นSMLมี "ร้ายแรง" การใช้งานให้เลือกระหว่างกว่าองศาเซลเซียสในขณะที่การประกาศของคอมไพเลอร์ใหม่ (ยังไม่เสร็จ) C เล็งไปที่การตรวจสอบจริงเห็นตอบสนองเชิงลบบางสวยและการใช้งานที่มีประสบการณ์ต่อสู้เพื่อให้ได้ร่วมสมทบมากพอที่จะได้จับได้ถึง C99 ทำไม? การติดตั้ง C ยากไหม ไม่ใช่ C …

10
ทำไมคอมไพเลอร์ตัวแรกเขียนหน้าล่ามตัวแรก
คอมไพเลอร์ตัวแรกเขียนโดย Grace Hopper ในปี 1952 ในขณะที่ล่าม Lisp ถูกเขียนในปี 1958 โดย Steve Russell นักศึกษา John McCarthy การเขียนคอมไพเลอร์ดูเหมือนว่าเป็นปัญหาที่ยากกว่าล่าม ถ้าเป็นเช่นนั้นทำไมคอมไพเลอร์ตัวแรกเขียนหกปีก่อนล่ามคนแรก?

5
มีความสัมพันธ์ระหว่างขนาดของโครงการและความเข้มงวดของภาษาหรือไม่
การอธิบายถึงความแตกต่างระหว่างความเข้มงวดของภาษาและกระบวนทัศน์ต่อเพื่อนร่วมงานของฉันฉันจึงยืนยันว่า: ภาษาที่ทนทานเช่นภาษาที่มีการเปลี่ยนแปลงและถูกตีความใช้ดีที่สุดสำหรับต้นแบบและโครงการขนาดเล็กหรือเว็บแอปพลิเคชันขนาดกลาง เมื่อเลือกภาษาไดนามิกที่หรูหราเช่น Python หรือ JavaScript ที่มี Node.js ประโยชน์คือ: การพัฒนาที่รวดเร็ว ลดรหัสสำเร็จรูป ความสามารถในการดึงดูดโปรแกรมเมอร์หนุ่มสาวผู้สร้างสรรค์ที่หนี“ ภาษาองค์กร” เช่น Java ภาษาที่พิมพ์ / เรียบเรียงแบบสแตติกเหมาะที่สุดสำหรับแอปพลิเคชันที่ต้องการความเข้มงวดสูงกว่าเช่นแอพที่สำคัญต่อธุรกิจหรือแอพสำหรับแอพขนาดกลางถึงขนาดใหญ่ กระบวนทัศน์และรูปแบบที่รู้จักกันดีพัฒนามานานหลายทศวรรษ ความง่ายในการตรวจสอบแบบคงที่ ความสามารถในการค้นหานักพัฒนามืออาชีพจำนวนมากที่มีประสบการณ์มานานหลายทศวรรษ ภาษาที่เข้มงวดเช่น Haskell, Ada หรือเทคนิคต่าง ๆ เช่นสัญญา Code ใน C # นั้นดีกว่าสำหรับระบบที่ให้ความปลอดภัยมากกว่าความยืดหยุ่น (แม้ว่า Haskell จะมีความยืดหยุ่นสูงมาก) เช่นระบบที่มีความสำคัญต่อชีวิตและระบบซึ่งคาดว่าจะเสถียรมาก ประโยชน์คือ: ความสามารถในการจับข้อบกพร่องให้ได้มากที่สุดในเวลารวบรวม ความง่ายในการตรวจสอบแบบคงที่ ความง่ายในการพิสูจน์อย่างเป็นทางการ อย่างไรก็ตามโดยดูที่ภาษาและเทคโนโลยีที่ใช้สำหรับโครงการขนาดใหญ่โดย บริษัท ขนาดใหญ่, ดูเหมือนว่าการยืนยันของฉันเป็นสิ่งที่ผิด ตัวอย่างเช่น Python ใช้สำหรับระบบขนาดใหญ่เช่น YouTube หรือแอปพลิเคชันอื่น ๆ …

10
มันสมเหตุสมผลหรือไม่ที่จะเขียนการทดสอบสำหรับรหัสดั้งเดิมเมื่อไม่มีเวลาสำหรับการปรับโครงสร้างที่สมบูรณ์?
ผมมักจะพยายามที่จะทำตามคำแนะนำของหนังสือเล่มนี้ทำงานอย่างมีประสิทธิภาพกับมรดกค้อจ ฉันทำลายการพึ่งพาย้ายส่วนต่าง ๆ ของรหัสไปยัง@VisibleForTesting public staticวิธีการและไปยังคลาสใหม่เพื่อให้รหัส (หรืออย่างน้อยก็บางส่วนของมัน) ทดสอบได้ และฉันเขียนการทดสอบเพื่อให้แน่ใจว่าฉันจะไม่ทำลายสิ่งใดเมื่อฉันแก้ไขหรือเพิ่มฟังก์ชั่นใหม่ เพื่อนร่วมงานคนหนึ่งบอกว่าฉันไม่ควรทำเช่นนี้ เหตุผลของเขา: รหัสต้นฉบับอาจทำงานไม่ถูกต้องตั้งแต่แรก และการเขียนการทดสอบทำให้การแก้ไขและการแก้ไขในอนาคตยากขึ้นเนื่องจาก devs ต้องเข้าใจและแก้ไขการทดสอบด้วย หากเป็นโค้ด GUI ที่มีตรรกะ (ตัวอย่างเช่น ~ 12 บรรทัด, 2-3 if / else บล็อก) การทดสอบจะไม่คุ้มกับปัญหาเนื่องจากรหัสนั้นเล็กน้อยเกินไปที่จะเริ่มต้น รูปแบบที่ไม่ดีที่คล้ายกันอาจมีอยู่ในส่วนอื่น ๆ ของ codebase เช่นกัน (ซึ่งฉันยังไม่ได้เห็นฉันค่อนข้างใหม่); มันจะง่ายกว่าในการทำความสะอาดพวกเขาทั้งหมดใน refactoring ใหญ่ การแยกตรรกะออกอาจทำให้ความเป็นไปได้ในอนาคตลดลง ฉันควรหลีกเลี่ยงการแยกส่วนที่สามารถทดสอบได้ออกมาและเขียนการทดสอบหรือไม่หากเราไม่มีเวลาสำหรับการเปลี่ยนโครงสร้างใหม่ให้สมบูรณ์? มีข้อเสียใด ๆ ที่ฉันควรพิจารณาหรือไม่?

17
ฉันจะขอให้เจ้านายของฉันแสดงความคิดเห็นรหัสของเขาได้อย่างไร?
ฉันได้รับการสอนจากหัวหน้าของฉัน (ฉันเพิ่งเรียนจบและเขาต้องการใครสักคนที่มีประสบการณ์การเขียนโปรแกรมเล็กน้อยดังนั้นเขาจึงเลือกให้ฉันสอนสิ่งที่ บริษัท เชี่ยวชาญ) และเริ่มทำงานกับแอปพลิเคชันASP.NET MVC , HTML และ CSS บางตัว . ฉันพอใจกับการออกแบบเว็บไซต์ที่เขาให้ฉัน (มันค่อนข้างง่ายที่จะเข้าใจโดยไม่ต้องชี้แจง) แต่ตัวอย่างเช่นเขาให้ฉันทำงานกับ ASP.NET MVC เขาอธิบายได้ดีจริงๆ แต่เขาไม่ได้อธิบายอะไรในรหัสที่เขาเพิ่งให้ฉัน (เราใช้การควบคุมแหล่งที่มาในVisual Studio 2013 ) ดังนั้นจึงเป็นโค้ดหลายร้อยบรรทัดโดยไม่มีพื้นหลังเกี่ยวกับสิ่งที่ควรทำ รหัสที่ฉันเห็นคือรหัสที่ฉันไม่เคยเห็นมาก่อนดังนั้นจึงเป็นเรื่องยากที่จะลองและคิดออก ฉันจะลองและถามคำถามเขาเพิ่มเติม แต่เขาก็ทำงานอยู่เสมอ (เป็นธุรกิจของเขาเอง) และฉันรู้สึกราวกับว่าเขาอาจรำคาญกับคำถามเหล่านี้ทั้งหมดที่ฉันมีในมือของฉัน ดังนั้นสิ่งที่จะช่วยฉันออกไปจนกว่าฉันจะได้เข้าใจสิ่งต่าง ๆ ฉันจะขอให้เจ้านายของฉันใส่ความคิดเห็นลงในรหัสของเขาที่เขาให้ฉันได้อย่างไร แต่อย่างสุภาพ?
72 comments 

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

8
เป็นวิธีปฏิบัติที่ดีหรือไม่ที่จะใช้กิ่งไม้ในการบำรุงรักษาซอฟต์แวร์รุ่นต่าง ๆ กัน?
เรามีผลิตภัณฑ์ที่มีรุ่นที่แตกต่างกันเล็กน้อย ความแตกต่างอยู่เล็กน้อย: สตริงที่แตกต่างกันตรงนี้และที่นั่น, ตรรกะเพิ่มเติมเล็กน้อยในหนึ่ง, ความแตกต่างของตรรกะในอีกเล็กน้อย เมื่อมีการพัฒนาซอฟต์แวร์การเปลี่ยนแปลงส่วนใหญ่จำเป็นต้องเพิ่มในแต่ละรุ่น อย่างไรก็ตามมีบางอย่างที่ทำไม่ได้และมีบางอย่างที่ต้องแตกต่างกัน มันเป็นการใช้สาขาที่ถูกต้องหรือไม่ถ้าฉันมี release-editionA และ release-editionB (..etc) มี gotchas บ้างไหม? แนวทางปฏิบัติที่ดี? อัปเดต: ขอบคุณสำหรับความเข้าใจทุกคนคำตอบที่ดีมากมายที่นี่ ฉันทามติทั่วไปน่าจะเป็นความคิดที่ดีที่จะใช้สาขาเพื่อจุดประสงค์นี้ สำหรับทุกคนที่สงสัยวิธีแก้ปัญหาสุดท้ายของฉันคือการทำให้สตริงเป็นภายนอกและตั้งค่าตรรกะที่แตกต่างกันเป็นปลั๊กอินหรือสคริปต์
72 git  branching 

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

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

12
SQL: สตริงว่างกับค่า NULL
ฉันรู้ว่าหัวข้อนี้ขัดแย้งกันเล็กน้อยและมีบทความ / ความคิดเห็นมากมายลอยอยู่ในอินเทอร์เน็ต โชคไม่ดีที่พวกเขาส่วนใหญ่คิดว่าบุคคลนั้นไม่รู้ว่าความแตกต่างระหว่าง NULL และสตริงว่างคืออะไร ดังนั้นพวกเขาจึงบอกเล่าเรื่องราวเกี่ยวกับผลลัพธ์ที่น่าประหลาดใจด้วยการรวม / สรุปรวมและโดยทั่วไปจะทำบทเรียน SQL ขั้นสูงเพิ่มเติม โดยการทำเช่นนี้พวกเขาพลาดจุดทั้งหมดและไม่มีประโยชน์สำหรับฉัน ดังนั้นหวังว่าคำถามนี้และคำตอบทั้งหมดจะย้ายไปข้างหน้าเล็กน้อย สมมติว่าฉันมีตารางที่มีข้อมูลส่วนบุคคล (ชื่อ, วันเกิด, ฯลฯ ) โดยที่หนึ่งในคอลัมน์คือที่อยู่อีเมลที่มีประเภท varchar เราคิดว่าด้วยเหตุผลบางคนบางคนอาจไม่ต้องการให้ที่อยู่อีเมล เมื่อแทรกข้อมูลดังกล่าว (ไม่มีอีเมล) ลงในตารางมีสองตัวเลือกที่ใช้ได้: ตั้งค่าเซลล์เป็น NULL หรือตั้งค่าเป็นสตริงว่าง ('') สมมติว่าฉันทราบถึงผลกระทบทางเทคนิคทั้งหมดของการเลือกโซลูชันหนึ่งมากกว่าโซลูชันอื่นและฉันสามารถสร้างแบบสอบถาม SQL ที่ถูกต้องสำหรับสถานการณ์ใดสถานการณ์หนึ่ง ปัญหาคือแม้เมื่อค่าทั้งสองแตกต่างกันในระดับเทคนิคพวกเขาจะเหมือนกันในระดับตรรกะ หลังจากดู NULL และ '' ฉันได้ข้อสรุปเดียว: ฉันไม่รู้ที่อยู่อีเมลของผู้ชายคนนั้น ไม่ว่าฉันจะพยายามมากแค่ไหน ฉันไม่สามารถส่งอีเมลโดยใช้ NULL หรือสตริงว่างเปล่าได้ดังนั้นเซิร์ฟเวอร์ SMTP ส่วนใหญ่ก็เห็นด้วยกับเหตุผลของฉัน ดังนั้นฉันมักจะใช้ค่า NULL ที่ฉันไม่ทราบค่าและพิจารณาสตริงว่างเปล่าเป็นสิ่งที่ไม่ดี หลังจากการพูดคุยอย่างเข้มข้นกับเพื่อนร่วมงานฉันมาด้วยคำถามสองข้อ: ฉันถูกสมมติว่าการใช้สตริงว่างเปล่าสำหรับค่าที่ไม่รู้จักทำให้ฐานข้อมูล "โกหก" …
72 design  database  sql  strings  null 

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

30
คำอธิบายที่ดีสำหรับตัวชี้คืออะไร [ปิด]
ในการศึกษาของคุณเอง (ด้วยตัวคุณเองหรือในชั้นเรียน) คุณมีช่วงเวลาที่ "อาฮ่า" เมื่อคุณในที่สุดเข้าใจตัวชี้? คุณมีคำอธิบายที่ใช้สำหรับโปรแกรมเมอร์มือใหม่ที่ดูเหมือนมีประสิทธิภาพเป็นพิเศษหรือไม่? ตัวอย่างเช่นเมื่อผู้เริ่มต้นพบพอยน์เตอร์ใน C พวกเขาอาจเพิ่ม&s และ*s จนกว่ามันจะคอมไพล์ บางทีมันอาจจะเป็นรูปภาพหรือเป็นตัวอย่างที่สร้างแรงบันดาลใจได้ดีซึ่งทำให้ตัวชี้ "คลิก" สำหรับคุณหรือนักเรียนของคุณ มันคืออะไรและคุณลองทำอะไรก่อนหน้านี้ดูเหมือนจะไม่ทำงาน มีข้อกำหนดเบื้องต้นใด ๆ ของหัวข้อ (เช่นโครงสร้างหรืออาร์เรย์) หรือไม่ พูดอีกอย่างหนึ่งว่าอะไรคือสิ่งที่จำเป็นในการเข้าใจความหมายของ&s และ*เมื่อคุณสามารถใช้มันด้วยความมั่นใจ การเรียนรู้ไวยากรณ์และคำศัพท์หรือกรณีการใช้งานยังไม่เพียงพอในบางจุดความคิดจำเป็นต้องถูกทำให้เป็นภายใน Update:ฉันชอบคำตอบจริงๆ โปรดให้พวกเขามา มีมุมมองที่ดีมากมายที่นี่ แต่ฉันคิดว่าหลายคนมีคำอธิบาย / คำขวัญที่ดีสำหรับตัวเราเองหลังจากที่เราใช้แนวคิดนี้ ฉันกำลังมองหารายละเอียดบริบทและสถานการณ์เมื่อเริ่มต้นกับคุณ ตัวอย่างเช่น: ฉันแค่เข้าใจพอยน์เตอร์ syntactically ใน C. ฉันได้ยินเพื่อนของฉันสองคนอธิบายพอยน์เตอร์ให้เพื่อนอีกคนหนึ่งซึ่งถามว่าทำไม a ถึงstructถูกส่งผ่านด้วยพอยน์เตอร์ เพื่อนคนแรกพูดคุยเกี่ยวกับวิธีการที่จะต้องมีการอ้างอิงและแก้ไข แต่มันเป็นเพียงความเห็นสั้น ๆ จากเพื่อนคนอื่น ๆ ที่มันตีฉัน: "มันมีประสิทธิภาพมากขึ้นด้วย" การส่งผ่าน 4 ไบต์แทนที่จะเป็น 16 ไบต์เป็นการเปลี่ยนแนวคิดขั้นสุดท้ายที่ฉันต้องการ

30
วิธีจัดการกับคนที่โกหกประวัติย่อของพวกเขา [ปิด]
ฉันกำลังทำการสัมภาษณ์ทางเทคนิคเพื่อเติมตำแหน่ง. NET ไม่กี่ตำแหน่ง หลายคนที่ผมสัมภาษณ์จริงๆไม่ทราบ .NET สวยดี แต่ฉันคิดว่าอย่างน้อย 90% ประดับประดา skillset ของพวกเขาที่ใดก็ได้ระหว่าง "เล็ก ๆ น้อย ๆ" กับ "ค่อนข้างอย่างเห็นได้ชัด" บางครั้งพวกเขาสร้างทักษะที่เกี่ยวข้องกับตำแหน่งที่พวกเขาใช้สำหรับบางครั้งพวกเขาไม่ได้ คนที่ฉันสัมภาษณ์ส่วนใหญ่แม้แต่คนโกหกที่ร้ายกาจที่สุดก็ไม่ใช่ศิลปินหลอกลวง พวกเขาต้องการโดดเด่นท่ามกลางฝูงชนดังนั้นพวกเขาจึงวาง buzzwords สองสามรายการในเรซูเม่ของพวกเขาเช่น "JBoss", "LINQ", "บริการเว็บ", "Django" หรืออะไรก็ตามที่จะเพิ่มทักษะของพวกเขาและแข่งขันได้ (คุณอาจสงสัยว่าคนที่มีความสามารถเกี่ยวกับทักษะเหล่านั้นเป็นเพียงการพูดปดผ่านการสัมภาษณ์ทางเทคนิคหรือไม่การสัมภาษณ์ของฉันเกี่ยวข้องกับการเขียนโค้ดและการแก้ปัญหามากมาย - ผู้ที่พยายามป้านจะระเบิดส่วนการเข้ารหัสบนมือ ใน 3 นาทีแรก) เหล่านี้เป็นคำถามปลายเปิดสองข้อ แต่จริง ๆ แล้วมันจะช่วยฉันจริง ๆ เมื่อฉันให้คำแนะนำกับผู้จัดการการจ้างงาน: เกี่ยวกับมารยาทในการสัมภาษณ์ฉันควรพยายามระบุหรือไม่ว่าบุคคลนั้นมีทักษะทั้งหมดที่พวกเขาอ้างว่ามีหรือไม่? ฉันสามารถทำได้โดยไม่ทำให้ผู้สมัครรู้สึกไม่สบายใจหรือไม่? เกี่ยวกับการตัดสินใจขั้นสุดท้ายฉันควรแนะนำผู้สมัครที่มีคุณสมบัติอย่างแท้จริงสำหรับตำแหน่งที่พวกเขาสมัครแม้ว่าพวกเขาจะได้สร้างส่วนของชุดทักษะของพวกเขา?

9
XXX หมายถึงอะไรในความคิดเห็น [ปิด]
คนทั่วไปหมายถึงอะไรเมื่อใดก็ตามที่คุณเห็นXXXในความคิดเห็น บางครั้งฉันจะเห็นความคิดเห็นเช่นนี้: # XXX - This widget really should frobulate the whatsit แน่นอนฉันสามารถบอกได้ว่าความคิดเห็นนั้นหมายถึงอะไร แต่ XXX โดยทั่วไปหมายถึงอะไร มันพูดว่า "นี่คือแฮ็ค" หรืออาจ "เราควรกลับมาทบทวนอีกครั้งในภายหลัง"? หรือมันจะพูดอย่างอื่นอย่างสิ้นเชิง?

5
สิ่งที่ควรและสิ่งที่ไม่ควรอยู่ในไฟล์ส่วนหัว? [ปิด]
สิ่งที่ไม่ควรรวมอยู่ในไฟล์ส่วนหัวอย่างแน่นอน? ตัวอย่างเช่นถ้าฉันทำงานกับรูปแบบมาตรฐานอุตสาหกรรมที่มีค่าคงที่จำนวนมากเป็นวิธีปฏิบัติที่ดีที่จะกำหนดไว้ในไฟล์ส่วนหัว (ถ้าฉันเขียนโปรแกรมแยกวิเคราะห์สำหรับรูปแบบนั้น) ฟังก์ชั่นใดที่ควรเข้าไปในไฟล์ส่วนหัว? ฟังก์ชั่นอะไรไม่ควร?
71 c  headers 

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