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

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

4
อะไรคือชื่อของอาร์กิวเมนต์การทำงานในเท่า
ในการสั่งซื้อฟังก์ชั่นที่สูงขึ้นพับ / ลดชื่อของการโต้แย้งการทำงานคืออะไรถ้ามี? ฉันกำลังทำงานกับไลบรารีการประมวลผลแบบตารางเดี่ยวที่แถวถูกพับเพื่อทำการวิเคราะห์อย่างง่าย (เช่นการค้นหาคอลัมน์ขั้นต่ำสูงสุดและค่าเฉลี่ย) ฉันกำลังมองหาชื่อเสียงสำหรับการโต้แย้งของfoldฟังก์ชั่นและชื่อใด ๆ ที่เป็นที่ยอมรับในชุมชน ML (หรือ Haskell หรือ Common LISP ในฐานะผู้สมัครที่สองและสาม) น่าสนใจ ชื่อชอบfเป็นเรื่องธรรมดาในคำอธิบายของfoldฟังก์ชั่น แต่มันไม่ได้อธิบายและคำนามจะเหมาะกว่า

4
วิธีที่เร็วที่สุดในการแยกสตริงแบบมีตัวคั่นใน Java
ฉันกำลังสร้างเครื่องมือเปรียบเทียบที่ให้ความสามารถในการจัดเรียงหลายคอลัมน์ในสตริงแบบมีตัวคั่น ขณะนี้ฉันกำลังใช้วิธีการแยกจากคลาส String เป็นตัวเลือกที่ฉันต้องการสำหรับการแยกสตริงดิบเป็นโทเค็น นี่เป็นวิธีที่มีประสิทธิภาพดีที่สุดในการแปลงสตริงดิบเป็นอาร์เรย์สตริงหรือไม่ ฉันจะเรียงลำดับแถวนับล้านดังนั้นฉันคิดว่าวิธีการที่สำคัญ ดูเหมือนว่าจะทำงานได้ดีและง่ายมาก แต่ไม่แน่ใจว่ามีวิธีที่เร็วกว่าใน java นี่คือวิธีการเรียงลำดับใน Comparator ของฉัน: public int compare(String a, String b) { String[] aValues = a.split(_delimiter, _columnComparators.length); String[] bValues = b.split(_delimiter, _columnComparators.length); int result = 0; for( int index : _sortColumnIndices ) { result = _columnComparators[index].compare(aValues[index], bValues[index]); if(result != 0){ break; } } …

5
วิธีแก้ปัญหาที่ใช้งานได้จริงสำหรับปัญหานี้จะสะอาดเหมือนความจำเป็นหรือไม่?
ฉันมีแบบฝึกหัดใน Python ดังนี้: พหุนามได้รับเป็น tuple ของค่าสัมประสิทธิ์ดังกล่าวว่าอำนาจจะถูกกำหนดโดยดัชนีเช่น: (9,7,5) หมายถึง 9 + 7 * x + 5 * x ^ 2 เขียนฟังก์ชันเพื่อคำนวณค่าสำหรับ x ที่กำหนด ตั้งแต่ฉันเข้าสู่การเขียนโปรแกรมการทำงานเมื่อเร็ว ๆ นี้ฉันเขียน def evaluate1(poly, x): coeff = 0 power = 1 return reduce(lambda accu,pair : accu + pair[coeff] * x**pair[power], map(lambda x,y:(x,y), poly, range(len(poly))), 0) ซึ่งฉันคิดว่าอ่านไม่ได้ดังนั้นฉันจึงเขียน def …

1
ไวยากรณ์ GPL Bison ติดแอปพลิเคชันของฉันหรือไม่
ฉันกำลังคิดถึงการใช้ไวยากรณ์ GPL Bison สำหรับคอมไพเลอร์ของฉันเอง ไวยากรณ์ "ติด" parser ของฉันจะต้องเป็นโอเพนซอร์สหรือไม่ ไวยากรณ์ - ในแง่ของ - อินพุตของ bison คือ GPL

4
รูปแบบการออกแบบใดที่เหมาะสมกว่าสำหรับการบันทึก
ฉันควรบันทึกเหตุการณ์บางอย่างในโปรแกรม แต่เท่าที่ฉันรู้จะเป็นการดีกว่าถ้าจะเก็บรหัสการบันทึกภายนอกโปรแกรมเพราะมันไม่เกี่ยวกับการใช้งานจริงของโปรแกรม ดังนั้นคุณช่วยบอกฉันได้ไหมว่าฉันควรเก็บรหัสนี้เอาไว้อย่างสมบูรณ์และใช้ผู้สังเกตการณ์และผู้ฟังเพื่อบันทึกเหตุการณ์เท่านั้นหรือไม่ หรือฉันสามารถเพิ่มบรรทัดของรหัสเช่นต่อไปนี้ทุกที่ที่ฉันต้องการบันทึกบางสิ่งบางอย่าง: MyGloriousLogger.getXXXLogger().Log(LogPlace, new LogObject(z1, z2, z3, z4, ..., z99)); ฉันทำผิดพลาดในการใช้รูปแบบการออกแบบของ Observer หรือไม่ ฉันต้องการรูปแบบการออกแบบอื่นหรือไม่ หรือฉันควรหยุดคิดเกี่ยวกับรูปแบบการออกแบบ? PS1 หากฉันต้องการเข้าสู่ระบบโดยใช้ผู้ฟังและผู้สังเกตการณ์เท่านั้นฉันจะต้องเพิ่มและปรับปรุงผู้สังเกตการณ์และผู้ฟังของโปรแกรมอย่างแน่นอน PS2 แน่นอนฉันรู้ว่ามีห้องสมุดที่แตกต่างกันสำหรับการเข้าสู่ระบบใน Java และฉันใช้ java.utils.logging แต่ฉันต้องมี wrapper เพื่อเข้าสู่ระบบวัตถุพิเศษของฉัน

3
Entity Framework Entity - ข้อมูลบางอย่างจากบริการบนเว็บ - สถาปัตยกรรมที่ดีที่สุด?
ขณะนี้เรากำลังใช้ Entity Framework เป็น ORM ในเว็บแอปพลิเคชั่นไม่กี่แห่งและจนถึงตอนนี้มันเหมาะกับเราและข้อมูลทั้งหมดของเราจะถูกเก็บไว้ในฐานข้อมูลเดียว เราใช้รูปแบบพื้นที่เก็บข้อมูลและมีบริการ (โดเมนเลเยอร์) ซึ่งใช้สิ่งเหล่านี้และส่งคืนเอนทิตี EF โดยตรงไปยังตัวควบคุม ASP.NET MVC อย่างไรก็ตามข้อกำหนดได้เกิดขึ้นเพื่อใช้ API ของบุคคลที่สาม (ผ่านบริการบนเว็บ) ซึ่งจะให้ข้อมูลเพิ่มเติมที่เกี่ยวข้องกับผู้ใช้ในฐานข้อมูลของเรา ในฐานข้อมูลผู้ใช้ในพื้นที่ของเราเราจะจัดเก็บ ID ภายนอกซึ่งเราสามารถมอบให้กับ API เพื่อรับข้อมูลเพิ่มเติม มีข้อมูลค่อนข้างน้อย แต่เพื่อความเรียบง่ายหนึ่งในนั้นเกี่ยวข้องกับ บริษัท ของผู้ใช้ (ชื่อผู้จัดการห้องชื่อตำแหน่งงาน ฯลฯ ) ข้อมูลนี้จะถูกใช้ในสถานที่ต่าง ๆ ทั่วทั้งเว็บแอปของเราซึ่งต่างจากการใช้งานในที่เดียว ดังนั้นคำถามของฉันคือที่ที่ดีที่สุดในการเติมและเข้าถึงข้อมูลนี้ที่ไหน เนื่องจากมีการใช้งานในสถานที่ต่าง ๆ จึงไม่เหมาะสมที่จะดึงข้อมูลมาใช้เป็นหลักในทุกที่ที่เราใช้ในเว็บแอปพลิเคชัน - ดังนั้นจึงเหมาะสมที่จะส่งคืนข้อมูลเพิ่มเติมนี้จากเลเยอร์โดเมน ความคิดเริ่มต้นของฉันคือการสร้างคลาสโมเดล wrapper ซึ่งจะมีเอนทิตี EF (EFUser) และคลาส 'ApiUser' ใหม่ที่มีข้อมูลใหม่ - และเมื่อเราได้รับผู้ใช้เราจะได้ EFUser …

1
อุปสรรคในการใช้ Git Flow ในการโค่นล้ม
ทีมของฉันในที่ทำงานกำลังเริ่มโครงการใหม่โดยใช้การโค่นล้มเป็น VCS ของเรา (คุณอาจพิจารณาชุดนี้เป็นหินสำหรับวัตถุประสงค์ของคำถามนี้) เรายังอยู่ในช่วงเริ่มต้นของโครงการและกำลังพยายามเห็นด้วยกับรูปแบบการแตกแขนง โครงการก่อนหน้าของเรานั้นใช้โมเดลรุ่นที่ไม่ได้มาตรฐานซึ่งนำไปสู่ปัญหาเมื่อจัดการ hot-fix และ patch ไปยังรุ่นที่มีอยู่ ฉันได้พบรุ่นแขนงที่แตกต่างกันจะมีความซับซ้อนมากกว่า แต่รุ่นหนึ่งที่ฉันไม่เข้าใจธรรมอย่างชัดเจนคือการไหลของคอมไพล์ ฉันอยากรู้ว่ายาก / ไม่พึงประสงค์มันจะใช้รูปแบบของการเปลี่ยนแปลงในการโค่นล้ม เห็นได้ชัดว่าจะมีความแตกต่างในแง่ของคนที่ทำงานร่วมกันในสาขา สาขาคุณลักษณะจะต้องมีการรวมศูนย์แทนที่จะ จำกัด อยู่เฉพาะที่เก็บในท้องที่ แต่แนวคิดอื่น ๆ ของแบบจำลองควรจะทำซ้ำได้ในการโค่นล้มเมื่อฉันเข้าใจ อะไรคือข้อเสียหรือความท้าทายในแนวทางนี้ สิ่งที่ฉันได้ยินคือใน SVN "การรวมมีราคาแพง" เมื่อเปรียบเทียบกับ Git แต่ฉันไม่ชัดเจนเกี่ยวกับสิ่งนี้ในทางปฏิบัติหรือว่ามันจะมีผลต่อความสามารถของเราในการใช้กระแส git เหมือนแบบจำลองกิ่ง สิ่งที่จะเป็นข้อกังวลที่ใหญ่ที่สุดกับวิธีนี้ มีวิธีการที่ชัดเจนในทำนองเดียวกันที่เป็นธรรมชาติมากขึ้นในการโค่นล้ม?
10 svn  branching  gitflow 

4
การนำอินเตอร์เฟซทั่วไปหลาย ๆ ตัวมาใช้ในจาวา
ฉันต้องการอินเทอร์เฟซที่ทำให้ฉันมั่นใจว่ามีวิธีการบางอย่างรวมถึงลายเซ็นเฉพาะ จนถึงตอนนี้เขาคือสิ่งที่ฉันมี: public interface Mappable<M> { M mapTo(M mappableEntity); } ปัญหาเกิดขึ้นเมื่อคลาสควรแม็พกับเอนทิตีอื่น ๆ กรณีที่เหมาะสมที่สุดคือ (ไม่ใช่ java): public class Something implements Mappable<A>, Mappable<B> { public A mapTo(A someObject) {...} public B mapTo(B someOtherObject) {...} } อะไรจะเป็นวิธีที่ดีที่สุดในการบรรลุถึงสิ่งที่เหลืออยู่นี้ให้เป็น "สามัญ" ที่สุด
10 java  generics 

2
เราจะใส่รหัส“ ถามโลก” เมื่อเราแยกการคำนวณจากผลข้างเคียงได้อย่างไร
ตามหลักการแบ่งแยกคำสั่งรวมถึงการคิดในข้อมูลและDDD ด้วยการนำเสนอClojureหนึ่งควรแยกผลข้างเคียง (แก้ไขโลก) จากการคำนวณและการตัดสินใจเพื่อให้ง่ายต่อการเข้าใจและทดสอบทั้งสองส่วน นี่เป็นคำถามที่ยังไม่ได้ตอบ: เราควรใส่ "ถามโลก" ที่ไหน ในอีกด้านหนึ่งการร้องขอข้อมูลจากระบบภายนอก (เช่นฐานข้อมูล, บริการนอกระบบ 'APIs และอื่น ๆ ) นั้นไม่ได้อ้างอิงอย่างโปร่งใสดังนั้นจึงไม่ควรใช้ร่วมกับการคำนวณและการตัดสินใจที่บริสุทธิ์ ในทางกลับกันมันเป็นปัญหาหรืออาจเป็นไปไม่ได้ที่จะหยอกล้อพวกเขานอกเหนือจากส่วนการคำนวณและส่งผ่านเป็นอาร์กิวเมนต์เนื่องจากเราอาจไม่ทราบล่วงหน้าว่าต้องการข้อมูลใด

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

4
ทำไมเว็บเฟรมจึงไม่เรียบง่ายสง่าและสนุกเหมือนภาษาโปรแกรม? [ปิด]
ปิด คำถามนี้เป็นคำถามความคิดเห็นตาม ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้สามารถตอบข้อเท็จจริงและการอ้างอิงได้โดยแก้ไขโพสต์นี้ ปิดให้บริการใน6 ปีที่ผ่านมา เมื่อฉันคิดถึงภาษาการเขียนโปรแกรมใด ๆ - เช่น C, C ++, PHP, SQL, JavaScript, Python, ActionScript, Haskell, Lua, Lisp, Java และอื่น ๆ - ฉันก็ยอดเยี่ยมฉันชอบที่จะพัฒนาแอปพลิเคชั่นคอมพิวเตอร์โดยใช้ ของภาษาเหล่านั้น แต่เมื่อฉันนึกถึงเว็บเฟรมเวิร์ก (ส่วนใหญ่ฉันทำ PHP) - เช่นเค้ก, CI, Symfony, Laravel, Zend, Drupal, Joomla, Wordpress, Rails, Django และอื่น ๆ - ฉันไม่ชอบพระเจ้าเลย ทำไมไม่มีเฟรมเวิร์คของเว็บที่ให้โครงสร้างที่เรียบง่ายสนุกสนานและทรงพลังเช่นภาษาโปรแกรม?

2
ปัญหาการนับจำนวนรอบนับถอยหลัง - และวิธีแก้ปัญหาอัลกอริทึม?
สำหรับผู้ที่ไม่ได้อยู่ในกลุ่มผู้ชม Brits มีกลุ่มของเกมโชว์กลางวันที่ผู้เข้าแข่งขันมีหมายเลข 6 ชุดและหมายเลขเป้าหมายที่สร้างแบบสุ่ม พวกเขาจะต้องไปให้ถึงหมายเลขเป้าหมายโดยใช้ตัวเลข 6 ตัว (แต่ไม่จำเป็นต้องทั้งหมด) โดยใช้ตัวดำเนินการทางคณิตศาสตร์เท่านั้น การคำนวณทั้งหมดจะต้องเป็นจำนวนเต็มบวก ตัวอย่างเช่นYoutube: Countdown - เกมหมายเลขพิเศษที่สุดที่เคยมีมา? มีคำอธิบายโดยละเอียดใน Wikipedia: Countdown (Game Show) ตัวอย่างเช่น: ผู้ให้ข้อมูลเลือก 6 หมายเลข - สองตัวใหญ่ (ความเป็นไปได้รวม 25, 50, 75, 100) และสี่ตัวเล็ก (หมายเลข 1 .. 10 แต่ละตัวรวมสองครั้งในสระว่ายน้ำ) ตัวเลขที่เลือกจะ75, 50, 2, 3, 8, จะได้รับมีจำนวนเป้าหมายของการ7812 หนึ่งครั้งคือ (75 + 50 - 8) * …

1
การเยาะเย้ยมากแค่ไหน“ ถูกต้อง”
ฉันชื่อคำถามล้อเล่นเพราะฉันแน่ใจว่า "มันขึ้นอยู่กับ" แต่ฉันมีคำถามเฉพาะบางอย่าง การทำงานในซอฟต์แวร์ที่มีการพึ่งพาในระดับลึกมาก ๆ ทีมของฉันคุ้นเคยกับการใช้การเยาะเย้ยอย่างกว้างขวางเพื่อแยกโมดูลรหัสแต่ละรายการออกจากการพึ่งพาที่อยู่ด้านล่าง ดังนั้นฉันจึงประหลาดใจที่Roy Osheroveแนะนำในวิดีโอนี้ว่าคุณควรใช้การเยาะเย้ยเพียงบางอย่างเช่น 5% ของเวลา ฉันเดาว่าเรานั่งอยู่ระหว่าง 70-90% ฉันเคยเห็นคำแนะนำที่คล้ายกันเป็นครั้งคราวเช่นกัน ฉันควรกำหนดสิ่งที่ฉันพิจารณาว่าเป็นสองหมวดหมู่ของ "การทดสอบการรวม" ซึ่งแตกต่างกันอย่างมากว่าพวกเขาควรได้รับชื่อต่างกัน: 1) การทดสอบระหว่างกระบวนการซึ่งรวมโมดูลรหัสหลายโมดูลและ 2) การทดสอบนอกกระบวนการ ไปยังฐานข้อมูลระบบไฟล์บริการบนเว็บ ฯลฯ มันเป็นประเภทที่ 1 ที่ฉันกังวลการทดสอบที่รวมโมดูลรหัสหลายโมดูลทั้งหมดในกระบวนการ คำแนะนำของชุมชนส่วนใหญ่ที่ฉันได้อ่านแสดงให้เห็นว่าคุณควรเลือกการทดสอบแบบแยกหน่วยที่ละเอียดและละเอียดจำนวนมากและการทดสอบแบบรวมตั้งแต่ต้นจนจบแบบหยาบจำนวนเล็กน้อยเนื่องจากการทดสอบหน่วยจะให้ข้อเสนอแนะที่แม่นยำกับคุณ อาจมีการสร้างการถดถอย แต่การทดสอบแบบหยาบซึ่งยุ่งยากในการตั้งค่าจริงตรวจสอบการทำงานแบบ end-to-end ของระบบ ได้รับสิ่งนี้ดูเหมือนว่าจำเป็นที่จะต้องใช้การเยาะเย้ยบ่อยครั้งเพื่อแยกรหัสหน่วยแยกเหล่านี้ รับโมเดลวัตถุดังนี้: ... ยังพิจารณาด้วยว่าความลึกของการพึ่งพาแอปพลิเคชันของเรานั้นลึกกว่าที่ฉันจะได้พอดีในภาพนี้เพื่อให้มีหลายเลเยอร์ N ระหว่าง 2-4 เลเยอร์และ 5-13 เลเยอร์ ถ้าฉันต้องการทดสอบการตัดสินใจเชิงตรรกะอย่างง่าย ๆ ในหน่วย # 1 และถ้าการอ้างอิงทุกครั้งถูกสร้างขึ้นในคอนสตรัคเตอร์โค้ดที่ขึ้นอยู่กับมันเช่นนั้นพูด 2 2 3 และ …

1
เมื่อเปิดไฟล์ PDF ในเบราว์เซอร์ทำไม "ตรวจสอบองค์ประกอบ" จึงมีอยู่และ "ดูแหล่งที่มา" ไม่
เมื่อเปิดไฟล์ PDF ใน Chrome และ Firefox ปุ่ม "ดูซอร์ส" จะเป็นสีเทา อย่างไรก็ตาม "ตรวจสอบ elemet" เผยให้เห็น HTML เบราว์เซอร์ดาวน์โหลดไฟล์และสร้าง html เพื่อแสดงหรือไม่
10 browser  chrome  firefox  pdf 

7
เอนทิตีที่ซ้อนกันและการคำนวณเกี่ยวกับคุณสมบัติของเอนทิตีใบไม้ - วิธี SQL หรือ NoSQL
ฉันกำลังทำงานในโครงการงานอดิเรกที่เรียกว่าการจัดการเมนู / สูตร นี่คือลักษณะที่หน่วยงานของฉันและความสัมพันธ์ของพวกเขามีลักษณะ NutrientมีคุณสมบัติCodeและValue IngredientมีคอลเลกชันของNutrients A Recipeมีคอลเล็กชันIngredientsและบางครั้งสามารถมีคอลเล็กชันอื่นได้recipes A Mealได้รวบรวมRecipesและIngredients A Menuมีคอลเล็กชันของMeals ความสัมพันธ์สามารถอธิบายได้ว่า ในหน้าใดหน้าหนึ่งสำหรับเมนูที่เลือกฉันจำเป็นต้องแสดงข้อมูลสารอาหารที่มีประสิทธิภาพซึ่งคำนวณจากส่วนประกอบ (อาหารสูตรอาหารส่วนผสมและสารอาหารที่เกี่ยวข้อง) ณ ตอนนี้ฉันกำลังใช้ SQL Server เพื่อจัดเก็บข้อมูลและฉันกำลังนำทางลูกโซ่จากรหัส C # ของฉันเริ่มจากอาหารแต่ละมื้อของเมนูแล้วรวบรวมค่าสารอาหาร ฉันคิดว่านี่ไม่ใช่วิธีที่มีประสิทธิภาพเนื่องจากการคำนวณนี้กำลังทำทุกครั้งที่มีการร้องขอหน้าเว็บและมีการเปลี่ยนแปลงองค์ประกอบในบางครั้ง ฉันคิดเกี่ยวกับการให้บริการพื้นหลังที่รักษาตารางที่เรียกว่า MenuNutrients ( {MenuId, NutrientId, Value}) และจะเติม / อัปเดตตารางนี้ด้วยสารอาหารที่มีประสิทธิภาพเมื่อมีองค์ประกอบใด ๆ (Meal, Recipe, Ingredient) เปลี่ยนแปลง ฉันรู้สึกว่า GraphDB เหมาะสำหรับความต้องการนี้ แต่การได้รับ NoSQL ของฉันมี จำกัด ฉันต้องการที่จะรู้ว่าสิ่งที่เป็นทางเลือกวิธีการแก้ปัญหา / แนวทางในการแสดงสารอาหารของเมนูที่กำหนด หวังว่าคำอธิบายของฉันเกี่ยวกับสถานการณ์จะชัดเจน

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