اپل iOS 12.5.5 را با بروزرسانی‌های امنیتی برای آیفون‌های قدیمی منتشر کرد

در حالی که کوپرتینویی‌ها به تازگی سیستم عامل iOS 15‌ را در اختیار کاربران گوشی‌های هوشمندشان قرار داده‌اند، برخی از …

نوشته اپل iOS 12.5.5 را با بروزرسانی‌های امنیتی برای آیفون‌های قدیمی منتشر کرد اولین بار در دیجیاتو پدیدار شد.

گردآوری توسط ایده طلایی

۷ کانال یوتیوب که دوست داران جاوا اسکریپت باید دنبال کنند

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

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

Ben Awad

یه جوون ۲۳ ساله که جدیدا تند تند استارتاپ میسازه!

استارتاپ قبلیش یعنی DogeHouse رو خیلی دنبال میکردم. یه برنامه شبیه به کلاب هاوس که اتفاقا اپن سورس هم بود ولی خب در نهایت شکست خورد چون همه شرکت های بزرگ یهو تصمیم گرفتن ویژگی های کلاب هاوس رو به برنامه هاشون اضافه کنند و دیگه توان رقابت باهاشون رو نداشت. هر هفته یه گزارش از روند پیشرفت استارتاپش آپلود میکرد که خیلی جالب بود. الان هم داره رو یه استارتاپ دیگه کار میکنه که البته اپن سورس نیست ولی گزارش های هفتگیش رو هنوز میگذاره.

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

ویدیو های پیشنهادی:

DistroTube

بخش زیادی از کرم شخصی سازی برنامه های لینوکسیم رو این آقا به جونم انداخته. بیشتر ویدیو هاش در مورد لینوکس، ابزار های لینوکسی و مثل vim و مدیر پنجره های مختلف و کانفیگ کردن اونها هست. موافق سرسخت آزادی نرم افزار.

اگر با ویم یا یه tiling window manager یا هر برنامه لینوکسی سر و کار دارید یا اینکه کلا لینوکس رو دوست دارید این کانال میتونه خیلی براتون جالب باشه.

ویدیو های پیشنهادی:

ری اکشن به ویندوز ۱۱ (باید ببینید)

راهنمای کامل استفاده از TWM
حتی یه پلی لیست فقط در مورد یه TWM داره!

Lee Robinson

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

ویدیو های پیشنهادی:

Hussein Nasser

بیشتر ویدیو های این کانال در مورد node.js و بک اند و دیتابیس ها هست. البته مباحث نسبتا پیشرفته تر. جدیدا یه سری ویدیو رو شروع کرده که امکانات کتابخونه خود node.js رو نشون میده که من خیلی دوست دارم. مثل http که هیچکس بهش توجه نمیکنه:)

SimonDev

میدونستید که با جاوا اسکریپت میشه بازی ساخت؟ من تا قبل از این کانال نمیدونستم. چیزی که این کانال رو برام جذاب کرده اینه که فرایند ساخت یه بازی ساده رو در حد ۱۵ دقیقه با کتابخانه ای به اسم three.js نشون میده. حالت آموزشی نداره که حوصلتون سر بره. من تصمیمی ندارم که گیم بسازم ولی دیدن ویدیو های این کانال و دیدن فرایند ساخته شدن یه بازی اونم با جاوااسکریپت خیلی برام جذابه.

بعضی وقتا هم در مورد Data strucures و اینکه چطور کد های جاوا اسکریپت رو سریع تر کنیم هم میگذاره که فکر کنم بیشتر برای گیم دولوپر ها مفید باشه ولی بازم جالبه.

چنتا از بازی هایی که ساخته:

PwnFunction

اگر دوست دارید با مسائل امنیتی دنیای وب بیشتر آشنا بشید این کانال میتونه براتون جذاب باشه. محتوای این کانال عمدتا توضیح حملات هکری مختلف به زبان ساده هست. ویدیو ها کوتاه و مختصر و مفید و سرگرم کننده هستند و دیدنشون خالی از لطف نیست.

Jason Lengstorf

فعالیت این کانال بیشتر توی twitch هست و با همه و در مورد هر موضوعی استریم میکنه. سازنده های کتابخانه های معروف، آدم هایی که توی یه زمینه خیلی خاص کار میکنند، ویدیو های آموزشی با کسایی که کارشون هست و…

ویدیو های پیشنهادی:

نوشته ۷ کانال یوتیوب که دوست داران جاوا اسکریپت باید دنبال کنند اولین بار در ویرگول پدیدار شد.

گردآوری توسط ایده طلایی

واکنش شیائومی به ادعای مطرح شده در مورد مشکلات امنیتی برخی از گوشی‌‌های این شرکت

مرکز ملی امنیت سایبری لیتوانی با انتشار گزارش مفصلی، امنیت گوشی‌های سه برند چینی شیائومی، هواوی و وان پلاس را …

نوشته واکنش شیائومی به ادعای مطرح شده در مورد مشکلات امنیتی برخی از گوشی‌‌های این شرکت اولین بار در دیجیاتو پدیدار شد.

گردآوری توسط ایده طلایی

وزارت دفاع لیتوانی امنیت گوشی‌های سه برند چینی شیائومی، هواوی و وان پلاس را زیر سوال می‌برد

مرکز ملی امنیت سایبری لیتوانی که زیر نظر وزارت دفاع این کشور فعالیت می‌کند در پروژه‌ای، امنیت گوشی‌های ۵G‌ سه …

نوشته وزارت دفاع لیتوانی امنیت گوشی‌های سه برند چینی شیائومی، هواوی و وان پلاس را زیر سوال می‌برد اولین بار در دیجیاتو پدیدار شد.

گردآوری توسط ایده طلایی

فیسبوک از سال ۲۰۱۶ تاکنون ۱۳ میلیارد دلار برای امنیت پلتفرم خود هزینه کرده است

فیسبوک ادعا می‌کند از سال ۲۰۱۶ تا ۲۰۲۱ با حضور بیش از ۴۰ هزار پرسنل، بالغ بر ۱۳ میلیارد دلار …

نوشته فیسبوک از سال ۲۰۱۶ تاکنون ۱۳ میلیارد دلار برای امنیت پلتفرم خود هزینه کرده است اولین بار در دیجیاتو پدیدار شد.

گردآوری توسط ایده طلایی

شناسایی موارد استفاده از API در صنعت خودرو

بسیاری از موسسات خودروسازی در حال برنامه‌ریزی و مشارکت در اقتصاد API هستند. یکی از رایج‌ترین سوالات شرکت‌هایی که این مسیر را آغاز می‌کنند در مورد موارد استفاده بالقوه در این صنعت است.

تعیین استراتژی اقتصاد API و برنامه‌ریزی یک نقشه راه، مزایای قابل‌توجهی را ارائه می‌دهد، از جمله:

– ادغام و استانداردسازی API های مشترک در یک سازمان

– کاهش هزینه عملیات با داشتن یک مخزن مرکزی

– تسریع پروژه‌های دیجیتال و بهبود زمان برای بازاریابی با دسترسی ایمن و سریع به خدمات کسب‌وکاری

– شناسایی یک اکوسیستم مشارکتی – به خصوص خارج از حوزه کاری خود – برای تدوین محصولات و خدمات ارزش‌افزایی جدید که رقابتی‌تر باشند.

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

در ادامه توضیحاتی درباره API کسب و کاری مطرح شده است که برای رهبران کسب‌وکار IT در صنعت خودرو سازی و علاقه‌مندان به شروع طرح‌های API با موارد استفاده صنعتی دید کلی ایجاد می‌کند.

تعریف API‌ تجاری چیست؟

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

این تعریف چیزی نیست که کسب و کارها را در مورد اقتصاد API هیجان‌زده کند. در عوض، هیجان حول چیزی است که به آن API تجاری یا API وب گفته می‌شود (‏اگرچه اغلب این اصطلاح استفاده نمیشود و منظور از API همان API تجاری است).

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

محرک‌های تجاری مشترک برای ابتکارات API

تلاش برای اعمال تغییرات سریع در سیستم‌های هسته‌ای در شرکت می‌تواند منجر به مشکلات امنیتی شود. با این حال، کسب‌وکار باید به سرعت به فرصت‌های جدید و تهدیدهای رقابتی واکنش نشان دهد. این سیستم نیاز به نرخ بالاتری از تغییرات کنترل شده دارند. با استفاده از API ها، شما می‌توانید دارایی‌های جدیدی را برای کسب و کار و برای ایجاد سرویس‌های جدید و نوآورانه آماده کنید. این محرک اولین محرک برای استفاده از API در شرکت است. ​

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

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

۱. یک دستگاه داده‌ها را از طریق تماس API، مانند یک ماشین متصل ارسال می‌کند مثلا اطلاعات مربوط به رفتار راننده را به یک شرکت بیمه ارسال می‌کند.

۲. یک دستگاه، دستوری را از طریق تماس با API ارسال می‌کند، مانند یک سرویس کمکی داخل ماشین که یک به روز رسانی را به تکنولوژی و نقشه‌های سیستم موقعیت یابی جهانی (‏GPS)‏ ارسال می‌کند.

۳. یک دستگاه داده‌ها را از طریق یک تماس غیر API با استفاده از آن ارسال می‌کند. فن‌آوری دیگر مانند MQTT – پروتکل پیام‌رسانی با حجم بالا و انتقال برای دستگاه‌های تله‌متری – به این دلیل که همه درخواست‌ها نیاز به اقدام ندارند. با این حال، API ها می‌توانند به داده‌های داخل شرکت دسترسی داشته باشند و به دنبال شرایط یا رویداده‌ای خاص باشند یا واکنش نشان دهند.

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

چه کسی باید API های کسب‌وکار را شناسایی کند؟

کمیته راهبری اجرایی، معماران محصول، صاحبان حوزه کسب‌وکار ، تیم طراح API ، مدیر محصول API (‏کسب‌وکار)، توسعه دهنده API (‏فنی)

نقش کلیدی در ساختار، مدیر محصول API است. شخص یا افرادی که در این نقش هستند، موفقیت API ها و ابتکار API را به عهده دارند. وظایف مرتبط با نقش مدیر محصول API عبارتند از:

همکاری با صاحبان کسب و کار برای شناسایی API‌های تجاری مطلوب برای ورود به بازار، همکاری با توسعه دهنده API برای ایجاد API مطلوب، گزارش به مدیران اجرایی در مورد معیارهای تعریف ویژگی‌های محصول API (‏ارزش آفرینی، سودآوری، محدودیت‌های نرخ، مخاطبان و غیره)‏

شناسایی API های خوب یکی از مهم‌ترین عوامل در دستیابی به API سودده است. API ها باید بر نیازهای مصرف‌کننده متمرکز باشند و در عین حال باید ساده باشند.

موارد استفاده از API در صنعت خودرو سازی

موارد استفاده از API در صنعت خودرو را می‌توان به چند دسته تقسیم کرد که اکنون به بررسی برخی از آن‌ها می‌پردازیم.

  • اطلاعات عمومی

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

  • اطلاعات درخواست‌های سفارشی و تراکنش‌ها

این نمونه APIها اطلاعات و تراکنش‌هایی را ارائه می دهد که با استفاده از اپلیکیشن برای مشتری طراحی شده اند. بدیهی است که این API‌ها برای کمک به حصول اطمینان از دسترسی مناسب، به امنیت اطلاعات بیشتری نیاز دارند. API هایی که با این دسته تناسب دارند ممکن است شامل درخواست سفارش وسایل نقلیه برای استفاده از خدمات مورد نیاز باشد، یا مواردی برای مدیریت فراخوان ها و یا یادآورها و ارزیابی ارزش معاملات و بدهی ها یا برنامه‌ریزی استفاده از خدمات باشد. ​

  • نمونه APIهای وابسته به تلفن همراه شخصی

مشتریانی که از این برنامه بر روی یک دستگاه تلفن همراه استفاده می‌کنند می‌توانند با استفاده از دسترسی های تلفن یا تبلت همراه با API های ارائه‌شده توسط تولید کننده خودرو یا فروشنده بهره‌مند شوند. دسترسی های دستگاه شامل دوربین، خدمات GPS، ارتباطات حوزه نزدیک (‏NFC)‏ و کیف پول دیجیتال است. برنامه‌های تلفن همراه می‌توانند به API ها برای طیف وسیعی از عملکردها دسترسی داشته باشند؛ مثال‌های معمول آن شامل باز کردن قفل در خودرو یا باز کردن آن است. با این حال، این API ها باید ایمن باشند تا تنها مالک خودرو بتواند به آن‌ها دسترسی داشته و آن‌ها را اجرا کند. تماس‌های مستقیم از برنامه تلفن همراه به API های اتومبیل می‌تواند هک شده و منجر به سرقت و یا خطر دیگر شود. در نتیجه، احراز هویت کاربر حیاتی است.

نوشته شناسایی موارد استفاده از API در صنعت خودرو اولین بار در ویرگول پدیدار شد.

گردآوری توسط ایده طلایی

چالشهای یادگیری زبان برنامه نویسی Rust

Rust Language

زبان Rust در چند سال اخیر محبوبیت زیادی بین برنامه‌نویسان سراسر دنیا کسب کرده که دلیل آن، رویکرد متفاوت آن در حل مسائل مختلف سیستمی است. این محبوبیت و رشد به حدی است که در کنار Mozilla، شرکت‌هایی نظیر گوگل، مایکروسافت و آمازون نیز به Rust Foundation پیوسته‌اند تا سهمی در توسعه و کاربردی‌تر کردن این زبان داشته باشند.

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

منظور از مدیریت حافظه، نحوه تخصیص و آزادسازی فضای مورد نیاز برای متغییرهایی است که در طول اجرای برنامه از آنها استفاده میشود، است.

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


برای درک بهتر مسئله اجازه دهید مرور کوتاهی بر مدلهای مدیریت حافظه، در زبانهای دیگر داشته باشیم.

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

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

در زبان Rust، برنامه‌‌نویس نه درگیر تخصیص و آزادسازی حافظه میشود و نه مفهومی به اسم Garbage  Collerctorوجود دارد که این کار را برای او انجام دهد. بلکه باید با پیروی از یک سری اصول و درنظر گرفتن یک سری از محدودیت‌ها در تعریف و نحوه استفاده از متغییرها، عمل تخصیص و آزادسازی حافظه را انجام دهد. نکته قابل تأمل این است که عمل بررسی صحت این اصول و درنظر گرفتن محدودیت‌ها در زمان کامپایل انجام میشود و اگر برنامه در به کارگیری صحیح هر کدام از این موارد مشکل داشته باشد، کامپایلر خطا خواهد داد و برنامه کامپایل نخواهد شد.

از مزایای این نوع مدیریت حافظه در زبان Rust میتوان به این مسئله اشاره کرد که اگر برنامه شما به صورت multi-thread نوشته شده باشد، این تضمین وجود دارد که به هیچ وجه data race اتفاق نمی‌افتد. به این معنی که هیچ‌گاه دو thread از برنامه به طور همزمان به یک بخش از حافظه دسترسی نخواهند داشت. همچنین مفهومی به اسم null و یا nil که در سایر زبانها وجود دارد در Rust نیست، به این دلیل که هیچگاه شما اجازه ندارید برنامه‌ای را کامپایل کنید که متغییری در آن به فضای خالی در حافظه اشاره کند.


زبان Rust این اصول و محدودیت‌ها را با استفاده از دو مفهوم کلی Ownership و Borrowing انجام میدهد.

مهفوم Ownership به این معناست که در طول برنامه، فقط و فقط یک متغییر میتواند مالک یک داده‌ی مشخص درون حافظه باشد. با این فرض، اگر مقدار یک متغییر را به طور مستقیم به متغییر دیگر نسبت دهیم، در اصل مالکیت آن را منتقل(move) کرده‌ایم.

مفهوم Borrowing به این معناست که اگر متغییری نیاز داشته باشد تا به محتوای یک متغییر دیگر دسترسی داشته باشد، باید آن را قرض بگیرد، در این صورت مادامی که محتوای درون حافظه در اختیار متغییر دوم است، متغییر اول هیچ گونه مالکیتی نسبت به آن ندارد، تا زمانی که متغییر دوم آن را پس دهد.

همین دو مفهوم به ظاهر ساده، اگر به درستی درک نشوند، چالشهای زیادی را برای برنامه‌نویس رقم خواهند زد که در زبانهای دیگر اصلا به آن بر نخواهند خورد. برای درک بهتر مسئله اجازه دهید این موضوع را در یک مثال ساده ببینیم:

fn main() {
    let list_one = vec![1, 2, 3];
    let list_two = list_one;
    println!(&quot{:?}&quot, list_one);
}

در این مثال، ابتدا یک لیست از اعداد ایجاد شده و در متغییر list_one قرار داده شده، و سپس همان متغییر به متغییر جدیدی به نام list_two نسبت داده شده‌است. در همین خط مالکیت لیست مذکور از متغییر اول به متغییر دوم تغییر میکند و در خط چهارم که قصد چاپ لیست اول را داریم کامپایلر خطایی میدهد با این مضمون که قصد قرض گرفتن مقداری برای چاپ را دارید که قبلا به متغییر دیگری move شده است.

error[E0382]: borrow of moved value: `list_one`
–> src/main.rs:4:22

برای برطرف کردن این مشکل میتوان یک Reference از متغییر اول را به متغییر دوم داد. یعنی خط سوم را به شکل زیر نوشت:

let list_two = &list_one;

پس اگر همین چند اصل ساده را به خوبی درک نکرده باشیم، به احتمال زیاد در شروع کار با Rust به چالشهای ساده ولی به ظاهر پیچیده‌ای بر خواهیم خورد.


توضیحاتی که در خصوص زبان Rust و چالشهای آن در این مقاله نوشتم، بسیار مختصر و در حد و حوصله همین پست بود. به طور حتم پس از شروع به کار با این زبان به چالشهای متنوع‌تری بر خواهید خورد و در خیلی از موارد هم از زیبایی طراحی و کمک آن در حل مسائل، لذت خواهید برد.

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

نوشته چالشهای یادگیری زبان برنامه نویسی Rust اولین بار در ویرگول پدیدار شد.

گردآوری توسط ایده طلایی

برای یافتن باگ‌های امنیتی خود، از همه‌ی هکرهای کلاه‌سفید کمک بگیرید

تابه‌حال ۱۸۰ هزار حفره‌ی امنیتی با هم‌کاری بیش‌ از ۶۰۰ هزار هکر در فرآیند باگ‌بانتی کشف و گزارش شده‌اند. اگر …

نوشته برای یافتن باگ‌های امنیتی خود، از همه‌ی هکرهای کلاه‌سفید کمک بگیرید اولین بار در دیجیاتو پدیدار شد.

گردآوری توسط ایده طلایی

آموزش نصب لاراول در ویندوز و لینوکس

آموزش نصب لاراول در ویندوز و لینوکس

امروزه برای کاربران اینترنت عملکرد و کارایی بالای صفحات وب اهمیت زیادی دارد.

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

با بالا رفتن استانداردهای توسعه وب، تکنولوژی‌های مربوط به آن نیز با پیشرفت‌های زیادی روبرو شده است. پیاده سازی این تکنولوژی‌ها توسط خود برنامه نویس (با فرض این که از عهده این کار بربیاید)، اصلاً منطقی نیست.

اینجاست که باید به سراغ فریم‌ ورک‌ها (Software Frameworks) برویم.

فریم ورک‌ها یا چارچوب‌های نرم افزاری، تبدیل به یکی از ابزارهای ضروری برای توسعه وبسایت و وب اپلیکیشن‌ها شده‌اند.

فریم ورک‌ها یک بستر استاندارد برای نوشتن کد توسط برنامه نویس ایجاد می‌کنند، که این بستر استاندارد باعث همکاری آسان‌تر برنامه‌نویسان با یکدیگر خواهد شد. همچنین این بستر به توسعه برنامه‌ها به صورت سازمان‌ یافته و با خطای کمتر منجر خواهد شد.

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

ابزارها و ماژول‌های ارائه شده در فریم ورک‌ها را می‌توانید در هزاران پروژه‌ متفاوت استفاده کنید. فریم‌ ورک‌ها توسط چندین و چند برنامه نویس طراحی و تست شده‌اند، بنابراین می‌توان با اطمینان از آن‌ها استفاده کرد.

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

بنابراین یک برنامه نویس و مخصوصاً برنامه نویس وب، باید برای طراحی صفحات وب پیچیده و مطابق با استاندارد‌های روز حتماً کار با فریم ورک‌های مختلف توسعه وب را یاد بگیرد.

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

فریم ورک‌ وب

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

البته شما می‌توانید در فرادرس، نکات و آموزش‌های مفیدی درباره سایر فریم ورک‌های برنامه نویسی وب نظیر اکسپرس (Express)، جنگو (Django)، اسپرینگ (Spring)، انگولار (Angular)، ری اکت (React) و البته لاراول (Laravel) پیدا کنید.

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

پس با آموزش لاراول همراه شوید!

معرفی لاراول

احتمالاً اسم زبان برنامه نویسی پی‌اچ‌پی به گوشتان خورده است. یک زبان مهم و حیاتی برای توسعه وب که تمامی برنامه نویسان وب باید با آن آشنا باشند.

لاراول یک چارچوب نرم افزاری است که بر پایه پی‌اچ‌پی نوشته شده است. لاراول متن باز و رایگان است و امکان توسعه سریع وب اپلیکیشن را با اسفتاده از معماری مدل – نما – کنترل‌گر (Model-View-Controller یا MVC) ممکن می‌سازد.

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

دلیل این محبوبیت، سادگی در کار با لاراول و برخورداری از ویژگی‌های مناسب و مقیاس‌پذیری بالا است.

لاراول باعث سادگی فرایند توسعه و ساخت وب اپلیکیشن‌هایی با قابلیت‌های فوق‌العاده بدون کاهش قدرت و عملکرد آن‌ها می‌شود.

ویژگی‌هایی از تکنولوژی‌هایی نظیر ASP.NET MVC و کدایگنایتر (CodeIgniter)، در لاراول تعبیه شده‌اند.

در کنار این مزایا، لاراول امنیت اپلیکیشن شما را نیز در نظر می‌گیرد.

بنابراین اگر با پی‌اچ‌پی و ویژگی‌ها‌ی آن آشنا هستید، لاراول می‌تواند شما را بهتر در توسعه یاری کند.

تاریخچه لاراول

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

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

به همین علت لاراول توسط برنامه نویسی به نام تیلور اوتوِل توسعه داده شد. او ایده ایجاد فریم ورکی که امکاناتش از کدایگنایتر بیشتر باشد را در سر داشت. اولین نسخه بتا لاراول در سال ۲۰۱۱ در دسترس قرار گرفت.

تیلور اوتوِل

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

آخرین نسخه پایدار لاراول نسخه ۸ است که در سپتامبر ۲۰۲۰ منتشر شد و با توجه به متن باز بودن لاراول، امکان بررسی آن در گیت هاب فراهم شده است.

برای آموزش لاراول از آخرین نسخه آن استفاده خواهد شد.

فلسفه طراحی لاراول

لاراول با توجه به فلسفه‌ای شامل موارد زیر شکل گرفته است:

· راحتی مقدم بر پیکربندی است

· پرهیز از دوباره‌ کاری

· فراهم آوردن امکانات آسان، پویا و قابل درک برای کدنویسی

چرا لاراول؟

دلایل محبوبیت لاراول را می‌توان در موارد زیر خلاصه کرد:

· فراهم آوردن امکانات مدرن برای توسعه وب

· توسعه سریع و امن وب اپلیکیشن‌ها

· درک و یادگیری آسان

· سینتکس قابل فهم

· دارای مستندات قوی

· وجود یک جامعه بزرگ از کاربران فعال

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

مزایای لاراول در طراحی وب اپلیکیشن‌ها

مزایای لاراول

استفاده از لاراول در طراحی وب اپلیکیشن‌ها، با مزایایی همراه است. به لطف استفاده از لاراول، وب اپلیکیشن شما از پایداری بیشتری برخوردار خواهد بود.

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

همچنین لاراول فضای نام‌ها و واسط‌هایی را در اختیار شما می‌گذارد که برای مدیریت و سازمان‌دهی منابع بسیار مفید است.

ویژگی‌های لاراول

در این قسمت از آموزش لاراول، ویژگی‌های مهم آن بررسی خواهند شد.

پیمانه‌ای بودن (Modularity)

لاراول از ماژول‌ها و کتابخانه‌های توکار بهره می‌برد که در ساخت وب اپلیکیشن به شما کمک می‌کنند. تعداد این کتابخانه بالغ بر ۲۰ عدد است. بروزرسانی هر ماژول به سادگی انجام می‌شود.

قابلیت تست

لاراول مجهز به ابزارهایی است که شما را در تست کدی که نوشته‌اید یاری می‌دهند. تست برنامه باعث می‌شود تا کد خود را هرچه بهتر مطابق با خواسته‌ها و نیازها بنویسید.

مسیردهی یا Routing

اجرای تمامی درخواست‌ها (Request) در لاراول به کمک مسیرها انجام می‌شود. درخواست‌ها به کنترل‌کننده‌های مشخص توسط سیستم مسیردهی لاراول فرستاده می‌شوند.

تمامی مسیرها در آدرس app/routes.php قرار می‌گیرند. این فایل مشخص می‌کند که به کدام درخواست چه پاسخی داده شود.

مدیریت پیکربندی

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

لاراول این امکان را برای شما فراهم کرده است که تنظیمات مناسب برای اجرای بهینه اپلیکیشن در محیط‌های مختلف را به راحتی اعمال کنید.

ساخت کوئری و او آر ام (Object-Relational Mapping)

لاراول برای شما یک سازنده کوئری یا پرس‌و‌جو را فراهم می‌کند که بسیار برای جست‌وجو‌هایی که در پایگاه‌های داده انجام می‌شود مفید است. لاراول امکان استفاده از تکنیک او آر ام یا نگاشت شئ – رابطه‌ای را فراهم کرده است که به کمک آن می‌توانید راحت‌تر به کار با پایگاه‌های داده در برنامه نویسی شئ‌گرا بپردازید.

سازنده اسکیما (Schema Builder)

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

نمونه‌ای از این کد را که برای ساخت جدول نوشته شده در اینجا ببینید:

Schema::create('users', function($table)
{
$table->increments('id');
});

موتور قالب بلید (Blade Template Engine)

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

این موتور قالب ساختار جملات شرطی و حلقه‌های تکرار منحصر به خود را دارد. ایجاد یک قالب Blade، تنها کافیست فایل View خود را به جای پسوند .php با پسوند blade.php ایجاد کنید.

احراز هویت

احراز هویت

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

ردیس (Redis)

لاراول از ردیس برای اتصال به یک نشست فعلی (Session) استفاده می‌کند. ردیس تعامل با نشست به صورت مستقیم و حاظه نهان را فراهم می‌کند.

قابلیت ارسال ایمیل

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

پشتیبانی‌ از صف‌ها

لاراول از خدمات مبتنی بر صف پشتیبانی می‌کند، به این معنا که مثلاً قادر به ارسال تعداد زیادی ایمیل خواهید بود.

صف‌ها به شما کمک می‌کنند تا وظایف را بدون صبر کردن برای انجام وظیفه قبلی به اتمام برسانید.

مدیریت وقایع به شکل آسان

مدیریت وقایع در لاراول به لطف Commandها بسیار آسان است. یک Command در لاراول شامل تمامی دستورات لازم برای اجرای یک واقعه است.

قبل از شروع یادگیری لاراول نیاز به دانش قبلی دارم؟

شروع یادگیری لاراول

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

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

آموزش نصب لاراول

برای شروع یادگیری لاراول، باید نحوه نصب آن روی پلتفرم‌های مختلف را یاد بگیرید.

در ادامه، آموزش نصب لاراول روی دو سیستم عامل پرکاربرد اوبونتو و ویندوز شرح داده خواهد شد.

پیش‌نیازهای سیستم برای نصب لاراول

فریم ورک لاراول به پیش‌نیازهای چندانی برای نصب نیاز ندارد.

قبل از اقدام به نصب و پیکربندی لاراول روی سیستم خود، از نصب بودن موارد زیر اطمینان حاصل کنید:

· پی‌اچ‌پی نسخه 5.6.4 یا بالاتر

· افزونه OpenSSL PHP

· افزونه PDO PHP

· افزونه Mbstring PHP

· افزونه Tokenizer PHP

· افزونه XML PHP

بعد از اطمینان از نصب بودن موارد بالا، باید ابزاری به نام کامپوزر (Composer) را نصب کنید.

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

در ادامه، آموزش نصب کامپوزر و لاراول روی ویندوز شرح داده خواهد شد.

نصب کامپوزر روی ویندوز

ابتدا فایل نصب کامپوزر را دانلود و نصب کنید.. با نصب این فایل، آخرین نسخه لاراول روی سیستم شما نصب خواهد شد.

با تایپ و اجرای دستور composer در خط فرمان از نصب آن روی سیستم خود اطمینان حاصل کنید. پنجره خط فرمان شما باید چیزی شبیه زیر را نمایش دهد:

نصب کامپوزر

نصب لاراول روی ویندوز

فرض کنید که قصد نصب لاراول روی سرور زمپ (XAMPP) را دارید.

Command prompt یا همان خط فرمان ویندوز را باز کرده و دستور زیر را تابپ و اجرا کنید:

cd C:xampphtdocs

مسیر نوشتن فرمان‌ها به آدرس نوشته شده در مرحله قبل تغییر خواهد کرد. حال دستور زیر را تایپ و اجرا کنید:

composer create-project laravel/laravel laravel-app

نصب لاراول آغاز خواهد شد. تا تکمیل این مرحله صبر کنید:

نصب لاراول

آزمایش لاراول روی ویندوز

در مرورگر خود، آدرس http://localhost/laravel-app/public/ را تایپ کنید. اگر لاراول با موفقیت روی سیستم شما نصب شده باشد، صفحه زیر برای شما بارگذاری خواهد شد:

آزمایش لاراول روی ویندوز

آموزش لاراول با شرح نحوه نصب کامپوزر و لاراول روی اوبونتو دنبال خواهد شد.

نصب کامپوزر روی اوبونتو

قبل از نصب کامپوزر روی اوبونتو، ابتدا باید از نصب و به روز بودن تمامی Dependencyها و پکیج‌ها اطمینان حاصل کنید.

دستور زیر را در ترمینال اوبونتو وارد کنید:

sudo apt-get update

باید Dependencyهای زیر را نیز نصب کنید:

· curl برای دانلود کامپوزر

· Php5-cli برای نصب و اجرای کامپوزر

· git برای استفاده توسط کامپوزر

تمامی این موارد را می‌توانید تنها با تایپ یک خط دستور در ترمینال نصب کنید:

sudo apt-get install curl php5-cli git

حال باید کامپوزر را دانلود و نصب کنید. برای این کار باید دستوراتی که در ادامه می‌آید را اجرا کنید. با اجرای این دستورات موارد زیر پوشش داده خواهد شد:

· دانلود فایل نصب کننده

· بازبینی و تأیید فایل نصب کننده

· اجرای فایل نصب کننده

· حذف فایل نصب کننده

php -r “copy(‘https://getcomposer.org/installer’, ‘composer-setup.php’);”

php -r “if (hash_file(‘SHA384’, ‘composer-setup.php’) === ’55d6ead61b29c7bdee5cccfb50076874187bd9f21f65d8991d46ec5cc90518f447387fb9f76ebae1fbbacf329e583e30′) { echo ‘Installer verified’; } else { echo ‘Installer corrupt’; unlink(‘composer-setup.php’); } echo PHP_EOL;”

php composer-setup.php

php -r “unlink(‘composer-setup.php’);”

حال باید فایل composer.phar را به مسیر /usr/local/bin/ منتقل کنید. این کار را با تایپ دستور زیر در ترمینال انجام دهید:

sudo mv composer.phar /usr/local/bin/composer

برای اطمینان حاصل کردن از نصب صحیح Composer دستور زیر را در ترمینال تایپ و اجرا کنید:

composer

در ترمینال، نتیجه‌ای مانند شکل زیر نمایش داده خوادهد شد:

نصب کامپوزر روی اوبونتو

نصب لاراول روی اوبونتو

ابتدا، نصب کننده لاراول را دانلود کنید. این کار را با تایپ و اجرای دستور زیر در ترمینال انجام دهید:

composer global require laravel/installer

به دنبال دستور قبلی، دستور زیر را تایپ و اجرا کنید:

laravel new /var/www/html/laravel-app

اکنون می‌توانید با استفاده از کامپوزر، پروژه خود را ایجاد کنید. در ترمینال دستور زیر را تایپ و اجرا کنید:

sudo composer create-project laravel/laravel /var/www/html/laravel-app

آزمایش لاراول روی اوبونتو

ترمینال را باز کرده و با تایپ و اجرای دستور زیر به پوشه پروژه خود بروید:

cd /var/www/html/laravel-app

سرور توسعه لاراول را با تایپ دستور زیر اجرا کنید:

php artisan serve
آزمایش لاراول روی اوبونتو

آدرس اینترنتی مشاهده شده را کپی و در مرورگر پیست (Paste) کنید.

در صورتی که لاراول با موفقیت روی سیستم شما نصب شده باشد، صفحه زیر برای شما بارگذاری خواهد شد:

نصب موفق لاراول

سخن پایانی

امید است این آموزش به شما برای نصب لاراول کمک کرده باشد.

از این آموزش قدم به قدم برای نصب لاراول روی زمپ و شروع کار با این فریم ورک قدرتمند روی اوبونتو یا ویندوز استفاده کنید.

آموزش‌های کاربردی و فوق‌العاده‌ای را درباره فریم ورک‌های توسعه وب می‌توانید در فرادرس یا مجله آن پیدا کنید.

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

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

منابع

https://www.tutorialspoint.com/laravel/laravel_overview.htm

https://www.codexworld.com/laravel-tutorial-for-beginners-installation-configuration/

https://www.javatpoint.com/laravel-blade-template

https://www.phptpoint.com/laravel-introduction/

https://hackr.io/blog/web-development-frameworks

نوشته آموزش نصب لاراول در ویندوز و لینوکس اولین بار در ویرگول پدیدار شد.

گردآوری توسط ایده طلایی

قدم به قدم تا کشف محصول

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

Product Discovery

اول از همه باید مطمئن بشیم که مشتری واقعی این محصول رو می‌خواد، بعدش باید راه حلی پیدا کنیم که قابل استفاده، مفید و امکان‌پذیر باشه.

کشف محصول، درباره ساختن محصول درست برای ارائه به مشتریه و به تیم‌های محصول کمک می‌کنه با درک مشکلات کاربر واقعی و سپس یافتن بهترین راه حل برای آن‌ها، ایده‌هاشون رو پالایش کنن.

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

مارتی کاگان (مدیر محصولی با سابقه در سیلیکون ولی)، معتقده که چهار ریسک بزرگ در مدیریت محصول وجود داره:

  • ۱ ریسک ارزش: آیا مشتری محصول رو می‌خره یا کاربر ازش استفاده می‌کنه؟
  • ۲ ریسک قابل استفاده بودن: آیا کاربر می‌دونه چطور از محصول استفاده کنه؟
  • ۳ ریسک امکان‌پذیری: آیا مهندسان ما می‌تونن چیزی رو که نیاز داریم در زمان مورد نظر و با فناوری‌های موجود در سازمان بسازن؟
  • ۴ ریسک ماندگاری کسب و کار: آیا این راه حل برای جنبه‌های مختلف بیزینس ما کار می‌کنه؟

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

خب ما برای کشف محصول می‌تونیم از مراحل زیر استفاده کنیم:

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

double diamond

· کشف نیاز اساسی کاربر:

  • فهمیدن
  • تعریف

· شناسایی راه‌حل‌های بهینه:

  • ایده‌آل
  • پروتوتایپ (نمونه اولیه)
  • تست

کشف نیاز اساسی کاربر:

دیسکاوری یا کشف محصول با شناسایی چالش‌هایی که می‌خوایم توی محصولمون فیکس کنیم، شروع می‌شه. مثلا یه چالش مثل این «چطور می‌تونیم کاری کنیم تا شرکت‌های بازار میانی از تخته محصول استفاده بهتری کنن؟»

تعریف چالش گاهی سخته و حتی ممکنه گاهی در پایان پروسه ریلیز محصول با چالش جدیدی روبرو بشیم. در کل چالش‌ها رو می‌تونیم با بررسی مشکلات فعلی و نیازهای کاربران پیدا کنیم یا حتی در زمان برطرف کردن یه چالش دیگه. مثلا ممکنه در حال بهبود محصول باشیم و حفظ امنیت کاربر هم به اهدافمون اضافه بشه.

فهمیدن: برای شناسایی صحیح چالش، ابتدا باید نیازهای اساسی کاربر در زمان استفاده از محصول رو درک کنیم. دراین مرحله، تیم محصول ما برای رسیدن به پاسخ، نیاز به تحقیقات کمی و کیفی داره. بعضی از ابزارها و تکنیک‌هایی که می‌تونه توی این مسیر بهمون کمک کنه به ترتیب شامل موارد زیره:

تحقیقات کاربر ، تشکیل گروه‌های تمرکز، مشاهده، مصاحبه با مشتری، تحلیل دیتا، تحقیقات مقایسه‌ای و نقشه همدلی (empathy mapping).

  • تعریف: بعد از درک نیازهای کاربر، باید بتونیم اون‌ها رو به وضوح تعریف کنیم. برای انجام این کار، چند مرحله وجود داره:
  • برطرف کردن مشکل: هدف رو باید طوری بنویسیم که کل مشکلی که قراره حل کنیم، پوشش بده. این بهمون کمک می‌کنه تا با تیم ارتباط برقرار کنیم و به یه درک مشترک از نتیجه کار برسیم. اگه مشکل رو به طور دقیق ننویسیم، تمرکز درباره اینکه چی می‌خوایم برای همه سخت می‌شه.
  • تایید مشکل: باید مطمئن شیم که مشکب در محیط واقعی وجود داره و نیاز به حل شدن داره. مشکلی که کاربرامون لمس می‌کنن، چقدر بزرگه؟ حل این مشکل چقدر ارزش داره؟
  • اولویت بندی: باید مطمئن بشیم که کدوم یکی از مشکلات شناسایی شده رو باید ابتدا حل کنیم. چندین فریم‌ورک وجود داره که توسط تیم‌های محصول مورد استفاده قرار می‌گیره. مثل RICE
  • برای تعریف مشکل، بعضی از تیم‌های محصولی از روش‌هایی مثل نقشه راه (journey mapping) یا آنالیز SWOT استفاده می‌کنن.

شناسایی راه‌حل‌های بهینه:

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

  • ایده‌آل: در حالت ایده‌آل می‌دونیم که چطور برای حل مشکلات کاربر باید برنامه ریزی کنیم. این جاییه که تیم ما می‌تونه با تمرین‌های نوآوارانه و سایر تکنیک‌های ایده‌پردازی (طوفان فکری (brainstorming)، نقشه ذهنی (mind mapping) یا طراحی داستان (storyboarding) و حتی اجرای اسپرینت طراحی (design sprint)) وارد عمل بشه.
  • بعد از ارائه ایده‌ها، تیم‌ می‌تونه وارد فاز امکان‌سنجی و بعد اولویت‌بندی برای پروتوتایپ بشه. بعدش پروتوتاپ‌ها رو به مشتری ارائه می‌دیم و فیدبک می‌گیریم.
  • پروتوتایپ (Prototype): داشتن پروتوتایپ باعث می‌شه بتونیم ایده‌ها رو به صورت زنده نشون بدیم. پروتوتایپ‌ها نمونه‌های مختلفی دارن که بنا به نوع خروجی که تیم می‌خواد ازش بگیره انتخاب می‌شن. مثلا طرح‌ها (sketches)، ماکت‌ها (mockups)، پروتوتاپ قابل کلیک (clickable prototypes)، نسخه اولیه (MVPs) و حتی محصول ساده قابل مقایسه (competitive/similar products).
  • تست: مرحله تست مشخص می‌کنه که آیا راه حل پیشنهادی می‌تونه مشکل و حل کنه یا خیر؟ ابزارهای رایج تست عبارتند از: تست آ/ب (A/B testing)، مصاحبه با مشتری (customer interviews)، تست کاربر (user testing)، توزیع نظرسنجی (distributing surveys) و تست بتا محصول (product beta testing).

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

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

پ.ن ۲: از اونجایی که ما به تلفظ انگلیسی بعضی از کلمات عادت کردیم، احساس کردم ترجمه لغویشون خیلی بد می شه، واسه همین اصل کلمه رو توی پرانتز گذاشتم.

برداشت آزاد از:

https://www.productboard.com/blog/step-by-step-framework-for-better-product-discovery/

نوشته قدم به قدم تا کشف محصول اولین بار در ویرگول پدیدار شد.

گردآوری توسط ایده طلایی