همایش ژاکت دی (ZHAKET DAY)
، لقمان آوند همبنیانگذار سون لرن، پیمان گلدسته مهندس ارشد نرمافزار اسنپ، حسام موسوی یک برنامهنویس ثروتمند پرداخت و گفت چیزی که از زندگی برنامهنویسان چه در ایران چه در خارج از ایران متوجه شدم، این است که روال و آهنگ خاصی دارد. حاجمحمدی در ادامه صحبتهایش در همایش ژاکت دی افزود: یا حوزه معنویت که قسمت جدانشدنی از ثروت است و هرکسی نیاز معنوی خود را تامین میکند. اگر روی بقیه مهارتهای خود کار کنیم، چندین راه وجود دارد؛ یعنی وارد دسته ساخت ولی اگر بخواهید از برنامهنویسی پول دربیاورید اما غیرفعال باشید، ۲ راهکار ساده وجود دارد که باید پیاده کنید. او در ارائه خود به قسمتهایی پرداخت که php به محدودیتهای خود در کار برمیخورد و دیگر گزینه مناسبی برای استفاده نیست و همینطور به قسمتهایی اشاره کرد که php گزینه خیلی خوبی است. گلدسته اینگونه ادامه داد: تقریبا همه ما میدانیم که php در چه جاهایی خیلی خوب عمل میکند، به همین دلیل بیشتر در جاهایی که به مشکل برمیخوریم و همینطور راهحلهایی که من و دوستان در این چند سال با آنها به نتیجه رسیدیم، تمرکز میکنم. برای حل این مشکل یک راهکار خیلی خوب استفاده از ساختار داده بی تیری یا همان درختهای بالانس شده است. ولی فقط برای فانکشنهای core – php است. برای حل مشکل سرعت در php چه کار باید کنیم؟ کارهای زیادی میشود انجام داد، راهکارهای زیادی وجود دارد. دو تا از راههایی که عمومی هستند و روی همه اپلیکیشنهای php قابل پیادهسازی هستند و performance gain آنها به نسبت وقتی که میگذارید خیلی چشمگیر است، اینها هستند: کافی است آن را اجرا کنید و تا ۷۵درصد سرعت شما بهتر میشود. اگر در container از OPcache استفاده کنید خیلی بهتر است. برای اینکه بفهمیم کدام کانفیگ بهتر است نیاز داریم که تغییراتی که انجام میدهیم را مانیتور کنیم. گلدسته در ادامه صحبتهایش در همایش ژاکت دی افزود: یک bad practice دیگر علاقه دولوپر ایرانی به استفاده از repository pattern است. یک ابزاری معرفی میکنم به اسم grumphp که خود بهتنهایی کار خاصی نمیکند ولی برای شما بستری را فراهم میکند که میتوانید از ابزار quality control که در php هست استفاده کنید. در همایش ژاکت دی آقای احسان ملکی، موسس باشگاه اپلیکیشن، به بیان این موضوع پرداخت که Headless CMS چیست و چه کاربردی برای ما دارد؟ او در این باره گفت: headless framework که بیشتر به headless CMS مشهور است به این دلیل که فعلا در حوزه CMS کاربرد دارد، کارش این است که فقط API را ارائه میدهند. یعنی اگر شما یک بخش فرانت دارید مثلا اگر با لاراول کار میکنید، انجین ویوی لاراول، بلید است یا جدیدا livewire. اما کار headless framework یا Headless CMS این است که انجین غالب را ندارند، یعنی در بخش ویو برای شما کارایی ندارند به همین جهت خیلی شسته رفته و کوچکتر هستند و کاربردهای خیلی دمدستی خیلی خوبی میشود از آنها گرفت. چطور میتوانیم از وردپرس به عنوان headless استفاده کنیم؟ از ورژن ۴ وردپرس به بعد API به خود وردپرس اضافه شده است اما این API دیفالتی که روی وردپرس اضافه شده اصلا جالب نیست. اول از همه اینکه سرعت API دیفالت وردپرس آن افتضاح است. چرا با این اوصاف ما باید از وردپرس استفاده کنیم؟ اگر برنامهنویس php هستید، چرا باید از وردپرس انتخاب کنیم در حالیکه headlessهای دیگری هم وجود دارد. یعنی علاوه بر اینکه تا الان با وجود پلاگینهای مختلف همچنان در حال توسعه پیداکردن است. به همین دلیل با اینکه سرعت مناسبی ندارد اما توسعهپذیری خوبی دارد و این یکی از دلایلی است که شما باید از وردپرس استفاده کنید. دلیل دوم، ما گفتیم تفاوت headlessهای دیگر این است که آنها ویو ندارند. غالبا headless پنل ادمین ندارند یعنی شما باید یک بار انرژی و وقت بگذارید و پنل ادمین هم برای آن برنامهنویسی کنید. نکته بسیار مهم آخر اینکه اگر از وردپرس به عنوان headless استفاده کنید، یعنی فقط از API آن استفاده کنید، در این حالت برای آن پلاگین مجدد API نویسی کنید. اما مزیتی که اکثر پلاگینهای مشهور وردپرس دارند، این است که خود آنها آن API را نوشتند و در واقع تحت Rest به شما ارائه میدهند و خیلی راحت میتوانید از همان APIها استفاده کنید. یک لحظه از ذهن همه ما گذشت که اگر اینترنت به شکل الان نباشد ما چه کار کنیم؟ نظر من این است که اگر در حال حاضر فریمورکها، لایبرریها، برای اگر تخصصی بخواهیم بگوییم پروژههایی که با زبانهای مختلف توسعه داده میشوند، داستانی که به وجود میآید این است که ما دو انتخاب داریم. اگر این کار را بکنیم از فریمورکها یا لایبرریهای در آن زبانها استفاده نکنیم، چه مشکلاتی به وجود میآید؟ ولی نکته مهمی که وجود دارد این است که اگر اول کار ندانید که پروژه شما چقدر بزرگ است و فقط با pure php و Vanilla. js کدها را پیادهسازی کنید، ولی فریمورک نداشته باشید، هرچقدر که پروژه بزرگتر میشود، مشکلی که به وجود میآید، این است که سختتر میتوانید آن را توسعه دهید. چرا؟ چون اگر یک چارچوب مشخص داشته باشید، در قالب آن چارچوب پروژههای خود را توسعه دهید، خواهید دید که کار توسعه زمانی که پروژه بزرگ و بزرگتر میشود، راحتتر میشود. اگر از pure php یا Vanilla JS استفاده کنند و قصد داشته باشند که پروژهای را توسعه دهند. داستانی که به وجود میآید افراد یک تیم اگر روی یک پروژهای کار میکنند و چارچوب مشخصی برای توسعه آن پروژه وجود نداشته باشد، باید هر بار با همدیگر صحبت کنند که چه کدی پیاده شده است؟ ولی وقتی یک چارچوبی وجود داشته باشد مثل لاراول، مثل vue. js، اتفاقی که میافتد این است که به طور دقیق متوجه میشوید طرف مقابل شما روی چه بخشی کار میکند. اگر با فریمورکها کار کرده باشید و در کنار آنها با خود Vanilla JS یا pure php کدی را نوشته باشید، صددرصد متوجه میشوید که سرعت توسعه در پروژههایی که فریمورک دارند بهشدت سریع است. وقتی یک چارچوب آماده وجود داشته باشد، پروژههای شما سادهتر دیباگ میشوند تا اینکه شما از pure php استفاده کنید یک پروژهای را همینطوری توسعه دهید بعد که ارور به وجود میآید نمیدانید که ارور از کجاست؟ وقت بیشتری از شما گرفته میشود تا بفهمید مشکل از کجاست. ولی در فریمورکها یا لایبرریهای مختلف مثل لاراول، اگر با اروری برخورد کنید، خیلی سریع بخش ویژهای که برای نمایش ارور وجود دارد، خیلی راحت است؛ ارور شما را نشان میدهد و میفهمید از کجا ارور به وجود آمده و خیلی سریعتر میتوانید دنبال حل آن بروید. این مورد به نظر من از تمام مواردی که تا الان گفتم خیلی مهمتر است چرا؟ زمانی که یک پروژهای را با pure php توسعه میدهید، اتفاقی که میافتد این است که تمام کدها، تمام بخشها و اکثر موارد را خود شما باید پیادهسازی کنید. ولی اگر از یک فریمورک استفاده کنید، شما یک تیمی از دولوپرها را در کل دنیا دارید که بدون اینکه نیاز باشد شما روی توسعه یک فریمورک و چارچوب کار کنید، به شکل اوپن سورس آن فریمورک را توسعه میدهند. اینکه اگر من تنهایی روی یک پروژه با pure php کار کنم و فریمورک خودم را هم بزنم احتمال باگ پروژه من بیشتر است یا احتمال اینکه باگ در پروژهای باشد که با لاراول پیادهسازی میکنم؟ قطعا فریمورک لاراولی که N تعداد دولوپر php در حال کار روی توسعه آن هستند، باگهای کمتری دارد. یعنی همه اینها به شما کمک میکنند پروژهای که پیادهسازی میکنید با یک چارچوب آماده که توسط N تعداد دولوپر در حال توسعه است، خیلی راحتتر به شما نتیجه بدهد. اگر به ۱۰تا ۱۵ سال پیش برگردیم، جایی که فقط pure php یا Vanilla Js را برای توسعه پروژههایمان داشتیم من مطمئنم دوباره همین مسیر طی میشد و ما دوباره همین فریمورکها را داشتیم. چون قطعا برای توسعه پروژه نیاز به چارچوب داریم. اگر شما تجربه یک پروژه صفر تا صدی را فقط با pure php به دست بیاورید کاملا متوجه این داستان میشوید. لاراول یک چارچوب است که شما هر چیزی را که به ذهن شما برسد میتوانید با آن به وجود بیاورید، حتی وردپرس را، ولی وردپرس یک اینکه کدام را یاد بگیرید، خیلی بستگی به این دارد که در کجا زندگی میکنید. کدام زبان خوب است و کدام فریمورک در آنجا ترند است، ولی به عنوان یک جاوا اسکریپتکار و phpکار فکر نکنید اگر کمی وردپرس بلدید پس تمام شد رفت. اینکه شما برای یک پروژهای به جای اینکه از pure php استفاده کنید یا از یک فریمورک استفاده کنید به این معنی نیست که چیزی بلد نیستید، چون خیلیها فقط به ما میگفتند که اگر فقط فریمورک کار کنم، حس یک برنامهنویس واقعی را ندارم. آنها میگویند بلند شو و پر انرژی باش و شما پر انرژی بلند میشوید و میگویید خب حالا چه کار کنم؟ این مهارت را ندارد. روی این سه مورد کار کنید. مثلا اگر متخصص php لاراول شوید جایی ۳۰ یا ۴۰ میلیون تومان حقوق میگیرید ولی در همان جا میمانید.
متن کامل خبر در سایت هفته نامه شنبه
نظرات