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

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

18
การทดสอบหน่วยมีประโยชน์จริง ๆ หรือไม่? [ปิด]
ฉันเพิ่งจบการศึกษาระดับปริญญาใน CS และตอนนี้ฉันมีงานเป็นนักพัฒนาจูเนียร์. NET (C #, ASP.NET และแบบฟอร์มเว็บ) ย้อนกลับไปเมื่อฉันยังอยู่ในมหาวิทยาลัยเรื่องของการทดสอบหน่วยได้รับความคุ้มครอง แต่ฉันไม่เคยเห็นประโยชน์ของมันเลย ฉันเข้าใจสิ่งที่ควรทำคือระบุว่าบล็อกของรหัสนั้นเหมาะสมกับการใช้งานหรือไม่ อย่างไรก็ตามฉันไม่เคยต้องเขียนบททดสอบมาก่อนและไม่เคยรู้สึกว่าจำเป็นต้องทำ ตามที่ฉันได้กล่าวไปแล้วฉันมักจะพัฒนาด้วยเว็บฟอร์ม ASP.NET และเมื่อเร็ว ๆ นี้ฉันคิดถึงการเขียนแบบทดสอบหน่วย แต่ฉันมีคำถามสองสามข้อเกี่ยวกับเรื่องนี้ ฉันอ่านแล้วว่าการทดสอบหน่วยมักเกิดขึ้นจากการเขียน "mocks" ในขณะที่ฉันเข้าใจแนวคิดนี้ฉันไม่สามารถหาวิธีที่ฉันควรจะเขียน mocks สำหรับเว็บไซต์ที่มีการเปลี่ยนแปลงอย่างสมบูรณ์และเกือบทุกอย่างขึ้นอยู่กับข้อมูลที่มาจากฐานข้อมูล ตัวอย่างเช่นฉันใช้ล็อตซ้ำที่มีเหตุการณ์ ItemDataBound ฯลฯ (อีกครั้งขึ้นอยู่กับข้อมูลที่เป็น "ไม่ทราบ") ดังนั้นคำถามข้อที่ 1: การเขียนการทดสอบหน่วยสำหรับเว็บ ASP.NET เป็นสิ่งที่ทำบ่อยและถ้าเป็น: ฉันจะแก้ไขปัญหา "สภาพแวดล้อมแบบไดนามิก" ได้อย่างไร เมื่อฉันพัฒนาฉันต้องผ่านการลองผิดลองถูกมากมาย นั่นไม่ได้หมายความว่าฉันไม่รู้ว่าฉันกำลังทำอะไร แต่ฉันหมายความว่าฉันมักจะเขียนโค้ดตีCtrl F5และดูว่าเกิดอะไรขึ้น ในขณะที่วิธีการนี้ทำงานได้เกือบตลอดเวลาบางครั้งฉันก็รู้สึกว่าตัวเองไร้ความรู้สึกเล็ก ๆ น้อย ๆ (เพราะประสบการณ์น้อยของฉัน) บางครั้งฉันก็เสียเวลาเช่นนี้เช่นกัน ดังนั้นคำถามข้อ 2: คุณช่วยแนะนำให้ฉันเริ่มเขียนการทดสอบหน่วยได้ไหม ฉันคิดว่ามันอาจช่วยฉันในการใช้งานจริง …

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

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

4
เหตุใดฐานข้อมูล noSQL จึงสามารถปรับขนาดได้มากกว่า SQL
เมื่อเร็ว ๆ นี้ฉันอ่านมากเกี่ยวกับ noSQL DBMSs ผมเข้าใจCAP ทฤษฎีบท , กรดกฎBASEกฎและทฤษฎีพื้นฐาน แต่ไม่พบทรัพยากรใด ๆ ว่าทำไม noSQL จึงสามารถปรับขนาดได้ง่ายกว่า RDBMS (เช่นในกรณีของระบบที่ต้องใช้เซิร์ฟเวอร์ DB จำนวนมาก) ฉันเดาว่าการรักษาข้อ จำกัด และกุญแจต่างประเทศต้องใช้ทรัพยากรและเมื่อมีการกระจาย DBMS มันก็ซับซ้อนกว่ามาก แต่ฉันคาดหวังว่าจะมีมากกว่านี้ ใครช่วยกรุณาอธิบายว่า noSQL / SQL ส่งผลกระทบต่อความสามารถในการปรับขนาดได้หรือไม่?
98 sql  nosql  scalability 

4
การอ้างอิง Java แตกต่างจากตัวชี้ C อย่างไร
C มีพอยน์เตอร์และ Java มีสิ่งที่เรียกว่าการอ้างอิง พวกเขามีบางสิ่งที่เหมือนกันในแง่ที่ว่าพวกเขาทั้งหมดชี้ไปที่บางสิ่งบางอย่าง ฉันรู้ว่าพอยน์เตอร์ใน C เก็บที่อยู่ที่ชี้ไป การอ้างอิงเก็บที่อยู่ด้วยหรือไม่ พวกมันแตกต่างกันอย่างไรยกเว้นตัวชี้นั้นจะยืดหยุ่นและผิดพลาดได้ง่ายกว่ากัน?
97 java  c  pointers  reference 

9
ข้อดีของการสร้างสคริปต์คืออะไร
สำหรับอาชีพการเขียนโปรแกรมส่วนใหญ่ของฉันฉันได้ใช้คำสั่ง "build / compile / run" ในทุก ๆ IDE ที่ฉันทำงานด้วยเพื่อสร้างโปรแกรมที่รันได้ นี่คือปุ่มเดียวค่อนข้างง่าย ในขณะที่ฉันเรียนรู้เพิ่มเติมเกี่ยวกับภาษาและกรอบงานต่าง ๆ ฉันเห็นการพูดถึง "build script" มากขึ้นเรื่อย ๆ (ANT, Maven, Gradle และอื่น ๆ ) เพื่อให้โครงการทำงาน ความเข้าใจของฉันเกี่ยวกับสิ่งเหล่านี้คือพวกเขาเป็นคำแนะนำสำหรับคอมไพเลอร์ / ลิงเกอร์ / ผู้เขียนโปรแกรมที่ระบุรายละเอียดการกำหนดค่า - minutiae ฉันจำได้ว่าการเขียน makefiles กลับไปโรงเรียน แต่ฉันไม่เห็นข้อได้เปรียบพิเศษใด ๆ เลย (เราจะใช้มันเฉพาะเมื่อเขียนในเทอร์มินัล Unix ที่ IDE ไม่มีปุ่ม "สร้าง" ที่มีประโยชน์) นอกเหนือจากนั้นผมเคยเห็นคำถามอื่น ๆ ที่นี่ที่หารือถึงวิธีการสร้างสคริปต์สามารถทำได้มากกว่าเพียงแค่สร้างโปรแกรมของคุณ - พวกเขาสามารถเรียกใช้การทดสอบหน่วยเช่นเดียวกับแหล่งข้อมูลที่เชื่อถือได้โดยไม่คำนึงถึงเครื่องโฮสต์ …

6
ความแตกต่างระหว่างการจำลองและการจำลองคืออะไร
ฉันเห็นการจำลองและการจำลองทางวิทยาศาสตร์คอมพิวเตอร์บ่อยครั้ง คำสองคำนี้ดูเหมือนตรงกัน มีความแตกต่างระหว่างการจำลองและการจำลองหรือไม่?

17
การห่อหุ้มยังคงเป็นหนึ่งในช้าง OOP ที่ยืนอยู่บน?
Encapsulation บอกให้ฉันสร้างฟิลด์ทั้งหมดหรือเกือบทั้งหมดเป็นส่วนตัวและแสดงสิ่งเหล่านี้โดย getters / setters แต่ตอนนี้ห้องสมุดเช่นลอมบอก@Dataปรากฏซึ่งช่วยให้เราเพื่อแสดงเขตข้อมูลส่วนตัวทั้งหมดของบันทึกย่อสั้น มันจะสร้าง getters, setters และการตั้งค่าคอนสตรัคเตอร์สำหรับฟิลด์ส่วนตัวทั้งหมด ใครสามารถอธิบายให้ฉันฟังได้ว่าอะไรคือความรู้สึกของการซ่อนเขตข้อมูลทั้งหมดเป็นส่วนตัวและหลังจากนั้นเพื่อเปิดเผยทั้งหมดของพวกเขาด้วยเทคโนโลยีพิเศษบางอย่าง ทำไมเราไม่ใช้เพียงช่องสาธารณะเท่านั้น? ฉันรู้สึกว่าเราได้เดินไกลและยากเพียงเพื่อกลับไปที่จุดเริ่มต้น ใช่มีเทคโนโลยีอื่น ๆ ที่ทำงานผ่าน getters และ setters และเราไม่สามารถใช้มันผ่านช่องสาธารณะที่เรียบง่าย แต่เทคโนโลยีเหล่านี้ปรากฏขึ้นเพราะเรามีคุณสมบัติมากมายเหล่านั้น - ฟิลด์ส่วนตัวที่อยู่เบื้องหลังผู้ได้รับ / setters สาธารณะ ถ้าเราไม่มีคุณสมบัติเทคโนโลยีเหล่านี้จะพัฒนาอีกวิธีหนึ่งและจะสนับสนุนเขตข้อมูลสาธารณะ และทุกอย่างจะง่ายและเราไม่ต้องการลอมบอกในตอนนี้ วงจรนี้มีความรู้สึกอย่างไร? และมีการห่อหุ้มจริงๆความรู้สึกใด ๆ ในขณะนี้ในการเขียนโปรแกรมในชีวิตจริง?

17
(ทำไม) ฉันควรเรียนรู้ภาษาการเขียนโปรแกรมใหม่หรือไม่ [ปิด]
ฉันค่อนข้างมีความเชี่ยวชาญเกี่ยวกับ Java, C / C ++, JavaScript / jQuery และเหมาะสมกับ Objective-C ฉันค่อนข้างมีประสิทธิภาพด้วยภาษาและกรอบงานที่เกี่ยวข้องเช่นกันและผลิตระบบระดับองค์กร (และขนาดเล็ก) ด้วยความสะดวกสบายที่เพียงพอในขณะที่รักษารหัส 'สะอาด' และบำรุงรักษาได้ (ใช่ฉันสามารถอ่านรหัสของตัวเองหลังจากหก เดือน :) เว้นแต่ได้รับคำสั่งจากแพลตฟอร์ม (iPhone, iPad, ฯลฯ ) หรือโดยองค์กรลูกค้า / การดำเนินการเพียงแค่ "ทำไม" ฉันควรเรียนรู้ภาษาการเขียนโปรแกรมใหม่หรือไม่ แค่เล่น ๆ"? และทำอะไรด้วยความสนุกถ้าฉันจะไม่ทำอะไรที่คุ้มค่ากับมัน? เพื่อนของฉันหลายคนพร้อมที่จะดำน้ำเพื่อเรียนรู้ "สิ่งใหม่ / ภาษาใหม่" และโดยทั่วไปแล้วก็คือ Python, Ruby หรือ PHP (เพียงตั้งชื่อชื่อที่นิยมไม่กี่คน) ตอนนี้เพียงแค่รู้ภาษาด้วยตัวเอง IMHO ไร้ประโยชน์ คุณต้องรู้กรอบการเรียนรู้การใช้งาน / API รวมถึง 'แนวทางปฏิบัติที่ดี' …

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

8
วิธีทำให้แอพพลิเคชั่นไร้สัญชาติ
นี่อาจเป็นคำถามที่ซับซ้อน แต่ฉันพยายามเข้าใจความไร้สัญชาติมากขึ้น แอปพลิเคชันบนเว็บควรไร้สัญชาติหมายความว่าคำขอแต่ละรายการถือว่าเป็นธุรกรรมที่เป็นอิสระจากสิ่งที่ฉันได้อ่าน ดังนั้นควรหลีกเลี่ยงเซสชันและคุกกี้ (เนื่องจากทั้งคู่มีสถานะเป็นของรัฐ) วิธีที่ดีกว่าคือใช้โทเค็นซึ่งไร้สัญชาติเพราะไม่มีสิ่งใดถูกเก็บไว้บนเซิร์ฟเวอร์ ดังนั้นฉันจึงพยายามที่จะเข้าใจว่าเว็บแอปพลิเคชันจะไร้สัญชาติได้อย่างไรเมื่อมีข้อมูลที่ถูกเก็บไว้ในเซสชันของฉัน (เช่นรายการในตะกร้าสินค้า) จริง ๆ แล้วสิ่งเหล่านี้ถูกจัดเก็บในฐานข้อมูลที่ไหนสักแห่งแล้วถูกกำจัดเป็นระยะ ๆ ? มันทำงานอย่างไรเมื่อคุณใช้โทเค็นแทนคุกกี้? และจากคำถามที่เกี่ยวข้องเว็บไซต์หลัก (Amazon, Google, Facebook, Twitter และอื่น ๆ ) ไร้สัญชาติจริงๆหรือ? พวกเขาใช้โทเค็นหรือคุกกี้ (หรือทั้งสองอย่าง)?

6
คำสำหรับฟังก์ชั่นที่เรียกซ้ำหลายครั้งจะมีผลเช่นเดียวกับการโทรครั้งเดียว?
(สมมติว่ามีสภาพแวดล้อมแบบเธรดเดียว) ฟังก์ชั่นที่ตอบสนองเกณฑ์นี้คือ: bool MyClass::is_initialized = false; void MyClass::lazy_initialize() { if (!is_initialized) { initialize(); //Should not be called multiple times is_initialized = true; } } ในสาระสำคัญฉันสามารถเรียกใช้ฟังก์ชั่นนี้ได้หลายครั้งและไม่ต้องกังวลกับการเริ่มทำงานMyClassหลายครั้ง ฟังก์ชันที่ไม่เป็นไปตามเกณฑ์นี้อาจเป็น: Foo* MyClass::ptr = NULL; void initialize() { ptr = new Foo(); } การโทรinitialize()หลายครั้งจะทำให้หน่วยความจำรั่ว แรงจูงใจ มันจะดีถ้ามีคำสั้น ๆ เพื่ออธิบายพฤติกรรมนี้เพื่อให้ฟังก์ชั่นที่คาดว่าจะได้พบกับเกณฑ์นี้สามารถแสดงความคิดเห็นได้อย่างถูกต้อง (โดยเฉพาะอย่างยิ่งมีประโยชน์เมื่ออธิบายฟังก์ชั่นอินเตอร์เฟสที่คาดว่าจะถูกแทนที่)
96 naming  functions 

12
ลูกค้าของฉันต้องการ 25% ของความคิดเห็นในโครงการปัจจุบันของฉันวิธีการตอบสนอง? [ปิด]
นักพัฒนาจูเนียร์ที่นี่ ฉันกำลังทำงานคนเดียวในเว็บแอปพลิเคชันสำหรับลูกค้ารายใหญ่ของ บริษัท ของฉัน ฉันเริ่มเมื่อเดือนที่แล้ว ลูกค้าต้องการความเห็นอย่างน้อย 25% ในแต่ละโครงการซอฟต์แวร์ ฉันตรวจสอบรหัสของแอปพลิเคชันก่อนหน้าและนี่คือข้อสังเกตของฉัน: แต่ละไฟล์เริ่มต้นด้วยบล็อกความคิดเห็น (แพ็คเกจ, วันที่อัพเดทล่าสุด, ชื่อ บริษัท & ลิขสิทธิ์ของฉัน) ตัวแปรทั้งหมดจะถูกใส่ความคิดเห็นพร้อมชื่อ // nameOfCustomer public String nameOfCustomer getters และ setters ทั้งหมดถูกคอมเม้นต์ ความเห็นที่เป็นประโยชน์น้อยมาก ดูเหมือนว่านักพัฒนาเพียงแค่ใส่ความคิดเห็นให้มากที่สุดเท่าที่จะทำได้เพื่อให้ถึงขีด จำกัด นั้น 25% โดยไม่คำนึงถึงคุณภาพและประโยชน์ บริษัท ของฉันบอกฉันว่า "เราทำตามที่ลูกค้าต้องการ" ฉันไม่ได้พูดกับลูกค้าโดยตรงเกี่ยวกับเรื่องนี้ นี่คือข้อโต้แย้งของฉัน: บรรทัดที่ไร้ประโยชน์ในการอ่านและเขียน (เสียเวลา) บางครั้งความคิดเห็นไม่ได้รับการอัพเดต (แหล่งที่มาของความสับสน) นักพัฒนามีโอกาสน้อยที่จะใช้หรือเชื่อถือความคิดเห็นที่เป็นประโยชน์จริง คุณมีคำแนะนำเกี่ยวกับเรื่องนี้อย่างไร? ฉันจะจัดการกับสถานการณ์ได้อย่างไร

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

8
วิธีปกป้อง REST API สำหรับแอปพลิเคชันมือถือที่เชื่อถือได้เท่านั้น
ฉันจะแน่ใจได้อย่างไรว่า REST API ของฉันตอบสนองต่อคำขอที่สร้างโดยลูกค้าที่เชื่อถือได้เท่านั้นในกรณีของฉันเป็นแอปพลิเคชันมือถือของฉันเอง ฉันต้องการป้องกันคำขอที่ไม่ต้องการมาจากแหล่งอื่น ฉันไม่ต้องการให้ผู้ใช้กรอกรหัสซีเรียลหรืออะไรก็ตามมันควรจะเกิดขึ้นหลังฉากเมื่อติดตั้งและไม่ต้องมีการโต้ตอบกับผู้ใช้ เท่าที่ฉันทราบ HTTPS เป็นเพียงการตรวจสอบความถูกต้องของเซิร์ฟเวอร์ที่คุณสื่อสารด้วย ฉันกำลังจะใช้ HTTPS เพื่อเข้ารหัสข้อมูล มีวิธีการทำสิ่งนี้หรือไม่? อัปเดต: ผู้ใช้สามารถดำเนินการแบบอ่านอย่างเดียวซึ่งไม่ต้องการให้ผู้ใช้ลงชื่อเข้าใช้ แต่ยังสามารถทำการเขียนได้ซึ่งผู้ใช้ต้องลงชื่อเข้าใช้ (การรับรองความถูกต้องโดย Access Token) ในทั้งสองกรณีฉันต้องการให้ API ตอบกลับคำขอที่มาจากแอปพลิเคชันมือถือที่เชื่อถือได้เท่านั้น API จะใช้สำหรับการลงทะเบียนบัญชีใหม่ผ่านแอปพลิเคชันมือถือ อัปเดต 2:ดูเหมือนว่ามีคำตอบมากมายสำหรับเรื่องนี้ แต่ฉันก็ไม่รู้เหมือนกันว่าจะตอบคำตอบแบบใด บางคนบอกว่าสามารถทำได้บางคนบอกว่าทำไม่ได้
96 security  rest  mobile 

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