<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
    <channel>
        <title>پست‌های انتشارات مدیوم فارسی</title>
        <link>https://virgool.io/mediumPersian/feed</link>
        <description>بهترین های مدیوم به زبان شیرین فارسی</description>
        <language>fa</language>
        <pubDate>2026-06-18 21:26:14</pubDate>
        <image>
            <url>https://files.virgool.io/upload/publication/risgyixnixjh/prrjcm.png</url>
            <title>مدیوم فارسی</title>
            <link>https://virgool.io/mediumPersian</link>
        </image>

                    <item>
                <title>چطور در دیزاین بد نباشیم، یک راهنمای ۵ دقیقه ای برای غیرطراحان</title>
                <link>https://virgool.io/mediumPersian/%DA%86%D8%B7%D9%88%D8%B1-%D8%AF%D8%B1-%D8%AF%DB%8C%D8%B2%D8%A7%DB%8C%D9%86-%D8%A8%D8%AF-%D9%86%D8%A8%D8%A7%D8%B4%DB%8C%D9%85-%DB%8C%DA%A9-%D8%B1%D8%A7%D9%87%D9%86%D9%85%D8%A7%DB%8C-%DB%B5-%D8%AF%D9%82%DB%8C%D9%82%D9%87-%D8%A7%DB%8C-%D8%A8%D8%B1%D8%A7%DB%8C-%D8%BA%DB%8C%D8%B1%D8%B7%D8%B1%D8%A7%D8%AD%D8%A7%D9%86-y5612wdf14dk</link>
                <description>هر کسی می‌تواند اصول طراحیِ خوب را یاد بگیرد. این راهنمای به شما دانش پایه ای در طراحی عملیاتی خواهد داد که از امروز می‌توانید آنرا اجرایی کنید.(یا در طرح های دوستانتان تغییری ایجاد کنید.)اگر احساس می‌کنید نمی‌توانید طراحی را یاد بگیرید، نظر شما را به سخنی از Dave Grohl کارگردان و موسیقی‌دان مشهور آمریکایی در باب یادگیری چیز های جدید جلب می‌کنم: من هیچوقت برای درام زدن و گیتار زدن دوره ای نگذراندم، بلکه به نحوی خودم آنرا یاد گرفتم. فکر می‌کنم با مشتاق بودن نسبت به یک موضوع با تمرکز و حرکت در مسیر آن، هر کاری که باشد از پس آن بر می‌آیید.خب پس خودتون رو آماده کنید که این ۱۰ نکته کاربردی در طراحی رو به خاطر بسپارید:۱. از کنتراست زیاد استفاده کنیدرنگ پس زمینه و فونت باید به اندازه کافی متفاوت باشند تا موجب خستگی چشم نشوند. معمولا نوشته های سیاه روی پس زمینه سفید بهتر خوانده می‌شود. از خاکستری کمرنگ، مایه رنگی زرد و سبز استفاده نکنید. به هر حال اگر برای خواندن به زحمت افتادید احتمالا مشکلی با رنگ ها دارید!از: https://developer.apple.com/design/tips/۲. خاکستری تیره از مشکی خالص بهتر خوانده می‌شوداگر امکانش را داشتید برای متون از رنگ 333333# (51, 51 , 51) RBG بجای مشکی خالص استفاده کنید.مشکی خالص روی پس زمینه سفید چشم را اذیت می‌کند و تمرکز روی حروف را سخت می‌کند.۳. محتوای مهم را اول بیاورید برای کاربری بهتر در رابطه با استفاده اصلی محصول خود محتوای اصلی را ابتدا قرار دهید تا به وضوح قابل مشاهده و استفاده باشد. محتوای مهم باید بدون زوم کردن، اسکرول کردن و یا کلیک(تپ) کردن قابل مشاهده باشد.از: https://developer.apple.com/design/tips/بگذارید برای جا افتادن موضوع چند نمونه خوب از ترتیب بصری خوب در واقعیت را مثال بزنیم:اینستاگرام تمرکز اصلی را روی پست های ارسالی کاربران قرار داده است.پینترست با قراردادن سرچ باکس در بالا و  شبکه بندی موضوعات در ادامه آن یک ترتیب بصری ساخته است. پینترست به قرار گیری سرچ باکس در این نقطه تاکید خاصی دارد. جستجو عملکرد اصلی اپلیکیشن است، افراد برای جستجو و مرور تصاویر بر اساس موضوعات به این اپلیکیشن می‌آیند و نیاز اصلی آنها جستجو است.راست پینترست / چپ اینستاگراماسپاتیفای ت آرت ورک آلبوم یا ترک را ابتدا و سپس آیکون های کنترلی را می‌آورد؛ حتی در بین آیکون ها اجرا و توقف اندازه بزرگتری نسبت به بقیه دارند.فیسبوک همانند اینستاگرام وزنه اصلی را روی پستی که دوست شما ارسال کرده قرار می‌دهد.راست فیسبوک / چپ اسپاتیفای۴. همه چیز را تراز کنیداولین کار برای اینکه یک طراحی بد و فاجعه را درست کنید این است که مطمئن شوید همه چیز را درست تراز کرده باشید. وقتی طراح ها اصرار به استفاده از شبکه بندی دارند برای جلوگیری از عدم ترازبندی صحیح بین المان هاست.درست کردن ترازبندی یکی از راحت ترین بهبود هایی است که می‌توان طراحی هر اپ یا وبسایتی را یکباره ۱۰ برابر بهتر کرد.From: https://developer.apple.com/design/tips/یک نمونه آموزشی این‌بار از مدیوم:این یک اسکرین شات از سایت مدیوم است. بنظر شما ظاهر آن چگونه است؟ چه حسی نسبت به آن دارید؟در سمت چپ فواصل سفید موجود باعث به هم خوردن ترازبندی صحیح شده است؛ در سمت راست من آنها را با یکسان کردن فواصل سر و سامان دادم!ترازبندی بد سمت چپ و ترازبندی صحیح سمت راست۵. اندازه متون و فاصله خطوطما برای مورچه ها طراحی نمی‌کنیم!افزودن فونت خواندن محتوا را آسان تر خواهد کرد و خواندن خطوط وقتی با فاصله های مناسب از هم قرار گرفته اند راحت تر است. https://developer.apple.com/design/tips/ : از https://developer.apple.com/design/tips/ :از  ۶. برای نمایش نتایج از لیست استفاده کنید(اگر ترتیب آنها اهمیت دارد)اغلب اپ های وب و موبایل به نحوی عملکرد جستجو دارند. اگر ترتیب نمایش اهمیت دارد نمایش لیستی معمولا مناسب است. ولی وقتی ترتیب تفاوتی ندارد و می‌خواهید افراد به گشت و گذار در بخش های مختلف سوق دهید ساختار شبکه ای مفید است (مثل پینترست)از: http://usabilitynews.org/how-do-users-view-search-results-presented-in-a-grid-layout/۷. اول سیاه سفید طراحی کنید و بعد رنگ ها را بیافزاییدطراحی سیاه سفید تمام تمرکز شما را روی طراحی تجربه اصلی اپ شما متمرکز می‌کند. رنگ ها احساسات ما را تحت تاثیر قرار می‌دهند و اغلب باعث از بین رفتن تمرکز از مشکلات اصلی طراحی می‌شوند.۸. طرحی با کاربری راحت داشته باشیدکشیدگی دست یک مشکل واقعی است، تصویر را که از مقاله عالی طراحی واکنش‌گرا: بهینه سازی برای دسترسی سراسری در دیوایش لمسی را در نظر بگیرید:این مقاله بر اساس آسانی دسترسی صفحه را بخش بندی می‌کند. بسیاری از اپلیکیشن های خوب منو های ناوبری (navigation) را در پایین صفحه و بخش مشخص شده در نظر می‌گیرند.۹. از پالت رنگ آماده استفاده کنیدرنگ شناسی یک جور هنر سخت و تخصصی است. من به شدت به شما توصیه می‌کنم که به دریبل بروید و به دنبال &quot;color palettes&quot; ها بگردید یا از پالت ساز مثل Coolors یا Color Claim استفاده کنید.وقت خود را برای بحث های بی‌پایان و حدس زدن رنگ مناسب هدر ندهید!۱۰. از قرارداد های طراحی گوگل و اپل استفاده کنیداپل و گوگل منابع بی نظیری برای هر کسی که برنامه های ios یا android می‌سازد فرآهم کرده اند.برای مثال the Google Material spec اصول، منابع، رنگ ها، آیکون ها و کامپوننت هایی برای شروع سریع طراحی اپ شما تهیه کرده است.و اپل در Apple has the HIG — their Human Interface Guidelines, تمام چیزی که برای طراحی یک اپ ios نیاز دارید را جمع آوری کرده است.به یاد داشته باشید: طراحی نیاز به تمرین دارد!عادت کردن چشم برای تشخیص یک ایراد در طراحی نیاز به تمرین و زمان دارد، اما شما با استفاده از نکات بالا می‌توانید هر چه تا به امروز طراحی کرده اید را کمی بهبود بدهید. پس نمونه های مختلف را ببنید به اصول رعایت شده در آنها دقت کنید و با تکرار و تکرار به بهتر شدن مهارت خود کمک کنید.نظر شما چیست؟ شما چه نکاتی را در این زمینه کشف کردید؟ با اشتراک گذاری نظرات خود در کامنت ها به یکدیگر کمک می‌کنیم  :)این یادداشت ترجمه آزادی بود از: https://medium.com/startup-grind/how-to-not-suck-at-design-a-5-minute-guide-for-the-non-designer-291efac43037 </description>
                <category>مدیوم فارسی</category>
                <author>مهدی کلهر</author>
                <pubDate>Fri, 28 Sep 2018 02:04:32 +0330</pubDate>
            </item>
                    <item>
                <title>اصول طراحی RESTful API / بهترین راهکار ها</title>
                <link>https://virgool.io/mediumPersian/%D8%A7%D8%B5%D9%88%D9%84-%D8%B7%D8%B1%D8%A7%D8%AD%DB%8C-restful-api-%D8%A8%D9%87%D8%AA%D8%B1%DB%8C%D9%86-%D8%B1%D8%A7%D9%87%DA%A9%D8%A7%D8%B1-%D9%87%D8%A7-w0bomkq1fipt</link>
                <description>فیسبوک، گوگل، گیتهاب، نتفلیکس و چندین غول دیگر تکنولوژی ،‌ شانس استفاده از اطلاعاتشان را از طریق API ها به دولوپرها و برنامه های شخص ثالث داده اند.حتی اگر شما برای بقیه دولوپر ها و نرم افزار ها API ارائه نمی‌دهید، برای برنامه شما خیلی مفیدتر است که API تمیز و زیبایی طراحی کنید.نحوه درست طراحی یک API یک جر و بحث قدیمی در فضای وب است، و یکی از بزرگترین آنهاست، چون هیچ دستورالعمل رسمی ای برای آن وجود ندارد.ـ API رابطی است که دولوپر های زیادی از طریق آن به تبادل داده ها میپردازند. یک API خوب همیشه کاربری ساده ای دارد و زندگی دولوپر ها را راحت‌تر می‌کند. API یک محیط گرافیکی (GUI) برای دولوپر هاست،‌ اگر گیج کننده باشد آنها دنبال یک جایگزین برای  آن خواهند گشت و دیگر از آن استفاده نمی‌کند. تجربه دولوپری (Developers’ experience) یکی از مهمترین معیار ها برای اندازه گیری کیفیت طراحی API شماست.ـ API مثل یک اجرا روی استیجه و کاربران API حضار تو سالنن.۱. ترمینولوژیاینها از مهمترین اصطلاح (term) های حوزه REST API هستند:ـ Resource یک شی یا نمایش از چیزیست (مدل) که به دیتاهای دیگر مرتبط است و شامل متد هایی است که روی آن کار هایی انجام میدهند. مثلا حیوانات، مدارس و کارمندان resource هستند و حذف، افزودن و ویرایش کردن افعالی که میتواند روی آنها انجام شود.ـ Collection ها مجموعه ای از resource ها هستند: کمپانی مجموعی از منابع کمپانی است (مثل کارمندان، مشاوران و ... )ـ URL یا Uniform Resource Locator مسیری هستند که میتوانند مکان Resource ها را تعیین کنند و بعضی افعال را روی آنها پیاده کنند.۲. ـ API endpointبگذارید برای درک بهتر موضوع چند API برای یک کمپانی با کارمندانش بنویسیم:برای دریافت لیست همه کارمندان getAllEmployee/ و برای بعضی از کار های معمول دیگر هم لیست زیر را‌ پیاده سازی کرده‌ایم: /addNewEmployee/updateEmployee /deleteEmployee/deleteAllEmployees/promoteEmployee/promoteAllEmployeesو تعداد زیادی endpoint دیگر برای انجام کار های مختلف باید پیاده کنیم، که همه آنها شامل ویژگی های منحصر بفرد زیادی هستند. از این رو نگهداری و تعمیر وقتی تعداد  پایانه ها (endpoint) افزایش پیدا می‌کند بسیار سخت خواهد بود.مشکل کجاست؟url طبق تعریف (Uniform Resource Locator /  مشخص کننده مکان منبع) باید فقط مشخص کننده مکان یک Resource باشد نه انجام فعلی روی آن. پس وجود  و getAll . . . در URL اشتباه است.پس روش درست چیست؟آدرس companies/ مثال مناسبی از روش صحیح است که هیچ فعلی را مستقیم ذکر نکرده است.اما چگونه باید افعال را به سرور بفهمانیم؟ مثلا اینکه می‌خواهیم لیست کارمندان را دریافت کنیم؟ این کار به عهده‌  HTTP متد هاست (GET, POST, DELETE, PUT) که به آنها verb هم می‌گوییم.اسم Resource ها همواره باید بصورت جمع بکار برده شوند؛ و اگر خواستیم به یکی از آنها دسترسی داشته باشیم میتوانیم id مورد نظرمان را در URL ارسال کنیم.متد GET برای آدرس companies/ باید لیست همه کمپانی ها را بگیرد.متد GET برای آدرس 34/companies/ باید اطلاعات کمپانی با آی دی ۳۴  را بگیرد.متد DELETE برای آدرس 34/companies/ باید کمپانی با آی دی ۳۴ را حذف کند.مثال های زیر با فرض این که کارمندان زیر مجموعه ای از کمپانی ها هستند:ـ GET /companies/3/employees برای دریافت لیست همه کارکنان کمپانی ۳ـ GET /companies/3/employees/45 برای دریافت اطلاعات کارمند ۴۵ متعلق به شرکت ۳ـ DELETE /companies/3/employees/45 برای حذف کارمند ۴۵ متعلق به شرکت ۳ـ POST /companiesبرای ساخت یک کمپانی جدید و دریافت اطلاعات کمپانی ساخته شدهحالا API ما تمیز و درست حسابی شد!?نتیجه این که: آدرس ها باید شامل اسم های جمع Resource ها باشند، و HTTP متد ها فعل انجام شده روی Resource را مشخص کنند.۳. متد های HTTP ـ HTTP تعدادی متد تعریف شده دارد که مشخص می‌کنند چه فعلی روی Resource مورد نظر اعمال میشود.ـ URL یک جمله است؛ Resource ها اسم های آن و HTTP متد ها فعل های آن هستند.متد های پر استفاده تر HTTP به قرار زیر اند:متد GET اطلاعات را از Resource مورد نظر دریافت میکند. مثلا companies/3/employees/ اطلاعات مربوط به کارمندان کمپانی ۳ را برمی‌گرداند. ( این عمل نباید هیچ تاثیر جانبی دیگری بر سیستم داشته باشد.)متد POST  برای ساخت یک Resource در دیتابیس بکار میرود.(معمولا وقتی یک فرم ارسال میشود.) برای مثال companies/3/employees/ یک کارمند جدید از کمپانی ۳ ایجاد می‌کند.نکته : این متد non-idempotent است یعنی با تکرار درخواست یک Resource جدید ایجاد می‌کند.متد PUT درخواستی است که Resource را ویرایش می‌کند و در صورت عدم وجود آنرا می‌سازد. برای مثال companies/3/employees/john/ ـ john را در زیر مجموعه کارکنان کمپانی ۳ ویرایش می‌کند و در صورت عدم وجود آنرا میسازد.نکته:  این متد idempotent است یعنی با تکرار درخواست همان Resource قبلی ویرایش می‌شود.متد DELETE برای حذف Resource ای که باید از دیتابیس حذف شود بکار می‌رود. برای مثال /companies/3/employees/john/ باعث حذف  john از لیست کارمندان کمپانی ۳ می‌شود.برای اطلاع از متد های دیگر HTTP از ویکی پدیا استفاده کنید.۴۰۴ :(۴. کد های وضعیت HTTP Responseوقتی که کلاینت درخواستی از سرور می‌کند باید بتواند به راحتی از وضعیت درخواستش مطلع شود، که درخواستش موفق ،ناموفق و یا غلط بوده است. کد های وضعیت HTTP سریال هایی برای سناریو های مختلفی است که ممکن است روی دهد. سرور همیشه باید کد وضعیت درست را به کلاینت برگرداند. در ادامه به معرفی دسته های مختلف کد های وضعیت  HTTP می‌پردازیم:حالت موفق - 2XXاین دسته کد های وضعیت به معنای دریافت درخواست توسط سرور و موفقیت پردازش مورد نظر است:ـ 200 OK: کد استاندارد HTTP برای نمایش موفقیت عملیات های GET,POST ,PUTـ 201 Created: این کد وضعیت باید بعد از ایجاد شدن یک Resource بازگردانده شود. برای مثال هنگام ساخت با POSTـ 204 No Content: درخواست موفق بوده است ولی هیچ محتوایی برای پاسخ وجود نداشته است. معمولا درخواست DELETE با این کد برمی‌گردد. وقتی درخواست DELETE ارسال میشود ما به صراحت به سرور گفته ایم که یک نمونه را حذف کن و نیازی به بازگشت اطلاعات خاصی نداریم. اگر نمونه مورد نظر وجود نداشته باشد ارور کلاینت رخ داده که در حوزه 4XX قرار میگیرد.حالت ریدایرکت  - 3XXـ 304 Not Modified: نشان می‌دهد که کلاینت پاسخ را در کش خود دارد و نیازی به ارسال مجدد داده ها به کلاینت نیست.حالت کلاینت ارور - 4XXاین حالت هنگامی رخ می‌دهد که درخواستی معیوب از سمت کاربر ارسال شود:ـ 400 Bad Request: درخواست توسط سرور انجام نشده است. سرور معنای درخواست کلاینت را متوجه نمی‌شود.ـ 401 Unauthorized: کلاینت اجازه دسترسی به این Resource را ندارد و برای دسترسی باید با اعتبار مشخصی اقدام کند.ـ 403 Forbidden: درخواست درست ارسال شده و کلاینت تایید اعتبار شده است اما به دلیلی به او اجازه دسترسی به Resource داده نمی‌شود. برای مثال کاربران عضو یک وبسایت به فایل های دایرکتوری دسترسی ندارند.ـ 404 Not Found: نشان میدهد در حال حاضر منبعی برای این درخواست موجود نیست.ـ 410 Gone:  نشان میدهد مکان Resource مورد نظر جا به جا شده است.حالت سرور ارور - 5XXـ 500 Internal Server Error: درخواست درست است ولی سرور در ارائه خواسته کلاینت مشکل دارد. یعنی اروری در حین آماده سازی پاسخ در سرور ایجاد شده است.ـ 503 Service Unavailable: سرور غیر فعال است یا نمی‌تواند درخواست ها را دریافت و پردازش کند. عموما به معنای این است که سرور در حال تعمیر است.۵. قوانین نام گذاریشما می‌توانید از هر قاعده نام گذاری (naming convention) ای که می‌خواهید پیروی کنید.اما حتما این قاعده را در تمام سطح API رعایت کنید. اگر از JSON برای بدنه درخواست یا پاسخ استفاده می‌کنید سعی کنید که از Camel Case استفاده کنید. pagination۶. جستجو، مرتب سازی، فیلتر کردن و صفحه بندیهمه این کار ها با کوئری زدن روی دیتاست ها انجام پذیر اند؛ و نیازی به طراحی API مجزا ندارند. کافیست پارامتر هایی به URL خود اضافه کنیم و توسط همان متد GET آنرا درخواست دهیم. بگذارید با چند مثال قضیه را روشن تر کنیم:مرتب سازی: کلاینت می‌خواهد درخواستی برای دریافت لیست مرتب کمپانی ها ارسال کند. پایانهGET /companies باید بتواند پارامتر های مختلفی را قبول کند مثل :GET /companies?sort=rank_asc که لیست کمپانی ها را بر اساس رنکینگ بصورت صعودی برمی‌گرداند.فیلتر کردن: برای فیلتر کردن دیتاست ها میتوانیم مانند مرتب سازس عمل کنیم مثلا:GET /companies?category=banking&amp;location=india بانک هایی که در هند مستقر هستند را برمی‌گرداند.جستجو: مثلا برای جستجو بر اساس نام یک کمپانی :GET /companies?search=Digital Mckinsey که اطلاعات کمپانی دیجیتال مکنزی را برمی‌گرداند.صفحه‌بندی: وقتی دیتاست خیلی بزرگ است، آنرا به بخش های کوچک تر تبدیل میکنیم تا بازده سیستم بالاتر رود و پاسخ سریعتر ارسال شود . برای مثال: GET /companies?page=23 کمپانی های بخش ۲۳ را برمی‌گرداند.نکته: وقتی تعداد پارامتر های ارسالی بالارود و طول URL بیش از حد شود، ممکن است سرور کد 414 URI Too Long بدهد. در این موارد می‌توانید دیتای مورد نظر را در بدنه درخواست POST قرار دهید.۷. نسخه بندی (versioning)وقتی API شما در حال استفاده است، بهبود دادن آن و تغییر ساختار آن ممکن است در عملکرد نرم افزار هایی که از API شما استفاده می‌کنند مشکل ایجاد کند. این URL یک نمونه مناسب از API است: http://api.yourservice.com/v1/companies/34/employees که عدد ورژن به صراحت در URL ذکر شده است. اگر تغییر اساسی در API شما انجام شد باید ورژن جدیدی از API منتشر کنید. برای مثال  از v2 یا v1.x.x استفاده کنید.پایاناین یادداشت ترجمه آزادی بود از: https://hackernoon.com/restful-api-designing-guidelines-the-best-practices-60e1d954e7c9 در صورتی که آن را دوست داشتید از لایک و اشتراک گذاری دریغ نکنید.</description>
                <category>مدیوم فارسی</category>
                <author>مهدی کلهر</author>
                <pubDate>Wed, 02 May 2018 10:35:39 +0430</pubDate>
            </item>
            </channel>
</rss>