← Back Home

Symfony 5 The Fast Track review

بسم الله الرحمن الرحيم

في المقاله دي هتكلم عن رايي ف كتاب Symfony الجديد Symfony 5 The Fast track و هتكلم عن ايجابيات و سلبيات الكتاب من وجهه نظري الشخصيه

Symfony 5 Book Cover

اولا الكتاب اتكلم ف مواضيع كتير و هتبقي مفيده جدا لاي حد بيبدا يشتغل مع Symfony او PHP عموما. الكتاب بيستعرض المميزات و سهوله سيمفوني في بناء اي تطبيق و المثال اللي الكتاب بيشتغل عليه هو Conference reviews app. ف انت عندك صفحتين في الابلكيشن كله. صفحه بتعرض كل ال conferences اللي هي ال Home Page و صفحله لكل conference بيكون فيها comments و اي حد بيقدر يضيف comment من غير اي login or register

الكتاب بدا ببدايه كويسه خالص لما شرح ال development workflow و ايه ال الادوات اللي ممكن نستخدمها زي ال IDE و ال terminal و انك تشتغل ب Git و Composer و Docker.

الكتاب بيشرح ازاي تبدا الابلكيشن من الصفر لغايه ما يبقي بروداكشن و جاهز للاستخدام الفعلي ودي صوره من الarchitecture النهائي Symfony 5 book - architecture

حابب انوه انك متعليش سقف توقعاتك من الكتاب لانه مش بيشرح بعمق، هو بيعرفك الكونسبت و ايه المشكله اللي بيحلها و ازاي نستخدمه بس. لكن انه يشرح ازاي بيشتغل من الداخل مش متاحه ف الكتاب و انك وقتها محتاج تشوف الدكومنتيشن بتاع سيمفوني او تبص ع السورس كود.

الكتاب بردو وهو شغال معاك بيعلمك ازاي تستخدم git بشكل كويس حيث انه هيتعمل برانش لكل جزء ف كل فصل من الكتاب و كمان السورس كود كله متوفر علي github و انت ف اي وقت تقدر تشوف البرانش من السورس كود حسب الفصل اللي بتقراه و هيفهمك تعمل ده ازاي ف انت في اي وقت تقدر تشوف الكود علي جهازك زي ما انت شايفه في الكتاب

الكتاب بيشتغل علي postgreSQL و مش موضح الاسباب و انا نفسي معرفش ليه مش MySQL بس عموما مش هتحس باي فرق اطلاقا وانت شغال مع الكتاب لان الكتاب بيستخدم doctrine migrations ف في النهايه انت بتتعمل مع الdatabase ب php objects

بردو الكتاب بيستخدم EasyAdmin و دي admin dashboard جاهزه من الكومينتي بتاع سيمفوني و بتوفر مجهود كبير ف انك تبني admin panel ل مشروع صغير او حتي كبير في اعتقادي

بردو هتتعرف علي twig template engine و علي شويه مميزات ليه و دي في رايي حاجه لطيفه جدا بما اني جاي من Laravel و بحب ال blade لانه مش بيضيف complexity زي twig بس الكتاب وضحلي شويه نقط شايفها كويسه

الكتاب وضح الاستخدام الامثل للـ events & listeners علشان مثلا تبعت emails & notifications سواء علي slack او sms و دي انا لاحظت ان فيه ناس كتير مش واخده بالها منها

الكتاب بعد كدا بيشرح ال life cycle ل Doctrine objects ودي حاجه فادتني جدا وكان فيه حاجات اول مره اعرفها.

الطريقه اللي الكتاب وضح فيها ازاي تعمل Forms و ازاي تعمل ال authentication كانت لطيفه و الشرح كان افضل من اللي موجود علي symfony casts

بعد كدا الكتاب شرح بشكل لطيف جدا ازاي تحمي ال API من ال spamming وكانت اول مره اعرف فيها ان Akismet مفيد بالشكل ده بعد ما كنت فاكره wordpress only

الكتاب بعد كدا شرح بشكل بسيط و سهل جدا ازاي تعمل testing سواء functional او Unit Tests و ازاي تعمل mock و ازاي تستخدم PHPUnit Data-Providers علشان تقلل الكود لو هتعمل تست بكذا حاله علي فانكشن واحده

الكتاب بعد كدا شرح ازاي الكود عندك يبقي async بحيث ان ال API بتاعتك تكون سريعه و الشغل اللي محتاج وقت او بطئ شويه يتعمل ف Background-Jobs تشتغل عليه ب RabbitMQ و ازاي تتفادي اي conflict ممكن يحصل في حاله انك استخدمت الasync بشكل غير صحيح زي مثلا انك بتبعت ايميل و slack message بشكل مش مظبوط ف لو حدثت اي مشكله وانت بتبعت slack message سيفموني بطبيعته هيحاول يجرب تاني ووقتها ممكن تبعت ٣ ايميلات من غير ال slack message بسبب ان الكود بتاعك بيتعامل بشكل غلط

الكتاب بعد كدا بيشرح symfony workflow ودي كانت حاجه جديدة عليا و حبيتها اوي الحقيقه ولكن لسه مش متاكد هل هي كويسه بشكل كبير فعلا ولا ممكن استغني عنها بكود ابسط في حاله المشاريع الصغيره او الكبيره جدا مثلا

فكره ال symfony workflow انه بيساعدك تتاكد ان ال object state بتمشي ب خطوات مظبوطه و محسوبه صح

ف مثلا لو انت عندك موقع اخبار زي المصري اليوم مثلا. ازاي تتاكد ان الخبر ميبقاش published الا لو مر بكل المراحل اللي بتقول ان الخبر ده ينفع يتعمله نشر. لو انت عندك مرحله تدقيق املائي و بعدين مثلا رئيس التحرير يوافق ع الخبر و قبلها خطوات بتتاكد ان الخبر سليم. صعب انك تمشي ب if condition و لو عندك اكتر من service مسؤوله عن عمليه نشر الخبر. الموضوع بيبقي مش سهل

Symfony 5 book - workflow example

الصوره دي بتوضح ازاي ال workflow بيشتغل و ازاي انه بياكدلك انه استحاله حاله المقاله تتغير من draft ل published مره واحده طول ما انت شغال بال workflow component الا طبعا لو حد قرر يتفادي الكلام ده و راح رازع ال update زي كدا مثلا و دي بتكون غلطه بشريه مش من الكود نفسه :D

    
    $article->setStatus('published');
    $this->entityManager->flush();

بردو الكتاب هيعرفك ازاي تعمل ال workflow و ازاي تعمله صوره زي المثال اللي فوق كدا

الكتاب بعد كدا بيتكلم ازاي تعمل caching و ازاي تتاكد انك هتعرف تعمل performance كويس و ازاي لما يكون فيه مشكله تقدر تتابع الكود بيوصل لغايه فين من غير ال caching و استخدم Varnish للكاشينج و دي حاجه ممتازه جدا لاني كمان ناوي اكتب عن الفرق بين الكاشينج بحاجات زي varnish و انك تعمل كاش من الابلكيشن و ترميه ف redis او memcached

بعد كدا الكتاب بيعمل ديزاين لطيف للتطبيق و بيعرفك ازاي سيمفوني ليه باكدج بتتعامل مع webpack علشان تسهل عليك شغل ال Front End . زي Laravel Mix كدا :P

وبعدين ازاي تعمل resize لل images بشكل صحيح و ازاي تعمل upload للصور بشكل سليم بعد ما تعدلها

الكتاب بعد كدا بيعرفك علي ال cronjobs و ازاي تمسح مثلا اي تعليقات spam و يعني ايه cronjobs

بعد كدا بيتكلم عن ال notifications و ازاي تعرض ال error messages للمستخدم لما يدخل بيانات غلط في ال comments form

الكتاب بعد كدا بيتكلم عن API Platform و Cordova في انك ازاي تعمل mobile app بس الكتاب شرحها اي كلام الحقيقه و انا شايفها غير مفيده اطلاقا ولكن تعتبر بدايه صغيره خالص لاي حد عاوز ياخد خلفيه عن ال apis و ال mobile.

واخر نقطه هي ان طول الخطوات اللي فاتت دي كلها. الكتاب كان بيشرح ازاي تعمل Deploy علي SymfonyCloud لدرجه تحسسك انك مش هينفع تشتغل من غير symfony cloud. من ناحيه اخري بردو الموضوع مع symfony cloud سهل جدا انك تخلص اي بروجكت و تعمل deploy & rollback. ف بص ليها من الزاويه المناسبه ليك :D

الملخص

انا استمعت جدا بقراءه الكتاب لدرجه اني خلصته ف يوم واحد لانني كنت مهتم اعرف الخطوه اللي بعد كدا ف كل فصل انا كنت بخلص قراءته. المصطلحات لم تكن صعبه في الفهم, الكتاب بيتكلم بشكل سلس و سهل جدا

الكتاب انا اشتريته لما كان علي kickstarter علشان كدا وصلتني النسخه بتوقيع منه :D. ان شاء الله لما ينزل ف السوق هعدل المقاله و احط اللينك هنا .

كمان الكتاب بيتم ترجمته دلوقتي لاكتر من لغه من ضمنهم اللغه العربيه Fabien's tweet . ف يا رب الكومينتي يخلص الترجمه بسرعه لاني شايفه هيبقي كتاب مفيد جدا جدا لما ينزل باللغه العربيه

comments powered by Disqus