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

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

5
มากับโทเค็นสำหรับ lexer
ฉันกำลังเขียนโปรแกรมแยกวิเคราะห์สำหรับภาษามาร์กอัปที่ฉันสร้างขึ้น (เขียนด้วยภาษาไพ ธ อน แต่นั่นไม่เกี่ยวข้องกับคำถามนี้จริง ๆ แล้วถ้านี่เป็นความคิดที่ไม่ดีฉันชอบคำแนะนำสำหรับเส้นทางที่ดีกว่า) . ฉันกำลังอ่านเกี่ยวกับตัวแยกวิเคราะห์ที่นี่: http://www.ferg.org/parsing/index.htmlและฉันกำลังพยายามเขียน lexer ซึ่งถ้าหากฉันเข้าใจถูกต้องให้แบ่งเนื้อหาออกเป็นโทเค็น สิ่งที่ฉันมีปัญหาในการทำความเข้าใจคือสิ่งที่ฉันควรใช้โทเค็นประเภทใดหรือวิธีการสร้างพวกเขา ตัวอย่างเช่นประเภทโทเค็นในตัวอย่างที่ฉันเชื่อมโยงคือ: STRING IDENTIFIER จำนวน ช่องว่าง แสดงความคิดเห็น EOF สัญลักษณ์จำนวนมากเช่น {และ (นับเป็นประเภทโทเค็นของตัวเอง ปัญหาที่ฉันมีอยู่ก็คือโทเค็นประเภททั่วไปนั้นดูจะเป็นเรื่องที่ฉันไม่ชอบ ตัวอย่างเช่นเหตุใด STRING ถึงมีประเภทโทเค็นแยกต่างหากกับ IDENTIFIER สตริงสามารถแสดงเป็น STRING_START + (IDENTIFIER | WHITESPACE) + STRING_START สิ่งนี้อาจเกี่ยวข้องกับภาษาของฉันด้วย ยกตัวอย่างเช่นการประกาศตัวแปรถูกเขียนเป็นและนำไปใช้กับ{var-name var value} {var-name}ดูเหมือนว่า'{'และ'}'ควรจะราชสกุลของตัวเอง แต่มี var_name และ VAR_VALUE ประเภทโทเค็นมีสิทธิ์หรือจะเหล่านี้ทั้งสองตกอยู่ภายใต้การ IDENTIFIER? มีอะไรเพิ่มเติมคือ VAR_VALUE สามารถมีช่องว่างได้จริง …
14 python  parsing  lexer 

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

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

7
ทำไม SQL จึงถูกเรียกว่าภาษาที่อิงตามความสัมพันธ์ / ใช้งานได้?
เรากำลังเรียนรู้ว่าภาษาส่วนใหญ่จัดอยู่ในประเภทใดประเภทหนึ่งทั้งสอง "ตามความสัมพันธ์" หรือ "ระดับสูง" ฉันไม่เคยใช้ SQL มาก่อน แต่จากการอ่านไวยากรณ์ดูเหมือนว่ามีความจำเป็น / มีความจำเป็นในระดับสูงกว่าการใช้งาน / ความสัมพันธ์ (Lisp, Haskell) หรืออาจเป็นได้ว่าการตีความบันทึกการบรรยายของอาจารย์ของฉันไม่ถูกต้อง ... แต่แน่นอนว่ารายการ SQL เป็นหนึ่งในภาษาที่อิงตามความสัมพันธ์ หรือบางทีฉันก็ไม่เข้าใจว่าทำไมข้อเท็จจริงเกี่ยวกับ SQL ที่เกี่ยวข้องกับฐานข้อมูลเชิงสัมพันธ์ทำให้ภาษาที่ใช้งานได้ดีอย่างที่ควรนำมาใช้ (และทำไม 'อิงตามความสัมพันธ์' เท่ากับ 'ทำงาน' เมื่อจัดหมวดหมู่ภาษาการเขียนโปรแกรม) ขอบคุณ :)

3
ความท้าทายของการเขียนโปรแกรมในกระบวนการสรรหามีประสิทธิภาพแค่ไหน? [ปิด]
ปิด คำถามนี้เป็นคำถามความคิดเห็นตาม ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้สามารถตอบข้อเท็จจริงและการอ้างอิงได้โดยแก้ไขโพสต์นี้ ปิดให้บริการใน5 ปีที่ผ่านมา ฉันคิดว่า บริษัท ของเราสามารถสร้างความท้าทายที่ออกแบบมาเพื่อค้นหาผู้สมัครวิศวกรซอฟต์แวร์ที่: เก่งในการแก้ปัญหาไม่ใช่ในการสรรหานายหน้า มีแนวโน้มที่จะกลัวที่จะเกิดขึ้นกับเราในงานอาชีพ มีแนวโน้มที่จะถูก underutilized ในงานเขียนโปรแกรมปัจจุบันของพวกเขา แต่จะเก็บตัวเกินไปที่จะทำอะไรเกี่ยวกับมัน ตัวอย่างเช่นดูบทความนี้ที่กล่าวถึงใน Facebook ที่หลบซ่อนตัวอยู่อีเมลในภาพโดยใช้Piet ฉันไม่สามารถหาการศึกษาหรือข้อมูลที่หนักหน่วงว่ามันใช้งานได้จริงหรือไม่
14 skills 

13
ควรใช้แหล่งข้อมูลตัวอย่างอะไรในการสัมภาษณ์งาน [ปิด]
ปิด. คำถามนี้เป็นคำถามปิดหัวข้อ ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้เป็นหัวข้อสำหรับ Software Engineering Stack Exchange ปิดให้บริการใน4 ปีที่แล้ว เพื่อนคนหนึ่งของฉันถูกปลดออกจากงาน เมื่อฉันคุยกับเขาเขาบอกว่าพวกเขาไม่ให้เขาคัดลอกสิ่งที่เขาทำ เมื่อเขาถามว่าจะแสดงสิ่งที่เขาทำงานกับนายจ้างคนอื่นในการสัมภาษณ์เขาได้รับการบอกว่าเขาจะอธิบายให้ทำ เราในฐานะโปรแกรมเมอร์ควรได้รับอนุญาตให้นำตัวอย่างงานที่เคยทำในอดีตนายจ้างของเราหรือไม่ เราควรคาดหวังแหล่งที่มาของรหัสใดในการสัมภาษณ์? เมื่อนายจ้างเกือบทุกคนขอตัวอย่างงานเราจะตัดสินความถูกต้องของสิ่งที่สามารถส่งได้อย่างไร มันเป็นความรับผิดชอบของเราที่จะดูแลโครงการหลังเลิกงานตลอดชีวิตของเราหรือไม่
14 interview 

2
ตัวอย่างที่ง่ายที่สุดในการอธิบายความแตกต่างระหว่าง Parse Trees กับ Abstract Syntax Trees คืออะไร
เพื่อความเข้าใจของฉัน parser สร้างต้นไม้แยกวิเคราะห์แล้วทิ้งหลังจากนั้น อย่างไรก็ตามมันยังสามารถโผล่ออกมาจากต้นไม้ไวยากรณ์นามธรรมซึ่งคอมไพเลอร์ควรจะใช้ ฉันอยู่ภายใต้ความประทับใจที่ทั้งต้นไม้แยกและต้นไม้ไวยากรณ์ที่สร้างขึ้นภายใต้ขั้นตอนการแยก ถ้าอย่างนั้นใครจะอธิบายได้ว่าทำไมสิ่งเหล่านี้ถึงแตกต่างกัน
14 parsing  trees 

6
ฉันจะทำให้การระเบิดเฟรมเวิร์กของ javascript เป็นอย่างไร? ฉันควรเรียนรู้พวกเขาทั้งหมดหรือไม่ [ปิด]
ปิด คำถามนี้จะต้องมีมากขึ้นมุ่งเน้น ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้มุ่งเน้นที่ปัญหาเดียวโดยแก้ไขโพสต์นี้ ปิดให้บริการใน6 ปีที่ผ่านมา สำหรับนักพัฒนาเว็บเริ่มต้นที่ยังคงทำพัฒนาเว็บวิธีธรรมดา (PHP / J2EE / Struts ในฝั่งเซิร์ฟเวอร์, HTML / CSS / Javascript บนฝั่งไคลเอ็นต์) ผมก็ช็อกมากกว่าโดยการโพสต์บล็อกล่าสุดในTrello สแต็คเทคโนโลยี ฉันไม่สามารถช่วยรู้สึกถึงรายการเทคโนโลยีและกรอบงานใหม่ที่กล่าวถึงในโพสต์นี้และความแพร่หลายของกรอบงาน Javascript โดยเฉพาะ คำถามของฉันคือนี่เป็นอนาคตของการพัฒนาเว็บหรือไม่ มีบทความเว็บไซต์หรือแหล่งข้อมูลใดบ้างที่สามารถช่วยฉันทำความเข้าใจว่ากรอบงานใหม่เหล่านี้เหมาะสมกับเว็บแอปพลิเคชันสมัยใหม่หรือไม่

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

4
เราควรเปลี่ยนชื่อเมธอดที่โอเวอร์โหลดหรือไม่?
สมมติว่าอินเตอร์เฟสมีวิธีการเหล่านี้: Car find(long id); List<Car> find(String model); จะเป็นการดีกว่าถ้าจะเปลี่ยนชื่อพวกเขาเช่นนี้? Car findById(long id); List findByModel(String model); อันที่จริงนักพัฒนาซอฟต์แวร์ใด ๆ ที่ใช้ API นี้ไม่จำเป็นต้องดูที่อินเทอร์เฟซเพื่อรับทราบข้อโต้แย้งที่เป็นไปได้ของfind()วิธีการเริ่มต้น ดังนั้นคำถามของฉันจึงเป็นเรื่องทั่วไปมากขึ้น: อะไรคือประโยชน์ของการใช้วิธีโอเวอร์โหลดในโค้ดเนื่องจากลดความสามารถในการอ่าน

9
เป็นความคิดที่ดีหรือไม่ที่จะถามผู้สัมภาษณ์ว่าทีมพัฒนาของพวกเขามีจุดแข็งและจุดอ่อนที่ยิ่งใหญ่ที่สุดคืออะไร? [ปิด]
ปิด. คำถามนี้เป็นคำถามปิดหัวข้อ ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้เป็นหัวข้อสำหรับ Software Engineering Stack Exchange ปิดให้บริการใน4 ปีที่แล้ว ฉันสงสัยว่านี่เป็นคำถามที่ดีหรือไม่ที่จะถามนายจ้างที่เป็นไปได้เมื่อสัมภาษณ์ตำแหน่งนักพัฒนาซอฟต์แวร์: อะไรคือจุดแข็งและจุดอ่อนที่ยิ่งใหญ่ที่สุดของทีมพัฒนาของคุณ? เราทุกคนได้รับคำถามนี้เมื่อเราอยู่ในการสัมภาษณ์ดังนั้นทำไมไม่ถามพวกเขาตอบแทน? ฉันคิดว่ามันเป็นคำถามที่ดีมากเพราะเราสามารถหาข้อมูลเกี่ยวกับทีมและจุดแข็งหรือจุดอ่อนนี้มีผลต่อเราอย่างไร แต่ฉันไม่ต้องการรบกวนผู้สัมภาษณ์ มีข้อเสียในการถามคำถามนี้เมื่อสัมภาษณ์ตำแหน่งนักพัฒนาหรือไม่?
14 interview 

2
เหตุใดไฟล์ต้นฉบับ Java จึงมีชื่อของคลาสสาธารณะที่มีอยู่
ฉันเป็นมือใหม่ในการเรียนรู้จาวา ใน Java ไฟล์ต้นฉบับทุกไฟล์ต้องมีคลาสสาธารณะและไฟล์ต้นฉบับนั้นควรมีชื่อเดียวกันกับคลาสสาธารณะนั้น นอกจากนี้ไฟล์ต้นฉบับไม่สามารถมีสองคลาสสาธารณะ ทำไมข้อ จำกัด นี้?

5
ฉันจะเลือกรหัสที่จะตรวจสอบได้อย่างไร
ฉันเป็นส่วนหนึ่งของทีมนักพัฒนาเจ็ดคนใน บริษัท ซอฟต์แวร์ขนาดเล็กและฉันพยายามแนะนำรหัสกลุ่มและบทวิจารณ์การออกแบบ เราได้ทำการวิจารณ์บางอย่างในอดีต แต่มันก็เป็นระยะ ๆ ฉันต้องการทำให้เป็นเรื่องปกติมากขึ้น ฉันได้อ่าน Code Complete และแหล่งข้อมูลอื่นที่คล้ายคลึงกันแล้วและพวกเขาพูดถึงกลไกของวิธีการตรวจสอบโค้ด แต่ฉันไม่สามารถหาแนวทางปฏิบัติที่ดีที่สุดเกี่ยวกับวิธีเลือกสิ่งที่ต้องการตรวจสอบได้ เรามีฐานรหัสที่มีอายุมากกว่าแปดปีและครอบคลุมภาษาที่หลากหลายดังนั้นจึงมีมากมายที่สามารถดูได้ นี่คือปัจจัยบางอย่างที่ฉันสามารถคิดได้ซึ่งอาจส่งผลกระทบต่อตัวเลือก: ภาษา: C, Java, SQL, PL / SQL อายุรหัส: รหัสใหม่กับรหัสเก่า การใช้รหัส: รหัสที่ใช้บ่อยเทียบกับรหัสที่ใช้งานได้ไม่เต็มประสิทธิภาพ ความสำคัญของรหัส: รหัสที่สำคัญกับรหัสที่ไม่สำคัญ ผู้พัฒนา: รหัสนักพัฒนาซอฟต์แวร์ระดับสูงและรหัสผู้พัฒนาอาวุโส ฉันเข้าใจว่านี่ไม่ใช่คำถามที่มีคำตอบที่ชัดเจน แต่คำแนะนำใด ๆ ที่มีประโยชน์ บางคำถามที่เกี่ยวข้องกับอุปกรณ์ต่อพ่วง: แนวทางการตรวจสอบรหัส (กล่าวถึงการตรวจสอบส่วนที่สำคัญและรหัสนักพัฒนาซอฟต์แวร์ใหม่) เราควรพยายามตรวจสอบรหัสของเราทั้งหมดหรือไม่

5
โหลดการทดสอบ: วิธีการสร้างคำขอต่อวินาที?
ฉันมีส่วนประกอบเซิร์ฟเวอร์ที่รันบน Zeroc-ICE เมื่อฉันต้องการโหลดทดสอบฉันคิดว่าการใช้ไลบรารีคู่ขนานเพื่อสร้างคำขอหลายรายการจะทำ แต่มันก็จบลงด้วยวิธีนั้น การใช้ไลบรารีParallel (Parallel.For)จาก C # นั้นง่ายกว่า แต่ดูเหมือนว่าจะไม่ได้สร้างทุกอย่างขนานกันในทันที ดังนั้นจึงไม่สามารถกำหนดคำจำกัดความสำหรับการสร้างคำขอ N ต่อวินาที ฉันควรทำอย่างไร ฉันคิดว่าทุกคนที่ต้องการทำการทดสอบการโหลดก่อนจะคิดเกี่ยวกับเรื่องนี้ วิธีที่มีประสิทธิภาพในการสร้างคำขอ N ในเวลาจริงต่อวินาทีคืออะไร? ตำนานอีกเรื่องเกี่ยวกับการเขียนโปรแกรมแบบขนาน โปรดให้ความกระจ่างแก่เราถ้าคุณใช้รูปแบบการเขียนโปรแกรมแบบขนานใน C # หรือ. Net โดยทั่วไป ลองนึกภาพฉันมี 5 กระบวนการ จะเริ่มต้นกระบวนการทั้งห้าในเวลาเดียวกันได้อย่างไร การบริโภคทรัพยากรหมายถึงอะไร ฉันได้ลองอ่านเนื้อหาที่มีอยู่มากมายในเน็ต แต่ฉันได้รับคำถามมากขึ้นกว่าที่พวกเขาเป็นคำตอบสำหรับคำถามของฉัน ฉันใช้ Parallel.For และสร้างเธรด N และเวลาที่วัดได้ จากนั้นฉันก็ลองสิ่งเดียวกันโดยใช้ Task.Factory.start สำหรับการแจงนับงาน เวลาที่วัดแตกต่างกัน ดังนั้นอะไรคือความแตกต่างระหว่างการใช้สิ่งเหล่านี้ เมื่อใดที่ฉันควรใช้คลาสที่เกี่ยวข้องและมีจุดประสงค์อะไรกันแน่ เรามักจะมีความมั่งคั่งมากมาย แต่เพียงว่าเราไม่รู้วิธีแยกความแตกต่างจากสิ่งอื่น นี่เป็นกรณีเช่นนี้สำหรับฉันไม่สามารถค้นหาสาเหตุที่ฉันไม่ควรใช้จากอีกกรณีหนึ่ง ฉันใช้คลาสนาฬิกาจับเวลาเพื่อวัดเวลาเหล่านี้ซึ่งอ้างว่าดีที่สุด ในสถานการณ์ของฉันโหลดการทดสอบส่วนประกอบสิ่งที่จะเป็นวิธีการวัดเวลาของการตอบสนอง นาฬิกาจับเวลาน่าจะเป็นทางออกที่ดีที่สุดสำหรับฉัน ความคิดเห็นใด …

8
งานปฏิทินซ้ำ ๆ จะถูกเก็บไว้ในฐานข้อมูลอย่างไร?
นี่เป็นโครงการส่วนบุคคลขนาดเล็กสำหรับการจัดการไมโคร โดยทั่วไปฉันเก็บงานไว้ในฐานข้อมูล SQLite3 ที่มีลักษณะดังนี้: id INTEGER PRIMARY KEY AUTOINCREMENT label TEXT deadline INTEGER ดังนั้นแต่ละงานจึงมีวันครบกำหนด (กำหนดเวลา) ที่จัดเก็บเป็น Unix Time Stamp จนถึงตอนนี้ดีฉันสามารถทำรายการเช่น "พรุ่งนี้: เยี่ยมยาย" และแถวใหม่จะถูกสร้างขึ้นด้วย "เยี่ยมยาย" เป็นป้ายกำกับและในวันพรุ่งนี้จะเปลี่ยนเป็นเวลา Unix สำหรับกำหนดเวลา ตอนนี้ฉันต้องการป้อนงานประเภทใหม่: งานประจำ - งานที่ทำซ้ำในรูปแบบเวลาเช่น "ทุกวัน: ครัวสะอาด" งานดังกล่าวจะถูกจัดเก็บหรือจำลองอย่างไร ในขณะนี้ฉันคิดว่าในกรณีของงานที่ต้องทำทุกวันเพื่อสร้างแถวใหม่ในตารางของฉันที่จะมีป้ายกำกับเดียวกันและฟิลด์กำหนดเวลาเพิ่มขึ้นหนึ่งวัน ในกรณีนี้ฉันต้องแก้ไขขีด จำกัด ในอนาคต ตัวอย่างเช่นถ้าฉันสร้างกิจวัตรประจำวันมันจะสร้างแถวใหม่สำหรับทุกวันของปีที่เหลืออยู่ มีวิธีที่ง่ายกว่านี้หรือไม่? ฉันขาดหลักการออกแบบฐานข้อมูลที่ชัดเจนหรือไม่?

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