روز آزادی نرم‌افزار (Software Freedom Day) یک مراسم سالیانه ست که هر سال و در سومین شنبه ماه سپتامبر جشن گرفته می‌شود. SFD تلاشی است برای آموزش عمومی و با هدف افزایش آگاهی از نرم‌افزار آزاد و تشویق استفاده از آن.

این مراسم که اولین بار در سال ۲۰۰۴ جشن گرفته شد با حضور محدود تیم‌ها همراه بود. ۲۸ آگوست آن سال تنها ۱۲ تیم در این مراسم حضور داشتند. اما از آن تاریخ تا کنون شهرت و محبوبیت این مراسم سالانه افزایش پیدا کرد تا جایی که امروزه در بیش از ۱۰۰ شهر دنیا حدود ۳۰۰ مراسم برگزار می‌شود.

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

 

 

 آزادی و نرم افزار: رامین نجارباشی

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

 

 

پیاده سازی وب سرورهای فوق سریع: صادق داوطلب

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

 

 

علم و مهندسی: سمیر رحمانی

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

 

 

مهاجرت وب اپلیکیشن از php به go: فرود غفوری

مهاجرت یک سیستم در حال کار یک چالش عظیم برای شرکت‌های نرم‌افزاری محسوب می‌شود، تعویض تکنولوژی‌های قدیمی با ابزارهای نوین همیشه می‌تواند دردسرساز باشد، در این ارائه فرود به بیان تجربه‌ای موفق از مهاجرت صحبت می‌کند، باید ها و نبایدها و اینکه چطور یک سیستم از PHP به GO مهاجرت کرد بدون اینکه سیستم کلی برای لحظه‌ای متوقف شود.

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

آپارات:

 

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

به نظر می‌رسد که امسال تغییرات اساسی در حوزه طراحی اپل واچ و ایرپاد داشته باشیم و آیفون ۱۳ با همان شکل و شمایل آیفون قبلی به بازار معرفی شود.

در ادامه این مطلب با ما همراه باشید تا با هم ببینیم که آیا ممکن است اپل سورپرایز جدیدی برای‌مان داشته باشد یا خیر!

 

آیفون ۱۳ – طراحی‌ مشابه – دوربین بهتر

شایعات در مورد آیفون ۱۳ این‌طور به نظر می‌رسند که این محصول جدید اپل به احتمال بسیار زیاد طراحی‌ای شبیه به نسل قبلی خود یعنی آیفون ۱۲ خواهد داشت؛ هر چند که اگر از ناچ بالای صفحه خیلی راضی نیستید، ممکن است آیفون جدید بیشتر به مذاق‌تان خوش بیاید چرا که ناچ بالای صفحه به احتمال زیاد کوچک‌تر شده است. از دیگر تغییرات اصلی آیفون ۱۳ احتمالا نرخ بالاتر رفرش تصویر (refresh rate) خواهد بود.

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

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

 

اپل واچ سری ۷ – صفحه نمایش بزرگ‌تر – گوشه‌های صاف

با این‌که به نظر می‌رسد طراحی آیفون ۱۳ تغییر محسوسی نداشته است اما در مورد اپل واچ‌ سری ۷ این‌طور نیست. بنا به گزارش بلومبرگ، تغییرات در اپل واچ جدید شبیه به تغییراتی است که از آيفون ۱۱ به آيفون ۱۲ شاهد آن بودیم؛ یعنی صفحه نمایش و لبه‌های تخت‌تر.

به نظر می‌رسد اپل واچ جدید در اندازه‌های ۴۱ و ۴۵ میلی‌متر روانه بازار شود و از پردازنده‌ای قوی‌تر نسبت به اپل واچ نسل قبلی برخوردار باشد. این طور که از شایعات پیدا ست اما بندهای اپل‌واچ احتمالا تغییری در اندازه نخواهند داشت.

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

 

 

ایرپاد نسل ۳ با طراحی شبیه به ایرپاد پرو

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

باتری ایرپاد ۳ نیز احتمالا پیشرفت قابل توجهی خواهد داشت و بر اساس شایعات، ۲۰ درصد ظرفیت بالاتر را شاهد خواهد بود.

 

 

پخش زنده مراسم کنفرانس اپل

شروع پخش زنده کنفرانس رونمایی از محصولات اپل ساعت امشب ساعت ۹:۳۰ به وقت ایران شروع خواهد شد. رونمایی از آیفون ۱۳، اپل واچ سری ۷ و سری جدید ایر پاد تقریبا حتمی است. البته احتمال کمی هم وجود دارد که مک بوک های ۱۴ و ۱۶ اینچی M1 با حاشیه های باریک نیز در مراسم امشب رونمایی شوند.

 

آیا تا به حال برایتان سوال شده که چطور از متدلوژی اجایل (سیستم مدیریت چابک) در گیت لب استفاده کنید؟ اگر از گیت لب استفاده می‌کنید ممکن است برایتان واضح نباشد که ویژگی‌های آن چطور با مشخصه‌های اجایل کار خواهند کرد. در این مقاله این موضوع را برای شما توضیح داده ایم.

روش توسعه به صورت اجایل (Agile) یکی از مهم ترین متدولوژی‌هایی است که در دهه های اخیر به علم مهندسی نرم افزار اضافه شده است. هرچند که همه بر سر جزئیات این روش توافق ندارند اما در هر صورت تاثیر مثبتی که استفاده از آن بر تیم‌های نرم‌افزاری داشته است قابل انکار نیست.

 

شباهت ویژگی‌های گیت لب با سیستم مدیریت اجایل (Agile)

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

نگاشت مشخصه‌های مدیریت نرم افزار اجایل به ویژگی‌های گیت‌لب

مشخصه‌های روش اجایل ویژگی‌های گیت‌لب
داستان مشتری Issues
وظایف (Tasks) لیست تسک‌ها
اپیک (Epic) اپیک‌ها
نقاط و حدس‌ها وزن‌
بک‌لاگ محصول لیست ایشوها و برچسب‌ها
اسپرینت (Sprint) نقاط milestone
چارت burndown چارت burndown
برد چابک برد ایشوها

 

یک تکرار چابک با استفاده از گیت‌لب

 

داستان کاربر – ایشوهای گیت‌لب

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

 

تسک‌ها – لیست تسک‌ها در گیت‌لب

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

 

اپیک‌ها – اپیک‌های گیت‌لب

از جهات دیگر، برخی متخصصان روش چابک از یک انتزاع برای داستان‌های کاربر (user story) استفاده می‌کنند که اغلب تحت عنوان epic شناخته می‌شوند که نشان‌دهنده جریانی بزرگ‌تر و متشکل از چندین ویژگی است. در گیت‌لب یک اپیک شامل عنوان و شرحی است که از خیلی جهات شبیه یک issue‌ است. اما به شما این اجازه را می‌دهد که چندین موضوع را به آن و به عنوان child‌ ضمیمه کنید تا این سلسله مراتب را نشان دهد.

ایشو در گیت لب

 

بک لاگ (Backlog) محصولات – لیست ایشوهای گیت‌لب و برچسب‌های اولویت

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

 

اسپرینت‌ها – مایل‌استون‌های گیت‌لب

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

ویژگی مایل استون‌های گیت لب از این مسئله پشتیبانی می‌کنند: برای هر کدام از نقاط عطف (milestones) یک تاریخ شروع و یک تاریخ پایان اختصاص دهید تا دوره زمانی اسپرینت شما ثبت شود. سپس تیم شما ایشوهای مختلف برای آن اسپرینت را ثبت کرده و آن‌ها را به مایل‌استون‌های مشخص تخصیص می‌دهد.

 

نقاط و تخمین‌ها – وزن ایشوهای گیت‌لب

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

 

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

 

برد اجایل – برد ایشوهای گیت‌لب

در طول هر اسپرینت، ایشوها در مراحل مختلفی جا به جا می‌شوند. بعضی از این مراحل شامل: آماده برای توسعه (ready for dev)، در حال توسعه (In dev)، In QA، In review و Done نام دارند. معمولا این‌ها ستون‌های برد در روش اجایل هستند. در گیت‌لب، برد ایشوها به شما این امکان را می‌دهد که مراحل مختلف یک پروژه را مشخص کنید و ایشوها را بین أن‌ها جابجا کنید. تیم نرم افزار میتواند برد گیت‌لب را براساس مایلستون () تنظیم کرده و در جلسات روزانه‌ی خود از نظر جریان کار، وضعیت اسپرینت را رصد کنند.

برد ایشوها در گیت لب

 

چارت burndown – چارت burndown گیت‌لب

تیم توسعه بایستی این امکان را داشته باشند که به صورت real-time از میزان پیشروی خود در برنامه با خبر باشند و میزان ریسک خود را هم‌زمان با پیشرفت پروژه اندازه بگیرند. گیت لب از چارت‌های burndown پشتیبانی می‌کند که به تیم‌ها این امکان را می‌دهد که هم‌زمان با پیشرفت کار آن را به صورت تصویرسازی شده ببینند.

در پایان اسپرینت، تیم توسعه ویژگی‌های پروژه را به صورت دمو به سهام‌داران نشان می‌دهد. در گیت‌لب این پروسه با استفاده از یک سری Review apps ساده‌سازی شده است که حتی کد پروژه ای که هنوز به مرحله تولید نرسیده و در محیط تست قرار دارد بتواند به صورت دمو نشان داده شود. Review apps و ویژگی‌های CI/Cd با استفاده از درخواست‌های merge یکپارچه می‌شوند. هم‌چنین از ابزارهای مشابه برای QA استفاده می‌شود تا کیفیت نرم افزار نیز حفظ شود. برای این اقدام نیز از تست اتومات توسط CI/Cd و یا تست دستی در محیط Review App استفاده می‌شود.

چارت burndown در اجایل

 

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