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

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

اما موضوعی که در این مقاله میخواهم در رابطه با آن صحبت کنم، تعریف یک مدل یا Road map برای مدیریت یک پروژه روی ورژن کنترلی مثل گیت است.

اگر قبلا تجربه کار کردن به صورت تیم را داشته باشید حتما به مشکلاتی همچون Merge Conflict و تداخل و همزمانی توسعه ویژگی‌ها و… برخورد کردید که گاهی وقتها وقت زیادی رو از ما میگیره تا برنچ‌های مختلف را با هم ادغام و در نهایت Deploy کنیم. 

Git Flow  یک ‌Branch Model است یا بهتره بگم یه مفهوم برای مدیریت برنچ‌ها و تیم توسعه است که بدون مشکل بتوانیم پروژه‌هایمان را توسعه دهیم و به صورت همزمان بتوانیم Feature هایی که میخواهیم را به بخش‌های مختلف پروژه اضافه کنیم بدون اینکه استرسی بابت مرج و لانچ بخش‌های مختلف داشته باشیم.

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

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

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

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

work with client

دریافت پروژه از مشتری :

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

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

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

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

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

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

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

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

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

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

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

ادامه خواندن دوره آموزشی وردپرس

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

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

Homebrw

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

قبلا مقاله در رابطه با معرفی پکیج منیجر home brew نوشتم که میتوانید آن را مطالعه کنید.

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

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

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

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

ادامه خواندن معرفی پکیج منیجر homebrew

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

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

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

کمتر از یکسال از زندگی مشترکم گذشت که ادامه پیدا نکرد و دوباره به دوران مجردی بازگشتم، این مشکل به طرز عجیبی روانم را به هم ریخت و من را به فکر فرو برد که چرا باید این موضوع برای من پیش آید؟! چه فرکانس و طرز فکری از من باعث این مشکل شده است؟! ادامه خواندن از زندگی می‌آموزم و زندگی می‌کنم!

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

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

select2 plugin

$('select.selectronFilter').on('change', function(){
    var selected    = $(this).find("option:selected").val();
});

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

آرشیو دوم : دستورات و نکات مهم لاراول

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

۱ – تفاوت بین PUT و PATCH  در فرم‌های لاراول :

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

http post method is like a INSERT query in SQL which always creates a new record in database.

برای مثال ثبت یک مطلب، کاربر و سفارش در وبسایت همگی با متد post انجام می‌شود.

put و patch درخواست های http هستند که هر دوی آنها اطلاعات را بروزرسانی می‌کنند. ادامه خواندن آرشیو دوم : دستورات و نکات مهم لاراول

ساخت Helper کاستوم در لاراول

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

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