سؤال

الديباجة

لبناء مواقع ويب ديناميكية، علينا إتقان أربع لغات على الأقل:

  • HTML لهيكل صفحات الويب
  • CSS للتخطيط والتصميم
  • جافا سكريبت للتفاعل
  • لغة لقواعد العمل أو البيانات الديناميكية

بالإضافة إلى ذلك، هناك SQL للتخزين المستمر، وMemcache للجلسات والتخزين المؤقت، وواجهات برمجة التطبيقات (APIs) لـ كثير أنظمة إدارة المحتوى المختلفة.يجب أن نفكر أيضًا في التفاعل مع OpenID وFacebook وTwitter وOpenSocial في بناء تطبيق ويب، حتى يكون الأمر مثيرًا للاهتمام.

وعلى العموم، إنها فوضى مطلقة!

إذا أخذت في الاعتبار هدفين:

  • تعليم تطوير الويب للأطفال
  • البقاء منتجًا كفريق

سؤال

ما هي الأنظمة عالية المستوى الموجودة التي توحد HTML + CSS + Javascript + (أدخل لغة عالية المستوى هنا, ، يفضل PHP)؟


خلفية

  1. أنا مهندس برمجيات ولدي أكثر من 15 عامًا من الخبرة كقائد مشروع ومطور لتقنيات مثل Broadvision وAutonomy وEnterprise Java وOracle.

خلال السنوات الأخيرة، ركزت على تطوير مواقع الويب المجتمعية، باستخدام أطر عمل Drupal أو PHP مثل CakePHP.أنا يحب تطوير الويب والاستمتاع بعدم تطابق المعاوقة بين التقنيات المعنية.لا يزال الاستنتاج الحتمي الذي توصلت إليه هو يجب أن تكون هناك طريقة أفضل.

  1. أنا أب لولدين (13 و 9 أعوام)، وبينما لا أريدهم أن يصبحوا مبرمجين، أود منهم أن يفهموا أجهزة الكمبيوتر على أنها أكثر من مجرد آلات ألعاب.أحب تحفيزهم على العبث قليلاً بتطوير الويب للتعبير عن أنفسهم.

عندما أريهم أجزاء وأجزاء، أود أن يكون لديهم مجموعة أدوات تتيح لهم إنشاء نتائج "مثيرة للاهتمام" في ساعة أو ساعتين بعد ظهر يوم الأحد.

هل كانت مفيدة؟

المحلول

"روابط هي لغة برمجة جديدة مصممة لتسهيل برمجة الويب...تعمل الروابط على تخفيف مشكلة عدم تطابق المعاوقة من خلال توفير لغة واحدة لجميع المستويات الثلاثة.يقوم النظام بإنشاء رمز لكل مستوى؛على سبيل المثال، ترجمة بعض التعليمات البرمجية إلى Javascript للمتصفح، وبعضها إلى رمز بايت للخادم، وبعضها إلى SQL لقاعدة البيانات."

في البداية لم أكن أنوي نشر هذا، لأنه مشروع بحثي، وليس نظام إنتاج؛لكن كل هذه الإجابات التي تقول "هكذا هو الأمر، تعامل معه" طلبت مثالًا مضادًا.

نصائح أخرى

جي دبليو تي يذهب إلى حد ما نحو كونه مجموعة أدوات عالية المستوى، مما يتيح لك كتابة Java لإنتاج Javascript.

برمجة الويب هي بطبيعتها حرفة متعددة التخصصات.

السبب الرئيسي لذلك هو فصل الاهتمامات... السبب وراء عدم دمج HTML وCSS وJavaScript وSQL وما إلى ذلك معًا في لغة واحدة هو أن لكل منهما أهدافًا ومحاذير ومزالق ونقاط قوة منفصلة.

هل يمكنك تخيل محاولة تصحيح أخطاء موقع يحتوي على أكواد SQL وCSS وJavaScript وPHP ممزوجة معًا في نفس الملفات المصدر؟ربما كان لديك بالفعل سوء الحظ للقيام بذلك.للأسف، هناك حرفيًا الآلاف من المواقع المكتوبة بهذه الطريقة، وهو كابوس كامل محاولة تصحيح الأخطاء أو الإضافة إلى مثل هذه الاندماجات الفوضوية للعرض والبيانات والبنية.

الكل في الكل، فوضى مطلقة!كيف من المفترض أن يعلم المرء تطوير الويب للأطفال؟

أعتقد أن الشيء الأكثر أهمية هو تعليم أساسيات البرمجة وجعلها ثابتة.المتغيرات والمنطق مؤشرات, وإدارة الذاكرة والخوارزميات وهياكل البيانات وما إلى ذلك.

عندما تكون لديك أساسيات البرمجة، يكون من السهل العمل بلغات متعددة، واختيار لغات جديدة، ومن السهل تغييرها مع مرور الوقت.هذه مهارة لا تقدر بثمن لشيء يتطور باستمرار ويعتمد على الاتجاه مثل برمجة الويب.

في رأيي، يجب على الأشخاص الجدد في البرمجة أن يبدأوا بلغات ذات مستوى أدنى، مثل لغة C على سبيل المثال.يجب أن يتعلم الأشخاص المفاهيم الجوهرية والأساسية للبرمجة ويجب أن يكتسبوا المعرفة بما يحدث خلف الكواليس قبل أن يتم عرض لغة ذات مستوى أعلى مثل PHP أو Python.

أعتقد أن هذا الموقف تجاه تدريس البرمجة سيكون له تأثير في تنشئة مطوري ويب أفضل بالإضافة إلى توفير حاجز دخول من شأنه التخلص من الأشخاص الذين ليس لديهم الاهتمام أو الذكاء.أعتقد أن نتيجة هذا النوع من المواقف ستكون مطورين أفضل، وبرامج أفضل، وفي النهاية لغات وأدوات أكثر قوة.

كيف من المفترض أن نقوم بتعليم تطوير الويب للأطفال؟

إن وجود جيش من الأطفال في مجال تطوير الويب هو ما أدى إلى تدهور مهنتنا منذ الآن، حيث يطلق أي شخص على نفسه اسم مبرمج بينما يزداد الأمر صعوبة بالنسبة لنا للابتعاد عنهم والحصول على أجر لائق.

العديد من اللغات والتقنيات لإتقان؟انه شيء جيد.يجب أن يكون هناك بعض العوائق أمام الانضمام إلى صفوف المطورين.

تمت الإضافة:من خلال متابعة التعليقات أستطيع أن أرى أنني لم أوضح نفسي تمامًا.أنا لا أقول شيئًا عن العمر، سواء كان 10 أو 30 أو 50 أو 80 عامًا.الأمر كله يتعلق بالموقف.ما إذا كان الشخص يفهم ويقبل حقيقة أن المهنة تحتوي على ما هو أكثر بكثير من تحريك عناصر التحكم باستخدام الماوس في بعض المصممين أو أنظمة إدارة المحتوى (CMS).هناك الكثير من المعرفة التي يمكن اكتسابها، بما في ذلك أساسيات علوم الكمبيوتر والخوارزميات وهياكل البيانات وقواعد البيانات والهندسة المعمارية وقابلية التوسعة والصيانة والأداء وقابلية التوسع وسهولة الاستخدام والتسويق وغير ذلك الكثير التي تنتمي إلى ورشة عمل مطور برامج محترف.أنا شخص يجهل هؤلاء ولا يقوم بخطوة لتثقيف نفسه والسعي ليصبح أكثر وأكثر كفاءة، فهم لا ينتمون إلى هذه المهنة.وليكن هذا الرأي متحيزا.

الأقرب أعتقد أنك ستحصل عليه هو .NET.هناك العديد من الأطر للعديد من اللغات، لكن لا أحد أعرفه يتعامل مع كل شيء على الإطلاق.بالإضافة إلى ذلك، يجب ألا تحاول إقناع الأطفال بأن البرمجة هي نزهة في الحديقة.إنها مهنة صعبة، وتتطلب الكثير من الدراسة والمتابعة.نحن نعمل باستخدام التقنيات الموجودة اليوم، والتي ستختفي غدًا.

إذا فكرت في الأمر، ستجد أن البرمجة لا تختلف عن النجارة أو الطيران.ستتطلب منك أي مهنة تختارها أن تتعلم الكثير من الأشياء المختلفة لتكون أفضل في ما تفعله.

كيف من المفترض أن تقوم بتدريس تطوير الويب للأطفال؟واو، هذا شائك.كيف يمكن للمرء أن يعلمهم الجراحة، أو قانون الملكية الفكرية، أو الهندسة المدنية؟أو في هذا الشأن ميكانيكا السيارات أو السباكة أو المقاولات العامة؟

هل فكرت في الظهور في شريط Sesame Street؟

إلمو لا يحب ذلك عندما تقلل من شأن مهنته.

تعاني صناعة البرمجيات من أفراد غير مؤهلين لا يفعلون شيئًا سوى إنشاء منتجات ذات جودة رديئة، وفي الوقت نفسه يبعدون هذه المهنة عن أن تصبح تخصصًا هندسيًا حقيقيًا.هذا ليس شيئًا للحصول على شهادة فيه.من أجل محبة الله، لا "تعلم" أحدًا تطوير البرمجيات.اشرح لهم أن صنع البرامج الرائعة لا يأتي إلا نتيجة لسنوات من الخبرة وثروة المعرفة بالتقنيات السابقة والحالية.أسوأ ما يمكنك فعله هو تقديم مطور آخر غير متقن لإنشاء عمل للآخرين الذين يعملون معهم.قل لهم أن يتعلموا.أعلم أن هذا ليس هو الجواب الذي ربما كنت ترغب في سماعه، ولكني أردت قراءة هذا.

أعتقد أن مشكلة تطوير الويب هي أنه لم يتم تصميمه في الأصل للغرض الذي يتم استخدامه به اليوم.نحن نبني تطبيقات عملاء غنية داخل المتصفح باستخدام HTML+CSS+JavaScript بالإضافة إلى أي تقنية تنشئها على جانب الخادم.نعم، إنه يعمل، لكنه أمر مؤلم، خاصة مع عدم توافق المتصفحات المزعجة.إن وجود Flash وSilverlight يثبت ذلك.فهي تتيح لك إنشاء تطبيقك باستخدام تقنية واحدة، داخل المتصفح.ومع ذلك، فإن سلبيات الحاجة إلى مكون إضافي للمحتوى الخاص بك واضحة.

اللغات هي أقل ما يقلقك.إنه مجال المشكلة الذي يعملون معه وهو أمر معقد.إن استخدام لغات مختلفة يجعل الأمور أكثر قابلية للإدارة في الواقع لأنه أ) يجعل الحدود واضحة و ب) يمكن تحسين اللغات للمجال.

البرمجة (PHP/JS) وتنسيق المستند (HTML/CSS) شيئان مختلفان.سيكون تعلم البرمجة بلغة PHP وJS في نفس الوقت أمرًا صعبًا أيضًا.

يجب عليك التركيز على HTML وJS على العميل في البداية.يمكنك بعد ذلك السماح لهم بالبرمجة جافا سكريبت على الخادم أيضًا.سيؤدي هذا إلى جعلها لغة برمجة واحدة فقط، والتركيز على HTML بدلاً من CSS للبدء بها.

بمجرد أن يتعلموا أساسيات JS وHTML، يمكنك تعليمهم لغة برمجة أكثر استخدامًا من جانب الخادم (مثل PHP وRuby وما إلى ذلك) وCSS.

جانغو يمكن أن يأخذك جزءًا من الطريق من خلال نظافته.إنه يركز على الإنتاجية.التدريس ليس أسهل من أي لغة/إطار عمل آخر، لكن انظر إليه بهذه الطريقة:عندما يتم تعليم هذه الأداة، يكون طلابك مجهزين جيدًا بمعرفتهم بمدى سهولة ذلك يجب يكون.لن يقبلوا أبدًا Java serverlets أو الكوابيس المشابهة بعد تعلمهم لـ Django.

تحقق من أوبا: http://opalang.org/

هذه هي تكنولوجيا تطوير الويب الصاعدة والقادمة.يبدو واعدا جدا.لقد قمت بالكثير من تطوير الويب على مدار العامين الماضيين، وإذا اضطررت إلى التنبؤ بالإطار/اللغة/التقنية الجديدة التي ستكون الطريقة الأساسية لتطوير مواقع الويب خلال 5 إلى 10 سنوات تقريبًا، فسأقول ذلك سيكون أوبا.

التوثيق رائع، والمجتمع رائع، والبرامج التعليمية والاستجابة للأسئلة المطروحة على الفريق العامل في المشروع ممتازة.بشكل عام، يبدو أنهم يهتمون بالتفاصيل فيما يتعلق بتطوير هذا الإطار الجديد الذي يبدو أنه لا مثيل له.

إن إتقان العديد من التقنيات ليس بالأمر الجيد.نحن بحاجة إلى Visual Basic للويب، بغض النظر عما يقوله النخبويون.

أنت بحاجة إلى لغات مختلفة لأغراض مختلفة.في معظم تطبيقات الويب، هناك في الواقع الكثير مما يحدث، لذا فأنت بحاجة إلى اللغات والحلول المختلفة.

إذا كان الهدف هو التوحيد على لغة واحدة، فيمكنك القيام بذلك.يمكنك استخدام Javascript على الخادم، ثم إنشاء الصفحات باستخدامه document.createElement() وتطبيق الأنماط عليها مباشرة على styles ملكية.وعلى الخادم، قم بتخزين بياناتك مباشرة في ملفات باستخدام Javascript.

من الواضح أن هذا لن ينجح بشكل جيد.HTML ليست مثالية، ولكن هناك سبب لوجودها في كل مكان - فهي تفعل ما تفعله ببساطة وبشكل جيد.يعد CSS معقدًا ومبسطًا للغاية، ولكن الفكرة الأساسية المتمثلة في تحديد القواعد القابلة للتجاوز للتعبير عن تصميمك هي فكرة سليمة.وقد يكون من الصعب فهم SQL في بعض الأحيان، ولكن التعبير عن استعلامات قاعدة البيانات بهذه الطريقة هو أمر معبر ويعمل بشكل جيد بالفعل.

ومع ذلك، أنا لا أقول أن هناك أو ينبغي أن تكون هناك بنية واحدة.لا ينبغي أن يكون هناك.يجب أن يستخدم كل مشروع بنية تتوافق مع متطلباته.

في مشروعك القادم حاول التبسيط:هل حقا بحاجة إلى قاعدة بيانات؟هل يمكنك دمج طبقات العرض للتبسيط، إما باستخدام شيء مثل GWT أو Applets أو Flash أو .NET؟هل تحتاج حقًا إلى تقديم المحتوى الخاص بك في متصفح (الذي يقدم تعقيدات CSS وHTML وJavascript)، أم يمكنك فقط كتابة تطبيق؟

أعتقد أن نهجك قد يحتاج إلى إعادة التفكير.خذ هذا على ما هو عليه، في رأيي، ولكن أعتقد أن هذا الترتيب قد يعمل بشكل أفضل.

أهم الأولويات: (لا يوجد ترتيب معين)

  • تطوير مهارات حل المشكلات
  • كن منتجًا كفريق واحد

التالي:

  • مهارات البرمجة الأساسية (PHP، Python، إلخ)

بعد أن يعرفوا كيفية حل المشكلات كأفراد وكفريق، يمكنهم الانتقال إلى تفاصيل مثل:

  • نموذج العميل/الخادم
  • العلامات (HTML، XHTML، XML، إلخ)
  • التصميم (CSS)
  • البرمجة النصية من جانب العميل (JavaScript / jQuery)
  • البرمجة النصية من جانب الخادم (PHP، Ruby، إلخ)

قم ببناء معرفتهم بما يتضمنه الأمر قطعة قطعة بدلاً من القفز إلى النهاية العميقة بعيدًا عن الخفافيش - فسوف يتم التغلب عليهم بسرعة.

عند هذه النقطة يمكنك البدء في تقديم أشياء مثل إدخال/إخراج الملفات وقواعد البيانات.

وهذا سيمنحهم مجموعة مهارات شاملة إلى حد ما.ومن هنا يمكنهم البدء بالتعلم حقًا.

بالإضافة إلى ذلك، قد يتعين على المرء التعامل مع SQL للتخزين المستمر، وMemcache للجلسات والتخزين المؤقت، وواجهات برمجة التطبيقات لأنظمة إدارة المحتوى، وOpenID، وFacebook، وTwitter، وOpenSocial وما إلى ذلك.لبناء أي شيء مثير للاهتمام.

هذه مواضيع كاملة في حد ذاتها، ولا يمكنك قضمها كلها في قطعة واحدة.خاصة إذا كنت تأخذ هؤلاء الأشخاص من 0.قبل أن تتمكن من بناء شيء مثير للاهتمام، عليك أن تتعلم كيفية بناء شيء عادي.

HTML5 من المحتمل أن يكون أكثر توافقًا مع ما تبحث عنه بدلاً من Flash أو Silverlight ولكنه لم يصل بعد...على الرغم من تزايد الدعم.

خطوات صغيرة، أولاف - لو كان الأمر كذلك المصفوفة يمكنك تنزيل كل هذه المعلومات دفعة واحدة ولكننا لم نصل إلى هذه المرحلة بعد؛-)

في الوقت الحالي، وفي المستقبل القريب، يعد تطوير الويب بمثابة تضافر بين العديد من التقنيات المختلفة التي تعمل معًا لتقديم تجربة مستخدم مثيرة للاهتمام.

حسنا، هذا هو سنتي 2

تعد الطبيعة المتعددة التخصصات لتطوير الويب أحد الأشياء التي تجعل العمل فيها ممتعًا، خصوصاً في بيئة الفريق.

للعمل بشكل جيد كفريق، من الطبيعي أن تجتمع مع مجموعة من الأشخاص الذين يتمتعون بمجموعة من الخبرات، بدءًا من الأشخاص في واجهة المستخدم/الرسومات وصولاً إلى مسؤولي قواعد البيانات ومسؤولي النظام.حتى داخل طبقة واحدة من المجموعة (على سبيل المثال، المبرمجون الخلفيون) يتخصص كل شخص بشكل عام في مجموعة مختلفة، على سبيل المثال قد يكون لدى بعض الأشخاص خبرة أكبر فيما يتعلق بواجهة المستخدم، بينما يتمتع البعض الآخر بخبرة أكبر تجاه البيانات.

سأقبل هذا التنوع في أي يوم، مقارنة بالعمل في غرفة مكونة من 10 مبرمجي جافا يعملون جميعًا على بعض تطبيقات البرامج الوسيطة.

إذا كنت تريد ببساطة تعليمهم كيفية كتابة مواقع الويب الديناميكية، فقم بتعيينهم من خلال البرنامج التعليمي لـ HTML على w3schools.com وبمجرد الانتهاء من ذلك، ابحث عن ورقة أنماط ذات مظهر لائق يمكنهم تضمينها وإعدادهم للتوافق مع PHP.سيؤدي ذلك إلى تطويرهم وتشغيلهم كهواية، وإذا أرادوا فعل المزيد، يمكنهم البدء في تجميع المعرفة الإضافية معًا، مثل CSS وJavaScript.

يقطع Ruby on Rails شوطًا كبيرًا نحو توحيد كل هذه الأشياء، ولكن بالنسبة لـ CSS فإنه يتركك في البرد (على الرغم من وجود عدد قليل من أطر عمل RoR التي تجعل CSS عفا عليها الزمن، ولكن بعد ذلك لديك لغة ترميزية أخرى، على ما أعتقد). وما زلت بحاجة إلى Javascript (على الرغم من أنه يكتب الكثير من Javascript لك، وكل أكواد قاعدة البيانات).

ومن ناحية أخرى، عن أطفالك:البرمجة للمبرمجين.بعد ظهر يوم الأحد لتجميع شيء ما في غضون ساعات قليلة، ستحتاج إلى معرفة إطار العمل، وشراء بعض المكونات الإضافية، وتجهيز كل شيء والتحرك دون بذل الكثير من العمل.شيء مثل Drupal أو Joomla، حيث يبيعون القوالب (لـ Joomla يمكنك شراء حزم من المئات) والمكونات الإضافية للقيام بجميع أنواع الأشياء.وعندما يفشل ذلك، فمن المحتمل أن يعرف أطفالك كيفية الانتقال إلى ODesk وإسقاط 100 دولار لإنجاز شيء ما في إطار العمل الخاص بك.يعد تعلم البرمجة أمرًا جيدًا إذا كنت تريد أن تصبح مبرمجًا.بخلاف ذلك، فمن الأفضل أن تتعلم ما تحتاجه لتوظيف مبرمجين جيدين أو شراء مكونات جيدة مسبقة الصنع، والحصول على الأموال اللازمة للقيام بذلك.

النقطة الأخيرة بخصوص الأطفال:السماح لهم بلعب ألعاب الفيديو.وهذا هو أفضل تدريب يمكنهم الحصول عليه لما يخبئه المستقبل فيما يتعلق بالكمبيوتر.تتيح لك ألعاب الفيديو التحقيق واللعب والاسترخاء مع الكمبيوتر.بمجرد حصولك على ذلك، يصبح تعلم HTML وCSS وJavascript وبعض التطبيقات أمرًا سهلاً.

angularjs يمكن أن يكون خيارا.إنه مخصص لتطبيقات الصفحة الواحدة ويتم تشغيله على مكدس العقدة ويقوم ببعض "السحر" لقالب جافا سكريبت.

مثال (قالب/رمز):فهو يربط (عبر js من جانب العميل الذي تم إنشاؤه تلقائيًا) القيمة من حقل الإدخال إلى العنوان (h1).إذا قمت بكتابة شيء ما في حقل الإدخال، فسيتم تحديث النص الموجود في العنوان.وليس عليك كتابة الواجهة الأمامية-js.

  <input type="text" ng-model="yourName" placeholder="Enter a name here">
  <h1>Hello {{yourName}}!</h1>
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top