พื้นหลัง :
วิศวกรอิเล็กทรอนิกส์ R&D อาวุโส ( EE เพียงคนเดียวใน บริษัท ) - ฮาร์ดแวร์และการเข้ารหัสไม่ใช่ปัญหา ปัญหาที่ใหญ่ที่สุดของฉันคือการได้รับภาพรวมที่เหมาะสมของโครงการและที่จะเริ่ม
จนถึงตอนนี้ฉันได้ทำโครงการซอฟต์แวร์เพียงเล็กน้อย (โค้ดย่อย 500 บรรทัด) แต่ฉันไม่สามารถนึกภาพตัวเองทำโครงการขนาดใหญ่ได้โดยไม่สูญเสียภาพรวมการทำงานหรือขาดการทำงาน
คุณจะจัดโครงสร้างที่ดีที่สุดได้อย่างไร / คุณใช้เครื่องมือใดในการจัดทำระบบซอฟต์แวร์ฝังตัวขนาดใหญ่
สิ่งที่ฉันกำลังทำอยู่ :
ฉันมักจะเริ่มต้นด้วยการร่างการทำงานของโครงการ อาจเป็นแผนภูมิลำดับชั้นแบบหนึ่งหรือหลายต่อหลายชั้นหรือไดอะแกรมที่เกี่ยวข้อง (บล็อกไดอะแกรม ฯลฯ ) และทำการวิจัยส่วนประกอบ / ชิป จากนั้นฉันก็กระโดดเข้าสู่การเขียนโค้ด (ล้มเหลวอย่างรวดเร็วฉันเดา) ในขณะที่อ้างอิงเอกสารข้อมูล / อินเทอร์เน็ตการเข้ารหัสหนึ่งฟังก์ชันพร้อมกันและทดสอบด้วยข้อมูลจำลองหรือการทดสอบที่คล้ายกัน มันอาจจะเขียนข้อมูลไปยังชิป MEM และถ้าเป็นเช่นนั้นก็อาจเป็นไดรเวอร์ SPI ระหว่างชิปหลักและชิป MEM
คำตอบอะไรที่ฉันกำลังมองหา :
อะไรก็ได้จริง ๆ ฉันจะแยกแยะสิ่งที่ฉันคิดว่าเหมาะสม อาจเป็นหนังสือบทความประสบการณ์ส่วนตัวคำแนะนำ ฯลฯ
ฉันสนใจมากที่รู้ว่าผู้อาวุโสรับมือกับเรื่องนี้อย่างไร
แก้ไข
ก่อนอื่นขอบคุณสำหรับการแบ่งปันประสบการณ์ของคุณ! คำตอบทั้งหมดชื่นชมมาก สิ่งที่ฉันทำจากสิ่งนี้คือ;
- สร้างเอกสารข้อกำหนดที่ชัดเจนและแม่นยำ
- สร้างเอกสารการออกแบบซอฟต์แวร์ (ตอนนี้ฉันจะเพิ่มบางอย่าง) แม่แบบเอกสารการออกแบบ
- คิดในหน่วยที่อาจซ้ำซ้อน (สิ่งที่ฉันต้องมุ่งเน้นเพิ่มเติม)
- ปฏิบัติตามมาตรฐานการเข้ารหัสสำหรับการจัดโครงสร้างไฟล์ส่วนหัว / ซอร์ส (ไม่เคยทำเช่นนี้) มาตรฐาน Barr กลุ่ม C
- มุ่งเน้นการสร้างการใช้งานระดับต่ำก่อน (การสื่อสาร ฯลฯ )
- ใช้รูปแบบการออกแบบที่เป็นไปได้ / เหมาะสม รูปแบบการออกแบบ
- ตั้งค่าบางอย่างสำหรับการควบคุมการแก้ไข (Github ฯลฯ - ไม่เคยใช้มากขนาดนี้)
- การรวมการวิจัยอย่างต่อเนื่อง / การปรับใช้อย่างต่อเนื่อง (มีอะไรใหม่ที่ฉันสะดุด) ข้อมูลพื้นฐาน CI & CD