אינטרנט ישראל
  • ראשי
  • אודות רן בר-זיק ואינטרנט ישראל
  • ערוץ טלגרם
  • מסטודון
  • התחברו אלי בטוויטר
  • התחברו אלי בלינקדאין
  • ספר ג'אווהסקריפט
  • ראשי
  • אודות רן בר-זיק ואינטרנט ישראל
  • ערוץ טלגרם
  • מסטודון
  • התחברו אלי בטוויטר
  • התחברו אלי בלינקדאין
  • ספר ג'אווהסקריפט
ראשי » פיתוח אינטרנט » פתרונות ומאמרים על פיתוח אינטרנט » שירות SAAS שיסייע לפייסבוק

שירות SAAS שיסייע לפייסבוק

רן בר-זיק יוני 4, 2017 8:31 am 2 תגובות

שירות חדש ומגוחך במיוחד שיסייע לחברת ענק שלא מצליחה להתמודד עם בלוגר והזדמנות מעולה לדבר על CI\CD.

כדאי תמיד להשאר מעודכנים! אם יש לכם טלגרם, בדקו את ערוץ הטלגרם של האתר שבו אני מעדכן על פוסטים חדשים 🙂 אם אתם רוצים ללמוד תכנות באופן מקיף ומסודר, הצטרפו לאלפי הלומדים בפרויקט "ללמוד ג'אווהסקריפט בעברית" שמלמד לתכנת בג'אווהסקריפט, ב-Node.js ובריאקט וגם מלמד על תרומה לקוד פתוח. גם ספרים דיגיטליים וגם ספרים מודפסים. בשיתוף הקריה האקדמית אונו ובתמיכת חברות מובילות כגון Wix, Outbrain, Elementor, Iron Source, Chegg, Really Good ועוד.

פייסבוק נחשבת כחברה חזקה מאוד מבחינה טכנית. בחברה עובדים אלפי מתכנתים, חלקם חדים כתער. אך מסתבר שגם לחברת ענק יש קשיים טכנולוגיים ניכרים.
בשנה האחרונה דורי בן ישראל קריו, איש תעשיית הדיגיטל ובלוגר מוביל שהבלוג שלו –mizbala.com נחשב מוביל בתחום, מסקר את פייסבוק באופן מאוד לא חיובי. בסניף הישראלי של פיסבוק לא נותרו חייבים ואחרי שדורי פרסם קישור לאתר לא מחמיא במיוחד, פייסבוק הכריזו על הבלוג שלו כאתר 'ספאם' שלא ניתן לשתף אותו כלל ברשת החברתית. נסו עכשיו! אם תשימו במסנג'ר mizbala.com תראו הודעה שמדובר באתר ספאם אסור לשיתוף.

הודעה על כך שאתר לגיטימי לחלוטין הוא ספאם

דורי יצר אתר חדש בשם mizbalax.com על מנת כן לאפשר שיתוף של האתר שלו. איך? באתר mizbalax יש iframe שמקשר אל האתר "האסור". כך למשל, http://mizbalax.com/sue-facebook מכיל iframe אל http://mizbala.com/news/119073. במקביל, בן ישראל תבע את פייסבוק באשמת הפצת דיבה. כיוון שהאתר שלו אינו אתר ספאם או אתר המכיל תוכנה מזיקה.

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

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

(מתוך העין השביעית)

זה מדהים, פייסבוק לא מצליחים להתגבר על מנגנון כל כך פשוט וכותבים את זה באופן רשמי? אל דאגה! רן עוז לפייסבוק יתן! על מנת לסייע לפייסבוק יצרתי API פשוט שמקבל פלט פשוט – אתר לבדיקה ואת דומיין האתר 'האסור'. במידה והאתר הנבדק מכיל iframe שמוביל אל האתר האסור, התגובה מה-API תהיה true. במידה ולא, התגובה תהיה false. נחמד, נכון?

כל זה נעשה ב-30 שורות בערך ובנוי על node + express עם ES6. אתם יכולים לבדוק את זה ממש כאן. בדף יש הסבר וגם דוגמה. אני מזמין את המתכנתים שיש בפייסבוק להשתמש בשירות ה-SAAS הזה כדי לחסום את אתר המזבלה באופן סופי, או לחלופין, לדבר עם עורכי הדין שלהם כדי שלא יוציאו אותם כל כך רע בכתב ההגנה שהם מספקים.

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

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

בדיקת קוד סטטית

כל קבצי הג'אווהסקריפט עומדים בקונוונצית קוד אחידה שנאכפת על ידי eslint. ניתן בכל שלב בחיי הפרויקט להריץ npm run lint על מנת לבדוק את הקבצים. כך אני יכול להיות בטוח שהקבצים כתובים באופן אחיד שמתאים לצרכים שלי ולהעדפות שלי.

בדיקת יחידה

ישנן בדיקות יחידה על האפליקציה. מדובר בבדיקות שמדמות שרת שיש בו iframe וה-API נבדק אם הוא מחזיר true או false. אני יכול להרחיב את האפליקציה או לשנות את המנגנון שלה ולהיות בטוח שהפונקציונלית הבסיסית לא נשברת. על מנת להריץ את הבדיקות, אני צריך רק להריץ npm test כדי לקבל חיווי מיידי ש:
השירות מוצא iframes שיש בהם src של שרת 'אסור' ומחזיר true.
השירות מוצא iframes שיש בהם src של שרת 'לגיטימי' ומחזיר false.
השירות מחזיר את דף ה-HTML שמסביר אותו.
בדיקות היחידה האלו נעשו עם mocha שמותאמת לעבודה עם node + express.

אינטגרציה עם TravisCI

זה שאני מריץ אצלי את בדיקת הקוד הסטטיות ובדיקות היחידה זה מעולה, אבל לא מספיק טוב. אם מישהו אחר יתרום קוד לפרויקט באמצעות גיט (הפרויקט מאוחסן בגיטהאב), אני חייב להיות בטוח שהקוד תואם לסטנדרטים – כלומר תואם לבדיקות של eslint ועובר את בדיקות היחידה. איך עושים את זה? עם TravisCI, כלי שמתחבר לגיטהאב, קורא את ההגדרות של הפרויקט, ובכל פול ריקווסט הוא מבצע את הבדיקות הסטטיות, את בדיקות היחידה ומתריע אם יש שגיאות. Travis הוא כלי אינטגרציה שקל לעבוד איתו בכל קוד, אבל במיוחד ב-node.

כל התהליכים שלעיל הם חלק מהליך שנקרא continuous integration – כלומר הליך שמטרתו היא החלקת התהליך של שילוב קוד חדש בקוד קיים. כי אם אני יודע שהקוד החדש עומד בקונבנציות של הקוד ואם אני יודע שהוא לא שובר כלום כי הוא עבר את הבדיקות, אז קל בהרבה לשלב אותו בקוד הקיים ולדעת ששום דבר לא יישבר.

העלאה לפרודקשן

אבל מה קורה עם העלאה לשרת? האם כל פעם שאני מוסיף משהו לענף ה-master (כלומר משלב את הקוד החדש בקוד הקיים) אני צריך להוריד את הקבצים ולשלוח אותם ל-FTP כמו בימי הביניים? לא. הקוד חי וקיים בשירות ענן שנקרא heroku. לשירות הזה יש אינטגרציה עם TravisCI. ברגע שה-Pull request מאושר והקוד החדש משולב לקוד הקיים, נעשה תהליך דיפלוימנט – כלומר הקוד עולה מיידית לשרת ונמצא חי לכולם.

וזה תהליך בסיסי שנקרא CI\CD כלומר: Continuous integration and continuous deployment – המשמעות שלו היא קיצור משמעותי של הזמן מרגע כתיבת הקוד עד הרגע שאנחנו יכולים להיות בטוחים שהוא תקין, לא שובר כלום, ממלא את הצורך שבגללו הוא נוצר ובשלב האחרון – שהלקוח נהנה ממנו. תהליך CI\CD הוא מאוד משמעותי עבור כל חברה שרוצה להיות מהירה מספיק. ואם יש אותה באפליקצית בדיחה שיצרתי, היא צריכה להיות גם במוצרים רציניים יותר 🙂

כדאי תמיד להשאר מעודכנים! אם יש לכם טלגרם, בדקו את ערוץ הטלגרם של האתר שבו אני מעדכן על פוסטים חדשים 🙂 אם אתם רוצים ללמוד תכנות באופן מקיף ומסודר, הצטרפו לאלפי הלומדים בפרויקט "ללמוד ג'אווהסקריפט בעברית" שמלמד לתכנת בג'אווהסקריפט, ב-Node.js ובריאקט וגם מלמד על תרומה לקוד פתוח. גם ספרים דיגיטליים וגם ספרים מודפסים. בשיתוף הקריה האקדמית אונו ובתמיכת חברות מובילות כגון Wix, Outbrain, Elementor, Iron Source, Chegg, Really Good ועוד.
CI node.js TravisCI פייסבוק

2 תגובות

  1. שלום הגב יוני 4, 2017 בשעה 7:04 pm

    הלינק בפריים mizbalax.com/sue-facebook מוביל לכתובת
    http://secure-mountain-52911.herokuapp.com/mizbalax.com/sue-facebook

    שמראה שגיאה כמובן
    תקן אותו

  2. א הגב יוני 5, 2017 בשעה 10:39 am

    אני כאן בשביל הבדיחות 🙂

    וגם הכלים נשמעים מעניינים מאוד

השארת תגובה

ביטול

ללמוד ג'אווהסקריפט בעברית

ללמוד לתכנת ג'אווהסקריפט בעברית שגייס יותר משלוש מאות אלף שקל ולמעלה מ-2000 תומכים - בואו ללמוד עכשיו איך לתכנת.

רשימת הנושאים
  • מדריכים
    • ריאקט
    • טייפסקריפט
    • ECMAScript 6
    • ES20XX
    • Node.js
    • Express
    • רספברי פיי
    • Babel
    • docker
    • MongoDB
    • Git
    • לימוד MySQL
    • SASS
    • jQuery
    • CSS3
    • HTML 5
    • SVN
    • LESS
  • פיתוח אינטרנט
    • פתרונות ומאמרים על פיתוח אינטרנט
    • jQuery Scripts
    • jQuery למתקדמים
    • יסודות בתכנות
    • נגישות אינטרנט
  • חדשות אינטרנט
  • מידע כללי על אינטרנט
    • רשת האינטרנט
    • בניית אתרי אינטרנט
  • rss logo

    לכל המאמרים

    לכל המאמרים שפורסמו באינטרנט ישראל משנת 2008 ועד עכשיו.
  • rss logo

    RSS Feed

    משתמשים בקורא RSS? אם כן, עקבו אחרי אינטרנט ישראל באמצעות פיד ה-RSS!
    מה זה RSS?
  • Twitter logo

    עקבו אחרי בטוויטר

    בחשבון הטוויטר שלי אני מפרסם עדכונים מהירים על חדשות בתחום התכנות והיזמות, התרעות על מצבי חירום ורכילות בוערת על תחום הווב.
    מה זה טוויטר?
  • facebook like image

    ערוץ הטלגרם של אינטרנט ישראל

    בערוץ הטלגרם של אינטרנט ישראל אני מפרסם את הפוסטים של באתר וכן עדכונים טכנולוגיים נוספים.
    מה זה טלגרם?
  • github logo

    הפרויקטים שלי בגיטהאב

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

כל הזכויות שמורות לרן בר-זיק ולאינטרנט ישראל | מדיניות הפרטיות של אתר אינטרנט ישראל | אתר אינטרנט ישראל נגיש לפי תקן WCAG 2.0 AA | הצהרת הנגישות של האתר | אבטחת מידע ודיווח על בעיית אבטחת מידע

גלילה לראש העמוד