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

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

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

7
อะไรคือบทบาทของซิงเกิลตันคลาสนามธรรมและอินเตอร์เฟส
ฉันกำลังศึกษา OOP ใน C ++ และแม้ว่าฉันตระหนักถึงคำจำกัดความของแนวคิดทั้งสามนี้ฉันก็ไม่สามารถรู้ได้เลยว่าจะใช้เมื่อไหร่หรืออย่างไร ลองใช้คลาสนี้เป็นตัวอย่าง: class Person{ private: string name; int age; public: Person(string p1, int p2){this->name=p1; this->age=p2;} ~Person(){} void set_name (string parameter){this->name=parameter;} void set_age (int parameter){this->age=parameter;} string get_name (){return this->name;} int get_age (){return this->age;} }; 1. ซิงเกิล วิธีไม่ข้อ จำกัด ของการเรียนที่จะมีเพียงหนึ่งในการทำงานของวัตถุ? คุณสามารถออกแบบคลาสที่มีเพียง 2 อินสแตนซ์ได้หรือไม่ หรืออาจจะ 3? เมื่อใดที่แนะนำ / …

1
ฉันจะอยู่ในความสอดคล้องกับ GPL ได้อย่างไรเมื่อทำการขาย Github
ฉันเพิ่งแยกโครงการบน Github และทำการแก้ไขบางส่วนผลักพวกเขากลับไปที่ที่เก็บที่แยกแล้วและขอให้ผู้พัฒนาดั้งเดิมดึงการเปลี่ยนแปลง (ฉันรวบรวมนี้เป็นวิธีที่ต้องการของเอื้อบน Github.) โครงการที่ได้รับใบอนุญาตภายใต้GPLv3 ฉันเป็นผู้เขียนและเจ้าของลิขสิทธิ์ของการเปลี่ยนแปลงที่ฉันทำกับรหัส ฉันยังได้รับอนุญาตให้เผยแพร่รหัสที่แก้ไข (เช่นการรวมกันของรหัสดั้งเดิมและการเปลี่ยนแปลงของฉัน - ซึ่งฉันได้ทำโดยการผลักดันการเปลี่ยนแปลงในทางแยกของฉัน) ตราบใดที่ฉันปฏิบัติตามใบอนุญาตที่ผู้เขียนต้นฉบับตั้งขึ้น ตอนนี้ฉันได้พบกับข้อกำหนดต่อไปนี้ใน GPL งานจะต้องมีการแจ้งเตือนที่เด่นชัดโดยระบุว่าคุณได้แก้ไขและแจ้งวันที่ที่เกี่ยวข้อง ดูเหมือนว่าจำเป็นต้องใช้งานบางอย่างนอกเหนือจากการเขียนโค้ดจริงก่อนที่ฉันจะอนุญาตให้มีการเปลี่ยนแปลง Github งานนี้เกี่ยวข้องอะไร ฉันจะปฏิบัติตามข้อกำหนดข้างต้นได้อย่างไร (ฉันจะเพิ่มประกาศลิขสิทธิ์เพิ่มเติมลงในไฟล์ต้นฉบับที่มีการแก้ไขหรือไม่ฉันจะสร้างไฟล์ผู้มีส่วนร่วมและเพิ่มตัวเองลงในไฟล์หรือไม่หรือความจริงที่ว่าข้อผูกพันแสดงถึงความเป็นเจ้าของของฉันเพียงพอหรือไม่) มีข้อผิดพลาดเพิ่มเติมใด ๆ
13 licensing  gpl  github 

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

9
แสดงจำนวนผู้ใช้ที่ลงทะเบียนไปยังเว็บไซต์
ฉันกำลังสร้างเกมออนไลน์มากเช่นMafia Wars ฉันกำลังคิดที่จะแสดงจำนวนผู้ใช้ที่ลงทะเบียนในหน้าแรก แต่แล้วฉันก็คิดว่า: "จะเกิดอะไรขึ้นหากผู้ใช้ใหม่เห็นว่าจำนวนผู้ใช้ที่ลงทะเบียนทั้งหมดคือ5 ! : D นั่นน่าอายเกินไปสำหรับเกมที่กำลังเติบโตของฉัน จากนั้นความคิดอื่นมาโดย: "ทำไมฉันไม่แสดง500แทน!" ;) ไม่มีใครรู้ว่ามีผู้ใช้ 500 คนลงทะเบียนในเว็บไซต์ของฉันหรือไม่ถ้าพวกเขาเริ่มเล่นและโต้ตอบกับผู้เล่นคนอื่นจริง ๆ อย่างไรก็ตามฉันแค่รู้สึกว่านี่ไม่ใช่จริยธรรม จะเกิดอะไรขึ้นถ้าสิ่งนี้สร้างการประชาสัมพันธ์เชิงลบต่อเว็บไซต์ของฉัน ความคิดเห็นของคุณคืออะไรฉันควรปลอมหมายเลข? หรือฉันควรจะแสดงมันอย่างสุจริต? หรือฉันควรรอจนกว่าฉันจะมี 1,000 บัญชีจริงจากนั้นเริ่มแสดงหมายเลข? และที่สำคัญที่สุดคือกฎหมายนี้! : D

4
เพื่อนร่วมงานของฉันไม่เข้าใจสิ่งที่เขาทำงานด้วย จะทำอย่างไร? [ปิด]
ตามที่เป็นอยู่ในปัจจุบันคำถามนี้ไม่เหมาะสำหรับรูปแบบคำถาม & คำตอบของเรา เราคาดหวังคำตอบที่จะได้รับการสนับสนุนจากข้อเท็จจริงการอ้างอิงหรือความเชี่ยวชาญ แต่คำถามนี้มีแนวโน้มที่จะเรียกร้องให้มีการอภิปรายโต้แย้งโต้แย้งหรือการอภิปรายเพิ่มเติม หากคุณรู้สึกว่าคำถามนี้สามารถปรับปรุงและเปิดใหม่ได้โปรดไปที่ศูนย์ช่วยเหลือเพื่อขอคำแนะนำ ปิดให้บริการใน7 ปีที่ผ่านมา ฉันใช้เวลา 3 วันในการดีบักข้อบกพร่องที่คลุมเครือมากในห้องสมุดที่ทำโดยเพื่อนร่วมงานของฉันข้อผิดพลาดนี้เกิดขึ้นไม่บ่อยนัก หลังจากทั้งหมดฉันพบว่าข้อผิดพลาดนี้เกิดขึ้นเนื่องจากการเข้าถึงข้ามด้ายไปยังวัตถุโดยไม่ต้องล็อคใด ๆ อันที่จริงนี่ไม่ใช่ข้อผิดพลาดแรกของประเภทนี้มีข้อบกพร่องที่คล้ายกันมาก่อน เขาเพียงแค่ทำการทดสอบหน่วยของเขาและถ้ามีอะไรบางอย่างล้มเหลวก็ทำให้ล็อค และถ้าไม่มีอะไรผิดพลาดอืมรหัสของเขาก็สมบูรณ์แบบ ดูเหมือนว่าเขาไม่มีความคิดเกี่ยวกับความปลอดภัยในการทำเกลียว ฉันแน่ใจว่า 100% มีข้อบกพร่องที่คล้ายกันมากมายที่เพิ่งยังไม่โผล่ขึ้นมา ดูเหมือนว่า PM จะไม่เข้าใจสิ่งที่ทำเกลียวด้วย ปัญหาคือเขาทำงานใน บริษัท มากกว่าที่ฉันทำ อย่างไรก็ตามฉันไม่สามารถพูดได้ว่า "ผู้ชายคนนี้ไร้ความสามารถในพื้นที่นี้" เพราะสิ่งนี้จะแสดงให้คุณเห็นว่าเป็น "ผู้เล่นทีมที่แย่" ฯลฯ

3
วิธีหนึ่งใช้วิธีอื่นมากไปหรือไม่หรือทั้งสองวิธี“ โอเวอร์โหลด”
ถ้าฉันสร้างวิธีนี้ public void foo() จากนั้นฉันก็สร้างเวอร์ชันที่โอเวอร์โหลดเช่นนี้ public void foo( string bar ) เราบอกว่าฟังก์ชั่นที่สองโอเวอร์โหลดครั้งแรกหรือทั้งสองวิธีเท่ากันคือ "โอเวอร์โหลด" สิ่งนี้จะบอกเป็นนัย (ฉันคิดว่า) ว่ามีฟังก์ชั่นประเภทฐานที่ถูกโหลดมากเกินไปโดยฟังก์ชั่นอื่น (คล้ายกับมรดก แต่ไม่ได้จริงๆ) สมมติว่าวิธีหนึ่งสามารถ "โอเวอร์โหลดวิธีอื่น" ก็จะหมายถึงคำเช่น "โอเวอร์โหลด" และ "โอเวอร์โหลด" หากนั่นคือคำใด ๆ แต่นั่นก็ไม่ได้รู้สึกถูกต้องเลยโดยเฉพาะอย่างยิ่งเมื่อคุณมีภาระงานมากเกินไป ฉันมาถึงคำถามนี้เมื่อฉันต้องการเขียนกระบวนการสร้างวิธีโอเวอร์โหลดและฉันต้องการวิธีที่ถูกต้องที่สุดในการจดบันทึก ตัวอย่าง: ฉันบรรทุกเกินพิกัด foo ฉันกำลังมากไปfooด้วยfoo( string bar ) ฉันกำลังสร้างวิธีการโอเวอร์โหลด ฉันกำลังฟูมากเกินไป ดังนั้นใช่ฉันคิดแบบนี้ฉันไม่แน่ใจว่าจะทำอย่างไร มีคำอธิบายของฟังก์ชั่นการทำงานหนักมากเกินไปออนไลน์หลายร้อยหากไม่ใช่ แต่มีเพียงแวบแรกฉันไม่พบที่อยู่นี้

3
การตรวจสอบและการอนุญาตในสถาปัตยกรรมแบบเลเยอร์
ฉันรู้ว่าคุณกำลังคิด (หรืออาจจะตะโกน), "ไม่ใช่คำถามที่ถามอีกว่าการตรวจสอบเป็นของสถาปัตยกรรมชั้นหรือไม่?" ใช่แล้ว แต่หวังว่านี่จะเป็นเรื่องที่ต่างออกไปเล็กน้อย ฉันเชื่อมั่นว่าการตรวจสอบมีหลายรูปแบบตามบริบทและแตกต่างกันไปในแต่ละระดับของสถาปัตยกรรม นั่นเป็นพื้นฐานสำหรับการโพสต์ช่วยระบุประเภทของการตรวจสอบที่ควรดำเนินการในแต่ละชั้น นอกจากนี้คำถามที่มักเกิดขึ้นก็คือการตรวจสอบสิทธิ์ สถานการณ์ตัวอย่างมาจากแอปพลิเคชันสำหรับธุรกิจจัดเลี้ยง ในระหว่างวันผู้ขับขี่อาจเปลี่ยนเป็นเงินสดส่วนเกินที่พวกเขาสะสมไว้ในสำนักงานขณะนำรถบรรทุกจากที่หนึ่งไปยังอีกที่หนึ่ง แอปพลิเคชั่นอนุญาตให้ผู้ใช้บันทึก 'เงินสดลดลง' โดยการรวบรวม ID ของไดรเวอร์และจำนวนเงิน นี่คือรหัสโครงกระดูกบางส่วนเพื่อแสดงเลเยอร์ที่เกี่ยวข้อง: public class CashDropApi // This is in the Service Facade Layer { [WebInvoke(Method = "POST")] public void AddCashDrop(NewCashDropContract contract) { // 1 Service.AddCashDrop(contract.Amount, contract.DriverId); } } public class CashDropService // This is the Application …

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

9
ความรู้เกี่ยวกับการเขียนโปรแกรมของคุณลดลงหรือไม่ถ้าคุณไม่ฝึก? [ปิด]
ปิด คำถามนี้เป็นคำถามความคิดเห็นตาม ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้สามารถตอบข้อเท็จจริงและการอ้างอิงได้โดยแก้ไขโพสต์นี้ ปิดให้บริการใน6 ปีที่ผ่านมา ฉันเป็นโปรแกรมเมอร์มือใหม่ ฉันเรียนภาษาเช่น C, C ++, Python และ Java (เน้นที่ C ++ เป็นหลัก) ฉันเป็นสิ่งที่คุณเรียกว่า "เด็กและไม่มีประสบการณ์" และฉันยอมรับว่าเพราะฉันไม่สามารถเรียกร้องเป็นอย่างอื่น ในฐานะนักเรียนฉันมีปัญหาอื่น ๆ อีกมากมายนอกเหนือจากการเขียนโปรแกรม ฉันฝึกเขียนโปรแกรมบ่อยเท่าที่จะทำได้และโดยเฉพาะอย่างยิ่งเพราะครูของฉันให้แบบฝึกหัดมากกว่าชั้นเรียนอื่น ๆ (มันอยู่ในระดับต่ำมาก) ดังนั้นบ่อยครั้งฉันจึงใช้เวลาหลายสัปดาห์ในการทำสิ่งอื่นเช่นโครงการโรงเรียนหรือกีฬา การเดินทางอะไรนอกเหนือจากการเขียนโปรแกรม อย่าเข้าใจฉันผิดฉันรักการเขียนโปรแกรม ฉันชอบที่จะสร้างโค้ดที่ใช้งานได้เพื่อดูว่าโปรแกรมมีชีวิตขึ้นมาเพียงแค่กดปุ่มและเรียนรู้ให้มากที่สุดเท่าที่จะทำได้ สิ่งคือฉันไม่ได้มีเวลามากสำหรับมัน ตรงไปที่คำถามตอนนี้: ความรู้การเขียนโปรแกรมของคุณลดลงเมื่อเวลาผ่านไปและคุณไม่ได้ฝึกหรือไม่? คุณอาจถามว่า "คุณหมายถึงเวลาเท่าไหร่" ฉันไม่ได้หมายถึงจำนวนเวลาที่เฉพาะเจาะจง แต่สำหรับการอ้างอิงคุณสามารถใช้ตัวอย่างเป็นเดือนสองหรือปี ตามความรู้ฉันหมายถึงทุกอย่างจากไวยากรณ์ไปจนถึงการใช้ภาษา

5
วิธีที่ดีที่สุดในการแสดงความคิดเห็นในการตรวจสอบรหัสคืออะไร
ทีมของฉันเพิ่งเริ่มใช้เบ้าหลอม / ฟิชอายในการเริ่มต้นการตรวจสอบโค้ดเมื่อใดก็ตามที่เราตรวจสอบอะไรบางอย่างมีเพียง 3 ของเราและเราแต่ละคนได้รับการสนับสนุนให้ตรวจสอบรหัสและแสดงความคิดเห็นที่เราเห็นว่าเหมาะสม คำถามของฉันคือฉันจะแสดงความคิดเห็นในบรรทัดของรหัสที่ดีที่สุดที่ฉันเห็นปัญหาได้อย่างไร ฉันต้องการจุดผ่านโดยไม่ขัด ฉันไม่ต้องการที่จะดูเหมือนว่าฉันอยู่บนม้าสูงและพูดว่า " ฉันได้ทำอย่างนี้ ... และฉันก็ไม่ต้องการที่จะดูเหมือนว่าฉันพยายามที่จะมีอำนาจและพูดอะไรบางอย่างเช่น " นี่ควรจะทำแบบนี้ ... " แต่ฉันยังคงต้องเข้าใจว่าสิ่งที่พวกเขาทำไม่ดี เพื่อความกระจ่าง: นี่เป็นแหล่งข้อมูลที่ดีสำหรับสิ่งที่ฉันควรมองหาที่จะแสดงความคิดเห็นใน: การตรวจสอบรหัสเป็นการส่วนตัวหรือวัตถุประสงค์ (เชิงปริมาณ) หรือไม่ แต่ฉันกำลังมองหาวิธีแสดงความคิดเห็น

4
ส่วนย่อยของตัวอักษรละตินที่มองเห็นและคลุมเครือ
ลองนึกภาพคุณให้บัตรกับรหัส "5SBDO0" กับใครสักคนในนั้น ในแบบอักษรบางตัวอักษร "S" เป็นการยากที่จะแยกความแตกต่างจากตัวเลขห้าอย่างเห็นได้ชัด (เช่นเดียวกับเลขศูนย์และตัวอักษร "O") การอ่านรหัสออกมาดัง ๆ อาจเป็นเรื่องยากที่จะแยกความแตกต่าง "B" จาก "D" โดยจำเป็นต้องพูดว่า "B เหมือนในเด็กผู้ชาย" "D เหมือนสุนัข" หรือใช้ " สัทอักษร " แทน อะไรคือเซตย่อยของตัวอักษรและตัวเลขที่ใหญ่ที่สุดซึ่งโดยส่วนใหญ่แล้วทั้งสองจะดูคลุมเครือด้วยสายตาและฟังดูคลุมเครือเมื่ออ่านออกเสียง? พื้นหลัง: เราต้องการสร้างสตริงสั้น ๆ ที่สามารถเข้ารหัสค่าได้มากเท่าที่จะเป็นไปได้ในขณะที่ยังสื่อสารได้ง่าย ลองนึกภาพคุณมีสตริง 6 ตัวอักษร "123456" ในฐาน 10 นี้สามารถเข้ารหัสค่า10 ^ 6 ในเลขฐานสิบหก "1B23DF" คุณสามารถเข้ารหัสค่า16 ^ 6 ในจำนวนอักขระที่เท่ากัน แต่สามารถฟังดูคลุมเครือเมื่ออ่านออกเสียง ("B" กับ "D") เช่นเดียวกันกับสตริง N …
13 design 

1
ทำไมจึงไม่มีระบบอำนวยความสะดวกในการโอเวอร์โหลดคุณสมบัติคงที่ใน PHP?
Intro PHP อนุญาตให้คุณโอเวอร์โหลดการเรียกใช้เมธอดและการเข้าถึงคุณสมบัติโดยการประกาศเมธอดมหัศจรรย์ในคลาส สิ่งนี้ทำให้รหัสเช่น: class Foo { public function __get($name) { return 42; } } $foo = new Foo; echo $foo->missingProperty; // prints "42" นอกเหนือจากการบรรทุกเกินพิกัดเช่นคุณสมบัติและวิธีการตั้งแต่ PHP 5.3.0 เรายังสามารถเกินวิธีการโทรออกโดยวิธีการเอาชนะมายากลstatic__callStatic บางสิ่งหายไป สิ่งที่ขาดหายไปจากฟังก์ชั่นที่มีอยู่อย่างชัดเจนคือความสามารถในการโอเวอร์โหลดคุณสมบัติสแตติกเช่น: echo Foo::$missingProperty; // fatal error: access to undeclared static property ข้อ จำกัด นี้เป็นอย่างชัดเจนเอกสาร : การโอเวอร์โหลดของคุณสมบัติใช้งานได้เฉพาะในบริบทของวัตถุ วิธีการเวทย์มนตร์เหล่านี้จะไม่ถูกกระตุ้นในบริบทคงที่ staticดังนั้นวิธีการเหล่านี้ไม่ควรได้รับการประกาศ ในฐานะของ PHP 5.3.0 …

7
เหตุใดคำศัพท์เล็ก ๆ ที่ถูกมองว่าเป็นประโยชน์สำหรับบริการ RESTful
ดังนั้นบริการ RESTful จึงมีคำกริยาในชุดที่แน่นอน บริการเว็บ RESTful ใช้สิ่งเหล่านี้จากวิธี HTTP มีข้อได้เปรียบบางอย่างในการนิยามคำศัพท์ที่คงที่ แต่ฉันไม่เข้าใจประเด็น บางทีใครบางคนสามารถอธิบายได้ ทำไมคำศัพท์แบบตายตัวตามที่ระบุโดย REST ดีกว่าการกำหนดคำศัพท์แบบไดนามิกสำหรับแต่ละรัฐ ตัวอย่างเช่นการเขียนโปรแกรมเชิงวัตถุเป็นกระบวนทัศน์ที่เป็นที่นิยม RPC ได้รับการอธิบายเพื่อกำหนดอินเทอร์เฟซคงที่ แต่ฉันไม่รู้ว่าทำไมคนทั่วไปคิดว่า RPC ถูก จำกัด โดยข้อ จำกัด เหล่านี้ เราสามารถระบุอินเทอร์เฟซแบบไดนามิกเช่นเดียวกับบริการ RESTful อธิบายโครงสร้างเนื้อหาแบบไดนามิก ส่วนที่เหลือควรจะเป็นข้อได้เปรียบในการที่จะสามารถเติบโตได้โดยไม่ต้องขยายคำศัพท์ บริการ RESTful เติบโตแบบไดนามิกโดยการเพิ่มทรัพยากรมากขึ้น มีอะไรผิดปกติเกี่ยวกับการขยายการบริการโดยการระบุคำศัพท์ต่อวัตถุแบบไดนามิกหรือไม่ ทำไมเราไม่ใช้วิธีที่กำหนดไว้ในวัตถุของเราเป็นคำศัพท์และให้บริการของเราอธิบายให้ลูกค้าฟังว่าวิธีการเหล่านี้คืออะไรและมีผลข้างเคียงหรือไม่ โดยพื้นฐานแล้วฉันรู้สึกว่าคำอธิบายของโครงสร้างทรัพยากรด้านเซิร์ฟเวอร์นั้นเทียบเท่ากับคำนิยามของคำศัพท์ แต่จากนั้นเราถูกบังคับให้ใช้คำศัพท์ที่มีข้อ จำกัด ในการโต้ตอบกับทรัพยากรเหล่านี้ คำศัพท์ที่กำหนดแน่นอนช่วยลดความกังวลของลูกค้าจากความกังวลของเซิร์ฟเวอร์หรือไม่ แน่นอนฉันต้องกังวลเกี่ยวกับการกำหนดค่าบางอย่างของเซิร์ฟเวอร์ซึ่งเป็นตำแหน่งทรัพยากรในบริการ RESTful การบ่นที่ใช้คำศัพท์แบบไดนามิกดูเหมือนไม่ยุติธรรมเพราะเราต้องใช้เหตุผลแบบไดนามิกเพื่อทำความเข้าใจกับการกำหนดค่านี้ในบางวิธีต่อไป เซอร์วิส RESTful อธิบายการเปลี่ยนแปลงที่คุณสามารถทำได้โดยการระบุโครงสร้างวัตถุผ่านสื่อบันทึก ฉันไม่เข้าใจว่าอะไรทำให้คำศัพท์คงที่ดีกว่าคำศัพท์แบบไดนามิกที่อธิบายตัวเองได้ซึ่งสามารถทำงานได้ดีในบริการคล้าย RPC นี่เป็นเพียงเหตุผลที่ไม่ดีสำหรับการ จำกัด คำศัพท์ของโปรโตคอล HTTP หรือไม่? …

5
รอบการเปิดตัวของ บริษัท แปลก: ไปควบคุมแหล่งที่มากระจาย
ขออภัยเกี่ยวกับโพสต์ที่ยาวนานนี้ แต่ฉันคิดว่ามันคุ้มค่า ฉันเพิ่งเริ่มต้นด้วยร้าน. NET ขนาดเล็กที่ทำงานค่อนข้างแตกต่างจากที่อื่น ๆ ที่ฉันเคยทำงาน ซอฟท์แวร์ที่เขียนตรงนี้ไม่ได้อยู่ในตำแหน่งก่อนหน้าใด ๆ ของฉันตรงที่มีลูกค้าหลายรายและไม่ใช่ลูกค้าทุกคนที่จะได้รับซอฟต์แวร์รุ่นล่าสุดพร้อมกัน ด้วยเหตุนี้จึงไม่มี "เวอร์ชันการผลิตปัจจุบัน" เมื่อลูกค้าได้รับการอัปเดตพวกเขายังได้รับคุณสมบัติทั้งหมดที่เพิ่มเข้ามาในซอฟต์แวร์ตั้งแต่การอัปเดตครั้งล่าสุดซึ่งอาจเป็นเวลานานแล้ว ซอฟต์แวร์สามารถกำหนดค่าได้อย่างมากและสามารถเปิดและปิดคุณสมบัติ: เรียกว่า "สลับคุณสมบัติ" วัฏจักรการวางจำหน่ายของที่นี่แน่นมากจริงๆแล้วมันไม่ได้อยู่ในกำหนดเวลา: เมื่อคุณสมบัติเสร็จสมบูรณ์ซอฟต์แวร์จะถูกปรับใช้กับลูกค้าที่เกี่ยวข้อง ทีมเมื่อปีที่แล้วย้ายจาก Visual Source Safe ไปยัง Team Foundation Server ปัญหาคือพวกเขายังคงใช้ TFS ราวกับว่ามันเป็น VSS และบังคับใช้ Checkout ล็อคในสาขารหัสเดียว เมื่อใดก็ตามที่การแก้ไขข้อผิดพลาดถูกนำออกสู่สนาม (แม้กระทั่งสำหรับลูกค้าเดี่ยว) พวกเขาเพียงแค่สร้างสิ่งที่อยู่ใน TFS ทดสอบข้อผิดพลาดได้รับการแก้ไขและปรับใช้ให้กับลูกค้า! (ตัวเองมาจากพื้นหลังของซอฟต์แวร์ยาและอุปกรณ์การแพทย์ซึ่งไม่น่าเชื่อเลย!) ผลที่ได้คือรหัส dev ที่อบออกมาครึ่งหนึ่งถูกนำไปผลิตโดยไม่ต้องมีการทดสอบ บั๊กมักจะลื่นไถลไปสู่รุ่นวางจำหน่าย แต่บ่อยครั้งที่ลูกค้าที่เพิ่งได้รับบิลด์จะไม่เห็นบั๊กเหล่านี้หากพวกเขาไม่ได้ใช้คุณสมบัติที่บั๊กนั้นอยู่ผู้อำนวยการรู้ว่านี่เป็นปัญหาเพราะ บริษัท เริ่มเติบโต ทันใดนั้นมีลูกค้ารายใหญ่บางรายเข้ามาและมีลูกค้าจำนวนน้อยกว่า ฉันถูกขอให้ดูที่ตัวเลือกการควบคุมแหล่งที่มาเพื่อกำจัดการปรับใช้ buggy หรือรหัสที่ยังไม่เสร็จ …

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