</ MoDev >
رفتن به کانال در Telegram
🩵 جایی برای ساختن & یاد گرفتن & بهتر کدنویسی کردن :)) Direct : t.me/programming_codiing?direct Me : @mohammad_dev_2012
نمایش بیشترکشور مشخص نشده استدسته بندی مشخص نشده است
495
مشترکین
+224 ساعت
+117 روز
+3030 روز
آرشیو پست ها
495
«هر احمقی میتواند کدی بنویسد که کامپیوتر بفهمد؛ برنامهنویس خوب کدی مینویسد که انسانها هم بفهمند.»
— مارتین فاولر
@programming_codiing
495
اینجور سایت های باحال :
فقط ویدیو و عکس هست ولی با منطق درست برای نمایش، چیز سختی هم نیست.
البته سه بعدی هم می شه همچین چیزایی با Three.js زد.
خلاقیت؛
@programming_codiing
495
بعد جاوااسکریپت حتما تایپاسکریپت رو قدم بعدی تون قرار بدید.
چیز سختی نیست و زمان زیادی هم نمی خواد اصلا براش و دیگه می شه گفت خودشو جا کرده تو دل پروژه ها.
و براتون فقط یه ارتقا هست، نه یه زبان جدید اما نه ارتقای عادی.
@programming_codiing
495
امیدوارم که ورزش کنید، اگر نه که این حرکات رو انجام بدین خوبه.
بدنتون به شما در آینده نیاز داره و انجام دادن چند تا حرکت وقت شما رو پر نمی کنه.
برا چشمای زیباتون هم برنامه Blink eye رو نصب کنین تا هر مثلا ۳۰ دقیقه یبار ۳۰ ثانیه صفحه رو قفل کنه و نگاه نکنید.
سالم بودن هم جزو برنامهنویسیِ بیایید حساب کنیم.
@programming_codiing
495
یکی از مثالهایی که میتونم بزنم، همین چنل یوتیوبه.
اگه ویدیوهاش رو ببینید، واقعاً مفید و باکیفیته؛ ولی فعلاً کاری به ویدیوها نداریم، خودِ چنل رو بررسی کنیم.
متفاوت بودنش از بقیه، داشتن سبک خاص خودش و داشتن راه خودش برا جلو رفتن باعث شده قابل تشخیص باشه
برسی ش کنید می فهمین چقدر جالبه.
لازم نیست همیشه عجیبترین یا خفنترین باشیم، مهم اینه که هویت خودمون رو داشته باشیم، هویت خودمون هویتی هست که دوست داشتنیه و ایشون هم اگه ببینید چیزی که هست بهش باور داره. (باور داشتن فقط یکی از دلایل هست). کسایی که موفقن رو راز موفقیتشون رو مثل بقیه نگردید شما خودشون رو برسی کنید رفتارشون و.. .
@programming_codiing
495
اگه رزومهت پر از ایناست:
React Next.js Node.js MongoDB JS TS ...
ولی هیچکس نتونه بفهمه چه چیزی ساختی و چه مشکلی رو حل کردی،
احتمالاً داری تکنولوژیهات رو معرفی میکنی، نه خودت رو.
اینجا می تونه پروژه هایی که زدی، گیتهاب ت، لینکدین و.. خودشون رو نشون بده.
توی شبکه اجتماعی هم لینکدین و توییتر رو بیشتر جدی بگیرید و سعی کنید متفاوت باشید، کارتون درست باشه بقیه چیزا خودشو نشون می ده.
@programming_codiing
495
توی یه پروژه، نه کتابخونهها پروژه رو سنگین میکنن، نه انیمیشنها، نه کامپوننتهای زیاد.
چیزی که پروژه رو سنگین میکنه، استفادهی نادرست و غیربهینه از اونهاست.
بعد از اضافه کردن قابلیتها و کتابخونهها، همیشه یه مرحله برای بهینهسازی داشته باشین، کدهای اضافی، رندرهای غیرضروری و..
پس قرار نیست برای سبکتر شدن پروژه، از امکانات و ظاهر خوبش بگذریم و راه درستش، بهینهسازی درستشه.
البته که بعضی کتابخونه ها دیگه با توجه به کاری می کنن طبیعیه سنگین کنن پروژه رو.
@programming_codiing
495
دست از هدف هات بر ندار، حتی با دست خودتم نابود بشن.
یبار چنلمون رو دستم خورد پاک کردم بعد کلی زحمت، و دوباره شروعش کردم ؛)
چندبارم تو بقیه پیامرسان هایی که اسم پیامرسان گذاشتن روشون، چنلم پرید.
خلاصه تصورشم دیگه سخته، ولی بازم دلیل نمی شد برا ادامه دادن.
با این وضع کشورمون هم که مشکلاتی هست، بازم ادامه بده، بالاخره که مام روز روشن خواهیم داشت
مگه نه ؟
- نمی دونم شاید...
@programming_codiing
495
خودم برسی ش کردم ریپو جالب و کاربردیه و از جمله کامل که
حتما بهش سر بزنید.
6000 هم تقریبا کامیت ثبت شده براش.
@programming_codiing
495
ساختار کامل پروژهی Backend.
تو پست قبلی ساختار ابتدایی پیشنهادی برای پروژههای Frontend رو گفتیم؛ این بار بریم سراغ یک ساختار تمیز و قابل توسعه برای Backend.
وقتی پروژه بزرگ میشه، پوشههایی مثل controllers و services کمکم پر از فایلهای بیربط میشن. راهحل اینه هر Feature، یک ماژول مستقل داشته باشه و همهی کدهای مرتبط با خودش رو همونجا نگه داره.
backend/
├── src/
│ ├── modules/
│ │
│ ├── shared/
│ │ ├── middlewares/
│ │ ├── errors/
│ │ ├── utils/
│ │ ├── constants/
│ │ └── types/
│ │
│ ├── infrastructure/
│ │ ├── database/
│ │ │ ├── migrations/
│ │ │ └── seeds/
│ │ ├── cache/
│ │ ├── queue/
│ │ ├── storage/
│ │ └── mailer/
│ │
│ ├── config/
│ │
│ ├── routes.ts
│ ├── app.ts
│ └── server.ts
│
├── tests/
│ ├── integration/
│ └── e2e/
│
├── scripts/
modules/ هر Feature، ماژول خودش رو داره و کدهای مربوط به اون Feature کنار هم قرار میگیرن. shared/ کدهایی که بین چند ماژول استفاده میشن؛ مثل Middlewareها، Errorها، Utilityها و Typeهای مشترک. infrastructure/ مسئول ارتباط با زیرساختها و سرویسهای بیرونی؛ مثل Database، Cache، Queue، Storage و Mailer. config/ تنظیمات پروژه و متغیرهای "env" در یک نقطه مدیریت میشن. tests/ تستهای Integration و E2E از کد اصلی پروژه جدا نگه داشته میشن. در نهایت، هدف این ساختار سادهست: ماژول بیشتر، نه شلوغی بیشتر. @programming_codiing
495
قبل از کدنویسی، ساختار پروژه رو بچین.
اگه از همون اول ساختار پروژه مشخص باشه، با بزرگ شدن پروژه خیلی کمتر با فایلهای درهمریخته مواجه میشیم.
مثلاً برای پروژههای Next.js / React میتونیم از چنین ساختاری شروع کنیم:
project/ ├── app/ │ ├── _components/ │ ├── _constants/ │ ├── _hooks/ │ ├── _lib/ │ ├── _services/ │ ├── _types/ │ ├── _utils/ │ │ │ └── test/ │ ├── _components/ │ │ ├── TestHeader.tsx │ │ └── TestCard.tsx │ ├── _constants/ │ │ └── test.constants.ts │ ├── _hooks/ │ │ └── useTest.ts │ ├── _lib/ │ │ └── test.lib.ts │ ├── _services/ │ │ └── test.service.ts │ ├── _types/ │ │ └── test.types.ts │ ├── _utils/ │ │ └── test.utils.ts │ └── page.tsx │ ├── public/ │ ├── fonts/ │ └── images/ │این فقط یک الگوئه ابتدایی هست و می تونه برای خیلی از پروژه ها اوکی باشه ولی ساختار مناسب هر پروژه به اندازه و نوع پروژه بستگی داره. و برای اینکه هر بار این پوشهها رو دستی نسازید، از AI بخواید دستور ساختش رو براتون بنویسه:
«برای ساخت این ساختار پروژه، دستور ترمینالی مناسب ویندوز / لینوکس / مک رو بنویس.»@programming_codiing
495
با قابلیتهایی که الان یوتیوب داره، تقریباً میشه گفت دانشگاه بودنش ثابت شده. هر چیزی که فکرشو بکنی، از برنامهنویسی و طراحی و زبان گرفته تا ریاضی و پزشکی و کسبوکار، دورهی کامل و منظمش اونجا هست و خیلی وقتا هم استادهای اصلی دانشگاههای بزرگ دنیا خودشون درسهاشونو آپلود کردن. دورههای خارجی رو هم دیگه دلیلی نداره نگاه نکنیم، چون ترجمهی آنلاین یوتیوب کارمون رو راه میندازه. شاید ترجمهاش بینقص نباشه، مخصوصاً تو اصطلاحات تخصصی، ولی برای فهمیدن مطلب کاملاً کافیه و هر روز هم داره بهتر میشه.
از یه زاویهی متفاوتتر هم اگه نگاه کنیم، تولید محتوا هم همین مزیت رو داره. چون با همین ترجمه، هر کسی با هر زبانی میتونه محتوای شما رو دنبال کنه و مخاطبتون محدود به یه کشور و یه زبون نمیمونه. یعنی ممکنه کسی اون طرف دنیا ویدیوی شما رو ببینه و ازش استفاده کنه، بدون اینکه یه کلمه فارسی بلد باشه. البته به شرطی که محتوا خوب باشه و متفاوت باشه، چون وقتی مخاطب جهانی میشه، رقیب هم جهانی میشه و محتوای معمولی خیلی راحت بین میلیونها ویدیو گم میشه. و اینم خیلی مهم نیست چون همین ممبرای فارسی زبان رو دلشونو ببری اوکیه.
اگه هم تو تولید محتوا فقط کاری رو دنبال کنید که بقیه انجام میدن، در بهترین حالت همسطح بقیه میمونید. اگه کارتون خیلی خوب باشه، شاید از بقیه یه کم بالاتر برید. ولی اگه متفاوتتر تولید کنید، یعنی زاویهی خودتون، تجربهی خودتون و سبک خودتون رو داشته باشید، قطعاً نتیجهی خیلی بهتری میگیرید، چون تفاوت چیزیه که دیگران نمیتونن راحت ازتون کپی کنن و مردم به دنبال تفاوت هستند.
پ.ن : سعی می کنم این پست رو ادامه بدم. "تولید محتوا"
@programming_codiing
495
اگه یه JSON شلوغ دارید و میخواید سریع Format / Validate / Minifyش کنید:
🔗 https://jsonformatter.org
برای کارهای سریع خیلی راحتتر از اینه که بخواید هر بار یه ابزار نصب کنید.
@programming_codiing
495
آدمی که عاشق مسیر هست از آدمی که عاشق مقصد هست جلوتر خواهد رفت.
تقریبا درسته
چون ما توی شروعمون یا توی مسیرمون به این بر می خوریم که چرا به درآمد خب نمی رسیم و ناامیدمون می کنه
و بهترین کار اینه که با علاقه مسیر رو ادامه بدی و به درامد هم فکر کنی ولی نه به این صورت که چرا نمی تونم فلان رو کنم و..
بهتره از این نظر نگاه کنی که من با سطح خودم چی کار می تونم بکنم یا برای چیزی که می خوام به چه سطحی نیاز دارم، در واقع به فکر درآمد بودن از اول می تونه خلاقیتت رو هم استارتش رو بزنه ولی با دیدگاه درست که اگه فکر می کنی دیدگاه درستی نداری و بیشتر فکر کردن درباره درآمد استرس هم می ده بهتره فقط از مسیر لذت ببری و به چیز دیگه ای فکر نکنی.
و یه چیز دیگه ام که باید ول کنی مقایسه س. مقایسه نمی گم بد هست در واقع خیلی هم خوبه ولی مقایسه خودت با خود دیروزت، نه مقایسه خودت با یکی دیگه که شرایطش حالا هر چی هست.
@programming_codiing
495
یه سایت خیلی خفن برای یادگیری Git.
گیت رو به شکل Interactive یاد میگیرید و میتونید Branch، Merge، Rebase و بقیه دستورات رو با محیط گرافیکی تمرین کنید.
بهجای اینکه فقط دستورها رو حفظ کنید، نتیجهشون رو میبینید و می تونه براتون جالب باشه برای یادگیری.
🔗 Link
@programming_codiing
495
یه ابزار کاربردی برای وقتی که میخواید localhost رو موقتاً روی اینترنت در دسترس قرار بدید.
با
ngrok میتونید پروژهتون رو با یه Public URL در اختیار بقیه قرار بدید؛ بدون نیاز به Deploy یا تغییر تنظیمات پروژه.
برای تست Webhook هم می تونه کاربردی باشه.
🔗 https://ngrok.com
@programming_codiing495
به بک اند هم پا گذاشتم
می تونم بگم کارت از فرانت راحتره در اکثر پروژه ها
واقعا دوست داشتنیه و لذت بخشه، اما دیگه مثل فرانت اند خبری از رنگ و این چیزا نیست، کارت با منطق، ساختار و دادههاست.
و الان دغدغهی مهمم نبود پروژه های خوبی برا رزومه خودم هست، روزمه ای که پروژه هاش با تکنولوژی هاش بهم نمی خورن و این وافعا خوب نیست چون وقت نکردم خیلی پروژه بزنم.
رزومه و پورتفولیوم رو بعد از تکمیل، نشونتون می دم. 💙
