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

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

3
ฉันต้องทำอย่างไรหากฉันใช้ไลบรารี่ลิขสิทธิ์ LGPL
ฉันได้อ่านคำถามและคำตอบนี้แล้ว แต่ฉันยังไม่เข้าใจว่าฉันต้องทำอย่างไรหากฉันเชื่อมโยงกับห้องสมุดที่ใช้ใบอนุญาต LGPL (ห้องสมุด SDL ในกรณีของฉัน) หากฉันเข้าใจข้อความ LGPLอย่างถูกต้องฉันจะต้องระบุแหล่งที่มาของไลบรารีด้วย เพียงพอหรือไม่ ถ้าไม่ต้องทำอะไรอีก
48 lgpl 


4
if ('constant' == $ variable) vs. if ($ variable == 'constant')
เมื่อเร็ว ๆ นี้ฉันได้ทำงานกับ PHP มากและโดยเฉพาะภายในกรอบ WordPress ฉันสังเกตเห็นรหัสจำนวนมากในรูปแบบของ: if ( 1 == $options['postlink'] ) ที่ฉันคาดว่าจะเห็น: if ( $options['postlink'] == 1 ) นี่เป็นข้อตกลงที่พบในบางภาษา / กรอบงานหรือไม่? มีเหตุผลใดที่แนวทางก่อนหน้านี้เป็นที่นิยมกว่าในภายหลัง (จากมุมมองการประมวลผลหรือมุมมองการแยกวิเคราะห์หรือแม้แต่มุมมองของมนุษย์?) หรือมันเป็นเพียงเรื่องของการลิ้มรส? ฉันมักจะคิดว่ามันจะดีกว่าเมื่อทำการทดสอบว่ารายการตัวแปรที่ทดสอบกับค่าคงที่อยู่ทางซ้าย ดูเหมือนว่าแผนที่ดีกว่าวิธีที่เราจะถามคำถามในภาษาธรรมชาติ: "ถ้าเค้กช็อคโกแลต" มากกว่า "ถ้าช็อคโกแลตเป็นเค้ก"

20
คุณควรเขียนเอกสารที่ดีและรหัสสะอาดเพื่อเพิ่ม "Bus Factor" หรือไม่?
หนึ่งในเป้าหมายหลักของ บริษัท พัฒนาซอฟแวร์คือการเพิ่มของพวกเขาปัจจัย Busนี้จะยังสนับสนุนในการพูดคุยที่ถูกจัดขึ้นโดย Google นั่นหมายความว่าคุณควรเขียนโค้ดและจัดทำเอกสารทุกอย่างในแบบที่หากคุณใช้รถบัสในวันพรุ่งนี้โครงการก็ยังสามารถดำเนินต่อไปได้ กล่าวอีกนัยหนึ่งคุณควรทำให้โปรแกรมเมอร์ตัวอื่นสามารถเปลี่ยนได้อย่างง่ายดายด้วยทักษะที่คล้ายคลึงกับที่คุณตั้งไว้ การทำซ้ำได้นั้นไม่ได้ขัดกับความสนใจของนักพัฒนาหรือไม่? ในหนังสือกฎหมาย 48 ฉบับของกฎอำนาจ 11 ระบุว่าคุณควรพยายามให้ผู้คนพึ่งพาคุณเพื่อให้ได้มาซึ่งอำนาจซึ่งแปลเป็นรางวัลทางการเงิน นอกเหนือจากสถานการณ์สมมติที่คุณต้องการเอกสารประกอบสำหรับตัวคุณเองเพื่อดำเนินการโครงการหลังจากหยุดไป 6 เดือนดูเหมือนว่ามีความขัดแย้งทางผลประโยชน์ที่ชัดเจนระหว่างผู้พัฒนาและ บริษัท ซอฟต์แวร์ ดังนั้นในฐานะโปรแกรมเมอร์คุณควรเขียนเอกสารที่ยอดเยี่ยมและอ่านรหัสได้ง่ายสำหรับทุกคน หรือคุณควรเขียนรหัสและเอกสารในลักษณะที่ทำงานและตัวคุณเองสามารถเข้าใจได้ แต่คนอื่นอาจมีปัญหาในการทำความเข้าใจ?

3
ทำไม 2 ^ 16 จึงเป็นหมายเลข“ พิเศษ” [ปิด]
ตกลงฉันรู้สึกโง่ที่ถามสิ่งนี้ - แต่ในบทความของ Jeff: ทำให้หน้าจอสัมผัสโทรศัพท์ถูกต้องและระบุไว้ในคำถามหน้าจอโทรศัพท์สำคัญ 5 ข้อ : พวกเขาไม่ควรจ้องมองที่คุณเมื่อคุณถามด้วย 2 ^ 16 คือ มันเป็นหมายเลขพิเศษ พวกเขาควรรู้ ฉันเคยเป็นนักพัฒนาซอฟต์แวร์ \ software \ code monkey \ ไม่ว่าจะเกิดอะไรขึ้นซักพักแล้วและฉันไม่คิดว่าจะเจอสิ่งนี้ ฉันหมายถึงฉันสามารถนับค่าไบนารี่ได้อย่างแน่นอนการดำเนินการขั้นพื้นฐานกับพวกเขา ฯลฯ ฯลฯ แต่ฉันไม่เห็นสิ่งที่ "พิเศษ" เกี่ยวกับค่านี้
48 numbers  binary 

6
ข้อดีและข้อเสียของ Coffeescript คืออะไร [ปิด]
แน่นอนโปรใหญ่หนึ่งคือปริมาณน้ำตาล syntactic ที่นำไปสู่รหัสที่สั้นลงในหลายกรณี บนhttp://jashkenas.github.com/coffee-script/มีตัวอย่างที่น่าประทับใจ ในทางกลับกันฉันสงสัยว่าตัวอย่างเหล่านี้แสดงถึงรหัสของแอปพลิเคชันโลกแห่งความซับซ้อน ในรหัสของฉันเช่นฉันไม่เคยเพิ่มฟังก์ชั่นไปยังวัตถุที่เปลือยเปล่า แต่แทนที่จะเป็นต้นแบบของพวกเขา ยิ่งไปกว่านั้นคุณสมบัติต้นแบบถูกซ่อนไว้จากผู้ใช้ซึ่งแนะนำ OOP แบบคลาสสิกมากกว่าจาวาสคริปต์ที่ใช้สำนวน ตัวอย่างความเข้าใจอาร์เรย์จะดูในรหัสของฉันอาจเป็นดังนี้: cubes = $.map(list, math.cube); // which is 8 characters less using jQuery...

7
คุณจะต่อสู้กับความเหนื่อยล้าในการเขียนโปรแกรมได้อย่างไร [ปิด]
ไม่เหนื่อยล้าเหมือนใน 'ฉันต้องการนอนหลับ' แต่เหนื่อยล้าเหมือน 'ฉันแค่ไม่ได้ใส่ใจอีกต่อไป' ซึ่งมักจะเกิดขึ้นเมื่อคุณเข้าร่วมสิ่งกีดขวางบนถนนในโครงการที่คุณกำลังทำอยู่ สามารถอยู่ในโครงการทำงานหรือโครงการส่วนตัว แต่มันเป็นสิ่งที่ฉันกดปุ่มมากขึ้นเมื่อเร็ว ๆ นี้ ฉันจะได้รับไอเดียทำงานต่อไปมีสักสองสามวันที่ดีจริง ๆ และทำให้ความคืบหน้าจากนั้นก็มีบางอย่างที่จะทำให้ฉันงุนงงมากขึ้นฉันไม่สามารถทำงานในแบบที่คุณต้องการฉันมีข้อ จำกัด ในกรอบฉันมีปัญหาฉันไม่สามารถหาเอกสาร ฯลฯ และมันก็น่าผิดหวังเกินไป หรือฉันคนเดียวในเรื่องนี้?

14
ที่ไหนและอย่างไรที่จะพูดถึงการมีส่วนร่วมของ Stackoverflow ในประวัติย่อ? [ปิด]
ฉันคิดว่าตอนนี้ฉันมีชื่อเสียงดีพอ เอาล่ะนี่อาจไม่ได้มากไปกว่าผู้ใช้คนอื่น ๆ แต่ฉันมีความสุขกับฉัน ดังนั้นฉันจึงคิดที่จะเพิ่มลิงก์โปรไฟล์ของฉันในประวัติส่วนตัวของฉัน - เพียงแค่ลิงค์โปรไฟล์และไม่ใช่ว่า "ฉันมีชื่อเสียงมากใน SO" ผู้ที่ไม่ได้เห็นสามารถดูคำถามนี้คุณจะใส่ลิงค์โปรไฟล์สแต็คล้นของคุณในประวัติส่วนตัวของคุณหรือไม่? ลักษณะนี้จะเป็นอย่างไร ฟอรั่ม / บล็อก / อื่น ๆ อื่น ๆ ยังไม่มีการบล็อก แต่ยังมีส่วนร่วมใน Stackoverflow ลิงก์โปรไฟล์ของฉัน - http://stackoverflow.com/users/userId/username ฉันคิดถึงการวางหัวข้อนี้หลังจากรายละเอียดโครงการและส่วนความเชี่ยวชาญด้านเทคนิค คำแนะนำ / คำแนะนำใด ๆ ปรับปรุง MKO ทำดีมาก - คุณต้องการให้นายจ้างที่มีศักยภาพสามารถประเมินรายละเอียดทุกอย่างที่คุณเคยเขียนใน SO หรือไม่ ฉันคิดว่าการแสดงความคิดเห็น แต่มันจะยาวเกินไป - ในคำถาม / คำตอบของฉันฉันใส่ข้อความมากมายเช่น - "AFAIK ... ", "ต่อไปนี้เป็นข้อสันนิษฐานของฉันจนถึงตอนนี้ ... ", …
48 resume 

11
ฉันควรทำอย่างไรเมื่อผู้สัมภาษณ์ไม่ทราบคำตอบสำหรับคำถามของตนเอง [ปิด]
เมื่อวานนี้ฉันมีประสบการณ์ที่แย่มากในการสัมภาษณ์ ผู้สัมภาษณ์ถามฉันเกี่ยวกับฟังก์ชั่นเสมือนจริง ฉันพูดว่ามันอาจจะมีหรือไม่มีความหมายในคลาสฐาน แต่คลาสที่ได้รับควรให้คำจำกัดความนอกจากว่าพวกเขาต้องการที่จะเป็นคลาสนามธรรม แต่ผู้สัมภาษณ์ถามต่อไปว่า "Can pure virtual มีคำจำกัดความ !!! ???" ... ฉันตอบว่าใช่ เขาพูดอีกครั้งว่า "เพียว" ฉันพูดว่าใช่. อนุญาตคลาสที่ได้รับสามารถเรียกใช้ฟังก์ชันนั้นได้อย่างชัดเจนหากพวกเขาต้องการพฤติกรรมที่เฉพาะเจาะจง เขาส่งฉันออกไป ฉันแน่ใจว่าเขาไม่ทราบความจริงที่ว่าฟังก์ชั่นเสมือนที่บริสุทธิ์สามารถมีความหมายได้ วิธีจัดการกับผู้สัมภาษณ์ประเภทนี้ หลังจากถามครั้งที่ 2 ฉันควรโกหกไหมว่ามันไม่มีความหมาย? :) หรือฉันควรยึดติดกับคำพูดของฉันและปล่อยโอกาสในการทำงาน
48 c++  interview 

14
โปรแกรมเมอร์ส่วนใหญ่คัดลอกและวางรหัสหรือไม่ [ปิด]
ฉันเรียนรู้ตั้งแต่เนิ่นๆว่าการตัดและวางโค้ดของคนอื่นใช้เวลานานกว่านั้นในระยะยาวที่เขียนด้วยตัวคุณเอง ในความคิดของฉันถ้าคุณไม่เข้าใจจริงๆรหัส cut & paste อาจมีปัญหาซึ่งจะเป็นฝันร้ายที่จะแก้ไข อย่าเข้าใจฉันผิดฉันหมายถึงการค้นหารหัสประชาชนอื่น ๆ และการเรียนรู้จากมันเป็นสิ่งจำเป็น แต่เราไม่เพียงแค่วางลงในแอปของเรา เราเขียนแนวคิดใน app ของเรา แต่ฉันได้ยินเกี่ยวกับคนที่ถูกตัดและวางอย่างต่อเนื่องและพวกเขาพูดถึงมันเหมือนเป็นเรื่องธรรมดา ฉันเห็นความคิดเห็นของผู้อื่นซึ่งแสดงว่าเป็นเรื่องธรรมดา ดังนั้นโปรแกรมเมอร์ส่วนใหญ่จะตัดและวางรหัสหรือไม่

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

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

6
การเลือกภาษาโปรแกรมที่ใช้งานได้ [ปิด]
ฉันได้อ่านหลายหัวข้อเกี่ยวกับภาษาการเขียนโปรแกรมการทำงานเมื่อเร็ว ๆ นี้ (เกือบในปีที่ผ่านมาในความเป็นจริง) ฉันต้องการเลือกและเรียนรู้อย่างละเอียดถี่ถ้วน ภาคการศึกษาสุดท้าย [หลักสูตร] ฉันได้รับการแนะนำให้รู้จักกับโครงการ ฉันชอบมัน. ชอบความเรียบง่ายที่สุดของไวยากรณ์หลักการhomoiconicityมาโคร ( ถูกสุขลักษณะและไม่ถูกสุขลักษณะ) n-arity ของขั้นตอน ฯลฯ ปัญหาของ Scheme คือภาษาทางวิชาการ ฉันไม่คิดว่ามันถูกใช้จริงในสภาพแวดล้อมการผลิต ฉันไม่เชื่อว่าเป็นการดีที่มีประวัติย่อของเรา ดังนั้นฉันจึงได้มองหาทางเลือกอื่น ๆ มีหลายคนและพวกเขาทั้งหมดดูเหมือนจะมีระดับความนิยมที่คล้ายกัน ความคิดบางอย่างเกี่ยวกับภาษาการทำงานอื่น ๆ ที่ฉันได้พิจารณา: Clojure: มันฟังดูยอดเยี่ยมเพราะมันสามารถเข้าถึงโลกของ Java ได้มันมุ่งเน้นไปที่ความสามารถในการขยายและการทำงานพร้อมกัน แต่โลกของ Java ไม่ได้อยู่ตรงนี้หรือ ฉันรู้แล้วว่า Java ค่อนข้างดี แต่ควรเพิ่มพลังงานมากขึ้นหรือไม่ขึ้นอยู่กับ JVM Haskell: ดูเหมือนภาษาที่นิยมมาก แต่จากสิ่งที่ฉันได้อ่านมันเป็นภาษาวิชาการอีกด้วย เสียงกระเพื่อม: มันได้รับรอบตั้งแต่ตลอดกาล ดูเหมือนจะมีสิ่งที่ฉันชอบมากที่สุดจาก Scheme มันมีชุมชนใหญ่ สำหรับสิ่งที่ฉัน [คิดว่าฉัน] น่าจะเป็นภาษาโปรแกรมที่ใช้กันอย่างแพร่หลายในอุตสาหกรรม (?) …

6
ฉันจะเรียนรู้ Python จากศูนย์ถึงการพัฒนาเว็บได้อย่างไร [ปิด]
ฉันกำลังมองหาการเรียนรู้ Python สำหรับการพัฒนาเว็บ สมมติว่าฉันมีประสบการณ์การพัฒนาเว็บขั้นพื้นฐานด้วย Java (JSP / Servlets) ฉันคุ้นเคยกับการออกแบบเว็บ (HTML, CSS, JS) แนวคิดการเขียนโปรแกรมพื้นฐานและฉันใหม่กับ Python อย่างสมบูรณ์ การเรียนรู้ Python ในรูปแบบที่มีโครงสร้างซึ่งในที่สุดจะนำฉันไปสู่การพัฒนาเว็บไซต์ด้วย Python และ Django ฉันไม่ต้องรีบทำเว็บแอพพลิเคชั่นใน Python ดังนั้นฉันต้องการเรียนรู้อย่างละเอียดเพื่อไม่ให้เกิดช่องว่างในความรู้เกี่ยวกับเทคโนโลยีที่เกี่ยวข้องกับการพัฒนาเว็บใน Python มีหนังสือทรัพยากรหรือเทคนิคใดบ้างที่จะช่วยฉันในความพยายามของฉัน ฉันควรจะอ่าน / อ่านลำดับใด UPDATE: เมื่อฉันพูดว่าการเรียนรู้ในรูปแบบที่มีโครงสร้างฉันหมายถึงการเริ่มต้นจากพื้นฐานแล้วเรียนรู้เนื้อหาขั้นสูงโดยไม่ต้องทิ้งรายละเอียด / คุณสมบัติที่สำคัญที่ Python มีให้ ฉันต้องการทราบวิธีการใช้สิ่งที่ฉันรู้แล้วในการเขียนโปรแกรมกับ Python

9
ฉันจะเริ่มต้นด้วยเสียงกระเพื่อมได้อย่างไร [ปิด]
ฉันได้เขียนโปรแกรมมาหลายปีแล้วทำงานผ่านการทำซ้ำของ Blub (BASIC, Assembler, C, C ++, Visual Basic, Java, Ruby ในลำดับที่ไม่เจาะจงของ "Blub-ness") และฉันต้องการเรียนรู้ เสียงกระเพื่อม อย่างไรก็ตามฉันมีหลาย intertia สิ่งที่มีเวลา จำกัด (ครอบครัวงานเต็มเวลา ฯลฯ ) และความสุขสบายกับ Blub ปัจจุบันของฉัน (Java) ดังนั้นคำถามของฉันคือสิ่งนี้เนื่องจากฉันเป็นคนที่อยากจะเรียนรู้ Lisp จริง ๆ แล้วขั้นตอนแรกที่จะได้รับผลลัพธ์ที่ดีซึ่งแสดงให้เห็นถึงความเหนือกว่าของ Lisp ในการพัฒนาเว็บคืออะไร? บางทีฉันอาจพลาดจุดนี้ไป แต่นั่นเป็นวิธีที่ฉันจะเห็นการประยุกต์ใช้ความรู้เสียงกระเพื่อมของฉันในตอนแรก ฉันคิดว่า "ใช้ภาษา A, ใช้ IDE B, ทำตามคำแนะนำในหน้า C, ถามความมีสติของคุณหลังจาก monads โดยใช้ที่ปรึกษา D" ฉันแค่อยากจะรู้ว่าสิ่งที่ผู้คนที่นี่ถือว่าเป็นชุดของค่าที่ดีที่สุดสำหรับ A, B, …

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