7 چیزی که یک توسعه‌دهندهٔ وب حرفه‌ای باید بداند!

از همان ابتدای پیدایش وب، همواره شاهد رشد و توسعهٔ وب از یک سو و همچنین تغییرات مختلفی از سوی دیگر در این حوزه بوده‌ایم؛ سال ۲۰۱۷ هم از این قاعده مستثنی نبوده و در این سال شاهد تغییر و تحولات بسیاری در صنعت وب خواهیم بود و در این مقاله قصد داریم 7 چیزی که در سال جاری در صنعت امروزه وب باید به آن توجه داشت را مرور می‌کنیم. با سکان آکادمی همراه باشید.

چیزی در حدود 10 سال پیش، وب به عنوان ابزاری برای انتشار و اشتراک‌گذاری اطلاعات مربوط به تجارت، محصولات و خدمات مختلف استفاده می‌‌‌شد و هرگز کسی تصور نمی‌کرد که عناصر ابتدایی وب مانند اچ‌تی‌ام‌ال، سی‌اس‌اس و جاوا اسکریپت، به زبان‌هایی فراگیر برای ایجاد اپلیکیشن‌هایی که اکنون در هر جایی قابل دسترس می‌باشند تبدیل خواهد شد (اپلیکیشن‌هایی که بر روی تمامی دستگاه‌ها -از دسکتاپ گرفته تا موبایل و تبلت- در دسترس هستند.)

امروزه، وب به عنوان مهم‌ترین ابزار ارائهٔ یک راه ارتباطی ساده و قابل استفاده شناخته می‌شود و این در حالی است که اغلب اپلیکیشن‌های Native، (موبایل و یا دسکتاپ) به طور گسترده‌ای توسط فناوری‌های وب ایجاد می‌شوند. برای این‌که توسعه‌دهندگان بتوانند در دنیای مدرن وب در پروژه های خود موفق شوند، باید همواره اطلاعات خود را به‌روز کنند؛ در همین راستا و در ادامه، 7 چیزی که توسعه‌دهندگان، برنامه‌نویسان و طراحان وب برای بقا در این صنعت رقابتی باید بدانند را ارائه خواهیم داد:

تسلط به جاوا اسکریپت
نیاز به توضیح نیست که زبان جاوا اسکریپت تمامی وبسایت‌ها را به وب اپلیکیشن‌های تعاملی و کاربردی تغییر داده است؛ وب اپلیکیشن‌هایی همانند Facebook, Pinterest, Netflix که اهدافشان یوزرهای عامه هستند، از جاوا اسکریپت برای ساده‌تر کردن تعامل یوزرها استفاده می‌کنند. اما به خاطر داشته باشیم که جاوا اسکریپت به تنهایی کمک ناچیزی به توسعه‌دهندگان می‌کند؛ اگر قرار بود که توسعه‌دهندگان به تنهایی از جاوا اسکریپت برای ایجاد هر اپلیکیشنی استفاده کنند، چنین کاری توسعه‌دهندگان را به شدت به زحمت می‌انداخت!

فریم‌ورک‌هایی که به بازار عرضه شده‌اند الگوهای معماری، اجزای رابط کاربری، مدیریت دیتا و موارد متعدد دیگری را در اختیار توسعه‌دهندگان قرار می‌دهند تا کار ایشان را ساده‌‌تر کنند. در حال حاضر، گزینه‌های زیای برای انتخاب یک فریمورک جاوا اسکریپت وجود دارد که توسعه‌دهندگان می‌توانند بر اساس قابلیت‌های مورد نیازشان، یکی از آن‌ها را انتخاب کنند. 

ECMAScript
واقعیت امر آن است که ECMAScript را می‌توان به عنوان پدر جاوا اسکریپت به حساب آورد؛ جاوا اسکریپت با به‌کارگیری از مفهومی تحت عنوان Abstraction، قابلیت‌های کاربردی بیشتری در اختیار توسعه‌دهندگان قرار می‌دهد، اما شالودهٔ اصلی این زبان همان ECMAScript است که توسط سازمانی تحت عنوان EMCA International مدیریت می‌شود.

با این حال، جاوا اسکریپت در 5 سال اخیر بسیار فراگیر شده است اما این در حالی است که این زبان از سال 1999 خیلی به‌روز نشده است (در آن سال، از ECMAScript 3 استفاده می‌شد.) خیلی از پیشنهادات ارائه شده برای به‌روزرسانی نسخهٔ 3 مورد قبول واقع نشده و رها شدند چراکه خیلی از زمان خود جلوتر بودند!

آخرین و به‌روزترین استانداردی که تمامی مرورگرها در حال حاضر استفاده می‌کنند (ECMAScript 5 (ES5 می‌باشد که در سال 2009 منتشر شده است؛ نسخهٔ ES2015 که به عنوان ES6 هم شناخته می‌شود، جدیدترین نسخهٔ استاندارد ECMAScript است، که در تمامی مرورگرهای مدرن پشتیبانی می‌شود. قابلیت‌های جدید آخرین نسخه از این زبان (ES2015) همچون ماژول برای سازمان‌دهی کدها، استفاده از کلاس برای تعیین بخش‌های قابل استفادهٔ مجدد و به‌کارگیری از وراثت و موارد متعدد دیگر را امکان پذیر می‌کند (به دلیل آن که در حال حاضر تمامی مرورگرها به طور کامل ES2015 را پشتیبانی نمی‌کنند، بنابراین توسعه‌دهندگان باید از Transpilerهایی همانند Babel برای کامپایل کردن کدها به ES5 استفاده کنند تا از سازگار بودن مرورگر مورد نظر خود اطمینان حاصل کنند.)

به طور کلی، اگر توسعه‌دهنده‌ای قصد ماندن برای طولانی مدت آن‌هم به شکلی حرفه‌ای در صنعت وب را دارد، چاره‌ای جز تسلط به زبان JS و توانایی کار کردن با برخی از فریمورک‌های مطرح این زبان همچون آنگولارجی‌اس و غیره ندارد؛ جاوا اسکریپت زبانی ساده است و در وب، آموزش‌های رایگان متعددی برای شروع یادگیری این زبان وجود دارد.

آشنایی با مفهوم PWA
کاربرها به راحتی می‌توانند به آخرین نسخهٔ وب اپلیکیشن‌های موجود در بستر وب دسترسی پیدا کنند. با این حال، وب اپلیکیشن‌ها همچنان نمی‌توانند انتظاراتی که اپلیکیشن‌های به اصطلاح Native ایجاد کرده‌اند را برآورده سازند؛ قابلیت‌هایی مانند پوش نوتیفیکیشن، و دسترسی آفلاین، همچنان کاربران موبایل را به سمت استفاده از اپلیکیشن‌های Native سوق می‌دهد. اما یک گزینهٔ جدید وجود دارد که ممکن است این موضوع را تغییر دهد و آن هم چیزی نیست جز مفهوم Progressive Web Applications یا به اختصار PWA که تجربهٔ استفاده وب در موبایل را به تجربه اپلیکیشن‌های نیتو نزدیک‌تر می‌کند.

اصطلاح PWA، توسط گوگل در سال 2015 معرفی شد؛ این اصطلاح به وب اپلیکیشن‌هایی که تجربهٔ پیشرفته‌تر و بهتری از استفاده از وب به کاربران می‌دهند اطلاق می‌شود. PWAها با استفاده از سرویس ورکرها، قابلیت‌های آفلاین، و یا قابلیت استفاده بر روی شبکه‌های اینترنت با سرعت پایین، تجربه‌ای بهتر در اختیار کاربران قرار می‌دهند.

به لطف پروسهٔ به‌روزرسانی سرویس ورکرها، PWA‌ها نیز همیشه به‌روز هستند؛ قابل دسترس بودن PWAها و سهولت در استفاده از سرویس ورکرها، این قابلیت را به آن‌ها داده است تا توسط موتورهای جستجو به راحتی ایندکس (پیدا) شوند. PWAها همچنین به یوزر این امکان را می‌دهند تا بدون مراجعه به اپ استور، اپ مد نظر خود را نصب کند. تمامی این قابلیت‌ها در مرورگرهای معروف متعددی مانند Chrome، Firefox، و Edge قرار دارند، اما این در حالی است که Safari در قرار دادن این قابلیت‌ها کمی ضعیف عمل کرده است!

بک‌اندهای پیاده شده با Node.js
رشد چشمگیر و فراگیر استفاده از جاوا اسکریپت، علاوه بر بهبود رابط کاربری وبسایت‌ها، تغییرات زیادی را در نحوهٔ ایجاد و استفاده از فناوری‌های بک‌اند‌ نیز توسط توسعه‌دهندگان در وب اپلیکیشن‌ها ایجاد کرده است. امروزه توسعه‌دهندگان می‌توانند با استفاده از Node.js از جاوا اسکریپت بر روی سرور‌های خود برای برنامه‌نویسی بک‌اند پروژه‌هایشان نیز استفاده کنند.

Node.js، یک پلتفرم مبتنی بر سرور که بر روی V8 Engine جاوا اسکریپت کروم ساخته شده است، از یک مدل بر اساس Event‌ها استفاده می‌کند که آن را برای پروژه‌هایی که با دیتای عظیمی سروکار دارند (Data Intensive) و در لحظه (Real Time) باید آپدیت شوند موثرتر کرده است. مهمترین مزیت Node.js این است که توسعه‌دهندگان می‌توانند اپلیکیشن‌هایی ایجاد کنند که یوزر و سرور به راحتی می‌توانند با یکدیگر ارتباط برقرار کنند و نیازی به استفاده از مدل Request/Response که همواره مورد استفاده در وب بوده است،‌ نیست.

کانتینرها (Containers)
یکی از چالش‌های بزرگ در هر پروژهٔ نرم‌افزاری (چه رسد به توسعهٔ وب) نبود ثبات در محیط‌های توسعه بوده است چرا که توسعه‌دهندگان، ابتدا در محیط به اصطلاح Development کد می‌نویسند سپس کدهای خود را از طریق محیط‌های به اصطلاح Test آزمایش کرده و در نهایت در محیط Production (همان چیزی که یوزرها می‌بینند) تست می‌کنند. کانتینرها، راهی جدید برای مدیریت محیط‌های کدنویسی -با تمامی زیرمجموعه‌ها و متعلاقات- به همراه تمامی ملزومات منابع، به شیوه‌ای ثابت، خلال‌ناپدیز و مقیاس‌پذیر می‌باشند.

کانتینرها کمک می‌کنند تا به‌راحتی تمامی کدهای اپلیکیشن، کانفیگ‌ها و تنظیمات، زیرمجوعه‌ها و مواردی بیش از این را در قالب یک پکیج آماده کنید و بدون توجه به محیط توسعه، به شما این اجازه را می دهند تا کار توسعه را به راحتی و با سرعت انجام دهید. در حالی که شرکت‌های پیشرو در زمینهٔ فناوری کانتینرها Docker، Kubernetes و Mesos می‌باشند، شرکت‌های دیگری مانند مایکروسافت، گوگل و آمازون نیز این خدمات را ارائه می‌دهند، چرا که کانتینرها هزینه‌های ایجاد زیرساخت‌ها و محیط توسعه را به طرز قابل‌توجهی کاهش می‌دهند.

گیت (کنترل نسخه)
استفاده از سیستم‌های کنترل نسخه در توسعهٔ نرم‌افزار، کار تازه‌ای نیست؛ سیستم‌های کنترل نسخه، تغییرات در سورس کد را دنبال می کنند تا هر وقت که موردی بهم ریخت و یا توسعه‌دهنده نیاز به نسخه‌‌ای قدیمی‌تر از سورس کد خود داشت، وی بتواند به راحتی به حالت یا نسخه قبلی کار خود بازگردد. در حال حاضر، Git به مهم‌ترین و مشهورترین سیستم مدیریت کنترل نسخه در دنیا تبدیل شده است. نیاز به توضیح نیست که چگونگی کار با گیت برای هر توسعه‌دهنده‌ای یک باید است، به‌خصوص توسعه‌دهندگان وب که در کار خود هر روز شاهد تغییرات بسیاری هستند.

طراحی‌های تطبیقی و ریسپانسیو
در دنیای امروز، کاربرانی که از طریق گوشی موبایل و یا تبلت خود به وب دسترسی دارند، به مراتب بیش از کاربران دسکتاپ هستند! رابط کاربری گوشی‌های موبایل اساسا با رابط کاربری دسکتاپ تفاوت دارند، و این تفاوت‌ها نه‌تنها از نظر اندازه، بلکه از نظر حالت و جهت پیش‌فرض (Landscape و Portrait) هم متفاوت هستند.

پیش از فراگیر شدن گوشی‌های موبایل، توسعه‌دهندگان طوری اپلیکیشن‌ها را طراحی می‌کردند که ظاهر اپلیکیشن‌ها، طبق اندازه اسکرین مانیتور کاربر، تغییر می‌کرد اما امروزه، توسعه‌دهندگان طراحی‌ اپلیکیشن‌های خود را باید کاملا متفاوت انجام دهند، چراکه تجربهٔ کاربری دسکتاپ و گوشی موبایل تحت هیچ عنوان یکسان نیست. با این‌که طراحی‌ تطبیقی و ریسپانسیو یک مهارت در توسعه نمی‌باشند، اما دانش طراحی ریپانسیو و تطبیقی برای هر توسعه‌دهنده یک باید است، زیرا استراتژی و قالب‌هایی را مبتنی بر عوامل شکل‌گیری مختلف ارائه می‌دهد تا کاربران بهترین تجربه استفاده از اپلیکیشن را داشته باشند.

نتیجه‌گیری
امروزه صنعت توسعهٔ وب به مراتب از آنچه چند سال پیش وجود داشت متفاوت شده و کسی که توانایی کار با زبان‌هایی همچون HTML، CSS و JS را دارا است، هرگز نمی‌تواند امید داشته باشد که در بازار کار کنونی ماندگار باشد! برای برون رفت از این چالش، طراحان، توسعه‌دهندگان و برنامه‌نویسانی که تمرکزشان روی توسعهٔ وب است باید خود را به آخرین دستاوردهای مدرن وب مجهز سازند تا علاوه بر داشتن امنیت شغلی، بتوانند بهترین تجربهٔ کاربری را برای یوزرهایی که از محصولات ایشان استفاده می‌کنند به ارمغان بیاورند.

حال نوبت به نظرات شما می‌رسد؛ به نظر شما علاوه بر موارد فوق، یک توسعه‌دهندهٔ وب به چه مهارت‌های دیگری نیاز دارد تا بتوان برچسب یک «توسعه‌دهندهٔ حرفه‌ای» روی وی زد؟ نظرات و دیدگاه‌های خود را با ما و سایر کاربران سکان آکادمی به اشتراک بگذارید.

7 Things Developers Need to Know to Succeed with the Modern Web

0


سعید نصیری

متولد سال 1369 در کرج هستم. از بچگی زبان انگلیسی رو خیلی دوست داشتم و مهم‌تر از اون، ایجاد ارتباط و شناخت ملیت‌های مختلف و برای همین هم حدود 4 سال پیش وارد بازار کار گردشگری شدم. کارم رو از مترجمی برای توریست‌ها شروع کردم و بعد از مدتی، مسئول روابط بین‌الملل شرکت‌هایی مثل برنز، رایز و گردشگری سلامت ایرانیان بودم و سپس به عنوان مترجم در بخش روابط بین‌الملل فرودگاه مهرآباد مشغول به کار شدم. علاقهٔ به شدت زیادی به فوتبال دارم و در حال حاضر هم کمک‌مربی تیم‌های شهرداری تهران و تیم شرکت فرودگاه‌های جمهوری اسلامی ایران هستم و در شبکه‌های اجتماعی مختلف و برخی مجلات و سایت‌های ورزشی هم گهگاهی مقاله می‌نویسم. در کنار زبان انگلیسی، در حد متوسط می‌تونم اسپانیایی و در حد مبتدی هم فرانسه و ترکی استانبولی صحبت کنم. به دنیای وب هم علاقهٔ زیادی دارم و در حال حاضر -در کنار سکان آکادمی- در یکی از زیر مجموعه‌های ThemeForest به عنوان کارشناس بخش انگلیسی مشغول به کار هستم. در یک کلام، به شدت اهل ریسک کردن، رؤیا‌پرداز و جاه‌طلبم!






از طریق این فرم، می توانید بدون ثبت نام نظر دهید و یا اگر قبلا ثبت نام کرده اید، با ورود ناحیه ی کاربری می توانید علاوه بر ثبت نظر، به مدیریت نظرات خود نیز بپردازید.
(فیلد اجباری)
(فیلد اجباری)
(فیلد اجباری)
(فیلد اجباری)