Arduino:
רפקטורינג

איך לבצע:

נניח שיש לך פונקציה בארדואינו שלך שעושה יותר מדי, כמו זו:

void setup() {
  Serial.begin(9600);
}

void loop() {
  // פונקציה שעושה יותר מדי
  handleEverything();
}

void handleEverything() {
  // קריאת נתוני חיישן
  int sensorValue = analogRead(A0);
  // עיבוד נתוני החיישן
  sensorValue = map(sensorValue, 0, 1023, 0, 255);
  // הדפסת נתוני החיישן
  Serial.println(sensorValue);
  delay(500);
}

תהליך הריפקטורינג עשוי להיראות כמו פיצול handleEverything() לפונקציות קטנות וממוקדות יותר:

void setup() {
  Serial.begin(9600);
}

void loop() {
  int sensorValue = readSensorData();
  int processedValue = processSensorData(sensorValue);
  printData(processedValue);
  delay(500);
}

int readSensorData() {
  return analogRead(A0);
}

int processSensorData(int sensorValue) {
  return map(sensorValue, 0, 1023, 0, 255);
}

void printData(int data) {
  Serial.println(data);
}

לאחר הריפקטורינג, הפונקציה loop() נהיית יותר קריאה, וכל משימה מטופלת על ידי פונקציה מוקדשת, מה שהופך את הקוד לקל יותר לניהול.

צלילה עמוקה

בהיסטוריה, הריפקטורינג הפך לפופולרי עם עליית מתודולוגיות Agile ו-Test-Driven Development (TDD), שמתבססות על שיפור קוד קבוע כדי להתאים לדרישות משתנות. ישנם כלים ואסטרטגיות שונות לריפקטורינג - כמו טכניקת “Extract Method” שהשתמשנו בה בדוגמת הארדואינו שלנו. זה הכרחי כאשר אתה עובר מפרוטוטיפ מהיר לפרויקט יציב, שבו קריאות הקוד ותחזוקתו הופכות לקריטיות.

בעת ביצוע ריפקטורינג, חשוב להחזיק מערך טוב של בדיקות כדי לוודא שהשינויים לא הכניסו באגים. בעולם הארדואינו, בדיקות אוטומטיות לא תמיד הן פשוטות בגלל תלות בחומרה, אך ניתן עדיין להשתמש בבדיקות יחידה עבור חלקים של לוגיקה טהורה או להשתמש בסימולטורים.

אלטרנטיבות לריפקטורינג ידני כוללות שימוש בכלים מוקדשים לריפקטורינג, שמאטימים את הזיהוי של “ניחוחות קוד” ומציעים שינויים. עם זאת, לעיתים קרובות לכלים אלה חסרה העדינות עבור קוד למיקרו-בקרים וייתכן שלא יהיו זמינים בסביבת הפיתוח של ארדואינו.

בסופו של דבר, ריפקטורינג הוא אמנות שמאזנת בין שיפור מבנה הקוד הפנימי לבין הסיכון להכנסת פגמים. זה דורש ממך לחשוב על פרטי היישום כמו שימוש בזיכרון וזמן מעבד, במיוחד בגלל האופי המוגבל משאבים של מיקרו-בקרים.

ראה גם

ניתן לחקור עוד על ריפקטורינג עם הספר המהותי של מרטין פאולר ריפקטורינג: שיפור עיצוב הקוד הקיים. להצצה קרובה יותר על תרגולים ספציפיים לארדואינו, בדוק את פורומים וקהילות הפיתוח של ארדואינו:

זכור, המטרה היא קוד נקי ומובן שאתה העתידי, ואחרים, יודו לך עליו. המשך להאק, ושמור על סדר!