</ MoDev >
رفتن به کانال در Telegram
🩵 جایی برای ساختن & یاد گرفتن & بهتر کدنویسی کردن :)) Direct : t.me/programming_codiing?direct Me : @mohammad_dev_2012
نمایش بیشترکشور مشخص نشده استدسته بندی مشخص نشده است
497
مشترکین
+224 ساعت
+117 روز
+3030 روز
آرشیو پست ها
497
به بک اند هم پا گذاشتم
می تونم بگم کارت از فرانت راحتره در اکثر پروژه ها
واقعا دوست داشتنیه و لذت بخشه، اما دیگه مثل فرانت اند خبری از رنگ و این چیزا نیست، کارت با منطق، ساختار و دادههاست.
و الان دغدغهی مهمم نبود پروژه های خوبی برا رزومه خودم هست، روزمه ای که پروژه هاش با تکنولوژی هاش بهم نمی خورن و این وافعا خوب نیست چون وقت نکردم خیلی پروژه بزنم.
رزومه و پورتفولیوم رو بعد از تکمیل، نشونتون می دم. 💙
497
احتمالاً موقع نصب یه پکیج دیدید که نسخهش مثلاً اینه: 3.7.2
ولی این سه تا عدد دقیقاً چی میگن؟
این سیستم اسمش Semantic Versioning یا SemVerـه و شکل کلیش اینه :
MAJOR.MINOR.PATCH
مثلاً: 3.7.2 یعنی: 3 → MAJOR 7 → MINOR 2 → PATCH حالا قسمت جذابش اینجاست MAJOR — تغییرات بزرگ و Breaking وقتی نسخه Major تغییر میکنه، ممکنه چیزهایی که قبلاً توی پروژهات کار میکردن، دیگه کار نکنن. مثلاً: 2.4.1 → 3.0.0 فرض کن قبلاً این API رو داشتی: getUser(id) ولی توی نسخه جدید تبدیل شده به: getUser({ id }) کدت ممکنه بشکنه؛ چون API قبلی تغییر کرده. پس: Major = احتمال Breaking Change MINOR — قابلیت جدید، بدون شکستن قبلیها مثلاً: 3.7.2 → 3.8.0 یک قابلیت جدید اضافه شده، ولی قرار نیست قابلیتهای قبلی خراب بشن. مثلاً: getUser() همچنان کار میکنه و فقط قابلیت جدیدی مثل: getUsers() اضافه شده. پس: Minor = Feature جدید + سازگاری با قبلی PATCH — رفع باگ مثلاً: 3.7.2 → 3.7.3 اینجا معمولاً قابلیت جدیدی اضافه نشده؛ فقط باگها و مشکلات نسخه قبلی برطرف شدن. مثلاً: نسخه قبلی: calculateTotal() گاهی مبلغ اشتباه برمیگردوند. در نسخه جدید این باگ Fix شده. پس: Patch = Bug Fix حالا یه مثال واقعیتر فرض کن نسخه پکیجت اینه: 1.4.2 بعد: 1.4.3 → یک باگ Fix شده. 1.5.0 → یک قابلیت جدید اضافه شده. 2.0.0 → تغییر بزرگی اتفاق افتاده که ممکنه نیاز به تغییر کدت داشته باشه. پس فقط با نگاه کردن به نسخه میتونی بفهمی تقریباً چه نوع تغییری اتفاق افتاده. اما یه نکته مهم درباره npm وقتی توی package.json مینویسی: "react": "^19.0.0" این ^ مهمه. یا مثلاً: "lodash": "~4.17.21" این علامتها مشخص میکنن چه نسخههایی اجازه دارن نصب بشن. به زبان ساده: ^ → معمولاً Minor و Patch را اجازه میدهد. ~ → معمولاً فقط Patch را اجازه میدهد. مثلاً: ^1.4.2 1.4.3 ✅ 1.5.0 ✅ 1.9.9 ✅ 2.0.0 ❌ و: ~1.4.2 1.4.3 ✅ 1.4.9 ✅ 1.5.0 ❌خلاصه:
1.4.2 │ │ │ │ │ └── PATCH → رفع باگ │ └──── MINOR → قابلیت جدید └────── MAJOR → تغییرات ناسازگار@programming_codiing
497
کتابم بخونید
بنظرم تو برنامهتون به اندازه ای که به زبان اهمیت می دین به کتاب خوندن هم اهمیت بدید.
متاسفانه خیلی ها بیخیالن ...
@programming_codiing
497
هر چیزی که میتونید با npm install نصب کنید، لزوماً نباید نصبش کنید.
قبل از اضافه کردن یه پکیج به پروژه، چندتا سؤال ساده بپرسید:
واقعاً بهش نیاز دارم؟
خودم میتونم با چند خط کد حلش کنم؟
چقدر Maintenance داره؟
چقدر استفاده میشه؟
حجمش چقدره؟
یه Dependency جدید فقط چند خط کد به پروژه اضافه نمیکنه، یه تکه از مسئولیت پروژه رو هم بهتون اضافه میکنه.
می تونم بگم یه پروژه م به خاطر اینکه هر چی جلوم میومد نصب می کردم به پایان نرسید.
@programming_codiing
497
اگه همیشه موقع کدنویسی موسیقی گوش میدید، یه بار بدونش کدنویسی کنید.
نه برای Productivity.
برای اینکه ببینید واقعاً میتونید چند دقیقه بدون حواسپرتی روی یه مسئله تمرکز کنید یا نه.
خیلی وقتها مشکل ما کمبود زمان نیست،
تکهتکه شدن توجهمونه.
پ.ن: موسیقی گوش بدین، عشقه :))@programming_codiing
497
چرا Dark Mode همیشه جواب نیست؟
دارک مود فقط قشنگ کردن ظاهر نیست؛ مستقیم روی خوانایی، کنتراست و فشار به چشم تأثیر میذاره. سیاه کردنِ سادهی پسزمینه کافی نیست! و حالت دارک فقط به معنی این که white رو به black تبدیل کنیم نیست، رنگ متن، کنتراست دقیق و حتی نور محیط کاربر تعیینکنندهست. پس سؤال اصلی این نیست که: دارک مود قشنگتره؟ بلکه اینه: در این نوع سایتی که دارم آیا برای کاربر بهتره؟ توی این مقاله می تونه سوال هایی که ممکنه براتون پیش بیاد نوشته شده، می تونید یه سرچ ساده هم کنید و بقیه مقاله های مرتبط رو مطالعه کنيد.🔗 Link @programming_codiing
497
هرچی بیشتر برنامهنویسی میکنی، بیشتر میفهمی که ننوشتن کد هم یه مهارته.
اگه میتونی با تغییر ساختار پروژه، حذف یه وابستگی یا سادهتر کردن معماری، ۲۰۰ خط کد اضافه رو ننویسی، احتمالا تصمیم بهتری گرفتی.
کد کمتر همیشه بهتر نیست؛
ولی کد غیرضروری تقریباً همیشه بَده.
@programming_codiing
497
به عنوان یه برنامهنویس
بنده از بالا نبودن سطح زبان انگلیسیم رنج می برم، البته که می تونستم از اول کار خودمو تقویت کنم ولی الان دارم انجامش می دم.
پیشنهادم اینه که برید کلاس زبان، چون واقعا تاثیرش خوبه تو یادگیری ولی اگه شرایطش رو ندارید، دوره زبان احمدیان رو ببینید یا هم یوتیوب پر از دوره هست که یکم بگردید پیدا می کنید و وقتی شروع کردید استمرار داشته باشید تا نتیجه بگیرید.
هر چی زبانتون خوب باشه دستتون بالاتره تو برنامه نویسی، جدی بگیریدش برا خودتون.❤️
@programming_codiing
497
احتمالاً عبارت Design Pattern رو بارها شنیدید؛
مخصوصاً اگه با React، JavaScript یا توسعه نرمافزار کار کرده باشید.
اما واقعاً Design Pattern چیه؟
دیزاین پترن یعنی یک راهحلِ از قبل شناختهشده برای یک مسئلهی رایج در طراحی نرمافزارِ. قرار نیست دیزاین پترن یک تکه کد آماده باشه که کپی کنیم و داخل پروژه بذاریم، در واقع، یک الگوی فکری و طراحیه که بهمون میگه برای حل یک مشکل تکراری، معمولاً چه ساختاری میتونه مناسب باشه. مثلاً فرض کنید در چند جای پروژه به یک منطق مشترک نیاز دارید. به جای اینکه هر بار همون منطق رو دوباره بنویسید، میتونید از یک الگوی مناسب استفاده کنید تا کد: • قابل نگهداریتر باشه • ساختار بهتری داشته باشه • راحتتر توسعه پیدا کنه • وابستگیهای غیرضروری کمتر بشن دیزاین پترن ها معمولاً در چند دسته معروف قرار میگیرن که می تونید برای هر کدوم تحقیقی کنید. نکته مهم اینه که استفاده ازش به معنی هر جا تونستی Pattern استفاده کن نیست، در واقع اگه یک Pattern مشکل پروژه رو حل نکنه، فقط باعث پیچیدهتر شدن کد میشه، این در واقع همهجا صدق می کنه که اگر یه چیزی برای حل پيچيدگی پروژه بزرگی هست می تونه عامل خود پیچیدگی پروژه کوچیک هم باشه. پس Design Pattern بیشتر از اینکه یک سری کد آماده باشه، راهی برای فکر کردن و طراحی بهتر نرمافزاره. @programming_codiing
497
تکنولوژیها ادعا هستن؛ پروژهها مدرک.
چیزیه که توی برسی رزومهتون بیشتر خواهید دید.
@programming_codiing
497
نکست جیاس و پروژههای فولاستکی؟
اصلاً پروژه Full-Stack ای یعنی چی و Next.js چه کمکی به ساخت این پروژهها میکنه؟
وقتی میگیم یک پروژه Full-Stack هست، یعنی فقط ظاهر سایت رو نمیسازیم؛ بلکه بخشهایی که پشت سایت اتفاق میافتن رو هم خودمون پیادهسازی میکنیم. مثلاً یک فروشگاه اینترنتی رو در نظر بگیر: صفحه محصولات، طراحی سایت و دکمهها یک بخش ماجراست؛ اما ثبتنام کاربر، ورود، ذخیره اطلاعات، سبد خرید و ثبت سفارش هم باید جایی مدیریت بشن. اینجاست که مفهوم Full-Stack خودش رو نشون میده. نکست جی اس یکی از گزینههای محبوب برای ساخت چنین پروژههاییه؛ چون میتونی باهاش بخشهای مختلف یک پروژه رو در کنار هم داشته باشی و لازم نباشه برای هر قسمت حتماً یک پروژه جدا بسازی.مزیتش هم اینه که:
• توسعه پروژه راحتتر و یکپارچهتر میشه • سرعت ساخت پروژه بالاتر میره • میتونی پروژههای واقعیتر و کاملتری بسازی • برای سایتهای بزرگ و کوچک قابل استفادهست • امکانات خوبی برای سرعت و سئو دارهدر واقع اگر هدفت فقط ساخت چند صفحه ساده نیست و میخوای پروژههایی بسازی که واقعاً کار کنن، یادگیری Next.js در کنار مفاهیم Full-Stack میتونه انتخاب خیلی خوبی باشه.
497
ساخت یک NPM Package شاید با یک npm publish ساده به نظر بیاد؛ ولی اگر بخوای Package حرفهای منتشر کنی، داستان خیلی بزرگتره.
این راهنما مراحل ساخت یک NPM Package رو بررسی میکنه، مقاله خوبیه بنظرم، برای باز کردن ذهنتون درموردش.
🔗 Link
@programming_codiing
497
بعضیا سه ساله برنامهنویسی میکنن.
بعضیا یک ساله برنامهنویسی میکنن و سه بار همون یک سال رو تکرار کردن.
تفاوتشون در تعداد سالها نیست؛
تفاوت در چیزیه که توی اون سالها تجربه کردن.
تقویم، تجربه و مهارت حساب نمیشه.
پروژههایی که ساختی، ارورهایی که حل کردی و چیزهایی که یاد گرفتی، تجربهان.
@programming_codiing
497
میدونستید توی VS Code میتونید ساختار کامل فایل رو یهجا ببینید؟
از بخش Outline داخل Explorer میتونید لیست
functionها، classها، متغیرها، کامپوننتها و بقیه بخشهای فایلی که باز کردید رو ببینید.
برای فایلهای بزرگ خیلی کاربردیه و سریعتر میفهمید هر چیزی کجاست، چه فانکشن هایی دارید و..
@programming_codiing497
یه ریپوی خفن برای وقتی که از والپیپر فعلیت خسته شدی.
کلی والپیپر با سبکهای مختلف مثل Digital، Minimal، Anime، Pixel، Nature و... که می تونه برا دسکتاپتون یه جونی بده.
🔗 Repo
@programming_codiing
497
هیچکدوم بهصورت قطعی؛ این تصمیم به بودجه و خواستهی کارفرما بستگی داره.
اگه کیفیت براش مهمتره، بهش میگیم پروژه چند روز بیشتر زمان میبره و باهاش هماهنگ میکنیم.
اگه سرعت تحویل براش مهمتره، گزینه دوم رو انتخاب میکنیم؛ به شرطی که کیفیت قابلقبولی داشته باشه.
در نهایت باید بین زمان، کیفیت، بودجه و خواستهی کارفرما تصمیم گرفت.
@programming_codiing
497
می شه گفت که همیشه نباید مسائل رو همونطور که در نگاه اول به نظر میرسن ببینیم؛ بهتره عمیقتر نگاه کنیم و دید متفاوتری نسبت به دیدی که مسئله می خواد داشته باشیم.
جوابش رو می فرستم 11
#موقت
497
و می شه گفت که همیشه نباید مسائل رو همونطور که در نگاه اول به نظر میرسن ببینیم؛ بهتره عمیقتر نگاه کنیم و دید متفاوتری نسبت به دیدی که مسئله می خواد داشته باشیم.
جوابش رو می فرستم 11
#موقت
497
سوال :
دو نفر برای یک پروژه پیشنهاد دادن:
نفر اول: کد خیلی تمیز، ولی ۳ روز زمان
نفر دوم: کد متوسط، ولی ۶ ساعت زمان
ددلاین فرداست.
کدوم رو انتخاب میکنی؟
توی دایرکت بهم بگید
@programming_codiing
