حجم مطالبی که برای تعامل با بک اند باید یاد بگیرید بیشتره و میشه گفت کمی پیچیده تره
تمام این موارد به کنار فرض کنیم کدهای بک رو مینویسی و همه چیز کار میکنه
تازه باید بری سراغ مطالبی مثل
البته فرانت هم در حال حاظر به خاطر ابزارهای جاوااسکریپتی جور وا جور، کمی مباحثش شلوغ شده.. اما از اونها که بگذریم برای فرانت کار خوب بودن باید ۲ نکته رو خیلی خوب یاد گرفت:
با درود
جناب @ali.bayat به نظرتون اگر شخصی تخصصی بخواد وقت بزاره برای سرفصل های زیر در طراحی رابط کاربری، کارش مشکل تره؟ یا با توجه به نکات بالا، همچنان نظرتون روی سختی و پیچیدگی بیشتر در برنامه نویسی سمت سرور هستش؟
یادگیری اصول طراحی ui و ux و توانایی ایجاد طرح اولیه بر اساس آنها
html5, css3, responsive design, flexbox, css grid, bootstrap
js, es6, es7, 8, 9, 10, webpack و (typescript در صورت نیاز)
angular یا react یا vuejs. یکی ازین سه تا، بهمراه تمامی کتابخانه های جانبی مورد نیاز
pwa
طراح فرانت اند باید از طراحی ظاهر لذت ببره و استعدادشو هم داشته باشه !چون تو ایران معمولا گرافیک سایت رو هم خود فرانت اند کار باید بزنه
ولی بک اند در سطح پیشرفته کلا هیچ ارتباطی با ظاهر یه سایت نداره دیگه .. شما همش باید api بزنی و درگیر دیتابیس باشی! باید منطقت قوی باشه
.
تو دانشگاه به شخصه هیچ سلیقه ای برای طراحی ظاهر نداشتم ولی منطق قوی داشتم بخاطر همین رفتم سمت بک اند
من در پاسخم نخواستم، کار فرانت اند کارها رو ساده نشون بدم..
مسلما فرانت اند رو هم اگر به شکل حرفه ای دنبال کرد، مباحث زیادی درش هست.
اما مثلا responsive design, flexbox, grid و .. اینها با درک خوب CSS قابل پیاده سازی هستند.
و اگر جاوااسکریپت رو بخوبی درک کرده باشیم یادگیری فریمورک هایی مثل Vue و یا Angular میتونه به سرعت انجام بشه.
یا مثلا تنظیمات وبپک کلا یه آبجکت هست (البته این مورد پیچیدگی های خاص خودش رو داره)
اما مطالبی مثل UI/UX میتونه زمان بر باشه
پاسخ بنده صرفا از روی تجربه کاری شخص خودم هست..
من در کل علاقه بیشتری به بکاند دارم و چند وقتیه تمام مقالات و پکیج هام به بکاند مربوط میشند.
اما خوب کارهای فرانت هم انجام دادم.. مثل
در کل کار فرانت برای من پیچیدگی کمتری به نسبت کار بکاند داشته.
با توجه به اینکه افراد مختلف از نیم کره های مختلفی در مغزشون استفاده میکنند.. ممکنه افراد دیگه به نتیجه ی برعکس چیزی که من رسیدم، برسند.
نیمکره چپ مخصوص منطق هست که بکاند کارها باهاش درگیرند و نیم کره راست مخصوص خلاقیت هست که طراحها و فرانت کار ها باهاش درگیرند
اما در کل یه سری پیچیدگی ها و الگوها رو در کدهای بکاند مون باید رعایت کنیم تا پروژه در آینده قابل توسعه باشه..
همونطور که یه فرانت کار خوب نمیاد به صورت inline کدهای css رو به المان ها اضافه کنه..
یک بک اند کار خوب باید نکته های خیلی زیادی رو در حین تولید ساختار برنامه بهشون دقت کنه; تا کدی که مینویسه قابل نگهداری و توسعه باشه.
یا مثلا در جاوااسکریپت ما به ندرت سراغ کلاس ها میریم.. اکثرا ابزارهایی مثل Vue و ریاکت از یه کلاس دیگه ارثبری میکنند و همین...
اما در نقطه مقابل مثلا در PHP ... اگر قرار باشه کدهای تمیز و خوب بنویسیم:
در ادامه جا داره متنی رو از مقدمه یکی از کتابهای خیلی خوب Robert C Martin (معروف به Uncle Bob) به نام
"Clean Architecture: A Craftsman’s Guide to Software Structure and Design "
با دوستان به اشتراک بگذارم:
دانش و مهارت زیادی لازم نیست تا یک برنامه نوشت. بچههای دبیرستانی نیز این کار را در دبیرستان انجام میدهند. مردان و زنان جوان در دانشگاه با سر هم کردن چند خط کد PHP یا Ruby کسب و کارهای میلیارد دلاری را شروع کرده اند. برنامه نویسان تازه کار زیادی در دفاتر کاری مکعبی شکلشان در سرتاسر دنیا در بین اسناد حجیم نیازمندیهای موجود در سیستمهای issue tracking خود در حال تقلا هستند تا سیستم هایشان را با صرف فعل خواستن توانستن است به کار بیندازند. کدهایی که تولید میکنند ممکن است زیبا نباشند ولی کار میکنند. کار میکند به این دلیل که چیزی بتواند یک بار کار کند، خیلی سخت هم نیست.
این که چیزی واقعا به درستی کار کند موضوعی کاملا متفاوت است. پیاده سازی صحیح نرم افزار سخت است چرا که دانش و مهارت هایی نیاز دارد که هنوز بیشتر برنامه نویسان جوان به آن دست نیافته اند. این کار به بینش و تفکری احتیاج دارد که بیشتر برنامه نویسان وقتی برای توسعه آنها نمیگذارند. همهی اینها به سطحی از انضباط و تعهد احتیاج دارد که بسیاری از برنامه نویسان حتی خوابش را نمیدیدند که به آنها احتیاج پیدا کنند و در بیشتر موارد اشتیاق به مهارت و تمایل به حرفه ای شدن است.
وقتی که برنامه را به شکل صحیح پیاده سازی کنید، چیزی جادویی اتفاق میافتد: دیگر به لشکری از برنامه نویسان برای این که آن را در حال کار کردن نگه دارند نیاز ندارید. دیگر به سندهای نیازمندیهای حجیم و سیستمهای issue tracking بزرگ احتیاج ندارید. شما دیگر به اتاقهای کاری مکعبی شکل زیاد و برنامه نویسی 24 ساعت و هفت روز در هفته نیاز ندارید.
نرم افزاری که یه شکل صحیح تمام شود، تعداد کمتری از منابع انسانی برای ایجاد و نگه داری نیاز دارد. تغییرات به سرعت و ساده هستند. نقصها کم و فاصلهی بین آنها کم است. تلاش کاهش مییاد، عملکرد و انعطاف پذیری افزایش مییابد.
بله، همچین چشم اندازی به نظر خیال پردازی میآید. ولی من آن جا بوده ام، من دیدم که اتفاق افتاد. من بر روی پروژه هایی کار کرده ام که طراحی و معماری سیستم، نوشتن کد و نگهداری آن را آسان کرده بود. پروژه هایی را تجربه کرده ام که به کسری از نیروهای انسانی پیش پینی شده احتیاج پیدا کرده بود. بر روی سیستم هایی کار کرده ام که نرخ نقص به شدت پایینی داشته اند. من تاثیرات خارق العاده ای که یک معماری نرم افزاری خوب میتواند بر روی سیستم، پروژه و تیم داشته باشد را دیده ام.
اما حرفهای من را در نظر نگیرید. به تجربه خودتان نگاه کنید. آیا خلافش را تجربه کرده اید؟ آیا بر روی سیستم هایی کار کرده اید که جوری به هم پیوسته و پیچیده اند که هر تغییری جدای از این که چقدر واضح و ساده باشد، هفتهها طول میکشد و خطرهای بزرگی را شامل میشود. آیا طراحی سیستم هایی که با آنها کار کرده اید تاثیر منفی بزرگی بر روی روحیه تیم، اعتماد مشتریان، سازمانها و حوصلهی مدیران گذاشته اند؟ آیا تیم ها، سازمانها و حتی شرکت هایی که به وسیلهی ساختار نرم افزاری فاسد خود نابود شده اند را دیده اید؟ آیا تا به حال در جهنم برنامه نویسان بوده اید؟
من بوده ام و تا حدودی بیشتر ما نیز بوده ایم. تفاوت بسیار زیادی است بین وقتی که شما دارید با طراحیهای نرم افزاری افتضاح کلنجار میروید تا وقتی که دارید از کار با یکی از طراحیهای خوب لذت میبرید.
پیروز باشید.
سلام به دور از تعصب باید بگم این مورد ربط به علایق و استعدادها و توانمندی هر فرد میتونه داشته باشه ، و برای شخصی فرانت راحت و لذت بخشه و برای شخص دیگه بک اند. ساده و مختصر و امیدوارم مفید هم باشه.
آیا مایل به ارسال نوتیفیکیشن و اخبار از طرف راکت هستید ؟