<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
    <channel>
        <title>نوشته های کوثر آهنگر</title>
        <link>https://virgool.io/feed/@ahangart66</link>
        <description></description>
        <language>fa</language>
        <pubDate>2026-06-16 07:11:06</pubDate>
        <image>
            <url>https://static.virgool.io/images/default-avatar.jpg</url>
            <title>کوثر آهنگر</title>
            <link>https://virgool.io/@ahangart66</link>
        </image>

                    <item>
                <title>چگونه اپلیکیشن‌های React Native را برای عملکرد بالا و مصرف باتری کمتر بهینه کنیم؟</title>
                <link>https://virgool.io/@ahangart66/%DA%86%DA%AF%D9%88%D9%86%D9%87-%D8%A7%D9%BE%D9%84%DB%8C%DA%A9%DB%8C%D8%B4%D9%86-%D9%87%D8%A7%DB%8C-react-native-%D8%B1%D8%A7-%D8%A8%D8%B1%D8%A7%DB%8C-%D8%B9%D9%85%D9%84%DA%A9%D8%B1%D8%AF-%D8%A8%D8%A7%D9%84%D8%A7-%D9%88-%D9%85%D8%B5%D8%B1%D9%81-%D8%A8%D8%A7%D8%AA%D8%B1%DB%8C-%DA%A9%D9%85%D8%AA%D8%B1-%D8%A8%D9%87%DB%8C%D9%86%D9%87-%DA%A9%D9%86%DB%8C%D9%85-qp0hvatfrupl</link>
                <description>React Nativeینه سازی اپلیکیشن های React Native یکی از قدرتمندترین فریم ورک های موجود برای ساخت برنامه های موبایل چند سکویی است. از آنجایی که بهینه سازی کارایی و عمر باتری برای کاربران موبایل از اهمیت فراوانی برخوردار است، در این مقاله به بررسی راه هایی برای رسیدن به این اهداف در فریم ورک React Native می پردازیم.  اگر هنوز با مفاهیم پایه‌ی React Native آشنایی ندارید، پیشنهاد می‌کنم ابتدا دوره‌ی React Native Fundamentals را دانلود و مشاهده کنید تا راحت‌تر بتوانید از این تکنیک‌ها استفاده نمایید.1. استفاده از به روزترین نسخه React Nativeورژن های به روزرسانی شده React Native، معمولا از نظر عملکرد ارتقا پیدا کرده اند و مشکلات آن ها برطرف شده است؛ درنتیجه استفاده از این نسخه های به روز شده می تواند مزایای زیادی به همراه داشته باشد. برای آپدیت کردن React Native می توانید از کد زیر استفاده کنید.npx react-native upgrade2. از رندرهای غیرضروری پرهیز کنیدرندرهای غیرضروری باعث کاهش سرعت برنامه شما می شوند. برای جلوگیری از این مشکلات می توانید یکی از کارهای زیر را انجام دهید.برای کامپوننت های تابعی که نیازی به رندها ندارند، از React.Memo استفاده کنید.برای کامپوننت های بر مبنای کلاس، به جای Componentاز PureComponentاستفاده کنید.برای ذخیره توابع و مقادیر از useCallback و useMemo استفاده کنید.به منظور درک کامل این روش، به مثال زیر توجه کنید.const MyComponent = React.memo(({ data }) =&gt; {  return &lt;&gt;{data}&lt;/&gt;;});برای یادگیری بیشتر در مورد معماری، عملکرد، و طراحی اپلیکیشن‌های واقعی با React Native، می‌توانید دوره‌ی جامع Mastering React Native - Complete Guide to App Development را دانلود کنید.React Nativeوه رندر در 3. بهینه سازی تصاویرتصاویر بزرگ علاوه بر اینکه سرعت برنامه را کاهش می دهند، از باتری نیز استفاده زیادی می کنند. برای بهینه سازی تصاویر، بهتر است به جای تصاویر با فرمت PNG و JPG از WebP استفاده کنید که فشرده سازی بیشتری را به همراه دارد. همچنین سایز تصاویر را با توجه به رزولوشن صفحه نمایش خود عوض کنید و برای دانلودها از CDNاستفاده نمایید. به مثال زیر که نحوه استفاده از react-native-fast-image را بیان می دارد دقت کنید:import FastImage from &#039;react-native-fast-image&#039;;&lt;FastImage  style={{ width: 100, height: 100 }}  source={{ uri: &#039;https://your-cdn.com/image.webp&#039; }}  resizeMode={FastImage.resizeMode.contain}/&gt;4. کاهش سایز JavaScript bundleJavaScript bundle های بزرگ، زمان شروع به کار برنامه را افزایش می دهند. برای بهینه سازی آن ها، وابستگی های غیرضروری را حذف کنید. از Hermes motors ها مانند ( موتور جاوااسکریپت سبک) برای اندروید استفاده کنید و تقسیم بندی کد و بارگیری تنبل را فعال کنید. برای فعال سازی Hermes motors، فایل android/app/build.gradle  را ویرایش کنید.project.ext.react = [enableHermes: true // Add this line]5. بهینه سازی مدیریت وضعیتبه روز رسانی های نامناسب مدیریت وضعیت، منجر به از دست رفتن کارایی می شوند. برای بهینه سازی آن ها، از به روزرسانی های غیر ضروری use-state اجتناب کنید. همچنین برای مدیریت وضعیت های ساده از Context API و Redux بهینه شده استفاده کنید. علاوه بر آن می توانید به جای Redux از Zustand و Recoil استفاده نمایید.6. درخواست های غیرضروری به سرورها را کاهش دهیدتعداد زیاد درخواست های API، باعث کند شدن برنامه ها و افزایش استفاده از باتری می شود. برای بهینه سازی این موضوع، از حافظه های پنهان (Caching) مانند AsyncStorage و یا React Query استفاده کنید. برای ورودی های جستجو، به منظور جلوگیری از ارسال مقادیر زیادی از درخواست از Debouncing استفاده کنید. همچنین برای به روزرسانی های آنی، به جای polling از WebSocket استفاده کنید.7. برای مسئولیت های سنگین از ماژول های محلی استفاده کنیدبرای انجام کارهای سنگین مانند پردازش تصاویر برای انیمیشن، از ماژول های محلی استفاده کنید تا به کارایی بهتری دست پیدا کنید. برای مثال، برای انیمیشن ها از react-native-reanimatedاستفاده نمایید. همچنین برای ژست های روان تر از react-native-gesture-handler استفاده نمایید.8. لیست ها را با استفاده از FlatList بهینه کنیدبرای نمایش لیست های طولانی، به جای استفاده از ScrollView از FlatList با تنظیمات بهینه شده استفاده کنید. به مثال زیر توجه کنید:&lt;FlatList  data={data}  renderItem={({ item }) =&gt; &lt;Text&gt;{item.name}&lt;/Text&gt;}  keyExtractor={(item) =&gt; item.id.toString()}  initialNumToRender={10}  maxToRenderPerBatch={5}  removeClippedSubviews={true}/&gt;9. بهینه سازی کارایی و نظارتبه منظور نظارت بر عملیات برنامه های مختلف چندین ابزار وجود دارد. ابزار React Nativeبرای رفع کردن خطاهای عملکردی مورد استفاده قرار می گیرد. Flipper ابزاری است که برای بررسی درخواست های شبکه، لاگ ها و سایر موارد استفاده می شود همچنین Perf Monitor برای تنظیمات توسعه دهنده نیاز است.10. بهینه سازی استفاده از باتریبرای کاهش استفاده از باتری، استفاده از سرویس های پس زمینه و تایمرهای غیرضروری را کاهش دهید. همچنین از GPS تنها زمانی که به آن نیاز است استفاده کنید. زمانی که باتری گوشی شما کم است استفاده از انیمیشن ها را به حداقل برسانید و در آخر، استفاده از برنامه های پس زمینه و تعداد بالای polling را به حداقل برسانید.سخن آخربهینه سازی عملیات و استفاده از باتری در برنامه های React Native، منجر به تجربه کاربری بهتری می شود. با به حداقل رساندن رندرها، بهینه سازی تصاویر، کاهش درخواست های شبکه و استفاده از ماژول های محلی، شما می توانید برنامه های سریع با مصرف باتری کم بسازید. برای اینکه نتیجه ملموسی ببینید توصیه می کنیم تمام تکنیک های گفته شده را انجام دهید.</description>
                <category>کوثر آهنگر</category>
                <author>کوثر آهنگر</author>
                <pubDate>Sat, 19 Apr 2025 16:45:26 +0330</pubDate>
            </item>
                    <item>
                <title>Django ORM vs SQLAlchemy – کدام ORM برای پروژه پایتون شما بهتر است؟</title>
                <link>https://virgool.io/codenevis/django-orm-vs-sqlalchemy-%DA%A9%D8%AF%D8%A7%D9%85-orm-%D8%A8%D8%B1%D8%A7%DB%8C-%D9%BE%D8%B1%D9%88%DA%98%D9%87-%D9%BE%D8%A7%DB%8C%D8%AA%D9%88%D9%86-%D8%B4%D9%85%D8%A7-%D8%A8%D9%87%D8%AA%D8%B1-%D8%A7%D8%B3%D8%AA-uksf6rhczdkd</link>
                <description>Django ORM vs SQLAlchemy – کدام ORM برای پروژه پایتون شما بهتر است؟هنگام ساخت یک برنامه تحت وب با استفاده از پایتون، انتخاب ابزار درستی که بتواند پایگاه داده ORM را به درستی مدیریت کند، بسیار با اهمیت است. دو مورد از محبوب ترین ORMهای پایتون، SQLAlchemy و Django ORM هستند. هر دوی این ابزارها، قابلیت های خوبی برای تعامل با پایگاه داده دارند؛ اما هریک از آن ها پیش نیازها و فلسفه های توسعه متفاوتی با یکدیگر دارند.در این مقاله، دو ابزار Django ORM و SQLAlchemy را بر اساس فاکتورهای مختلفی مانند سهولت استفاده، انعطاف پذیری، عملکرد و مقیاس پذیری با یکدیگر مقایسه می کنیم و به شما کمک می کنیم موردی که مطابقت بیشتری با پروژه شما دارد را انتخاب کنید.Django ORM چیست؟Django ORM یک لایه پایگاه داده انتزاعی در جنگو است که به توسعه دهندگان اجازه می دهد به جای استفاده از کدهای خام SQL، از کدهای پایتون برای ارتباط با پایگاه داده استفاده کنند. این ابزار عملیات پایگاه داده ای را آسان می کند و یک API سطح بالا برای مدیریت و کامل کردن پرس و جوها ارائه می دهد.Django ORM چیست؟اگر علاقه‌مند به یادگیری Django ORM و استفاده از این ابزار فوق‌العاده در پروژه‌های خود هستید، ما به شما پیشنهاد می کنیم دوره آموزشی Django Database ORM Mastery را دانلود و امتحان کنید!ویژگی های کلیدی Django ORMیکپارچگی کامل با جنگو، اولین ویژگی است که به آن اشاره می کنیم. این ویژگی در درون خود جنگو وجود دارد و یک آپشن پیش فرض در پروژه های Django است. ویژگی دوم مدیریت خودکار مهاجرت است. Django ORM، دارای یک سیستم مهاجرت اتوماتیک است که تغییرات ساختار پایگاه داده را مدیریت می کند.API QuerySet دیگر ویژگی Django ORM است. این ویژگی به کاربر اجازه می دهد کوئری های پیچیده را فیلتر، مرتب و اجرا کند. انتزاع در سطح بالا، یکی دیگر از ویژگی های این ابزار است. این ویژگی نیاز به پرس و جوهای خام SQL را کاهش می دهد و در عین حال به شما اجازه می دهد پرس و جوهای سفارشی سازی شده را اجرا کنید. ویژگی آخری که می توانیم به آن اشاره کنیم، پشتیبانی از چندین پایگاه داده است. شما می توانید این پایگاه داده را به نحوی پیکربندی کنید که در آن واحد با چندین پایگاه داده کار کنید.SQLAlchemy چیست؟SQLAlchemy یک ابزار منعطف و قدرتمند برای کار با SQL و پایگاه داده در پایتون است. برخلاف Django ORM، این ابزار به هیچ یک از فریم ورک های تحت وب وابسته نیست و کنترل کاملی از تعاملات پایگاه داده را در اختیار توسعه دهندگان قرار می دهد. برخی از ویژگی های کلیدی این ابزار در ادامه بررسی می شوند.زبان بیانی هسته SQL و تعریف ORM. این ابزار به توسعه دهندگان اجازه می دهد از بین مدل های ORM سطح بالا و عبارت های توصیفی سطح پایین SQL یکی را انتخاب کنند. کنترل دقیق، دیگر ویژگی ابزار SQLAlchemy است. این ابزار انعطاف پذیری بالایی در ارتباط با طراحی ساختار پایگاه داده، ارتباطات و پرس و جوها دارد. SQLAlchemy چیست؟پشتیبانی از ناهمزمانی نیز از ویژگی های SQLAlchemy است. این ویژگی یعنی، این ابزار به راحتی با فریمورک هایی مانند FastAPI کار می کند. از طرف دیگر SQLAlchemy از چندین پایگاه داده پشتیبانی می کند. برای مثال پایگاه داده هایی مانند PostgreSQL، MySQL، SQLite و دیگر پایگاه ها.  شفافیت درعوض انتزاع، آخرین ویژگی است که می خواهیم به آن اشاره کنیم. با استفاده از این ویژگی، توسعه دهندگان کنترل کاملی بر روی عملیات SQL دارند.اگه میخواید با SQLAlchemy و خصوصیات فوق العاده اش بیشتر آشنا بشین و یا قصد دارید تو پروژه بعدی تون ازش استفاده کنید اما نمیدونید از کجا شروع کنید، دوره Python Database Mastery: Dive into SQLAlchemy &amp;amp;amp; Alembic رو دانلود کنید!تفاوت های کلیدی بین Django ORM و SQLAlchemyسهولت استفاده، یکی از تفاوت هایی است که بین این دو ابزار وجود دارد. Django ORM برای تازه کاران و توسعه دهندگان جنگو گزینه مناسبی است. این ابزار سطح انتزاع بالایی دارد و API ساده تری را در اختیار کاربران قرار می دهد. در مقابل آن، کار کردن با SQLAlchemy اندکی سخت تر است اما درعوض انعطاف پذری و کنترل بیشتری را در اختیار کاربران قرار می دهد.انعطاف پذیری دیگر تفاوت این دو ابزار است. اگر پروژه های شما از الگوهای جنگو پیروی کند، Django ORM گزینه بهتری برای شما است. در مقابل آن SQLAlchemy، آزادی عمل بیشتری در زمینه طراحی پایگاه داده، بهینه سازی پرس و جوها و سفارشی سازی در اختیار کاربران قرار می دهد.عملکرد، دیگر ویژگی مهمی است که باید آن را درنظر بگیرید. Django ORM برای عملیات استاندارد مناسب است اما به دلیل سطح بالای انتزاع، برای اجرای پرس و جوهای پیچیده کندتر است. این درحالی است که SQLAlchemy بهینه تر است و مخصوصا برای برنامه های پیچیده و مقیاس پذر، عملکرد بالاتری را ارائه می دهد.مقیاس پذیری نیز در هنگام انتخاب بین دو ابزار باید درنظر گرفته شود. Django ORM برای پروژه هایی با سایز کوچک تا متوسط مناسب است و در هنگام اجرای عملیات پیچیده با محدودیت مواجه می شود. در مقابل آن، SQLAlchemy برای پروژه های بزرگ تر که نیاز به بهینه سازی عملیات دارند گزینه بهتری است.پشتیبانی از SQL خام، در Django ORM وجود دارد اما این ابزار بر استفاده از ORM لایه ای تاکید بیشتری دارد. SQLAlchemy ، قابلیت نوشتن و اجرا کردن SQL خام را دارد.در کدام پروژه ها از Django ORM و در کدام یک از SQLAlchemy استفاده کنیم؟در جدول زیر مقایسه کاملی از دو ابزار SQLAlchemy و Django ORM در ارتباط با پروژه هایی که این ابزارها در آن ها قابل استفاده است آورد شده است.Django ORM vs SQLAlchemyچه زمانی از  Django ORM استفاده کنیم؟برخی از دلایلی که به شما کمک می کند از بین دو ابزار Django ORM و SQLAlchemy یکی را انتخاب کنید عبارتند از:اگر شما در حال توسعه پروژه جنگو هستید و می خواهید یکپارچگی کاملی داشته باشید بهتر است از  Django ORM استفاده کنید.اگر به دنبال ORM ساده و قابل استفاده ای هستید تا با پایگاه داده در ارتباط باشید Django ORM مناسب تر است.ابزار Django ORM به شما کمک می کند مدیریت مهاجرت خودکار داشته باشید. همچنین از این ابزار می توانید برای پروژه های کوچک تا متوسط که عملیات پایگاه داده استانداری دارند، استفاده کنید.چه زمانی از SQLAlchemy استفاده کنیم؟اگر به کنترل دقیقی بر روی پرس و جوها و ساختار پایگاه داده نیاز دارید یا می خواهید پروژه بزرگ و پیچیده ای ایجاد کنید که نیاز به عملیات سطح بالا و پرس و جوهای بهینه شده دارد، بهتر است از SQLAlchemy استفاده کنید. همچنین پشتیبانی از برنامه های کاربردی ناهمزمان در فریم ورک هایی همچون FastAPI به این ابزار نیاز دارد. اگر بخواهید از ORM منعطف و مستقل از فریم ورک استفاده کنید SQLAlchemy برای شما مناسب است.سخن آخرهر دو ابزار Django ORM و SQLAlchemy، ابزارهای قدرتمندی هستند که هریک برای کاربرد جداگانه ای مورد استفاده واقع می شوند. اگر درحال کار بر روی یک پروژه جنگو هستید،Django ORM، ساده ترین و بهترین انتخاب برای شما است. اما اگر به دنبال بهینه سازی، انعطاف پذیری و کنترل بیشتر هستید، SQLAlchemy، آپشن بهتری برای شما است. با شناخت تفاوت های این دو ابزار، می توانید بر اساس نیازهای پروژه خود انتخاب دقیق تر و استراتژی مناسبی برای مدیریت پایگاه داده خود داشته باشید.</description>
                <category>کوثر آهنگر</category>
                <author>کوثر آهنگر</author>
                <pubDate>Tue, 15 Apr 2025 15:10:08 +0330</pubDate>
            </item>
                    <item>
                <title>Top 5 Next.js Courses for Mastering Modern Web Development</title>
                <link>https://virgool.io/@ahangart66/top-5-nextjs-courses-for-mastering-modern-web-development-ji0rjfbdj0ce</link>
                <description>Top 5 Next.js Courses for Mastering Modern Web DevelopmentIf you are building a modern web application, Next.js has fast become one of the most popular frameworks out there. It simplifies the creation of react applications with features like server side rendering(SSR),static site generation(SSG) and automatic code splitting, and makes creating high performing, SEO friendly and scalable applications super simple. With the growth of the tech industry and the need for more Next.js specialists, the learning of this framework can help to gain access to high positions in advanced web development, and, possibly, your own projects.1. The Ultimate Fullstack Next.js 14 Course 2024 Edition by Dev EdLevel: Beginner to AdvancedThe Ultimate Fullstack Next.js 14 Course 2024 Edition by Dev EdThis course takes an in depth look at creating a full stack e commerce application from start using the latest features of Next.js 14 and a modern tech stack. You will see Algolia&#x27;s AI powered search, integrating Stripe payments, or managing client state Zustand nor mentioned.Pros:Comprehensive tech stack: Helps with integration with modern tools including Next-Auth V5, Drizzle ORM, Resend.Real-world application: It builds a production ready e-commerce platform, with every essential feature.Advanced animations: From the basics, it explains how to create stunning user experiences using Framer Motion.Backend-focused: Shows how to design and manage a PostgreSQL based backend with Drizzle ORM.Deployment best practices: Contains domain setup, CI/CD pipeline creation, and scaling tips for being ready for production.Cons:Specific use case: Mainly aimed at e-commerce, this may not be a platform with which developers in other domains will resonate.Advanced prerequisites: Previous knowledge of React is required to go smoothly through this course.You can read more and download this course from here.2. Next.js 14: Foundations by Adhithi RavichandranLevel: Beginner Next.js 14: Foundations  by  Adhithi RavichandranThis is a beginners course that makes you familiar with core features of Next.js. You&#x27;ll also learn how to use Next.js to construct React applications, administer assets, establish dynamic routing, and influence the deployment of your application.Pros:Beginner-friendly: Perfect for developers new to Next.js with crystal clear explanations and a basic knowledge of Next.js.Short lessons: It gives bite sized lessons which are easy to follow and understand with the essentials.Focus on migration: Learn how to effectively migrate an existing React app to Next.js.Accessible pace: The content is short and never overwhelms those who just started.Cons:Limited depth: Does not cover advanced features such as server actions or performance optimization.No large projects: Focuses on foundational concepts rather than building extensive applications.You can read more and download this course from here.3. Next.js From Scratch 2024 by Brad TraversyLevel: Beginner to IntermediateNext.js From Scratch 2024 by Brad TraversyIn this project based course, we learn Next.js through the process of building a rental property website. All the Next.js 14 features like file based routing, server componenet, and integrations with tooling such as MongoDB and Cloudinary are emphasized in the course.Pros:Real-world      project: Focuses on building a functional property rental app, offering practical learning.Feature-packed: Covers Google-based authentication, internal messaging, image galleries, and search functionalities.Integration skills: Includes Cloudinary for image storage and optimization, Mapbox for mapping, and React Toastify for notifications.Step-by-step approach: Each feature is broken down into manageable sections for easy learning.Cons:Specific application: The project is centered on property rentals, which might not align with every developer&#x27;s goals.Pre-requisites: Assumes prior knowledge of JavaScript and React basics.You can read more and download this course from here.4. The Modern Full Stack Next.js Course by Ankita KulkarniLevel: Beginner to AdvancedThe Modern Full Stack Next.js Course by Ankita KulkarniPerfect for anyone with ambitions to move from theory to production-ready app building with Next.js. It includes interactive exercises, many real world projects, and it covers advanced topics such as caching, server components and SEO.Pros:Hands-on learning: Is practical and can apply to building several real world apps with.Advanced topics: In great detail covers server components, server actions, caching and SEO optimizations.Engaging format: Gamified learning with the fun of points, badges and quizzes included.Structured for all levels: For the beginners as well as experienced developer.Custom platform: A platform dedicated to learning and a seamless experience.Cons:Time-intensive: The content is deep and broad and demands a large time commitment.Advanced for some: Students for who are beginners may find the advanced topic such as server components difficult without extra help.You can read more and download this course from here.5. Next.js: The Complete Developer&#x27;s Guide by Stephen GriderLevel: Beginner to IntermediateNext.js: The Complete Developer&#039;s Guide by Stephen GriderThis course brings a comprehensive understanding of Next.js, by optimizing performance, using secure user authentication, making page calls both on server and client. It’s meant for production ready development.Pros:Production-ready focus: Takes developers out of their comfort zone by applying principles to solve real world problems that will be faced in production.Performance optimization: Caches strategies, and incremental static regeneration, for fast applications.Latest tools: It includes Next-Auth for authentication and other advanced features like server actions, server components etc.TypeScript integration: It offers a robust type safe development for building scalable applications.Cons:Technical prerequisites: It requires you to have knowledge of React and TypeScript, which may be off putting for beginners.Theory-heavy: More oriented towards theory, optimizations than to practical projects.You can read more and download this course from here.ConclusionEach course in this list is designed to cater to different levels and goals. If you&#x27;re just starting, Next.js 14: Foundations is a great place to begin. For developers seeking real-world projects, Next.js From Scratch 2024 and The Ultimate Fullstack Next.js 14 Course offer hands-on learning experiences. Advanced developers looking to deepen their expertise can benefit from The Modern Full Stack Next.js Course and Next.js: The Complete Developer&#x27;s Guide.Regardless of where are you in your learning journey, mastering Next.js will place you at the top of the web development modernity. Start building your Next.js expertise today and choose the course that’s best for your goal!</description>
                <category>کوثر آهنگر</category>
                <author>کوثر آهنگر</author>
                <pubDate>Wed, 04 Dec 2024 16:35:07 +0330</pubDate>
            </item>
            </channel>
</rss>