בלוג

Statecharts & XState – מכונת מצבים בקונספט יעיל יותר


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

Featured post

Micro Services Communication


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

Featured post

Micro Services – ארכיטקטורה שתרצו להכיר


מה זה Micro Services? פירוק המוצר לגורמים והרכבה מחדש. שזה אומר, חלוקה של המערכת לאוסף של רכיבים/שירותים פונקציונליים, בצורה אנכית – הפרדה לפי פונקציונאליות, דומיינים עסקיים. כדי להבין מהי Vertical seperation - הפרדה האנכית - ניקח כדוגמא מערכת מונוליטית שמספקת שירות של אותנטיקציה: לצורך הפשטות נניח שכל המערכת שלנו מכילה כרגע רק את הפונקציונאליות הבאה:... Continue Reading →

Featured post

מקורות ללמידת יסודות בתכנות,אלגוריתמים, ML, System Design


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

Featured post

בואו נדבר על אליס ובוב, RSA, Public-Private Keys ופרוטוקולי תקשורת


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

Featured post

בוט חכם & Slack


בשל מיטאפ שאעביר בקרוב, על בוט שיצרתי על מערכת Slack, התחלתי לכתוב תוכן שחשבתי שכדאי לשתף איתכם בסדרת פוסטים קצרים. זה יכלול דיבור על Slack Bot וגם הרבה קונספטים קשורים שמרכיבים את התהליך, כמו הגנה על הסרבר של הבוט – פתוח לעולם, RSA, Public-Private Key, Https + Man in the Middle, תמיכה ב Multiple Clients אם בעתיד נרצה להטמיע את הבוט באפליקציות נוספות (כמו Teams, Outlook ועוד) סלאק היא תוכנה של ניהול תקשורת ארגוני. כיום היא סטנדרט בחברות תוכנה, ואולי גם בתחומים אחרים. פיצ'ר חשוב של סלאק הוא הבוטים. סלאק תומכת ומעודדת יצירת בוטים על גביה – כמין אפליקציות קטנות חכמות – שנועדו לייעל daily tasks, לאפשר הרצת תהליכים ארגוניים בפקודה פשוטה ואינטואיטיבית, לקבל מוניטורינג באמצעות הבוט שרושם לצ'אנל ייעודי סטטיסטיקות / פרודקשיין errors/ Anomalies מכל סוג שהוא ועוד.

Featured post

DSL– פוסט אירוח – סקירה


כשלמדנו לתכנת, למדנו כמעט "לגעת בברזלים", למדנו ליצור משתנים, מצביעים, ואפילו לנהל את האוגרים. בפועל, אנו משתמשים באבסטרקציות - יש דברים שחושפים לנו שאנו יכולים לעשות, ויש דברים אחרים שאינם חשופים לנו, ומבחינתנו הם "קורים באופן אוטומטי". דוגמה לאבסטרקציה זה הקטע שאנחנו מקצים משתנים מבלי לנהל זיכרון. שימו לב, שבהכשרות למתכנתים לומדים איך לתכנת עם ובלי האבסטרקציה הזו (Assembler, C, C#). אבסטרקציה תפקידה להסתיר פרטים "לא חשובים". אך כפי שתיאר ליאור בר און (לינק למטה), ישנם מצבים שנאלצים להתחקות אחר אותם פרטים. זה נקרא "זליגה", האבסטרקציה לא הצליחה להסתיר פרטי מימוש. הרבה פעמים נחלק את הקוד שלנו לשניים, לcore ולמה שמשתמש ב-core. למשל מייצרים API, ומערכות חיצוניות יתקשרו עם המערכת דרך ה-API. גם כאן, חושפים כלים ומשאירים פרטים פנימיים חסויים ו"אוטומטים".

Featured post

Caching – מסע מקיף


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

Featured post

Clean Architecture


לאחרונה יצא לי להרצות בשתי פורומים שונים על ארכיטקטורה שהתוועדתי אליה באחת העבודות הקודמות שלי. התנסיתי בה באופן אישי, במשך כמה חודשים טובים, בארגון שקיבל החלטה להעביר service מ .Net Famework ל .NetCore 3.x, וה CTO בחברה לקח כמה החלטות ארכיטקטוניות ובכללם ללכת על הארכיטקטורה הזאת, פלוס עוד כמה מתודולוגיות פיתוח ו design patterns שאפרט... Continue Reading →

Featured post

סקירת Machine Learning Algorithms


מה זה Machine Learning למידת מכונה נתפסת כנגזרת של בינה מלאכותית – AI. זהו בעצם לימוד אלגוריתמים שבאמצעות ניסוי וטעייה, משפרים את עצמם באופן אוטומטי. בגדול  - לוקחים נתונים לדוגמא, המכונים "training data" – נתוני אימונים, והאלגוריתמים של למידת מכונה בונים מודל מתמטי בהתבסס על נתונים אלו, על מנת לחזות דברים או לקבל החלטות, מבלי... Continue Reading →

Featured post

כלים, סביבות פיתוח ומה הסדר יום של מתכנת


נתחיל בסדר היום: מגיעים מתמקמים, מכינים קפה, מדליקים את כל התוכנות הרצויות.מסתכלים על ה dashboard או הquery שמכיל את המשימות לאותו יום ומתכוננים לדיילי, הסבר: בשיטת Agile, העבודה מחולקת לתכולות קטנות וספרינטים. ספרינט יכול לקחת שבוע ויכול לקחת 3 שבועות, לפי ההחלטה בחברה. אני לא אפרט יותר מידי על השיטה, רק אזכיר את ה Daily... Continue Reading →

Featured post

אתגר – שמירת אובייקט מורכב


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

Featured post

"ריספונסיביות" מושג שכדאי להכיר


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

Featured post

Swagger


Swagger הוא ייצוג פשוט אך עוצמתי של ממשק ה RESTful API בפרויקט.עם Swagger-enabled API מקבלים תיעוד אינטראקטיבי, ייצור SDK של קליינט ויכולת גילוי של הAPI. זה כלי מדהים שמציג את המפרט של השירות ללקוחות שצורכים אותו.כמו כן ניתן בעזרתו לבנות את הAPI כולו, בקובץ XMLניתן לנהל ולהציג בו גרסאות שונות של השירותים בAPI.ניתן לראות בצורה... Continue Reading →

Featured post

Finite State Machine כמידול תוכנה


היכרות עם הקונספט של מכונות מצב - למי לא מכיר. פוסט זה מתיימר לתאר את FSM כדזיין הרבה יותר יעיל. נלמד זאת בהמשך אבל בקצרצרה: כל המצבים והאירועים מצויים בקובץ אחד שמרכז את כל ה"סכמה" שלנו לאותה הלוגיקה. מה שאומר שלמפתח חדש בצוות, יהיה קל וקריא לראות את כל היכולות שפותחו לאותו משתנה - במקום אחד, כולל היסטוריה מרוכזת של ה version control, כולל כל הטסטים האפשריים שנעשים ללא תלות נוספת חוץ מבקובץ ההגדרה של ה FSM. אין היתכנות למצבים בלתי חוקיים בלוגיקה. אין היתכנות לאירועים בלתי מתוכננים. אין היתכנות לשינויים שיכולים לגרום ל unknown side effects ע"י מתכנתים שבאים מאוחר יותר, חדשים לפיצ'ר ועוד. דיסקליימר חשוב! כמו תמיד - we ain't gonna buy it all! אני פה במטרה לעשות היכרות רעיונית והבנה ראשונית של הארכיטקטורה. מעשית - יש overhead / engineering די גדול וצורך בהבנה ותכנון ראשוניים די מקיפים.

טיפים בחיפוש עבודה, ומילה על חברות השמה


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

.NET Core – מה זה ולמה כדאי לי לדעת


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

Anomaly Detection – וטכניקות למידת מכונה


מה זה Anomaly Detection? זיהוי אנומליות – גילוי חריגים מונח מתחום כריית מידע. תהליך גילוי חריגים יכול להתבסס על מאגר תצפיות ואיתור תצפיות /אירועים אשר אינם תואמים לשאר התצפיות, או על יצירת דפוס צפוי, ואיתור החריגים שאינם תואמים לאותו הדפוס. אותם חריגים, לרוב, מצביעים על בעיה כלשהי.

הזמנה להרצאה שלי – וובינר על חיפוש עבודה בהייטק


היי, לאחרונה התחלתי עבודה חדשה בחברת SAP או יותר נכון בחברת בת שלה שנקראת GIGYA ויושבת בעזריאלילכן הייתה הפסקה קצת בפוסטים, אבל עוד נחזור לזה בפול טיים בהמשך! בנתיים, שמחה לשתף איתכם על וובינר מיוחד שהוזמנתי להרצות בו זהו כנס שמיועד לנשים בלבד, והנושא הוא: חיפוש עבודה בהייטק המארחת היא טליה שוורץ, מנהלת מיזם GoHigh... Continue Reading →

אנגולר למתקדמים – איחוד קריאות שרת – CombineLatest


קיבלתי את השאלה הבאה: אם אני רוצה לבצע כמה קריאות לשרת במקביל ואז קריאה אחרונה לבצע רק כאשר כל הקריאות הסתיימו - איך הכי נכון לבצע את זה?זה לא לכתוב פניה לפונקציה בsubscribe  כי אני רוצה לבצע אותה אחרי כל הפניות לשרת.משתמשים אצלנו ב Promise ועשו Promise.all...מכירה משהו יותר נכון באנגולר 8? אז האמת שזה... Continue Reading →

Angular 8 RxJS (ReactiveX) – Observable vs Promise


RxJs או בשמה הקודם ReactiveX, היא ספרייה, npm package, לשפות מבוססות JavaScript כמו modern frameworks - אנגולר, ריאקט ועוד.שימושית מאוד ומומלצת, נועדה לתת פתרונות נרחבים לעבודה אסינכרונית ועיבוד נתונים רציף.אם אתם משתמשים בה, סביר להניח שהיא נוגעת בכל חלקי הקוד שלכם. ספרייה זו מיועדת לאפליקציות asynchronous and event-based.היא מספקת טיפוס עיקרי שהוא Observable, וטיפוסי תקשורת... Continue Reading →

Angular Schematic – כלי משמעותי לתבניות חוזרות בקוד


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

יצירה של אתר חינמי או בלוג ב־WordPress.com.

למעלה ↑

עם WordPress.com אפשר לעצב אתרים כאלה
להתחיל