<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
    <channel>
        <title>نوشته های هادی جهانگیری</title>
        <link>https://virgool.io/feed/@m_24391335</link>
        <description></description>
        <language>fa</language>
        <pubDate>2026-06-10 12:32:51</pubDate>
        <image>
            <url>https://static.virgool.io/images/default-avatar.jpg</url>
            <title>هادی جهانگیری</title>
            <link>https://virgool.io/@m_24391335</link>
        </image>

                    <item>
                <title>دانلود از اینستاگرام</title>
                <link>https://virgool.io/@m_24391335/%D8%AF%D8%A7%D9%86%D9%84%D9%88%D8%AF-%D8%A7%D8%B2-%D8%A7%DB%8C%D9%86%D8%B3%D8%AA%D8%A7%DA%AF%D8%B1%D8%A7%D9%85-bulimanyft2a</link>
                <description>این روزها اکثر دوستان با مشکل دانلود محتوا از اینستاگرام دست و پنجه نرم می کنند. در این پست قصد دارم سایتی رو معرفی کنم که به راحتی می تونید هر چیزی شامل Post ، Story ، Reel ، IGTV را فقط با یک کلیک دانلود کنید. سایت www.freeDownloader.info   چرا باید از دانلود اینستاگرام استفاده کنید؟نیازی نیست که به حساب اینستاگرام خود وارد شوید یا اطلاعات شخصی خودتون مثل ایمیل، رمز عبور و ... رو در اختیار کسی قرار دهید.می تواند تمام محتوای شامل عکس و ویدیو رو ذخیره کنید.دانلود استوری اینستاگرام و هایلایت.فیلم ها و تصاویر با کیفیت بالا بارگیری می شوند.</description>
                <category>هادی جهانگیری</category>
                <author>هادی جهانگیری</author>
                <pubDate>Tue, 05 Sep 2023 17:02:01 +0330</pubDate>
            </item>
                    <item>
                <title>Unit test</title>
                <link>https://virgool.io/@m_24391335/unit-test-d4dz1xavvdda</link>
                <description>در دنیای امروز و با پیشرفت صنعت نرم افزار تست نویسی یک از نیازمندی های هر پروژه ای می باشد تا بتواند به عمر خود ادامه دهد.نکته : نداشتن تست خودکار در طولانی مدت می تواند باعث شکست نرم افزار ما شود اما بد تر از آن داشتن تست های بد می باشد.به این عکس دقت کنیدتست ها ممکن است در ابتدا توسعه نرم افزار را کند بکند اما بعد از مدتی این کار را سرعت می بخشد.هدف از Test : مهم ترین بخش یک تست هدفی است که تست بر مبنای آن نوشته می شود.Code coverage :متری است برای اندازه گیری کد های دارای تست.عبارت است از تعداد خط های دارای تست تقسیم بر تعداد کل خط هاUnit test  چیست ؟منظور از Unit یک واحد رفتاری (Behavior) است نه صرفا یک واحد از کد. در واقع ممکن است چند متد با همکاری یکدیگر یک رفتار را بروز دهند.Unit test دارای سه ویژگی مهم می باشد یک واحد را تست می کند.تست یک واحد به صورت کاملا مجزا انجام می شود و باقی واحد ها را در گیر نمی کند.این کار را سریع انجام می دهد. SUT : به سیستمی که تست روی آن انجام می شود گفته می شود. مثلا یک کلاسMUT : به متدی که تست روی آن انجام می شود گفته می شود.بدنه یک تست دارای سه فاز مختلف می باشد که به AAA معروف است1- Arrange : کلیه فعالیت های که برای ساخت SUT(System under test) انجام می شود.2- Action : فعالیتی که نتیجه تست را به وجود می آورد. صدا زدن متدی که می خواهید تست کنید.3- Assert : بررسی نتیجه حاصل شده با انتظارات ما
[Fact]
 public void Sum_When_pass_two_numbers_Then_return_sum_of_two_numbers()
 {
      //Arange
      var calculator = new Calculator();
      var number1 = 2;
      var number2 = 3;
      var expectedSumValue = 5;

      //Action
      var result = calculator.Sum(number1, number2);

      //Assert
      Assert.Equal(expectedSumValue, result);
 }Dependencies in test :هر واحدی ممکن است برای اجرای خود به واحد های دیگر وابستگی داشته باشد. از آنجا که هدف Unit test تست کردن یک واحد به صورت کاملا مجزا می باشد بنابراین وابستگی ها را باید شبیه سازی کنیم که این کار با استفاده از Test double ها انجام می شود.انواع Test double ها :DummyFakeStubSpiesMocksنکته : متدهای Private قابل تست نیستند و تست آن ها از تاثیر روی متدهای public انجام می شود.نام گذاری تست ها :نام گذاری همیشه یکی از مهم ترین قسمت ها در توسعه نرم افزار بوده و این موضوع در مورد تست ها بیشتر نیز صدق می کند. برای نام گذاری تست ها میتوان از پترن Given, When, Then استفاده کرد تا خوانایی تست ها را برای دیگر اعضای تیم مانند پروداکت اونر ها و ... نیز بالا ببرد.به این مثال توجه کنید : Given : EmailValidatorWhen: email_is_invalidThen : throw_exceptionدقت کنید نام تست باید در بردارنده هدف تست باشد.تست ها بیان کننده یک فکت هستند بنابراین استفاده از کلماتی چون Should, must , ... آنتی پترن حساب می شوند.نام تست ها می توان به عنوان قراردادی بین تیم تعریف شود. از جمله از بیشترین مدل های استفاده به شرح زیر می باشد.EmailValidatorWhenEmailIsInvalidThenThrowExceptionEmailValidator_WhenEmailIsInvalid_ThenThrowExceptionEmailValidator_When_email_is_invalid_Then_throw_exceptionپیشنهاد خود من گزینه آخر است زیرا خوانایی را برای خواننده بالا می برد.</description>
                <category>هادی جهانگیری</category>
                <author>هادی جهانگیری</author>
                <pubDate>Fri, 05 Aug 2022 19:04:42 +0430</pubDate>
            </item>
                    <item>
                <title>تست نویسی در نرم افزار</title>
                <link>https://virgool.io/@m_24391335/%D8%AA%D8%B3%D8%AA-%D9%86%D9%88%DB%8C%D8%B3%DB%8C-%D8%AF%D8%B1-%D9%86%D8%B1%D9%85-%D8%A7%D9%81%D8%B2%D8%A7%D8%B1-bpitdd7hqmys</link>
                <description>سلام خدمت همه برنامه نویسان عزیز مطلبی که میخوایم امروز در موردش صحبت کنیم در مورد نوشتن تست  های خودکار برای کد ها می باشد. در ابتدا به مقدمه ای بر چیست و چرایی تست ها می پردازیم و سپس دست به کد میشیم و چند تا مثال خوب رو حل میکنیم.  صنعت نرم افزار از ابتدای پیدایش به دلیل پیچیدگی ماهیت خود نیاز به تست را در خود احساس می کرد. در ابتدا این تست ها توسط نیروی انسانی و به صورت دستی انجام می شد. ( در حال حاضر این روش هنوز منسوخ نشده و بسیاری از شرکت ها هنوز این کار رو انجام میدن ). تست کردن نرم افزار توسط نیرو های انسانی معایبی داشت از جمله1- زمان بر بودن : این مورد در نرم افزارهای بزرگ بیشتر نمود پیدا میکرد تا جایی که تیم تست چند روز را صرف تست نسخه جدید نرم افزار میکرد 2- امکان بروز خطای انسانی 3- هزینه بر بودن 4- در صورت پیدا کردن مشکل گزارش به تیم فنی ارائه می شد و پس از برطرف کردن مشکل پروسه تست مجدد باید تکرار می شدکم کم مهندسان به فکر ارائه راه حلی برای حل این مشکل افتادند که منجر به، به وجود آمدن کتابخونه هایی برای انجام تست ها به صورت خودکار شد.تست ها به طور کلی به سه دسته تقسیم شدند که به هرم تست معروف شدند. ( شکل 1 )1- End to end (UI) 2- Integration(Acceptance) 3- UnitEnd to End :این تست ها که با نام های دیگری نیز مانند UI tests یا GUI tests شناخته می شوند یک نرم افزار را از ابتدا تا انتها تست می کنندبه طور مثال پروسه ثبت نام کاربر شامل : پر کردن فرم ثبت نام ، کلیک بر روی دکمه ثبت نام و انتظاری که بعد از زدن دکمه ثبت نام داریم.نرم افزار Selenium یک از نرم افزارهای مطرح می باشد که می تواند در این زمینه به شما کمک زیادی بکند.مزایا :1- یک پروسه را به طور کامل تست می کند 2- پروسه ارتباط با کاربر نهایی را تضمین و بهینه می کند. 3- چرخه Business logic ها را کنترل می کندمعایب :1- تست های بسیار شکننده ای می باشد 2- کند هستند 3- هزینه بردار هستندچه میزانی باید در پروژه هامون از این تست ها استفاده کنیم :طبق صحبت های آقای ... در این مقاله میزان 10 درصد برای End to end و 20 درصد برای Integration test و 70 درصد برای Unit test از کل تست های ما را شامل می شوند.Integration test :ارتباط و نحوه کارکرد چند واحد با یکدیگر را تست می کند. مطاله بیشتربه این نوع تست ها تست API نیز گفته می شود.مزایا1- سریعتر از تست های End to end می باشند. 2- یک پروسه را به جز لایه UI در بر می گیرد. ( ارتباط بین کامپوننت ها )معایب1- زمان بر بودنUnit test :یک واحد را به طور جدا و کاملا مستقل تست می کند. مطالعه بیشترتست های یونیت به طور کلی بیشترین تست های ما را شامل می شوند. در این نوع تست ها وابستگی های آن ها شبیه سازی می شوند که برای این کار ها از Test double ها استفاده می شود.مزایا :1- فیدبک های سریع. 2- کیفیت های کد را بهتر میکنند. 3- بیسار موثر در پیدا کردن آسان باگ ها. 4- هزینه های ساخت نرم افزار را کاهش می دهند. 5- مرجعی برای داکیومنت نرم افزار می باشند. 6- به برنامه نویس های دیگر در فهم نرم افزار کمک زیادی می کنند. 7- افزایش سرعت در Develop</description>
                <category>هادی جهانگیری</category>
                <author>هادی جهانگیری</author>
                <pubDate>Thu, 04 Aug 2022 19:09:19 +0430</pubDate>
            </item>
            </channel>
</rss>