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

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

11
DRY เป็นศัตรูของการจัดการโครงการซอฟต์แวร์หรือไม่
หนึ่งในหลักการพื้นฐานและเป็นที่ยอมรับอย่างกว้างขวางที่สุดของการพัฒนาซอฟต์แวร์คือ DRY (อย่าทำซ้ำตัวเอง) เป็นที่ชัดเจนว่าโครงการซอฟต์แวร์ส่วนใหญ่ต้องการการจัดการบางอย่าง ตอนนี้งานใดบ้างที่ง่ายต่อการจัดการ (ประมาณ, กำหนดเวลา, ควบคุม) งานที่ถูกต้องทำซ้ำงานที่ควรหลีกเลี่ยงตาม DRY ดังนั้นจากมุมมองการจัดการโครงการมันเป็นเรื่องที่ดีในการแก้ปัญหาโดยการคัดลอกโค้ดที่มีอยู่ 100 ครั้งและทำการปรับเปลี่ยนเล็กน้อยในแต่ละสำเนาตามที่ต้องการ ตลอดเวลาคุณรู้แน่ชัดว่าคุณทำงานมามากแค่ไหนและเหลือเท่าไหร่ ผู้จัดการทุกคนจะรักคุณ หากคุณใช้หลักการ DRY แทนและลองค้นหาสิ่งที่เป็นนามธรรมซึ่งมากหรือน้อยจะกำจัดรหัสที่ซ้ำกันซึ่งต่างออกไป มักจะมีความเป็นไปได้มากมายคุณต้องตัดสินใจทำวิจัยมีความคิดสร้างสรรค์ คุณอาจคิดวิธีแก้ปัญหาที่ดีกว่าในเวลาอันสั้น แต่คุณอาจล้มเหลว ส่วนใหญ่คุณไม่สามารถพูดได้ว่าเหลืองานมากแค่ไหน คุณเป็นฝันร้ายที่เลวร้ายที่สุดของผู้จัดการโครงการ แน่นอนว่าฉันพูดเกินจริง แต่มีปัญหาแน่นอน คำถามของฉันคืออะไรเกณฑ์ในการตัดสินใจว่านักพัฒนาซอฟต์แวร์ทำเกินกำหนด DRY อย่างไร เราจะพบการประนีประนอมที่ดีได้อย่างไร? หรือมีวิธีที่จะเอาชนะภาวะที่กลืนไม่เข้าคายไม่ออกนี้อย่างสมบูรณ์ไม่ใช่เพียงแค่การหาประนีประนอม? หมายเหตุ: คำถามนี้ขึ้นอยู่กับแนวคิดเดียวกับที่ฉันเคยทำมาก่อนจำนวนงานประจำในการพัฒนาซอฟต์แวร์และผลกระทบต่อการประมาณค่าแต่ฉันคิดว่ามันทำให้ประเด็นของฉันชัดเจนยิ่งขึ้นขอโทษที่ทำซ้ำด้วยตัวเอง :)

22
นักพัฒนาจะหาเวลาอยู่บนเทคโนโลยีล่าสุดได้อย่างไร [ปิด]
ฉันเป็นนักพัฒนาเว็บไซต์อิสระจนกระทั่งประมาณปี 2004 เมื่อฉันเริ่มลงเส้นทางการจัดการ แต่ได้ตัดสินใจที่จะลองกลับไปสู่การพัฒนาอีกครั้ง (โดยเฉพาะ JavaScript และ HTML5 เว็บ / เว็บแอปบนอุปกรณ์เคลื่อนที่) และฉันรู้สึกประทับใจจริงๆ เทคโนโลยีที่เคลื่อนไหวเร็วและคล้ายคลึงกันนี้ต้องใช้เวลาอย่างต่อเนื่องในการลงทุนเพื่อพัฒนาทักษะที่มีอยู่ให้ดีขึ้นนอกเหนือจากการเรียนรู้ทักษะใหม่ ๆ ฉันเข้าใจในตอนนี้เนื่องจากฉันได้รับกลับไปสู่สิ่งต่าง ๆ ที่มีเส้นโค้งการเรียนรู้ที่ค่อนข้างสูงชัน แต่การเห็นว่ามีผู้ชายกี่คนที่ดีออกไปข้างนอกนั่นคือวิธีเดียวที่ฉันเห็นว่าการลุกขึ้นยืน สำหรับผู้ที่ทำงานเป็นนักพัฒนาเต็มเวลาสิ่งที่ฉันพยายามทำความเข้าใจคือสิ่งนี้ - ในเกือบทุกวันเวลาในสำนักงานจะถูกใช้ไปมากแค่ไหนในการตัดโค้ดเมื่อเทียบกับการเรียนรู้ / การวิจัย ฉันสามารถใช้เวลา 2-4 ชั่วโมงต่อวันในการทำสิ่งต่าง ๆ ที่ดีที่สุด นักพัฒนาที่ดีที่สุดส่วนใหญ่ที่ทำงานเต็มเวลานั้นลงทุนชั่วโมงสำคัญนอกเวลาทำงานหรือไม่ หรือบางทีฉันอาจจะดูผิดทั้งหมด

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

1
เกิดอะไรขึ้นกับ Unlicense?
ฉันมักจะได้ยินว่าฉันไม่ควรใช้Unlicenseเนื่องจากปัญหาเกี่ยวกับการวางสิ่งต่าง ๆ ในโดเมนสาธารณะ อย่างไรก็ตามฉันไม่เข้าใจว่าทำไมเรื่องนี้จึงเป็นปัญหาสำหรับคนที่ไม่ชอบด้วยกฎหมาย The Unlicense พยายามที่จะนำสิ่งใดก็ตามที่ไม่มีใบอนุญาตเข้าสู่สาธารณสมบัติและถ้าเป็นไปได้ก็ดี! อย่างไรก็ตามผู้เขียน Unlicense เข้าใจว่าการวางบางสิ่งในโดเมนสาธารณะนั้นไม่ง่ายมันอาจเป็นไปไม่ได้ดังนั้น Unlicense จึงมีประโยคสำรอง (ย่อหน้าที่ 2) ซึ่งระบุไว้อย่างชัดเจนว่าทุกคนมีอิสระที่จะทำสิ่งที่พวกเขา ต้องการด้วยซอฟต์แวร์ที่ไม่มีใบอนุญาต Unlicense ยังรวมถึงข้อจำกัดความรับผิดชอบที่มีตามกฎหมาย "ซอฟต์แวร์นี้มีให้ตามที่ is blah blah" legalese Unlicense ไม่ดีเพราะสั้นและไม่ได้กำหนดว่าใคร "unlicensor", "unlicensee" และ Santa Claus คือใคร? ถ้าใช่แล้วใบอนุญาตสไตล์ MIT / BSD ล่ะ? โดยทั่วไปถือว่ามีความถูกต้องดังนั้นทำไมจึงไม่ผิดพลาด การคัดค้านการเป็นสาธารณสมบัติยกเว้นข้อสงวนสิทธิ์อนุญาตเช่น Unlicense และแม้แต่ Creative Commons CC0 เพียงแค่ FUD หรือมีประเด็นทางกฎหมายที่สำคัญกับพวกเขาหรือไม่? นี่คือเนื้อหาทั้งหมดของ Unlicense: ซอฟต์แวร์นี้ฟรีและไม่มีภาระผูกพันที่เผยแพร่สู่สาธารณสมบัติ ทุกคนมีอิสระในการคัดลอกแก้ไขเผยแพร่ใช้รวบรวมขายหรือแจกจ่ายซอฟต์แวร์นี้ไม่ว่าจะในรูปแบบซอร์สโค้ดหรือในรูปแบบไบนารีที่รวบรวมเพื่อวัตถุประสงค์เชิงพาณิชย์หรือเชิงพาณิชย์และไม่ว่าด้วยวิธีใดก็ตาม …
83 licensing  legal 

9
ฉันสามารถเขียนรหัส ... แต่ไม่สามารถออกแบบได้ดี ข้อเสนอแนะใด ๆ [ปิด]
ฉันรู้สึกว่าฉันเก่งในการเขียนโค้ดเป็นบิตและชิ้นส่วน แต่งานออกแบบของฉันดูดจริงๆ คำถามคือฉันจะปรับปรุงการออกแบบของฉันได้อย่างไรและจะกลายเป็นนักออกแบบที่ดีขึ้นได้อย่างไร ฉันคิดว่าโรงเรียนและวิทยาลัยทำงานได้ดีในการสอนผู้คนถึงวิธีการแก้ปัญหาทางคณิตศาสตร์ได้ดี แต่ขอยอมรับความจริงที่ว่าแอปพลิเคชันส่วนใหญ่ที่สร้างขึ้นที่โรงเรียนมักมีความยาวประมาณ 1,000 - 2,000 บรรทัดซึ่งหมายความว่าส่วนใหญ่เป็นการฝึกหัดทางวิชาการ ซึ่งไม่ได้สะท้อนความซับซ้อนของซอฟต์แวร์ในโลกแห่งความเป็นจริงโดยเรียงตามบรรทัดโค้ดสองสามแสนถึงล้าน นี่คือที่ฉันเชื่อว่าแม้โครงการอย่าง topcoder / project euler ก็จะไม่ได้รับความช่วยเหลือมากนักพวกเขาอาจทำให้ความสามารถในการแก้ปัญหาทางคณิตศาสตร์ของคุณคมชัดขึ้น แต่คุณอาจเป็นโปรแกรมเมอร์เชิงวิชาการ คนที่มีความสนใจในสิ่งที่ดีและสะอาดที่ไม่สนใจในเรื่องธรรมดาและมีขนดกที่ผู้เขียนโปรแกรมประยุกต์ส่วนใหญ่ใช้เป็นประจำ ดังนั้นคำถามของฉันคือฉันจะพัฒนาทักษะการออกแบบได้อย่างไร นั่นคือความสามารถในการออกแบบแอพพลิเคชั่นขนาดเล็ก / ขนาดกลางที่จะเข้าไปในโค้ดสองสามพันบรรทัด? ฉันจะเรียนรู้ทักษะการออกแบบที่จะช่วยให้ฉันสร้างชุดแก้ไข html ที่ดีขึ้นได้อย่างไรหรือโปรแกรมกราฟิกบางอย่างเช่น gimp
83 design  skills 

7
จะเป็นพลเมืองที่ดีได้อย่างไรเมื่อรวบรวมข้อมูลเว็บไซต์?
ฉันกำลังจะพัฒนาฟังก์ชั่นบางอย่างที่จะรวบรวมข้อมูลเว็บไซต์สาธารณะต่างๆและประมวลผล / รวมข้อมูลกับพวกเขา ไม่มีอะไรที่น่ากลัวเหมือนการค้นหาที่อยู่อีเมล - ในความเป็นจริงมันเป็นสิ่งที่อาจผลักดันการรับส่งข้อมูลเพิ่มเติมไปยังเว็บไซต์ของพวกเขา แต่ฉันเชือนแช นอกเหนือจากการให้เกียรติrobots.txtมีกฎหรือแนวทางปฏิบัติเป็นลายลักษณ์อักษรหรือไม่เป็นลายลักษณ์อักษรที่ฉันควรจะปฏิบัติตามเพื่อ (ก) หลีกเลี่ยงการปรากฏตัวที่เป็นอันตรายและอาจถูกแบนและ (b) ไม่ทำให้เกิดปัญหาใด ๆ สำหรับเจ้าของเว็บไซต์ / เว็บมาสเตอร์ ตัวอย่างบางอย่างที่ฉันสามารถนึกได้ซึ่งอาจจะสำคัญหรือไม่สำคัญ: จำนวนการร้องขอแบบขนาน เวลาระหว่างคำขอ เวลาระหว่างการรวบรวมข้อมูลทั้งหมด หลีกเลี่ยงการเชื่อมโยงที่อาจเป็นอันตราย (ไม่ต้องการเป็นSpider of Doom - แต่ใครจะรู้ว่านี่เป็นประโยชน์จริง ๆ ) นั่นเป็นเพียงการถ่มน้ำลายใส่ลูกบอลจริงๆ มีผู้ใดบ้างที่เคยลองและทดสอบภูมิปัญญามาแล้วซึ่งมีผลบังคับใช้ในวงกว้างสำหรับใครก็ตามที่ต้องการเขียนหรือใช้สไปเดอร์?

8
คืนค่าเวทย์มนตร์โยนข้อยกเว้นหรือคืนเท็จเมื่อล้มเหลว?
บางครั้งฉันต้องเขียนวิธีหรือคุณสมบัติสำหรับไลบรารี่คลาสที่ไม่ได้ยอดเยี่ยมที่จะไม่มีคำตอบจริง แต่เป็นความล้มเหลว ไม่สามารถระบุบางสิ่ง, ไม่พร้อมใช้, ไม่พบ, ไม่สามารถทำได้ในปัจจุบันหรือไม่มีข้อมูลเพิ่มเติม ฉันคิดว่ามีวิธีแก้ปัญหาสามประการที่เป็นไปได้สำหรับสถานการณ์ที่ไม่เป็นพิเศษเช่นนี้เพื่อระบุความล้มเหลวใน C # 4: คืนค่าเวทย์มนตร์ที่ไม่มีความหมายเป็นอย่างอื่น (เช่นnullและ-1); โยนข้อยกเว้น (เช่นKeyNotFoundException); ส่งคืนfalseและระบุค่าส่งคืนจริงในoutพารามิเตอร์ (เช่นDictionary<,>.TryGetValue) ดังนั้นคำถามคือ: ในสถานการณ์ใดที่ฉันไม่ควรพลาด และถ้าฉันไม่ควรโยน: เมื่อส่งคืนค่าเวทมนตร์ที่อ้างถึงข้างต้นใช้Try*วิธีการที่มีoutพารามิเตอร์หรือไม่ (สำหรับฉันoutพารามิเตอร์ดูเหมือนว่าสกปรกและใช้งานได้อย่างถูกต้องมากกว่า) ฉันกำลังมองหาคำตอบที่เป็นจริงเช่นคำตอบที่เกี่ยวข้องกับแนวทางการออกแบบ (ฉันไม่รู้อะไรเกี่ยวกับTry*วิธีการ) ความสามารถในการใช้งาน (เมื่อฉันขอสิ่งนี้สำหรับห้องสมุดคลาส) ความสอดคล้องกับ BCL และความสามารถในการอ่าน ในไลบรารีคลาสพื้นฐาน. NET Framework ใช้วิธีการทั้งสาม: คืนค่าเวทย์มนตร์ที่ไม่มีความหมายเป็นอย่างอื่น: Collection<T>.IndexOf ผลตอบแทน -1 StreamReader.Read ผลตอบแทน -1 Math.Sqrt ส่งกลับ NaN Hashtable.Item ผลตอบแทนที่เป็นโมฆะ; โยนข้อยกเว้น: Dictionary<,>.Item พ่น KeyNotFoundException Double.Parseพ่น FormatException; …

12
ข้อเสียของแท็บสต๊อปยืดหยุ่นคืออะไร [ปิด]
ดูที่นี่: สงครามศักดิ์สิทธิ์ทั่วไปบนแท็บ VS ช่องว่าง ตอนนี้ดูที่นี่: tabstops ยืดหยุ่น แก้ไขปัญหาทั้งหมดแล้วและเพิ่มพฤติกรรมใหม่ ๆ ที่มีประโยชน์มากมาย แท็บที่ยืดได้พูดถึงแม้ในแท็บนั้นเทียบกับการอภิปรายช่องว่างหรือไม่ ทำไมจะไม่ล่ะ? มีข้อเสียของแนวคิด tabstop ยืดหยุ่นอย่างจริงจังว่าไม่มีใครเคยใช้พวกเขาในการแก้ไขที่นิยม? แก้ไข : ฉันขอโทษที่ให้ความสำคัญกับ "ทำไมพวกเขาถึงไม่พูด" นั่นไม่ใช่สิ่งที่ฉันตั้งใจจริงๆ ว่าคำถามคืออาจเป็นไปได้ปิดหัวข้อ สิ่งที่ฉันหมายถึงจริงๆคืออะไรข้อเสียที่ใหญ่ที่สุดของสิ่งนี้ที่ป้องกันไม่ให้มีการใช้ความคิดที่เป็นประโยชน์อย่างเห็นได้ชัด? (ในโลกอุดมคติที่ทุกสิ่งรองรับแล้ว) (ปรากฎว่ามีคำขอใน Microsoft Connect สำหรับการใช้งาน Visual Studio ของแท็บที่ยืดหยุ่นและคำขอใน Eclipseด้วยเช่นกันนอกจากนี้ยังมีคำถามที่ถามเกี่ยวกับตัวแก้ไขอื่น ๆ ที่ใช้แท็บที่ยืดหยุ่น )

13
รหัสความเห็นสามารถเป็นเอกสารที่มีค่าได้หรือไม่
ฉันเขียนรหัสต่อไปนี้: if (boutique == null) { boutique = new Boutique(); boutique.setSite(site); boutique.setUrlLogo(CmsProperties.URL_FLUX_BOUTIQUE+fluxBoutique.getLogo()); boutique.setUrlBoutique(CmsProperties.URL_FLUX_BOUTIQUE+fluxBoutique.getUrl()); boutique.setNom(fluxBoutique.getNom()); boutique.setSelected(false); boutique.setIdWebSC(fluxBoutique.getId()); boutique.setDateModification(new Date()); boutiqueDao.persist(boutique); } else { boutique.setSite(site); boutique.setUrlLogo(CmsProperties.URL_FLUX_BOUTIQUE+fluxBoutique.getLogo()); boutique.setUrlBoutique(CmsProperties.URL_FLUX_BOUTIQUE+fluxBoutique.getUrl()); boutique.setNom(fluxBoutique.getNom()); //boutique.setSelected(false); boutique.setIdWebSC(fluxBoutique.getId()); boutique.setDateModification(new Date()); boutiqueDao.merge(boutique); } มีบรรทัดแสดงความคิดเห็นที่นี่ แต่ผมคิดว่ามันทำให้รหัสชัดเจนโดยการทำให้เห็นได้ชัดว่าสิ่งที่แตกต่างระหว่างและif elseความแตกต่างนั้นชัดเจนยิ่งขึ้นด้วยการเน้นสี การใส่ความคิดเห็นโค้ดเช่นนี้เป็นความคิดที่ดีได้หรือไม่

6
แนวโน้มของสาขา“ พัฒนา” กำลังจะหายไป
ฉันสังเกตเห็นบางสิ่งเมื่อเร็ว ๆ นี้ดูที่บางโครงการยอดนิยมใน GitHub ว่าไม่มีdevelopสาขา และในความเป็นจริงแล้วคู่มือGitHub Flowไม่ได้พูดถึงเช่นกัน จากความเข้าใจของฉันmasterควรจะมีเสถียรภาพโดยสิ้นเชิงและสะท้อนให้เห็นถึงการผลิต หากนักพัฒนากำลังทำงานในสาขาฟีเจอร์จากนั้นทำการรวมเข้าด้วยกันmasterเมื่อเสร็จแล้วนั่นหมายความว่าจะมีช่วงเวลาหนึ่งที่ฟีเจอร์ / การแก้ไขจะถูกผสานเข้ากับmasterและmasterสาขานั้นใหม่กว่าการผลิตจริง จะเป็นการดีกว่าไหมถ้าให้ทีมสร้างคุณลักษณะ / แก้ไขสาขาจากdevelopนั้นผสานกลับเข้าไปในนั้นและเมื่อเวอร์ชันถัดไปพร้อมสำหรับการเปิดตัวโดยสมบูรณ์developจะถูกรวมเข้าด้วยกันmasterและสร้างแท็กหรือไม่ ลองคิดดูว่าผู้คนกำลังรวมตัวกันตรงmasterไหนและมีรายงานข้อผิดพลาดในการผลิตซึ่งยากต่อการแก้ไขเพราะmastercodebase สาขามีการเปลี่ยนแปลงอย่างมีนัยสำคัญ จากนั้น devs จะต้องแจ้งให้ผู้ใช้รอจนกว่าจะถึงรุ่นถัดไปเพื่อดูปัญหาที่แก้ไข แก้ไข: คำถามนี้แตกต่างจาก "ไปที่สาขาหรือไม่สาขา" มันกล่าวถึงผู้คนที่ไม่เคลื่อนไหวจากการใช้สาขาการพัฒนาและเหตุผลที่อยู่โดยรอบเนื่องจากมันได้รับการขนานนามว่าเป็นแนวปฏิบัติที่ดีที่สุดมาเป็นเวลานาน
82 git  github 

4
ฉันควรปลูกฝังทักษะอะไรบ้างเพื่อก้าวขึ้นเป็นผู้นำในการพัฒนา / ด้านเทคนิค [ปิด]
ตอนนี้ฉันเป็นโปรแกรมเมอร์มืออาชีพ ฉันต้องการที่จะขยายชุดทักษะของฉัน แต่ฉันยังต้องการที่จะทำให้อาชีพก้าวไปสู่การเป็นผู้นำการพัฒนาซึ่งเป็นส่วนหนึ่งของทีม ฉันรู้ว่าต้องมีอะไรมากมายให้เรียนรู้ (และนี่ไม่ใช่สิ่งที่จะเกิดขึ้นในทันที) แต่ฉันคิดว่าฉันฉลาดพอที่จะทำมันและฉันก็พร้อมที่จะท้าทาย ฉันแน่ใจว่าสมาชิกหลายคนในที่นี่อาจผ่านพ้นไปด้วยตัวเองและตอนนี้นักพัฒนาที่ประสบความสำเร็จก็เป็นผู้นำ น่าเสียดายที่แม้ว่าฉันจะรู้ว่าพื้นที่ส่วนบุคคลบางอย่างที่ฉันต้องการปรับปรุง (ความรู้เชิงลึกความกว้างของความรู้ชุดทักษะ ฯลฯ ) ฉันไม่แน่ใจว่าฉันจะเริ่มต้นสิ่งนี้ได้อย่างไร ในฐานะโปรแกรมเมอร์ตอนนี้ฉันควรทำขั้นตอนใดบ้างเพื่อพาฉันไปสู่เป้าหมายนี้? ฉันควรจัดลำดับความสำคัญอะไร

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

13
วัตถุใน OOP จำเป็นต้องแสดงถึงเอนทิตีหรือไม่?
วัตถุต้องแสดงถึงนิติบุคคลหรือไม่ โดยนิติบุคคลที่ผมหมายถึงสิ่งที่ชอบProduct, Motorเป็นParkingLotฯลฯ ทางกายภาพหรือแม้กระทั่งวัตถุแนวคิดที่ชัดเจนไม่ใช่ทางกายภาพ - บางสิ่งบางอย่างที่กำหนดไว้อย่างดีกับข้อมูลหลักบางอย่างชัดเจนที่อยู่ในวัตถุและบางฟังก์ชั่น / วิธีการ ที่ทำงานอย่างชัดเจนกับข้อมูลหลัก ตัวอย่างเช่นฉันสามารถมีวัตถุของ a Demon, นิติบุคคลในตัวเองหนึ่งในจินตนาการและอาจไม่ใช่ทางกายภาพ แต่ยังคงเป็นนิติบุคคล วัตถุสามารถเป็นเพียงชุดของวิธีการชุดของขั้นตอนทั่วไปที่เชื่อมโยงกับเป้าหมายทั่วไปได้หรือไม่ ตัวอย่าง: สามารถเรียกคลาสได้MotorOperationsหรือMotorActionsในกรณีที่ไม่มีเอนทิตี แต่วิธีการภายในคลาสสามารถทำสิ่งต่าง ๆ ได้ getMotorDataFromHTMLForm () getMotorManufacturers () selectMotorFromUserRequirements ($ ต้องการ) canMotorCanHandleOperatingConditions ($ เงื่อนไข) computePowerConsumptionForMotor ($ ID) โดยทั่วไปคลาสจะถูกกำหนดให้เป็นศูนย์กลางข้อมูลของการดำเนินการกับออบเจ็กต์ + กับข้อมูล ดังนั้นสำหรับ a Motorอาจมีตัวแปรยนต์บางอย่างที่เกี่ยวข้องกับข้อมูลจำเพาะของมอเตอร์และอาจมีการดำเนินการที่รวมข้อมูลเหล่านั้นเพื่อสร้างบางสิ่งบางอย่าง ในกรณีของฉันมันเหมือนกับว่าฉันมีคลาสที่มีการดำเนินงานเกี่ยวกับ data + data ที่ส่งผ่านคลาสไม่มี data centric สำหรับ "Motor Operations" นอกเหนือจากข้อมูลชั่วคราวที่ส่งผ่านคลาส …

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

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

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