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

הבנה: אדריכלות ראשונה

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

גישה זו נקראת לעיתים (FLT:0)local-Firstearph 1 Software משום שהמכשיר המקומי הוא מקור האמת לאינטראקציות המשתמש. for Engineering fieldwork, כלומר מהנדס יכול לאסוף קוראי חיישן, למלא את רשימת הסימון, ללכוד תמונות ועדכון רשומות נכסים - כל זאת ללא דאגה אם הנתונים יאבדו סינכרוניזציה מתרחשת באופן אוטומטי ברקע, לעתים קרובות באמצעות טכניקות כמו: P2T: LTD) ועדכונים מרובים על פני פתרון נתונים (Ric) או נתונים מורכבים על פני נתונים עקביים (Ric-Ric) או נתונים (RORDNS) או נתונים (RORDNS)

טכנולוגיות בסיסיות שיעזרו Offline-First Engineering Apps

עובדים ואסטרטגיות Caching

(FLT:0) עובדי שירות מילואים 1:1) הם עמוד השדרה של יישומי אינטרנט לא מקוון-ראשון.הם פועלים כפרוקסיזות רשת שניתן ליירט בקשות להביא, ומאפשרים לאפליקציית לשרת תשובות מקובעות כאשר הרשת אינה זמינה.

  • (FLT:0Cache-So-Network:FLT:1 Display Cched data מיד תוך הבאת נתונים טריים ברקע. אידיאלי לרשימות נכסים או חומרי התייחסות שמשנים באופן בלתי צפוי.
  • (FLT:0Network-So-Cache:FLT:1) נסה להביא מהרשת תחילה, ליפול בחזרה ל- cache אם לא במצב לא מקוון, הטוב ביותר עבור נתונים שחייב להיות נוכחיים ככל האפשר, כגון מזג אוויר או התראות בטיחות.
  • (ב) ⁇ :0Cache-Onlymia: FLT:1 לשרת רק מטמון.מושלם עבור משאבים סטטיים כמו קוד יישומים, CSS ודימויים שלעולם לא משתנים בין פריסות.

Libraries like (FLT:0)WorkboxFLT:1u) פשט ניהול עובד, המציע אסטרטגיות גילוח בנוי מראש וזרימת עבודה פשוטה פיתוח.שימוש בתיבת עבודה, אתה יכול ליצור עובד שירות כי מצמיד את האפליקציות שלך ואת התוכן דינמי עם תצורה ידנית מינימלית.

אפשרויות אחסון ו-CDC

בעוד ש-FLT:0 הוא פשוט, הוא מאחסן רק מיתרים ויש לו 5 MB לכל מקור - מגביל מדי עבור נתונים הנדסיים שעשויים לכלול מסמכי JSON, קבצים בינאריים, או יומני גדול.FLT:0IndexedDBFLT:1 הוא הפתרון המומלץ עבור יישומים לא-ראשון.זה מספק מסד נתונים מלא דמויי נתונים בדפדפן, המסוגל לאחסון נפיחות של נפיחות של נפיחות, כולל נפיחות של נפיחות של נתונים מובנית.

IndexedDB תומך באינדקסים, בעסקאות ובקידודים, מה שהופך אותו מתאים לשאילתת נתונים גדולים באופן מקומי.לדוגמה, אפליקציה לבדיקה יכולה לאחסן אלפי רשומות בדיקה קודמות שאינדקסו על ידי מיקום, תאריך או שם מפקח, המאפשר חיפוש מקומי מהיר גם ללא אינטרנט. Libraries כגון FLT:0Dexie.jsF:1LT 1LT , עם אינדקס פשוט מבוסס API, צמצום קוד חתלתר באופן דרסטי.

מנועים סינכרון: PouchDB, CouchDB ואחרים

איסוף נתונים מקומי הוא רק חצי הקרב.החצי השני הוא סינכרוניזציה אמינה. PouchBADBFLT:1] הוא ספריית JavaScript אשר מיישמת את פרוטוקול הספהDB בדפדפן.הוא משתמש באינדקסDB (או WebSQL) כגיבוי המקומי שלו ויכול לסנכרן דו-כי-כיופני עם כל שרת של CouchDB-התאמה, זה הופך אותו לבחירה טבעית עבור יישומים הנדסיים לא-לא-לא-מודעים, אשר צריך ויזואליים, או חיישנים, כדי לסנכרונכרונכרונכרונכרונכרונכרנים, או ויזואליים, או ויזואליים, כדי לבצע ויזואליים, או , כדי לבצע , כדי לבצע בדיקות.

(ב) כאשר מכשיר מגיע באינטרנט, PouchDB משכפל באופן אוטומטי שינויים בשרת ומושך עדכונים ממכשירים אחרים.פתרון סכסוכים ניתן לטפל בלוגיקה אישית (למשל, השוואת דגימות או שדות מיזוג) או באמצעות שימוש ב-FLT:0automatic Detection FLT 1 בנוי ל- PouchDB.

תכונות מפתח הנדרשות להנדסת שדה

אחסון נתונים מקומי ועיצוב שema

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

לדוגמה, אפליקציה לבחינה מבנית עשויה להגדיר סוג מסמך "עין" עם שדות:5, FLT:1 (לא ייחודי), FLT:2,FLT 3:,FLT:4, FLT:4, FLT:5, 5, ;5,5, ;5, ⁇ :6 (רי של תצפיות פגומות), ו-FLT 7 (רי של מחרוזת או אזכורים לאחסון).

גילוי סכסוכים והחלטה

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

  • (ב) [האחרונה]: [האחרונה] – ניצחונות (LWWWir): 1:1 השיא עם הטיימס האחרון לוקח עדיפות.
  • [ה]הפסקות של דגלים ותנו למפקח או למזג אותם.
  • (ב) ⁇ :0) אסטרטגיות: 1.10.10.1 עבור שדות רשימה, נספח הן תרומות; עבור שדות סקאלר, השתמש ב-LW או להפנות את המשתמש.

(ב) פוקד תומך ב-LWW מתוך הקופסה, תוך מתן אפשרות למטפלים בסכסוכים מותאמים אישית (לתרחישים מורכבים), לשקול שימוש ב-LWFLT:0CRDTsigsFLT:1 באמצעות ספריות כמו FLT:2Y.jsFLT 3: 3 (או FLT:4AutomergeFLT:5, אשר להבטיח את המידות בסופו של דבר ללא קונפליקטים.

דרישות אינטרנט מתקדמות

PWAs הם התאמה טבעית עבור יישומים הנדסיים לא מקוון.הם מאפשרים את היישום להיות מותקן על מסך הבית של המכשיר, להופיע כמו אפליקציה ילידת. באמצעות aFLT:0Web App ManifestFLT 1 ו- Service Worker, היישום יכול לשגר ולתפקוד מלא לא מקוון משתמשים לא צריך לדאוג על סימני ספר או להזין מחדש כתובות.

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

טבלאות אחראיות ומגע ידידותיות

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

מקרים אמיתיים לשימוש

אתר בנייה

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

סקרים גיאולוגיים ו ניטור סביבתי

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

תחזוקה וניהול נכסים במתקני מרוחקים

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

אתגרים וכיצד להתגבר עליהם

שקיפות ופתרון סכסוכים

הבטחת שכל העותקים של הנתונים התכנסים למצב עקבי הוא החלק הקשה ביותר של פיתוח לא מקוון-ראשון.המפתח הוא ל-FLT:0design מודל הנתונים שלך כדי למזער את הסכסוכים (FLT:1 לדוגמה, אם רשומות נכתבות על ידי משתמשים ייחודיים עם קודמות זהות נפרדות, סכסוכים הם נדירים. השתמש בפעמים עם שעונים מונוטוניים (למשל, שרתי-מוח או היברידי) כדי לקבוע באופן יסודי את הסביבה שלך.

אבטחה של נתונים רגישים

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

  • שימוש ב-FLT:0.IndexedDB עם הצפנה של ההרחבה 1:1 באמצעות ספריות כמו LT:8 או הצפנה אישית לפני אחסון.
  • יישום (FLT:0) אימות ברמה של כפל 1 (למשל, ביומטרי או PIN) לפני מתן גישה לאפליקציית.
  • הבטחת נתונים רגישים אלה היא (FLT:0) לא מצופה יותר מאשר צורך ב- 1:1 - נתונים מקומיים ברורים לאחר מסנכרן מוצלח.
  • שימוש ב-FLT:0 HTTPSFLT:1 לכל תקשורת השרתים ואכיפת מדיניות אבטחת תוכן.

בדיקה אחרונה ב-Urontion Behavior Thoroughly

בדיקות תכונות לא מקוון דורשות יותר מאשר רק לכבות את הרשת בכלים dev הדפדפן.מהנדסים צריכים לדמות:

  • (ב) ,0) אובדן קישוריות הדדית של קונסולת 1 (למשל, נע בין אות חזק לחלש) וחיבור מחדש.
  • (ב) ,0) , מדרש (ב) , ויקרא י"ד)
  • (ב) ,0) מכשירים מורכבים לערוך את אותו שיא ללא הפרעה , ולאחר מכן מסנכרנים בו זמנית.
  • (ב) תנאים של ההרחבה:0 (Low Disk SpaceFLT) 1 התנאים להבטיח טיפול בשגיאות חסד.

השתמש בכלים מפתחי הדפדפן לרשת תפוצה, חיקוי לא מקוון, ומפקח על מכסת אחסון (CypressigtureFLT:1 או FLT:2PlaywrightFLT 3: 3 שדמיינו מצבים לא מקוון באמצעות יירוט עובד שירות.

מגבלת אחסון וגניבה

גם כאשר קישוריות חוזרת, ייתכן שהיא איטית או מ"מ (למשל, קישורים לווייניים) מעצבת את הסינכרון שלך להיות מצטבר - רק משדרת רשומות משתנות, לא כל מאגרי המידע (למשל, השתמש ב- gzip או ב-Sensationpack) עבור קבצים בינאריים גדולים כמו תמונות, יישום FLT:0chunked מעלה של מעלה מקודמת:1 עם יכולת אחסון, צד DDB, אם הם מתרמים באמצעות שימוש ב- API.

Best Practices for Building Offline-First Engineering Apps

עיצוב Offline מההתחל

אל תבנה אפליקציה מקוונת בלבד ולאחר מכן נסה להתמודד עם תמיכה לא מקוונת.במקום, (FLT:0assume למשתמש אין רשת ראשיFLT:1 במהלך טעינת נתונים ראשונית.Prefetch הכרחי נתונים התייחסות (למשל, רשימות פרויקט, הרשאות משתמש, טבלאות תצוגה) כאשר המשתמש הראשון להתקין את האפליקציה.

שימוש ב-Inremental SynSyncization

רק השינויים, לא כל מסד הנתונים של PouchDB, שכפול החיים של PouchDB עושה זאת באופן אוטומטי על ידי שינויים להאכיל.אם בנייה מסנכרן מותאם אישית, ליישם את AFLT:0change logof 1 או FLT:2last-upated timetampFLT 3 לתיעוד.

לספק למשתמשי הקלה את התוספת של קישוריות

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

המונחים: ⁇

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

  • (ב) ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇
  • (ב) ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇
  • (ב) [15] ,9.19.
  • (ב) [15] ,(א) , ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇
  • (ב) (בתרגום חופשי:0) ,0) ,(לאפליקציות Redux) או (עבור רדפוצית:2) ,Vuex OfflineveFLT 3, כדי להתמודד עם התמדה של המדינה ולסנכרן

לדוגמה מקיפה, ראה את מדריך FLT:0 (PouchDB) ביישומים לא מקווןים של ®FLT:1 ו-FLT:2MDN של Service Worker Documenter Documents (FLT 3:3) מתייחס גם ל-FLT:4 של Google's PWA Learning PathFreaFLT:5 עבור שיטות הטובות ביותר על ביצוע יישומי אינטרנט אמין לא מקוון.

מסקנה

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