ووینو
  • صفحه اصلی
  • دستیار هوشمند
  • متخصصان
  • فروشگاه
  • چطور کار می‌کند
  • جلسات من
ورودثبت‌نام

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

پاسخ‌های هوش مصنوعی صرفاً جنبه اطلاع‌رسانی اولیه دارند و جایگزین تشخیص و نظر متخصص نیستند. در شرایط اضطراری با اورژانس (۱۱۵) یا اورژانس اجتماعی (۱۲۳) تماس بگیرید.


Image placeholder

Image placeholder

  1. وینو
  2. /
  3. متخصص‌ها
  4. /
  5. محمد گلمحمدی
محمد گلمحمدی

محمد گلمحمدی

برنامه نویس
۵٫۰از ۲ نظر
هویت تاییدشدهاین هفته فعال بودهمهندس
نظر
۲
پست
۹
امتیاز
۵٫۰

درباره‌ی محمد گلمحمدی

توسعه‌دهنده نرم‌افزار با تمرکز بر PHP، Laravel و Node.js؛ علاقه‌مند به معماری نرم‌افزار، زیرساخت و ساخت محصولات واقعی.

نظر کاربران

۵٫۰
بر پایه‌ی ۲ نظرِ ثبت‌شده پس از جلسه
    nazy

    nazy

    خیلی مسلط بودن عالی
    ۱۶ مرداد ۱۴۰۵

پست‌های محمد گلمحمدی

اگر استرس داری یا نگرانی وینو کنارته 😊 #وینو #آرامش
اگر استرس داری یا نگرانی وینو کنارته 😊 #وینو #آرامش
۷ پسند · ۰ دیدگاه · ۳۳ بازدید
تا اخر شهریور ماه روی بسته های ۲۰۰ هزار تومانی به بالا ۲۰ درصد تخفیف بگیرید. LUNCH-IT #وینو
تا اخر شهریور ماه روی بسته های ۲۰۰ هزار تومانی به بالا ۲۰ درصد تخفیف بگیرید. LUNCH-IT #وینو
۵ پسند · ۰ دیدگاه · ۳۱ بازدید
ساده‌ترین تعریف Factory Pattern در PHP اینه: به‌جای اینکه خودت مستقیم مشخص کنی چه کلاسی ساخته بشه، س…
ساده‌ترین تعریف Factory Pattern در PHP اینه: به‌جای اینکه خودت مستقیم مشخص کنی چه کلاسی ساخته بشه، ساختن Object رو می‌سپاری به یک Factory. بدون Factory $payment = new ZarinpalPayment(); اگر بعداً بخوای درگاه رو عوض کنی، باید جاهای مختلف کدت رو تغییر بدی. با Factory interface Payment { public function pay(); } class ZarinpalPayment implements Payment { public function pay() { return "پرداخت با زرین‌پال"; } } class IdpayPayment implements Payment { public function pay() { return "پرداخت با IDPay"; } } حالا Factory: class PaymentFactory { public static function make(string $type): Payment { return match ($type) { 'zarinpal' => new ZarinpalPayment(), 'idpay' => new IdpayPayment(), default => throw new Exception('درگاه نامعتبر است'), }; } } استفاده: $payment = PaymentFactory::make('zarinpal'); echo $payment->pay(); خروجی: پرداخت با زرین‌پال یا: $payment = PaymentFactory::make('idpay'); echo $payment->pay(); خروجی: پرداخت با IDPay پس Factory دقیقاً چه کار می‌کند؟ به‌جای اینکه کد اصلیت درگیر این باشد: if ($type === 'zarinpal') { $payment = new ZarinpalPayment(); } elseif ($type === 'idpay') { $payment = new IdpayPayment(); } می‌نویسی: $payment = PaymentFactory::make($type); یعنی: «من نمی‌خوام بدونم چه Objectی ساخته میشه؛ Factory خودش تصمیم بگیره.»
۹ پسند · ۱ دیدگاه · ۴۴ بازدید
اگر می‌خوای کدت قابل نگهداری‌تر، انعطاف‌پذیرتر و حرفه‌ای‌تر باشه، Design Patternها رو باید بشناسی. �…
اگر می‌خوای کدت قابل نگهداری‌تر، انعطاف‌پذیرتر و حرفه‌ای‌تر باشه، Design Patternها رو باید بشناسی. 👨🏻‍💻 چندتا از پرکاربردترین‌ها: 🔹 Creational Singleton Factory Method Abstract Factory Builder Prototype 🔹 Structural Adapter Decorator Facade Composite Proxy 🔹 Behavioral Observer Strategy Command Template Method State نکته مهم: Design Patternها قرار نیست کدت رو پیچیده‌تر کنن؛ هدفشون اینه که برای مسائل تکرارشونده، راه‌حل‌های قابل‌اعتماد و قابل‌استفاده مجدد داشته باشی. اگر برنامه‌نویسی می‌کنی، حداقل این ۵ تا رو عمیق یاد بگیر: Factory • Strategy • Observer • Adapter • Decorator توی ۵ پست، این ۵ دیزاین پترن کاربردی رو کامل توضیح میدم. تو پروژه‌هات بیشتر از کدوم Design Pattern استفاده می‌کنی؟ 👇 #DesignPatterns #SoftwareEngineering #Programming #PHP #Laravel #Backend #Developer #CleanCode #OOP #برنامه_نویسی #طراحی_نرم_افزار
۷ پسند · ۰ دیدگاه · ۴۴ بازدید
** یک راه تمیز برای توسعه‌پذیری بیشتر ** گاهی می‌خوایم قابلیت جدیدی به یک کلاس اضافه کنیم، بدون اینک…
** یک راه تمیز برای توسعه‌پذیری بیشتر ** گاهی می‌خوایم قابلیت جدیدی به یک کلاس اضافه کنیم، بدون اینکه کلاس اصلی رو دستکاری کنیم. اینجاست که Decorator Pattern وارد می‌شه. دیکریتور بهت اجازه می‌ده رفتار یک آبجکت رو با Wrapping کردنش گسترش بدی؛ بدون اینکه مجبور باشی کلاس اصلی رو تغییر بدی. 🔹 افزودن قابلیت جدید بدون تغییر کلاس اصلی 🔹 ترکیب چند دیکریتور با هم 🔹 کاهش وابستگی به ارث‌بری 🔹 کد تمیزتر و قابل نگهداری‌تر مثلاً می‌تونی یک سرویس ساده داشته باشی و بعد Logging، Cache یا Authorization رو با دیکریتور بهش اضافه کنی. Decorator فقط یک الگوی طراحی نیست؛ یک ابزار برای ساخت کد منعطف‌تره. اگر PHP کار می‌کنی، این پترن رو حتماً یاد بگیر. #PHP #Laravel #DesignPatterns #DecoratorPattern #CleanCode #SoftwareDevelopment #Backend #برنامه_نویسی #پی_اچ_پی #لاراول #الگوهای_طراحی
۷ پسند · ۰ دیدگاه · ۳۲ بازدید
یکی از مشکلاتی که در سرورهای PHP ممکنه بعد از مدتی خودش رو نشون بده: - مصرف RAM دائماً افزایش پیدا م…
یکی از مشکلاتی که در سرورهای PHP ممکنه بعد از مدتی خودش رو نشون بده: - مصرف RAM دائماً افزایش پیدا می‌کنه - Processهای PHP-FPM حافظه زیادی می‌گیرن - Performance سرور افت می‌کنه - و در نهایت OOM Killer وارد عمل میشه! اما همیشه مشکل از خود PHP نیست. چند دلیل رایج: 🔹 کد یا مدیریت نادرست حافظه استفاده نامناسب از متغیرهای global، static یا نگه‌داشتن داده‌های حجیم. 🔹 Extensionهای PHP گاهی یک extension دارای bug یا مشکل مدیریت حافظه است. 🔹 Resourceهای خارجی مثل اتصال‌های دیتابیس، فایل‌ها یا Socketهایی که درست آزاد نمی‌شوند. 🔹 Requestهای سنگین Loopهای بزرگ، پردازش فایل، Queryهای سنگین یا ساخت Objectهای زیاد. 🔹 Cacheهای حجیم نگه‌داشتن آرایه‌ها و داده‌های بزرگ در حافظه بدون آزادسازی مناسب. 🔹 Bug در نسخه PHP یا PHP-FPM گاهی مشکل واقعاً از یک bug شناخته‌شده در نسخه مورد استفاده است. ** از کجا بفهمیم مشکل کجاست؟ ** - مصرف Memory هر Worker را مانیتور کنید - Requestهای سنگین را پیدا کنید - Extensionها را بررسی کنید - نسخه PHP و PHP-FPM را به‌روز نگه دارید - تنظیماتی مثل pm.max_children و pm.max_requests را متناسب با سرور تنظیم کنید. یک نکته مهم: `pm.max_requests` درمان Memory Leak نیست؛ بیشتر یک راهکار Mitigation است تا Workerهایی که به مرور حافظه بیشتری مصرف می‌کنند، بعد از تعداد مشخصی Request مجدداً ساخته شوند. اگر با PHP-FPM کار می‌کنید، بزرگ‌ترین Memory Leak که در پروژه‌تون دیدید چی بوده؟ #PHP #PHPFPM #Backend #Linux #DevOps #MemoryLeak #Performance #Programming
۷ پسند · ۱ دیدگاه · ۲۸ بازدید
📌 آرایه و آبجکت در PHP چطور به Function پاس داده می‌شن؟ یکی از نکات مهم PHP اینه که رفتار Array و O…
📌 آرایه و آبجکت در PHP چطور به Function پاس داده می‌شن؟ یکی از نکات مهم PHP اینه که رفتار Array و Object هنگام ارسال به تابع متفاوت است. 🔹 Array → به‌صورت Value به‌صورت پیش‌فرض یک کپی از آرایه به تابع داده می‌شود؛ بنابراین تغییرات داخل تابع، آرایه اصلی را تغییر نمی‌دهد. function changeArray($arr) { $arr['name'] = 'Weeno'; } $data = ['name' => 'Ali']; changeArray($data); echo $data['name']; // Ali 🔹 Object → به‌صورت Reference-like وقتی یک Object را به تابع می‌دهیم، تغییر propertyهای آن روی همان Object اصلی اثر می‌گذارد. function changeUser($user) { $user->name = 'Weeno'; } $user = new User('Ali'); changeUser($user); echo $user->name; // Weeno 💡 نکته مهم: اگر بخواهی آرایه اصلی داخل تابع تغییر کند، می‌توانی از & استفاده کنی: function changeArray(&$arr) { $arr['name'] = 'Weeno'; } پس خلاصه: Array → کپی می‌شود Object → همان Object در دسترس تابع قرار می‌گیرد اگر PHP کار می‌کنی، این تفاوت را حتماً باید بلد باشی. 👨‍💻 #PHP #PHPProgramming #برنامه_نویسی #آموزش_برنامه_نویسی #Backend #WebDevelopment #Laravel
۶ پسند · ۰ دیدگاه · ۲۴ بازدید
کسب درآمد با وینو وِينُو پلتفرمی برای تولید محتوا و کسب درآمدِ پایدار از تخصصِ شماست. پروفایل بسازید…
کسب درآمد با وینو وِينُو پلتفرمی برای تولید محتوا و کسب درآمدِ پایدار از تخصصِ شماست. پروفایل بسازید، محتوای آموزشی یا مشاوره منتشر کنید، و از طریق فروش دوره، حمایت مردمی و تماس‌های تخصصی درآمد کسب کنید. مخاطبانِ هدف را هدف‌گذاری کنید و با ابزارهای تحلیل وینو رشد کنید. برای شروع نیازی به سرمایه نیست؛ تنها تخصص و زمان لازم است.
۸ پسند · ۱ دیدگاه · ۱۱ بازدید
اولین پست وینو در تاریخ 5/5/5 ثبت شد.
اولین پست وینو در تاریخ 5/5/5 ثبت شد.
۹ پسند · ۲ دیدگاه · ۱۰ بازدید

۵۰۰٬۰۰۰ تومان / جلسه

جلسه‌ی آنلاین ۱ ساعت
نزدیک‌ترین وقتبا هماهنگی
مدت جلسه۱ ساعت
رزرو جلسهاول پیام بده
پرداخت داخل وینو انجام می‌شود و تا پایان جلسه نزد ما می‌ماند.
۵۰۰٬۰۰۰ تومان
۱ ساعت
رزرو جلسه