Code Module | کد ماژول
1.91K subscribers
357 photos
42 videos
6 files
355 links
Hello World 🌎

<> Earth is programmable if you code it </>

Group 👇🏻
@CodeModuleGap

Contact Us 👇🏻
@MrShahiin
@neoMahan
Download Telegram
👩‍💻 با کتابخانه Next Ui بیشتر آشنا بشید

در واقع Next UI یک کتابخانه UI (رابط کاربری) برای React هست که توسط تیم Next.js توسعه داده شده. این کتابخانه ابزارها و کامپوننت‌هایی رو فراهم میکنه که برای ساخت رابط کاربری‌های وب استفاده میشه.

مزایای استفاده از Next UI چیه؟

🟢طراحی زیبا و حرفه‌ای کامپوننت ها

🟢پشتیبانی از Responsive Design

🟢سرعت بالا و بهینه‌سازی برای SEO

🟢قابلیت کاستومایز سازی کامپوننت ها


معایب استفاده از Next UI چیه؟

🔴مستندات ناقص

🔴کمبود برخی از قابلیت‌ها نسبت به رقبا


🧐 کتابخانه Next Ui چه مزایایی نسبت به سایر رقبا داره؟

این کتابخانه نسبت به رقبای خودش، از سرعت و بهینه‌سازی SEO بهتری برخورداره، اما در عین حال مستندات و پشتیبانی کمتری نسبت به برخی از کتابخانه‌های دیگه داره.

استفاده از Next UI بستگی به نیازها و موارد استفاده خاص شما داره. در صورتی که به سرعت و بهینه‌سازی برای SEO نیاز دارید، Next UI گزینه خوبیه، اما در صورت نیاز به پشتیبانی و مستندات جامع‌تر، ممکنه گزینه‌های دیگه مناسب‌تر باشن👍

برای یادگیری این کتابخانه میتونید به داکیومنتش مراجعه کنید

Document 🌕

#ui #library #nextui
@CodeModule
Please open Telegram to view this post
VIEW IN TELEGRAM
8🔥4
اگه برای تمرین و کدنویسی دنبال ui خاصی میگردید، این طرح فیگما رو به هیچ وجه از دست ندید 💀

🔵 Link

#figma
@CodeModule
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥113
ارگونومی چیه دیگه🗿😂

#fun
@CodeModule
Please open Telegram to view this post
VIEW IN TELEGRAM
😁15
پروتکل (RESP) چیه؟ 🤔

سریال سازی پروتکل یا REdis Serialization Protocol یا RESP، یک پروتکل ساده و در عین حال قدرتمند برای ارتباط با کلاینت و سرور ردیس هست.

یکی از مزیت های قابل توجه این پروتکل، پشتیبانی اون از انواع داده ها هست. همچنین همیشه اولین کاراکتر پروتوکل، نوع داده اونه و هر کدوم از داده ها، کاراکتر خاص خودشونو دارن تا برای ردیس قابل فهم باشه، مثال ⬇️

- + : رشته های ساده
- - : خطا ها
- : : عدد صحیح
- $ : رشته های زیاد (برای ذخیره داده های باینری)
- * : آرایه ها

اما وقتی اولین‌ بایت نوع داده هست، پس در انتهای اون چه کاراکتری قرار میگیره؟

در انتهایی خط RESP برای جداسازی دستورات از <LF> و <CR> استفاده میشه، که به این صورت ترجمه میشن :

‌- ترجمه <CR> : با کاراکتر "r\" نشون داده میشه. این کارکتر بدون این که به خط بعدی بره، به ابتدای خط میره.
- ترجمه <LF> : با کاراکتر "n\" نشون داده میشه و به خط بعدی میره.

به صورت کلی RESP توسط کتابخونه های خود redis مدیریت میشه.

یک نمونه از RESP به این صورته:
*2\r\n$3\r\nSET\r\n$5\r\nmykey\r\n$7\r\nmyvalue\r\n


حالا بیاید کد بالا رو ترجمه کنیم!

نکته : تمام کارکتر های "r\n\" به اول خط بعدی میره.

- 2*: آرایه ای رو با دو عنصر (فرمان(command) و آرگومان(argument)) نشون میده.

- $3: طول اولین رشته زیاد رو نشون میده (فرمان)

- فرمان SET : یک مقدار رو به صورت "key-value" تنظیم میکنه

- $5: طوله کلید رو نشون میده (key)

- رشته mykey: کلیدیه که باید مقداری درونش تنظیم بشه.

- $7: طوله مقدار رو نشون میده (value)

- رشته myvalue: مقداری که در کلید ما ست میشه.

- در نهایت کاراکتر های \r\n: به درخواست پایان میده.

تموم این دستورات و کاراکتر ها در ردیس به این صورت نمایش داده میشه :

SET mykey myvalue


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

#redis
@CodeModule
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥102
✌️ با مفهموم ASI در جاوااسکریپت آشنا بشید!

‼️در زبان برنامه نویسی جاوااسکریپت، گذاشتن semicolon (;) در پایان دستورات و یا کد هامون اختیاریه، اما این اختیاری بودنش چه دلیلی داره؟

🟡درواقع ویژگی ASI یا Automatic Semicolon Insertion، یک ویژگی داخل زبان جاوااسکریپت هست که گذاشتن semicolon رو در پایان دستورات و یا کد های جاوااسکریپتی اختیاری می‌کنه، به طوری که parser جاوااسکریپت میاد موقع خوندن کد ها،خودش اتوماتیک semicolon رو در پایان کد ها و جاهایی که نیازه میزاره، تا دیگه مشکلی نباشه و کد به درستی خونده بشه.

🤨برای همین شما دیگه نیازی به گذاشتن semicolon در خط به خط کد ندارید.

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

اما معایبش چیه؟ همونطوری که می‌تونه از به وجود اومدن باگ های ریز جلوگیری کنه، ممکنه خودش هم عامل به وجود اومدن باگ بشه، به طوری که با گذاشتن فضای خالی (Enter) بین کد ها میاد اخرشون semicolon میزاره که موجب بوجود اومدن SyntaxError یا مشکلاتی از این قبیل میشه.

🧐بهتره خودمون Semicolon بزاریم، یا به ASI بسپریم؟

راه حل عاقلانه اینه که تا جایی که میتونید به گذاشتن semicolon در پایان کد هاتون عادت کنید، تا وقتی که با یک زبان دیگه کد میزنید، دستتون عادت کرده باشه و هم از به وجود اومدن ارور های عجیب در کدهاتون، جلوگیری کنید 😉


#js #asi
@CodeModule
Please open Telegram to view this post
VIEW IN TELEGRAM
👌9🔥4
ترجمه برخی از جملات کارفرماها 😔

🟢ما اینجا یه خانواده‌ایم
🔴ترجمه: یه کاری می‌کنیم قشنگ حس کنی بین اعضای خانوادتی. یکی کولرو خاموش می‌کنه، یکی سرکوفت می‌زنه بهت، یکی میگه چایی بیار، تازه ممکنه لباساتم بقیه بپوشن. خلاصه غریبی نکن.

🟢واست رزومه میشه
🔴ترجمه: جوری ازت کار بکشیم، جوری ازت کار بکشیم که هرجا بگی فلان جا کار کردم، درجا استخدام بشی :)

🟢حقوق توافقی
🔴ترجمه: ما یه عددی می‌گیم، تو باید موافقت کنی وگرنه ناراحت می‌شیم. تو که دوست نداری ما ناراحت بشیم عزیزم؟ :)

🟢حقوق پایه وزارت کار
🔴ترجمه: مهم نیست چقدر تخصص داری و چند سال سابقه کار. ما اینجا به قانون پایبندیم، هرچی وزارت کار بگه! :)

🟢محیط پویا و جوان
🔴ترجمه: اینجا یه مشت بچه دور هم جمع شدن که چون کم سن و سالن و توقعشون پایینه استخدامشون کردیم. محیط به قدری پویاست که ممکنه همکارای امروزتو فردا دیگه نبینی!!

🟢کار در شرکت معتبر و مشهور
🔴ترجمه: موقع استخدام‌، بزرگترین شرکت خاورمیانه و حومه‌ایم؛ ولی موقع تسویه، یه زیر پله اجاره کردیم و محصولاتمون رو می‌ذاریم داخل پلاستیک مشکی می‌دیم دست مشتری :)

🟢دارای اتاق فکر و بازی
🔴ترجمه: یه فوتبال دستی رنگ و رو رفته داریم که تار عنکبوت بسته چون هیچکس حق نداره ازش استفاده کنه. مهد کودک که نیومدی، اینجا رو مثل اردوگاه کار اجباری آلمان نازی ببین

🟢باهاتون تماس می‌گیریم
🔴مصاحبه رو رد شدی و هیچ‌وقت قرار نیست تماسی باهات گرفته شه (90 درصد مواقع)


البته جسارت به هیچ شرکت و کارفرمایی نمیکنم، اما اکثریت همینه داستانشون :))


#fun
@CodeModule
Please open Telegram to view this post
VIEW IN TELEGRAM
😁23👌4
😉 مراقب وب سایتتون در برابر CSRF باشید!

درواقع CSRF (که XSRF هم گفته میشه)، یک آسیب‌پذیری وبه که مهاجم با استفاده از اون میتونه یوزر رو مجبور به انجام اقداماتی کنه، که قصد انجام اونها رو نداشته. این آسیب‌پذیری به مهاجم اجازه میده تا حدی سیاست SOP رو دور بزنه.

🔵سیاست SOP (کوتاه‌ شده Same Origin Policy) یا سیاست مبدأ مشترک، به منظور جلوگیری از سرقت داده با ارسال درخواست‌های Cross-Origin (میان‌وب‌گاهی) طراحی شده.

🧐چجوری CSRF اتفاق میوفته؟

در یک حمله CSRF، مهاجم با ارسال یک درخواست به وب‌سایت هدف، یوزر رو فریب میده تا درخواست مخرب رو انجام بده. این درخواست معمولاً از طریق یک لینک یا فرم در یک وب‌سایت مخرب برای کاربر ارسال میشه. حال اگه کاربر وارد لینک هدف بشه، درخواست مخرب مهاجم بدون اطلاع و تأیید کاربر انجام میشه.

🔐نحوه جلوگیری از CSRF

برای جلوگیری از CSRF، تکنیک‌های مختلفی وجود داره که شامل استفاده از CSRF Token، بررسی Origin Header، استفاده از SameSite Cookies و اعتبارسنجی Referer Header میشن. همچنین دولوپرا باید به طور دقیق از روش‌های احراز هویت و سطح دسترسی صحیح استفاده کنن (رعایت authorizations و authentication)

به طور کلی CSRF یک تهدید جدی برای امنیت وب‌سایت‌ها می باشد، و باید با دقت و توجه با اونها برخورد بشه. با پیاده‌سازی تکنیک‌های مناسب، میتونیم از این نوع حملات جلوگیری کنیم و امنیت کاربران رو حفظ کنیم 🏖️


#csrf #sequrity
@CodeModule
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥134
تفاوت Type Alias و Interface در تایپ‌اسکریپت 🥶

تایپ Alias و اینترفیس شباهت‌های خیلی زیادی بهم دارن و تقریباً هر جایی می‌تونن بجای همدیگه استفاده بشن. اما یه سری تفاوت ها بینشون هست که تو این پست با هم بررسیشون میکنیم.

همونطور که می‌دونید، میتونیم تایپ های دلخواهمون رو با استفاده از Type Alias به شکل زیر تعریف میکنیم:

type Person = { 
name: string;
age: number;
}

اما اگه با اینترفیس‌های آشنایی داشته باشید، می‌دونید که تایپ بالا رو خیلی راحت می‌تونیم با یک اینترفیس هم بنویسیم:
interface Person { 
name: string;
age: number;
}


نحوهٔ استفاده از این اینترفیس هیچ تفاوتی با تایپی که ساختیم نداره و می‌تونه توی مثال بالا استفاده بشه. در واقع توی خیلی از جاها این دو ویژگی می‌تونن به همین شکل بجای همدیگه استفاده بشن.

پس چه تفاوت‌هایی وجود داره؟ 🤔

1⃣کار با مقادیر Primitive

این یکی از مهمترین تفاوت‌های این دو ویژگی هست. تو مثال‌های بالا دیدیم که ما تونستیم برای تایپ string یک تایپ با اسم دلخواه خودمون بسازیم. همونطور که می‌دونیم string یک Primitive (مقدار غیر آبجکتی) هست و ما برای کار با مقادیر Primitive نمی‌تونیم از اینترفیس‌ها استفاده کنیم. در واقع ما از اینترفیس‌ها فقط می‌تونیم برای شکل دادن به آبجکت‌ها استفاده کنیم. اما با Type Alias می‌تونیم هم برای مقادیر آبجکتی و هم Primitive ها تایپ دلخواه بسازیم:

interface Person { 
name: string;
}

// or
type Person {
person: string;
}

type Name = string;


2⃣‏Merge کردن اینترفیس‌ها و Type Aliases

یک تفاوت مهم دیگه (شاید مهمترین تفاوت) این دو ویژگی اینه که ما توی یک برنامه می‌تونیم چند اینترفیس با اسم‌های یکسان داشته باشیم. اما این کار برای تایپ‌ها شدنی نیست و ما خطا می‌گیریم:

interface Person { 
name: string;
}
interface Person {
age: number;
}
const john: Person = {
name: "John",
age: 3,
};

توی کد بالا دو اینترفیس اول با هم ترکیب (Merge) شدن و یک اینترفیس شامل پراپرتی‌های age و name رو تشکیل دادن. اما داشتن دو تایپ همنام توی برنامه شدنی نیست:
type Person = { 
name: string;
}
type Person = {
age: number;
}
// Error: Duplicate identifier 'Person'


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


در نهایت، انتخاب بین این دو به نیازهای خاص پروژه شما بستگی داره و در بسیاری از موارد، می‌تونید از هر دو با هم استفاده کنید تا بهترین نتیجه رو بگیرید. اگر به تداخل یا گسترش نیاز دارید، از interface استفاده کنید. اما اگر نیاز به تعریف انواع پیچیده‌تری دارید یا میخواید از ترکیبات یونین یا تقاطع استفاده کنید، type alias مناسب‌تره.

#typescript
@CodeModule
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥75
تا الان به این فکر کردید که چطور دو یا چند زبان مختلف رو در یک پروژه ترکیب کنید؟ 🤔 (مثلا Node.js با Php یا شایدم Python)

حتما دیدین که میگن فلان شرکت برای بک اند وبسایتش از چند زبان مختلف استفاده کرده، اما این چجوری امکان‌ پذیره؟

اینجاست که اعلان "gRPC به گروه پیوست" برامون میاد

حروفه RPC مخففه (Remote Procedure Call) هست، که یک چارچوبه اسکیما محوره که ارتباط بین سرویس هارو بهتر میکنه. همچنین از طریق استفاده از HTTP/2 و بافر های پروتکل (Protobuf)، از قرارداد های استریمینگ و تایپ قوی پشتیبانی میکنه و توزیع چند زبانه رو قادر میسازه.

اما بافر های پروتکل یا (protobuf) چیه؟ 🤔

یک روش کارآمد برای سریال سازی داده به فرمت های باینری هست، و نسبت به فرمت های مبتنی بر متن مثله json از نظر فضا، کارآمدتر و سریع تر برای‌ سریال سازی و سریال زدایی هست.

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

‏RPC رو توضیح دادیم اما راجب g چیزی نگفتیم!

احتملا فکر کنید g یعنی google اما نه!! تقریبا هر دفعه یک معنی میده، که اینجا معانی های مرسوم حرف g لیست شده.

در چه مواردی از gRPC استفاده میشه؟

🔵معماری‌های میکروسرویس: در معماری‌های مبتنی بر میکروسرویس، سرویس‌های فردی ممکنه در زبان‌های برنامه‌نویسی مجزا برای مطابقت با نیازهای خاص خود توسعه داده بشن. علاوه بر این، ممکنه چندین کار به صورت همزمان نیاز داشته باشن و خدمات ممکنه با بارهای کاری متفاوتی مواجه بشن.

🔵اپلیکیشن های استریم: پشتیبانی gRPC از الگوهای پخش چندگانه، سرویس‌ها رو قادر میسازه تا داده‌ها رو به‌ محض دردسترس شدن، به اشتراک بگذارن و پردازش کنن. بدون اینکه هزینه‌ای برای ساخته مکرر اتصالات جدید داشته باشه. این باعث میشه که برای برنامه‌های چت و ویدیوی real-time، برنامه‌های بازی آنلاین، پلتفرم‌های معاملات مالی و فیدهای داده زنده مناسب باشه.

برای توضيحات بیشتر، مثال های کاربردی و سایر نکات به تلگراف سر بزنید.

#gRPC
@CodeModule
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥93
🤯هر متن و کدی رو از ویدیوی مورد نظرت کپی کن!

👌توی این پست قراره یک اکستنشن کاربردی بهتون به نام SelectText بهتون معرفی کنم، که با استفاده از اون میتونید هر متنی که میخواید رو از روی ویدیو کپی و استفاده کنید.

این اکستنشن برای برنامه نویسا که کلی ویدیو آموزشی میبینن، خیلی مفیده چون به راحتی میتونن کد هارو از ویدیو کپی کنن و دیگه، دردسر کد نوشتن نداشته باشن 👨‍💻


🔵 Download

#extension #tools
@CodeModule
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥11👌3
در به در دنبال ابزار‌های کاربردی css نباش 🔵

سایت زیر مجموعه‌ای از بهترین ابزار‌های کاربردی و مهم css رو جمع آوری کرده، و به راحتی میتونید ابزار مد نظرتونو پیدا و استفاده کنید 💀

🔵Website

#css #tools
@CodeModule
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥73
🔵 با HOC در React.js آشنا بشید

‏Higher-Order Components یا HOC در React.js یک پترن پیشرفته برای استفاده مجدد از منطق کامپوننت‌ها هست. HOC یک تابعه که یک کامپوننت رو به عنوان ورودی می‌گیره و یک کامپوننت جدید با قابلیت‌های افزوده‌شده رو برمی‌گردونه.

از ‏HOCها معمولاً برای موارد زیر استفاده میکنن:

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

🔢 محدود کردن دسترسی: وقتی که می‌خواید دسترسی به یک کامپوننت رو محدود کنید، مثلاً فقط برای کاربران لاگین شده.

🔢 تزریق داده: وقتی که می‌خواید داده‌ها رو به یک کامپوننت تزریق کنید.

😉رعایت قانون DRY با HOC !

در برنامه نویسی اصولی، یک اصل هست به اسم Clean Coding، که قوانین زیادی داره و ما به عنوان یک Developer حرفه ای باید اون قوانین رو رعایت کنیم. یکی از این قوانین DRY ( dont Repeat Yourself ) هست.

این قانون میگه وقتی یک تیکه کدی رو یکبار نوشتید، دیگه نباید اون رو مجددا بنویسید تا در جاهای دیگه ای استفاده کنید. باید یکبار برای همیشه نوشته بشه و استفاده بشه.


🚀 ویژگی‌های منحصر به فرد HOC چیه؟

🔵اول اینکه HOC ها برای Reusable کردن یک تیکه کد کاربرد دارن.

🔵دوم اینکه HOC ها کامپوننت هارو ویرایش نمیکنن، بلکه یک نسخه بروز شده از اون کامپوننت میسازن.

🔵سوم اینکه HOC ها pure function هستن و هیچ side Effect ندارن.


به طور کلی، استفاده از HOC کدمون رو حرفه ای تر و خلاصه تر می‌کنه. برای مثال ها و اطلاعات بیشتر میتونید این مقاله رو مطالعه کنید.

#hoc #react
@CodeModule
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥8👌3
خروجی کد بالا؟ 😄
Anonymous Quiz
12%
NaN, false
13%
undefined, true
46%
5, true
28%
5, false
🔥7👌3
تکنیک‌ها و ابزار‌های دیباگ در Node.js 🤟

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

1️⃣دیباگ تعاملی ( Interactive)

این تکنیک از ابزار های تخصصی دیباگ استفاده میکنه و این امکان رو میده اجرای برنامه رو کنترل کنیم. در Node.js ما میتونیم با استفاده از ابزاری مثله node inspector این کار رو انجام بدیم.

2️⃣ردیابی فعالیت (active tracing)

این تکنیک که به عنوان (profiling یا performance) نیز شناخته میشه، فراتر از ردیابی اولیه هست و بر نحوه استفاده برنامه از قدرت پردازش تمرکز داره. این تکنیک زمان مصرف شده اجرای بخش های خاص کد رو اندازه‌گیری، و به شناسایی مناطقی کمک میکنه که منابع رو بیش از حد مصرف، و عملکرد رو مختل میکنن. برای این کار از sentry استفاده می‌کنیم.

3️⃣دیباگ کردن بعد از مرگ (post-mortem debug)

از این رویکرد پس از خرابی غیر منتظره یک برنامه استفاده میشه، که دیباگر ها میتونن از منابع مختلف مثله فایل های گزارش (log files) برای درک علت خرابی استفاده کنن، و از ابزاری مثله NDB استفاده میشه.

4️⃣الگوریتم wolf frence

ما با استفاده از git bisect در گیت، میتونیم الگوریتم wolf-fence رو پیاده سازی کنیم، که در دو مرحله انجام میشه:

🔵تاریخچه گیت رو به دو قسمت تقسیم میکنیم.

🔵بررسی می‌کنیم که آیا اشکال در نیمه اول وجود داره یا نیمه دوم؟

این مراحل رو به صورت مکرر انجام میدیم تا
در نهایت مشکل رو پیدا کنیم.


به صورت کلی تکنیک ها و مباحث زیادی وجود داره که میشه درموردشون حرف زد، مثلا یکی دیگ از تکنیک ها "anti-debugging" هست، که پیشنهاد میکنم خودتون درموردش تحقیق کنید :))

#debugging
@CodeModule
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥5👌2
🖼️می‌خوام لینوکس یاد بگیرم! چیکار کنم ؟

یکی از شایع ترین سوالات افرادی که میخوان پا به دنیای GNU/LINUX بزارن، اینه که برای شروع باید چیکار کنیم و چه توزیعی نصب کنیم. توی این پست میخوام بر اساس تجارب و عقیده ها برای شروع سفر در دنیای لینوکس، به این سوالات پاسخ بدیم.

🔵در اصل لینوکس تفاوت های زیادی از لحاظ نوع کاربری و حتی نصب (در بعضی توزیع ها) با ویندوز داره. بنابراین نمی‌تونیم بگیم پس ویندوز بلدیم یادگیری اینم برامون راحته ، چون لینوکس هم مبانی و راه و چاه های خودش رو داره.

🧐دوره چی ببینیم ؟ آیا با دوره کار جمع میشه ؟

در جواب این سوال باید گفت هر دوره ای مناسب یادگیری لینوکس نیست. حد الامکان سعی کنید با دوره های معتبری مثل Lpic 1 &2 جادی پیش برید و همچنین در کنار این دوره‌ها، خوندن wiki های معتبر رو ازش دریغ نکنید چون اونا تنها منابع معتبر و درست شما هستن.

🤨مستر ربات دیدم جوگیر شدم، برم لینوکس نصب کنم ؟

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

🫠خب حالا بریم لینوکس رو بوت کنیم ؟

نظر شخصی خودم اینه که چون تازه وارد هستید، با بوت کردن لینوکس به عنوان سیستم عامل اصلی کار باهاش رو شروع نکنید! با استفاده کردن از emulator هایی مثل vmWare یا virtualBox یک لینوکس تستی (برای شروع ترجیحا Mint) نصب کنید و روی اون، کار با لینوکس رو تجربه کنید تا در صورت خراب کاری کردن یا بهم ریختن چیزی، مشکل خاصی به وجود نیاد. حتی سایت هایی وجود داره که توی این پست معرفی کردیم، که شما بدون نصب ماشین مجازی میتونید با توزیع های مختلف لینوکس سر و کله بزنید.

🤯بهترین توزیع لینوکس چیه ؟

اینکه بهترین یا بدترین توزیع چیه، خیلی معنی منطقی ای نداره. هر کدوم طرفدارای خودشون رو دارن ولی یکسری مزایا برای بعضی توزیع ها وجود داره، که اونارو از بقیه متمایز می‌کنه (همون‌طور که بدی های یک توزیع می‌تونه متمایزش کنه). انتخاب ها می‌تونه نسبت به نیاز و یا حتی دلایلی مثل استیبل بودن و سبک بودن و یا راحت بودن و چیزای مختلف دیگه باشه.

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

👨‍🍼یکی از توزیع های استیبل و خوب لینوکس(بیشتر حرفه ای ها ازش استفاده میکنن ؛) ) که می‌تونه برای افراد در حال یادگیری هم خیلی مفید باشه، Arch linux هست.

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

🔵همچنین ارچ مینیموم ترین حالت ممکن نصب میشه و باید خودتون، درایور گرافیک رو روش نصب و کانفیگ کنید و ...

👌همچنین اگر مایل باشید، میتونید از توزیع های ارچ بیس مثل Parch linux استفاده کنید که زحمتی از بر و بچه های ایرانیه.


سعی کردم توی این پست سوالاتی که مرسومه رو با نظرات شخصی خودم جواب بدم، تا دوستانی که این سوالات رو دارن براشون رفع ابهام بشه⚡️

#linux #os
@CodeModule
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥9👌2
روابط در شرکت‌ ها 😂😂

#fun
@CodeModule
Please open Telegram to view this post
VIEW IN TELEGRAM
😁22
الگو طراحی سینگلتون چیه؟ 🤔

در مهندسی نرم افزار، الگوی singleton یک الگوی طراحیه که نمونه سازی یک کلاس رو به یک نمونه منحصر به فرد، محدود میکنه. همچنین یک الگو Creational و یکی از الگو های معروفه "Gang of Four" نیز هست.

این الگو زمانی مفیده که دقیقاً یک شیء برای هماهنگ کردن اقدامات در یک سیستم، مورد نیازه.

به طور خاص، الگوی سینگلتون به اشیاء اجازه میده:

♨️فقط یک نمونه داشته باشن
♨️دسترسی آسان به نمونه رو فراهم میکنه
♨️نمونه سازی اون رو کنترل میکنه (مثلاً سازنده های یک کلاس رو مخفی میکنه)

چرا اسم این پترن سینگلتون هست؟

این اصطلاح برگرفته از یک مفهوم ریاضیه و به مجموعه ای که دقیقاً یک عنصر داره، سینگلتون میگن. برای مثال مجموعه‌ای مثل {{1،2،3}} یک سینگلتونه، چون حاوی یک عنصر واحده (که خود یک مجموعه هست، اما سینگلتون نیست).

ویژگی های پترن سینگلتون چیه؟

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

- سینگلتون کلاس رو در سطح گلوبال در دسترس قرار میده.

درحالی که singleton میتونه مفید باشه اما باید دربرخی موارد احتیاط کنیم⬇️

چالش های تست: تست کدی که به سینگلتون وابسته هست میتونه مشکل باشه.

کوپلینگ محکم: استفاده زیاد از سینگلتون میتونه کوپلینگ محکم رو افزایش بده.

🔵میتونیم از الگوی تزریق وابستگی (dependency injection) به عنوان جایگزین، برای looser coupling استفاده کنیم.

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

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

#design_pattern #singleton
@CodeModule
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥74
5 تا از بهترین سایت‌های ارائه دهنده قالب‌های Html/Css 💀

🔵html5up

🔵freehtml5

🔵styleshout

🔵free-css

🔵tooplate

#template #html #css
@CodeModule
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥7👌4
IDE اختصاصی برای توسعه پروژه‌های React.js 🔵

‏Reactide یک محیط توسعه یکپارچه (IDE) مخصوص برای توسعه پروژه‌های ریکتی هست. این ide به منظور ساده‌سازی و تسریع فرآیند توسعه برنامه‌های ریکتی طراحی شده، و شامل ویژگی‌ها و ابزارهای متنوعیه که به دولوپرا کمک می‌کنه تا با کارایی بیشتری کد بنویسن، تست کنن و پروژه‌های خودشون رو اجرا کنن.

برخی از ویژگی‌های Reactide ⬇️

رابط کاربری ساده و یکپارچه: Reactide یک رابط کاربری ساده و کاربرپسند داره، و تموم ابزارهای مورد نیاز برای توسعه پروژه‌های ریکتی رو در یک محیط فراهم می‌کنه.

پیش‌نمایش لحظه‌ای (Live Preview): یکی از ویژگی‌های برجسته Reactide، قابلیت پیش‌نمایش لحظه‌ای هست که به دولوپرا این امکان رو میده تا تغییرات کدشون رو بلافاصله در مرورگر داخلی Reactide، مشاهده کنن.

پیکربندی خودکار ابزارها: Reactide بسیاری از تنظیمات و پیکربندی‌های مورد نیاز برای شروع یک پروژه React رو، به صورت خودکار انجام میده و دولوپرا نیازی به پیکربندی دستی و نصب ابزارهای مختلف ندارن.

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

ویرایشگر قدرتمند: Reactide دارای قابلیت‌های پیشرفته‌ای مثل تکمیل خودکار کد، برجسته‌سازی نحوی و linting هست که به دولوپرا کمک می‌کنه تا کدهای خودشون رو سریع تر و با دقت بیشتری بنویسن.


برای نصب و راه اندازی این IDE، میتونید به داکیومنتش مراجعه کنید 💀

#react #reactide
@CodeModule
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥102