"پس بیا وسطش!"
"قیمت من براساس [دلایل] هست، میتونیم تو محدوده X تا Y صحبت کنیم"
"این تغییر کوچیکه، راحت انجامش میدم"
"برای این تغییر نیاز به [زمان/هزینه اضافه] هست"
"بعداً دقیق مشخص میکنیم"
"اول Scope رو دقیق تعریف کنیم بعد شروع کنیم"
#خطاهای_فریلنسری #آموزش #درآمد
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7🔥4👌2
NextPro | برنامه نویسی pinned «🚫 ۳ اشتباه کشنده در مذاکره فریلنسری 1️⃣ تسلیم شدن در قیمت: "پس بیا وسطش!" ❌ "قیمت من براساس [دلایل] هست، میتونیم تو محدوده X تا Y صحبت کنیم" ✅ 2️⃣ اضافهکاری رایگان: "این تغییر کوچیکه، راحت انجامش میدم" ❌ "برای این تغییر نیاز به [زمان/هزینه اضافه] هست" ✅ …»
تو این پست میخوایم راجب یک قابلیت خیلی فوق العاده که تایپ اسکریپت بوجود اورده صحبت کنیم ، متادیتا !
متادیتا (Metadata) در TypeScript مثل یادداشتهای نامرئی روی کد هامونه که به سیستممون میگه چطور با اجزای مختلف برنامه رفتار کنه. این ویژگی، به خصوص وقتی با Decoratorها ترکیب میشه، میتونه برنامهنویسی رو حرفهایتر و شیرین تر کنه !
چرا متادیتا مهمه؟
• انعطافپذیری: بدون تغییر منطق اصلی کد، رفتارش رو اصلاح میکنه.
• کاهش کد تکراری: مثلاً برای اعتبارسنجی، دیباگ یا لاگینگ.
• قابلیت استفاده در فریمورکها: مثل NestJS یا Angular که از متادیتا برای Routeها و Dependency Injection استفاده میشه .
• ساخت کتابخانه/فریمورک
• اعتبارسنجی خودکار دادهها
• پیادهسازی AOP (برنامهنویسی جنبهگرا)
اگه میخوای بیشتر راجبش بدونی راجب reflect metadata api بخون.
#TypeScript #MetaData
@NextPro_Ch 🚀
متادیتا (Metadata) در TypeScript مثل یادداشتهای نامرئی روی کد هامونه که به سیستممون میگه چطور با اجزای مختلف برنامه رفتار کنه. این ویژگی، به خصوص وقتی با Decoratorها ترکیب میشه، میتونه برنامهنویسی رو حرفهایتر و شیرین تر کنه !
چرا متادیتا مهمه؟
• انعطافپذیری: بدون تغییر منطق اصلی کد، رفتارش رو اصلاح میکنه.
• کاهش کد تکراری: مثلاً برای اعتبارسنجی، دیباگ یا لاگینگ.
• قابلیت استفاده در فریمورکها: مثل NestJS یا Angular که از متادیتا برای Routeها و Dependency Injection استفاده میشه .
چه موقع از متادیتا استفاده کنیم؟ • ساخت کتابخانه/فریمورک
• اعتبارسنجی خودکار دادهها
• پیادهسازی AOP (برنامهنویسی جنبهگرا)
اگه میخوای بیشتر راجبش بدونی راجب reflect metadata api بخون.
#TypeScript #MetaData
@NextPro_Ch 🚀
👍4❤2
میخوایم راجب تعارضات پروژه و نحوه مدیریتش صحبت کنیم ، کی تعارض پیش میاد ؟
تو هر پروژهای، اختلاف نظر پیش میاد! مهم اینه که بدونیم چجوری و کی این به این تعارضات واکنش نشون بدیم.
انواع تعارض های رایج در پروژهها
• تعارض فنی
- مثلاً: "React بهتره یا Vue؟"
- راه حلش: دیتا محور بحث کن! مقایسه آماری انجام بده یا یه نمونه کوچیک با هر دو تکنولوژی بساز.
۲. تعارض زمانی
- "چرا ددلاین رو رعایت نکردی؟"
- راه حل: از اول پروژه رو به تسکهای کوچیکتر تقسیم کن و پیشرفت رو هفتگی چک کن.
۳. تعارض شخصیتی ( بسیار رایج )
- بعضی همکارا ذاتاً باهم سازگار نیستن!
- راه حل: وظایف رو جدا کنید یا از مدیر پروژه بخواین نقش واسطه رو بازی کنه.
و کلام آخر : تعارض طبیعیه، اما نحوه برخورد با اون تو رو حرفهای میکنه!
#مدیریت_پروژه #تعارض
@NextPro_Ch 🚀
تو هر پروژهای، اختلاف نظر پیش میاد! مهم اینه که بدونیم چجوری و کی این به این تعارضات واکنش نشون بدیم.
انواع تعارض های رایج در پروژهها
• تعارض فنی
- مثلاً: "React بهتره یا Vue؟"
- راه حلش: دیتا محور بحث کن! مقایسه آماری انجام بده یا یه نمونه کوچیک با هر دو تکنولوژی بساز.
۲. تعارض زمانی
- "چرا ددلاین رو رعایت نکردی؟"
- راه حل: از اول پروژه رو به تسکهای کوچیکتر تقسیم کن و پیشرفت رو هفتگی چک کن.
۳. تعارض شخصیتی ( بسیار رایج )
- بعضی همکارا ذاتاً باهم سازگار نیستن!
- راه حل: وظایف رو جدا کنید یا از مدیر پروژه بخواین نقش واسطه رو بازی کنه.
و کلام آخر : تعارض طبیعیه، اما نحوه برخورد با اون تو رو حرفهای میکنه!
#مدیریت_پروژه #تعارض
@NextPro_Ch 🚀
🔥2👍1
ساخت Directiveهای سفارشی در #Vuejs
🛠️ مثال عملی:
✨ ایجاد امکانات جدید در قالبها
✨ قابلیت استفاده مجدد در کل پروژه
✨ یکپارچهسازی ساده با کامپوزیشن API
"ویو رو با نیازهای خودتون شخصیسازی کنید!"
#ویوجیاس #برنامهنویسی
🎯 @NextPro_Ch
🛠️ مثال عملی:
const vHighlight = { mounted(el) {
el.style.backgroundColor = 'yellow';
}"ویو رو با نیازهای خودتون شخصیسازی کنید!"
#ویوجیاس #برنامهنویسی
Please open Telegram to view this post
VIEW IN TELEGRAM
دوآپس(DevOps) از دو کلمهی Development (توسعه) و Operation (عملیات) تشکیل شده و به نوعی این دو مفهوم را با هم ترکیب کرده است. دواپس بین تیم توسعهی محصول و تیم عملیاتی شرکت، همکاری و تعامل ایجاد میکند. DevOps یک زبان یا یک تکنولوژی خاص نیست بلکه ترکیبی از فلسفه، فرهنگ، شیوهها و ابزارهایی است که کمک میکنند محصولات یا خدمات ما سریعتر به دست مشتریان برسد.
منظور از Development، تیم توسعه است، یعنی تمام کسانی که در ساخت محصول، خطایابی، تست و در نهایت تکمیل محصول نقش دارند. منظور از Operation هم IT Operation یا تیم عملیاتی است. افرادی که در حالت کلی، نگهداری تجهیزات سخت افزاری، نرم افزاری، و محیطهای عملیاتی شرکت را به عهده دارند. DevOps به سازمانها کمک میکند تا سرعت انتقال محصولات یا خدمات خود به مشتریان را افزایش دهند، کیفیت کار را بالا نگه دارند و حضور قدرتمندی در بازار داشته باشند.
تا قبل از DevOps، تیمهای توسعه و عملیاتی در دو محیط ایزوله و جدا از هم فعالیت داشتند. جدا بودن برنامهی کاری این دو تیم باعث ایجاد تاخیر در تحویل و تکمیل پروژه میشد.آن زمان بدون DevOps، بیشتر وقت اعضای تیم به طراحی، تست و استقرار میگذشت به جای این که وقت برای ساخت پروژه واقعی صرف شود.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤2👍2👏1
📈 چطوری قیمتتو بالا ببری بدون اینکه کارفرما فرار کنه؟
🔹 ۳ تکنیک نفوذی:
1️⃣ ارزشسازی: "این نسخه Premium شامل پشتیبانی ۶ ماهه رایگان هم میشه!"
2️⃣ مقایسه: "شرکتهای دیگه برای این خدمات X میگیرن، من بخاطر [دلیل] Y میگیرم"
3️⃣ تقسیم هزینه: "میتونین قسطی پرداخت کنین!"
🔥 نکته:
"کارفرماها قیمت بالا رو میپذیرن، اگه باور کنن ارزش بیشتری میگیرن!"
#فریلنسری #درآمد_زایی #مذاکره
🎯 @NextPro_Ch
🔹 ۳ تکنیک نفوذی:
1️⃣ ارزشسازی: "این نسخه Premium شامل پشتیبانی ۶ ماهه رایگان هم میشه!"
2️⃣ مقایسه: "شرکتهای دیگه برای این خدمات X میگیرن، من بخاطر [دلیل] Y میگیرم"
3️⃣ تقسیم هزینه: "میتونین قسطی پرداخت کنین!"
🔥 نکته:
"کارفرماها قیمت بالا رو میپذیرن، اگه باور کنن ارزش بیشتری میگیرن!"
#فریلنسری #درآمد_زایی #مذاکره
🎯 @NextPro_Ch
👍4👎1
استفاده Server Actions در Next.js
💥 مثال عملی:
✅اجرای کد سرور از سمت کلاینت
✅ امنیت بالا با سیستم داخلی Next
✅ کاهش چشمگیر کدنویسی بکاند
"ادغام فرانتاند و بکاند بدون دردسر!"
#NextJS #توسعه_فولاستک
🎯 @NextPro_Ch
💥 مثال عملی:
// actions.js
'use server';
export async function submitForm(data) {
// ذخیره داده در دیتابیس
}
✅اجرای کد سرور از سمت کلاینت
✅ امنیت بالا با سیستم داخلی Next
✅ کاهش چشمگیر کدنویسی بکاند
"ادغام فرانتاند و بکاند بدون دردسر!"
#NextJS #توسعه_فولاستک
🎯 @NextPro_Ch
👍2
"همه اینا رو مینویسم که بعدا دوستانه با هم کار کنیم، نه دادگاهی!"
#قرارداد #فریلنسری #امنیت_کاری
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8
تو این پست میخوایم راجب یک دیزاین پترن محبوب حرف بزنیم ، SingleTon .
وقتی میخوایم مطمئن شیم که فقط یک نمونه از یک کلاس در کل برنامه وجود داره ، Singleton به دادت میرسه ! این الگو برای مدیریت connectionهای دیتابیس و لاگرها عالیه !
یک نمونه ساده از SingleTon :
چرا از Singleton استفاده کنیم ؟
• صرفهجویی در منابع: از ساخت نمونههای تکراری جلوگیری میشه
• کنترل دقیق: میتونیم رفتار یک نمونه رو کاملا مدیریت کنیم ( تغییرات و دیباگ و.. )
کلام آخر :هرچیزی زیادیش بده ، این الگوام زیادی و بی برنامه ریزی استفاده بشه میتونه به یک ضد الگو تبدیل بشه !
#DesignPatterns #Singleton
@NextPro_Ch 🚀
وقتی میخوایم مطمئن شیم که فقط یک نمونه از یک کلاس در کل برنامه وجود داره ، Singleton به دادت میرسه ! این الگو برای مدیریت connectionهای دیتابیس و لاگرها عالیه !
یک نمونه ساده از SingleTon :
class Database {
private static instance: Database;
// جلوگیری از ساخت نمونه جدید با new
private constructor() {}
public static getInstance(): Database {
if (!Database.instance) {
Database.instance = new Database();
}
return Database.instance;
}
}
const db1 = Database.getInstance();
const db2 = Database.getInstance();
console.log(db1 === db2); // true چرا از Singleton استفاده کنیم ؟
• صرفهجویی در منابع: از ساخت نمونههای تکراری جلوگیری میشه
• کنترل دقیق: میتونیم رفتار یک نمونه رو کاملا مدیریت کنیم ( تغییرات و دیباگ و.. )
کلام آخر :هرچیزی زیادیش بده ، این الگوام زیادی و بی برنامه ریزی استفاده بشه میتونه به یک ضد الگو تبدیل بشه !
#DesignPatterns #Singleton
@NextPro_Ch 🚀
👍2🔥2👏1
تو این پست میخوایم راجب رزومه نویسی درست حرف بزنیم ، مشکل خیلیا !
توی کامیونیتی، برنامه نویسا با رزومشون شناخته میشن و اولین دریچهست که کارفرماها و همکارای مختلف از طریق اون با شما آشنا میشن. پس باید مثل یه پروژه حرفهای باهاش برخورد کنی!
• نکات طلایی برای رزومه ها
1. رزومه انگلیسی ننویس ! :
کارفرما ممکنه اصلا انگلیسی بلد نباشه ! درجا رد کنه رزومتو با اینکه خیلی فرد توانمندی باشی !
2. تجربهی کاری رو پروژهمحور :
✅ "توسعه پنل مدیریت با React.js - کاهش 40% زمان لود با بهینهسازی کد"
3. مهارتها رو طبقهبندی کن:
4. پروژههای مهم رو هایلایت کن:
• لینک GitHub/Live Demo حتما بذار
5.فونتای درست استفاده کن :
• فونتهای استاندارد (Arial, Roboto) با سایز 11خطاهای کشنده که رزومه رو مستقیماً به سطل آشغال میفرسته !
6.هرچی کوتاه تر بهتر :
• رزومه ۵ صفحهای! (حداکثر ۲ صفحه )
7.رو ReadMe گیتهابت کارکن :
• شامل توضیحات مختصر باشه و تو کمتر از یک دقیقه طرف بفهمه چیکاره ای !
شما چه موارد دیگه ای رو ضروری میدونین براش؟
#رزومه_نویسی
@NextPro_Ch 🚀
توی کامیونیتی، برنامه نویسا با رزومشون شناخته میشن و اولین دریچهست که کارفرماها و همکارای مختلف از طریق اون با شما آشنا میشن. پس باید مثل یه پروژه حرفهای باهاش برخورد کنی!
• نکات طلایی برای رزومه ها
1. رزومه انگلیسی ننویس ! :
کارفرما ممکنه اصلا انگلیسی بلد نباشه ! درجا رد کنه رزومتو با اینکه خیلی فرد توانمندی باشی !
2. تجربهی کاری رو پروژهمحور :
✅ "توسعه پنل مدیریت با React.js - کاهش 40% زمان لود با بهینهسازی کد"
3. مهارتها رو طبقهبندی کن:
- 🛠 **Front-End**: React, Next.js, TypeScript
- 🎨 **UI/UX**: Figma, TailwindCSS
- ⚙️ **Back-End**: Node.js, Express
4. پروژههای مهم رو هایلایت کن:
• لینک GitHub/Live Demo حتما بذار
5.فونتای درست استفاده کن :
• فونتهای استاندارد (Arial, Roboto) با سایز 11خطاهای کشنده که رزومه رو مستقیماً به سطل آشغال میفرسته !
6.هرچی کوتاه تر بهتر :
• رزومه ۵ صفحهای! (حداکثر ۲ صفحه )
7.رو ReadMe گیتهابت کارکن :
• شامل توضیحات مختصر باشه و تو کمتر از یک دقیقه طرف بفهمه چیکاره ای !
شما چه موارد دیگه ای رو ضروری میدونین براش؟
#رزومه_نویسی
@NextPro_Ch 🚀
❤2
خب پستای قبلی راجب اصول SOLID حرف زدیم ، الان میخوایم راجب اصل دوم : Open/Closed Princible (OCP) حرف بزنیم
این اصل میگه: "نرمافزار باید برای گسترش باز، اما برای تغییر بسته باشه." یعنی بدون تغییر کدهای موجود، بتونی قابلیتهای جدید اضافه کنی.
مثال ساده:
فرض کن یه کلاس
اگر بخوای پرداخت با
راه حل:
با استفاده از اینترفیس، کلاس رو برای گسترش باز میذاری:
حالا بدون تغییر کدهای قدیمی، میتونی روشهای پرداخت جدید اضافه کنی!
چرا مهمه؟
• کاهش ریسک باگ در کدهامون
• انعطافپذیری بیشتر برای اضافه کردن ویژگیهای جدید
• رعایت این اصل، نگهداری پروژه رو آسون تر میکنه .
#SOLID #OCP
@NextPro_Ch 🚀
این اصل میگه: "نرمافزار باید برای گسترش باز، اما برای تغییر بسته باشه." یعنی بدون تغییر کدهای موجود، بتونی قابلیتهای جدید اضافه کنی.
مثال ساده:
فرض کن یه کلاس
Payment داری که پرداخت با CreditCard رو مدیریت میکنه: class Payment {
process(amount: number) {
// logic
}
}اگر بخوای پرداخت با
PayPal رو اضافه کنی، مجبوری کلاس رو تغییر بدی! این نقض OCPه. راه حل:
با استفاده از اینترفیس، کلاس رو برای گسترش باز میذاری:
interface IPayment {
process(amount: number): void;
}
class CreditCard implements IPayment {
process(amount: number) { /* ... */ }
}
class PayPal implements IPayment {
process(amount: number) { /* ... */ }
}حالا بدون تغییر کدهای قدیمی، میتونی روشهای پرداخت جدید اضافه کنی!
چرا مهمه؟
• کاهش ریسک باگ در کدهامون
• انعطافپذیری بیشتر برای اضافه کردن ویژگیهای جدید
• رعایت این اصل، نگهداری پروژه رو آسون تر میکنه .
#SOLID #OCP
@NextPro_Ch 🚀
👍1
😤 چطوری به کارفرمای نامناسب «نه» بگی؟
🔹 موقعیت های خطرناک:
🟢 پیشنهاد قیمت خیلی پایین
🟢 بیکفایتی کارفرما
🟢 پروژه بیهدف
🔹 راه حل:
✅ "متاسفانه الان زمان کافی ندارم که حق این پروژه رو ادا کنم!"
✅ "تخصص من بیشتر در [زمینه X] هست، شاید [فریلنسر Y] بهتر بتونه کمک کنه!"
🔥 نکته:
"گاهی «نه» گفتن به یه پروژه بد، یعنی باز کردن مسیر برای پروژههای عالی!"
#فریلنسری #مذاکره #رفتار_حرفهای
🎯 @NextPro_Ch
"گاهی «نه» گفتن به یه پروژه بد، یعنی باز کردن مسیر برای پروژههای عالی!"
#فریلنسری #مذاکره #رفتار_حرفهای
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥6👍5❤2
اگه شما هم بخاطر فعال بودن گیتهابتون بهتون اتهام خورد که "ی ربات گزاشتی پشت ریپوت برات کامیت فیک میزنه"
با استفاده از افزونه 🎄Code time🎄 میتونید طرف
رو مورد عنایت قرار بدید🧑💻
@NextPro_Ch
با استفاده از افزونه 🎄Code time🎄 میتونید طرف
رو مورد عنایت قرار بدید🧑💻
@NextPro_Ch
❤🔥3👍2
"این پروژه براساس [زمان/تخصص/نتایج] بین X تا Y تومان هزینه داره. دوست دارین جزئیات رو براتون توضیح بدم؟"
#قیمت_گذاری #فریلنسری #درآمد
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3