<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
    <channel>
        <title>نوشته های mojtabagiasi</title>
        <link>https://virgool.io/feed/@mojtabagiasi</link>
        <description>من توسعه دهنده اندروید هستم .اینحا قرار است مفاهیم برنامه نویسی را به صورت عمیق تر بررسی کنیم.</description>
        <language>fa</language>
        <pubDate>2026-06-07 07:58:01</pubDate>
        <image>
            <url>https://files.virgool.io/upload/users/12451/avatar/WdNssD.png?height=120&amp;width=120</url>
            <title>mojtabagiasi</title>
            <link>https://virgool.io/@mojtabagiasi</link>
        </image>

                    <item>
                <title>کاتلین رفیق بی کلک اندروید</title>
                <link>https://virgool.io/Software/%DA%A9%D8%A7%D8%AA%D9%84%DB%8C%D9%86-%D8%B1%D9%81%DB%8C%D9%82-%D8%A8%DB%8C-%DA%A9%D9%84%DA%A9-%D8%A7%D9%86%D8%AF%D8%B1%D9%88%DB%8C%D8%AF-t0dw73y9d8ca</link>
                <description>جاوا زبان رسمی اندروید بوده و در همه این سال ها به خوبی مورد استفاده قرار گرفته پس ما چه لزومی دارد از کاتلین برای توسعه اپلیکیشن های اندرویدی استفاده کنیم.ابتدا ما به بررسی دلایل استفاده از کاتلین برای اندروید می پردازیم . اینجا چند دلیل را برای شما میشماریم.1 _ زبان و محیط بالغ هستندکاملا برعکس زبان های دیگر مثل Swift ، کاتلین قبل از انتشار نسخه نهایی (1.0) از مراحل مختلفی عبور کرد. این بدان معنی است که در هنگام کار با کوتلین، هیچ مشکلی وجود ندارد، همه چیز به همان خوبی که شما انتظار دارید، کار می کند.پلاگین IDE به خوبی کار می کند و در حال حاضر بسیاری از ویژگی هایی را که دوست دارید و در جاوا استفاده می کنید را می پذیرد. بنابراین، کار با کاتلین در این زمینه عالی است.جالب است بدانید قبل از نسخه نهایی آن، زبان چندین سال را در آلفا و سپس در بتا گذراند. و حتی قبل از بتا، مردم آن را در پروژه های واقعی استفاده می کردند.2 _ توسعه اندروید بسیار آسان تر استاستفاده از کاتلین در برنامه های اندروید سادگی همراه با قدرت را دارد . اگر شما از زبان جاوا به سمت کاتلین این بسیار ملموس تر خواهد شد.کاتلین بهترین جایگزین برای جاوا در ساخت برنامه های اندرویدی هست . سایر گزینه ها مانند scala  بسیار سنگین هستند.زمانهای کامپایل در کوتلین امروز در حال حاضر مشابه با جاوا هستند. بنابر این کتابخانه مورد استفاده برای زبان کاتلین بسیار کوچک است.3 _ به صورت یکپارچه با اندروید استادیو ادغام شدههمه چیز از اولین دقیقه بسیار خوب است و مزیت بزرگی است. شما می توانید پروژه Kotlin را راه اندازی و آماده به کار در کمتر از 10 دقیقه بدون هیچ گونه مشکلی، حتی اگر شما چیزی در مورد Kotlin نمی دانید. با آندروید 2.3 شما فقط باید یک پلاگین نصب کنید، و در نسخه 3.0 کل پروسه یکپارچه ادغام می شود. و از آنجا همه چیز مانند جاوا خواهد بود: ران کردن ، دیباگ ، refactor و ...4 _ به خوبی پشتیبانی و آپدیت میشودشرکت  Jetbrains   کاتلین را طراحی کرده است . آنها از کاتلین در پروژه های خود استفاده میکنند. پس علاقه مند به توسعه آن هستند. همچنین در مورد اندروید ، با پشتیبانی گوگل ، دو شرکت بزرگ با هم همکاری میکنند تا بهترین زبان و ابزار توسعه را فراهم کنند.5 _ کاتلین بسیار امن تر از جاوا هست یکی از ضعف های طراحی زبان جاوا NullPointerException می باشد و بسیار آزار دهنده هست . در جاوا NullPointerException  بدین معنی هست که متغیری null  هست . این مشکل جاوا در کاتلین حل شده است.     var output: String

    output = null   // Compilation error



    ==================================



    val name: String? = null    // Nullable type

    println(name.length())      // Compilation errorمن انکار نمی کنم که امروز ما ابزارهایی مانند حاشیه نویسی یا برخی الگوهای طراحی داشته ایم که می تواند به ما در اجتناب از بخشی از آنها کمک کند. اما، به طور معمول، مقدار کار اضافی مورد نیاز در زمان و پول مشکل است.در کاتلین علاوه بر نبود null  ها ما مزیت های زیر را نیز داریم:خطا های کمتر  هنگامی که کامپایلر به شما کمک می کند تا این خطاها را در زمان کامپایل مشخص کنید، هرگز در زمان اجرا اتفاق نمی افتند.کد ساده تر استما در کاتلین برای کار های زیاد زمان کمتری میگذاریم و همچنین برای رفع اشکالات نیز زمان کمتری صرف میکنیم.6 _ شرکت های شناخته شده ای هستند که در تولیدات خود از کاتلین استفاده میکنندبه عنوان مثال، Pinterest  در حال استفاده از آن در ویژگی های جدید برنامه Android خود است. مثال بزرگی دیگر Basecamp است که 100٪ از کد برنامه  Android  خود با  Kotlin  نوشته شده است. در وب سایت  Kotlin  شما می توانید یک لیست رو به رشد از شرکت هایی را مشاهده کنید که در حال استفاده از آن بدون هیچ زحمتی هستند. 7 _ شرکت ها شروع به درخواست کاتلین در پیشنهاد های شغلی خود می کنندشرکت ها شروع به سرمایه گذاری در کارکنان خود در Kotlin می کنند و این تنها می تواند نشانه خوبی باشد.8 _ کاتلین چند پلتفرم هستشما فقط برای نوشتن برنامه های اندروید کاتلین را یاد نمی گیرید. Kotlin برای اولین بار با JVM ایجاد شد، بنابراین عملا میتواند در هر دستگاهی که بتواند JVM را اجرا کند استفاده شود. در کاتلین 1.1 kotlin js  منتشر شد که میتوان از آن برای توسعه فرانت استفاده کرد . به لطف پشتیبانی Gradle، شما قادر خواهید بود فایل های Gradle خود را در Kotlin بنویسید.9 _ یادگیری کاتلین آسان است یکی از مزایای بزرگ کوتلین این است که توسعه دهنده جاوا می تواند بسیاری از کد را بدون نوشتن یک خط کد درک کند. این به این دلیل است که Jetbrains  بسیار نگران انتقال گذر از جاوا به زبان ساده بودند و زبان بسیار نزدیک به چیزی است که شما قبلا می دانید.10 _ نداشتن حساسیت به استفاده از  ; (سمیکالن)ابتدا شاید یک امر ساده باشد ولی در کاتلین نیاز نیست جملات خود را با ; تمام کنید . یعنی دیگر درگیر ارور هایی که میگوید سمیکالن را جت گذاشتی نمیشید.در پست های بعدی بیشتر در مورد کاتلین خواهیم گفت.لطفا نظرات خود را زیر این پست کامنت کنید.</description>
                <category>mojtabagiasi</category>
                <author>mojtabagiasi</author>
                <pubDate>Mon, 09 Jul 2018 18:56:03 +0430</pubDate>
            </item>
                    <item>
                <title>به دنبال درک عمیق از تکنولوژی ها و روش های برنامه نویسی باشیم</title>
                <link>https://virgool.io/@mojtabagiasi/%D8%A8%D9%87-%D8%AF%D9%86%D8%A8%D8%A7%D9%84-%D8%AF%D8%B1%DA%A9-%D8%B9%D9%85%DB%8C%D9%82-%D8%A7%D8%B2-%D8%AA%DA%A9%D9%86%D9%88%D9%84%D9%88%DA%98%DB%8C-%D9%87%D8%A7-%D9%88-%D8%B1%D9%88%D8%B4-%D9%87%D8%A7%DB%8C-%D8%A8%D8%B1%D9%86%D8%A7%D9%85%D9%87-%D9%86%D9%88%DB%8C%D8%B3%DB%8C-%D8%A8%D8%A7%D8%B4%DB%8C%D9%85-bn33ngnuitik</link>
                <description>وقتی شروع به برنامه نویسی در یکی از شاخه های کامپیوتر میشویم عاشق اجرای برنامه خود میشویم مثلا وقتی ما شروع به یادگیری برنامه نویسی اندروید میکنیم هنگامی که برای اولین بار بتونیم یک برنامه ساده بنویسیم که مثلا یک باتن داشته باشه که هنگام تاچ کردن اون باتن کلمه &quot; hello world &quot; چاپ شود در تصوراتمون خودمونو تشویق میکنیم . این خوب است که به کارمون علاقه نشان بدهیم . در کل هنگامی که نتیجه ای از کارمون میبینیم خیلی احساس خرسندی میکنیم بی آنکه اصلا متوجه شویم چگونه این کار انجام شد.در اوایل بیشتر به دنبال مفهوم نیستیم و اکثرا به دنبال چگونه کد زدن هستیم تا در نهایت یک اجرایی از برناممون بگیریم و همین برای ما کافیست  ولی بیشتر که درگیر یک شاخه از برنامه نویسی میشویم کم کم متوجه میشیم که چندین و چند روش برای انجام یک کار وجود داره و ما قبلا تنها راهی که بلد بودیم رو عملی میکردیم که شاید بدترین روش هست . منظور از بدترین روش یعنی ممکن است سرعت اجرای این روش در مقابل روش های اصولی پایین باشد یا امنیت این روش کمتر باشد یا ... .ما وقتی روشی یا یه تکنولوژی در برنامه نویسی یاد میگیریم باید بتونیم چندین سوال رو از اون جواب بدیم به طور مثال اصلا این چیه؟ کجا به درد میخوره؟ چرا ایجاد شده؟ در پشت پرده چه اتفاقی میفته؟ ایده ایجاد این تکنولوژی چه بود؟ روش های دیگه چطورین؟ بهترین روش کدومه و چرا؟ و ...درسته یادگیری به این صورت مدت زمان زیادی لازم داره ولی شما قرار است تو یه شاخه خاص خیلی عالی شوید و اگه اینجوری یاد نگیرید فقط روش ها رو حفظ میکنید و تو این ضمینه نمیتونید صاحب نظر باشید.اولا یه مطلبی رو داخل پارانتز بگم ، شما باید تو یه شاخه خاص بهترین باشید تا بخواین هی از این شاخه به اون شاخه بپرید . مثلا تو اندروید بهترین باش تا بخوای هم اندروید یاد بگیری هم ios هم سرور و ... چون اگه از این شاخه به اون شاخه بپری هیچکدومو نمیتونی به صورت تخصصی یاد بگیری و از هدف دور میشی.دنیای امروز نیازمند تخصص حتی تو یه شاخه خیلی کوچیکه.حالا که پیاده سازی یک feature  رو بلدیم و اگر الان در مورد ایجاد آن ازمون بپرسن به صورت ذهنی تقریبا میدونیم چه کارهایی باید بکنیم دیگر وقت آن رسیده که به دنبال درک عمیق از عملکرد و چرایی تکنولوژی ها برویم . من میخوام حرفمو با یه مثال ملموس بگم. از این به بعد میخوام کم کم وارد اندروید شویم به همین خاطر مثال هامو از اندروید بهتون میگم.هنگامی که یک activity  جدید میسازیم احتمال دارد که به صورت ذهنی حفظ کرده باشیم که مثلا ما باید تمامی view هامونو داخل متد ( )onCreate اکتیویتی بنویسیم .@Overrideprotected void onCreate(Bundle savedInstanceState) {    super.onCreate(savedInstanceState);    TextView textView = findViewById(R.id.textview);}ولی ما نمیدونیم که چرا view  هامونو داخل این متد initial میکنیم حتی بیشتر چیز ها را در مورد این تکه کد شاید ندونیم مثلا ندونیم R چیه یا ندونیم خط    ; super.onCreate(savedInstanceState) برای چیه .البته الان اینا رو بررسی نمیکنیم و فقط به عنوان یه مثال به این قضیه نگاه کنید.پس ما بصورت عمیق یادنگرفته ایم فقط یاد گرفتیم چطوری یه کاری رو عملی کنیم.مزایای یادگیری عمیق و فهمیدن طرز کار یک چیز اینه که پیاده سازی های دیگه رو سریع تر یاد میگیریم همچنین میتونیم خودمون روشی ابدا کنیم و در مورد یک روش اظهار نظر کنیم ، به سختی یک مفوم از یادمون میره و از همه مهم تر وقتی مفهومو یاد بگیری دیگه تکنولوژی واست مسخره میشه و با هر کدوم از تکنولوژی های ایجاد شده برای اون کار میتونی کارتو راه بندازی.اگه چند سالی برنامه  نویسی میکنی و به صورت عمیق دنبال مفاهیم عمیق و یادگیری عمیق اونا نرفتی یا حتی تازه میخوای شروع کنی بهتره بیشتر به دنبال مفاهیم بری چون پیاده سازیش برات آسون تر میشه.من قصد دارم تو پست های بعدیم به صورت عمیق به مفهوم ها وچالش های برنامه نویسی و به صورت حرفه ای تر برنامه نویسی اندروید بپردازم اگر قصد یادگیری عمیق در مورد مفاهیم اختصاصی اندروید دارید پست های مرا دنبال کنید.</description>
                <category>mojtabagiasi</category>
                <author>mojtabagiasi</author>
                <pubDate>Mon, 09 Jul 2018 15:09:27 +0430</pubDate>
            </item>
            </channel>
</rss>