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

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

5
HATEOAS เสนออะไรให้ค้นพบและแยกส่วนนอกเหนือจากความสามารถในการเปลี่ยนโครงสร้าง URL ของคุณอย่างอิสระมากขึ้นหรือน้อยลง
เมื่อเร็ว ๆ นี้ฉันได้อ่านเกี่ยวกับ Hypermedia ว่าเป็น Engine of Application State (HATEOAS) ซึ่งเป็นข้อ จำกัด ที่อ้างว่าทำให้ API ของเว็บ "สงบ" อย่างแท้จริง โดยทั่วไปแล้วจะรวมถึงลิงก์ที่มีการตอบสนองต่อการเปลี่ยนแปลงที่เป็นไปได้ทั้งหมดที่คุณสามารถทำได้จากสถานะปัจจุบัน ให้ฉันอธิบายสิ่งที่ HATEOAS ตั้งอยู่บนความเข้าใจของฉัน - และโปรดแก้ไขให้ถูกต้องหากฉันพลาดอะไรไป / GET: { "_links": { "child": [ { "href": "http://myapi.com/articles", "title": "articles" } ] } } /articles?contains=HATEOAS GET: { "_items": [ { "uri": "http://myapi.com/articles/0", "title": "Why Should …
61 rest  http  hateoas 

9
คุณจะดีบักโดยไม่มี IDE ได้อย่างไร [ปิด]
ทุกครั้งที่ฉันมองหา IDE (ปัจจุบันฉันกำลังใช้งาน Go) ฉันจะพบกระทู้ที่เต็มไปด้วยผู้คนที่แนะนำ Vi, Emacs, Notepad ++ เป็นต้น ฉันไม่เคยทำการพัฒนาใด ๆ นอกเหนือจาก IDE; ฉันคิดว่าฉันใจแตก คุณจะดีบักโดยไม่มี IDE ได้อย่างไร คุณ จำกัด การเข้าสู่ระบบหรือไม่?
61 ide  debugging 

6
เหตุใด C # จึงสร้างด้วยคำหลัก“ ใหม่” และ“ เสมือน + แทนที่” ซึ่งไม่เหมือนกับ Java
ใน Java ไม่มีvirtual, new, overrideคำหลักสำหรับความหมายวิธีการ ดังนั้นการทำงานของวิธีจึงง่ายต่อการเข้าใจ สาเหตุถ้าDerivedClassขยายBaseClassและมีเมธอดที่มีชื่อเดียวกันและลายเซ็นเดียวกันของBaseClass การแทนที่จะเกิดขึ้นที่ polymorphism แบบรันไทม์ (จัดเตรียมเมธอดไม่ใช่static) BaseClass bcdc = new DerivedClass(); bcdc.doSomething() // will invoke DerivedClass's doSomething method. ตอนนี้มาถึง C # จะมีความสับสนมากและยากที่จะเข้าใจวิธีการnewหรือvirtual+deriveหรือใหม่ + เสมือนแทนที่คือการทำงาน ฉันไม่สามารถเข้าใจว่าทำไมในโลกนี้ฉันจะเพิ่มวิธีการในDerivedClassชื่อและลายเซ็นเดียวกันกับBaseClassและกำหนดพฤติกรรมใหม่ แต่ที่ polymorphism เวลาทำงานBaseClassวิธีการจะถูกเรียก! (ซึ่งไม่ใช่การเอาชนะ แต่ควรมีเหตุผล) ในกรณีที่virtual + overrideแม้ว่าการใช้งานเชิงตรรกะที่ถูกต้อง แต่โปรแกรมเมอร์ต้องคิดว่าวิธีการที่เขาควรให้สิทธิ์แก่ผู้ใช้ในการแทนที่ในเวลาที่เข้ารหัส ซึ่งมีข้อดีบางอย่าง(อย่าไปที่นั่นตอนนี้) เหตุใดใน C # จึงมีพื้นที่เหลือเฟือสำหรับการใช้เหตุผลและความสับสน ดังนั้นฉันจึงอาจ reframe คำถามของฉันเป็นที่บริบทของโลกแห่งความจริงฉันควรคิดว่าการใช้งานvirtual + overrideแทนnewและยังใช้newแทนvirtual + …

7
ฉันเป็น. 1x โปรแกรมเมอร์ที่ บริษัท ของฉัน ฉันจะสนับสนุนได้ดีที่สุดได้อย่างไร [ปิด]
ฉันทำงานที่เริ่มต้นใหม่ห้าคน เรามี Ph. D ในการเรียนรู้ของเครื่องจักรอดีตสมาชิกของทีมแกนหลัก RSpec และคนที่รวบรวม Git binary สำหรับ OS X นั่นเป็นเพียงพนักงาน ผู้ก่อตั้งมีปริญญาเอกและเป็น CTO สำหรับ บริษัท ที่มีมูลค่าหลายพันล้านดอลล่าร์ก่อนที่จะเริ่มการเริ่มต้น (ประสบความสำเร็จ) และได้ออกจาก บริษัท เพื่อเริ่มต้น บริษัท นี้ นอกจากนี้เรายังอาจหาผู้ชายที่มีปริญญาเอกทางคณิตศาสตร์ Aaaaaaaa และจากนั้นก็มีฉันฝึกงานวิทยาลัยกลางคัน ฉันคิดว่าฉันฉลาดและฉันอ่านไม่หยุดเลย แต่ประสบการณ์ความชำนาญและความรู้ระหว่างฉันกับเพื่อนร่วมงานของฉันนั้นช่างน่าทึ่ง ดังนั้นใส่ตัวเองในรองเท้าของคุณ: คุณมีเด็กฝึกงานที่สดใสที่มีจำนวนมากที่จะเรียนรู้ แต่อย่างน้อยก็มีพลัง อะไรจะน่ารำคาญ คุณหวังว่าจะใช้ประโยชน์อะไรจากเขาได้ที่นี่และตอนนี้? จะเกิดอะไรขึ้นถ้ามันเกิดขึ้น?

14
การห้ามหรือควบคุม“ ซ่อนอยู่…” ใครควรเขียนและบำรุงรักษาแอปพลิเคชันซอฟต์แวร์แบบเฉพาะกิจ?
บริษัท ใหญ่มักมีปัญหาซึ่งเป็นไปไม่ได้ที่จะเขียนโปรแกรมทั้งหมดที่พนักงานต้องการ (เพื่อประหยัดเวลาและเพิ่มประสิทธิภาพกระบวนการ) เนื่องจากพนักงานและเงินขาด จากนั้นโปรแกรมที่ถูกซ่อนจะถูกสร้างขึ้นโดยบางคนที่มีประสบการณ์การเข้ารหัส (อย่างน้อยบางส่วน) (หรือโดยนักศึกษา / ฝึกงานราคาถูก ... ) ในบางสถานการณ์แอปพลิเคชันเหล่านี้จะเพิ่มความสำคัญและกระจายจากผู้ใช้รายหนึ่งไปยังแผนกทั้งหมด ถ้าอย่างนั้นใครจะเป็นผู้ดูแลแอพพลิเคชั่นเพิ่มฟีเจอร์ใหม่ ... ? และแอพนี้มีความสำคัญ มันเป็นสิ่งจำเป็น แต่ผู้ฝึกงานได้ลาออกจาก บริษัท ไม่มีใครรู้ว่ามันทำงานอย่างไร คุณมีแหล่งที่มาจำนวนมากและเอกสารบางประเภทเท่านั้น มันสมเหตุสมผลหรือไม่ที่จะลองและควบคุมหรือห้ามการพัฒนาแอปพลิเคชันที่ทำเฉพาะกิจนอกแผนกไอที (ยกเว้นสิ่งเล็ก ๆ น้อย ๆ เช่นมาโคร Excel)

12
MapReduce แก้ปัญหาอะไรได้บ้าง
ฉันได้อ่านเกี่ยวกับ MapReduce มาระยะหนึ่งแล้ว แต่สิ่งที่ฉันไม่เข้าใจคือคนที่ตัดสินใจใช้ MapReduce (หรือไม่ใช้) ฉันหมายถึงรูปแบบของปัญหาที่บ่งบอกว่าสามารถใช้ MapReduce ได้

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

8
หลีกเลี่ยง“ คนฉลาด” ในโครงการของทีม
มีการกระทำที่ไม่ดีเกิดขึ้นมากมายในช่วงเริ่มต้นของโครงการและฉันจำพวกเขาและต่อสู้กับพวกเขาทั้งหมด เนื่องจากฉันไม่ได้เลือกและเลือกการต่อสู้ของฉันตอนนี้หัวหน้าของฉันถือว่าอะไรก็ตามที่ออกมาจากปากของฉันคือการตอบสนองที่ซับซ้อนและใช้เวลาส่วนใหญ่ในการป้องกันตัวเองแทนที่จะมองหาผลประโยชน์ที่ดีที่สุดของโครงการ ฉันจะผลักดันทีมในทิศทางที่ถูกต้องได้อย่างไรโดยไม่ต้องรอสี่เดือนเพื่อให้ทุกคนได้รับฉันทามติที่ฉันพยายามทำมาตลอดหรือทำให้ชื่อเสียงของฉันเป็นเรื่องยากสำหรับทุกคน
61 teamwork 

6
นี่เป็นวิธีที่ไร้สาระในการสร้างโครงสร้าง DB หรือไม่หรือฉันขาดอะไรไปเลย?
ฉันทำงานกับฐานข้อมูลเชิงสัมพันธ์และคิดว่าฉันเข้าใจแนวคิดพื้นฐานของการออกแบบสคีมาที่ดีพอสมควร ฉันเพิ่งได้รับมอบหมายให้ทำโครงการที่ DB ออกแบบโดยที่ปรึกษาที่ได้รับค่าตอบแทนสูง โปรดแจ้งให้เราทราบว่าลำไส้ของฉัน - "WTF ??!?" - ได้รับการรับประกันหรือเป็นชายผู้นี้ที่เป็นอัจฉริยะที่เขาใช้งานนอกโลกของฉันหรือไม่? DB ในคำถามคือแอปที่ใช้ในการป้อนคำขอจากพนักงาน เพียงดูที่ส่วนเล็ก ๆ ของมันคุณมีข้อมูลเกี่ยวกับผู้ใช้และข้อมูลเกี่ยวกับการร้องขอ ฉันจะออกแบบเช่นนี้เพื่อ: ตารางผู้ใช้: UserID (primary Key, indexed, no dupes) FirstName LastName Department ขอโต๊ะ RequestID (primary Key, indexed, no dupes) <...> various data fields containing request details UserID -- foreign key associated with User table ง่ายใช่มั้ย ที่ปรึกษาออกแบบแบบนี้ …
61 database  sql  schema 

5
ฟีเจอร์ใดจะถือว่าเป็น“ พลเมืองชั้นหนึ่ง” ในภาษา / แพลตฟอร์มการเขียนโปรแกรม
ฉันเห็นข้อความหลายครั้งเช่น - โปรดทำให้คุณลักษณะนี้เป็นพลเมืองชั้นหนึ่งด้วยภาษา / แพลตฟอร์ม " ตัวอย่างเช่นมีการพูดเกี่ยวกับ enums ใน C # /. net ดังนั้นคุณสมบัตินี้จึงถูกพิจารณาว่าเป็น "พลเมืองชั้นหนึ่ง" ในภาษาโปรแกรม / แพลตฟอร์ม?

11
รับเงินสดพิเศษในฐานะโปรแกรมเมอร์ [ปิด]
ฉันทำงานเป็นโปรแกรมเมอร์เต็มเวลาและมีงานที่ได้รับค่าตอบแทนค่อนข้างดีสำหรับประเทศที่ฉันอาศัยอยู่ แต่ฉันสามารถทำเงินพิเศษเล็กน้อยได้ในตอนนี้ ฉันสนใจที่จะทำโครงการเล็ก ๆ ในเวลาว่าง ฉันไม่ได้สนใจที่จะเขียนมัลแวร์หรือรับแบบแผนที่รวดเร็ว ฉันได้ตรวจสอบบางเว็บไซต์ฟรีแลนซ์โปรแกรมเมอร์ไซต์ แต่โครงการทั้งหมดดูจะจ่ายมากหรือคนที่ต้องการสร้างมัลแวร์ (หรือทั้งสอง) มีเว็บไซต์ฟรีแลนซ์ที่ดีที่ฉันอาจพลาดหรือไม่? มีวิธีอื่นในการค้นหาโครงการอิสระขนาดเล็กหรือไม่
61 project 

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

18
ทำไมคนยังพูดว่า Java ช้า? [ปิด]
เป็นเวลานานใน SO และในที่อื่น ๆ Java มีชื่อเสียงว่าเป็นคนช้า จากเรื่องตลกไปจนถึงความคิดเห็นในคำถามและคำตอบผู้คนยังคงเชื่อว่า Java นั้นช้าตามประสบการณ์ในยุค 90 เพียงอย่างเดียว นี่คือปัญหาของฉัน: เราได้หักล้าง (ส่วนใหญ่) สาเหตุที่ผู้คนเชื่อว่าชวาช้า นอกเหนือจากสิ่งเล็ก ๆ แล้ว Java นั้นค่อนข้างเร็ว ดังนั้นทำไมคนยังปฏิเสธที่จะเชื่อว่า Java เร็วในขณะนี้ เป็นส่วนหนึ่งของความคิดของพวกเขาหรือไม่ว่าอะไรที่ไม่ใช่ C / C ++ นั้นช้า? เป็นเพราะคนไม่ได้ตรวจสอบเมื่อเวลาผ่านไป? เป็นเพราะคนมีความลำเอียงใช่ไหม
61 java  performance 

24
ทำไมโปรแกรมเมอร์ใช้หรือแนะนำ Mac OS X [ปิด]
ฉันทำงานทั้งบน Mac และ Windows มาระยะหนึ่งแล้ว อย่างไรก็ตามฉันยังคงมีเวลายากที่จะเข้าใจว่าเหตุใดโปรแกรมเมอร์จึงเลือก Mac OS X บน Windows และ Linux อย่างกระตือรือร้น ฉันรู้ว่ามีโปรแกรมเมอร์ที่ชอบ Windows และ Linux แต่ฉันขอให้โปรแกรมเมอร์ที่ใช้ Mac OS X และไม่มีอะไรอื่นเพราะพวกเขาคิดว่า Mac OS X เหมาะสมที่สุดสำหรับโปรแกรมเมอร์ บางคนอาจแย้งว่า Mac OS X นั้นมี UI ที่สวยงามและมีระบบปฏิบัติการที่ดี แต่ Linux ก็สามารถทำได้ ถึงแม้ว่า Windows จะไม่ได้เป็น nix แต่คุณสามารถพัฒนาบนแพลตฟอร์มหรือภาษาใด ๆ ยกเว้น Cocoa / Objective-C เป็นแอพพลิเคชั่นที่มีเฉพาะใน Mac OS …

5
โดเมนแบบแบ่งใช้ระหว่างไมโครไซต์ต่างๆ
ลองนึกภาพสถานการณ์ของ microservices สองแบบ หนึ่งในการจัดการรับรองความถูกต้องภายในบริการอื่น ๆ จะดูแลการจัดการผู้ใช้ พวกเขาทั้งสองมีแนวคิดของผู้ใช้และจะพูดคุยเกี่ยวกับผู้ใช้ผ่านการโทรหากัน รูปแบบโดเมนของ "ผู้ใช้" จะอยู่ที่ไหน พวกเขาทั้งสองจะมีการแสดงที่แตกต่างกันของสิ่งที่ผู้ใช้อยู่ในระดับของฐานข้อมูลหรือไม่ เมื่อเรามี UserDTO ที่จะใช้ในการโทร API พวกเขาทั้งสองจะมีหนึ่งอันสำหรับ API ที่เกี่ยวข้องหรือไม่ อะไรคือทางออกที่ยอมรับกันโดยทั่วไปสำหรับปัญหาสถาปัตยกรรมประเภทนี้?

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