<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
    <channel>
        <title>نوشته های سعید نصیری</title>
        <link>https://virgool.io/feed/@Saeidfiy</link>
        <description></description>
        <language>fa</language>
        <pubDate>2026-06-16 10:35:28</pubDate>
        <image>
            <url>https://files.virgool.io/upload/users/1023166/avatar/SiT0Dp.jpg?height=120&amp;width=120</url>
            <title>سعید نصیری</title>
            <link>https://virgool.io/@Saeidfiy</link>
        </image>

                    <item>
                <title>10 نکته برای خرید هاست حرفه ای</title>
                <link>https://virgool.io/@Saeidfiy/10-%D9%86%DA%A9%D8%AA%D9%87-%D8%A8%D8%B1%D8%A7%DB%8C-%D8%AE%D8%B1%DB%8C%D8%AF-%D9%87%D8%A7%D8%B3%D8%AA-%D8%AD%D8%B1%D9%81%D9%87-%D8%A7%DB%8C-jh6jm7vvzgbs</link>
                <description>خرید هاستمقدمه: خرید یک هاست حرفه‌ای یکی از مهمترین تصمیماتی است که باید در فرآیند ایجاد وب‌سایت یا برنامه آنلاین خود بگیرید. هاست حرفه‌ای نقش بسیار مهمی در سرعت، امنیت، و پایداری وب‌سایت شما ایفا می‌کند. در این مقاله، بهترین روش‌ها و نکات برای خرید هاست حرفه‌ای برای وب‌سایت یا برنامه‌های آنلاین خود را بررسی خواهیم کرد.تعیین نیازهای خود:قبل از هر چیز، نیازهای خود را برای هاست مشخص کنید. اندازه وب‌سایت، ترافیک ماهیانه، نوع دیتابیس مورد نیاز و سایر فاکتورها را در نظر بگیرید.انتخاب نوع هاست:انتخاب بین هاست‌های مشترک، هاست اختصاصی، هاست ابری و VPS را در نظر بگیرید. هر کدام مزایا و معایب خود را دارند.انتخاب شرکت میزبان:تحقیق کنید و شرکت میزبان معتبر و با تجربه را انتخاب کنید. نظرات مشتریان و تاریخچه شرکت را بررسی کنید.مدیریت دامنه:اگر دامنه ندارید، همزمان با خرید هاست دامنه مورد نیاز خود را نیز ثبت کنید یا آن را انتقال دهید.پشتیبانی و امنیت:اطمینان حاصل کنید که شرکت میزبان امنیت و پشتیبانی 24/7 را فراهم می‌کند.مقایسه قیمت و قرارداد:قیمت‌ها و قراردادهای مختلف شرکت‌های میزبان را مقایسه کرده و برای شرایط مناسب تر مذاکره کنید.آزمایش و سرعت:پیش از خرید نهایی، سرویس میزبانی را تست کنید و سرعت دسترسی به وب‌سایت خود را ارزیابی کنید.پشتیبانی فنی:از اطلاعات پشتیبانی فنی شرکت میزبان و روش‌های ارتباط با آنها اطمینان حاصل کنید.راه‌اندازی اولیه:پس از خرید، سایت خود را راه‌اندازی کنید و در صورت نیاز از پشتیبانی فنی کمک بخواهید.مانیتورینگ و به‌روزرسانی:سرور خود را مانیتور کرده و به‌روزرسانی‌های امنیتی را به موقع انجام دهید.نتیجه‌گیری: خرید هاست حرفه‌ای یکی از مراحل کلیدی در توسعه و مدیریت وب‌سایت یا برنامه‌های آنلاین شماست. با رعایت نکات مطرح شده و توجه به نیازهای خود، می‌توانید یک هاست مناسب و کارآمد را انتخاب کرده و پروژه‌های خود را با اطمینان و کیفیت بالا اجرا کنید.اگر سوالاتی دارید یا نیاز به برقراری ارتباط با من دارید، می‌توانید از طریق راه‌های ارتباطی زیر با من در تماس باشید:GitHubLinkedInمی‌توانید من را در این پلتفرم‌ها دنبال کنید و پیام‌ها و سوالات خود را با من در میان بگذارید. من با شما در این پلتفرم‌ها همکاری خواهم کرد و پاسخ‌های لازم را ارائه خواهم داد.</description>
                <category>سعید نصیری</category>
                <author>سعید نصیری</author>
                <pubDate>Fri, 01 Sep 2023 18:51:12 +0330</pubDate>
            </item>
                    <item>
                <title>اتصال سریع nestjs به typeorm</title>
                <link>https://virgool.io/@Saeidfiy/%D8%A7%D8%AA%D8%B5%D8%A7%D9%84-%D8%B3%D8%B1%DB%8C%D8%B9-nestjs-%D8%A8%D9%87-typeorm-iohrwxptzlet</link>
                <description>typeorm and nestjsمقدمهدر توسعه برنامه‌های وب، اتصال به پایگاه داده از اهمیت بالایی برخوردار است. NestJS، یک چارچوب قدرتمند و محبوب برای توسعه برنامه‌های وب در محیط Node.js است. از آنجا که استفاده از ORMها نیز در توسعه برنامه‌های پایگاه داده بسیار رایج است، اتصال TypeORM به NestJS می‌تواند انتخابی عالی برای تسهیل توسعه و مدیریت پایگاه داده باشد. در این مقاله، بهترین روش‌ها برای اتصال TypeORM به NestJS را بررسی خواهیم کرد.مرحله 1: برای استفاده از TypeORM و NestJS TypeORM ابتدا نیاز دارید که پکیج‌های مربوط به TypeORM و NestJS TypeORM را نصب کنید. برای این کار از دستور زیر استفاده می‌کنید:npm install typeorm @nestjs/typeormمرحله 2: پیکربندی اتصال به پایگاه داده در فایل app.module.ts، TypeORM را به برنامه NestJS خود اضافه کنید و تنظیمات اتصال به پایگاه داده را انجام دهید. مثال زیر نشان می‌دهد چگونه می‌توانید به یک پایگاه داده MySQL متصل شوید:typescriptCopy codeimport { Module } from &#039;@nestjs/common&#039;;
import { TypeOrmModule } from &#039;@nestjs/typeorm&#039;;

@Module({
  imports: [
    TypeOrmModule.forRoot({
      type: &#039;mysql&#039;,
      host: &#039;localhost&#039;,
      port: 3306,
      username: &#039;root&#039;,
      password: &#039;password&#039;,
      database: &#039;mydatabase&#039;,
      entities: [__dirname + &#039;/**/*.entity{.ts,.js}&#039;],
      synchronize: true,
    }),
  ],
})
export class AppModule {}در این مثال، ما از MySQL به عنوان پایگاه داده استفاده کرده‌ایم و تنظیمات اتصال به آن را انجام داده‌ایم. توجه کنید که entities باید مسیری را به مدل‌های شما ارائه دهد.مرحله 3: تعریف مدل‌ها حالا باید مدل‌های مربوط به جداول پایگاه داده را تعریف کنید. به عنوان مثال، برای جدول &quot;Users&quot; می‌توانید یک کلاس مدل به شکل زیر تعریف کنید:typescriptCopy codeimport { Entity, Column, PrimaryGeneratedColumn } from &#039;typeorm&#039;;

@Entity()
export class User {
  @PrimaryGeneratedColumn()
  id: number;

  @Column()
  name: string;

  @Column()
  email: string;

  @Column()
  password: string;
}مرحله 4: استفاده از ریپازیتوری‌ها برای انجام عملیات CRUD بر روی جدول &quot;Users&quot;، می‌توانید از ریپازیتوری استفاده کنید. در فایل مربوط به سرویس یا کنترلر خود، ریپازیتوری را تزریق کنید و از آن استفاده کنید. مثال زیر نشان می‌دهد چگونه می‌توانید از ریپازیتوری &quot;Users&quot; استفاده کنید:typescriptCopy codeimport { Injectable } from &#039;@nestjs/common&#039;;
import { InjectRepository } from &#039;@nestjs/typeorm&#039;;
import { Repository } from &#039;typeorm&#039;;
import { User } from &#039;./user.entity&#039;;

@Injectable()
export class UserService {
  constructor(
    @InjectRepository(User)
    private userRepository: Repository&lt;User&gt;,
  ) {}

  async findAll(): Promise&lt;User[]&gt; {
    return this.userRepository.find();
  }

  async findById(id: number): Promise&lt;User&gt; {
    return this.userRepository.findOne(id);
  }

  async create(user: User): Promise&lt;User&gt; {
    return this.userRepository.save(user);
  }

  async update(id: number, user: User): Promise&lt;User&gt; {
    await this.userRepository.update(id, user);
    return this.userRepository.findOne(id);
  }

  async delete(id: number): Promise&lt;void&gt; {
    await this.userRepository.delete(id);
  }
}در این مثال، ما از روش‌های پیشفرض ریپازیتوری برای انجام عملیات CRUD استفاده کرده‌ایم. شما می‌توانید روش‌های سفارشی بیشتری را نیز تعریف کنید.نتیجه‌گیری: در این مثال، ما به شما نشان دادیم که چگونه می‌توانید TypeORM را به NestJS متصل کنید و از آن برای تعامل با پایگاه داده استفاده کنید. با تعریف مدل‌ها، استفاده از ریپازیتوری‌ها و انجام عملیات CRUD، شما قادر خواهید بود با پایگاه داده ارتباط برقرار کنید و داده‌های خود را مدیریت کنید. همچنین، این روش‌ها به شما امکان می‌دهند که برنامه‌های قابل تست و مقیاس‌پذیر با NestJS و TypeORM توسعه دهید.برای یادگیری راه اندازی پروژه nestjs می توانید از لینک استفاده کنید.می‌توانید من را در پلتفرم‌های GitHub و LinkedIn دنبال کنید و در صفحه‌های پروفایل من پیام‌ها و سوالات خود را بگذارید. من با شما در این پلتفرم‌ها همکاری خواهم کرد و به سوالات شما پاسخ خواهم داد.GitHubLinkedInمنتظر دیدن شما در این پلتفرم‌ها هستم و آماده همکاری و پاسخگویی به سوالات شما خواهم بود.</description>
                <category>سعید نصیری</category>
                <author>سعید نصیری</author>
                <pubDate>Thu, 15 Jun 2023 18:54:06 +0330</pubDate>
            </item>
                    <item>
                <title>چگونه با جاوا اسکریپت سرور حرفه ای بسازیم؟</title>
                <link>https://virgool.io/@Saeidfiy/%DA%86%DA%AF%D9%88%D9%86%D9%87-%D8%A8%D8%A7-%D8%AC%D8%A7%D9%88%D8%A7-%D8%A7%D8%B3%DA%A9%D8%B1%DB%8C%D9%BE%D8%AA-%D8%B3%D8%B1%D9%88%D8%B1-%D8%AD%D8%B1%D9%81%D9%87-%D8%A7%DB%8C-%D8%A8%D8%B3%D8%A7%D8%B2%DB%8C%D9%85-ee9frtecdgly</link>
                <description>nestjsاگر برنامه نویسی جاوا اسکریپت را بلد باشید احتمالا آن را در فرانت استفاده کرده اید و اگر کمی هم با نود جی اس کار کرده باشید احتمالا با ساخت سرور ساده با جاوا اسکریپت آشنایی دارید.در برخی مواقع برنامه نویسان به دلیل اینکه کار با بک اند جاوا اسکریپت را ضعیف می دانند ترجیح می دهند که از فریم ورک های به غیر از جاوا اسکریپت استفاده کنند.در ادامه قصد داریم فریم ورک جاوا اسکریپتی را معرفی کنیم که به صورت حرفه می توانید از آن استفاده کنید.Nestjs چیست؟یک فریم ورک نود جی اسی هست که سریع ترین رشد را دربین فریم ورک های نود جی اسی مورد استفاده در بک اند دارد.برخی قابلیت های nestjs:کارآمدمقیاس پذیرقابل آزمایشقابل توسعهاستفاده از تایپ اسکریپتچه سایت هایی با nest js نوشته شده اند؟به دلایلی که در بالا گفته شد ، این فریم ورک مورد توجه شرکت ها و برند های مشهور هم بوده که چند نمونه از آن ها را مثال می زنیم:RocheAdidasDecathlonراه اندازی nestjsابتدا با استفاده از دستور زیر nest js نصب کنید.npm i -g @nestjs/cliسپس با استفاده از دستور زیر پروژه مورد نظر خود را با نام دلخواه بسازیدnest new project-nameمی‌توانید من را در پلتفرم‌های GitHub و LinkedIn دنبال کنید و در صفحه‌های پروفایل من پیام‌ها و سوالات خود را بگذارید. من با شما در این پلتفرم‌ها همکاری خواهم کرد و به سوالات شما پاسخ خواهم داد.GitHubLinkedInمنتظر دیدن شما در این پلتفرم‌ها هستم و آماده همکاری و پاسخگویی به سوالات شما خواهم بود.</description>
                <category>سعید نصیری</category>
                <author>سعید نصیری</author>
                <pubDate>Thu, 15 Jun 2023 18:50:07 +0330</pubDate>
            </item>
                    <item>
                <title>راه اندازی و آشنایی با NestJS</title>
                <link>https://virgool.io/@Saeidfiy/%D8%B1%D8%A7%D9%87-%D8%A7%D9%86%D8%AF%D8%A7%D8%B2%DB%8C-%D9%88-%D8%A2%D8%B4%D9%86%D8%A7%DB%8C%DB%8C-%D8%A8%D8%A7-nestjs-fsnchlinjtdx</link>
                <description>nestjsمقدمه:در سال‌های اخیر، توسعه برنامه‌های وب با استفاده از Node.js به طور چشمگیری رشد کرده است. با توجه به این رشد، ابزارها و چارچوب‌هایی مانند NestJS به وجود آمده‌اند تا توسعه‌دهندگان را در ایجاد برنامه‌های قدرتمند و مقیاس‌پذیر برای وب در Node.js یاری دهند. NestJS یک چارچوب توسعه وب کامل است که با استفاده از مفاهیم برنامه‌نویسی شیءگرا، کامپوننت بیس و معماری سرویس‌گرا طراحی شده است.در این مقاله، ما با راه اندازی NestJS آشنا می‌شویم و نحوه استفاده از آن را در توسعه برنامه‌های وب در Node.js بررسی می‌کنیم. ابتدا به معرفی NestJS و ویژگی‌های آن می‌پردازیم، سپس نحوه نصب و راه اندازی آن را توضیح می‌دهیم. در ادامه، به بررسی معماری NestJS، استفاده از دیکوراتورها و پرووایدرها، و ساختار پروژه در NestJS می‌پردازیم. در پایان، یک نمونه ساده از برنامه NestJS ایجاد می‌کنیم تا مراحل توسعه و اجرا را به صورت عملی مشاهده کنیم.۱. معرفی NestJS:یکی دیگر از ویژگی های NestJS یک چارچوب توسعه وب برای Node.js است که با استفاده از TypeScript، معماری سرویس‌گرا و مفاهیم برنامه‌نویسی شیءگرا طراحی شده است. این چارچوب، ابزارها و الگوهایی را در اختیار توسعه‌دهندگان قرار می‌دهد تا فرآیند توسعه برنامه‌های وب را ساده‌تر و مقیاس‌پذیرتر کند. NestJS از اکوسیستم بزرگی از .ماژول‌ها و افزونه‌ها بهره می‌برد که امکان استفاده از ویژگی‌های متنوع را فراهم می‌کند۲. نصب و راه اندازی:برای شروع با NestJS، ابتدا باید Node.js را در سیستم خود نصب کنید. سپس می‌توانید Nest CLI را نصب کنید که ابزاری است برای ساخت و مدیریت پروژه‌های NestJS. برای نصب Nest CLI، دستور زیر را در ترمینال اجرا کنید:npm install -g @nestjs/cli
یا
yarn global add @nestjs/cliبا نصب Nest CLI، می‌توانید با استفاده از دستور &#x60;nest new&#x60; یک پروژه NestJS جدید ایجاد کنید:nest new project-name۳. معماری NestJS:معماری NestJS بر پایه معماری سرویس‌گرا و مفاهیم برنامه‌نویسی شیءگرا استوار است. در NestJS، کنترلرها (Controllers) و سرویس‌ها (Services) به عنوان پایه توسعه برنامه‌ها عمل می‌کنند. کنترلرها مسئول دریافت درخواست‌ها و پاسخ به آن‌ها هستند، در حالی که سرویس‌ها منطق برنامه را اجرا و توابع و عملیات مورد نیاز را ارائه می‌دهند. برای ارتباط بین کنترلرها و سرویس‌ها از وابستگی‌ها (Dependencies) و تزریق وابستگی (Dependency Injection) استفاده می‌شود.۴. استفاده از دیکوراتورها و پرووایدرها:در NestJS، دیکوراتورها و پرووایدرها از مفاهیم کلیدی هستند. دیکوراتورها برای تعیین نقش یک کلاس یا تابع در برنامه استفاده می‌شوند، برای مثال دیکوراتور &#x60;@Controller&#x60; برای تعریف یک کنترلر استفاده می‌شود. پرووایدرها همچنین برای ایجاد سرویس‌ها و وابستگی‌ها استفاده می‌شوند و توسط دیکوراتور &#x60;@Injectable&#x60; مشخص می‌شوند.۵. ساختار پروژه: ویژگی دیگر این است که NestJS یک ساختار پروژه سازمان‌یافته دارد که به شما امکان می‌دهد برنامه را به بخش‌های مختلف تقسیم کنید. برای مثال، شما می‌توانید کنترلرها، سرویس‌ها، مدل‌ها و میان‌افزارها را در پوشه‌های جداگانه قرار دهید. این ساختار سازمانی به شما کمک می‌کند تا برنامه را بر اساس منطق و قابلیت‌ها دسته‌بندی کنید و نگهداری و گسترش آن را ساده‌تر کنید.۶. نمونه ساده:حالا که با برخی از مفاهیم اساسی NestJS آشنا شدید، می‌توانید یک نمونه ساده از برنامه NestJS ایجاد کنید. در این نمونه، می‌توانید یک کنترلر ساده برای مدیریت کاربران ایجاد کنید. با استفاده از دستور &#x60;nest generate&#x60; می‌توانید کنترلر را ایجاد کنید:nest generate controller usersسپس می‌توانید در کنترلر ساخته شده، مسیرها و عملیات مورد نیاز را تعریف کنید. برای مثال، می‌توانید یک رکوئست GET برای دریافت لیست کاربران تعریف کنید:import { Controller, Get } from &#039;@nestjs/common&#039;;

@Controller(&#039;users&#039;)
export class UsersController {
  @Get()
  getUsers(): string[] {
    return [&#039;User 1&#039;, &#039;User 2&#039;, &#039;User 3&#039;];
}
}نمونه بالا یک کنترلر ساده را برای مدیریت کاربران تعریف می‌کند که یک مسیر GET &#x60;/users&#x60; دارد و لیستی از کاربران را برمی‌گرداند.نتیجه:در این مقاله، با راه اندازی و آشنایی اولیه با NestJS آشنا داشتیم. NestJS یک چارچوب قدرتمند است که توسعه برنامه‌های وب در Node.js را ساده‌تر و مقیاس‌پذیرتر می‌کند. ما معماری NestJS، استفاده از دیکوراتورها و پرووایدرها، ساختار پروژه و یک نمونه ساده را بررسی کردیم. با ادامه مطالعه و اکتشاف امکانات بیشتر NestJS، می‌توانید برنامه‌های پیچیده‌تر و قدرتمندتری را توسعه دهید.اگر سوالاتی دارید یا نیاز به برقراری ارتباط با من دارید، می‌توانید از طریق راه‌های ارتباطی زیر با من در تماس باشید:GitHubLinkedInمی‌توانید من را در این پلتفرم‌ها دنبال کنید و پیام‌ها و سوالات خود را با من در میان بگذارید. من با شما در این پلتفرم‌ها همکاری خواهم کرد و پاسخ‌های لازم را ارائه خواهم داد.</description>
                <category>سعید نصیری</category>
                <author>سعید نصیری</author>
                <pubDate>Thu, 25 May 2023 10:04:54 +0330</pubDate>
            </item>
                    <item>
                <title>۵ پکیج پر کاربرد ریکت</title>
                <link>https://virgool.io/@Saeidfiy/%DB%B5-%D9%BE%DA%A9%DB%8C%D8%AC-%D9%BE%D8%B1-%DA%A9%D8%A7%D8%B1%D8%A8%D8%B1%D8%AF-%D8%B1%DB%8C%DA%A9%D8%AA-wjood2iccttp</link>
                <description>پکیج های پر کاربرد ریکتمقدمهریکت یک کتابخانه پر طرفدار جاوا اسکریپتی هست به همین دلیل پکیج ها زیادی برایش وجود دارد ،‌ اگر سری به سایت npm بزنید و react را سرچ کنید متوجه این موضوع می شود ، بعضی از این کتابخانه ها کاربرد عمومی دارد و می تواند نیاز توسعه دهنده ها را در اکثر پروژه ها برطرف کند و بعضی دیگر کاربرد های خاصی دارند و مشکل پروژه ها با قابلیت های خاص را برطرف می می کنند.حالا در بین این همه پکیج کدام می تواند به ما کمک کند؟در این پست قصد دارم چند پکیج پر کاربرد که برای هر توسعه دهنده ریکت نیاز است را معرفی کنم.1- Formikformik web siteاگر با فرم ها در ریکت کار کرده باشید متوجه می شوید که هندل کردن input ها کار ساده نیست و باعث کثیف شدن و پیچیده شدن کد شما می شود ،‌ به احتمال زیاد شما اولین نفری نیستید که به این مشکل برخورده اید ، برای این مشکل ماژول های زیادی نوشته شده و  یکی از این ماژول ها formik هست.شما می توانید برای آشنای با فرمیک از لینک و برای دیدن یک مثال ساده از فرمیک از لینک استفاده کنید. npm install formik --save

yarn add formikformik2.Material UImatrial ui webبرای پیشبرد سریع تر صفحات وب سایت خود استفاده از یک ماژول که قبلا قوانین ui/ux در آن رعایت شده باشد خیلی کمک کننده هست یک از کاملترین ماژول ها متریال یو آی هست.برای آشنایی بیشتر با این ماژول می توانید از لینک استفاده کنیدnpm install @material-ui/core

yarn add @material-ui/coreimport React from &amp;quotreact&amp;quotimport ReactDOM from &amp;quotreact-dom&amp;quotimport Button from &amp;quot@material-ui/core/Button&amp;quotfunction App() {return (&lt;Button variant=&amp;quotcontained&amp;quot color=&amp;quotsecondary&amp;quot&gt;REGISTER NOW&lt;/Button&gt;);}ReactDOM.render(&lt;App /&gt;, document.querySelector(&amp;quot#saeidfiy&amp;quot));material-ui3- React Routerreact router webریکت به صورت Single Page App کار می کند یعنی تک صفحه ای شروع به کار می کند ولی احتمالا خیلی از افراد به صفحات بیشتری نیاز دارند و می خواهند به راحتی بین صفحات جا به جا شوند ،‌ ماژول ریکت روتر برای این کار ساخته شده است.برای مشاهده اطلاعات بیشتر می توانید از لینک استفاده کنیدnpm install --save react-router

yarn add react-routerimport React from &amp;quotreact&amp;quotimport { render } from &amp;quotreact-dom&amp;quotimport { BrowserRouter as Router, Route, Link } from &amp;quotreact-router-dom&amp;quotimport About from &amp;quot./components/About&amp;quotimport Home from &amp;quot./components/Home&amp;quotimport Topics from &amp;quot./components/Topics&amp;quotconst BasicExample = () =&gt;  &lt;Router&gt;    &lt;div&gt;      &lt;ul&gt;        &lt;li&gt;          &lt;Link to=&amp;quot/&amp;quot&gt;Home&lt;/Link&gt;        &lt;/li&gt;        &lt;li&gt;          &lt;Link to=&amp;quot/about&amp;quot&gt;About&lt;/Link&gt;        &lt;/li&gt;        &lt;li&gt;          &lt;Link to=&amp;quot/topics&amp;quot&gt;Topics&lt;/Link&gt;        &lt;/li&gt;      &lt;/ul&gt;      &lt;hr /&gt;      &lt;Route exact path=&amp;quot/&amp;quot component={Home} /&gt;      &lt;Route path=&amp;quot/about&amp;quot component={About} /&gt;      &lt;Route path=&amp;quot/topics&amp;quot component={Topics} /&gt;    &lt;/div&gt;  &lt;/Router&gt;;render(&lt;BasicExample /&gt;, document.getElementById(&amp;quotSaeidfiy&amp;quot));React Router4- Recoil Jsrecoil js webیکی از مشکلاتی که در ریکت وجود داد انتقال و اشتراک دیتا بین کامپونت های مختلف است که ساده بودن کار بسیار مهم است ، قبل از ریکویل جی اس ماژولی به نام ریداکس مورد استفاده قرار می گرفت که کار با آن راحت نبود.برای آشنایی بیشتر با این کتابخانه می توانید از لینک استفاده کنیدnpm install recoil

yarn add recoilimport React from &#039;react&#039;;import {RecoilRoot,atom,selector,useRecoilState,useRecoilValue,} from &#039;recoil&#039;;

const textState = atom({  key: &#039;textState&#039;, // unique ID (with respect to other atoms/selectors)  default: &#039;&#039;, // default value (aka initial value)});

function TextInput() {const [text, setText] = useRecoilState(textState);const  = (event) =&gt; {setText(event.target.value);};return (&lt;div&gt;&lt;input type=&amp;quottext&amp;quot value={text} ={} /&gt;&lt;br /&gt;Echo: {text}&lt;/div&gt;);}

function App() {return (&lt;RecoilRoot&gt;&lt;TextInput /&gt;&lt;/RecoilRoot&gt;);}

render(&lt;App/&gt;, document.getElementById(&amp;quotSaeidfiy&amp;quot));recoil js5- Styled Componentsstyled components webمشکل دیگری که ممکن است در ریکت به آن برخورد کرده باشید ،‌  مشکل استایل دادن به کامپونت ها هست ،‌ بعضی مواقع اسم کلاس ها با یکدیگر مشابه می شود یا فایل css متعدد به وجود می آید ،‌ برای رفع این مشکلات می توانید از ماژول استایل کمپونت استفاده کنید و استایل را فقط روی یک کامپونت پیاده کنید.برای بدست آوردن اطلاعات بیشتر می توانید از لینک استفاده کنید.npm i styled-components

yarn add styled-componentsimport { render } from &amp;quotreact-dom&amp;quotimport { Button, th } from &amp;quotsmooth-ui&amp;quotimport { darken } from &amp;quotpolished&amp;quot// Simple extendconst BlueButton = Button.extend`background-color: blue !important;color: white !important;`;// Use props &amp; theme in extendconst BorderedButton = Button.extend`border: 1px solid ${props =&gt; th(props.variant, color =&gt; darken(0.1, color))};&amp;:hover {border-color: ${props =&gt; th(props.variant, color =&gt; darken(0.3, color))};}`;// Modify componentconst LinkBorderedButton = BorderedButton.withComponent(&amp;quota&amp;quot);const App = () =&gt; (&lt;div&gt;&lt;BlueButton variant=&amp;quotprimary&amp;quot&gt;Yes blue&lt;/BlueButton&gt;&lt;BorderedButton variant=&amp;quotprimary&amp;quot&gt;Smooth Button&lt;/BorderedButton&gt;&lt;LinkBorderedButton variant=&amp;quotsuccess&amp;quot&gt;This is a link&lt;/LinkBorderedButton&gt;&lt;/div&gt;);render(&lt;App /&gt;, document.getElementById(&amp;quotsaeidfiy&amp;quot));styled componentsسخن پایانیبه دلیل پر طرفدار بودن ریکت ماژول های زیادی برای رفع مشکلات و بهبود این کتابخانه نوشته شده ،‌ من در اینجا ۵ عدد از این کتابخانه ها که کاربرد ریادی دارند را معرفی کردم ،‌ شما می توانید با سرچ بیشتر کتابخانه های دیگر و مطابق نیاز خود را پیدا کنید.اگر در مسیر توسعه نرم افزار خود به مشکل و باگی برخورد کردید می توانید از لینک برای دیباگ کردن استفاده کنید.اگر سوالاتی دارید یا نیاز به برقراری ارتباط با من دارید، می‌توانید از طریق راه‌های ارتباطی زیر با من در تماس باشید:GitHubLinkedInمی‌توانید من را در این پلتفرم‌ها دنبال کنید و پیام‌ها و سوالات خود را با من در میان بگذارید. من با شما در این پلتفرم‌ها همکاری خواهم کرد و پاسخ‌های لازم را ارائه خواهم داد.</description>
                <category>سعید نصیری</category>
                <author>سعید نصیری</author>
                <pubDate>Fri, 20 Aug 2021 20:41:12 +0430</pubDate>
            </item>
                    <item>
                <title>دیباگ ریکت</title>
                <link>https://virgool.io/pinkpublication/%D8%AF%DB%8C%D8%A8%D8%A7%DA%AF-%D8%B1%DB%8C%DA%A9%D8%AA-yjxf1urcxkh6</link>
                <description>دیباگ ریکتمقدمهدر این پست قصد داریم به دیباگینگ در ریکت بپردازیم ،‌ از آنجایی که ریکت یک کتابخانه جاوا اسکریپتی هست دیباگ آن بسیار شبیه به جاوا اسکریپت هست که در این پست به آن پرداختیم برای ادامه کار حتما آن را مطالعه کنید.در ادامه مهم ترین نیاز ما در دیباگ جاوا اسکریپت کنسول هست که در پست به آن پرداخته ایم برای اینکه در ادامه با مشکل مواجه نشوید بهتر است این پست را هم مطالعه کنید.توضیحات کلی و ابزار های توسعه دهندهمهم ترین قسمت دیباگ در ریکت گذاشتن کنسول لاگ است ، در جایی که به باگ خورده اید کنسول بگذارید تا متوجه مقادیر ورودی و خروجی شوید .نکته بعدی استفاده از ابزار های توسعه دهنده ریکت هست که شما می توانید رندر شدن کامپونت ها را با آن مورد بررسی قرار دهید.شما می توایند ابزار توسعه دهنده ریکت برای مرورگر کروم را از اینجا و برای مرورگر فایرفاکس را از اینجا نصب کنید.سپس با رفتن به بخش inspect در مرورگر با گرفتن دکمه های ctrl + shift + i یا زدن دکه f12 در تب Components می توانید نحوه رندر شدن کامپونت های خود را مشاهده کنید.React Developer Toolsبرخی ابزار های دیگر ریکت مثل ریداکس یا آپلو کلاینت هم برای خود ابزار توسعه دهنده مجزا دارند که می توانید از آن ها هم برای دیباگ برنامه خود استفاده کنید.دیباگ هوک هابرای دیباگ هوک ها در ریکت ابزاری دیگری به جز کنسول لاگ وجود دارد به نام useDebugValue  که خودش هوک هست و برای دیباگ هوک ها اختصاصی استفاده می شود و مقدار را در ابزار توسعه دهنده ریکت که در بالا به آن اشاره کردیم نشان می دهد.function useFriendStatus(friendID) {  const [isOnline, setIsOnline] = useState(null);  // Show a label in DevTools next to this Hook  // saeidfiy  useDebugValue(isOnline ? &#039;Online&#039; : &#039;Offline&#039;);  return isOnline;}سخن پایانیدیباگ ریکت بسیار شبیه به  دیباگ در جاوا اسکریپت هست همراه با ابزار های بیشتر پس با مطالعه پست های لینک شده در مقدمه می توانید یک دید کلی از نحوه دیباگ در جاوا اسکریپت داشته باشید سپس با استفاده از ابزار های اختصاصی ریکت کار را برای خود آسان تر کنیداگر سوالاتی دارید یا نیاز به برقراری ارتباط با من دارید، می‌توانید از طریق راه‌های ارتباطی زیر با من در تماس باشید:GitHubLinkedInمی‌توانید من را در این پلتفرم‌ها دنبال کنید و پیام‌ها و سوالات خود را با من در میان بگذارید. من با شما در این پلتفرم‌ها همکاری خواهم کرد و پاسخ‌های لازم را ارائه خواهم داد.</description>
                <category>سعید نصیری</category>
                <author>سعید نصیری</author>
                <pubDate>Fri, 06 Aug 2021 20:10:46 +0430</pubDate>
            </item>
                    <item>
                <title>کنسول در جاوا اسکریپت</title>
                <link>https://virgool.io/digimaster/%DA%A9%D9%86%D8%B3%D9%88%D9%84-%D8%AF%D8%B1-%D8%AC%D8%A7%D9%88%D8%A7-%D8%A7%D8%B3%DA%A9%D8%B1%DB%8C%D9%BE%D8%AA-c2zjclatk3of</link>
                <description>consoleمقدمهدر پست قبلی به نحوه دیباگ در جاوا اسکریپت پرداختیم که از طریق لینک در اختیار شما هست ، در آنجا گفتیم کنسول لاگ گرفتن از دیتا ها مهم ترین کار است ،‌ شاید اکثر مشکل ها با console.log رفع شوند ولی کنسول هایی دیگری هم وجود دارند که می توانند در حل سریع تر و کیفیت بهتر دیباگ به ما کمک کنند ،‌ در این پست قصد داریم چند کنسول پر کاربرد را معرفی کنیمconsole.assert()این کنسول بدین صورت کار می کند که شما شرطی را در پارامتر اول قرار می دهید ،‌ در پارامتر های بعدی می توانید مقدار هایی که نیاز دارید قرار دهید ، این مقدار ها در صورت false شدن شرط اول در کنسول نمایش داده می شوند.در صورت true بودن شرط کنسول چیزی را نمایش نمی دهد.console.assert(false, &#039;the word is %s&#039;, &#039;saeidfiy&#039;);console.assert()console.clear()یک کنسول بسیار ساده هست و برای پاک کردن تمام لاگ ها در محیط نمایش کنسول به کار می رود.console.clear();console.clear()console.count()یک فانکشن با حال هست که تعداد دفعاتی رو که اجرا می شود می شمارد و به شما اعلام می کنید ،‌ می توانید از این کنسول برای شمارش تعداد اجرای یک کد یا یک فانکشن استفاده کنید.console.count(&amp;quotsaeidfiy&amp;quot);console.count()console.error()برخی مواقع نیاز داریم که لاگ های که باعث اررور می شوند را جدا از لاگ های دیگر ببینیم تا توجه بیشتری نسبت به آن ها داشته باشیم در این موارد می توانیم برای شاخص کردن لاگ از console.error استفاده کنیم تا لاگ های اررور بصورت قرمز ظاهر شوند.console.error(&#039;saeidfiy&#039;)console.error()console.time()بعضی از مواقع پیش میاید که سرعت اجرای کد برای شما مهم هست ،‌ در این مواقع ما به دنبال ابزاری هستیم که تایم بین شروع تا پایان یک فانکشن را به ما نشان دهد ،‌ شما می توانید از console.time استفاده کنید به این صورت که console.time را در ابتدای  و console.timeEnd را در انتها فانکشن قرار می دهیم ، سپس فاصله زمانی بین اجرای این دو کنسول در لاگ به ما نمایش داده می شود.console.time(&#039;saeidfiy&#039;)
....
console.timeEnd(&#039;saeidfiy&#039;)console.time()سخن پایانیبرای داشتن یک دیباگ سریع و تمیز در جاوا اسکریپت می توانید از ابزار های معرفی شده در این پست استفاده کنید ولی به یاد داشته باشید که همه این ها فقط ابزار هستند و این فکر شماست که باگ را حل می کند ،‌ کنسول های بیشتری نیز وجود دارند که ترجیح دادم کاربردی ترین ها بعد از console.log را در این پست معرفی کنم.اگر سوالاتی دارید یا نیاز به برقراری ارتباط با من دارید، می‌توانید از طریق راه‌های ارتباطی زیر با من در تماس باشید:GitHubLinkedInمی‌توانید من را در این پلتفرم‌ها دنبال کنید و پیام‌ها و سوالات خود را با من در میان بگذارید. من با شما در این پلتفرم‌ها همکاری خواهم کرد و پاسخ‌های لازم را ارائه خواهم داد.</description>
                <category>سعید نصیری</category>
                <author>سعید نصیری</author>
                <pubDate>Fri, 30 Jul 2021 12:08:52 +0430</pubDate>
            </item>
                    <item>
                <title>دیباگ جاوا اسکریپت</title>
                <link>https://virgool.io/@Saeidfiy/%D8%AF%DB%8C%D8%A8%D8%A7%DA%AF-%D8%AC%D8%A7%D9%88%D8%A7%D8%A7%D8%B3%DA%A9%D8%B1%DB%8C%D9%BE%D8%AA-evhsv5ozhbhw</link>
                <description>دیباگ جاوا اسکریپتمقدمهدر برنامه نویسی قطعا شما به باگ های مختلفی بر می خورید که ممکن است خطای نحوی یا منطقی باشد ، در برخی مواقع باگ ها بدون علامت هستند یعنی شما هیچ  پیامی را دریافت نمی کنید ، بعضی از این باگ ها بسختی حل می شوند.به جستجو برای حل مشکلات و باگ ها در برنامه نویسی دیباگینگ می گویند.در ادامه به ارائه یکسری ابزار و روش می پردازیم که دیباگینگ را در کد های جاوااسکریپت آسان تر می کند.دیباگ عمومیهمیشه به یاد داشته باشید برای رفع باگ باید علت باگ را پیدا کرد خود باگ فقط ظاهر قضیه هست که برای ما قابل مشاهده هست اما علت باگ معمولا مثل باگ قابل مشاهده نیست.مرحله بعدی برای حل هر باگی اشکار کردن علت باگ هست که معمولا از log یا print استفاده می شود ،‌ شما هیچوقت نمی توانید چشم بسته ماشینی را تعمیر کنید.مورد بعدی که باید به یاد داشته باشید و هرگز فراموش نکنید این است که باگ ها قابل حل هستند ،‌ تا امروز میلیون ها باگ در کد های برنامه نویسی وجود داشته و حل شده ،‌ پس باگی که شما به آن خورده اید هم حل می شود.console.log()مهم ترین بخش دیباگ آشکار کردن علت های وابسته به باگ است ،‌ در کد های جاوااسکریپتی مناسب ترین راه استفاده از ()console.log است که قابل استفاده در وب و کدهای نود جی اس هست.&lt;!DOCTYPE html&gt;
&lt;html&gt;
&lt;body&gt;

&lt;h1&gt;saeidfiy&lt;/h1&gt;


a = 4;
b = 7;
c = a + b;
//BUG c must be 28 but it&#039;s 11 
console.log(c);


&lt;/body&gt;
&lt;/html&gt;debuggerدر برخی مواقع  باگ به وجود آماده منابع زیادی از سیستم را از ما می گیرد و کار دیباگ را برای ما سخت می کند یا اجرای کد جاوااسکریپت زمان زیادی می برد در این گونه موارد در قسمت های حیاتی کد که احتمال می هیم باگ در آن قسمت وجود دارد و در حال اشکار سازی علت ها هستیم می توانیم از debugger استفاده کنیم تا به محض اجرای آن قسمت از کد اجرا متوقف شود.if (thisThing) {    
debugger;
}دیباگ در مرورگردر مرورگر برای دسترسی به ابزار های توسعه دهنده می تون از کلید f12 یا ctrl + shift + i استفاده کردمحیط کنسول مرورگردر ابزار باز شده می توان console.log هایی که در کد نوشته بودید را مشاهده کنید.console.table()اگر قصد دیباگ متغیری را دارید که به صورت آبجکت هست برای دیباگ بهتر  و تمیز تر می توان از console.table استفاده کرد ،‌ نحوه استفاده شبیه console.log هست با این تفاوت که مقدار ورودی باید آبجکت باشد.var animals = [
    { animal: &#039;Horse&#039;, name: &#039;Henry&#039;, age: 43 },
    { animal: &#039;Dog&#039;, name: &#039;Fred&#039;, age: 13 },
    { animal: &#039;Cat&#039;, name: &#039;Frodo&#039;, age: 18 }
];
 
console.table(animals);console.table()سخن پایانیشاید به نظرتان بیاید که مطالب گفته شده خیلی ساده هست ، باید بگم قسمت اصلی کار همین چند قسمت ساده هست ،‌ شما می توانید از ابزار های دیباگ مختلف استفاده کنید ولی همان ابزار ها هم همین مراحل را با شکل و رنگ های مختلف به شما نشان می دهند .اگر سوالاتی دارید یا نیاز به برقراری ارتباط با من دارید، می‌توانید از طریق راه‌های ارتباطی زیر با من در تماس باشید:GitHubLinkedInمی‌توانید من را در این پلتفرم‌ها دنبال کنید و پیام‌ها و سوالات خود را با من در میان بگذارید. من با شما در این پلتفرم‌ها همکاری خواهم کرد و پاسخ‌های لازم را ارائه خواهم داد.</description>
                <category>سعید نصیری</category>
                <author>سعید نصیری</author>
                <pubDate>Sun, 25 Jul 2021 18:17:50 +0430</pubDate>
            </item>
                    <item>
                <title>۱۲ دستور پر کاربرد لینوکسی</title>
                <link>https://virgool.io/digimaster/%DB%B1%DB%B2-%D8%AF%D8%B3%D8%AA%D9%88%D8%B1-%D9%BE%D8%B1-%DA%A9%D8%A7%D8%B1%D8%A8%D8%B1%D8%AF-%D9%84%DB%8C%D9%86%D9%88%DA%A9%D8%B3%DB%8C-p5tz6trwsanv</link>
                <description>دستورات لینوکسیمقدمه در لینوکس دستورات ترمینالی زیادی وجود دارد در این پست قصد دارم ، دستورات پر کاربرد و مهم لینوکس معرفی کنم ،‌ دستوراتی که در ادامه توضیح خواهم داد مثل مکالمه روزمره شما می مونه ، کسانی که به لینوکس مهاجرت کردند و یا قصد شناخت بیشتر از لینوکس را دارند برای مکالمه روز مره در دنیای لینوکسی به این اطلاعات نیاز خواهند داشت.aliasاز این دستور برای انتخاب نام جایگزین برای دستورات لینوکسی استفاده می شود ،‌ اما باید توجه کرد که این نام به طور موقت اعمال می شود و بعد از بستن ترمینال دستور جایگزین ما حذف می شود.‍‍‍‍alias cls=clearاگر دستور بالا را درترمینال اجرا کنید خواهید دید که بجای استفاده از clear برای تمیز کردن ترمینال می توانید از cls استفاده کنید که شبیه برادر ویندوز خود است ،‌ اما توجه کنید که اگر ترمینال را ببندید این alias از بین می رود.alias۲. catاین دستور مخفف concatenate هست که محتویات یک فایل را در صفحه ترمینال نشان می دهد.cat saeidfiy.txtcat۳. lsشما در لینوکس به لطف میز کار های لینوکس توانایی مشاهده فولدر ها و فایل ها را به صورت گرافیکی دارید ولی برای داشتن کیفیت بالاتر و سرعت بیشتر برای مشاهده ی لیستی از فایل ها و فولدر های خود می توانید از دستور زیر استفاده کنید‍‍lsاگر نیاز به جزئیات بیشتری نیاز دارید می توانید از ls -laاستفاده کنید.ls۴. mkdirاگر یادتان باشد در ویندوز برای ساخت یک فولدر جدید یک راست کیلک و بعدش یک چپ کلیک نیاز بود ، اما در سیستم لینوکسی ساخت فولدر جدید متفاوت است اما به لطف میز کار های موجود برای سیتم های لینوکسی می توان تجربه کاربری مشابه ویندوز داشت.‍‍mkdir saeidfiyدستور بالا برای ما یک فولدر به اسم saeidfiy را می سازد .mkdir۵. cdجا به جا شدن بین فولدر ها در میز کار گرافیکی و ترمینال دقیقا مثل ویندوز هست ،‌ یعنی در محیط command prompt ویندوز هم از دستور cd برای جا به جایی بین دایرکتوری ها استفاده می شود.command prompt cdاما در اینجا قصد توضیح درباره ی command prompt را نداریم پس یک مثال لینوکسی را نشان می دهیمcd saeidfiycdبرای بازگشت به فولدر قبلی از دستورcd ..cd ..استفاده می کنیم.۶. chmodدر لینوکس برای کنترل دسترسی به فایل ها و دایرکتوری ها از دستور chmod استفاده می شود و برای این کار دو روش وجود دارد که ما به روش عددی آن می پردازیم ،‌ ابتدا با عدد ها آشنا شویم:0: No permission1: Execute permission2: Write permission3: Write and execute permissions4: Read permission5: Read and execute permissions6: Read and write permissions7: Read, write and execute permissionsدر لینوکس سه سطح برای دسترس وجود دارد که هر سطح با توجه به عددی که به آن داده می شود اجازه خواندن ،‌ نوشتن و اجرا شدن را به یوزر ، گروه یا دیگران می دهد.chmod 766 saeidfiy.txtchmod۷. echoاز دستور echo برای چاپ مقدار دلخواه در صفحه ترمینال استفاده می شود echo &amp;quotsaeidfiy at virgool.io&amp;quotechoمی توان با استفاده از این دستور نام یوزر فعلی را هم مشاهده کردecho $USERecho userعلاوه برا این می توان با این دستور یک فایل با محتوای دلخواه را هم ساخت:echo &amp;quotsaeidfiy at virgool.io&amp;quot &gt; saeidfiy00.txtecho file۸. touchبرای ساخت فایل در لینوکس روش های متفاوتی وجود دارد در این قسمت به ساخت فایل با touch می پردازیمtouch saeidfiy01.txttouch۹. historyاگر بعد از اجرای دستور و بستن ترمینال یادتان رفته که آخرین بار چه دستوری را اجرا کردید می توانید با history تاریخچه ای از دستورات خود را مشاهده کنید.historyhistory۱۰. mvبرای جا به جایی فایل ها و دایرکتوری ها می توان از mv استفاده کرد.mv saeidfiy01.txt saeidfiy/mvهمچنین برای تغییر نام فایل ها هم می توان از این دستور استفاده کرد.mv saeidfiy01.txt saeidfiy.txtmv change file name۱۱. cp از دستور cp برای کپی کردن فایل ها یا دایرکتوری ها استفاده می شود cp saeidfiy00.txt saeidfiy/cp۱۲. manدر آخر هم به دستور man می پردازیم که می تواند اطلاعات بیشتری را درباره کامند هایی که اجرا می کنید در اختیار شما قرار دهد .man lsmanmanسخن پایانیدستورات لینوکسی به همین تعداد محدود نمی شود و تعداد زیادی دستور وجود دارد که ما در اینجا به پر کاربردترین انها پرداختیم ،‌ لازمه یادگیری این دستورات استفاده و تمرین هست پس حتما پس از مطالعه این پست دستورات یاد داده شده را تمرین کنید.اگر سوالاتی دارید یا نیاز به برقراری ارتباط با من دارید، می‌توانید از طریق راه‌های ارتباطی زیر با من در تماس باشید:GitHubLinkedInمی‌توانید من را در این پلتفرم‌ها دنبال کنید و پیام‌ها و سوالات خود را با من در میان بگذارید. من با شما در این پلتفرم‌ها همکاری خواهم کرد و پاسخ‌های لازم را ارائه خواهم داد.</description>
                <category>سعید نصیری</category>
                <author>سعید نصیری</author>
                <pubDate>Fri, 16 Jul 2021 14:30:15 +0430</pubDate>
            </item>
                    <item>
                <title>مهاجرت به لینوکس</title>
                <link>https://virgool.io/@Saeidfiy/%D9%85%D9%87%D8%A7%D8%AC%D8%B1%D8%AA-%D8%A8%D9%87-%D9%84%DB%8C%D9%86%D9%88%DA%A9%D8%B3-fem6qyarwz1c</link>
                <description>مهاجرت به لینوکسمقدمه:اکثر برنامه نویسان و کارکنان حوزه کامپیوتر به احتمال زیاد در سال های اولیه کار خود با سیستم عامل لینوکس آشنا می شوند و تازه متوجه می شوند که سیستم عاملی بجز ویندوز وجود دارد ?در این موقع خیلی ها تصمیم می گیرند که به لینوکس مهاجرت کنند و وارد زندگی متن باز بشوند?در این مسیر چالش های مختلفی وجود دارد که من در طول یکسال مهاجرت به لینوکس با آنها مواجه شدم و برای شما مطرح می کنم.چرا به لینوکس مهاجرت کنم؟برای این که بحث گرم تر و روان تر بشه و ابتدای کار را با یک مثال شروع می کنم.فرض کنید شما می خواهید به کشور دیگری مهاجرت کنید با چه چالش هایی مواجه می شوید؟آیا زبان آن کشور را متوجه می شوید ؟آیا فرهنگ آن کشور با شما سازگار است؟اصلا چه دلیلی دارد که مهاجرت کنید؟  بله ،‌ حتما این موضوع را در نظر بگیرید، شاید دلیلی برای مهاجرت وجود نداشته باشد ،‌ شاید شما فقط به یک مسافرت نیاز دارید.اگر شما یک گیمر هستید و بدون گیم نمی توانید زندگی کنید باید بگم که در لینوکس دیگه از بازی ها گرافیکی ویندوز خبری نیست.بازی لینوکسیبرای این که یک سفری در لینوکس داشته باشید می توانید از مجازی ساز ها استفاده کنید و لینوکس را مانند برنامه ای مثل برنامه های دیگر ویندوز استفاده کنید  یا هم زمان ویندوز و لینوکس را روی یک سیستم داشته باشید که مثل این است که شما به کشوری دیگری محاجرت کرده اید ولی آخر هفته ها به کشور مبدا برمی گردید.توزیع های لینوکس:حالا که تصمیم گرفتید قصد مسافرت دارید یا مهاجرت باید به دنبال کشور مقصد باشید ،‌ توزیع های لینوکس زیادی با قابلیت ها و ویژگی های متفاوتی وجود دارد ،‌ چند نمونه را به طور کوتاه معرفی می کنم.مینت (mint) : این توزیع دارای میزکاری شبیه ویندوز هست برای کسانی که می خواهند کشور مقصد شبیه کشور خودشان باشداوبونتو (ubuntu) : یک توزیع لینوکس ساده که می توانید شخصی سازیش کنید برای کسانی که می خواهند کشور مقصد مهاجرپذیر باشدسنت او اس (centos) : توزیع لینوکسی کاربردی برای کسانی که می خواهند مهاجرت کاری انجام دهند.من به توزیع نیاز داشتم که بتوانم تمام کار هام را باهاش انجام بدم به همین دلیل تصمیم گرفتم ابونتو را نصب کنم و شخصی سازیش کنم. نصب ابونتو کار زیاد سختی نیست ولی خیلی هم ساده نیست و توی این پست هم قصد نداریم روش گرفتن پاسپورت برای مهاجرت را بیان کنیم ولی می توانید از اینجا نحوه نصب را یاد بگیرد.چالش ها:حالا فرض می کنیم شما تمام کارها لازم برای مهاجرت را انجام دادید و الان در کشور مقصد هستید ،‌ اولین وسیله ای که به آن نیاز دارید بر قراری ارتباط هست بنابراین دانستن زبان آن کشور ضرروری است ،‌ شما در لینوکس برای این که تجربه خوبی داشته باشید باید کار کردن با ترمینال لینوکس را بلد باشید ،‌ شما می توانید خلاصه ای از دستورات ترمینال را از اینجا مطالعه کنید.ترمینال لینوکس  در ادامه زندگی شما در کشور مقصد شما باید جایگزین های برای فعالیت های روزمره خود داشته باشید مثلا به احتمال زیاد رژیم غذایی شما باید تغییر کند ، در لینوکس ابزار ها جایگزین مختلفی وجود دارد مثل لیبر آفیس بجای ماکروسافت آفیس و گنو بجای فتوشاپ ،‌ تقریبا برای تمام کار های روزمره شما ابزار لازم وجود دارد ولی باید توجه کنید که کار کردن با آن ها دقیقا مثل ویندوز نیست و شما با تجربه جدید رو به رو می شوید ولی در عوض به دلیل ورود به دنیای متن باز دیگه نیازی به کرک برای اکثر ابزار های کاری خود ندارید.امیدوارم تونسته باشم شمارو برای گرفتن تصمیم بهتر و منطقی تر در مهاجرت به لینوکس راهنمایی کرده باشم.اگر سوالاتی دارید یا نیاز به برقراری ارتباط با من دارید، می‌توانید از طریق راه‌های ارتباطی زیر با من در تماس باشید:GitHubLinkedInمی‌توانید من را در این پلتفرم‌ها دنبال کنید و پیام‌ها و سوالات خود را با من در میان بگذارید. من با شما در این پلتفرم‌ها همکاری خواهم کرد و پاسخ‌های لازم را ارائه خواهم داد.</description>
                <category>سعید نصیری</category>
                <author>سعید نصیری</author>
                <pubDate>Thu, 08 Jul 2021 15:29:24 +0430</pubDate>
            </item>
            </channel>
</rss>