<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
    <channel>
        <title>نوشته های آرش رسول زاده</title>
        <link>https://virgool.io/feed/@arashrasoulzadeh</link>
        <description>برنامه نویس ارشد - اسنپ مارکت</description>
        <language>fa</language>
        <pubDate>2026-06-10 13:11:03</pubDate>
        <image>
            <url>https://files.virgool.io/upload/users/1655/avatar/hkXcI4.png?height=120&amp;width=120</url>
            <title>آرش رسول زاده</title>
            <link>https://virgool.io/@arashrasoulzadeh</link>
        </image>

                    <item>
                <title>آموزش امن تر کردن سرور با نرم افزار fail2ban.</title>
                <link>https://virgool.io/@arashrasoulzadeh/%D8%A2%D9%85%D9%88%D8%B2%D8%B4-%D8%A7%D9%85%D9%86-%D8%AA%D8%B1-%DA%A9%D8%B1%D8%AF%D9%86-%D8%B3%D8%B1%D9%88%D8%B1-%D8%A8%D8%A7-%D9%86%D8%B1%D9%85-%D8%A7%D9%81%D8%B2%D8%A7%D8%B1-fail2ban-evqfc955fsaa</link>
                <description>روش های زیادی برای امن کردن یک سرور لینوکسی وجود دارد، با این حال یکی از ساده ترین راه ها برای جلوگیری از رندوم لاگین و بروتفورس شدن سرور شما، استفاده از نرم افزار fail2ban است. با نصب این نرم افزار و فعال کردن جیل روی ssh‌، می توانید تعیین کنید که اگر یک آیپی تعداد x ورود ناموفق داشت به مدت y دقیقه بن شود.این کار هم به سادگی قابل انجام است. برای شروع باید ابتدا باید نرم افزار fail2ban را نصب کنید، اگر به درستی برای سیستم عامل سرور centos رو انتخاب کرده اید. ابتدا ایپل را فعال کنید :yum install -y epel-releaseسپس توسط دستور زیر نرم افزار رو نصب کنید:yum install -y fail2banحالا باید یک کانفیگ خیلی ساده انجام دهید تا کار سیستم شروع بشود. برای خوندن ادامه مقاله اینجا کنید کنید.</description>
                <category>آرش رسول زاده</category>
                <author>آرش رسول زاده</author>
                <pubDate>Sun, 14 Nov 2021 15:02:50 +0330</pubDate>
            </item>
                    <item>
                <title>برنامه نویسی رو از کجا شروع کردم ؟</title>
                <link>https://virgool.io/ArashRasoulzadeh/%D8%A8%D8%B1%D9%86%D8%A7%D9%85%D9%87-%D9%86%D9%88%DB%8C%D8%B3%DB%8C-%D8%B1%D9%88-%D8%A7%D8%B2-%DA%A9%D8%AC%D8%A7-%D8%B4%D8%B1%D9%88%D8%B9-%DA%A9%D8%B1%D8%AF%D9%85-bf3kselpxc3w</link>
                <description>اگه این مقاله رو باز کردید، احتمالا شما هم به این مشکل خوردید که اول های راه هستید و نمیدونید که چجوری باید مسیر رو شروع کنین،توش بمونین و ادامه بدین. تو این مقاله سعی میکنم گوشه ای کوتاه از تجربه خودم رو بگم شاید واسه تون انگیزه بخش یا شاید هم برعکس!شروع من از بچه گی عاشق کامپیوتر بودم. ۷-۸ ساله بودم که پدرم برام یه کامپیوتر گرفت. با مانیتور crt، از این موس توپی ها، کیبرد مکانیکی سفید. یادمه cpu پنتیوم بود و فکر کنم ۵۱۲ مگابایت رم. اون موقع تازه ویندوز ۹۵ فکر کنم داشت سی دی هاش میومد و تو شهر کوچیکی که من زندگی میکردم ( هشتپر ) ، فقط یه موسسه بود که آموزش استفاده از کامپیوتر میداد. من آموزش استفاده از کامپیوتر رو از سیستم عامل داس یاد گرفتم. یه فلاپی دیسک کوچیک هم داشتم که توش فایل میساختم، دایرکتوری میساختم و ... یه چند ماهی که گذشت یه سیدی یا فلاپی یادم نیست گرفتم که توش کلی بازی بود، عاشق علاادین شده بودم و همش بازی میکردمش، و همش هم فامیل و دوست و آشنا مسخره میکردن که آره ۲۴ ای بازی میکنه و دستگاه بازی خریدین براش و اینا، که واقعا هم راست بود.بعد یه مدت که ویندوز ۹۸ نصب کردم. با بدبختی و هزار بار پاک کردن هرچی رو دیسک داشتم، داشتم با اینترنت کارتی دایال آپ میگشتم تو فروم ها (‌ احتمالا p30world.com ) که برخوردم به یه کانسپتی به اسم برنامه نویسی. و نرم افزاری به نام Visual Basic نسخه ۶...یه اتفاق جدید اواخر سال ۸۶ بود به طرز عجیبی علاقه مند شدم به این موضوع و بعد دانلود برنامه که یادمه دو سه روز طول کشید و کلی حرف از خانواده واسه نویز رو تلفن شنیدم، نصبش کردم و شروع کردم با آموزش هایی که توی فایل هلپ بود و از فروم میدیدم، واسه خودم دکمه میزاشتم که کلیک بشه آلرت بده سلام آرش!، بعد که پیشرفت کردم یه اینپوت گذاشتم که اسم رو از داخلش میخوند و آلرت میداد سلام {{اسم}} و این مسیر ادامه داشت تا من یه ماشین حساب نوشتم که نصف دکمه هاش کار نمیکرد اما انقدر ذوق کردم که تا یه هفته هی اجراش میکردم و میبستم و کم کم تابع جمع و ضرب و تقسیم رو بهش اضافه میکردم....ورود به دانشگاهسال ۸۸ بود که وارد دانشگاه شدم. کاردانی رو توی لاهیجان خوندم، اولین بار بود که از خانواده دور شده بودم و همه چیز برام جدید بود، از ظرف شستن بگیر تا خوراکی آماده کردن و سر و کله زدن با هم خونه ای ها و ارتباط با دخترا(!)‌. تو دانشگاه بهمون شبکه یاد دادن و من خیلی خیلی خوشحال بودم از چیزی که میخوندم. میکروکنترلر x86 رو یاد گرفتم،‌ برنامه نویسی با زبان اسمبلی، زبان c واسم مرحله آخر بود اون موقع و خیلی دوستش داشتم، عمومی ها رو هم یا میفتادم یا با زور پاس میکردم. ترم ۳-۴ بود که وسط عیاشی و درس با سیستم عامل اندروید آشنا شدم.ربات سبز پول ساز!داشتم وارد دانشگاه کارشناسی میشدم که رفتم یه گوشی اندرویدی خریدم ( Samsung Galaxy Fit ) که ببینم چی هست اندروید که انقدر هایپ شده، یادمه یه انسان خیرخواه اون موقع یه دوره ریکورد کرده بود که برنامه نویسی اندروید رو تصویری به صورت فارسی آموزش میداد. از سایت دانشگاه دانلودش کردم و همچنین JDK و ECLIPSE رو هم دانلود کردم و بقیه پیش نیاز های sdk رو هم از خونه با adsl ای که سه نفری پول گذاشته بودیم خریده بودیم دانلود کردم. و شروع کردیم با یکی از دوستام برنامه اندروید نوشتن، از برنامه های ساده بگیر تا کتاب آموزشی و ... تا این که کافه بازار یه پنل باز کرد که میشد برنامه بزاریم و بفروشیم. اصلا انتظار نداشتم کسی برنامه من رو بخره یا اصلا نگاهشون کنه، با نا امیدی اپلیکیشن رو گذاشتم و خب، نتیجه ماه های اول رو میتونین ببینین : واسه یه جوون ۲۳ ساله دانشجو سال ۹۲ بد نبود، فراتر از فراتر انتظاراتم بود. و ماه های بعدی هم به همین منوال بیشتر و کمتر میشد، من خوشحال بودم نه از این که یه پولی میاد، از این که از چیزی که دوستش دارم داره پول میاد. یه دو سال که گذشت و من درگیر درس دانشگاه و برنامه نویسی اپلیکیشن بودم، یه آموزشگاه ازم خواست که برم و توش مشغول تدریس برنامه نویسی اندروید بشم و منم از آموزش خیلی خوشم میومد و تونستم تو دو سال کارشناسی به بیش از ۱۰۰ نفر برنامه نویسی اندروید رو آموزش بدم (‌ بعد ها تو دانشگاه گیلان هم یه دوره برگذار کردم ) ،‌ تو همون آموزشگاه یکی از دوستام (مهیار توشه جو) به آموزش بازی سازی مشغول بود که بهم پیشنهاد داد یه گیم درست کنیم واسه تبلیغ موسسه که بعد ۱ سال سر و کله زدن با یونیتی و آرت زدن اون یکی دوستم (ساعد ایمان)، بازی پاندرو رو ریلیز کردیم که خب کلی هم بازخورد مثبت از مجلات اون موقع گرفت. استارت داونسال ۹۲ بود که اولین استارتاپ ویکندم رو شرکت کردم، چه میدونستم یه جوون ۲۲-۳ ساله شهرستانی که استارتاپ چیه، بورد چیه، اسکرام چیه، mvp چیه، همه این موارد واسم جالب بود و جدید و جذاب، و این که میتونستم کلی آدم های گنده اون موقع از لحاظ برنامه نویسی و پروداکت رو از نزدیک ببینم برام مثل یه آرزو بود. و این استارتاپ ویکند ها هی مثل خوره تو جون آدم مینداختن که آره تو میتونی این ایده توی مغرت رو بزنی و میلیاردر شی، اما خب تو بیشتر موارد شهرستانی بودن و سرمایه گذار نداشتن اصلا نمیزاشت تو پروداکت اولیه ات رو بتونی آماده کنی، چه برسه به این که به بازار ورود کنی. اما واقعا دانش و تجربه ای که از حرف زدن با بعضی منتور های ویکند ها نصیبم شد رو هیچوقت نمیتونستم جای دیگه به دست بیارم.برنامه نویسی از پشت !سال ۹۴ بود احتمالا که با یه سری از بچه ها جمع شدیم و یه شرکت کوچیک برنامه نویسی ( آن آفیشال )‌ زدیم دوره همی که پروژه بگیریم بزنیم و به یکی نیاز داشتیم که بک اند کار باشه، من کمی با جنگو واسه اپلیکیشن های خودم بک اند نوشته بودم اما از اونجا به صورت جدی شروع کردم به برنامه نویسی با php و چندین پروژه مختلف داخلی و از مشتری گرفتیم و تحویل دادیم کج و کوله،‌ بیشتر وقت مون هم با dota2 و کد و سیگار و آب! میگذشت،‌ تا اینکه یکی از دوستام بهم پیشنهاد داد بیا تهران و من رفتم بعد چندین جا مصاحبه دادن و فیل شدن وارد شرکت پشتیبان شدم، که خیلی بهم لطف داشتن بهم آفر دادن و تحلم کردن تو اون بی تجربه گیم. بعد از اون شرکت وارد دانرو شدم،‌ بعدش وارد یسنا تیم و بعدش هم که الان تو شرکت سويدی it-crown هستم. این مسیر ۳ ساله من تو تهران خیلی سخت بود و خیلی خیلی چیز ها یاد گرفتم و از چند ماه پیش هم با دوستام یه تیم برنامه نویسی خیلی خیلی خوب راه انداختیم که هم تو حوزه زیرساخت فعال هستیم و هم حوزه تولید نرم افزار.این فرا استراک چر !‌من از یه سال و خورده ای پیش به حوزه زیرساخت علاقه مند شدم، از کانفیگ ساده سرور شروع کردم تا مهاجرت به زیرساخت ابری و راه اندازی پایپلاین های ci/cd و مانیتورینگ و ... اما بیایین برگردیم اول این مسیر. من هیچی رو پروداکشن از سرور نمیدونستم و اولین پروژه هایی که گرفتم واقعا واقعا ۰ بودم اما با جرات و جسارت ( حماقت ؟ ) همیشگیم پریدم و دره ( بدون چتر ! ) و خدارو شکر تونستم تو راه افتادنم، چتر ساختن رو یاد بگیرم و گلیم خودم رو از آب بکشم. اشتباهاتمن یکی از اشتباهاتی که داشتم، پریدن از این شاخه برنامه نویسی به اون شاخه بود‌ (‌ که سیستم چرا ساز مغزم میگه که شرایط اینو میخواست ) و این باعث شد خیلی چیز یادبگیرم و همچنین باعث شد که نتونم تو همه شون به طور کامل دیپ بشم، اما از سه سال پیش که فقط روی php تمرکز کردم خیلی پیشرفت کردم چه کاری و چه از لحاظ دانش برنامه نویسی اشتباه دومم این بود که زودتر نیومدم تهران، واقعا شما وقتی تو شهرستانی نمیتونی زیاد این قضیه آیتی رو دنبال کنی، الان رو نبینین سر کرونا هیچی نیست (‌ امیدوارم وقتی این مقاله رو میخونین واسشون مهم باشه جونمون و همه واکسن زده باشم )، اون موقع که من اول اومده بودم به لطف آقای فرنود هر هفته جلسات همفکر تو شرکت های مختلف برگذار میشد و کلی آپدیت میشدیم.اشتباه سومم این بود که از کتاب، برنامه نویسی رو یاد نگرفتم، کتاب داریم تا کتاب البته. یک جمله هم در این زمینه بهتون میگم آویزه گوشتون کنین: قبل اینکه زبان برنامه نویسی رو یاد بگیرین، فریم ورک رو یاد نگیرین!نکات مثبتاولین نکته مثبت کارم این بود که اصرار داشتم رو هدفم. هر چقدر هم که پول درنمیومد، ادامه میدادم، تا جایی که به پول برسه ( واسه پول کار نمیکردم اما پول باید نتیجه کارتون باشه دیگه؟ درسته ؟ ).دومین نکته مثبت من تو کار این بود که خودم رو پرزنت میکردم، هر جا جمعی بود هر جا میتونستم افراد تاثیر گذار یا با تجربه تو اوکسیستم رو ببینم شرکت میکردم و تک تک حرف هاشون رو گوش میکردم و نکته برداری میکردم.سومین نکته مثبت کارم این بود که واسه کارم هزینه میکردم، چه از خرید یه سیستم خوب باشه تا ستاپ خوب، به نظر من شما هرچقدر شرایط کاری آرامش بخش تری داشته باشید، خروجی بهتری خواهید داشت.سخن آخر اگه برنامه نویسی رو دوست دارید، بچسبید بهش، حرف بقیه رو از این گوش بگیرید و از اون یکی بدید بیرون، مطمعن باشید که اگه علاقه باشه، هم پول میاد، هم راحتی.</description>
                <category>آرش رسول زاده</category>
                <author>آرش رسول زاده</author>
                <pubDate>Tue, 03 Aug 2021 23:14:19 +0430</pubDate>
            </item>
                    <item>
                <title>طراحی سیستم ماژولار با لاراول</title>
                <link>https://virgool.io/ArashRasoulzadeh/%D8%B7%D8%B1%D8%A7%D8%AD%DB%8C-%D8%B3%DB%8C%D8%B3%D8%AA%D9%85-%D9%85%D8%A7%DA%98%D9%88%D9%84%D8%A7%D8%B1-%D8%A8%D8%A7-%D9%84%D8%A7%D8%B1%D8%A7%D9%88%D9%84-odxxfex4sq6j</link>
                <description>همانطور که میدانید کد های زیادی هست که تو هر پروژه داریم تکرار میکنیم و همچنین هر به روز رسانی که میکنیم مجبوریم برگردیم و تو همه پروژه های قبلی هم اعمالش کنیم  ( برای مثال مشکلات امنیتی یا به روز رسانی api های شخص ثالث استفاده شده‌ و ... ).اما میتولنیم با یک سری از روش ها این سردرد ها رو کمتر کنیم. برای مثال میتوانیم کد هایی که زیاد استفاده میشه رو به صورت کتابخونه php دربیارم و جاهایی که میخواهیم استفاده کنیم. یه روش دیگه هم استفاده از سیستم های ماٰژولار هست. برای مثال اگه از لاراول استفاده میکنید. کتابخونه Laravel Modules میتونه بهتون کمک کنه که سیستم های مختلف رو به صورت ماژول های متصل ( یا کاملا جدا )‌ از هم طراحی کنید و در پروژه های مختلف استفاده کنید.استفاده از پکیج Laravel Modulesبرای شروع ابتدا پکیج لاراول ماژولز رو از لینک زیر نصب کنید:composer require nwidart/laravel-modulesسپس میتوانید با دستور زیر فایل های کانفیگ ماژول رو منتشر کنید:php artisan vendor:publish --provider=&quot;Nwidart\Modules\LaravelModulesServiceProvider&quot;اگه خواستید میتوانید تو فایل های کانفیگ تغییراتی که مد نظرتون هست اعمال کنید،‌ اگه نه هم با دستور زیر سیستم رو اینیت کنید:php artisan module:installبه صورت پیشفرض، فایل ها به صورت خودکار بارگذاری نخواهد شد، برای اینکار باید خط زیر رو به فایل کامپوزر اضافه کنید:سپس دستور composer dump-autoload را اجرا کنید.حالا میتوانید با استفاده از دستور زیر یک ماژول، برای مثال برای ذخیره نوت ها ایجاد کنید:php artisan module:make noteماژول ها در فولدر Modules ایجاد مشیوند که ساختار اینچنینی دارند:ساختار آشنایی هست؟ بعله تقریبا کپی ساختار لاراول هست با کمی تغییرات، بیایین یک مدل نوت درست کنیم:php artisan module:make-model NoteModel Noteاین مدل در فولدر Entities ساخته میشود.و یه روت تعریف کنیم براش، برای اینکار فایل api.php رو توی مسیر زیر باز میکنیم:Modules/Note/Routesو روت پست رو بهش اضافه میکنیم.و در فایل مایگریشن و پراپرتی fillable مدل، دو تا فیلد مورد نظر رو اضافه کرده و توسط لاراول آرتیسان مایگریشن رو اجرا میکنیم:php artisan migrateبه همین راحتی. البته خب میتونید روت رو به کنترلر وصل کنید. کنترلر های مدل در فولدر زیر قابل دسترس هستند:Modules/Note/Http/Controllersدقت کنید ماژول هایی که میسازید. توسط فایل جیسانی که در مسیر زیر هست فراخونی میشوند:/modules_statuses.jsonو میتوانید هر ماژولی که خواستید رو به راحتی آن یوز کنید. یا اینکه از دستور زیر استفاده کنید:php artisan module:unuse module_nameبرای فعال کردن مجدد ماژول :‌php artisan module:use module_nameهمچنین با دستور زیر میتوانید لیست ماژول های سیستم رو ببینید :php artisan module:listبرای سید کردن هم میتونید از دستور زیر استفاده کنید :php artisan module:seed module_nameو برای ساختن سیدر هم :php artisan module:make-seed  seeder_name module_nameبقیه کامند هارو هم میتوانید اینجا ببیند.بعد ساخت هر ماژول، میتوانید ماژول رو به گیت اختصاصی خودش پوش کنید و هرجای دیگه ای که خواستید استفاده کنید. دقت کنید تا جای امکان ماژول باید به هیچ ماژول دیگه ای/و یا تغییرات اجرا شده در لاراول متصل نباشد. بخشی از مقاله ترجمه شده مستقیم است از داک ماژول</description>
                <category>آرش رسول زاده</category>
                <author>آرش رسول زاده</author>
                <pubDate>Wed, 07 Jul 2021 23:48:25 +0430</pubDate>
            </item>
                    <item>
                <title>دلایل نارضایتی مصاحبه شوندگان در اکوسیستم استارتاپی !</title>
                <link>https://virgool.io/ArashRasoulzadeh/why-we-hate-interviews-ecbkpruznisz</link>
                <description>احتمالا شما هم تاکنون به این قضیه فکر کردید که مشکلات زیادی در جلسات مصاحبه شرکت های نرم افزاری ایران وجود دارد . استخدام آدم های اشتباه از یک سمت و مساله اخراج نیروها خصوصا در شرکت های بزرگ از سویی دیگر بسیار تامل برانگیز است .من در این مقاله قصد دارم نتیجه تحقیقاتی که در این زمینه انجام دادم را با شما به اشتراک بگذارم و امیدوارم که به شما چه در نقش مصاحبه شونده و چه در نقش مصاحبه گیرنده کمک کند .من حدودا از سه ماه پیش در توییتر سوال های مختلفی از دنبال کننده های خودم در رابطه با وضعیت استخدامی و کاری شرکت های ایرانی پرسیدم . اولین سوالی که پرسیدم این بود : کدام یک از شرکتها از نظر فنی، منابع انسانی، آرامش کاری، پیشرفت و درآمد جایگاه بهتری دارد ؟تعداد شرکت کنندگان در این نظر سنجی 575 نفر بود ، ۳۳۹ نفر (۶۰ درصد) به کافه بازار رای دادند و به ترتیب علی بابا ، دیجی کالا و اسنپ در رتبه های ۲تا ۴ قرار گرفتند . البته افرادی هم عقیده داشتند که شرکت های نام برده شده در نظر سنجی جزو برترین ها نیستند و شرکتی مثل ابرآروان از قلم افتاده است.سوال دیگری که  از دنبال کننده های خودم در توییتر پرسیدم این بود که بهترین و بدترین خاطره ای که از روز مصاحبه داشتند چه بوده ؟سوال مربوط به سال 98 بوده ولی تعدادی از خاطرات مربوط سال های قبل 98 است .130 نفر به این توییت پاسخ دادند که با آنالیز آنها به نتایج جالبی رسیدم . من درادامه تعدادی از این مشکلات و نظر شخصی خودم در باره هرکدام از آنها را بیان میکنم :عکس العمل بد مصاحبه کننده ( سخن طلبکارانه )به نظر من این رفتار بسیار غلط و آماتور هست ، در وهله اول شخصی که برای مصاحبه آمده، برده شما نیست و شما هم ارباب اون شخص نیستید. شخص مصاحبه شونده مسلما شرکت های دیگری هم برای مصاحبه خواهد رفت و این رفتار تا همیشه به عنوان یک خاطره بد در ذهن شخص نقش می بندد .سرکوب شدن اعتماد به نفساین کار ضربه روحی خیلی بدی به مصاحبه شونده وارد میکنه و اصلا اخلاقی و حرفه ای نیست ، اگر شمادانش بسیار بالایی دارید بسیار عالیست ، اما لطفا از کمبود دانش مصاحبه شونده نقد نکنید و فقط جلسه مصاحبه رو به طرز صحیحی مدیریت کنید .مرتبط نبودن سوالات با فیلد کاریدلیل مطرح شدن اینگونه سوالات در جلسه مصاحبه و تاثیرش در روند استخدامی شرکت کاملا نامشخص است .برای خود من بارها اتفاق افتاده و هنوزنفهمیدم دلیل اصلی آنها برای مطرح کردن این سبک سوالات چیست. مثلا واقعا لزوم پرسیدن سوالاتی درباره مفاهیم دیتا ساینس برای موقعیت شغلی مهندسی نرم افزار چیست ؟پرسیده شدن سوالات خصوصی ( وضعیت تاهل ، فرزند ... )بسیارعلاقه مندم تاثیرپاسخ این سوالات در روند مصاحبه بدانم . حتما شما هم احتمال میدهید که این سبک از سوال ها بیشتر از خانم ها پرسیده میشود واصلا پسندیده نیست . مجرد یا متاهل بودن شخص مصاحبه شونده انچنان به سازمان و شرکت شما ربطی ندارد ، پس لطفا نپرسید  .آیا یک فرد مشخص معروف در اکوسیستم را میشناسید یا خیر ؟یکی از خاطره ها با این مضمون بود که من از مصاحبه شونده پرسیدم فلانی رو میشناسی؟ گفت نه و من ریجکتش کردم. و طبعا بحث زیادی پیرامونش شکل گرفت که کار این فرد اشتباه بوده و ... که من ترجیح میدم در این مقاله به این مساله نپردازم .عدم اعلام نتیجه مصاحبه (در صورت رد شدن )این رفتارهم در شرکت های کوچک و هم در شرکت های بزرگ دیده شده و اصلا خوشایند نیست . شخص منتظر شماست و باید بفهمید که وقت و زندگی آدم ارزش بسیار زیادی دارد .تماس با شماره شخصی !چرا باید کسی که مصاحبه کننده است با موبایل خودش با مصاحبه شونده ( عموما خانوم ) تماس برقرار کند ؟‌ چه چیزی جز منفعت شخصی دلیل این کار می تواند باشد؟ این اتفاق معمولا بعد از ریجکت شدن شخص هم افتاده !و مشکلات دیگری هست که در زیر توییت میتونین بخونید . البته مصاحبه کننده ها هم گله هایی از جمله عدم تطابق رزومه با دانش فرد و توهم سنیور بودن ، داشتند .برداشت شخصیمن از تابستان 97 به تهران مهاجرت کردم و همیشه این سوال همراهم بود کهآیا دانش من کم است؟من چون شهرستان بودم ، مجبور بودم همه چیز رو تنهایی انجام بدم و به نظر خودم دانش کافی داشتم . اما چرا در مصاحبه با شرکت های بزرگ رد میشدم . مشکل از کجا نشات میگرفت ؟من معمولا با این مشکل مواجه بودم که اغلب سوالاتی ازمن میشد که مرتبط با تجربه نبود و از مسایل تئوریک سوال میشد .به عقیده من مسایل تئوریک دلیل مناسبی برای قبول یا رد شدن یک فرد در مصاحبه نیست .چون در مهندسی نرم افزار، یه سری دانش تئوریک هست که هر کسی با اندکی وقت گذاشتن می تواند به خوبی روی انها تسلط پیدا کند . باید دوباره تاکید کنم که به نظر من ، یک مهندس نرم افزار خوب باید واقعا و به صورت تجربی مسائل رو پیاده سازی کند و اگر لازم به یادگیری بود در حین کار از گوگل برای تحقیقاتش کمک بگیرد ، البته این کاریست که همه برنامه نویس ها انجام می دهند و اگر برای شما سوال شده که چرا تاکنون به دنبال یادگیری نرفته ؟ باید بگم که شاید چون بیشتر دنبال پیاده سازی بوده نه صرفا حفظ کردن یک سری چیزها که آیا بعدا بتواند ازش استفاده کند یا خیر . به دست آوردن دانش پایه از مساله و شروع پیاده سازی بهترین ترکیب ممکن است .اما مشکلی که از سمت مصاحبه کننده وجود دارد این است که چطور میتوان متوجه این مساله شد که واقعا این دولوپر تجربه هندز-آن دارد یا نه ؟راه حل های مختلفی واسه این مشکل وجود دارد ، مثلا انجام پروژه ای که واقعا و کاملا مربوط به کاری هست که این یک دولوپر باید انجام دهد و نه بیشتر. دقت کنید شما دولوپر استخدام میکنید نه تیم لید یا مدیر فنی، همچین اگه یه شرکت کوچیک هستیم ،‌باید بفهمیم و قبول کنیم قوانین آرمان شهر. رو دهکده پیاده نمیشه...نظر شما چیست ؟ آیا شما هم تجربه بد مصاحبه داشته اید ؟ </description>
                <category>آرش رسول زاده</category>
                <author>آرش رسول زاده</author>
                <pubDate>Wed, 15 Apr 2020 23:02:06 +0430</pubDate>
            </item>
                    <item>
                <title>چگونه در گیت لب بصورت خودکار فایل apk بسازیم؟</title>
                <link>https://virgool.io/ArashRasoulzadeh/%DA%86%DA%AF%D9%88%D9%86%D9%87-%D8%AF%D8%B1-%DA%AF%DB%8C%D8%AA-%D9%84%D8%A8-%D8%A8%D8%B5%D9%88%D8%B1%D8%AA-%D8%AE%D9%88%D8%AF%DA%A9%D8%A7%D8%B1-%D9%81%D8%A7%DB%8C%D9%84-apk-%D8%A8%D8%B3%D8%A7%D8%B2%DB%8C%D9%85-chkq4kwlogyv</link>
                <description>چگونه در گیت لب بصورت خودکار فایل apk بسازیم؟یکی از کارهایی که میتوانید در ci/cd گیت لب انجام بدید، بیلد گرفتن از پروژه های اندروید هست. به طوری که میتوانید پس از برای مثال کامیت به روی مستر ،‌ یک بیلد از پروژه بگیرید و فایل apk رو به صورت باینری از گیت لب دانلود کنید. برای اینکار باید اول  فایل gitlab-ci زیر رو به پروژه اضافه کنید. image: openjdk:8-jdk

variables:
  ANDROID_COMPILE_SDK: &amp;quot28&amp;quot
  ANDROID_BUILD_TOOLS: &amp;quot28.0.2&amp;quot
  ANDROID_SDK_TOOLS:   &amp;quot4333796&amp;quot

before_script:
  - apt-get --quiet update --yes
  - apt-get --quiet install --yes wget tar unzip lib32stdc++6 lib32z1 curl
  - wget --quiet --output-document=android-sdk.zip https://dl.google.com/android/repository/sdk-tools-linux-${ANDROID_SDK_TOOLS}.zip
  - unzip -d android-sdk-linux android-sdk.zip
  - echo y | android-sdk-linux/tools/bin/sdkmanager &amp;quotplatforms;android-${ANDROID_COMPILE_SDK}&amp;quot &gt;/dev/null
  - echo y | android-sdk-linux/tools/bin/sdkmanager &amp;quotplatform-tools&amp;quot &gt;/dev/null
  - echo y | android-sdk-linux/tools/bin/sdkmanager &amp;quotbuild-tools;${ANDROID_BUILD_TOOLS}&amp;quot &gt;/dev/null
  - export ANDROID_HOME=$PWD/android-sdk-linux
  - export PATH=$PATH:$PWD/android-sdk-linux/platform-tools/
  - chmod +x ./gradlew
  - set +o pipefail
  - yes | android-sdk-linux/tools/bin/sdkmanager --licenses
  - set -o pipefail

stages:
  - build

assembleDebug:
  stage: build
  script:
    - ./gradlew assembleDebug
  artifacts:
    paths:
      - app/build/outputs/حالا هر بار که کامیت کنیم ، اتوماتیک عملیات بیلد انجام می شود.اگه میخواهید با این پروسه بیشتر آشنا بشید مقاله کامل رو در وبلاگ من بخوانید.</description>
                <category>آرش رسول زاده</category>
                <author>آرش رسول زاده</author>
                <pubDate>Tue, 31 Mar 2020 17:10:29 +0430</pubDate>
            </item>
                    <item>
                <title>مشکل نمایش خطای خام در لندینگ ۴شنبه سوری دیجی کالا</title>
                <link>https://virgool.io/bugopedia/%D9%85%D8%B4%DA%A9%D9%84-%D9%86%D9%85%D8%A7%DB%8C%D8%B4-%D8%AE%D8%B7%D8%A7%DB%8C-%D8%AE%D8%A7%D9%85-%D8%AF%D8%B1-%D9%84%D9%86%D8%AF%DB%8C%D9%86%DA%AF-%DB%B4%D8%B4%D9%86%D8%A8%D9%87-%D8%B3%D9%88%D8%B1%DB%8C-%D8%AF%DB%8C%D8%AC%DB%8C-%DA%A9%D8%A7%D9%84%D8%A7-paaxjsdctiws</link>
                <description>معمولا یکی از مشکلاتی که برنامه نویسان آماتور دارند به خصوص در php  نمایش خام اطلاعات خطای پیش آمده در زمان اجراست. برای مثلا مسیر فایل هایی که به هر دلیل لود نشده یا مشکلات کست کردن و ... این کارها از استارتاپ های کوچک بعید نیست چون با چیزهای بیهوده و بی معنی به نام هک رشدی و اجایل میخواهند هر چه سریعتر توسعه رو انجام بدن اما این اتفاقات به هیچ وجه نباید در شرکت های بزرگی مثل دیجی کالا رخ بده .در حال بررسی لندینگ بودم که دیدم آیدی کاربر به صورت form-data ارسال میشه، خواستم بررسی کنم ببینم واقعا تو سال ۲۰۱۹ امکانش هست داده ورودی ولیدیت نشه ؟ واسه همین یه اینجکشن ساده به جای پارامتر آیدی کاربر ارسال کردم : &#x27;+SELECT*fromusers;باورم نمیشد که اینکار رو انجام نمیدادن و خروجی زیر به من برگشت  !مشکلات امنیتی دیجی کالابه نظر شما مشکل از کجاست و چرا شرکت های بزرگ مرتکب همچنین سهل انگاری هایی میشوند؟</description>
                <category>آرش رسول زاده</category>
                <author>آرش رسول زاده</author>
                <pubDate>Mon, 25 Mar 2019 14:57:12 +0430</pubDate>
            </item>
                    <item>
                <title>تایید اصالت کد ملی در لاراول</title>
                <link>https://virgool.io/ArashRasoulzadeh/%D8%AA%D8%A7%DB%8C%DB%8C%D8%AF-%D8%A7%D8%B5%D8%A7%D9%84%D8%AA-%DA%A9%D8%AF-%D9%85%D9%84%DB%8C-%D8%AF%D8%B1-%D9%84%D8%A7%D8%B1%D8%A7%D9%88%D9%84-goqxoxlk3arp</link>
                <description>اگه شما هم توسعه دهنده لاراول هستید ، ممکنه برای شما هم پیش بیاد که بخواهید کد ملی رو تایید کنید. لاراول یه سیستم مخصوص خودش داره برای تایید درخواست api به نام  Request که توسط Rule های کاستوم میتونین ارتقا بدینش. توسط Rule زیر میتونین کد ملی رو تایید کنید : ‍‍‍‍...
 public function passes($attribute, $code)
    {
 if (!preg_match(&#039;/^[0-9]{10}$/&#039;, $code))
 return false;
 for ($i = 0; $i &lt; 10; $i++)
 if (preg_match(&#039;/^&#039; . $i . &#039;{10}$/&#039;, $code))
 return false;
 for ($i = 0, $sum = 0; $i &lt; 9; $i++)
            $sum += ((10 - $i) * intval(substr($code, $i, 1)));
        $ret = $sum % 11;
        $parity = intval(substr($code, 9, 1));
 if (($ret &lt; 2 &amp;&amp; $ret == $parity) || ($ret &gt;= 2 &amp;&amp; $ret == 11 - $parity))
 return true;
 return false;
    }
...و توسط رول زیر به ریکویست اضافه کنیدش : ‍&#039;nationalcode&#039;=&gt;[new nationalcode]منتظرم نظرتون رو بشنوم.</description>
                <category>آرش رسول زاده</category>
                <author>آرش رسول زاده</author>
                <pubDate>Wed, 26 Dec 2018 01:08:46 +0330</pubDate>
            </item>
                    <item>
                <title>پستی ها و بلندی های مهاجرتم به تهران</title>
                <link>https://virgool.io/ArashRasoulzadeh/%D9%BE%D8%B3%D8%AA%DB%8C-%D9%87%D8%A7-%D9%88-%D8%A8%D9%84%D9%86%D8%AF%DB%8C-%D9%87%D8%A7%DB%8C-%D9%85%D9%87%D8%A7%D8%AC%D8%B1%D8%AA%D9%85-%D8%A8%D9%87-%D8%AA%D9%87%D8%B1%D8%A7%D9%86-xblbkx8syozc</link>
                <description>شب های تهران!من آرش هستم ، توسعه دهنده فول استک در شرکت پشتیبان ،  تابستون همین سال (۹۷) اومدم پایتخت ، قبلش تو رشت تو یه شرکت نوپای آیتی کار میکردم، قبلشم تو یه آموزشگاه ۳ سال حدودا تدریس برنامه نویسی کردم.قبلش تو کافه بازار اپ میزاشتم ، حدودا از ۸۸ شروع کردم کار حرفه ای رو .فریلنس هم کار میکردم. اما چی شد که تصمیم گرفتم بیام تهران؟نکات مثبتدرامدمیشه گفت اصلی ترین دلیلم درامد بیشتر بود، وقتی شهرستان هستی چه کارفرما چه پیمانکار اونقدری هزینه نمیکنن رو نیروی انسانی که بتونی بهش تکیه کنی و فریلنس هم کفاف سرمایه گذاری برای پروژه های شخصی رو نمیده. تکنولوژیتو تهران به دلیل رقابت سبکی که شرکت ها و حتی آدم ها دارن معمولا تصمیم میگیری که تکنولوژی های جدید رو یاد بگیری تا عقب نمونی، تو شهر های دیگه معمولا اینطور نیست. وقتی تهران هستی همش دوست داری ( حداقل من اینطور هستم )‌ بری رویداد های مختلف ، یا چیزای جدید یاد بگیری که بتونی به دوستات هم یاد بدی، یا تکنولوژی های جدید رو تو شرکت پیاده سازی کنی تا شرکت و خودت رو یه لول ببری بالاتر.اکوسیستمهمونطور که احتمالا حدس زدید بیشتر فعالان جامعه آیتی ایران تو تهران هستند، و رویداد های مختلفی برگزار میشه که خیلی به شبکه سازی و آگاهی از تکنولوژی های جدید کمک میکنه.مثلا هر هفته تو یه شرکت آیتی بزرگ (و یا کوچک) رویداد همفکر برگزار میشه ، یا مثلا همین چند روز بعد یلدای کارآفرینی هست و فرداشم همایش آینده وب و موبایل. حداقل تو رشت اینطور نبوده تا زمانی که من اونجا بودم.شهرشهر تهران پر است از جاهای دیدنی، کافه های خوب، فروشگاه های شلوغ ، شرکت های بزرگ و... انتخاب خیلی خوبی هست به عنوان یه کلان شهر برای کار و زندگی.گلچینی از انواع روش های حمل و نقل عمومی رو داره ، تقریبا هرچیزی بخوای رو میتونی تو بازار پیدا کنی و معمولا اگه پول داشته باشی دست خالی بر نمیگردی خونه.نکات منفیترافیکترافیک تو ساعات شلوغی ، باعث میشه عصبی شی، دیر سرکار برسی و کمی انرژی اول صبحت بره، حمل و نقل عمومی هم خوبه اما عالی نیست و خیلی جای پیشرفت داره. شرکت ها معمولا سر ساعت کارت حساس هستند . و واقعا هم بی دلیل حساس هستند(نظر شخصی!). آدم های رباتیک اینجا همه واسه اینکه رئیس بگه آفرین کار میکنند،که سر ماه کسری نخورن و اضافه شد بگیرن،نه به آینده فکر میکنن نه به اون کسب و کار ، رئیس که راضیه تا تو دردسر نیفته! معمولا همه کار ها به راحت ترین حالت ممکن انجام میشه و تا به دردسر نیفتن جمعش نمیکنن. تکنیکال دبت ها خیلی زیاد هست معمولا تو شرکت ها.خرج زندگی اول که میخواستم بیام همه میگفتن که تهران خرج زیاده و هیچی نمیمونه برات و ... ، اما اینطور نبود ! اصلا اینطور نبود ! ،‌ حدودا دو میلیون تومان (۱/۳ درامد یه دولوپر معمولی) هزینه زندگی ساده در تهران است. فقط بری بیای و زنده بمونی، بقیه رو به راحتی میتونی پس انداز کنی یا چیز میز بخری :D ،  اما باید دقت کنیم که همه تو این رنج حقوق نیستن و خیلیا خیلی کمتر از اینا درامد دارن.تصمیم درستی بود ؟ بعله! من خیلی میترسیدم که بیام تهران ، از هر لحاظ که فکر کنین.اما خوشحالم که به ترسم مسلط شدم و این کار رو کردم. اینجا با آدم های زیادی آشنا شدم که عطش پیشرفت دارن ، آخرین تکنولوژی ها رو دنبال میکنن،‌شرکت ها همش دنبال پیشرفت هستند.درآمد بیشتر ، امکانات بیشتر و ... همه باعث شده از این تصمیمم خوشحال باشم. و از همه مهمتر این که اعتماد به نفسم بیشتر شده و راحت تر میتونم با مشکلاتم کنار بیام.سخن آخربه نظرم اگه تو خودتون میبیند که میتونین تو تهران زندگی کنین ، کارهای سخت انجام بدید و این که تجربه کافی دارید این ریسک رو بکنین،اما اگه تازه کار هستید، اینجا تازه کار زیاده ،‌اتفاقا شرکت ها و استارتاپ ها پر شده از تازه کار ها ، به نظرم یکی از دلایل شکستشون هم همین هست. در این صورت بمونین شهرتون و تجربه کسب کنین چند سال و بعد این ریسک رو بکنین.</description>
                <category>آرش رسول زاده</category>
                <author>آرش رسول زاده</author>
                <pubDate>Wed, 12 Dec 2018 02:22:43 +0330</pubDate>
            </item>
                    <item>
                <title>بررسی ولید بودن json در php</title>
                <link>https://virgool.io/ArashRasoulzadeh/jsonvalidationinphp-sfhubrixfhro</link>
                <description>اگه این مطلب براتون جالب بوده پس این طور فرض میکنم که شما بیس قضیه رو میدونید! و به احتمال زیاد اصلا این متن رو نمیخونید و میرید سراغ کد.جیسان یه رشته است خب. البته قبل دیکد شدنش.پس اول بررسی کنیم آیا متغیر ما رشته است یا نه:is_string($json);اگه جواب ترو بود. تابع json_decode که از php نسخه ۵.۲ اضافه شده رو روی متغیرمون اینوک میکنیم: if (is_string($json))
    json_decode($json,true);طبق مستندات php ، این تابع اگه نتونه تبدیل رو انجام بده یا اگه به لیمیت حافظه بخوره. NULL بر میگردونه.درغیر این صورت یه آرایه بر میگرده.جالبه که php از نسخه 4 یه تابع اضافه کرده به اسم is_array که کارش بررسی آرایه بودن یا نبودن آرگومانش هست.اگه ورودی آرایه باشه true و در غیر این صورت false برمیگردونه:if (is_string($json))
   if(is_array(json_decode($json,true))) خب حالا میتونیم این سه تا تابع رو به هم لینک کنیم و و تو یه تابع جدید بزاریمشون: function is_json($json)
{
        if (is_string($json))
                if(is_array(json_decode($json,true))) 
                        return true;
        return false;
}به همین سادگی :)</description>
                <category>آرش رسول زاده</category>
                <author>آرش رسول زاده</author>
                <pubDate>Wed, 10 Jan 2018 00:34:06 +0330</pubDate>
            </item>
            </channel>
</rss>