Mekaeil Andisheh, نویسنده در Mekaeil Andisheh

جدیدترین مقالات وبسایت

راه اندازی یک VPS با اوبونتو

منتشر شده در تیر ۲, ۱۴۰۰

مدت زمان زیادی بود که میخواستم مدیریت سرور و پروژه های شخصیم مثل وبلاگم رو به عهده بگیرم و وابسته به شخص یا نرم افزار خاصی نباشم. مدت زیادی بود که از دوستانم برای اینکار کمک میگرفتم و یا از سرویسهای مثل Runcloud استفاده میکردم تا اینکه به خاطر نیازی که داشتم تصمیم گرفتم شروع […]

Setting up a VPS on Ubuntu

The Decorator Pattern

منتشر شده در اردیبهشت ۲۲, ۱۴۰۰

Open-Closed Modification به عنوان یکی از اصول در SOLID مطرح است یعنی مدلهای ما باید طوری طراحی شده باشند که بدون تغییرات در آن قابلیت توسعه را داشته باشند. یعنی ما بتوانید با استفاده از اصول طراحی OOP و با حفظ اصول SOLID توسعه را انجام دهیم. ما باید بتوانیم فانکشنالیتی را افزایش دهیم و […]

Decorator pattern

Encryption و Decryption در لاراول

منتشر شده در اسفند ۱۶, ۱۳۹۹

در این مقاله در رابطه با Encryption و Decryption در لاراول صحبت میکنیم و اینکه چطور یک مقدار توسط لاراول Encrypt می‌شود، در نهایت در مورد نحوه Encrypt و Decrypt فایلها و انتقال آنها به سرور دیگری بحث میکنیم. چرا ما به Encryption داده نیاز داریم همانطور که میدانید ما برای حفظ ایمنی وبسایت و […]

Data Encryption

Bridge Design Pattern

منتشر شده در بهمن ۱۷, ۱۳۹۹

در این مقاله در رابطه با یکی دیگر از دیزاین‌پترن‌های مهم صحبت میکیم و با هم نحوه پیاده سازی و کاربرد آن را یاد میگیریم. در مقاله قبل در رابطه با Strategy Design Pattern صحبت کردیم و با کاربرد و نحوه پیاده سازی آن آشنا شدیم. Bridge Design Pattern یکی دیگر از دیزاین پترن‌های کاربردی […]

Bridge pattern

ریپازیتوری پترن (Repository Pattern)

منتشر شده در بهمن ۱۵, ۱۳۹۹

چرا باید از Design Patternها و اصول SOLID در توسعه نرم افزار استفاده کنیم؟ قبلا در رابطه با اصول SOLID  و اینکه مفهوم الگوی طراحی یا Design pattern چیست، صحبت کردیم، وقتی با استفاده از اصول SOLID یک کلاس را پیاده سازی می‌کنیم باید به این نتیجه برسیم که تغییر یک کلاس به خاطر Logic […]

Repository Pattern

استراتژی پترن (Strategy Pattern)

منتشر شده در بهمن ۹, ۱۳۹۹

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

Strategy Design pattern

دیزاین‌پترن (Design Pattern) چیست؟

منتشر شده در بهمن ۸, ۱۳۹۹

دیزاین پترن‌ها یا الگوهای طراحی راه حل‌هایی برای رفع مشکلات نرم افزاری هستند، در واقع الگوهای طراحی مفاهیمی هستند که با استفاده از آنها می‌توانیم به بهترین نحو ممکن یک نرم افزار را توسعه دهیم در واقع الگوهای طراحی نشان دهنده بهترین شیوه های استفاده شده (Best Practices) توسط توسعه دهندگان باتجربه نرم افزارهای شی […]

what is a design pattern

بررسی و توضیح SQL Joins

منتشر شده در بهمن ۵, ۱۳۹۹

خیلی وقتها در پروژه هایی که از دیتابیسهای رابطه ای (Relational Dateabse) استفاده می‌شود برای افزایش پرفرمنس و یا اینکه برای دریافت مقدار مشخصی لازم است چندین جدول را با هم join کنیم. همانطور که میدانید این join کردن با استفاده از کلیدهای خارجی که ارتباطی را بین جداول ایجاد کرده اند ایجاد می‌شود. دو […]

SQL Joins in relational Database

تست نویسی در لاراول

منتشر شده در دی ۱۳, ۱۳۹۹

یکی از مهمترین‌ بخش‌هایی که در پروژه‌های نرم افزاری مطرح است تست نویسی است که معمولا همگی به بهانه‌های کمبود وقت و ضرورت سروقت تحویل دادن پروژه این بخش را نادیده می‌گیریم، تصور کنید در پروژه ای فعالیت می‌کنید که اعضای تیم هر کدام در بخشی از پروژه فعالیت میکنند اگر تست‌‌های پروژه را نداشته […]

UNIT Testing in Laravel

درک مفاهیم S.O.L.I.D

منتشر شده در مرداد ۲۰, ۱۳۹۹

در این مقاله در رابطه با درک مفاهیم SOLID می‌نویسیم و مفاهیمی که برای آن وجود دارد را به ترتیب بررسی می‌کنیم. در واقع اصول SOLID یک استاندارد کدنویسی است که به برنامه نویس کمک می‌کند درک واضح‌تری از برنامه نویسی داشته باشد تا بتواند برنامه‌ای تمیز با قابلیت توسعه زیاد پیاده سازی کند. این […]

درک مفاهیم SOLID – بخش ۱

وب در دسترس برای همه! بخش سوم

منتشر شده در مرداد ۴, ۱۳۹۹

در دو بخش قبل بخش‌های زیادی از مفاهیم و کدهای Web Accessibility را باهم بررسی کردیم و تقریبا میشه گفت با رعایت آنچه در دو مقاله قبل اشاره کردیم تقریبا وبسایت ما Accessible است. در این بخش آخر به سایر نکات باقی مانده میپردازیم و لینکهایی را جهت مطالعه بیشتر معرفی میکنم. وب در دسترس […]

Web Accessibility part 3

وب در دسترس برای همه! بخش دوم

منتشر شده در اسفند ۲۰, ۱۳۹۸

در مقاله قبل در رابطه با بخش اول و مفاهیم اولیه Web Accessibility صحبت کردیم و به دلایل مهم بودن این موضوع پرداختیم که علاوه به بهبود کارایی و پرفرمنس وبسایت ما مزایای زیاد دیگری نیز برای ما و جامعه ما خواهد داشت. در این مقاله در رابطه با نکات مربوط به کدنویسی، ساختار درست […]

Web Accessibility part 2

وب، در دسترس برای همه!

منتشر شده در بهمن ۳۰, ۱۳۹۸

همانطور که میدانیم هر نعمت و هر امکانی که در دنیا وجود دارد برای همه انسان‌ها خلق شده است و ما انسان‌ها هستیم که شرایط را طوری ایجاد میکنیم که امکانات فقط برای یک قشر خاص در دسترس قرار بگیرد! می‌توانید به وضعیت کلی مکانهای عمومی و هزارن مثالی که وجود دارد اشاره کرد که […]

Web Accessibility part 1

معرفی ابزار فوق العاده ngrok

منتشر شده در دی ۲۱, ۱۳۹۸

یکی از نیازمندی‌های ما هنگام توسعه نرم افزار این است که پروژه ای که توسعه می‌دهیم هنگام تست برخی از نرم افزارهای مورد استفاده به صورت آنلاین در دسترس قرار بگیرد، یا اینکه لازم است دمویی از پروژه را به مشتری نمایش دهیم لازم است بر روی سرور آپلود و دسترسی دهیم تا دموی اولیه […]

ngrok

انتشار پکیج در Packagist

منتشر شده در دی ۱۳, ۱۳۹۸

در یکی از همکاریهای قبلیم با یکی از شرکتها، پروژه‌هایی که داشتیم چندین مورد بودند و برای هر کدام لازم بود که یک سیستمی پیاده‌سازی شود که منطق و کارکرد آن در همگی یکسان بود. اگر در یکی از این سیستم‌ها تغییری ایجاد می‌کردیم باید در تمام پروژه‌هایی که داشتیم بروزرسانی انجام می‌دادیم و اینکار […]

Release private/ public package in packagist.org

تنظیم چندین ssh key برای مدیریت اکانت‌ها

منتشر شده در آذر ۱, ۱۳۹۸

اخیرا برای انجام یکی از پروژه‌هایی که همکاری داشتم لازم بود که با یک اکانت دیگه غیر از اکانت ایران وصل بشم و فایلهای پروژه رو با اکانت شرکتی بفرستم بر روی گیت‌هاب ولی مشکلی که وجود داشت این بود که اکانت شخصیم هم لازم داشتم و نمیشد از یک ssh key برای هر دو […]

Multiple SSH Keys settings for different github account

Flexbox را یاد بگیریم!

منتشر شده در آبان ۱۶, ۱۳۹۸

وقتی ریدیزاین و پیاده سازی وبلاگ جدیدم را شروع کردم قبلا به خاطر مشغله کاری فرصت نشده بود Flexbox را مطالعه کنم تصمیم گرفتم وبلاگم را با استفاده از این ساختار جدید css پیاده سازی کنم و از طرفی طی یک مقاله نحوه کار و یادگیری آن را آرشیو کنم. انگیزه یادگیری Flexbox از ویدیو‌های […]

learning flexbox

انتشار اولین مطلب در Symfony – قسمت ۱

منتشر شده در دی ۲۸, ۱۳۹۷

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

Create model and tables

پیاده سازی صفحات bundle و مسیردهی آنها

منتشر شده در دی ۲۸, ۱۳۹۷

در مقاله‌ قبل ( ساخت bundle جدید در Symfony ) با استفاده از دستورات  console به راحتی یک bundle جدید ایجاد کردیم، با توجه به اینکه در قسمت سوم مقاله ( بخش view در symfony ) در رابطه با view صحبت کرده بودیم و ساختار کلی view  را پیاده سازی کردیم در این قسمت سایر بخش‌های view […]

Symfony controller and routing

ساخت bundle جدید در Symfony

منتشر شده در دی ۲۸, ۱۳۹۷

در مقاله قبل در رابطه با ساختار viewها در سیمفونی صحبت کردیم و یک قالب وبلاگی را مطابق Twig template engine پیاده سازی کردیم. با توجه به اینکه قصد داریم در این پروژه آزمایشی صرفا یکسری مطالب را اضافه کنیم یک bundle جدید به نام BlogBundle ایجاد می‌کنم و ادامه کار را با هم پیش میبریم.

generate bundle in Symfony

بخش view در symfony

منتشر شده در دی ۲۸, ۱۳۹۷

در مقاله قبل در رابطه با مقدمات و آشنایی اولیه با ساختار سیمفونی صحبت کردم در این مقاله بخش view  آن را با هم بررسی می‌کنیم. Symfony برای مدیریت قالب‌ها از یک Template Engine به نام Twig استفاده می‌کند که کار مدیریت و پیاده سازی ساختارهای قالب را به طرز فوق العاده ای بهتر و […]

Twig template engine in Symfony

آشنایی اولیه با فریمورک Symfony

منتشر شده در دی ۲۸, ۱۳۹۷

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

about Symfony structure

سلام Symfony

منتشر شده در دی ۲۸, ۱۳۹۷

با توجه به اینکه من قبلا با لاراول شروع به کار کردم و از آن لذت زیادی بردم و از آنجایی که میدونستم که لاراول بسیاری از بخش‌های خودش رو از Symfony دریافت می‌کنه تمایل زیادی داشتم که کار با سیمفونی رو امتحان کنم تا ببینم چقدر میتونم ازش لذت ببرم! در این مقاله با […]

hello symfony - install symfony

پکیج‌های کاربردی لاراول ( ۱ )

منتشر شده در دی ۹, ۱۳۹۷

در این مقاله پکیج‌های کاربردی laravel را که تجربه استفاده از آنها را دارم معرفی می‌کنم. این پکیج‌ها می‌توانند بسته به پروژه ای که انجام می‌دهید و حجم و ساختار پروژه مورد استفاده قرار بگیرند. ۱- لاراتراست (Laratrust) در لاراول برای بخش کاربران و در واقع برای مدیریت و اعتبارسنجی کاربران اگر پروژه ای که انجام […]

laravel package

gitflow راهکاری فوق العاده برای مدیریت پروژه

منتشر شده در آذر ۹, ۱۳۹۷

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

Git Flow Workflow

از تجربیات کاریم می‌نویسم

منتشر شده در آبان ۲۱, ۱۳۹۷

در این نوشته از تجربیات کاریم می‌نویسم و قصد دارم  مواردی را که حاصل چند سال کار کردن با شرکتها و تیم های مختلف است را به اشتراک بگذارم شاید برای برخی از دوستان مفید باشد. لازم است اشاره کنم که من تقریبا از سال ۲۰۱۱ وارد دنیای وب، طراحی سایت و برنامه نویسی شدم و […]

work experience

خطايابی و Debug کردن برنامه‌ها در php

منتشر شده در مهر ۲۶, ۱۳۹۷

همانطور که میدونید هنگام توسعه یک برنامه با انواع خطاها روبرو هستیم، برای دیباگ کردن برنامه لازم است در فاز توسعه این خطاها را مشاهده کنیم تا نسبت به دیباگ کردن آنها اقدام کنیم. در صورتیکه از فریمورک‌هایی همچون Laravel استفاده کنیم نیاز به فعالسازی نمایش خطاها نیست و کافی است در فایل تنظیمات فریمورک […]

Display all of php errors

دوره آموزشی وردپرس

منتشر شده در شهریور ۲۰, ۱۳۹۷

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

دوره آموزش وردپرس

آماده سازی مک برای یک برنامه نویس

منتشر شده در شهریور ۹, ۱۳۹۷

از وقتی روی سیستم عامل مک کار میکنم به جرات میتونم بگم که از کارم صدها برابر بیشتر لذت میبرم. طی این مدت چندین بار پیش اومد که به خاطر مسائلی از اول سیستم عامل مک رو نصب  و راه اندازیش کردم که بعد از راه اندازی آماده سازی برنامه ها برای شروع کار یک […]

The perfect web development environment for mac

معرفی پکیج منیجر homebrew

منتشر شده در شهریور ۸, ۱۳۹۷

معمولا برنامه نویس از محیط ترمینال لذت میبره و اگر با لینوکس کار کرده باشید با استفاده از سیستم پکیج کنترلی که داره میتونید همه برنامه های مورد نیازتون رو نصب کنید و … قبلا برای راه اندازی وب سرور و mysql و php از برنامه XAMPP، یا MAMP استفاده می‌کردم. با نصب یکی از این […]

homebrew package manager

از زندگی می‌آموزم و زندگی می‌کنم!

منتشر شده در شهریور ۳, ۱۳۹۷

چالشی اساسی در زندگیم پیش آمد که به شدت احساساتم و روانم را درگیر کرده بود و روزها و ماه‌ها درگیر این قضیه بودم به طوریکه نیمسال دوم سال ۹۶ یکی از پرچالش‌ترین و سخت‌ترین لحظات زندگی شخصیم بود. نمیدانم از کجا و چگونه بیان کنم، نمیخواهم در مورد جزئیات موارد و مشکلات صحبت کنم […]

lifestyle mekaeil

دریافت مقدار انتخاب شده select

منتشر شده در مرداد ۴, ۱۳۹۷

برای یکی از پروژه هایی که قبلا توسعه می‌دادم نیاز به ساخت یک فیلتر آجاکسی بر روی لیستی از دیتاها بود که وقتی کاربر بر روی select کلیک میکرد مقدار موردنظر با آجاکس ارسال و جستجو انجام میشد در واقع بروزرسانی مقادیر تگ select باید انجام می‌شد. $(‘select.selectronFilter’).on(‘change’, function(){ var selected = $(this).find(“option:selected”).val(); });

select box user