מדהים!! הפעלת קבצי פייתון מתוך C# באמצעות ספרייה פשוטה
-
לא נשמע טוב לעבוד על בסיס רפלקציה זה נורא איטי
איטיות וביצועים הם אחד הדברים האחרונים שיש להתחשב בהם היום כששוקלים שיטות עבודה מומלצות, כל יום שעובר, הנושא הזה נעשה זניח יותר (הוא אמנם רלוונטי מאוד בכל הנוגע למסדי נתונים, אבל ממש לא לכוח עיבוד) כשתהיה גוגל או פייסבוק, תאמין לי שתמצא דרכים לחסוך בביצועים כדי לחסוך כסף של חומרה.
השיקולים העיקריים בשיטות עבודה הם קריאות הקוד, תחזוקה, איכות הפונקציות, ניהול שגיאות, כימוס, ועוד.. ועוד... אז אם יש לך משימות כלשהן שפייתון הוא הטוב ביותר בהם, ו/או כשאתה עובד בצוות ויש לך תותחי פייתון בשביל מטרה מסויימת, ו/או כשיש דברים מוכנים או חצי מוכנים באינטרנט וכן הלאה וכן הלאה. זה בוודאי שיקול הרבה הרבה יותר גדול מאשר ביצועים של רפלקציה וכו' (שהם גם דברים פתירים בהרבה מאוד מקרים כגון איתחול הרפלקציות עם עליית המערכת לאוויר כמו שעובד AutoMapper וכן הלאה).
בספר קוד קומפליט כתובמתכנתים הם בדרך כלל גרועים מאוד בלחזות את צריכת המשאבים של המערכת שהם בונים
פורסם במקור בפורום CODE613 ב20/05/2016 09:51 (+03:00)
-
רחמים, ישם מושג "מקושיות לא מתים". והנה אתה הורג ע"י שתי שאלות אגביות את המושג IronPhyton שכל קיומו נשלל מהבנתך.
גם אני לא כ"כ מבין איך עובדים עם זה, אבל אני לא קראתי עוד את אחד מעשרות הספרים שנכתבו על השפה, וגם אני מניח שאנשים לא עובדים קשה לריק, וצוות .NET לא מחפש כל מיני גימיקים משעמום.פורסם במקור בפורום CODE613 ב20/05/2016 10:43 (+03:00)
-
@דוד ל.ט.
רחמים, ישם מושג "מקושיות לא מתים". והנה אתה הורג ע"י שתי שאלות אגביות את המושג IronPhyton שכל קיומו נשלל מהבנתך.
גם אני לא כ"כ מבין איך עובדים עם זה, אבל אני לא קראתי עוד את אחד מעשרות הספרים שנכתבו על השפה, וגם אני מניח שאנשים לא עובדים קשה לריק, וצוות .NET לא מחפש כל מיני גימיקים משעמום.לא הרגתי אף אחד, אני רק רוצה להבין את המעלות כי גם אני רוצה להשתמש בזה!
[אגב מושג זה נאמר לגבי קיום מצווה שאין להתנות את קיומן בהבנתן, דבר שהוא לגמרי לא נכון בעולם התוכנה כמובן. אני לעולם לא אשתמש בקוד שאני כלל לא מבין איך הוא עובד העיקר שהוא עובד]דווקא הבחור מהקישור שהבאת רצה לשכנע את הבוס שלו להשתמש בפייתון עוד לפני שהוא עצמו הבין למה זה טוב זה באמת נשמע כמו התלהבות כמו שדובר כאן
אני משער שמפתחי דוטנט עובדים כדי לקרב כמה שיותר מפתחים לדגל של מיקרוסופט זה הכל, וכמו שהם שחררו את כל הדוטנט כקוד פתוח וכו', פשוט עוד צעד לכבוש את השוק.
איטיות וביצועים הם אחד הדברים האחרונים שיש להתחשב בהם היום כששוקלים שיטות עבודה מומלצות, כל יום שעובר, הנושא הזה נעשה זניח יותר (הוא אמנם רלוונטי מאוד בכל הנוגע למסדי נתונים, אבל ממש לא לכוח עיבוד) כשתהיה גוגל או פייסבוק, תאמין לי שתמצא דרכים לחסוך בביצועים כדי לחסוך כסף של חומרה.
השיקולים העיקריים בשיטות עבודה הם קריאות הקוד, תחזוקה, איכות הפונקציות, ניהול שגיאות, כימוס, ועוד.. ועוד... אז אם יש לך משימות כלשהן שפייתון הוא הטוב ביותר בהם, ו/או כשאתה עובד בצוות ויש לך תותחי פייתון בשביל מטרה מסויימת, ו/או כשיש דברים מוכנים או חצי מוכנים באינטרנט וכן הלאה וכן הלאה. זה בוודאי שיקול הרבה הרבה יותר גדול מאשר ביצועים של רפלקציה וכו' (שהם גם דברים פתירים בהרבה מאוד מקרים כגון איתחול הרפלקציות עם עליית המערכת לאוויר כמו שעובד AutoMapper וכן הלאה).
בספר קוד קומפליט כתובלדעתי הנושא של ביצועים הוא קריטי גם היום, על אף שהחומרה רק הולכת ומתחזקת אבל הדרישות של המהירות העיבוד וכמות העיבוד אף הם הולכים וגדלים ואף בקצב גדול יותר, עד שבהחלט אפשר לומר שהסיבה העיקרית לפיתוח חומרה מהירה, היא כדי להדביק את קצב מהירות העיבוד וכמות העיבוד ההולכים וגדלים.
דבר שני אם דיברת על "תחזוקה וקריאות הקוד" אז בוודאי שאין להשתמש באותו פרוייקט בשתי שפות שונות, ועוד שרק חלק מהצוות שולט בזה. הדבר גורם לפרוייקט להיות פחות תחזיק ופחות קריא. כמה שהפרוייקט תלוי דווקא באנשי צוות מסויימים כך הוא פחות תחזיק, מה נעשה אם הם יעזבו יום אחד למשל?
אם מצאת קוד באינטרנט אז תרגם אותו לשפה של הפרוייקט שלך, [אלא אם כן הקוד הוא ב C שעובד עם חומרה ואתה עובד עם שפה עילית שלא תומכת]."איכות הפונקציות, ניהול שגיאות, כימוס" - מה חסר לך ב C# ואיך פייתון עונה לך על החסרון?
אדרבא רפלקציה היא אנטי כימוס, כי רפלקציה יכולה להפעיל גם שיטות פרטיות ולשנות ערכים של שדות פרטיים ועוד המון דברים כאלו.
מאז ומעולם עשו הרחבות בלי רפלקציה, אם רוצים לעשות הרחבות צריך שהיישום הראשי יחשוף אינטרפייסים עם מאפיינים ופונקציות ואז אפשר לכתוב הרחבה בכל שפה, וכמו שיש בוורד ואקסל כו'. מה פתאום רפלקציה?מניסיון,
הIRONPYTHON הזה פשוט מדהים ושימושי.מה מדובר? תן דוגמא אחת טובה.
פורסם במקור בפורום CODE613 ב20/05/2016 13:22 (+03:00)
-
נכון מקושיות לא מתים אני אבל רוצה לבין מה טוב בזה
זהו שהניסוח שלך נותן הרבה פעמים רושם של קביעה מאשר של רצון לדעת. גם בשביל באמת לדעת משקיעים זמן ומחפשים לא זורקים שאלות באשכול ש"אם כבר" וסוחטי תשובות בכיוון של "נכון שזה לא משהו מיוחד?".
אם יש לך כח ללמוד על זה חפש ונסה ותשאל במקומות בהם אתה לא מבין. אם אין לך כח, אז אתה ממש לא חייב ללמוד גם אז זה טכנולוגיה מבריקה במיוחד. אינך חייב לוודא שזה "לא רציני" בשביל להשקיט את מצפונך...
מחילה על הדרשה אני עד עכשיו לא מבין מה השפה הזו (שכעת אחרי רפרוף מזכירה לי את powershell) אבל אני לא שופט אם היא מיותרת כל עוד שאין לי זמן להכיר אותה...פורסם במקור בפורום CODE613 ב20/05/2016 13:46 (+03:00)
-
אני לעולם לא אשתמש בקוד שאני כלל לא מבין איך הוא עובד העיקר שהוא עובד
אז תפסיק לתכנת עכשיו!!! אני לא מאמין לך שיש בן אדם על כדור הארץ שיודע איך הכל עובד בכל השכבות.
אני משער שמפתחי דוטנט עובדים כדי לקרב כמה שיותר מפתחים לדגל של מיקרוסופט זה הכל
מותגים ואופנה זאת אמנם מגפה גדולה מאוד בעולם התוכנה, אבל מפתחי דוט נט פחות נמצאים שם, יש דווקא הרבה סימביוזה בתחומים הללו, דווקא להיפך, הם מפתחים ספריות לאפשר לעבוד עם MySql ועוד מתחרים, דווקא כדי להקל על המפתחים ולא להכריח אותם לעיסקה של "או הכל או כלום". פייתון אהובה מאוד בקרב אנשי דוט נט ככה מהיכרות שלי עם אנשים בכירים מהתחום.
לדעתי הנושא של ביצועים הוא קריטי גם היום, על אף שהחומרה רק הולכת ומתחזקת אבל הדרישות של המהירות העיבוד וכמות העיבוד אף הם הולכים וגדלים ואף בקצב גדול יותר, עד שבהחלט אפשר לומר שהסיבה העיקרית לפיתוח חומרה מהירה, היא כדי להדביק את קצב מהירות העיבוד וכמות העיבוד ההולכים וגדלים.
זה נכון באופן כללי, אבל לרדת לרזולוציה של רפלקציה, נראה לי מוגזם מאוד.
אז בוודאי שאין להשתמש באותו פרוייקט בשתי שפות שונות
מאיפה אתה לוקח את הכלל הזה?? כל יישום אינטרנט מינימלי משתמש במינימום 4 שפות שונות, דטה בייס, צד שרת, HTML CSS JavaScript וזה רק ה"בוקר טוב" של היישום, תמשיך עם XML ועוד שאר עזרים וירקות, כשאתה מגיע לארוחת הצהרים, אתה רואה על השולחן עשרות פריימוורקים ושפות שונות.
ועוד שרק חלק מהצוות שולט בזה. הדבר גורם לפרוייקט להיות פחות תחזיק ופחות קריא. כמה שהפרוייקט תלוי דווקא באנשי צוות מסויימים כך הוא פחות תחזיק, מה נעשה אם הם יעזבו יום אחד למשל?
לאף חברה אין הגנה מפני עזיבה פתאומית של עשרות אנשי צוות, ולא רק בתחום התיכנות, זה נכון לגבי בנקים, רשויות ממשלתיות, וכל גוף מורכב אחר. כך שהפתרון שלך להחזיק בן אדם אחד שיודע הכל הוא לא מעשי בכלל.
אני אישית משתתף עכשיו בפרוייקט שיש מישהו שם שכתב דברים בפייתון ואין לי מושג מה הוא עושה שם, אני מקבל רק XML, ובזכות הפרוייקט הזה נתקלתי בספרייה הזו. יש הרבה שיקול כלכלי לפעמים, כשמנהל הפרוייקט ממליץ על משימה מסויימת שבפייתון תיקח עשירית זמן, אף מנהל לא יאשר לך תקציב של פי עשר."איכות הפונקציות, ניהול שגיאות, כימוס" - מה חסר לך ב C# ומה נותן לך ואיך פייתון עונה לך על החסרון?
לא שחסר משהו ב C# בנושא הזה, דיברתי על השיקולים שצריכים להנחות פרוייקט, כאשר הביצועים הם בין השיקולים האחרונים, פייתון זאת שפה אחרת, היא מתחרה על דברים אחרים ממה שהזכרת כאן, חפש קצת באינטרנט על השפה ותראה למה אוהבים אותה.
מאז ומעולם עשו הרחבות בלי רפלקציה, אם רוצים לעשות הרחבות צריך שהיישום הראשי יחשוף אינטרפייסים עם מאפיינים ופונקציות ואז אפשר לכתוב הרחבה בכל שפה, וכמו שיש בוורד ואקסל כו'. מה פתאום רפלקציה?
זה נכון לגבי פרודקשן, במהלך הפיתוח כשמפתחים את שתי הדברים במקביל, קשה מאוד להמתין בכל פעם לפבליש שמישהו אחר עושה בקצה העולם.
פורסם במקור בפורום CODE613 ב20/05/2016 13:59 (+03:00)
-
פייתון למי שלא יודע זה שפה שיש לה את כל היכולות לבצע צד שרת באינטרנט. לבצע תוכנות דסקטופ למחשב. תוכנות CLI. וכו'
זה שפה מאוד פופולארית בקוד פתוח. בלנדר למשל בנוי בזה.
לדעתי ההסבר הפשוט למה זה שימושי. כי יש מחלקות שקיימות רק בפייתון. או שהמחלקות בפייתון הם הכי משוכללות בתחומם. ולכן שווה לשלב את זה.
פורסם במקור בפורום CODE613 ב20/05/2016 14:05 (+03:00)
-
@דוד ל.ט.
נכון מקושיות לא מתים אני אבל רוצה לבין מה טוב בזה
זהו שהניסוח שלך נותן הרבה פעמים רושם של קביעה מאשר של רצון לדעת. גם בשביל באמת לדעת משקיעים זמן ומחפשים לא זורקים שאלות באשכול ש"אם כבר" וסוחטי תשובות בכיוון של "נכון שזה לא משהו מיוחד?".
אם יש לך כח ללמוד על זה חפש ונסה ותשאל במקומות בהם אתה לא מבין. אם אין לך כח, אז אתה ממש לא חייב ללמוד גם אז זה טכנולוגיה מבריקה במיוחד. אינך חייב לוודא שזה "לא רציני" בשביל להשקיט את מצפונך...
מחילה על הדרשה אני עד עכשיו לא מבין מה השפה הזו (שכעת אחרי רפרוף מזכירה לי את powershell) אבל אני לא שופט אם היא מיותרת כל עוד שאין לי זמן להכיר אותה...כשראיתי כותרת כמו "מדהים!! הפעלת קבצי פייתון מתוך C# באמצעות ספרייה פשוטה" זו הייתה הפתעה בשבילי, לא ידעתי שפייתון הוא כזה שימושי עד שהייתה חסרה ספריה להפעלתו עם דוטנט, ולכן שאלתי למה הוא שימושי? לא הלכתי לחפש תשובות באינטרנט כי הייתי בטוח שהנה כאן יש מישהו שמשתמש בשפה תדיר, אז הוא בוודאי יודע למה היא שימושים, ועד כעת רק קיבלתי תשובה שבאמת יעיל ושימושי אבל במקרים מאוד ספציפיים.
אני לעולם לא אשתמש בקוד שאני כלל לא מבין איך הוא עובד העיקר שהוא עובד
אז תפסיק לתכנת עכשיו!!! אני לא מאמין לך שיש בן אדם על כדור הארץ שיודע איך הכל עובד בכל השכבות.
אני אמרתי קוד שאני כלל לא מבין, אבל אם אני מבין בערך ואין לי קושיות והקוד מגיע מאדם שמבין בשפה שהוא כותב בה, אז למה לא, אתה בא ומקשה עלי "איך הכל עובד בכל השכבות", ברור שאף אחד לא יודע איך הכל בנוי, וכל אחד בעצם מסתמך על אחרים שכל אחד מקצועי בתחומו. אבל יש מינימום של ידיעה, ואם יש לך קושיה אתה צריך לקבל הסבר, על זה לא נאמר מקושיות לא מתים.
פורסם במקור בפורום CODE613 ב20/05/2016 14:32 (+03:00)
-
מאיפה אתה לוקח את הכלל הזה?? כל יישום אינטרנט מינימלי משתמש במינימום 4 שפות שונות, דטה בייס, צד שרת, HTML CSS JavaScript וזה רק ה"בוקר טוב" של היישום, תמשיך עם XML ועוד שאר עזרים וירקות, כשאתה מגיע לארוחת הצהרים, אתה רואה על השולחן עשרות פריימוורקים ושפות שונות.
נכון, אבל כל שפה עושה משהו אחד מוגדר ואין דבר שעושים אותו בשתי שפות במקביל, מה ש CSS עושה אז רק CSS עושה ומה ש HTML עושה אז רק הוא עושה, ואם יש לך דטה ביס, אז יש רק אחד, אתה לא משתמש גם ב MySql וגם ב SqlServer באותו פרוייקט, כך גם ברור שעדיף לכתוב את המודל או מה שזה יהיה רק בדוטנט או רק בפייתון.
פורסם במקור בפורום CODE613 ב20/05/2016 14:40 (+03:00)
-
נכון, אבל כל שפה עושה משהו אחד מוגדר ואין דבר שעושים אותו בשתי שפות במקביל, מה ש CSS עושה אז רק CSS עושה ומה ש HTML עושה אז רק הוא עושה, ואם יש לך דטה ביס, אז יש רק אחד, אתה לא משתמש גם ב MySql וגם ב SqlServer באותו פרוייקט, כך גם ברור שעדיף לכתוב את המודל או מה שזה יהיה רק בדוטנט או רק בפייתון.
לא, זה גם לא נכון, הכוח שלי נגמר לעת עתה. זה נראה שאתה מדבר אך ורק מתוך ניסיונך האישי והפרטי בפרוייקטים שאתה עושה אותם לבד בבית. אני מדבר איתך על פרוייקטים אמיתיים וגדולים, של חברות ענק (לא אני ולא אתה) סתם שתדע כשאתה מושך כסף מכספומט, או מגהץ כרטיס אשראי. הפעולה נרשמת בכ 400 דטה בייסים שונים, ועוברת דרך 250 סרביסים (חלקם הגדול קשור לאבטחת מידע ומסופק בכלל על ידי חברות חיצוניות, נראה לך שאת הכל כתבו באותה שפה?????)
פורסם במקור בפורום CODE613 ב20/05/2016 15:00 (+03:00)
-
הפעולה נרשמת בכ 400 דטה בייסים שונים, ועוברת דרך 250 סרביסים (חלקם הגדול קשור לאבטחת מידע ומסופק בכלל על ידי חברות חיצוניות
מנין לך זאת? אם אבטחת מידע, אז אדרבא צריך שכל הנתונים יהיו במקום אחד שמור וכמו שעשו בכרטיסי אשראי שרק בתנאים מסויימים מותר לשמור את המספרים של האשראי וחנויות רגילות משתמשים רק בטוקנים שנותנים אותם אלה שמותר להם לשמור. כמה שיותר סרביסים וכמה שיותר דטה בייסים אדרבא הנתונים יותר עלולים לחשיפה.
פורסם במקור בפורום CODE613 ב20/05/2016 15:09 (+03:00)
-
אמרתי נגמר לי הכוח, הנח לי, כי אני בדרך כלל עונה על שאלות מתוך נימוס ודרך ארץ אז בוא נסכם שזהו הפוסט האחרון כאן בשרשרת השאלות.
מנין לי זאת?? מאדם שעובד בחברת אבטחה שמספקת שירות לבנק לאומי, ומעוד כתבות שקראתי בנושא אחרי השיחה עם אותו איש, (ואתה לא עומד לבקש ממני לחפש אותם עכשיו בשבילך).
אתה מבין לאן זה מידרדר? אני אומר ברי ומצטט מקורות, ואתה אומר שמא ומצטט את עצמך, ואני צריך לשכנע אותך??? תאמין לי שלא המצאנו כאן בפורום את הגלגל, כל הנושאים הללו שעולים כאן, יש להם כבר יריעות רחבות מאוד באינטרנט, יש ניסיון של עשרות שנים של אנשי מקצוע וחברות גדולות, ויש תיעוד על רוב הדברים. אנחנו כאן כדי לגלגל שיחות ולהרחיב אופקים, מי שרוצה ללמוד דברים חדשים יכול להתחיל פשוט לחפש חומרים באינטרנט ובספרות המקצועית, ללמוד את הדברים בצורה מסודרת, על מנת להרחיב את הידיעות, ולא לקפוץ כל שניה עם שאלה של מנין לך ומנין לך.פורסם במקור בפורום CODE613 ב20/05/2016 15:16 (+03:00)
-
400 דאטא בייסים ו 250 סרויסים זה בטוח מניפולציות של מספרים.
אני חושב שאופן כללי אסור להיות דתי בתיכנות. כלומר תתכנת בכל שפה. בכל דאטא בייס ותרגיש חופשי לעשות הכל.
מישום מה מתכנתים נוטים להתחבר לשפה כאילו הם המציאו אותה.פורסם במקור בפורום CODE613 ב20/05/2016 17:44 (+03:00)