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

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

2
แหล่งข้อมูลที่ดีที่สุดสำหรับการเรียนรู้ Play! Framework [ปิด]
ปิด. คำถามนี้เป็นคำถามปิดหัวข้อ ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้เป็นหัวข้อสำหรับ Software Engineering Stack Exchange ปิดให้บริการใน6 ปีที่ผ่านมา ก่อนหน้านี้ฉันได้พูดถึงความเป็นไปได้ในการย้ายไปเริ่มต้นที่กำลังใช้งานจาวาโดยเฉพาะ Play! กรอบ; ฉันจะไปให้ได้! ฉันเคยเป็น. NET มานานแล้วและยังไม่เคยเข้าร่วมในเกม Java เลยยกเว้นในบางครั้งที่ Android กำลังมีปัญหาหรือแก้ไขด้วย Scala เล็กน้อย ฉันดูที่ Play แล้ว! กรอบก่อน แต่เฉพาะในระดับคร่าวๆ ฉันคิดว่าฉันจะดีกับ Java เป็นภาษาที่ผมได้รับการให้คำแนะนำที่ดีก่อนที่จะเรียนรู้เกี่ยวกับวัสดุ คำถามของฉันอยู่นอกเหนือจากไซต์ที่ยอดเยี่ยมสำหรับการเล่น! กรอบงานฉันไม่พบสิ่งอื่นนอกเหนือจากบล็อกอื่นอีกสองสามบล็อก ไม่มีใครรู้แหล่งข้อมูลที่ดีอื่น ๆ สำหรับ Play! กรอบเหมือนหนังสือไหม การค้นหาอเมซอนปรากฏผลลัพธ์เป็นศูนย์ ฉันรู้ว่ามี eBook ลอยอยู่รอบ ๆ ที่นั่น แต่ดูเหมือนว่าจะล้าสมัยไปแล้วในตอนนี้ อย่างไรก็ตามขอขอบคุณสำหรับข้อมูลของคุณ

3
Oracle เป็นเจ้าของ Java แต่ Google ใช้ Java อยู่ใช่ไหม
ตกลงฉันไม่เข้าใจ "Oracle เป็นเจ้าของ Java" หมายถึงอะไร Google ใช้จาวาใน Google App Engine อย่างแน่นอนนั่นหมายความว่า Google ต้องจ่ายเงินให้กับออราเคิลหรือเปล่า?

3
วิธีที่ดีที่สุดในการทำ failover ออฟไลน์ของไคลเอ็นต์ที่ใช้เดสก์ท็อปที่ใช้บริการเว็บคืออะไร
ฉันมีสามโครงการที่เข้ามาซึ่งมีปัญหาร่วมกัน: พวกเขาจำเป็นต้องมีเหตุผลในระบบเว็บและพวกเขาต้องการแอปพลิเคชันท้องถิ่น (เช่นจุดขาย) ที่สื่อสารกับระบบดังกล่าวผ่านบริการเว็บสงบ โซลูชันของฉัน ผมแก้ปัญหาการจัดการที่จะเกิดขึ้นกับการที่จะใช้ในโปรแกรมคอมพิวเตอร์เข้าคิวข้อความที่จะดำเนินการจัดเก็บในขณะที่การบริการที่เป็นแบบออฟไลน์อย่างแม่นยำมากขึ้นการจัดคิวข้อความไม่ตรงกัน อย่างไรก็ตามนั่นเป็นส่วนที่ง่าย (หากเป็นวิธีที่ดีที่สุด) ฉันยังเกี่ยวข้องกับการซิงค์ข้อมูลและการแก้ไขข้อขัดแย้ง ระบบหลักต้องใช้เว็บเนื่องจากแอปพลิเคชันเว็บเป็นสิ่งจำเป็นสำหรับรายงานและการตรวจสอบโดยผู้มีส่วนได้ส่วนเสียและบริการเว็บจะจัดการคำขอสำหรับสถานประกอบการหลายแห่ง เดสก์ท็อปไคลเอ็นต์ (บางกว่า) จะถูกนำไปใช้กับ Java (โดยเฉพาะ Netbeans) และระบบเว็บที่มี Symfony2 โครงการสองโครงการต้องการการรวมฮาร์ดแวร์สำหรับลูกค้าดังนั้นการสร้างแอปพลิเคชันเดสก์ท็อปด้วยเทคโนโลยีเว็บ (เช่น Appcelerator Titanium) อาจเป็นปัญหาใหญ่ คำถามของฉัน อะไรคือโซลูชันที่ดีกว่าที่ปรับขนาดซึ่งหมายถึงประสิทธิภาพสูงสุดด้วยความพยายามขั้นต่ำ (และไม่มีค่าใช้จ่ายเพิ่มเติมเช่นการซื้อเซิร์ฟเวอร์สำรองสำหรับการใช้งานในพื้นที่) มีใครบ้างที่จัดการเรื่องนี้มาก่อน คุณแก้ปัญหาอย่างไร คุณสามารถแบ่งปันบทเรียนอะไรได้บ้าง คุณจัดการกับการซิงโครไนซ์อย่างไร? แก้ไข: เพิ่มส่วนที่ขาดหายไปในคำถามของฉันในจุด # 3

2
คุณจะทำให้คลัสเตอร์ทำงานเพียงครั้งเดียวได้อย่างไร
หากคุณมีงานที่คุณต้องการเรียกใช้เพียงครั้งเดียวในคลัสเตอร์ของเซิร์ฟเวอร์ในช่วงเวลาปกติสิ่งที่จะเป็นวิธีที่ดีที่สุดในการบรรลุเป้าหมายนี้ นิยามของคลัสเตอร์ในกรณีนี้คือเซิร์ฟเวอร์ที่เหมือนกัน 2 ตัวขึ้นไปที่มีเซสชันแบบกระจายซึ่งนั่งอยู่ด้านหลังตัวโหลดบาลานซ์ ใช้กรณี:คุณมีงานที่มีราคาแพงในการทำงานที่ควรรันเพียงครั้งเดียวต่อหนึ่งชั่วโมง X งานนี้สามารถทำซ้ำได้หลายระเบียนและอัพเดทสถานะของพวกเขา สถานการณ์กรณีที่เลวร้ายที่สุดคือการให้งานรันสองครั้งทำให้ข้อมูลของคุณไม่ถูกต้อง สถานการณ์กรณีที่ดีที่สุดคืองานใช้ทรัพยากรในเซิร์ฟเวอร์ของคุณทั้งหมด สรุปความต้องการ: งานจะต้องยังคงทำงานแม้ว่าหนึ่งในโหนดจะไม่ทำงาน งานต้องถูกเรียกใช้หนึ่งครั้งต่อหนึ่งตารางเวลาเท่านั้น หากมีการกำหนดเวลางานหลายงานในเวลาเดียวกันหรือในเวลาที่ทับซ้อนกันจำนวนงานที่รันจะถูกกระจายระหว่างเซิร์ฟเวอร์อย่างเท่าเทียมกัน เครื่องจะต้องมีรหัสฐานเดียวกันและจะทำข้อมูลให้ตรงกันผ่าน NTP การกำหนดค่าอาจแตกต่างกันระหว่างโหนดและโหนดโดยตัวแปรสภาพแวดล้อม งานต้องเริ่มตรงเวลาหรือภายในช่วงเวลาที่กำหนดของเวลาที่กำหนด (เช่นพูด 5 นาที) การแก้ปัญหาที่เป็นไปได้ ตั้งค่าหนึ่งโหนดเป็นโหนดหลักซึ่งจะไม่ทำงานเนื่องจากมีการละเมิด 1 ด้านบน สร้างคำร้องขอให้ load balancer สร้างยอดคงเหลือเพื่อเริ่มต้นงาน น่าเสียดายที่นี่มีผลข้างเคียงที่ถ้าคุณมีงานหลายงานที่ทำงานในเวลาเดียวกันพวกเขาทั้งหมดอาจถูกเรียกใช้โดยเครื่องเดียวกัน สิ่งนี้จะต้องทำงานใน Java ในภาชนะ servlet อย่างไรก็ตามมันไม่ได้เข้ารหัสงานที่ฉันกำลังมองหา แน่นอนว่านี่เป็นปัญหาที่แก้ไขแล้วด้วยทางออกที่ดีที่สุดที่รู้จัก คำถามที่เกี่ยวข้อง /programming/5949038/schedule-job-executes-twice-on-cluster สิ่งนี้ไม่ซ้ำกันเนื่องจากโซลูชันไม่เพียงพอตามข้อกำหนด 5 ข้อที่ระบุด้านบน วิธีแก้ปัญหาที่ upvote มากที่สุดนั้นเกิดจากปัญหาการแข่งขันและวิธีที่สองนั้นเป็นการละเมิดข้อกำหนด 3

8
ฉันสร้างโปรแกรมตามโครงการ LGPL และฉันไม่ได้รับอนุญาตให้เผยแพร่ซอร์สโค้ด
ฉันคิดว่า LGPL เป็นใบอนุญาตที่อนุญาตเช่นเดียวกับ MIT, BSD หรือ Apache แต่วันนี้ฉันอ่านว่าอนุญาตให้เชื่อมโยงไปยัง LGPL (ไลบรารี่และอื่น ๆ ) ได้จากโค้ดแหล่งที่มาปิดเท่านั้น - นอกเหนือจากนั้นคือลิขิต - ดังนั้นฉันต้องเผยแพร่โค้ดที่ใช้โปรแกรม LGPL ฉันสร้างโปรแกรมสำหรับนายจ้างที่ใช้โปรแกรม LGPL แต่มีการปรับเปลี่ยนที่สำคัญ แน่นอนว่าฉันไม่ได้รับอนุญาตให้นำซอร์สโค้ดที่ปรับเปลี่ยนนั้นออกไป ในเวลาเดียวกันฉันต้องถ้าฉันแจกจ่ายมัน (ใช่ไหม) ดังนั้นฉันสงสัยว่าจะมีวิธีแก้ปัญหานี้หรือไม่ดังนั้นฉันสามารถเก็บแหล่งข้อมูลปิดนี้ได้ (ฉันหวังว่าฉันจะสามารถเผยแพร่แหล่งที่มา) - คำแนะนำใด ๆ ความคิดของฉัน: ฉันสามารถใส่ฟังก์ชั่นส่วนใหญ่ของแอพ LGPL ต้นฉบับลงในไลบรารีภายนอกเขียนหลักปฏิบัติการจากศูนย์ แต่อ้างอิงกลับไปที่ไลบรารีสำหรับฟังก์ชั่นทั้งหมดที่ฉันยังไม่ได้แก้ไข? ปัจจุบันทุกอย่างอยู่ในไฟล์. jar (เป็น Java / Swing) หากคุณคิดว่าความคิดของฉันมีความถูกต้องตามกฎหมาย / เป็นไปได้ทางเทคนิค - จะพยายามแยกสิ่งที่ฉันเขียนออกไปมากน้อยแค่ไหน ฉันไม่เข้าใจจาวามากที่สุด

7
ใครช่วยแนะนำโครงการสำหรับฉันเขียนเพื่อช่วยให้ฉันเข้าใจเธรด
ตอนนี้ฉันเป็นนักพัฒนา C # ด้วยความเข้าใจที่สั่นคลอนของการทำเกลียว ลิงก์ทั้งสองนี้ได้รับการแนะนำในโพสต์อื่น ๆ : http://www.yoda.arachsys.com/csharp/threads/ http://www.albahari.com/threading/ ฉันควรกลับไปสู่พื้นฐานและอาจดูตำราวิทยาการคอมพิวเตอร์บางเรื่องในเรื่องนี้หรือไม่? ฉันรู้สึกว่าถ้าฉันกระโดดเข้ามาและใช้ห้องสมุด c # ฉันจะไม่มีพื้นฐานความรู้ที่แข็งแกร่งในการสร้าง ฉันคิดว่าฉันต้องเรียนรู้เรื่องนี้ตั้งแต่เริ่มต้นเหมือนนักเรียน com sci จากนั้นใช้ห้องสมุด C # ทุกคนสามารถแนะนำวิธีการเรียนรู้การทำเกลียวบางทีอาจจะมีลิงค์และหรือความคิดโครงงานบ้าง ขอบคุณล่วงหน้า! แก้ไขขอบคุณสำหรับคำตอบทั้งหมด บางคนกล่าวว่าหนังสืออาจเป็นความคิดที่ดีใคร ๆ ก็สามารถแนะนำได้บ้าง ฉันชอบภาษาที่ไม่เชื่อเรื่องพระเจ้า ไม่มีใครรู้ว่าสิ่งที่ชั้นนี้จะครอบคลุมในการศึกษาระดับปริญญาวิทยาศาสตร์คอมพิวเตอร์? ฉันพยายาม google เพื่อรับโน้ตและการบ้านออนไลน์ฟรี

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

5
สถานที่ที่ดีที่สุดในการเรียนรู้แบบจำลองวัตถุแบบวัตถุ [ปิด]
ปิด. คำถามนี้เป็นคำถามปิดหัวข้อ ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้เป็นหัวข้อสำหรับ Software Engineering Stack Exchange ปิดให้บริการใน6 ปีที่ผ่านมา ฉันต้องเรียนรู้ COM สำหรับโครงการปัจจุบันของฉัน ฉันเป็น noob และฉันไม่สามารถหาจุดเริ่มต้นที่ดีสำหรับ COM ได้ ฉันกำลังดูใน MSDN และ googling ... ฉันพบบทความที่น่าสนใจใน codeproject.com แต่ฉันไม่พอใจ ทำไมเราถึงใช้ COM ทำไมมันมีอยู่? มีสถานที่ใดบ้าง? ..... และอื่น ๆ .. ดังนั้นคุณจะโปรดบอกฉันฉันจะหาคำตอบสำหรับคำถามเหล่านี้ได้จากที่ไหน
13 microsoft 

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

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


8
ความซับซ้อนของจุดไม่กลับมา คุณเรียกว่าอะไร
ในฐานะนักพัฒนาซอฟต์แวร์หนึ่งในภารกิจหลักของฉันคือรักษาความซับซ้อนภายใต้การควบคุม อย่างไรก็ตามในบางโครงการมีช่วงเวลาที่ระดับความซับซ้อนเพิ่มขึ้นสูงจนถึงจุด "ไม่กลับ" ที่ผ่านมาช่วงเวลานี้คุณไม่สามารถกลับโครงการไปสู่ระดับความซับซ้อนที่ยอมรับได้ในเวลาน้อยกว่าที่คุณจะต้องเขียนใหม่ทุกอย่างตั้งแต่เริ่มต้น ช่วงเวลาที่เฉพาะเจาะจงนี้มีชื่อในภาษาโปรแกรมเมอร์หรือไม่ --edit-- ขออภัยถ้าฉันไม่ชัดเจน ฉันไม่คิดว่า "ช่วงเวลา" นี้มีชื่อเป็นทางการหรือเป็นตัวชี้วัดที่ร้ายแรง ฉันคิดเกี่ยวกับบางสิ่งบางอย่างในจิตวิญญาณของ"การ Ballmer สูงสุด" ใน xkcd

1
“ แบน” หมายถึงอะไร
ถ้าฉันมีต้นไม้ฉันจะ "แบน" โดยนัย รับรายการทั้งหมดในต้นไม้จากซ้ายไปขวา หากฉันมีรายการที่เชื่อมโยงจะ "แบน" โดยนัย รับรายการทั้งหมดเริ่มต้นด้วยรายการนี้ ตัวอย่างเช่นรายการที่เชื่อมโยงจะประกอบด้วยข้อยกเว้นที่รวมข้อยกเว้นภายใน มันจะยุติธรรมที่จะตั้งชื่อวิธีการในข้อยกเว้น "flattenInnerExceptions" ด้วยความคาดหวังว่ามันจะกลับลำดับของข้อยกเว้นข้อยกเว้นนอกสุดก่อนและข้อยกเว้นภายในสุด - ครั้งสุดท้าย?
13 naming 

6
ฉันจะกลายเป็นโปรแกรมเมอร์ที่เป็นอิสระและพึ่งพาตนเองได้มากขึ้นได้อย่างไร [ปิด]
ปิด. คำถามนี้เป็นคำถามปิดหัวข้อ ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้เป็นหัวข้อสำหรับ Software Engineering Stack Exchange ปิดให้บริการใน5 ปีที่ผ่านมา ปัจจัยที่ใหญ่ที่สุดเพียงอย่างเดียวในสิ่งที่ทำให้ฉันไม่อยากเป็นนักพัฒนาที่โดดเด่นคือการพึ่งพาผู้อื่น ฉันรู้สึกว่าฉันถามคำถามมากเกินไปเพราะฉันกลัวผลที่ตามมาจากการทำลายทุกอย่างและรั้งทุกคนไว้ ดังนั้นฉันจึงระแวดระวังมากเกินไปโดยการถามคำถามมากมายจนฉันได้รับคำตอบหลังจากการตั้งคำถามมากพอ ฉันจำได้ว่าไม่ดี แต่ฉันต้องการหยุด ส่วนหนึ่งมาว่ามีบางครั้งที่ฉันไม่รู้รหัส (เป็นสาขาที่ฉันไม่เคยทำงานหรือเป็นผลิตภัณฑ์ใหม่เอี่ยม) แต่ฉันต้องการพึ่งพาผู้อื่นน้อย เพื่อนำหน้าคำถามประเภทนี้ไม่ใช่คำถามเกี่ยวกับรูปแบบหรือภาษาทั่วไป: โดยปกติคำถามของฉันจะหมุนรอบวิธีที่เราทำรหัสที่ บริษัท ของเราและวิธีที่เรานำสิ่งต่าง ๆ มาใช้ในระบบนิเวศของเรา ฉันต้องการที่จะใช้สเป็คและหมุนกับพวกเขาโดยไม่ต้องรู้สึกเหมือนฉันต้องการความช่วยเหลือทุกขั้นตอน เป็นเรื่องปกติหรือไม่ คุณเคยผ่านเรื่องนี้และถ้าเป็นเช่นนั้นคุณได้รับผ่านมันได้อย่างไร

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

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