<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
    <channel>
        <title>نوشته های اردوان اسکندری</title>
        <link>https://virgool.io/feed/@ardavan81e</link>
        <description>مینویسم تا پلی بزنم بین دنیای برنامه نویسی و طراحی. مقالات تخصصی کوتاه و نکات مفید روزانه در کانال تلگرام خودم : https://t.me/ardavandesign</description>
        <language>fa</language>
        <pubDate>2026-04-14 09:05:11</pubDate>
        <image>
            <url>https://files.virgool.io/upload/users/4542964/avatar/DJMXiV.png?height=120&amp;width=120</url>
            <title>اردوان اسکندری</title>
            <link>https://virgool.io/@ardavan81e</link>
        </image>

                    <item>
                <title>از دستیار Ai تا عاملان Ai</title>
                <link>https://virgool.io/@ardavan81e/%D8%A7%D8%B2-%D8%AF%D8%B3%D8%AA%DB%8C%D8%A7%D8%B1-ai-%D8%AA%D8%A7-%D8%B9%D8%A7%D9%85%D9%84%D8%A7%D9%86-ai-pnjublc2gakf</link>
                <description>تا مدت‌ها من از AI فقط برای autocomplete یا کپی‌پیست کد استفاده می‌کردم؛Copilot، ChatGPT، سریع‌تر از Stack Overflow، باهوش‌تر از boilerplateها.اما هنوز فقط ابزار بودند.تا اینکه یک تغییر کوچک اما بنیادین ایجاد کردم:به‌جای اینکه از AI بخوام «کمکم کنه کد بنویسم»،ازش خواستم خودش کد رو بنویسه و من فقط روی «چی باید ساخته بشه و چرا» تمرکز کنم.و این تفاوت… اصلاً ظریف نیست.لحظه‌ی «Holy Sh*t»یک تیکت مبهم JIRA داشتم؛ از اون‌ها که معمولاً نیم ساعت بحث می‌طلبه.به‌جای IDE، کل تیکت و کدبیس رو دادم به Claude و گفتم:«این مسئله‌ست، این هم کد ما. خودت بفهم باید چی کار کنی.»Claude شروع کرد سؤال پرسیدن:سؤال‌های دامنه‌ایسؤال‌های معماریترجیحات تکنولوژیکنحوه‌ی error handlingدقیقاً مثل یک جونیور باهوش…با این تفاوت که کل کدبیس رو در ۳۰ ثانیه فهمیده بود.بعد:پلن پیاده‌سازی دادبا من بحث کرداصلاح شدو وقتی گفتم «اجرا کن»، شروع کرد.چرخه‌ی تست و دیباگ… بدون منشگفت‌انگیزترین بخش این بود که:کد نوشتتست اجرا کردشکست خوردخطا رو تحلیل کرداصلاح کرددوباره تست گرفتبارها و بارها.همون کاری که ما روزی ده‌ها بار انجام می‌دیم.فقط این‌بار من نگاه می‌کردم.حتی «کلافه شدنش» رو هم می‌دیدم!کانتکست همه‌چیز استاول کدش با استانداردهای تیم ما نمی‌خوند.پس مستندات Confluence (۱۵ صفحه!) رو دادم بهش.نتیجه؟خوندالگوها رو فهمیدکل کد رو مطابق استاندارد تیم ریفکتور کردساعتی کاری که من می‌کردم → چند دقیقه.این تفاوت اصلیه:AI دیگه فقط کد کامل نمی‌کنه؛ کد رو می‌فهمه.از آشپز به سرآشپزCopilot:من آشپزم، AI مواد رو آماده می‌کنه.ChatGPT:من آشپزم، AI کتاب آشپزیه.AI Agent:من سرآشپزم.من منو رو طراحی می‌کنم، مزه می‌کنم، استاندارد می‌دم.آشپزی واقعی؟ با AI.من دیگه کد نمی‌نویسم؛ کد رو هدایت می‌کنم.برنامه‌نویسی در ۲۰۲۶قبل:۸۰٪ نوشتن کد۲۰٪ فکر معماریالان:۲۰٪ کد (review و اصلاح)۸۰٪ فکر، توضیح، تصمیم، ارتباطو اون ۸۰٪ با چی انجام می‌شه؟زبان طبیعی.AI کجا عالیه، کجا نه؟✅ عالی در:CRUDالگوهای تکراریریفکتورتست‌نویسیرعایت استانداردهاکارهای خسته‌کننده❌ ضعیف‌تر در:نیازمندی‌های مبهمتصمیمات معماری نودرک عمیق بیزنسباگ‌های عجیب و محیطیچرا «انگلیسی» زبان برنامه‌نویسی جدیده؟نه چون کد مهم نیست.بلکه چون تعریف مسئله، توضیح کانتکست و نقد راه‌حل مهم‌تر شده.حتی خالق Kotlin (Andrey Breslav) زبانی به نام CodeSpeak ساخته:زبانی که انسان «چی می‌خواد» رو توصیف می‌کنهو AI بقیه رو انجام می‌ده.جمع‌بندی نهایی نویسندهAI قراره برنامه‌نویس‌ها رو حذف کنه؟نه.مثل:ماشین‌حسابIDEStack Overflowفقط ما رو از کار مکانیکی آزاد می‌کنه تا:بهتر فکر کنیمبهتر طراحی کنیمو مسائل مهم‌تر رو حل کنیم«این بدترین نسخه‌ی AI است که تا ابد خواهیم دید.از این به بعد فقط بهتر می‌شود.»سؤال این نیست که آینده میاد یا نه.سؤال اینه:آیا آماده‌ای از کدنویس → هدایت‌گر کد تبدیل بشی؟</description>
                <category>اردوان اسکندری</category>
                <author>اردوان اسکندری</author>
                <pubDate>Thu, 19 Feb 2026 18:25:15 +0330</pubDate>
            </item>
                    <item>
                <title>چرا متغیرهای const در فلاتر rebuild میشوند؟</title>
                <link>https://virgool.io/@ardavan81e/%DA%86%D8%B1%D8%A7-%D9%85%D8%AA%D8%BA%DB%8C%D8%B1%D9%87%D8%A7%DB%8C-const-%D8%AF%D8%B1-%D9%81%D9%84%D8%A7%D8%AA%D8%B1-rebuild-%D9%85%DB%8C%D8%B4%D9%88%D9%86%D8%AF-qq0boxedqxp9</link>
                <description>اگر مدتی با Flutter کار کرده باشید، حتماً این توصیهٔ افسانه‌ای را شنیده‌اید:«فقط const کن، دیگه rebuild نمی‌شه.»این جمله معمولاً با همان اعتمادبه‌نفس «گوشی رو خاموش روشن کردی؟» گفته می‌شود.و مدتی هم باورش می‌کنید. همه‌جا const می‌ریزید، احساس حرفه‌ای بودن می‌کنید، بعد DevTools را باز می‌کنید و می‌بینید ویجت‌ها هنوز rebuild می‌شوند.اینجاست که باید یک نکتهٔ مهم را روشن کنم:در فلاتر، rebuild دشمن نیست.rebuild فقط یعنی متد build() دوباره اجرا شده ؛ نه بیشتر.Flutter دائماً این کار را انجام می‌دهد و در آن فوق‌العاده بهینه است.چیزی که واقعاً به عملکرد ضربه می‌زند، کارهای بعد از rebuild است:layout، paint و compositing — همان چیزهایی که اگر موبایل فن داشت، باعث روشن شدنش می‌شد!به همین دلیل است که همیشه می‌شنوید:«منطق سنگین رو داخل build ننویس»چون build() ممکن است خیلی بیشتر از چیزی که فکر می‌کنید اجرا شود.مثال ساده ولی جالبدر نگاه اول، این دو جفت کد کاملاً شبیه هم به نظر می‌رسند:Text(&#039;Hello&#039;);
final b = Text(&#039;Hello&#039;);

print(identical(a, b)); // false

const c = Text(&#039;Hello&#039;);
const d = Text(&#039;Hello&#039;);

print(identical(c, d)); // true
در حالت final، هر بار یک شیء جدید در runtime ساخته می‌شود.ولی در حالت const، ویجت در زمان کامپایل ساخته و توسط Dart cache می‌شود،پس هر جا تکرار شود، همان instance استفاده می‌شود.جایی که سوءتفاهم شروع می‌شودحالا می‌رسیم به مثال واقعی‌تر ؛ همان جایی که توسعه‌دهنده‌ها می‌گویند:«ولی این که const هست، چرا هنوز rebuild می‌شه؟»وقتی روی دکمه کلیک می‌کنید و setState صدا زده می‌شود:بله، کل والد rebuild می‌شوداین رفتار کاملاً طبیعی و مورد انتظار استاما Flutter چه کار می‌کند؟ویجت داینامیک (Text(&#039;Count: $count&#039;)) را به‌روزرسانی می‌کندویجت const را می‌شناسد، می‌گوید «این همونه» وlayout و paint آن را دوباره انجام نمی‌دهدپس:ویجت rebuild شد،اما کار سنگین رندر انجام نشد.دفعهٔ بعد که کسی گفت:«فقط const کن، rebuild نمی‌شه»یادتان باشد:این حرف نصفش درست استconst جلوی rebuild را نمی‌گیردconst جلوی هدر رفتن منابع را می‌گیردو این دقیقاً همان بهینه‌سازی هوشمند Flutter است 😉</description>
                <category>اردوان اسکندری</category>
                <author>اردوان اسکندری</author>
                <pubDate>Thu, 19 Feb 2026 09:17:51 +0330</pubDate>
            </item>
                    <item>
                <title>بهداشت کُدی را رعایت کنید !</title>
                <link>https://virgool.io/@ardavan81e/%D8%A8%D9%87%D8%AF%D8%A7%D8%B4%D8%AA-%DA%A9%D9%8F%D8%AF%DB%8C-%D8%B1%D8%A7-%D8%B1%D8%B9%D8%A7%DB%8C%D8%AA-%DA%A9%D9%86%DB%8C%D8%AF-mgan6oruvwj9</link>
                <description>نظافت و بهداشت در کدنویسیعنوان عجیبیه نه؟ خب، موضوعی که میخوایم بحث کنیم راجبش اونقدر عجیب نیست ولی.📍کد تمیز یا Clean Code دقیقا چیه؟ما هدفمون از برنامه نویسی اینه که کدهایی رو بنویسیم که ماشین اونارو بفهمه درسته؟ خب ولی نباید تنها هدفمون این باشه. کدی که ما مینویسیم باید خود ما انسان ها هم قابل فهم و خوانا باشه. طوری نباشه 1 سال بعد برگردیم بالای کدی که خودمون نوشتیم و هیچی نفهمیم از ساختار و کدی که طراحی کردیم.هدف از کلین کد ( کد تمیز ) اینه که کدمون رو به نحوی بنویسیم که برای انسان هم قابل فهم و خوانا باشه و در نتیجه این خوانا بودنه، کد ما توسعه پذیر تر میشه و راحت میشه نگهداریش کرد.📍چرا انقدر مهمه و باید بهش توجه کنیم؟یک حقیقتی در کدنویسی هست به نام نسبت 10 به 1. یعنی ما 10 برابر وقتی که برای نوشتن یک کد میذاریم، وقت برای خوندنش میذاریم؛ و این واقعا عین حقیقته. مثلا وقتی میخواید یه آپدیتی انجام بدید یا ریفکتوری انجام بدید و یا مواردی از این قبیل؛ قبل از اینکه کد جدید رو بنویسید میرید و کل کدهاتون رو میخونید و یه راه حلی برای ایده جدیدتون میسازید. پس اینکه کدتون چطوری نوشته شده و چقدر برای انسان ها خواناست اهمیت بالایی داره.حالا فرض بر اینکه یک کد کثیف زدید و بعدها میخواید دیباگش کنید یا ازش نگهداری کنید در هر حال. این پروسه چقدر میتونه زمانبر و پر مشقّت باشه براتون وقتی کدتون هیچ ساختار منظمی نداره و خواناییش نزدیک صفره؟ مثل تفاوت یه انباری منظم و یه انباری بهم ریخته هست. فرض کنید داخل هر انباری دنبال یه کارتن مشخص هستید. قطعا داخل انباری ای که همه چی منظمه و سرجاشه زودتر به نتیجه میرسید تا یه انباری شلوغ و بی سر و سامان.نرم افزارها بر خلاف تصور خیلی ها، مخلوقاتی زنده حساب میشن که ماها میسازیمشون. این نرم افزارها در طول زمان تغییر میکنن، آپدیت میشن، فیچرهای جدید بهشون اضافه میشه، فیچرهای قدیمی حذف میشن و ...کد کثیف به شما اجازه کارکرد ماژولار نمیده. اینو براتون خیلی سخت میکنه. در حالی که کد تمیز کاملا ماژولار فرندلیه و هرموقع و هرزمان میتونید چرخه زندگی این نرم افزار رو دستکاری کنید.پس برای توسعه یک محصول و نرم افزار واقعی و حرفه ای، تمیز بودن کد و خوانا بودنش اهمیتش یه چیزی مثل مرگ و زندگیه. باید جدیش گرفت !📍حالا چطوری میشه کد رو تمیز نوشت؟یه چک لیست میخوام بهتون بدم خیلی کوتاه و مختصر و مفید و باحال.توی کدتون این موارد رو چک کنید و اصلاح کنید و سعی کنید از این به بعد این مواردو توی ذهنتون داشته باشید موقع کدنویسی.✅ نام گذاری درست متغیر ها:خیلی فرق هست بین متغیر X و متغیر daysSinceLastLogin. و حتی متغیر daysSinceLastLogin هم باز خیلی میتونه متفاوت باشه نسبت به موارد مشابه خودش مثل dayLastLogin. اغلب از اسامی طولانی برای متغیرها میترسن و فکر میکنن اشتباهه در حالی که اگر نیاز باشه باید اسم رو طولانی بنویسیم تا بشه کاملا اون متغیر رو در قالب اسمش درک کرد. حسابی برای انتخاب اسامی متغیر هاتون وقت بذارید.✅ قانون SRP (Single Responsibility Principle):یکی از قوانین محبوب و پایه ای مهندسی نرم افزار و برنامه نویسی شئ گرا که میگه هر تابع، متود یا کلاس باید یک وظیفه مشخصی داشته باشن. یعنی اگر یه تابع برای Launch url دارید، نباید پروسه parse کردن url داخل این متود انجام بشه. چون اسم تابع لانچ کردنه و وظیفه ش فقط لانچ کردن یه آدرس و لینکه. پس parse کردن رو باید به یه متود دیگه ای تبدیل کرد به صورت مستقل.✅ کامنت به &quot;چرا&quot; جواب میده، نه &quot;چطور&quot;:جاهایی که در کد کامنت میذارید نباید یک قصه طولانی از نحوه عملکرد یه متود یا تابع باشه. صرفا باید یه چرا و توضیح کلی رو بیان کنه. مثلا &quot;verify user after login //&quot;✅ اعداد به تنهایی مفهومی ندارن :داخل کد اگر مینویسی مثلا status.code == 404، اون 404 چیه؟ یا مثلا بدترش، status == 2، اون 2 دقیقا چیه؟ عدد جادویی که نیست؛ پس تعریف کن اینارو در قالب متغیر. مثلا const NOT_FOUND_STATUS_COD = 404 یا const int activeStatus = 2.✅ تله مرگبار حلقه ها:حلقه های تو در تو کاربردی هستن اما نباید برنامه توی حلقه ها غرق شه. هرموقع دیدی کدت داره عین نوک پیکان تیز میشه &quot;&lt;&quot; یعنی داری زیادی از این حلقه های تو در تو استفاده میکنی و توی یه جهنم گیر افتادی.بیاید تمیزتز کد بزنیم💡 شما چه حسی نسبت به کدهای کثیف دارید؟#فلاتر #برنامه_نویسی #کد_تمیز #مهندسی_نرم_افزار #آموزش</description>
                <category>اردوان اسکندری</category>
                <author>اردوان اسکندری</author>
                <pubDate>Tue, 06 Jan 2026 14:16:09 +0330</pubDate>
            </item>
                    <item>
                <title>اگه فریلنسری، اینارو باید بدونی !</title>
                <link>https://virgool.io/@ardavan81e/%D8%A7%DA%AF%D9%87-%D9%81%D8%B1%DB%8C%D9%84%D9%86%D8%B3%D8%B1%DB%8C-%D8%A7%DB%8C%D9%86%D8%A7%D8%B1%D9%88-%D8%A8%D8%A7%DB%8C%D8%AF-%D8%A8%D8%AF%D9%88%D9%86%DB%8C-rgqvh85xy0kd</link>
                <description>نکات مهم و ضروری برای اینکه یک فریلنسر خوب باشیدشخصا از سال 95-96 کار کردن به عنوان یه فریلنسر تمام وقت رو شروع کردم و تا فروردین 1404 این مسیر رو داشتم طی میکردم. میخوام بهتون بدی ها و خوبی های فریلنسری رو بگم ( مخصوصا در ایران ) تا نسبت به اونا بتونید تصمیم بگیرید و اگر خواستید به مسیر فریلنسریتون ادامه بدید، با نکاتی که در این مقاله میاموزید میتونید فریلنسر بهتری باشیدفریلنسر بودن خوبه یا بد؟این اولین سوالیه که به ذهن هرکسی میاد که آیا فریلنسر بودن آپشن خوبیه یا نه؟این سوال خیلی بستگی به شرایط، افکار و نوع مهارت و شغل شخص داره. نظر من به عنوان شخصی که داخل شهرستان زندگی میکنه و مهارتش برنامه نویسیه، این هست که فریلنسری میتونه گزینه بسیار خوب و مفیدی باشه ولی به شرط اینکه شخص در اون غرق نشه. درسته که فریلنسری به این معناست که تایم شما دست خودتونه ولی به این معنا نیست که روزی فقط 1 ساعت کار میکنید. بسته به پروژه ها و نوعشون و تعدادشون ممکنه حتی روزهایی رو نتونید بخوابید.پس این تفکر که فریلنسر آزادی تمام و کمال داره در تایم و انجام کار، از دید من اشتباهه.اما خب یکی از مزایاش اینه که شما در قید و بند یک مکان مشخص نیستید. میتونید کارهاتون در سفر و گشت و گذارها هم انجام بدید و این آزادی مکان خوبه واقعا اگر شخصی هستید که زیاد جابجا میشه. شخصا چون خیلی جابجا نمیشم، این مورد خیلی برام پر اهمیت نبوده ولی در کل خوبه.یکی از نکاتی که بحث فریلنسری داره و کمتر بهش اشاره میشه بنظرم، مدیریت پروژه هست. ببینید شما وقتی به عنوان یک برنامه نویس یک پروژه رو میگیرید در اصل باید چندین کار رو باهم بکنید. یک پروژه اپلیکیشن به عنوان مثال بخش طراحی داره، بخش توسعه داره، بخش بک اند داره، بخش امنیت داره و غیره؛ و اگر شما چنین پروژه ای رو قبول کنید میبایست تمام این موارد رو خودتون انجام بدید یا در غیر این صورت مجبور میشید اونو برون سپاری کنید. در صورتی که برون سپاری هم بکنید نیازمند این هست که شما اون افرادی که برای شما دارن بخش های کوچک پروژه رو میزنن رو مدیریت کنید. پس این مدیریت پروژه در بحث فریلنسری یک مهارت مهمه که بنظرم کمتر کسی واقعا مسلطه بهش.بحث دیگری که هست، پلتفرم فریلنسینگ شما هست. اینکه شما داخل پلتفرم های فریلنسینگ کار کنید یا تحت عنوان برند خودتون خیلی متفاوت هست و مزایا و معایب خودشون رو دارن ولی قطعا این تحت برند خودتون کار کنید خیلی بهتره. حالا میگم چرا...اولین نکته ش بحث کپی رایت و حق مالکیت اون محصولیه که توسعه میدید. اگر که در پلتفرم های فریلنسینگ کار کنید عملا هیچ گونه حقی شما ندارید برای اون محصول. حتی گاها برای اینکه داخل نمونه کارهاتون بذارید باید از شخص اجازه بگیرید و اگه اجازه نده نمیتونید اینکارو بکنید. اگرم بکنید اون شخص حق شکایت داره و خیلی بحث مسخره و پیچیده میشه. ولی اگه تحت برند خودتون باشه میتونید طبق قوانین خودتون رفتار کنید و بخشی از حقوق رو به خودتون بدید مثل حق انتشار.دومین نکته بحث بودجه و زمان بندی پروژه هستش. داخل سایت های فریلنسینگ ( موارد ایرانی ) هیچ گونه نظارتی روی بودجه و زمان پروژه نیست. یعنی هر شخصی میتونه بیاد و خیلی دلبخواهی بودجه و زمان تعریف کنه. و دلیل اینکه بازار فریلنسینگ ایران ضعیفه همین هست. پروژه های مختلفی که بدون نظارت و خلاف اصول قیمت گذاری میشن قطعا برای فریلنسر خوشایند نیست. فرض کنید یک اپلیکیشن مثل دیجیکالا بخواید بزنید با 5 میلیون تومن ( اونم توی سال 1404 که دارم این متنو مینویسم ). بنظرم از صدتا فحش بدتره 😂باز این موضوع توی سایت های فریلنسینگ خارجی تا حدودی رعایت میشه و برای هر دسته بندی یک کف قیمتی تعیین شده بر طبق اصول و نظارت درست ولی باز اونا هم خیلی ایده آل نیستن. ولی برند خودتون باشه خودتون تصمیم میگیرید کف و سقف قیمت چقدر باشه و خیالتون از این بابت راحته.اما یه نکته مهم اینه که تبلیغات در برند خودتون سخته. قطعا اینکه برند خودتون رو بخواید بالا بیارید و تبلیغشو کنید و رشدش بدید ملزم هم زمانه هم هزینه های قابل توجه. که این مورد در سایت های فریلنسینگ از دوش شما برداشته شده و این مزیت سایت های فریلنسینگ محسوب میشه.نتیجه کلی که میگیرم چیه ؟نظر شخصی من اینه که فریلنسری در نقطه شروع میبایست از سایت های فریلنسینگ باشه و کم کم پیش برید به سمت برند خودتون تا درنهایت تحت برند خودتون کار کنیدنکات مهمی که در فریلنسری یاد گرفتمببینید پروژه گرفتن میتونه وسوسه کننده باشه و اگر کنترل نکنید به ضررتون میشه. بعضیا فکر میکنن که اول ماه هرچی میتونن پروژه بگیرن و تا آخر ماه تحویل بدن اوکیه و میان و به عنوان مثال 10 تا پروژه اول ماه قبول میکنن با قیمت های کم و زیاد و سرماه فقط یکی دوتارو میتونن تحویل بدن. علاوه بر اینکه مشکلاتی با کارفرما براتون سر این قضیه پیش میاد، برای اعتبار خودتونم جالب نیستش. پس مدیریت شده پروژه قبول کنید و بودجه بندی و زمان بندی پروژه رو جدی بگیرید و تخصصی انجامش بدید که در آخر بدقول نشید.روانشناسی و شناخت رفتارهای آدمارو دست کم نگیرید. یکی از مهم ترین ویژگی های یک فریلنسر اینه که بتونه کارفرمای خوب رو از کارفرمای بد و رو مخ تشخیص بده. نوع گویش، نوع برخورد، لحن صحبت، اگر میتینگ حضوری دارید زبان های بدن و غیره. همه اینا به شما کمک میکنن تا حدالامکان از کارفرمای بد فاصله بگیرید. همونقدر که کارفرمای خوب داشتن حس خوبی داره و ادم خیالش راحته، از اونطرف اگه کارفرما بد باشه لحظه به لحظه پروژه براتون عذابه.برای خودتون حد و مرزی داشته باشید. مانع بشید که هرکس هرطوری که دوست داره باهاتون رفتار کنه. هرجایی از پروژه ( اولش ، وسطش، حتی اخرش ) دیدید داره بهتون بی احترامی میشه بدون لحظه ای درنگ تسویه کنید و از ادامه پروژه خودداری کنید. حتی اگر مبلغ پروژه رو هم زیاد کرد دیگه سمت اون ادم نرید. اینطوری اشل و شخصیت کاری شما کامل حفظ میشه و در آینده میتونید خیلی روش حساب کنید. اگر هم از تسویه یا پرداخت بدهی شما امتناع کردن فوراً محصولشون رو از دسترس خارج کنید. بدیهی هست که تا لحظه تسویه کامل، هیچوقت نسخه کامل و دسترسی کامل پروژه رو به کارفرما نباید بدید.هیچ وقت نذارید کارفرما شمارو به اسم کوچیک صدا کنه و شما هم اینکارو نکنید. صمیمی شدن با کارفرما یکی از بزرگترین اشتباهاتیه که میتونید بکنید. راه رو برای سوءاستفاده های کارفرما باز میکنید. روابط محترمانه و دوستانه ای شکل بدید باهاشون ولی از صمیمی شدن به شدت پرهیز کنید.در یک جمله ساده میخوام بگم : ارزون کار نکنید. اینکه پروژه رو بگیرید مهم نیست؛ این مهمه که اون پروژه رو بگیرید، با یک کیفیت عالی تحویلش بدید و از دستمزد نهایی خودتون راضی باشید و به خودتون ببالید. شخصی که در طول یک ماه دوتا پروژه 20 میلیونی انجام میده به مراتب جلوتر از کسیه که 10 تا پروژه 4 میلیونی تحویل داده. رقم نهاییشون یکسانه ولی قطعا این دو نفر 30 روز یکسانی رو سپری نکردن. دقت داشته باشید بعدها کارفرماها نمونه کار شمارو میبینن و ازتون ممکنه بپرسن این کار رو با چه بودجه ای انجام دادید و اگر ببین قیمت شما قیمت ارزونیه صرف نظر کنن ازتون چون این دیدگاه میاد سمتشون که چون ارزونه لابد بی کیفیته.مسئولیت پذیر باشید. در طول این سالها خیلی وقت ها پیش اومده که نتونستم سر تایم پروژه رو تحویل بدم اما از این نباید بترسید. اگر که مسئولیت پذیر باشه، قطعا این دیرکرد در تحویل پروژه یه دلیل منطقی ای داره و شما با ذکر دلیل میتونید به کارفرما توضیح بدید و ازش عذرخواهی کنید و در ازاش یه فیچر یا بنفیت رایگانی بهش بدید که خوشحال شه. ولی همیشه سعی کنید مسئولیت پذیر باشید خیلی مهمه.ارتباط بگیرید. در طول پروژه شما قطعا به یه شناخت نسبی از کارفرما میرسید. اگر میبینید کارفرما قدرت داره یا بیزنس قوی ای داره یا ارتباطات خوبی داره سعی کنید ارتباطتون رو باهاش بعد از پروژه هم حفظ کنید. داشتن کانکشن بیشتر از هرچیزی به نفع شماست. مثلا یه اپلیکیشنی رو زدید و تحویل دادید؛ بعد از یک هفته جویای وضعیت بشید از کارفرما. بپرسید همه چه اوکیه؟ اینطوری اون این دید رو میگیره که این شخص بعد از پروژه هم در دسترسه و میتونم روش حساب باز کنم. البته حواستون باید باشه که از این مورد سوءاستفاده نکنن.به عنوان فریلنسر سعی کنید دانش های مختلفی رو در حد بیسیک فرا بگیرید. اگر برنامه نویس موبایل هستید درسته که تخصص شما توسعه اپلیکیشن هست ولی داشتن دانش در زمینه مارکتینگ، uiux، رفتار شناسی، رنگ شناسی، مباحث امنیت و بک اند و ... میتونه هم براتون پوینت مثبتی باشه هم اینکه در پروژه این دانش ها بهتون کمک میکنن تا روند توسعتون استانداردتر و راحت تر سپری شه.در آخر باید بگم که بسنده نکنید هیچ وقت به فریلنسری. این مسیر یه مسیر درازمدت و زمانبره و نیاز به تلاش داره. کارکردن داخل شرکت های مختلف قبل از شروع مسیر فریلنسری میتونه خیلی به نفعتون باشه هم از بابت رزومه و هم از بابت تجربه. امیدوارم که همیشه موفق و پیروز باشید :))#فلاتر #فریلنسر #فریلنسری #کارلنسر #پونیشا #دورکاری #برنامه_نویسی</description>
                <category>اردوان اسکندری</category>
                <author>اردوان اسکندری</author>
                <pubDate>Mon, 05 Jan 2026 13:21:25 +0330</pubDate>
            </item>
                    <item>
                <title>نکات طلایی Uiux برای توسعه دهنده ها</title>
                <link>https://virgool.io/@ardavan81e/%D9%86%DA%A9%D8%A7%D8%AA-%D8%B7%D9%84%D8%A7%DB%8C%DB%8C-uiux-%D8%A8%D8%B1%D8%A7%DB%8C-%D8%AA%D9%88%D8%B3%D8%B9%D9%87-%D8%AF%D9%87%D9%86%D8%AF%D9%87-%D9%87%D8%A7-gifvepnbkb3m</link>
                <description>نکات طلایی Uiux برای توسعه دهنده ها و برنامه نویس ها✨ ۵ تا قانون و نکته رو میخوام بهت بگم که اگه uiux بلد نیستی، دونستنشون بهت خیلی کمک میکنه.🟢 اول اینو بگم که برنامه‌نویس خفن فقط کد تمیز نمی‌زنه، بلکه حواسش به تجربه کاربری هم هست!یعنی براش مهمه چیزی که داره میسازه و توسعه میده، چقدر از دید کاربر بهینه ست و چقدر میتونه به کاربر کمک کنه. این موضوع رو معمولا طراحان محصول و طراحان uiux بررسی میکنن و در اختیار تیم توسعه میذارن ولی اگه دیزاینر توی تیم ندارید یا روی پروژه شخصی کار می‌کنید، این ۵ تا نکته رو باید رعایت کنید تا سطح کارتون چند پله بره بالاتر. ( بعدا ازم تشکر میکنی مهندس ! )۱. فضای سفید (White Space) دوست شماست:انقد استرس نگیرید که یه بخشی از صفحه هنوز سفیده و پر نشده !نترسید که صفحه رو خالی بذارید!بلکه از این فضای سفید ها استفاده کنید تا فاصله ایجاد بشه. فاصله دادن بین المان‌ها باعث میشه چشم کاربر استراحت کنه و محتوا راحت‌تر خونده بشه. (margin و padding رو هم دست کم نگیرید).فضای سفید، فضای هدر رفته نیست؛ یک ابزار بهینه سازی برای مغز کاربره۲. سلسله مراتب بصری (Visual Hierarchy):سایت یا اپلیکیشن و یا هرمحصولی که تولید میکنید و توسعه میدید، باید یه ساختار پیوسته و مشخصی داشته باشه. یعنی چی؟ به عنوان مثال کاربر وقتی میاد وارد فضای سایت شما میشه باید با نگاه کردن بفهمه سایت راجب چیه، تیترها کدوما هستن و دکمه های مهم کجان. به عبارتی دیگر، مهم‌ترین چیز باید بزرگ‌ترین و پررنگ‌ترین المان باشه و بعدش به ترتیب اولویت و اهمیت، المان های دیگر به چشم بیان.کاربر از فکر کردن زیاد و اینکه فکرش درگیر شه خوشش نمیاد؛ سلسله مراتب بصری درست یعنی کاربر برای فهمیدن و کارکردن با محصول شما نیاز به فکر نداشته باشه.۳. بازخورد به کاربر (Feedback):هیچ کلیکی نباید بی‌پاسخ بمونه. کاربر رو در حالت بلاتکلیفی نذارید!لودینگ‌هایی که Progression دارن ( یعنی یه دایره چرخان معمولی نیستن؛ اغلب وضعیت لودینگ رو به صورت درصد نشون میدن یا با یه متن کاربر رو به صبر کردن تشویق میکنن )، تغییر رنگ دکمه موقع هاور (Hover) و پیام‌های موفقیت/خطا باعث میشه کاربر حس کنه سیستم زنده‌ست و کار میکنه.بلاتکلیفی برای کاربر، محکم ترین دلیل برای ترک سایت یا اپلیکیشن شماست۴. تایپوگرافی خوانا:فونت‌های عجیب و غریب رو فراموش کنید. به هیچ وجه از فونت های کاستوم و طرحدار عجیب استفاده نکنید مگر در شرایط خیلی خاص و به مقدار خیلی کم ( مثلا برای طرح دادن به تیتر صفحه Splash موبایل ). از فونت های خوب و خوانا مثل ایران یکان، ایران سنس، استعداد، وزیر و صمیم و... استفاده کنید در عوض.کنتراست رنگ متن با پس‌زمینه رو چک کنید (متن خاکستری روشن روی سفید یکی از موارد اشتباهه). متن و پس زمینه باید کنتراست کامل مخالف همدیگه رو داشته باشن تا هم پس زمینه به چشم بیاد هم متن قابل خوندن باشه. فاصله بین خطوط (line-height) رو معمولاً روی ۱.۵ تنظیم کنید و در شرایط خاص میتونید این رقمو عوض کنید.محصول شما باید خوانده شود تا مخاطب جذب شود۵. قانون ۶۰-۳۰-۱۰ در رنگ‌بندی:این یکی از قوانین قراردادی طراحان هست و ترکیب خروجی این فرمول در 99 درصد مواقع یک خروجی ایده آل و مناسبه. ۶۰٪ رنگ اصلی (معمولا خنثی هست)، ۳۰٪ رنگ ثانویه و ۱۰٪ رنگ تاکید (Accent color) برای دکمه‌ها و Call to Actionها. حالا میبینید که چرا اسمش رنگ تاکیده؛ چون کارش اینه توجه کاربرو جلب کنه و وقتی بیش از حد از این رنگ استفاده میکنید ( چیزی که توی خیلی از سایت ها و اپلیکیشن ها باهاش مواجه هستیم ) باعث میشه میزان تاثیرگذاری اون رنگ کم و کمتر بشه.نکته پایانی: همیشه خودتون رو جای کاربری بذارید که بار اوله سایت یا اپلیکیشن شما رو می‌بینه.#فلاتر #برنامه_نویسی #uiux #flutter #رابط_کاربری #برنامه_نویس</description>
                <category>اردوان اسکندری</category>
                <author>اردوان اسکندری</author>
                <pubDate>Sun, 04 Jan 2026 14:27:38 +0330</pubDate>
            </item>
            </channel>
</rss>