חיפוש

הכרזה על פיצ'ר חדש בDart!

רישמו בתגובות את דעתכם - האם זה טוב או לא לפיתוח


היום(11.6.2020) הודיעו באופן רישמי ע"י אחד ממפתחי Flutter&Dart המובילים כי פותחה בDart האפשרות לזהות שגיאות Null בזמן קומפילקציה. במונחים מקצועיים זה נקרא: Sound Null Safety.

בטרם נסביר מהו הפיצר נדגיש:

  • הפיצ'ר זמין כרגע בchannel dev בDart.

  • צויין במפורש שאין להשתמש בפיצ'ר בזמן ריצה.

  • מטרת ההכרזה היא קבלת פידבק מהקהילה בנוגע לפיצר.


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


int a;
a = null;
print('a is $a.');

יובילו את הקומפיילר של Dart לזרוק לכם בזמן סטטי(לא ריצה) את השגיאה הבאה:


A value of type 'Null' can't be assigned to a variable

ניתן ליראות מספר התנהגויות:

  1. באופן דיפולטי טיפוסים לא יכולים להיות Null.

  2. כדי לא לשבור את הקוד הקיים שלכם - תוכלו להגדיר איפה Dart יכלול Type Safety ואיפה לא.

  3. תכונת Sound - דארט יכולה לאבחן ב100% שכל משתנה שצריך להיות לו ערך - יש לו ערך. תכונת הSound מאפשרת לקבל בDart אופטמיזציות בקימפול שמאפשרות חיסכון במקום ובמהירות, על פי בדיקה התקבל שיפור ביצועים של עד 19% בחלק מהמקומות בFlutter.

מה אם נרצה להגדיר Null? לשם כך יש סינטקס מיוחד:

int? a;
a = null;
print('a is $a.');

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

  1. תיהיה תאימות לאחור עם הפרויקטים הקיימים שלכם.

  2. כעת אנו בשלב של Tech Preview - נותנים לקהילה לדבר ולהביע את הדעה על הפיצ'ר.

  3. לאחר מכן beta.

  4. ולבסוף העלאה לStable.

רוצים לנסות את הפיצ'ר כבר? בבקשה: https://nullsafety.dartpad.dev/4ce48b97196304dda3ce56fa568c44b8 רוצים לקרוא את ההכרזה הרישמית? בבקשה: https://medium.com/dartlang/announcing-sound-null-safety-defd2216a6f3


ברק מנחם,

מייסד קהילת Flutter Israel Developers

AppsFID+barak@gmail.com

134 צפיות0 תגובות