-
לאחר מריטות עצבים של שנים על גבי שנים וניסיונות בכל זאת לגלות את הדרך הנכונה לתחזק את השידוך הזה. אני מודיע על גירושין סופיים (ילדים שכבר נולדו - פרוייקטים קיימים יועברו לחזקת האם תמורת מזונות שהלקוחות ישלמו).
מסקנותיי:
החיבור בין מסד נתונים לבין קוד מונחה עצמים, צריך להיעשות על ידי המפתח עם מספיק גמישות, ולא על ידי משטר טוטאליטרי של מייקרוסופט זה לא עובד. דטה בייס וקוד הם עולמות שונים, והחיבור ביניהם צריך להיות על בסיס סחר חופשי.
אז כמובן, לא לוותר חלילה על OOP, ולא לוותר על דטה בייס מנורמל ומאורגן. האם שניהם חייבים להיות תאומים סיאמיים?? חלילה וחס!!!!! לכל "רצפת ייצור" התנאים המתאימים לה.אז איך לעבוד מכאן ואילך? עד כמה שאני זוכר יש מספר ספריות מתחרות, שלא כופות עליך מיפוי דקדקני ולא "מתעצבנות" כשמשהו לא מתאים. בסך הכל מדובר בהעברת חבילות מידע מעולם לעולם, ואפשר לעשות זאת בצורה רכה וגמישה יותר.
גם אני בעניי פיתחתי ספריה קטנה לבד (ואיתה אני משתמש במקביל כבר שנים רבות) אשקול להעלות אותה לגיט האב אם תהיה לכך הצדקה. דומני שמה שכבר יש בגיטהאב הוא מספיק טוב. העיקר לא Entity Framework.
אני פונה כמובן לאלו שמתחילים את דרכם בעולם התכנות ומערכות המידע, אני הייתי שם, וכעת אני מודה ועוזב. מי שכבר באמצע עם פרוייקט קיים אינני יודע אם זה שווה את המחיר.
יש תופעה ידועה בעולם התוכנה ובעולם בכלל (מקווה שלא כאן בפורום של הצדיקים...) שמי שכבר תקוע עם טכנולוגיות והרגלי עבודה, נמצא באזור נוחות שהוא לא רוצה לשנות אותו, והוא בדרך כלל ינסה להצדיק את חטאיו הקודמים ולהפיל איתו בפח עוד אנשים כדי להפוך ל"מומחה שלהם". אז הזהרו גם מכאלו היועצים לכם לפי דרכם.
מוזמנים להתקיף בחזרה.
-
@ארכיטקט הבנתי שהדברים מתובלים כהרגלך בהומור וציניות, ואחר בקשת המחילה, אני חושב שזו הצהרה מעט יומרנית.
הרעיון מאחורי עיצוב מודלים שתואמים לישויות נתונים הוא עתיק, מיסודות OOP. ההפשטה הזו הגיונית, ומאפשרת קוד קריא ואינטואיטיבי. לא חושב שיש טעם לצאת בכרוז נגד זה.
EF הוא כלי מרשים למדי, שנוצר בעקבות הביקוש לצורת העבודה הזו.אני מודה על האמת, שלא רציתי בכלל להסתכל על EF בתחילה. אני לא אוהב קוד שלא אני יצרתי, אבל אני חייב לתחזק. מי הם מייקרוסופט שיקבעו לי מה לעשות, ואיך לעשות את זה?
השתמשתי רק ב-Dapper, והרגשתי נהדר למשך תקופה. עד שבסופו של דבר, ראיתי שאני משקיע המון זמן בבניה של ה-DB, עיצוב האובייקטים, migrations ("הַגִירוֹת" בלע"ז... ), מיפוי וכו'.
כשראיתי קוד של EF, זה היה פשוט וקריא בצורה מעוררת קנאה.אגב, "המשטר הטוטאליטארי" של מייקרוסופט מאפשר הרבה גמישות, למי שבקי בנבכי ורזי EF.
איך תרגיש אם אני אצהיר ששפת התכנות X היא הכי טובה, או שלשפה Y אין שום מקום על פני האדמה? כל שפה נוצרה לצורך מסוים, שאולי מיותר לחלוטין במקום אחר.
בקיצור, לכל זמן ועת.EF הוא כלי מבוסס, וגם Dapper. לכל אחד מהם יש חסרונות או מוגבלויות. אני חושב שהצורה היותר נכונה להסתכל עליהם היא לפי התועלת שהם נותנים.
אחת הדרכים היא להשתמש ב-Dapper לקריאה מה-DB ולהרויח את המהירות בקריאה , וב-EF לכתיבה, שדורשת פעמים רבות עדכון מבוזר של נתונים בין טבלאות\ישויות שונות, והמשתמש יותר סלחני בקשר לזמן התגובה שלה. -
@OdedDvir נו אז יש לנו מניפסט הפוך. אדרבה ואדרבה. העיקר שאתה מדבר מניסיון וחיכוך רב שנים. אין כאן כל כך עניין עקרוני זה יותר עניין פרגמטי. לגבי עדכונים זה הפיתוי הגדול ביותר להצטרף לחגיגה.
אגב כל משטר טוטאליטארי מאפשר גמישות למי שיודע את כל סודותיו ואותיותיו ורמזיו היוצאים ממנו, אפילו במדינת ישראל יש אנשים מסויימים שמסתדרים איכשהו עם הבירוקרטיה אחרי שבזבזו חצי חיים כדי ללמוד אותה.
אבל מי אני שאתווכח. -
@ארכיטקט
בתור נציג ה'ילדים' בפורום
ש'חוטא' בכתיבה בהנ"ל
אצרף את הגיגיאתה בעצם מתאר את המגבלה הרצינית שקיימת ליצרני המכוניות האוטונומיות
אתה רואה את עצמך משקיע 350,000 ש"ח ברכישת רכב אוטונומי
ונוסע בכביש ירושלים - תל אביב במהירות 90 קמ"ש....
כאשר מסביבך דוהרות מכוניות על 120
(הרי אסור להם 'לתכנת' מהירות נסיעה מעבר למותר בכביש)האם תשב ותמתין 40 דקות כדי להשתלב בנתיב יציאה....
בעוד כולם חותכים אותך מימין ומשמאלכך שסביר שזה יכנס לשימוש בעיקר למוניות / אוטובוסים וזקנים/ות
והנמשל:
נהג מיומן כמוך שעבר קילומטאר'ז ארוך בכתיבת קוד / DB
אכן אין ספק שהחופש לבחור וליצור עצמאית גדול לאין ערוךאבל לנהג צעיר
המגבלות הקיימות בשפה
זה המסלול הבטוח לכתיבת הקוד בצורה נכונהאני ללא ידע מקדים בתכנות / אנגלית
הצלחתי לבנות תוכנה די מורכבת שפעילה ועובדת
רק בזכות המרובעות והקשיחות של השפה
שזרקה לי הערות ושגיאות כל הזמןולכן @ארכיטקט צודק שאסור לשבת בשקט ולהגיד 'זה עובד' - לא לגעת...
אלא לדעת להתקדם ולעבוד יעילו @OdedDvir צודק שלכל זמן ועת
עת לבחור ועת לעזוב -
@dovid
אני משתמש בזה כרגע חלקית מאוד
היה לי 'חור' בתחביר של זה (לעומת שאילתה רגילה בSQL שאני יכול קודם להריץ בSSMS ולראות האם התוצאה נכונה)אחרי שראיתי את הדיון פה
הבנתי שהכלי שחסר לי זה LinqPad וכעת אני מנסה ללמוד כיצד לתפעל אותווזה הוכחה נוספת לתזה
@ארכיטקט אמר במנשר - אזהרה לציבור הצעיר לא להתפתות להתקרב למסגרת ישות של מייקרוסטופ:שמי שכבר תקוע עם טכנולוגיות והרגלי עבודה, נמצא באזור נוחות שהוא לא רוצה לשנות אותו
-
@OdedDvir אמר במנשר - אזהרה לציבור הצעיר לא להתפתות להתקרב למסגרת ישות של מייקרוסטופ:
migrations ("הַגִירוֹת" בלע"ז... )
סתם שתדע הכלי הכי מתאים לניהול פרוייקט של דטה בייסים הוא ויזואל סטודיו ומומלץ ביותר על ידי ה DBAים
הוא גם יודע לעשות ריפקטורינג ומקמפל את הפרוייקט לפני שהוא מעדכן את הדטה בייס כמובן תומך בGIT מטבע הדברים ועוד ועוד. -