Fullstack کیست و به چه کسی فول استک دولوپر می گویند؟
تا حالا شده به وب سایتی سر بزنید و برای یک لحظه فکر کنید کاش شما هم همچین وب سایتی داشتید؟ اگر این حس را تجربه کرده اید پیشنهاد میکنم روی این لینک را کلیک نمایید.
Full Stack چیست؟
اول باید دربارهی معنای استک و فول استک بحث کرد و بعد دربارهی وظایف و مهارتهای طراح فول استک حرف زد. احتمالا این سوال برای شما هم پیش آمده که استک (Stack) به چه معناست. استک در لغت بهمعنای دسته یا پشته یا دستهکردن است. اما استک معنای خاصی در دنیای برنامهنویسی دارد. استک به نرمافزار و مجموعه اجزا و ابزاری گفته میشود که توسعهدهنده برای انجامدادن کار خاصی از آن استفاده میکند. پس،
فول استک به مجموعه نرمافزارها و تکنولوژیهایی گفته میشود که برای توسعهدادن و ساختن یک پلتفرم، سایت یا اپلیکیشن استفاده میشود.
فول استکهای مختلفی برای توسعه سایت تعریف شده است. هریکاز آن فول استکها ترکیبیاز استکهایی است که اگر برنامهنویس بر آنها مسلط باشد، میتواند خودش بهراحتی فرانت اند و بک اند یک سایت را توسعه دهد. یعنی نیاز نیست فول استک دولوپر همهچیز را برای ساختن سرور ساید و کلاینت ساید یک سایت بلد باشد، کافی است که بر یکیاز فول استکها مسلط باشد.
توسعه دهنده فول استک کیست؟
برای اینکه یک سایت ساخته شود و کاربران و بازدیدکنندگان بتوانند با آن تعامل داشته باشند، دو قسمت متفاوت باید طراحی و توسعه داده شود: فرانت اند یا Client-side و بک اند یا Server-side. فرانت اند آن قسمتی از سایت است که کاربر میبیند. سرور ساید آن قسمتی است که کاربر نمیبیند ولی کارایی و عملکرد سایت را ممکن میکند. برای توسعهی فرانت اند و بک اند نرمافزارها، زبانهای برنامهنویسی، فریمورکها و مهارتهای متفاوتی بهکار گرفته میشود. برهمیناساس، طراح یا توسعهدهنده سایت یا متخصص توسعه فرانت اند است یا بک اند.
توسعه دهنده فرانت اند حداقل باید بر jQuery & HTML, CSS, JavaScript مسلط باشد. برای توسعه بک اند چون اولین گزینه معمولا زبان PHP است و بعداز آن ASP یا Java یا پایتون، برنامهنویس بک اند باید حداقل بر یکیاز آن زبانها مسلط باشد. از فریمورکهای معروفی که معمولا توسعهدهندگان آنها را یاد میگیرند و استفاده میکنند، میشود به فریمورک بوت استرپ برای توسعه فرانت اند و فریمورک لاراول برای توسعه بک اند اشاره کرد.
فول استک دولوپر کسی است که دانش، توانایی و مهارتهای لازم برای برنامهنویسی و توسعهی فرانت و بک اند را باهم دارد.
البته نباید اینطور تصور کرد که فول استک دولوپر همهی مهارتهای توسعهدهنده سرور ساید و کلاینت ساید را نیاز دارد. باتوجهبه پیچیدگی هریکاز آن حوزهها و پیشرفتها و تکنولوژیهای جدیدی که هرروز وارد دنیای طراحی سایت میشود، یکنفر نمیتواند بر همهچیز مسلط باشد. بههمیندلیل، مفهومی بهنام فول استک بهوجود آمده است.
برنامه نویس فول استک چه وظایفی دارد؟
نیاز کسبوکارها و خواست کاربران در دنیای امروز سایتهای داینامیک است. سایتهایی تعاملی و جذاب که میشود به آنها اطلاعات داد و اطلاعات گرفت، یعنی سایت به پایگاهداده و ارتباطداشتن و تبادل اطلاعات مداوم و سریع با آن نیاز دارد. ازطرفدیگر، سهم طراحی تجربه کاربری و طراحی رابط کاربری در وب دیزاین هرروز بیشتر و بیشتر میشود. طراحی و توسعه سایت دیگر فقط کدنویسی نیست؛ طراح، فول استک دولوپر، واقعا باید سایت را دیزاین کند. توسعهدهنده فول استک باید تفکر دیزاین هم داشته باشد.
برهمیناساس، برنامهنویس فول استک مجموعه وظایف متفاوتی برعهده دارد و حتی ممکن است رهبری و هدایت تیم طراحی و توسعهی سایت نیز با او باشد:
طراحی، توسعه و نوشتن کدهای بک اند سایت (و هرآنچه مربوط به درست و سریع عملکردن سرور ساید است یعنی تنظیمات مربوطبه پایگاهداده، سرور و مرورگر)؛
طراحی و توسعه و نوشتن کدهای سمت کاربر سایت با کمک و همکاری طراحان رابط کاربری و طراحان تجربه کاربری؛
ارزیابی و بررسی سایت ساختهشده (فرانت و بک)، یافتن مشکلات و برطرفکردن آنها؛
اطمیناناز امنیت و سرعت و کارایی سایت و همچنین رضایتبخشبودن کاربردپذیری و تجربه کاربری سایت؛
حل مشکلاتی که در مسیر طراحی و توسعهی سایت یا بعداز آن در عملکرد سایت پیش میآید با همکاری و همفکری سایر اعضای تیم و برنامهنویسان.
البته، ممکن است براساس اینکه توسعهدهنده فول استک در چه پروژهای (بزرگ یا کوچک) کار میکند، وظایفش کم یا زیاد شود. ممکن است او یکیاز فول استک دولوپرهای یک پروژهی بسیار بزرگ باشد یا تنها برنامهنویس یک پروژهی کوچک.
درکل، فول استک دولوپر وظیفه دارد از الف تا یای یک سایت را طراحی و توسعه دهد یا بر طراحی و توسعهی آن نظارت و با سایر اعضای تیم همکاری داشته باشد.
فول استک دولوپر وب چه مهارت هایی نیاز دارد؟
کوتاهترین پاسخ این است که طراح فول استک وب به مهارتهای متنوعی نیاز دارد. همانطور که از لیست وظایف او مشخص است، برای توسعهدهنده فول استک فقط مهارتهای سخت (فول استکها) کافی نیست، او به مهارتهای نرم نیز نیاز دارد. مهمترین و اصلیترین مهارتهای سخت و نرم که فول استک دولوپر باید داشته باشد، موارد زیر است:
تسلطبر زبان نشانهگذاری HTML، زبانهای CSS و جاوااسکریپت برای توسعهی فرانت اند و یکیاز زبانهای سمت سرور (که معمولا زبان PHP است)،
تسلطبر کار با پایگاههای داده SQL & NoSQL و همچنین وب سرورها (که معمولا وب سرور آپاچی است)،
تسلطبر کار با سیستمهای کنترل ورژن مثل گیت یا GitHub،
تسلطبر طراحی و ساخت API (Application Programming Interface) یا رابط برنامهنویسی نرمافزار،
تسلطبر کار با حداقل یک فریمورک توسعهی فرانت اند و یک فریمورک توسعهی بک اند،
آشناییبا UI (اصول طراحی رابط کاربری) سایت،
تفکر دیزاین و آشناییبا اصول طراحی گرافیک،
تسلطبر مهارتهای لازم برای مدیریت پروژه و کار تیمی ازجمله ارتباط کلامی، مدیریت زمان و حل مسئله،
خلاقیت و توجهبه جزئیات.