Svelte ، إطار تختفي لن تختفي

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



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

تنصل
, , -, . , - — , , « ».

على الرغم من حقيقة أن كاتب المقال الأصلي عزيزي action52championمن الواضح أنه في حالة من الاكتئاب ، ربما بسبب العزلة الذاتية والأزمة العالمية ، والتي يكتب عنها مباشرة حول:

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

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

مقابلة


عني


action52champion: . : Angular, React, Vue. , - Svelte production-ready .

مرحبًا يا بطل العمل ، يسعدني جدًا أن أكون هنا ، شكرًا على دعوتي! اسمي Pavel Malyshev ، أنا مؤلف كل تلك المقالات الرائعة (على الرغم من أن معظمها ترجمات) التي تربكك. في هذه المرحلة من الوقت ، أقود التطوير في استوديو صغير في نيجني نوفغورود في مجالات الويب والتلفزيون الذكي.

حتى إذا كان أحد قرائنا لا يتبع Svelte ، ربما يمكنهم أن يعرفوني من تقاريري في أكبر مؤتمرات تكنولوجيا المعلومات في روسيا وكومنولث الدول المستقلة ، مثل HolyJS و RIT ++ و FrontendConf و DUMP و CSS-Minsk-JS وأحداث Yandex و جميع أنواع mitaps في مدن مختلفة من الاتحاد الروسي.

تصادف أنني كنت بطلاً لقضايا RadioJS No. 54-55 ، معايير الويب رقم 170 ، Devshahty رقم 94 وبعض الآخرين. إلى جانب Svelte ، أود أن أتحدث عن تطبيقات الويب المتشابهة مع SSR و PWA ومكونات الويب و SmartTV.

, Svelte


action52champion: , , , .

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

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

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

بالحديث بشكل خاص عن Svelte ، أول مشروع قمت باختياره له في عام 2017 عبارة عن أداة مدمجة للمواقع. في الواقع ، لم يكن الخيار رائعًا - سواء الفانيليا ، أو ما يجمع في الفانيليا. حتى Vue المحبوبة في تلك اللحظة في شكلها النقي وزنها ~ 25Kb gzip ، وهو أمر شنيع لمثل هذا المشروع.

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

في نفس العام ، بعد أن انتهينا من المشروع ، كتبت مقالتي الأولى حول Svelte على Habr "اختفاء Magical JS Framework" لمشاركة أداة جديدة واعدة مع المجتمع. وبطبيعة الحال ، تم الترحيب بالمقال بشكل بارد إلى حد ما ، والذي يمكن إثباته حتى من خلال حقيقة أن مقالة فنية أكثر أو أقل مع أمثلة كود وتصميم جيد ثم جمعت 3 مرات أقل من "Vyser" الخاص بك اليوم. في الواقع ، كانت واحدة من المقالات الأولى حول Svelte بشكل عام وليس فقط الناطقين بالروسية.

حول المقالات المدفوعة وما هو "الربح"


action52champion : في المرة القادمة التي شعرت فيها بخيبة أمل من إحساس شخص ما بأنه يقوم فقط بتدوين المشاركات المخصصة.

فجأة اعتقدت أن جزءًا من الوقت الذي أمضيه في تطوير المجتمع لـ Svelte يتم دفع ثمنه بالفعل من خلال عملي. ألست متأكدًا مما إذا كان يجب اعتبار المواد الخاصة بي مخصصة؟

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

حسنًا ، سأخبركم كيف تعمل. ينقسم العملاء عمومًا إلى فئتين:

  1. - React/Vue/Angular/Ember/{ } — ,
  2. , .

لسوء الحظ ، غالبًا ما تُفرض القرارات الأولى على أساس الضجيج / العلاقات العامة ، والتي ، بالطبع ، تكون أقوى لتلك الأدوات التي تدعمها الشركات (React / Angular) و / أو المجتمعات القوية (Vue + Chinese).

لا فائدة من الاختباء أننا نريد الأداة التي نعتبرها الأفضل في قائمة "تلك الأطر التي سمعت عنها" لعملائنا. ليس لأننا نوع من الماسوشيين أو الأشرار ونريد أن نفعل كل شيء بشكل سيئ ، ولكن لأنها أداة جديرة حقًا ، في رأينا المتواضع. حلول Svelte بسيطة وفعالة. في معظم الأحيان ، أتطلع برعب إلى مشروعات React ، التي تأتي إلينا أحيانًا لاستكمالها. حتى Vue الجميلة والمحبوبة بنفسي تبدو ضخمة بالفعل.

بشكل عام ، أعتقد أن "الجليد قد تكسر" وحققنا هدفنا. إذا كان من الممكن في 2017-18 القيام بمشروع على Svelte فقط للعملاء من النوع الثاني ، فقد سمع الكثير من الناس في 2019-2020 عن Svelte وهم على استعداد لاستخدامه في مشاريعهم. كل يوم تقريبًا ، يكتب إليّ أشخاص وممثلون لشركات مختلفة ، بما في ذلك الخدمات الكبيرة ، في برقية في محادثة شخصية ودردشة Svelte ، ويسألون عن Svelte ونظامها البيئي. أنا سعيد لأنكم أعطوني الفرصة لإخباركم عن هذا الأمر.

حول عيوب محددة


action52champion : لا أريد مقارنة Svelte وأطر العمل الأخرى بالمرور بأوجه القصور المحددة. يمكنك قراءة هذه المقالة للحصول على تفاصيل.

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

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

عن الثلاثة الكبار


action52champion: : , , — ( ) .. , , . . -. - 5 . . . . . .

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

هل من الجيد أن تظهر حلول جديدة؟ بالتأكيد "نعم" ، لأن الوقت يستمر والمهام الجديدة ، تظهر تحديات جديدة. قبل 10 سنوات ، فكرنا فقط في أجهزة الكمبيوتر المكتبية والحمار ، قبل 5 سنوات فكرنا في الهواتف المحمولة ، واليوم تأتي إنترنت الأشياء ، الأجهزة المدمجة والقابلة للارتداء في المقدمة.

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

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

حول فيو


action52champion : أتذكر كيف انطلقت Vue واكتسبت شعبية على خلفية رد فعل بزاوية. نعم ، كان هناك PR ، لكن Vue لم يكن بحاجة إلى PR. قام بحل المشاكل الحقيقية للنفخ وتعقيد الأطر الأخرى. أخذ ما تم تحقيقه في الآخرين وأدرك في شكل أضيق الحدود. لقد حل مشكلة محددة - التعقيد والوحشية لإطارين آخرين. ما هي المشكلة الحقيقية التي يحلها Svelte لا أعرف. ما هو مكتوب على موقعة على الإنترنت هو بيان النوايا الحسنة.

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

هذا هو رمز Vue (2014):

var app = new Vue({
  el: '#app',
  data: function() {
    return {
       greeting: 'Hello',
       firstName: '',
       lastName: ''
    };
  },
  computed: {
      fullName: function() {
         return this.firstName + ' ' + this.lastName;
     }
  } 
});

وهذا هو رمز Ractive (2012):

var app = new Ractive({
  el: '#app',
  data: function() {
    return {
       greeting: 'Hello',
       firstName: '',
       lastName: ''
    };
  },
  computed: {
      fullName: function() {
         return this.get('firstName') + ' ' + this.get('lastName');
     }
  } 
});

كما ترى ، بالإضافة إلى الاختلافات التجميلية الطفيفة ، فإن بقية الرمز متطابقة تقريبًا.

ربما ستقول أن هذه مدرسة قديمة ويكتب الجميع على Vue في SFC (2015):

<template>
<p>{{greeting}} {{fullName}}</p>
</template>

<script>
export default {
  data: function() {
    return {
       greeting: 'Hello',
       firstName: '',
       lastName: ''
    };
  },
  computed: {
      fullName: function() {
         return this.firstName + ' ' + this.lastName;
     }
  } 
};
</script>

<style scoped>
p { color: red; }
</style>

وسأجيب لكم أن "لا جديد تحت القمر" (ج) - Ractive (2014):

<p>{{greeting}} {{fullName}}</p>

<script>
component.exports = {
  data: function() {
    return {
       greeting: 'Hello',
       firstName: '',
       lastName: ''
    };
  },
  computed: {
      fullName: function() {
         return this.get('firstName') + ' ' + this.get('lastName');
     }
  } 
};
</script>

<style>
p { color: red; }
</style>

وأيضًا ذلك DOM الافتراضي أو DOM الموازي ؟ آمل أنني لم أربكك تمامًا. لقد تفقدت التعليقات على المقالة الأصلية وأدركت أنك لا تفهم الفرق بين DOM الظاهري و Shadow DOM ، والذي يتبع بوضوح من هذا التعليق:

action52champion : تم تقديم Shadow DOM في الإطار ليس من حياة جيدة. يعني نقصه أن Svelte سيكون أبطأ بالتأكيد ، حيث سيكون هناك العديد من التحديثات.

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

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

كان هذا درسًا يجب أن تتعلمه أيضًا - ليس دائمًا أفضل التقنيات في القمة. هناك العديد من العوامل أكثر من جودة الأفكار وإبداعها. يجب أن يكون هناك محرك للنمو ، سواء كان ذلك دعمًا مؤسسيًا أو مجتمعًا باردًا. بهذه الطريقة ، لا يصبح الماس ماسة.

أنا أحب Vue حقًا وأعتقد أن هذه هي الأداة الأكثر ملاءمة لي من الثلاثة الكبار ، لكنني أفهم بموضوعية أنني لا أحبها بنفسي ، ولكن تلك الأفكار التي تعكسها. أفكار Ractive التي فقدناها.

Svelte ، في كثير من النواحي ، هو تابع للأفكار النشيطة جنبًا إلى جنب مع الأفكار المجسدة في Rollup (على سبيل المثال ، بساطتها ، اهتزاز الأشجار ، وما إلى ذلك) وهذا ليس مفاجئًا ، لأن كل هذه الأدوات لها مؤلف واحد .

في الآونة الأخيرة ، قدم Angular تجميع قالب AoT مشابه لـ Svelte. هل تعرف أين رأيت (بل واستخدمت) شيئًا مشابهًا لأول مرة وهذا سمح لنا في عام 2013 بالتخلص من هذا الجزء من وقت التشغيل الذي عمل مع القوالب؟ حسنا، فهمت القصد.

لماذا طويلة


action52champion : من وجهة نظر عملية ، هناك شيء واحد مهم - مدى نجاح الإطار في حل مشاكل العمل الحقيقية. ومن وجهة النظر هذه ، إذا كنت تأخذ إطارين يعملان على حل المشاكل بنفس الطريقة ، ولكن أحدهما يحتوي على المزيد من المجتمع والنظام البيئي ، فمن المعقول اختيار الأخير. أصدر Svelte في عام 2016. تم إصدار Vue في عام 2014. الفرق هو 2 سنة. أولئك. يمكن أن تأخذ Svelte في الاعتبار جميع أخطاء Vue وتصبح الأفضل ، وتستعيد الجمهور والسوق. لكنه لا يزال الهامش المطلق المعروف بشكل رئيسي بمقالاته الثناءة.

قبل الإجابة على السؤال ، سأقوم بتصحيح بيانك قليلاً. في الواقع ، تم إصدار Svelte في عام 2017. تحدث عنه مؤلفه ، ريتش هاريس ، في "أطر عمل بدون إطار: لماذا لم نفكر في هذا الأمر عاجلاً؟" فقط في نهاية

عام 2016. بالإضافة إلى ذلك ، كان Svelte 1 على الأرجح إثباتًا للمفهوم ، والذي تمت مناقشته أكثر من مرة في المجتمع وفي التواصل مع المؤلف. على الرغم من ذلك ، كان Svelte 1 الذي استخدمته في المشروع الأول باستخدام عنصر واجهة مستخدم وعمل هذه المهمة بشكل مثالي. في تلك اللحظة ، واصلنا الكتابة على Vue ودعم المشاريع في Ractive. تم تطوير أول مشروع أكثر أو أقل خطورة بالفعل على Svelte 2 ، والذي تم إصداره فقط في منتصف عام 2018 ، والذي كتبت عنه على الفور في المقالة المقابلة .

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

بعض التموجات في التعليقات أن تاريخ إصدار Svelte هو ظهور Svelte 3 ، والذي ظهر بشكل عام قبل عام فقط وحقق نتائج مذهلة هذا العام. في هذا الموضوع ، يمكنك تذكر Angular و AngularJS - إطارين مختلفين تحت نفس الاسم. أنا شخصياً أعتبر أن كل هذه الحسابات ليست سوى شعبوية غبية.

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

حول الواجهات الأمامية الغبية والجشعة


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

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

إذا كنت مخطئًا ، وكنت واجهة أمامية محنكة ، فربما تتذكر أنه قبل بضع سنوات ، لم يكن العمل في Vue نفسه قد اكتمل أيضًا. كانت الوظائف مجزأة وعرضت أموالًا أقل من React أو Angular أو حتى Ember للمطورين. في الوقت نفسه ، نرى الآن أن Vue اتخذ بالفعل موقعًا جديرًا بالاهتمام. بالنسبة لـ Svelte ، من المحتم أيضًا سواء كنت تريد ذلك أم لا.

حول النظام البيئي


action52champion: « » « , ». , , . ! 2020 — .


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



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

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

عن "المقدس"


action52champion: , , — - . , 3 , . , , , , , . Svelte .

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

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

حول جميع أنواع الأشياء المختلفة


action52champion: , Svelte . JS VueJS, Svelte. Vanilla JS , ? , ? - ? Virtual DOM, ? Write less code? ? , , , Vuejs React - , .

سؤال خاطف ، ممتاز.

  1. بساطتها قابلة للتحقيق. تنشأ مشاكل هذا عندما يتم وضع مبدأ مختلف في أساس الحل. على سبيل المثال ، لا يمكن أن يكون Reduh في جوهره أضيق الحدود بسبب وفرة لوح مرجل مضمن فيه. في الوقت نفسه ، يظل Storeon ، الذي يعمل بشكل أساسي على نفس المبادئ ، في أضيق الحدود. بشكل عام ، تميل جميع الأطر الحديثة إلى تقسيم مكوناتها باعتبارها أصغر وحدات ممكنة. بالإضافة إلى ذلك ، تحتاج إلى فهم كيفية كتابة أكثر الشفرات التصريحية والقائمة على الدولة.
  2. هذا ليس خيارًا بين Vanilla JS و Svelte. Svelte - هذا هو Vanilla JS ، الذي لا تحتاج إلى كتابته وهو أسهل في الحفاظ عليه وتطويره عدة مرات.
  3. Typescript + — « », -. . TS. , Vue ? TS ± Svelte.
  4. , Virtual DOM. Svelte , change detection . .
  5. . . React Vue. 1.5 , .
  6. نظرًا لأنك لا تحب الأمثلة من وثائق Svelte. هل يمكنك اقتراح حالات أكثر خطورة من توثيق أطر العمل الأخرى؟

عادةً ، لشرح كيفية عمل Svelte بإيجاز ، أستخدم هذه الصياغة:

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



وهذا النهج مختلف تمامًا حتى عن Vue ، حيث لا تعد SFC أكثر من طريقة أكثر ملاءمة لكتابة Vue.extend.

عن المجتمع


action52champion : يقال أن Svelte بها مجتمع كبير ناطق بالروسية. أنا لا أراه ، أرى فقط المبشرين ، كل منهم يبشر بعشرة.

سعيد أنك سألت عن هذا. يتم تمثيل المجتمع الناطق بالروسية من خلال الدردشة الرئيسية في البرقيات ( sveltejs ) ، ودردشة منفصلة لإطار Sapper ( sapperjs ) ، وقناة بها وظائف شاغرة ( sveltejs_jobs ) وأخبار ( sveltejs_public ) ، بالإضافة إلى مجموعة VK ( sveltejs_ru ).
الحركة الرئيسية في محادثة حيث يوجد بالفعل أكثر من 1.5 ألف شخص وهيكل مفعم بالحيوية إلى حد ما من الرفاق النشطين.




كان هناك أكثر من 170 شخصًا في أول تجمع لنا بعيدًا في 22 فبراير في موسكو ، وشاهد ما يقرب من 1 ألف زائر البث عبر الإنترنت. كان من المفترض أن يكون الهدف التالي في سان بطرسبرج في أبريل ومايو ، لكن الوباء أجرى تعديلات على خططنا. آمل أن يعمل كل شيء قريبًا وسنستمر. يمكنك متابعة لقاءاتنا على الصفحة الرسمية لقاءات Svelte Russian .

دعونا نرى من يتحدث عن Svelte. على سبيل المثال ، هنا يحكي Andrei Melikhov (Devshakhta) المحترم كيف يستخدم Yandex.Money Svelte:



هنا ، اقتباس حرفي من Andrei Sitnik (مؤلف PostCSS / Autoprefixer / etc) في HolyJS Piter العام الماضي :
"Svelte ، بصراحة ، هو أفضل اختراع في عالم إطارات جافا سكريبت. لا يجب أن نتحدث عن الخطافات ، يجب أن نتحدث عن Svelte ".

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



بالطبع ، ليس لدي شك في أن محاورتي المحترمة أذكى منا جميعًا ... على الرغم من لا ، أشك في ذلك. آسف ، الأفكار بصوت عال.

الوعي المؤيد (NOT)


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

يبدو أنني أجبت بالفعل على سؤال مشابه ، لكنني مستعد لتكرار ذلك ، لأنك قدمت لي هذه الفرصة. واحدة من المشاكل التي أراها شخصيا من حيث تعزيز رشيق هو أن بصريا أنها مشابهة جدا لالأطر الثلاثة الكبار، على الرغم من المفهوم أنه يختلف الكثير جدا. وقد ظهر هذا بشكل خاص في Svelte 1/2 ، عندما جاء الناس إلى المجتمع وتعليقات Habr ولم يفهموا بصدق كيف يختلف Svelte عن Vue. وبالفعل ، في تلك اللحظة كان كلاهما متشابهين للغاية مع Ractive. مع إصدار Svelte 3 ، أصبحت الاختلافات أكثر إشراقًا ، لكن هذا لم يحل المشكلة تمامًا.

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


شعبية (وليس) شعبية


action52champion: « , 3 ?», . , . 5 , . - , . . , ( ). — , .


وأنت مستفز ، مع ذلك! ))) على الرغم من أن الكثيرين يعتبرونه كرامة المحاور ، ما زلت أعتقد أنك بحاجة إلى فهم الموضوع على الأقل ، حتى لا تبدو غبيًا في استفزازاتهم.

"لقد نمت مرة أخرى ، عزيزي." (ج) انظر StateOfJS 2018 - Svelte في أعلى 1 بين "المكتبات الأخرى" ، وفي عام 2019 دخلت بشكل ثابت إلى التجمع الرئيسي لأطر الواجهة الأمامية ، في حين أنها تقود بمعيار "الاهتمام" فيه:



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

في النهاية ، انظر إلى عدد الأطر / المكتبات / المنصات / $ mol الموجودة وليس جميعها على قدم المساواة مع الثلاثة الكبار. نعم ، على الأقل لديهم فقط مركزهم الخاص على أحد مصادر تكنولوجيا المعلومات الشهيرة وإبراز البنية المخصصة في Github.

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

حول OSS


action52champion: Svelte . Svelte, , Svelte . , ? , . ? Who's using Svelte?.. - ? , , VueJS ?

كما اكتشفنا بالفعل ، لمدة عامين منذ بداية تعميم Svelte و / أو لمدة عام واحد منذ إصدار نسخته الشعبية ، حدث الكثير حوله ، لذلك أعتقد أن هذا السؤال صريح.

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

فيما يتعلق ب Svelte ، فإن هذه الشركات "المختلفة" تساعدنا بشكل مختلف. على سبيل المثال ، ساعدنا Mail.Ru كثيرًا مع أول استعارة روسية على Svelte. لقد زودنا مكتبنا الجميل بالمعدات وملفات تعريف الارتباط ، وتولوا تنظيم البث والتسجيل. شكرا Mail.Ru!

عن حقيقة ذلك


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

سؤالي المفضل! تقريبا مثل الكرز على كعكة.

نعم ، أنا متأكد من أنني على حق وهذا هو السبب:

  • أنا أعرف ما أتحدث عنه. أستخدم Svelte في عملي وآخر الحلول في OSS.
  • أنا صانع القرار لاختيار التكنولوجيا والمسؤول عن نجاح المشاريع.
  • لدي شيء للمقارنة. بالإضافة إلى Svelte ، لدي خبرة في العديد من أطر العمل الآن وفي الماضي (Backbone ، AngularJS ، Ractive ، Riot ، Vue / Nuxt ، React ، LitElement).
  • أتواصل كثيرًا مع أولئك الذين يستخدمون Svelte وغالبًا ما يساعدون أولئك الذين يرغبون في تعلمه. أسمع مشاكلهم وأحاول دائمًا تقديم الحلول.
  • قرأت تقارير عن Svelte وأنا على استعداد للإجابة على الأسئلة بشكل موضوعي.

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



ملاحظة


انتهت المقابلة ، والآن Alaverdi. وأنت ، عزيزي @ action52champio ، هل أنت متأكد من أن لديك الحق في إلقاء اللوم على أداة لم تستخدمها فقط ، ولم تشاهدها حقًا في عينيك؟ ما هي تجربتك العملية مع Svelte ، وهل لديها إطار واحد على الأقل؟ أنت لا تحب رد الفعل ، أنت لا تفهم Vue. الزاوي؟ لا انا لا اعتقد ذلك.

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

تحديث:


أغتنم هذه الفرصة لدعوة الجميع إلى لقاء عبر الإنترنت مع مؤلف Svelte ، حيث سيجيب على الأسئلة الأكثر إثارة للاهتمام التي تم جمعها من المجتمع:
sveltesociety.dev

All Articles