איך בונים אתר דינמי?
נושאי הנושא הם כה רחבים ומגוונים בגישות אפשריות שכל תשובה מציאותית לשאלות בלתי נמנעות יכולה רק להצביע על הדרך הכוללת.
אנשים רבים היום רוצים ומקווים לבנות נוכחות אינטרנט דינמית (מונעת נתונים), שארכיטקטורותיה מתאימות בקלות לחומר חדש, תיקון ואינטראקציה בין מבקרים. המדריך למשל הוא אתר דינמי. בעוד שהמטרה של פרויקטים איכותיים היא בהישג ידם של כל האנשים החרוצים, זו תהיה טעות לזלזל במה שבסופו של דבר זו משימה מאתגרת באופן מהותי, במיוחד במטרות הטכניות של כל פרויקט פוטנציאלי. אפילו נוכחות אינטרנט דינמית הפשוטה ביותר דורשת מיומנויות מספקות במגוון תחומים.
בעמידה ביעדים הכרחיים, איש אינו יכול לסטות מעיצוב מסד נתונים טוב. הכנת עצמנו לדיסציפלינה זו בלבד היא גוף עבודה מהותי (אך לא מקדים). ברגע שיש לנו סיכום של יעדי הפרויקט, עלינו לחזות באמצעים בריאים להשגתם. ואז יש לנו שפות תכנות או כלים לבחירה, המבוססים על חזון לאדריכלות פרויקטים אידיאלית.
לראות את התמונה כולה מההתחלה אז, זו המיומנות החיונית מכולם.
- 1הפוך את המוח שלך לאיזה סוג של כלים ותהליכים שישיגו את המטרות שלך. מכיוון שהליבה המרכזית מאוד של כל נוכחות דינמית באינטרנט היא מסד הנתונים שלה ועיבוד הנתונים, המטרה החיונית הראשונה שלנו היא לקבל החלטה מרחיקת לכת על מנוע מסד נתונים. זה לא רעיון טוב לקוות לקבל החלטה כזאת רק בצורה ראשונית נראית סבירה ביותר.
- המטרה החיונית של החלטה ראשונה זו היא לתכנן את הפרויקט שלנו באופן (עם כלים ומנועי מסדי נתונים) שיתמוך בצרכים שלך לאורך כל הדרך בעתיד, ובגלל שקיבלת את ההחלטות הראשוניות הנכונות, אתה בנה ביעילות על הבסיס הראשוני שלך, ביעילות וללא מכשול בסופו של דבר. המשמעות היא שבאופן אידיאלי למשל, מנוע מסד הנתונים שתבחר אינו רק קל, או לכאורה פשוט לפרוס כיום; מההתחלה זה חייב להיות מנוע שיתמוך בדרישות העיבוד שלך במורד הזרם.
- לפעמים שיקולים מסחריים משפיעים עוד יותר על בחירות כאלה. אילו מנועים נוכחים (ויקרים) לנוכחות? אילו מנועים הם כמעט ללא השתתפות ביישומים המקיימים את יעדי העיבוד שעל הפרויקט הסופי שלך לקיים? באופן כללי, הדפוס לעקוב הוא לבחור את המנוע שלך בהתבסס על אחת משתי התנאים האפשריים.
- לשם כך, תחילה עליך להתוות את צרכי הטבלה הבסיסית שלך. איש מקצוע אפילו לא יצטרך לבנות את המפה הזו (בלי קשר גם אם מדובר במאות או אלפי שולחנות), מכיוון שהם בדרך כלל יראו מיד אם האדריכלות והצרכים העתידיים שתזדקק להם לתמוך הם קריאה או כתיבה אינטנסיבית. לאחר מכן תבחר מסד נתונים מתאים, המבוסס על נטייה כוללת זו, ואולי על סמך טעם וניסיון אישי, שכן עבודה עם כלי פיתוח תוכנה בהתאמה עשויה להקדים. MySQL הוא הבחירה הרגילה ליישומים אינטנסיביים לקריאה. מפתחים רבים מחפשים מאגרי מידע כגון PostgreSQL ליישומים אמינים לכתוב מאומץ. אנו מפתחים את נטייתנו לכלים חיוניים כאלה על ידי מחקר מדוקדק, ומבוססים על מאגר הניסיון של תעשיית פיתוח התוכנה הכללית. בדרך כלל ניתן להוציא הוצאות מכיוון שניתן להשתמש בפריסה בחינם של כלים טובים מאוד. מה שאנחנו מחפשים הוא ביצועים בסביבות אינטנסיביות לקריאה או כתיבה, אמינות, קלות ומזעור של ניהול ושילוב מוכן עם כלים לפיתוח תוכנה פוטנציאליים.
- 2בחר את כלי פיתוח התוכנה שלך. ישנם שני דפוסים שיש לקחת בחשבון בבחירת כלי פיתוח תוכנה. לכאורה כלים "קלים" הם לעיתים נדירות קלים, כאשר פרויקט בהכרח שובר את צוות הפיתוח ודפוסי הפונקציונליות "כלים קלים" מוגבלים בדרך כלל ל. אם תרצה לעשות משהו מעבר לכלים ה"קלים ", כגון לשלב פרמטר שפה או תרגום בכתובות אתרים שנוצרו באופן דינמי, יתכן שיהיה קשה כל כך הרבה יותר להשיג את הכלים" קלים ", עד שיידרש מיומנויות תכנות מתוחכמות במיוחד. כדי לרמות את הדפוס הקל לעשות דברים מורכבים יותר. עלינו לשלוט בכלים שלנו לבניית פרויקטים טובים. זה לא הופך כלים קלים לבחירה הטובה ביותר, או שהכלים המתוחכמים ביותר הם הצעה קשה. מלכודת הפיתוח ה"קל "כוללת בדרך כלל מגבלות שהופכות להיות יקרות מאוד להתפתחותן בהתפתחות הבלתי נמנעת של פרויקטים. בדרך כלל נוצר מגוון עצום של כלים כאלה, שלכאורה עונים על צרכים כאלה. אך דפוס ההתמדה של הכלים מסגיר עובדה לכאורה של השגת מטרה זו; וכך, בדרך כלל אנו מגלים כי הכלים המתוחכמים והחזקים ביותר, בעקבות דפוסים טובים (או זמינות של אובייקטים וספריות), לא רק מקלים על מכשולים בלתי נמנעים מעשית לכלים קלים, אך כמו כן להפוך את ה"הגעה לשם "לתהליך הרבה יותר פשוט. כשאנחנו בוחנים את היקף הכלים הזמינים, בדרך כלל מוצגים מודלים פחות מקיפים בתפיסות פיתוח ראשוניות, ומושגים טובים יותר מוצעים על ידי כלים שנוצרים מאוחר יותר (או שלא יהיה להם סיכוי לשרוד בשווקים שכבר הושגו). אם אנו בוחרים בכלי קל כביכול, אז מה שאנחנו מחפשים הוא דפוס התפתחות שהוא גם כישורי וללא מכשול בסופו של דבר. הפרדוקס עבור הניאופיט הוא אז הקושי לראות כל כך רחוק בכביש שאנחנו יכולים לתפוס מכשולים בתכנות לערכת כלים נתונה. יש אנשים שמאמינים שהכלים הטובים ביותר הם החזקים ביותר והכי פחות מגבילים מבחינת גישת הפרויקט. חופש לפתח את מה שאתה רוצה וצריך פירושו לעיתים קרובות לשבור את המודל הכללי של כלים פשוטים לכאורה, שהאתגרים שלו יכולים למעשה לשבור את מוחו של מהנדס התוכנה הוותיק והמתוחכם ביותר, מכיוון שהצלחה באובייקט כזה פירושה להפוך את ה"פשוט " מודל לעשות משהו שאולי אין לו יכולת תמיכה מקורית. האם "רובי" למשל הוא באמת כלי קל יותר מאשר C ++ או C # בסיסיים? לא. לא ממש, במיוחד אם אתה צריך לשבור את המודל הפשוט של רובי כדי לספק פונקציונליות חיונית. כמו רובי, GCC הוא בחינם עבור לינוקס ו- OSX. רובי מגיע גם ל- OSX - אתה רק צריך לגלות את זה במערכת שלך. מכל הכלים הקלים לכאורה,הבחירה האישית שלי היא רובי. מבין הכלים המתוחכמים באמת, C ++ ו- C # יהיו מלכות עליונה ארוכה אל העתיד; והאמת, אלה הם כלי הרכב היחידים לפיתוח ללא הפרעה. אז שב זקוף וסעד ללימוד רציני, מכיוון שלא משנה הדרך שתבחר, תצטרך לשלוט לא רק בכלים שלך, אלא גם במודלים העלולים להגביל שהכלים הללו עשויים בסופו של דבר להכביד עליך. רובי כנראה הרבה יותר נקי מכמעט כל חבריו ה"קלים ". C ++ הוא כלי המצוינות הבלתי מעורב; ולמעשה, גורואים מנוסים יתבררו כפרויקטים חסרי ערך, ככל הנראה בקושי הרבה פחות מכפי שהם עשויים להשיג את אותן מטרות בעזרת כלי קל לכאורה. בסופו של דבר, מפתחים החורגים מהתצפית הזו משלמים מחיר כלשהו: או בוחרים בכלי ה"קל "המסייע ביותר, או דואגים פחות מחופש השיעבוד בכלי המתוחכם ביותר. במקרה האחרון,אתה לשלוט בחפצי CGI מהירים, לקחת את הכדור ולרוץ. מושגים ענקיים מיושמים לעתים קרובות עם מעט קוד. כן, כלים פשוטים טוענים את אותה טענה, אך על ידי הפשטת קושי לכאורה מאיתנו בדרכים כאלה שסטייה מהתבנית היחידה שלהם בדרך כלל מציבה אתגרים הנדסיים קשים מאוד, בנוסף למגבלות ביצוע ש- C ++ פותר.
- 3במהלך פתרון השאלות הללו, אנו חייבים בהכרח לבחון את המודלים או הדפוסים הבסיסיים של פיתוח פרויקטים מהסוג שאנו רוצים ליצור. פירוש הדבר לתפוס את הספרות הטובה ביותר עבור כלים שאנו רוצים להשוות, ולפחות לתת למושג שלנו צורה כלשהי בה היא עשויה לקבל סט כלים נתון בהשוואה לאחרים. לפני שתבחר ברובי למשל, תוכל להרים ספרים חיוניים כגון "שפת התכנות רובי" ו"פיתוח אתרים זריז " עם Rails. "על המחקר הראשוני שלך לא רק לשלוט בכלי העבודה מספיק, אלא לחזות כיצד תוכל להגיע לשם - כיצד תוכל לספק פונקציונליות רצויה בכלי שתבחר. זוהי משימה מרתיעה עבור היוזמים. אם אתה הולך להשוות סביבת פיתוח קלה כביכול למיטב המיטב, תצטרך להעריך גם את כלי C הטובים ביותר. אם אתה באמת הולך להיות מהנדס מנוסה, אתה הולך לבחור את C בגלל החופש ממגבלה. האם C באמת קשה יותר? לא. תחביר הוא תחביר. בסופו של דבר, עליך לשלוט בהבעת אותה פונקציונליות; ולמען האמת, משפחת השפות C מצוינת. הדבר הקשה בלהצטיין ממש בשער ב- C ++ הוא לשים את הידיים על הדגמים שעשויים לבנות עליהם. מעולה מהתחלה מן כמעט לפני 15 שנים הייתה רכיבי FastCGI המקוריים שהיו זמינים ב- CPPBuilder של בורלנד - כנראה עדיין C ++ הטוב ביותר עבור Windows. אפילו יוזמים C יכולים להגיע רחוק עם גישות מונחות עצמים כאלה, מכיוון שהמודל הכללי של פונקציונליות מקיימת מובנה בדברים שאתה עובד איתם. העבודה שלך הרבה יותר זורמת ממה שהיא יכולה להיות ברובי למשל, בכל פעם שאתה עלול לשבור או לחרוג ממודל הרובי בגישתך. מצד שני, טכניקות פיגומי Rails מזרזות עבודה רבה עבור הניאופיט, ולו רק אם הפרויקט מתאים לתבנית הכללית של Ruby and Rails. הציגו הוראות אבטחה ראשוניות, המוכרות בכל הרובי שלכם עם זאת, והדבר הבא שאתה יודע, אתה כותב מחדש אלף שורות של קוד רובי שנוצר אוטומטית לכל טבלה שהיישום שלך מנהל משא ומתן עליה. האם זה קל? ובכן, אני עושה זאת עם עורך חלונות בשם NoteTab Pro, הפועל בפרויקטים של רובי השוכנים במערכת OSX; ומקרואים מתוחכמים הופכים את התיקונים שלי אולי לשנייה, בהתאמה אישית של אלף שורות קוד לכמעט כפליים מזה. ובכל זאת, זה מתייחס לפונקציונליות בסיסית יחסית פשוטה, שפרויקט מוגבל לה. העובדה היא שב- C ++ אנו יכולים לכתוב אובייקטים משלנו המטפלים במשימות אלה באופן אוניברסלי - לעולם לא תצטרכו לשכפל את התהליך הזה. אז אלה הפשרות. בסופו של דבר, C מונחה עצמים הוא החזק והיעיל ביותר. מה שאומר שזו גם הפחות עבודה.
- 4לא משנה שבחרתם בכלי התכנות, אין דרך למנוע תלות בשליטה סבירה ב- HTML וב- CSS. בדרך כלל, מפתחים מנוסים מסתמכים על W3C.org עבור חומר חיוני. עמוד אינטרנט
- חלק חיוני במסע שלך יהיה אם לשים את היד על המשאבים הטובים ביותר. הייתי מתחיל ברובי; ואם תרצו להצטיין, תצטרכו להעריך שפות C מונחות עצמים, ואת הסביבות בהן פרויקטים כתובים היטב יעניקו ביצועים טובים יותר מכל בני גילם.
- לכן שום דבר לא יכול להחליף לימוד והערכה ממצים.
- מכשול נוסף לשלוט באמת בכלים פשוטים הוא ההתנהלות הבלתי מקצועית בפורומים רבים. יש הבדל עצום בין הידע המקצועי לבין המיומנות העומדת בפני עצמם אשר לעתים קרובות כל כך יכולים להוליך אותך שולל מהדרך הנכונה. מקורות המידע הטובים ביותר הם בדרך כלל העמיתים המוכשרים ביותר, לא אדונים כביכול של כלים פשוטים כביכול שפשוט דוגלים לעמוד בדפוס היחיד העומד לרשותם. הסיבה העיקרית לכך שאתה הולך להגיש שאלות לפורומים היא שתצטרך לחרוג (ובכך לשבור) את המודל המורכב מהגישה הפשוטה כביכול. כשאתה נתקל בהכרח בצרכים אלה, אתה זקוק לעצה הטובה ביותר.
- לעולם אל תחשוב אז שקיצור דרך לכאורה מזרז את העבודה. לעתים קרובות, ההיפך נכון.