<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
    <channel>
        <title>نوشته های farshadfahimi</title>
        <link>https://virgool.io/feed/@farshadfahimi</link>
        <description>Developer</description>
        <language>fa</language>
        <pubDate>2026-06-16 17:09:36</pubDate>
        <image>
            <url>https://files.virgool.io/upload/users/33203/avatar/0fHyYR.png?height=120&amp;width=120</url>
            <title>farshadfahimi</title>
            <link>https://virgool.io/@farshadfahimi</link>
        </image>

                    <item>
                <title>چون با لاراول کار کردم کدم تمیزه!!!</title>
                <link>https://virgool.io/@farshadfahimi/%DA%86%D9%88%D9%86-%D8%A8%D8%A7-%D9%84%D8%A7%D8%B1%D8%A7%D9%88%D9%84-%DA%A9%D8%A7%D8%B1-%DA%A9%D8%B1%D8%AF%D9%85-%DA%A9%D8%AF%D9%85-%D8%AA%D9%85%DB%8C%D8%B2%D9%87-jukl1mafnndw</link>
                <description>آیا استفاده از فریمورک باعث تمیزی کد میشه؟برنامه نویس‌های backend باید خیلی این جمله رو شنیده باشن و شاید خودشون هم از مفهوم این جمله استفاده کرده باشن برای قانع کردن مجری و کارفرمای خودشون.ولی حقیقت امر اینه که فریمورک به تنهایی تمیزی ایجاد نمیکنه. فریمورک به شما یک ساختار کد نویسی ارائه میکن، مثلاً لاراول به شما ساختاری داده که باعث کپسوله سازی و زیبایی و خوانایی کد میشه مانند.ControllerModelViewFacadeAlias...هر کدوم از موارد بالا به بخشی از کد شما ساختار میده و قابل فهمش میکنه. مثلا برای دریافت اطلاعات و نمایش در ظاهر از Controller استفاده میکنیم پس میدونیم باید کجا دنبال لود کردن داده بگردیم.ولی آیا این برای زیبایی و خوانایی کد کافی هستش؟واضح که جواب این سوال خیر است، تا اینجا فقط یک ساختار داریم یک الگو ولی اینکه داخل هر متد شما چیکار میکنید مشخص نیست و اینجاست که نشون میده کد شما زیبا  و خوانا هست یا خیر که هنوز معلوم نیست.تجربه به من نشون داده این موضوع که کسی با مثلا php خام کد نویسی میکنه یا فریمورک نشان دهنده تمیزی کد نیست .زیبایی و خوانایی رو برنامه نویس ایجاد میکنه. کسانی هستند که با php خام کد نویسی میکنن و به شدت خوانا و قابل درکه کد نویسیشون ولی کسانی هستند که با لاراول یا خیلی از فریمورک های دیگه این کار رو میکنن و به شدت کد بدی دارن که قابل توصیف نیست.نمونه کد نویسی با لاراول به سبک کاملا مبتدی :-)این تصویر مربوط به یک پروژه هست که مدتی پیش به من تحویل داده شد تا بررسی کنم و نکاتی رو برای بهینه سازی آن ارائه بدم. البته این بخش کوچکی از هنر برنامه نویس بوده که حاضر نبوده از متد mix , asset لاراول استفاده کنه و اومده این مقدار ها رو ایجاد کرده تا ازشون برای نمایش استایل و اسکریپت استفاده بکنه.البته این کار خارجی بود ظاهرا و خیلی پول داده بودن واسه خریدش برای همین نمیخواستن بندازنش بیرون و یه چیز وطنی پیاده سازی کنن. :-)مثال‌هایی از این قبیل زیاد هستن و البته کم هم نیستن .یک کد تمیز ;-)این هم کدی بود که در یک پروژه دیدم به طور کامل از ظرفیت‌های لاراول استفاده کرده ساختار اون رو پیروی کرده و خیلی موارد دیگه.کلام آخر فریمورک به خودی خود گزینه خوبی هستش و مزایایی داره ولی باعث زیبایی کد نمیشه . فقط ساختاری رو به ما میده که در زمان توسعه برنامه نویس‌ها سریعتر با هم هماهنگ بشن و از یک ساختار یکپارچه استفاده کنن که برای همه آشنا باشه. استفاده کردن و پیروی از ساختار دست برنامه نویسه که باید هنرشو نشون بده</description>
                <category>farshadfahimi</category>
                <author>farshadfahimi</author>
                <pubDate>Sun, 05 Jul 2020 17:52:32 +0430</pubDate>
            </item>
                    <item>
                <title>استفاده از env در react-native</title>
                <link>https://virgool.io/iran-react-community/%D8%A7%D8%B3%D8%AA%D9%81%D8%A7%D8%AF%D9%87-%D8%A7%D8%B2-env-%D8%AF%D8%B1-react-native-ucaeddqo58rs</link>
                <description>در زمان توسعه اپ‌ها بزرگ شاید یکی از مهمتری نیازهای روز استفاده از env باشه. البته شما میتونید از env در اپ‌های کوچیک هم استفاده کنید که این بسته به تشخص شما و نیاز شماست. در زمان استفاده از react-native کانفیگ کردن env به شدت سخته به نظر من و دردسر های زیادی رو میتونه ایجاد بکنه براتون و به همین دلیل پیشنهاد نمیشه کسی اینکار رو خودش انجام بده.بعضی افراد هم هستن میخوان این مورد رو دور بزنن و زرنگ بازی در بیارن برای همین یک فایل به طور مثال index.js میسازن و متغیر‌ها رو اونجا قرار میدن به عنوان constant که زیاد جالب نیست چرا که اگر شما چند محیط مختلف داشته باشید مثل محیط‌های زیرdevelopmenttestproductionنمیتونید از این متغیر ها استفاده بکنید و مشکلاتی رو ایجاد میکنه.اینجا میخوام بهتون یک پکیج رو معرفی کنم به راحتی به کمک اون میتونید در react-native از env استفاده بکنید. که نصب و استفاده از اون بسیار سادست. البته جامعه بسیار قویی هم داره و در خیلی از جاها از اون استفاده شدهکه میتونید به این لینک برید و توضیحات تکمیلی رو ببینید. برای نصب این پکیج به سادگی باید دستور زیر رو در ترمینال وارد کنید.npm install react-native-config
// or
yarn add react-native-configیکم باید صبر کنید تا پکیج نصب بشه بعد از اون میتونید یک فایل env در مسیر اصلی پروژتون ایجاد کنید و متغیرها رو تعریف کنید.برای android باید یک کار دیگه هم انجام بدید.به مسیر روبرو برید android/app/build.gradle و خط زیر رو بهش اضافه کنید.// 2nd line, add a new apply:
apply from: project(&#039;:react-native-config&#039;).projectDir.getPath() + &amp;quot/dotenv.gradle&amp;quotنکته: اگر در زمان توسعه متغیر ها رو تغییر دادید برای اینکه تغییرات اعمال بشه و مقادیر صحیح جدید رو داشته باشید باید یکبار مجدد از برنامه build بگیرید و بعد برنامه رو start کنید.روش استفاده به این صورت هستش که در هر فایل js که خواستید از این متغیر‌ها استفاده بکنید باید به روش زیر باشهimport Config from &#039;react-native-config&#039;;از حالا با کمک متغیر Config به تمام متغیرهایی که در env تعریف کردید دسترسی دارید.</description>
                <category>farshadfahimi</category>
                <author>farshadfahimi</author>
                <pubDate>Mon, 06 Apr 2020 00:21:26 +0430</pubDate>
            </item>
                    <item>
                <title>نصب Nodejs با طعم لینوکس(ubuntu)</title>
                <link>https://virgool.io/@farshadfahimi/%D9%86%D8%B5%D8%A8-nodejs-%D8%A8%D8%A7-%D8%B7%D8%B9%D9%85-%D9%84%DB%8C%D9%86%D9%88%DA%A9%D8%B3ubuntu-ldrb5fgpppnm</link>
                <description>nodejsاین روزها منظورم زمانی که این مطلب رو مینویسم Nodejs به سرعت داره رشد میکنه و بین برنامه نویس ها محبوبیت خاصی پیدا کرده. خیلی از برنامه‌نویس‌ها و همینطور شرکت‌ها تمایل پیدا کردن که به این سمت برن. اگر شما از لینوکس استفاده میکنید یا  حتی ویندوز یا مک برای استفاده از اون باید اول نصبش کنید.چیزی که همیشه هم گفتم داکیومنت دوست شماست و میتونید همه چیز رو اونجا یاد بگیرید.خب بریم سراغ اصل مطلباگر با گیت هاب راحت تر هستید برای کار میتونید برید به اینجا تا بدونید باید چیکارا بکنید و در غیر اینصورت میتونید ادامه مطلب رو بخونید تا بدونید باید پله پله چیکار بکنید :-)شما زمانی که میخواید بدونید آیا روی سیستم شما nodejs نصب هست یا نه اول ترمینال رو باز کنید بعد دستور زیر رو داخلش تایپ کنیدnode -v//ornodejs -vهر کدوم از دو تا دستور بالا رو استفاده کنید مشکلی نداره و به شما ورژن nodejs روی سیستم رو  نشون میده.و اگر نداشته باشید میگه این پکیج وجود نداره.خب اینو باید بگم که nodejs ورژن های مختلفی داره و شما هر ورژنی رو که دوست داشته باشید می‌تونید نصب کنید. راه ساده اینه که داخل ترمینال البته داخل ubunut دستور زیر رو وارد کنید.sudo apt install nodejsکه میاد و برای شما nodejs رو نصب میکنه. البته من این روش رو پیشنهاد نمیکنم چون نسخه‌ای رو که براتون نصب میکنه احتمال زیاد خیلی قدیمی هستش و نمیتونید از بعضی چیزا استفاده کنید مثلا npx چون در کنارش میاد npm 3 رو براتون نصب میکنه که خیلی قدیمیه.بهترین راه اینه که مستقیم بریم و خودمون نصبش کنیم. لیست نسخه‌های مختلف برای توزیع‌‌های مختلف رو میتونید اینجا ببینید یا اینکه اگر دوست دارید به طور دستی اون رو نصب کنید.من اینجا نسخه ۱۲ رو نصب میکنم که باید دستورهای زیر رو به ترتیب وارد کنید. البته اگر curl رو روی سیستم ندارید قبلش دستور زیر رو وارد کنیدsudo apt install curlبعد میتونید برید سراغ مرحله بعد#ubunutcurl -sL https://deb.nodesource.com/setup_12.x | sudo -E bash -sudo apt-get install -y nodejsبعد از زدن دستور یکم صبر کنید تا پکیج دانلود و نصب بشه بعد با زدن دستور اول که گفتم میتونید ببینید نسخه ۱۲ nodejs رو سیستم شما نصب شده.زمانی که شما nodejs رو نصب میکنید به همراهش npm هم نصب میشه که برای مدیریت پکیج ها هستش که برای دیدن اون هم میتونید از دستور زیر استفاده کنید.npm -vاگ میخواید از npx هم استفاده کنید یادتون باشه nodejs شما بهتره نسخش بالای ۱۰ باشه و همینطور نسخه npm هم ۶ باشه.</description>
                <category>farshadfahimi</category>
                <author>farshadfahimi</author>
                <pubDate>Thu, 02 Apr 2020 14:14:16 +0430</pubDate>
            </item>
                    <item>
                <title>تجربه اولین برنامه موبایل به کمک react-native</title>
                <link>https://virgool.io/@farshadfahimi/%D8%AA%D8%AC%D8%B1%D8%A8%D9%87-%D8%A7%D9%88%D9%84%DB%8C%D9%86-%D8%A8%D8%B1%D9%86%D8%A7%D9%85%D9%87-%D9%85%D9%88%D8%A8%D8%A7%DB%8C%D9%84-%D8%A8%D9%87-%DA%A9%D9%85%DA%A9-react-native-thcxctlff4qx</link>
                <description>react nativeاین روزها با توجه به اینکه تلفن‌های همراه جایگاه خیلی خوب و بزرگی پیدا کردن در بین مردم شرکت‌ها به سمتشون اومدن و باعث شده که بازار برنامه نویسی برای تلفن‌های همراه هم  رشد خوبی داشته باشه.البته در کشور ما به خاطر تحریم‌ها و مشکلاتی که وجود داره سیستم عامل &#x60;android&#x60; به شدت رشد خوبی داشته نسبت به &#x60;ios&#x60;.برای نوشتن برنامه های موبایل چند تا راه هستش یک اینکه از همون زبونی که شرکت گفته استفاده کنید مثلا توی موضوع &#x60;android&#x60; میشه به &#x60;java&#x60; و &#x60;kotlin&#x60; اشاره کرد.و یا اینکه با کمک برخی از زبون های دیگه مثل &#x60;javascript&#x60; اون رو پیاده سازی کرد که البته تو این مورد باید از برخی کتابخونهها یا فریمورک  ها انجام بشه مثل &#x60;flutter&#x60; یا &#x60;react-native&#x60; و ...خب بریم سراغ اصل مطلباین نکته ها یادت باشهاولین قدم اینه که بدونید داکیومنت react-native کاملا دوست شماست  و منبع اصلی شما.مراحل راه اندازی یکم دردسر داره و خب به خاطر تحریم ها بدتر هم شده ولی اگر دقت کنید خیلی سادست.این آموزش هم برای سیستم عامل‌های لینوکسی هستش و نسخه &#x60;ubuntu&#x60;.نیازمندی هایی که لازم دارید روی سیستم شامل موارد زیر هستشباید  NodeJs روی سیستم نصب باشه حتما و اگر هم نصب نیست میتونید برید به لینک گیت یا اینکه به سایت خودش مراجعه کنید که پیشنهاد من همون لینک گیت هستش.و بعدش یکی از پکیج منیجر ها مثل   yard یا npm ر نصب کنید که پیشنهاد من همون &#x60;npm&#x60; هستش. که میگن همراه nodejs خودش نصب میشه.مورد بعدی  java هستش که باید jdk رو نصب کنید روی سیستم و برای نصبش میتونید یه سر به این لینک بزنید تا نصبش کنید. البته خب شما لینوکسی ها باید بهتر بدونید راه های نصب یک پکیج به اندازه راه های رسیدن به خدا زیاد هستش پس بهترین رو خودتون انتخاب کنید. :-)یه ماشین مجازیمورد اصلی که نیاز دارید یه ماشین مجازی هستش که باید داشته باشید برای اینکار میتونید از &#x60;genimotion&#x60; استفاده کنیدیا اینکه همون &#x60;android studio&#x60;رو نصب کنید که راحت تر هستش و هم براتون ادیتور هستش و هم ماشین مجازی داره و یه سری خوبی های دیگه که خود گوگل پیشنهادش داده.اینجا ما از همون &#x60;android studio &#x60; استفاده میکنیم که راحت تر هستش و داخل خود فروشگاه لینوکس وجود داره و میتونید با ‍‍کمک &#x60;snap&#x60; نصبش کنید به راحتی.چون تو ایران هستید و گوگل ما رو تحریم کرده باید یکم دورش بزنید و میتونید از یک فیلتر شکن خوب استفاده کنید یا اینکه پروکسی تنظیم کنید برای کل سیستم یا اینکه فقط برای خود اندروید استودیو اینکار رو بکنید که  زحمت آموزش کاملش رو دوستان کشیدن.فقط یادتون باشه حتما &#x60;NDK&#x60; رو هم باید نصبش کنید.خب بعدش میتونید داخل ترمینال بررسی کنید ببینید چیزایی که نصب کردید درست نصب شدن واینکه چه نسخه ای هستن.میتونید از دستورای زیر استفاده کنید که من نتیجه سیستم خودم رو داخل عکس پایینی گذاشتم.nodejs  -v
//
npm -v
//
java -versionپکیج‌های مورد نیاز برای شروع به کاربعد از اون باید بریم یه سر بزنیم به &#x60;bashrc&#x60; و چند خط به آخرش اضافه کنیم مثل عکس زیر تنظیمات sdkexport ANDROID_HOME=$HOME/Android/Sdkexport PATH=$PATH:$ANDROID_HOME/emulatorexport PATH=$PATH:$ANDROID_HOME/toolsexport PATH=$PATH:$ANDROID_HOME/tools/bin export PATH=$PATH:$ANDROID_HOME/platform-toolsاینها یک سری مسیر هستن که اندروید از اونها استفاده میکنه مثل مسیر sdk و یا emulator که البته اینها پیشفرض هستن و اگر شما مسیر رو تغییر داده باشید در زمان نصب میتونید اینها رو ویرایش کنید بعد فایل رو ذخیره میکنید.فقط برای یادآوری بگم که &#x60;source .bashrc&#x60; رو یادتون نره :-)تا اینجا باید تمام نیازمندی ها رو نصب کرده باشید. خب من یکم حساسم و همه چیز رو پوشه بندی میکنم برای همین تمام برنامه های react-native رو میخوام بزارم داخل پوشه app برای همین این فایل رو میسازم و واردش میشم .بعد از این با وارد کردن دستور زیر یک پروژه react-native خام برای شما ساخته میشه.البته &#x60;AwesomeProject&#x60; اسم پوشه هستش و میتونید تغییرش بدید و اسم پروژه رو روش بزارید.بهتره نام پروژه رو هم camelCase بنویسید.اگر بعد از وارد کردن دستور زیر خطایی رخ داد احتمال زیاد میتونه به خاطر تحریم ها باشه که نمیتونه پکیج های مورد نظرش رو دانلود کنه با فعال کردن vpn میتونید مشکل رو حل کنید.npx react-native init AwesomeProjectبعد از اینکه دستور بالا به طور کامل اجرا شد باید وارد پوشه اپلیکیشن در اینجا &#x60;AwesomeProject&#x60;  بشید.میتونید فایل ها وساختار پروژه رو اینجا ببینید بعد از اون باید دستور های زیر رو به ترتیب وارد کنید.npx react-native run-android
npm react-native startاگر زمان اجرای دستور اول ماشین مجازی شما به طور اتوماتیک اجرا نشد خودتون اون رو اجرا کنید دستی و مجدد دستور اول رو وارد کنید.زمانی که دستور دوم اجرا بشه شاید خطایی دیده بشه که با زدن R این مشکل حل میشه.اگر حل نشد میتونید برنامه رو کلا ببندید از روی گوشی و مجدد اجراش کنید.چند نکته مهمسعی نکنید gradle رو به صورت سراسری روی سیستم نصب کنید چون در زمان ساخت پروژه امکان داره نسخه ها تداخل داشته باشه و پروژه اجرا نشه و خطا بده بهتون.بعد از نصب وارد پوشه android بشید داخل پروژه و فایل &#x60;local.properties&#x60; رو پیدا کنید و اگرم وجود نداره خودتون بسازیدش و خط زیر رو داخلش قرار بدید که مسیری هستش که sdk درش ذخیره شده.sdk.dir=/home/{path}/Android/Sdkفایل با پسوند &#x60;jsx&#x60; رو &#x60;react native&#x60; تشخیص نمیده و خطا میده زمان وارد کردنش بهتره اونا رو با پسوند &#x60;js&#x60; ذخیره کنید و تنظیماتش یه پله بالاتره که اینجا جاش نیستتوجه کنید که نسخه های   react-native ماهانه به روزرسانی میشن و میتونه زیاد باگ داشته باشه یعنی باگ داخل هستش باشه مثلا پکیجی رو که میخواد هسته نصب کنه اون نسخش وجود نداشته باشه و باید برید تغییرش بدید داخل node-modules یا امثال این شاید بهترین راهکار برای اینا این باشه که چند نسخه پایینتر که stable هستش رو نصب کنیدامیدوارم </description>
                <category>farshadfahimi</category>
                <author>farshadfahimi</author>
                <pubDate>Wed, 01 Apr 2020 18:53:54 +0430</pubDate>
            </item>
            </channel>
</rss>