Node Unique – Telegram
Node Unique
115 subscribers
24 photos
3 videos
4 files
47 links
سلام به برنامه نویس های جاوااسکریپت (nodejs)
اینجا درباره Back-End تجربیات خودم رو مینویسم و به اشتراک میزارم ;)
و همچنین مفاهیم soft-skill که مربوط به Stack خاصی نمیشه هم پوشش خواهم داد.

Owner:
@iDvMH
Download Telegram
• دنبال آموزش Design Patterns بودین؟ 😃

• تو این ریپو اومده دیزاین پترن هارو به زبون آدمی زاد توضیح داده و برای هر زبان برنامه نویسی مثال هایی هم زده که عالیه 🔥

آدرس ریپو
https://github.com/3lf/design-patterns-for-humans


#تجربه #دیزاین_پترن #معرفی_منبع #design_patterns

@Code_Unique
بهترین پلتفرم ها برای یادگیری  و تقویت SQL

- Dataford =⟩ https://lnkd.in/gtqdw864
- LeetCode =⟩ https://lnkd.in/gkCpv7NA
- Namaste SQL =⟩ https://lnkd.in/gQTuepVf
- HackerRank =⟩ https://lnkd.in/gnFS4frz
- SQLZoo =⟩ https://sqlzoo.net/
- Mode Analytics =⟩ https://lnkd.in/gRPrQrf5
- SQL Bolt =⟩ https://sqlbolt.com/
- GeeksforGeeks =⟩ https://lnkd.in/ggYbizNB
- LearnSQL =⟩ https://www.learnsql.com/
- LearnMode =⟩ https://lnkd.in/gQYCkwS2
- Strata Scratch =⟩ https://lnkd.in/gYtZQY53
- DataLemur =⟩ https://datalemur.com/
- SQL Fiddle =⟩ http://sqlfiddle.com/
- DB-Fiddle =⟩ https://www.db-fiddle.com/
- SQL Exercises =⟩ https://lnkd.in/d89TewuQ
- SQL Practice Set =⟩ https://lnkd.in/ddn7hfeu
- DataCamp =⟩ https://lnkd.in/dUyvbSwC
- Kaggle =⟩ https://lnkd.in/dn83kbwv
- Mode SQL Tutorial =⟩ https://lnkd.in/d53iPD-U
- SQL Murder Mystery =⟩ https://lnkd.in/dtVqDV-g

#تجربه #معرفی_منبع #معرفی_ابزار #sql #mysql #postgresql

@Code_Unique
• یه ضرب‌المثلی هست میگه اگه با 3 تا خلافکار بگردی نفر بعدی خودتی !

• حتما باید دایره افرادمون رو با آدم هایی پر کنیم که علمی به دانشمون اضافه میکنن.

#فکت

@Code_Unique
~> MySQL VS MariaDB

• ‏MySQL و MariaDB دو RDBMS(سیستم مدیریت پایگاه داده رابطه‌ای) هستن که هر دو از SQL استفاده می‌کنن و از معماری کلاینت-سرور پشتیبانی می‌کنن. این دو پروژه به‌طور نزدیکی به هم مرتبط هستن، اما تفاوت‌های کلیدی‌ای دارن که بر انتخاب یکی از اون‌ها تأثیر می‌ذاره.

• ‏MySQL در ابتدا توسط شرکتی به نام MySQL AB توسعه داده شد و بعدها توسط شرکت Sun Microsystems خریداری شد. بعد از اینکه Oracle در سال 2010 Sun رو خرید، توسعه MySQL تحت کنترل Oracle قرار گرفت. همین باعث شد که بخشی از کامیونیتیِ دولوپر‌ها نگران آیندهٔ MySQL بشن و به فکر ایجاد یک Fork از MySQL بیوفتن. اگه Git کار کرده باشین میدونین Fork به طور ساده به معنی ایجاد یک کپی از کدهای موجود و توسعه مستقل اون‌هاست. نتیجه‌ی این کار شد MariaDB.

• ‏MariaDB توسط یکی از بنیان‌گذاران اصلی MySQL یعنی Michael "Monty" Widenius راه‌اندازی شد. اسم MariaDB هم از نام دختر وایدنیوس، Maria، گرفته شده، درست همون‌طور که اسم MySQL از نام دختر دیگه‌اش، My، گرفته شده. 😃

از نظر فنی، MariaDB و MySQL در نسخه‌های ابتدایی خیلی شبیه به هم بودن و حتی MariaDB طوری طراحی شده بود که جایگزین Drop-in کاملی برای MySQL باشه. این یعنی شما می‌تونستی MariaDB رو بدون نیاز به تغییرات اساسی در کانفیگ یا کد اپلیکیشن، جایگزین MySQL کنی. اما به‌مرور زمان، تفاوت‌های فنی بیشتری بین این دو به وجود اومده. برای مثال، MariaDB موتورهای ذخیره‌سازی جدیدی مثل Aria و ColumnStore رو اضافه کرده، در حالی که MySQL همچنان به توسعه موتور InnoDB متمرکز هستش.

• یکی دیگه از تفاوت‌های کلیدی بین MySQL و MariaDB توی مدل توسعه اون‌هاست. MySQL به عنوان یک پروژه open source باقی مونده، اما تحت کنترل Oracle هستش که گاهی ممکنه تصمیم‌های این شرکت با منافع جامعهٔ open source هماهنگ نباشه. در مقابل، MariaDB به‌عنوان یک پروژه کاملاً open source اداره می‌شه و تصمیمات اون توسط یک بنیاد مستقل (MariaDB Foundation) گرفته می‌شه که تضمین می‌کنه توسعه‌ی MariaDB همیشه به‌صورت آزاد و شفاف پیش بره.

• در نتیجه، وقتی بحث انتخاب بین MySQL و MariaDB پیش میاد، انتخاب شما بستگی به نیازهای خاص پروژه و میزان اهمیتی که به open source بودنِ کامل می‌دین، داره. اگر دنبال پایداری و یکپارچگی با ابزارها و سرویس‌های Oracle هستین، شاید MySQL گزینه بهتری باشه. اما اگه برای شما مهمه که از یک پروژه کاملاً Open Source استفاده کنین که با سرعت بیشتری به‌روزرسانی می‌شه و ویژگی‌های جدیدتری ارائه می‌ده، MariaDB می‌تونه انتخاب مناسبی باشه.

#mysql #mariadb #sql

@Code_Unique
• امیدوارم هیچوقت این صحنه رو تجربه نکنید که به چشمای مادرتون نگاه کنید و با خودتون بگید این طور زندگی کردن حقش نبود.
• روز مادرو به تمامی مادرایی که هستن مبارک ❤️ و اوناییم که تو این دنیا نیستن روحشون شاد. 💔

#متفرقه #دلی

~> @Code_Unique
میخوای جاوااسکریپتتو قوی تر از فولاد کنی؟

• تو این ریپو های گیت هاب هر کدوم 100 سوال مختلف جاوا اسکریپت، همراه با پاسخ دارن که بهتون پیشنهاد میکنم حتما یه سر بزنید.

~> https://github.com/sudheerj

~> https://github.com/ganqqwerty

~> https://github.com/lydiahallie

#معرفی_منبع #js

~> @Code_Unique
• اگه میخواهین بدونین زبان انگلیسیتون در چه سطحی هست همین که 20days رو بیست days خوندید معلوم میشه سطح زبانتون در چه مرحله ایی هست ;)

~> GN 🌃

~> @Code_Unique
~> از Redis کجاها استفاده کنیم؟ کجاها استفاده نکنیم؟

Redis یکی از سریع‌ترین و محبوب‌ترین ابزارهای in-memory data store تو دنیاست. این ابزار هم به عنوان database، هم cache و هم message broker استفاده می‌شه . اما این که هرجایی ازش استفاده کنیم، اصلا کار درستی نیست. تو این پست می‌خوایم بررسی کنیم کجا Redis انتخاب خوبیه و کجا بهتره سراغش نریم.

~> کجاها از Redis استفاده کنیم؟

Caching
وقتی یه داده رو مدام از دیتابیس اصلی می‌خونی و نیاز به سرعت بالا داری، Redis می‌تونه به عنوان یه کش عالی عمل کنه. مثلا:
کش کردن نتایج کوئری‌های سنگین
ذخیره صفحات رندر شده
ذخیره session data برای کاربرها

Real-Time Analytics
اگه می‌خوای یه داشبورد real-time بسازی که اطلاعات رو لحظه‌ای نشون بده، Redis با ساختارهای داده سریعش (مثل sorted sets) می‌تونه خیلی کمک‌کننده باشه.

Rate Limiting
وقتی می‌خوای تعداد درخواست‌های کاربرها رو محدود کنی، مثلا برای جلوگیری از حملات DDoS یا اسپم، Redis یه گزینه عالیه.

Pub/Sub Systems
برای ارتباط بین سرویس‌ها یا ارسال پیام در سیستم‌های real-time مثل چت‌ها، Redis با قابلیت publish/subscribe خیلی خوب عمل می‌کنه.

Leaderboard ها و سیستم‌های امتیازدهی
ساختار داده sorted sets برای ساختن رتبه‌بندی‌های real-time (مثل امتیاز بازیکن‌ها) ایده‌آله.

~> کجاها از Redis استفاده نکنیم؟

ذخیره‌سازی داده‌های پایدار

• Redis یه in-memory database هست. یعنی داده‌ها رو تو حافظه ذخیره می‌کنه، نه روی دیسک. اگه برق بره یا سیستم ری‌استارت بشه، داده‌ها ممکنه از دست برن. برای داده‌هایی که نمی‌خوای از دست برن، از دیتابیس‌هایی SQL مثل PostgreSQL یا Mysql یا ... استفاده کن.

حجم‌های بالا
اگه حجم داده‌هات خیلی زیاده و رم کافی نداری، Redis انتخاب خوبی نیست. مثلا ذخیره‌سازی داده‌های سنگین مثل فایل‌ها یا لاگ‌ها.

آنالیزهای پیچیده
اگه نیاز به کوئری‌های پیچیده داری (مثل join یا aggregation)، بهتره از دیتابیس‌های relation-based مثل MySQL یا PostgreSQL استفاده کنی.

~> اشتباهات رایج در استفاده از Redis

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

تنظیم نکردن TTL
اگه از Redis به عنوان کش استفاده می‌کنی ولی TTL (زمان انقضای داده‌ها) رو تنظیم نکنی، ممکنه حافظه پر بشه و سیستم کرش کنه.

نادیده گرفتن محدودیت رم

Redis همه داده‌ها رو تو رم ذخیره می‌کنه. اگه حجم داده‌هات از ظرفیت رم بیشتر بشه، سیستم به مشکل می‌خوره.

مدیریت نکردن replication
برای سیستم‌های حساس، باید replication رو تنظیم کنی تا در صورت خرابی سرور اصلی، داده‌ها از بین نرن.

عدم مانیتورینگ
خیلی‌ها Redis رو راه می‌ندازن ولی هیچ وقت مانیتور نمی‌کنن که چقدر حافظه مصرف می‌شه یا چقدر latency داره. این اشتباه می‌تونه باعث مشکلات جدی بشه.

#redis

~> @Code_Unique
• سورس کامل و عالی که خیلی مطالب رو راحت کرده برای درک Design Pattern ها به زبان انگلیسی.

• از دست ندید چون الان تقریبا یکی از واجبات شرکت ها شده.

~> https://sourcemaking.com/design_patterns


#تجربه #design_patterns #معرفی_منبع #مقاله #دیزاین_پترن

~> @Code_Unique
~> 20 دلیل پرتکرار که باعث میشه استارتاپ ها شکست بخورن!!

~> Note:
حتما سعی کنین حین یادگیریتون در برنامه نویسی ایده های استارتاپی خودتون رو رویا پردازی کنین و مهارت هاتون، شبکه سازی، گسترش تیمتون رو ارتقا بدین نسبت به اون ایده که دارین.

• مثلا خودم قصد راه اندازی دیتاسنتر در آینده دارم😶

#تجربه #متفرقه

~> @Code_Unique
~> این سایت آمار فعالیتتون داخل GitHub در سال 2024 رو میده میتونین یه نگاه بندازین 😃

~> https://git-wrapped.com


#معرفی_منبع #معرفی_ابزار #git #github

~> @Code_Unique
~> چیت شین درباره Http Headers

• داخل این چیت شیت اومده درباره Http Headers تا سطح پیشرفته و خیلی حرفه ایی پیش رفته حتما به سایتش سر بزنین.

~> https://cheatsheetseries.owasp.org/cheatsheets/HTTP_Headers_Cheat_Sheet.html


#مقاله #معرفی_منبع

~> @Code_Unique
~> تو این پست میخوام یه توضیحی درباره این عکس بدم که درباره camelCase گفته و خیلیا اشتباهی انجام میدن و یا باخبر نیستن!


• اگه توی camelCase به کلمه های مخفف رسیدین مثلا ID یا JSON و .. اونارو کامل بزرگ بنویسین مثلا :
const productID = UUID()
const ticketID = UUID()
const userID = UUID()

نکته: منبع خاصی برای این موضوع برنخوردم که اشاره کرده باشه اما سایت هایی مثل PHP و سایت MDN که مستندات JS توشه به این صورت نوشته شده برخی از اسم توابع رو :

~> JavaScript : JSON.rawJSON()
~> PHP : DOMDocument::loadHTML()


#تجربه #ترفند #کلین_کد #cleancode

~> @Code_Unique
🌟 پستی متفاوت 🌟

~> از این نوع دسته برنامه نویسا نباشیم برای سرچ باگ هامون !!

~> خیلیارو میبینم تو گروه های مختلف یسری سوالاتی میپرسن که اصلا نمیفهمی سوالش درباره چیه، انقدر نامفهوم بدون جزئیات میپرسن.

~> یه چند نمونه از این سوالات سطحی :

• هرکاری میکنم کار نمیکنه
• مشکل کدم کجاست
• فلان تکه کدو از فلان ویدیو یا ریپو گیت برداشتم اما رو سیستم کار نمیکنه
• مثلا برمیداره کل ارورشو تو پیام میفرسته :/
• برمیداره یه عکسی میفرسته انقدر تاره معلوم نیست چی نوشته
• دوستان من چرا ری اکت رو نصب میکنم موقع npm start مرورگر کلا صفحه سفید میاره :/

~> اما حالا چطور سوال با سطح بالا و با جزئیات بپرسیم؟

~> برای پرسیدن سوال این مراحلو حتما پیش بگیرین مطمئنن نتیجه خوبی میگیرین.

1 ⟩ حتما حتما قبل پرسیدن سوالمون اول خودمون کلنجار بریم رو کد بعد با سرچ سعی در حل اون باشیم، باور کنین یه برنامه نویس قدرت سرچشه که باعث میشه یه سرو گردن از هم سطح های خودش بالاتر باشه اگه انگلیسیتون هم خوب نیست اصلا اشکال نداره از مترجم گوگل استفاده کنین درسته کارتون سخت میشه اینجوری تجربه هم میشه براتون اون مشکلی که داشتین.

2 ⟩ از سایت استک اورفلو استفاده کنین، یا از چت جی بی تی ( خودم به شخصه استفاده میکنم)، هوش مصنوعی رو به عنوان دستیار ببینین اما اصلا به دید این نگاه نکنین لقمه اماده بهتون تحویل بده! از یوتیوب استفاده کنین.

3 ⟩ همیشه از log استفاده کنین، کد هاتون خط به خط لاگ بگیرین ببینین قبل اضافه کردن کدوم مشکل کدتون کار میکرد؟ حالا که فهمیدین کدوم کدتون باگ داره دنبال پیدا کردن نحوه برطرف کردن اون باگ باشین از طریق گزینه ۲ که گفتم.

4 ⟩ مرحله اخر باگتون رو با سوال واضح و خوانا تو‌ گروه های مربوط به استکتون بپرسید این مورد خودش به چند بخش تقسیم میشه :

4.1 ⟩ اگه اروری دارین عکس واضح از کد بگیرین یا با extension snapshot از کدتون عکس بگیرین و بفرستین.

4.2 ⟩ سوال رو واضح بپرسیم اینجوری نباشه عکس کدو بفرستیم و بگیم کسی میدونه مشکل کدم کجاست؟ مثلا من بخوام سوال کنم از کسی به این صورت میپرسم " سلام رفقا من داخل بخش ایجاد کاربر هنگامی که میخوام اطلاعات کاربر که از postman ارسال میکنم رو داخل دیتابیس mongodb ذخیره کنم کد هام درست کار نمیکنه. به این صورت دیتا های ارسالی از postman ارسال میشه و داخل ترمینال log میگیرم اما با رفرش دیتابیس دیتا جدید اضافه نمیشه. حس میکنم این قسمت کد من ایراد داره که عکسشو براتون فرستادم(همراه با ارسال عکس واضح از کد و بخشی که احساس میکنم ایراد از اینجاست)"

~> Note:
• یجا خوندم میگفت برنامه نویس هارو به نحوه حل مشکلاتشون و نحوه سوال پرسیدنشون دسته بندی کنین.

پ.ن: مهارت های جانبی هم بجز سافت اسکیل وجود دارن که فرد رو نسبت به افراد هم شغل خودش یه سرو گردن جلو میندازه سعی میکنم این نوع مهارت ها که از دید کمتر افرادی به چشم مهم بودن میاد برای به اشتراک گذاشتن رو پوشش بدم در حد توانم. 🌟

~> اگه موردی بود که احساس میکنین باید اضافه کنم خوش حال میشم باهام در جریان بزارین 👇

#تجربه

~> @Code_Unique
~> بررسی انواع http code ها

1 200 OK:
• درخواست موفقیت آمیز بوده و سرور پاسخ مورد نظر را برگردانده است.

2 201 Created:
• درخواست موفقیت آمیز بوده و یک منبع جدید به عنوان نتیجه ایجاد شده است.

3 204 No Content:
• درخواست موفقیت آمیز بوده ولی پاسخی برای برگشت دادن وجود ندارد.
   
4 301 Moved Permanently:
• منبع مورد نظر به طور دائم به یک URL جدید منتقل شده است.

5 302 Found:
• منبع مورد نظر به طور موقت به یک URL جدید منتقل شده است.

6 304 Not Modified:
• منبع مورد نظر تغییر نکرده و نیازی به ارسال مجدد آن نیست.

7 400 Bad Request:
• درخواست نامعتبر است و سرور قادر به فهمیدن آن نیست.

8 401 Unauthorized:
• احراز هویت برای دسترسی به منبع مورد نظر لازم است.

9 403 Forbidden:
• سرور درخواست را فهمیده ولی اجازه دسترسی را رد کرده است.

10 404 Not Found:
• منبع مورد نظر یافت نشد.

11 405 Method Not Allowed:
• متد مورد نظر در منبع مورد نظر پشتیبانی نمی‌شود.

12 406 Not Acceptable:
• منبع مورد نظر قادر به تولید پاسخی مطابق با پذیرش هدرهای درخواست نیست.

13 408 Request Timeout:
• سرور منتظر بودن برای درخواست تمام شد.

14 429 Too Many Requests:
• کاربر بیش از حد مجاز درخواست ارسال کرده است.

15 500 Internal Server Error:
• سرور با خطای داخلی مواجه شده و قادر به پردازش درخواست نیست.

16 501 Not Implemented:
• سرور قادر به پیاده سازی درخواست نیست.

17 502 Bad Gateway:
• سرور به عنوان گیتویی عمل کرده و پاسخ نامعتبری از سرور بالادستی دریافت کرده است.

18 503 Service Unavailable:
• سرور موقتا قادر به پردازش درخواست نیست.

19 504 Gateway Timeout:
• سرور به عنوان گیتویی عمل کرده و منتظر بودن برای پاسخ از سرور بالادستی تمام شده است.

20 ⟩ 505 HTTP Version Not Supported:
• سرور نسخه HTTP مورد نظر در درخواست را پشتیبانی نمی‌کند.


~> این سایتم اومده انواع http code هارو به شکل گربه نشون داده که خیلی جالب و باحال بود 😅

~> https://http.cat/


#کاربردی #معرفی_منبع #کدخوانا

~> @Code_Unique
~> نوبتی هم باشه، نوبت معرفی کتابی که هر برنامه‌نویس باید بخونه!!

~> کتاب Clean Code اثر Robert C. Martin (عمو باب)

• خیلی از ما فکر می‌کنیم که تفاوت بین یک برنامه‌نویس جونیور و سنیور فقط به مهارت‌های (soft skills) برمی‌گرده. در حالی که مهارت‌های نرم و به خصوص نحوه نوشتن کد، نقش خیلی مهم‌تری داره.

• کتاب Clean Code کتابی هست که به شما یاد میده چطور کدی بنویسید که خوانا، تمیز و اصولی باشه و با یک نگاه به اسم Function یا variable یا Class و ... متوجه بشیم اون قسمت کد چیکار میکنه. این کتاب پر از مثال‌های عملی و تکنیک‌های کاربردیه که به شما کمک می‌کنه تا کدهای بهتری بنویسید و در نتیجه پروژه‌هاتون رو با کیفیت‌تر لانچ کنین و برای refactoring کابوس شبانه هم نداشته باشین 😶

~> یه مثال عملی همراه با توضیح 👇

• فرض کنیم میخواهیم آرایه ایی از کاربران داشته باشیم حال یه برنامه نویس که کتاب کلین کد رو نخونده میاد موقع اسم گذاری اینجوری پیش میره:

const userArr = [ { id:1, name: "code_unique" } ]

const userArray = [ { id:1, name: "code_unique" } ]

const userList = [ { id:1, name: "code_unique" } ]

const userData = [ { id:1, name: "code_unique" } ]

const userInfo = [ { id:1, name: "code_unique" } ]

• اما برنامه نویسی که کتاب کلین کد خونده میاد این شکلی اسم گذاری هاشو پیش میبره:

const users = [ { id:1, name: "code_unique" } ]

• حرف s جمع موقع اسم گذاری این معنیو میده ما چندین دیتا قراره اضافه ، دریافت و .. انجام بدیم پس نیازی نیست با کلمات Data , list و .. بیایم جمع ببندیم و باعث کثیف شدن کد بشیم.

~> این ریپو گیت هاب اومده کتاب کلین کد رو ترجمه کرده اما نه بصورت کامل ولی حداکثر قسمت های مهم رو پوشش داده

~> https://github.com/mojtaba-afraz/clean-code-persian/tree/master

~> این کتاب منبع های انگلیسی زیادی هم داره بخصوص یوتیوب اما اگه انگلیسیتون ضعیفه و دنبال کورس فارسی این کتاب هستین این کورس رو پیشنهاد میکنم بهتون.

~> https://sabzlearn.ir/course/clean-code-for-js/



~> اگه موافق باشین ری اکشن 👍 بزنین تا هر هفته بخش هایی از این کتاب رو اینجا پوشش بدم بلکه این مهارت نقش کلیدی ایفا کنه

#کاربردی #تجربه #معرفی_منبع #کدخوانا #معرفی_کتاب #کلین_کد #cleancode

~> @Code_Unique
Node Unique
~> نوبتی هم باشه، نوبت معرفی کتابی که هر برنامه‌نویس باید بخونه!! ~> کتاب Clean Code اثر Robert C. Martin (عمو باب) • خیلی از ما فکر می‌کنیم که تفاوت بین یک برنامه‌نویس جونیور و سنیور فقط به مهارت‌های (soft skills) برمی‌گرده. در حالی که مهارت‌های نرم و به…
- چشم 🍺
• هر هفته نکات و best practice های این کتابو باهم همراه با مثال میخونیم 😎

• ممنون از اینکه همراهمون هستین اگه نکته ایی سخنی حدیثی دارین خوش حال میشم داخل کامنت ها باهام درجریان بزارین ❤️

☃️🔔 GN 🥂 🎁

~> @Code_Unique
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔈 یه نمونه محاسبات برای تعیین قیمت پروژه های فریلنسری 👨‍💻

1️⃣اولین قدم اینکه میانگین حقوق تمام وقت تون رو پیدا کنید. حالا این حقوق رو تقسیم بر 170 ساعت بکن تا قیمت ساعت کارت محاسبه بشه.

2️⃣ پروژه رو به تسک های مشخص تقسیم کن. به هر تسک زمان حدودی بده. جمع زمان همه تسک ها هرچقدر شد، ضربدر 1.5 تا 1.6 بکن تا بدترین حالت زمان کل پروژه در بیاد.

3️⃣حالا مبلغ ساعت کارت رو ضربدر جمع کل زمان پروژه بکن. عدد به دست آمده رو به اضافه 30% بکن که هزینه های شخصی خودت (هزینه اینترنت، استهلاک لپ تاپ و…) ناشی از انجام پروژه هم لحاظ بشه.

برنامه نویس وب | بک اند 👩‍💻 | جاوااسکریپت 👩‍💻
💡مثال
• اگه ماهی 20 میلیون حقوق میگرید 💰
پس ساعت کار شما میشه :
20,000,000 / 170= 117

• اگر زمان اولیه کل پروژه : 100 ساعت بشه.
بدترین حالت زمانی میشه: 100* 1.6 = 160 ساعت

• مبلغ پروژه نهایی پروژه = 160* 117 *1.3 = 24 میلیون. 🤑

#تجربه #کاربردی #ترفند #قیمت_گذاری

🔤 @Code_Unique
Please open Telegram to view this post
VIEW IN TELEGRAM
~> دنبال این بودین ربات تلگرامی با جاوااسکریپت 👩‍💻 بودین اما نمیدونستین با چه کتابخانه هایی انجام بدین؟ 👩‍💻

• تو این پست، به معرفی 1 کتابخانه محبوب برای ربات‌نویسی تلگرام با جاوا اسکریپت، یعنی node-telegram-bot-api و یک فریم ورک محبوب تر یعنی Telegraf، خواهیم پرداخت و مقایسه‌ای بین آن‌ها انجام خواهیم داد. همچنین، مثال‌هایی ساده برای هرکدوم میزنیم.

~> کتابخانه node-telegram-bot-api 🤖

کتابخانه node-telegram-bot-api
از قدیمی‌ترین و پرکاربردترین کتابخانه‌ها برای تعامل با API تلگرام ✈️ از طریق Node.js 👩‍💻 است. این کتابخانه به شما امکان می‌دهد به راحتی به تمام قابلیت‌های API تلگرام دسترسی پیدا کنید و ربات‌های پیچیده‌ای را بسازید. 🚽

~> فریم ورک Telegraf 🤖

فریم ورک Telegraf یک فریمورک مدرن و محبوب برای ساخت ربات‌های تلگرام با Node.js 🤟 است. این فریمورک با استفاده از مفهوم میانه‌افزارها (middleware)، ساختار کد را ساده‌تر کرده و به شما امکان می‌دهد به سرعت ربات‌های خود را توسعه دهید. 👨‍💻

~> مثال ساده با node-telegram-bot-api ⬇️

const TelegramBot = require('node-telegram-bot-api');

const token = 'YOUR_BOT_TOKEN';

const bot = new TelegramBot(token, {polling: true});

bot.on('message', (msg) => {
    const chatId = msg.chat.id;
    bot.sendMessage(chatId, " Hello I'm From Unique Code Channel 😍"
});


~> مثال ساده با Telegraf ⬇️

const { Telegraf } = require('telegraf');

const bot = new Telegraf('YOUR_BOT_TOKEN');

bot.start((ctx) => ctx.reply('Welcome!'));

bot.on('message', (ctx) => ctx.reply("Hey Mate, how r u I'm from unique code Channel 😁"));

bot.launch();

~> مستندات رسمی کتابخانه node-telegram-bot-api 🤖

🐱 https://github.com/yagop/node-telegram-bot-api


~> مستندات رسمی فریم ورک Telegraf 🤖

🧾 https://telegraf.js.org

🐱 https://github.com/telegraf/telegraf

~> ⭕️  ابتدا از طریق @BotFather ربات خودتون بسازین و Tokenرو دریافت کنین سپس جای‌گذاری "Your_Bot_Token" کنین.

~> پ.ن: خودم استفاده از Telegraf برای توسعه ربات تلگرامی پیشنهاد میکنم اما اگه تازه کار هستین ابتدا با node-telegram-bot-api شروع کنین تا مفاهیم ربات نویسی تلگرام دستتون بیاد بعد با Telegraf شروع کنین.

#ربات_نویسی #معرفی_منبع #nodejs #js

🔤 @Code_Unique
Please open Telegram to view this post
VIEW IN TELEGRAM
🆕 ~> اگه تو درک معماریMVC (Model View Controller) مشکل داری و درکش برات سخته این عکس مخصوص توست! 🍰

#️⃣ #تجربه #کاربردی #معماری_نرم_افزار

🔤 @Code_Unique
Please open Telegram to view this post
VIEW IN TELEGRAM