من یک “فول استک دولوپر” هستم!

فول استک دولوپر یا به عبارت خودمونی تر، توسعه دهنده ی همه فن حریف اصطلاحیه که ما معمولن در مورد خودمون (شکسته نفسی هم نکنید اصلا!) یا در مورد برنامه نویس ها و توسعه دهنده هایی به کار می بریم که کارشون رو خیلی قبول داریم، و معتقدیم توسعه دهنده های همه فن حریف کسایی هستن که توی هر پلتفرمی و با هر زبانی، میتونن برنامه های کاربردی بنویسن. اما بیایید با هم مرور کنیم که یک “فول استک دولوپر” واقعن کیه؟ اگه به من باشه، من یه توسعه دهنده ی همه فن حریف رو کسی میدونم که با لایه های زیر آشنایی خوبی داشته باشه. لزومی نداره که به همه ی اونا مسلط باشه، اما در مواقع لزوم باید بتونه توی هر کدوم از این لایه ها کارهای خودش رو پیش ببره.

۱- سِرور، شبکه و محیط هاستینگ

الف) باید در جریان باشین که چه چیزی و چرا میتونه توی سیستم با شکست مواجه بشه و اینکه چرا ممکنه هیچ منبعی برای تخصیص وجود نداشته باشه.

ب) استفاده ی مناسب از سیستم فایل، ذخیره سازی ابری و منابع شبکه. همچنین لازمه که در مورد افزونگی داده ها و دسترس پذیری هم چیزهایی بدونید.

ج) باید بدونید چطور اندازه و مقیاس یک برنامه ی کاربردی میتونه با محدودیت های سخت افزاری کنار بیاد.

د) چیزی در مورد چند نخی یا شرایط مسابقه میدونید؟ شما اونا رو توی ماشین توسعه ی خودتون نمیبینین، اما خُب! اونا جزئی از دنیای واقعی هستن!

ه) توسعه دهنده های همه فن حریف میتونن با DevOps کار کنن. سیستم باید پیغام های خطای مفیدی رو نمایش بده و قابلیت های گزارش گیری داشته باشه. DevOps پیغام ها رو قبل از شما خواهند دید، پس روی اون حساب کنین!

 

۲- مدل سازی داده ها

الف) اگه مدل داده ها ناقص باشه، منطق کسب و کار و لایه های بالاتر به کدهای پیچیده تر‌ (کثیف تر) نیاز پیدا می کنن تا بتونن نقاطی رو پوشش بدن که مدل داده ها اون ها رو پوشش نمیده.

ب) توسعه دهنده های همه فن حریف میدونن که چطور باید یه مدل رابطه ی منطقی نرمال رو به وجود بیارن که شامل کلیدهای خارجی، اندیس ها، viewها، جدول های مراجعه و … باشه.

ج)‌ یه توسعه دهنده ی همه فن حریف باید با مفهوم ذخیره سازی داده ی غیر رابطه ای (NoSQL) آشنا باشه و بدونه که این نوع ذخیره سازی چه مزایایی نسبت به ذخیره سازی‌های رابطه‌ای داره.

 

۳- منطق کسب و کار

الف) دونستن ارزشی که یک برنامه ی کاربردی تولید میکنه ضروریه.

ب) مهارتهای شی گرایی SOLID در این قسمت مورد نیاز هست.

ج) همچنین فریمورک ها اینجا مورد نیاز هستن.

 

۴- لایه ی API / لایه ی کار / MVC

الف) باید بدونید چگونه جهان بیرون در مقابل منطق کسب و کار و مدل داده ها عمل می کنه.

ب) فریم ورک ها در این لایه باید به شدت مورد استفاده قرار بگیرن.

ج) فول استک دولوپرها قادرن اینترفیس های واضح، پایدار و با قابلیت استفاده ی آسون بنویسن.

 

۵- رابط کاربری

الف) توسعه دهنده های همه فن حریف: 1) باید بدونن که چطور یک لی آوت زیبا ایجاد کنن، یا، 2) قبول کنن که نیاز به کمک هنرمندان و طراحان گرافیکی دارن. در هر حال، ایجاد یک طرح بصری خوب کلیدی هستش.

ب) باید بر HTML5 و CSS3 تسلط داشته باشن.

ج) جاوااسکریپت زبان آینده ست و کارهای هیجان انگیز زیادی در دنیای جاوااسکریپت در حال انجامه (node، backbone، knockout و …)

 

۶- تجربه ی کاربری

الف) توسعه دهنده های همه فن حریف از کاربرانی که فقط ابزارهایی برای انجام کارشون می خوان تشکر می کنن!

ب) یه سیستم خوب مچ دست کاربر خودش رو به فنا نمیده و چشماشو کور نمیکنه! یه توسعه دهنده ی همه فن حریف باید به عقب برگرده و فرآیند شونصد تا کلیک و هزار تا گام جورواجور رو با یه کلیک عملی کنه.

ج) توسعه دهنده های همه فن حریف پیغام های خطای مفیدی مینویسن. اگه عملیاتی توی سیستم با شکست روبرو شد، بابتش عذرخواهی کنین. بعضی وقتا برنامه نویسها به صورت سهوی پیغام های خطایی رو می نویسن که باعث میشه مردم واقعن احساس حماقت کنن!

 

۷- دونستن اینکه مشتری و کسب و کار به چی نیاز دارن

همه فن حریف ها یه فهم کلی از اتفاقاتی که در حین استفاده ی مشتری از نرم افزار داره اتفاق میفته دارن. در مورد کسب و کار هم همین فهم رو دارن.

قطعات دیگر این پازل

1- توانایی نوشتن Unit Test ها. ضمنا، حتی جاوااسکریپت هم این روزا میتونه unit test داشته باشه.

2- آگاهی از نگرانی های امنیتی مهمه، با توجه به این که هر لایه آسیب پذیری های احتمالی خاص خودشو داره.

 

جمع بندی

راستش من زیاد مطمئن نیستم شما قبل از اینکه بتونین توی پلتفرم های مختلف کار کرده باشین و با زبان های مختلف برنامه نویسی کرده باشین، بتونین خودتون رو توسعه دهنده ی همه فن حریف یا فول استک دولوپر خطاب کنین. حتی ممکنه نیاز باشه یه همچین شخصی توی صنایع مختلف کار کرده باشه. همچنین دقت کنید که همه چیز به کدنویسی مربوط نمیشه. اگه دقت کنین من فقط توی 3 الی 5 تا از موارد به کدنویسی اشاره کردم. همچنین سازمانها و شرکت ها باید در نظر داشته باشن که قرار نیست فقط یه نفرو استخدام کنن و اون هر کاری رو براشون انجام بده. اگه مدیر یه شرکت هستین باید روی تخصص های مختلف تمرکز کنید. شاید بیشترین جایی که نیاز به فول استک دولوپر داشته باشن، استارت آپ ها باشن، چون کسی رو میخوان که با همه ی جوانب کار آشنا باشه.

 

منبع: +

مهدی علیپور

مهدی علیپور هستم. فارغ التحصیل مهندسی فناوری اطلاعات و توسعه دهنده PHP و دانشجوی تمام وقت جاوااسکریپت.

همچنین ممکن است دوست داشته باشید ...

۹ واکنش

  1. عليرضا اليادرانى گفت:

    دوست عزيز DevOps اسم ابزاز نيست، لقبى است كه براى توسعه دهندگانى كه كار نگهدارى سرور وا نيز به عهده دارند، استفاده ميشود.

    • مهدی علیپور گفت:

      من هیچ جایی از متن نگفتم که DevOps یک ابزار هست. لینک مربوط به مفهوم این کلمه رو هم در متن قرار دادم. شما می تونید به راحتی این کلمه رو توی اینترنت جستجو کنید و به مفهومش پی ببرید. DevOps یک لقب نیست بلکه یک متد توسعه ی نرم افزار هست. ممنون بابت نظرتون.

      • علی‌اصغر گفت:

        ممنون از زحمتی که بابت ترجمه کشیده شده.
        می‌خواستم در مورد DevOps کمی توضیح بدم. (من توی یه کشور انگلیسی زبان کار می‌کنم).
        جدای از تعریف ویکی‌پدیا وقتی گفته می‌شه DevOps معمولا منظور افرادی هستند که سیستم رو آماده می‌کنن تا کدی که برنامه‌نویس می‌ده در نهایت روی سرور کار کنه. یه جورایی واسط بین برنامه‌نویس و مدیر سیستم هستن.
        البته به خود این کار هم DevOps گفته می‌شه ولی توی این متن منظور لقب افراد بوده و بهتره به شکل «DevOps ها» ترجمه بشه.
        باز هم بابت روونی ترجمه تبریک می‌گم بهتون.
        موفق باشید 🙂

  2. سهیل گفت:

    سلام
    خیلی خوب بود مطلبتون .
    به نظرم fullstack Developer === Project Manager هست .

  3. امین گفت:

    بابت مطلب زیباتون خیلی ممنونم

  4. محمد گفت:

    دوست عزیز شما خودتون چه قد test می نویسید ، که به بقیه پیشنهاد می دید ؟

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *