<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
    <channel>
        <title>نوشته های Mohammad Mghi</title>
        <link>https://virgool.io/feed/@mohammadmghi</link>
        <description>raminmi.ir وب سایت شخصی من</description>
        <language>fa</language>
        <pubDate>2026-06-07 09:20:00</pubDate>
        <image>
            <url>https://files.virgool.io/upload/users/189264/avatar/avatar.png?height=120&amp;width=120</url>
            <title>Mohammad Mghi</title>
            <link>https://virgool.io/@mohammadmghi</link>
        </image>

                    <item>
                <title>چگونه کد نویسی تمیزی را یادبگیریم؟ قسمت اول</title>
                <link>https://virgool.io/coderlife/%DA%86%DA%AF%D9%88%D9%86%D9%87-%DA%A9%D8%AF-%D9%86%D9%88%DB%8C%D8%B3%DB%8C-%D8%AA%D9%85%DB%8C%D8%B2%DB%8C-%D8%B1%D8%A7-%DB%8C%D8%A7%D8%AF%D8%A8%DA%AF%DB%8C%D8%B1%DB%8C%D9%85-%D9%82%D8%B3%D9%85%D8%AA-%D8%A7%D9%88%D9%84-yqxxn18a6m3x</link>
                <description>کد نویسی تمیز بسیار در سرعت توسعه توسط سایر برنامه نویسان کمک می کند.این بخش اول این سری می باشد و به مرور تکمیل می شود پس برای یادگیری و همراهی بیشتر پیگیر سری های بعدی باشید… و با کامنت هاتون حمایت کنید.تکنیک های زیادی وجود دارد که به شما کمک می کند که از تجربیات سایر برنامه نویسان در کدنویسی استفاده کنید زیرا کد نویسی تمیز یک استاندار خاص نیست و برای هر شخصی (بر اساس یادگیری) ممکن است متفاوت باشد.کتاب clearn code یکی از کتاب هاست که در این باره صحبت می کند و سعی کرده تجریبات شخصی از اینکه چه تکنیک هایی می توانند به کد نویسی تمیز کمک کند … شما می توانید روش خودتان را برای کد نویسی تمیز استفاده کنید اما باید داکیومنت های آن را در دسترس بگذارید تا دیگران از ایده کدنویستان آگاه باشند…تمامی روش های نوشته شده در این سری از نوشته ها از کتاب clean code می باشد و سعی بر این است که هیچگونه تغییری در آن به وجود نیاورم و هر قسمت که نظر شخصی بود ذکر خواهم کرد… با کامنت هاتون انرژی مثبت در ادامه این سری بدید 3&gt;در این سری قصد دارم در باره ی توابع صحب کنم …فصل توابع در کتاب clearn code وجود دارد …خب توابع برنامه نویسی یک سری کد هستند که در یک { و } قرار دارد و در نهایت یک اسم و یا سری ورودی دارد و یک خروجی نیز تولید می کند.سعی کنید برنامه هایی که می نویسید از بالا به پایین روایت گر یک داستان باشن … یعنی انگار خواننده داره یک داستان می خوانه. این داستان در هر تابع یک موضوع کوچیک رو توضیح میده و در قدم بعد همین موضوع رو تکمیل و تکمیل تر می کنه و هر چقدر دنبال کردن این روند راحت تر باشه کد شما تمیز تره.توابع باید اسم های که مفهوم قصه اون تابع رو انجام میدن رو روایت کنه …توابعتون نباید طولانی باشن و باید کوتاه و مختصر مفهوم رو برسونن اما یک نکته که هست و نظر شخصی من است اگر این کوتاه نویسی به قیمت هزینه ذخیره سازی بالا و یا کاهش سرعت باشه آیا به صرفه است چنین کاری ؟ به نظر بنده که باید هر دو رو در نظر بگیریم از طرفی هزینه سرور ها بالا نره و از طرفی پیدا کردن برنامه نویسی که بتونه توسعه بده هم راحت تر و کارش راحت تر باشه و در نتیجه انرژی بیشتر و وقت بیشتر برای توسعه به برنامه نویس می دید…حالا یک نکته که هست اینه که چطور بفهمیم که کدمون داره یک کار رو انجام میده … کتاب در این باره توضیح داده که باید در سطح abstraction این کار تعیین بشه … یعنی به نظر بنده مثلا:(function addNumbers(int $a, int $b {  return $a + $b}این کد یک دستان داره میگه :دو تا ورودی بدید و جمعشون رو بر می گردونه.خب این کار تقریبا تکمیل به نظر می رسه و وابستگی توش حس نمیشه و خود به نظر تکمیل می رسه… یک تابع وابسه مثلا داستانش اینطوره:دو تا ورودی بدید و حالا این دو ورودی رو جمع کن و یک عدد بهش اضافه کن.اینجا واسه اضافه کردن این عدد نمیشه یک تابع نوشت خیلی کار منطقی به نظر نمیاد حالا وس باید چیکار کرد ؟ این میشه پایین سطح abstraction کار …یک سطح دیگه بریم بالا تر ببینیم چی می بینیم :این تابع حالا قرار با توابع دیگه مثلا دو تا کاربر مقادیر ورودیشون رو در دیتابیس ذخیره کنه و هر چی بریم سطح بالا تر جزءیات کمرنگ تر و کلیات بالا تر مشخص میشه تا جایی که می رسیم به هدف اصلی سیستم…پس فرمولش به نظر بنده کمترین جزءیاتی که بتونه یک هرف رو برسونه میشه … هدف اون تابع خب بعدش یک اسم مناسب که اون کار رو انجام میده رو براش انتخاب کنید به نظرم سعی کنید یک فعل باشه …همچنین می تونید استاندارد های جدید تری هم خودتون پیدا کنید فک می کنم این استاندار های از زندگی واقعی نشات می گیره و به وجود میاد یعنی شما اگه دقت کنید اول روش کتاب گفته مثل خوانندن رمان باشه .خیلی خوشحالم که پیگری کردی و خوندی حتما کامنت بذار و روش خودتو بگو.منبع : ramtinmi.ir (وب سایت خودم (:  )منبع مطلب : کتاب clean code</description>
                <category>Mohammad Mghi</category>
                <author>Mohammad Mghi</author>
                <pubDate>Tue, 30 Jun 2020 22:44:30 +0430</pubDate>
            </item>
                    <item>
                <title>سیستم عامل - ایده پشت thread ها ! چیز های جدید خلق کن!</title>
                <link>https://virgool.io/@mohammadmghi/%D8%B3%DB%8C%D8%B3%D8%AA%D9%85-%D8%B9%D8%A7%D9%85%D9%84-%D8%A7%DB%8C%D8%AF%D9%87-%D9%BE%D8%B4%D8%AA-thread-%D9%87%D8%A7-%DA%86%DB%8C%D8%B2-%D9%87%D8%A7%DB%8C-%D8%AC%D8%AF%DB%8C%D8%AF-%D8%AE%D9%84%D9%82-%DA%A9%D9%86-t1z2ybkbg3xv</link>
                <description>خب دوستان توی مقاله قبلی راجب سیستم عامل کمی و صحبت کردم حالا می خوام یک ایده با حال که شما می تونید بعدا در برنامتون ازش استفاده کنید... رو بگم !اون ایده چیزی نیست جز Thread !قبلش بگم اگه جایی اشتباه توضیح دادم توی نظرات بهم بگید یا می تونید توی انستا توی دایرکت درگوشی بهم بگید :)اول ببینیم ترد چیه اصلا :A thread is a flow of execution through the process code .یعنی : ترد یک روند (بر اساس ترجمه دیکشنری روندی که مدوام و پیوسته هست)  اجرای یک برنامه کامپیوتری می باشد که ادامه پیدا می کندتا پایان فرآیند اجرای کد : یعنی یک کدی دارید در یک thread که روند اجرا هست این ترد (یعنی ترد یک روند اجراست) ، و توی این کدتون اجرا میشه البته کدتون یعنی کدی که قرار توش اجرا بشه !امیدوارم از ترجمه خرچنگیم خوشتون بیام :) کلا شد ترد یک روند اجراست بیخیال بقیش :) البته بقیشم میشه توی این روند کد اجرا میشهترد ها توی Process ها اجرا میشن یعنی ما یک Process داریم و تو این Process چندین ترد ؛ شاید البته؛ شایدم نیاز نباشه ! تعداد ترد ها بستگی به نیازتون داره !ترد ها از منابع مشترک استفاده می کنن ! یعنی حافظه بینشون تقسیم میشه منظور حافظه Process !اگر مبتدی باشید یعنی تازه شروع به یادگیری کردید می گید این یارو چی میگه ؟!ببینید این یک مبحث سیستم عاملیه سیستم عامل وظیفش اینه که بیاد از منابع بهینه استفاده کنه ... قبلا که سیستم عامل ها خیلی داغون بودن مثلا شما یک برنامه رو باز می کردید اگر یک کار می خواسته انجام بشه می رفتید می خوابیدید و دو سه روز دیگه میومدید ببینید انجام شد یا نه ! ولی بعدا گفتم چی کنیم چی نکنیم ؟! آمدن با سیستم عامل منبع رو تقسیم کردن ! منابع چین ؟! رم ،گرافیک، هارد ، سی پی یوحالا این مبحث هم داره می گه Thread ها Process  رو می کنن چن قسمت ، فک کنم قبلا که thread نبوده Process ها فقط با هم ارتباط داشتن و راه ارتباطیشون هم از طریق Massage بوده (الانم باز massage ، البته اینم بگم که الان Process  ها وجود دارن اینا همون برنامه هاتونن قبلا هم گفتم دیگه برو بالا تر رو بخون اگه یادت رفته ! )ولی این thread که اختراع شده همین Process ها رو چندید بخش کرده و خیلی لطف کرده چون سرعت رو بیشتر کرده و کار ها رو می تونیم همزمان انجام بدیم... خوبی های زیادی داره مثلا TLB نیازی به خالی شدن نداره وقتی یک thread اضافه کنید ... چون حافظه که اختصاص دادیم به Process  ثابت بوده ! و حافظه رو عوض نکردیم ... لازم نیست کل منابع رو بذاریم تو دسترسش منابع خاص خودش رو Process داره فقط این قسمتش می کنه بین خودشون !در واقع به زبون ساده تر thread آمده که سرعت رو بیشتر که و کار های همزمان انجام بدیم! البته حدس می زنم با Process ها هم می شده ولی خب شما برنامتون تک بعدی میشه یعنی مثلا تو گوشی مبایلتون اگه بخواید یک عکسی دانلود کنید و هم زمان بخواید تو همون دانلود منیجر یک بازی دانلود کنید نمیشه چون ترد نیست که بخواد اون یک وظیفه رو بندازید رو دوشش ! اما اما ، اینجا برداشت شخصیه: اگه Process ها تنها بودن و thread ها نبودن چی می شد یعنی نمی شد دو تا برنامه رو باز کنیم و کار کنیم ؟! جواب این سوال به نظرم میشد منتها شرط داشت اول اینه Process آیا بهش یک بخشی از منابع اختصاص داده می شد ؟! یا کامل کل منابع در اختیار اون باید باشه ؟! اگر کل منابع باشه چی میشه؟ خب هیچی برنامه با یک سرعت خاص که (البته به رویداد های برنامتون بستگی داره) فقط و فقط می تونه یک برنامه رو اجرا کنه یعنی یک سیستم عامل دارید که فقط و فقط سیستم عامله دیگه هیچ برنامه جدایی روش اجرا نشده یعنی اون برنامه نویس سیستم عامل فقط زحت کشیده منابع رو بین یک سری نیاز های پایه سیستم عامل تقسیم کرده حالا شما اگر کروم رو باز کنید فقط برنامه کروم به صورت تک بعدی (یعنی نمی تونه یک برنامه دیگه تو پس زمینش باز کنه نه مثل الان که هم یک سایت باز می کنید و هم با دانلود منیجر مرور گر دانلود می کنید) می تونست یک وظیفه رو انجام بده و بعد بره سراغ وظیفه بعدی این وظیفه می تونه یک ثانیه و می تونی هزار سال طول بکشه تموم شدنش و بعد از پایان این وظایفه می ره سراغ وظیفه بعدی و این داستان ادامه دارد !خب حالا اگر سیستم منابع رو تقسیم کنه بینه Process  ها و خبری از thread نباشه چی ؟! هیچی بازم :) هر برنامه ای که دارید متونی فقط یک کار انجام بده ولی نمی تونه چندین کار رو با هم تا بعد از تموم شدن یا وظیفه توی یک برنامه انجام بدید!و در آخر فکر کنم من محمد هستم و انستاگرامم :https://www.instagram.com/mohammadm.oghadasi/اگر نظری و انتقادی یا سوالی دارید بپرسید ، خوشحال میشم !منبع : ramtinmi.ir</description>
                <category>Mohammad Mghi</category>
                <author>Mohammad Mghi</author>
                <pubDate>Mon, 11 May 2020 19:06:50 +0430</pubDate>
            </item>
                    <item>
                <title>کامپیوتر و معماری پر از ایده ی سیستم عامل برای برنامه نویسی !</title>
                <link>https://virgool.io/@mohammadmghi/%DA%A9%D8%A7%D9%85%D9%BE%DB%8C%D9%88%D8%AA%D8%B1-%D9%88-%D9%85%D8%B9%D9%85%D8%A7%D8%B1%DB%8C-%D9%BE%D8%B1-%D8%A7%D8%B2-%D8%A7%DB%8C%D8%AF%D9%87-%DB%8C-%D8%B3%DB%8C%D8%B3%D8%AA%D9%85-%D8%B9%D8%A7%D9%85%D9%84-%D8%A8%D8%B1%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-vkyqglztaiks</link>
                <description>خب محمد هستم و دوست دارم امروز راجب سیستم عامل بنویسم !اولین بار که درس سیستم عامل رو سرکلاس های دانشگاه مشاهده کردم خیلی گیج کننده بود ! یعنی اصلا انگار استاد با زبان آدم فضایی ها حرف میزد :) چون مباحثش پیش نیاز داشتن و ما فاقدش بودیم یعنی ترم یک دانشگاه برامون سیستم عامل برداشته بودن حالا ما یکم دستی بر آتش داشتیم و کم کد نویسی می کردم.خلاصه اون ترم گذشت و با نمره ی 10 من قبول شدم البته فک کنم امدم بالای نمودار چون بقیه از من خراب تر نوشته بودم و من ازشون جا داره همینجا یک تشکر ویژه کنم چون اصلا با اینکه دوباره امتحانشو بدم تحت هیچ شرایطی حاضر نیستم!الان از سیستم عامل خوشم میاد و یک جورایی عاشق معماریشم . یعنی چی؟من فکر می کنم بیشتر کامپیوتر از قسمت های مختلفی از هم ایده می گیره ، یعنی چی ؟ مثلا پردازش یک اطلاعات تو سیستمتون باید یک معماری خیلی خوبی داشته باشه که از منابع مثل رم و س پی یوتون رو بهینه استفاده کنه !حالا فرض کن شما یک برنامه می خواید بنویسید خب طبیعتا برنامه ها نیاز به معماری دارن و شما اگه از این معماری های سیستم عاملی الهام بگیرید می تونید طرح های جالبی بزنید !مثال های زیاد هست به نظرم یکی از کار های هیجان انگیزی که میشه کرد اینه که این مباحث رو بخونید و ازشون ایده بگیرید و مثل من اگه برنامه نویس server هستید و یا back-end خب می تونید توی نوشتن کدتون فکر کنید چطور این معماری رو اینجا پیاده سازی کنیم که بشه از منابع خودتون یا اون شرکت بهینه تر استفاده کنید .شایدم یک چیز باحال پیدا کردید و به دنیایی کامپیوتری ها کمک بزرگی کردید !اگه ایده ی باحالی دارید با من تو نظرات به اشتراک بذارید اگه لیاقتشو داشته باشم! حتما پاسخ میدم.</description>
                <category>Mohammad Mghi</category>
                <author>Mohammad Mghi</author>
                <pubDate>Mon, 11 May 2020 03:54:22 +0430</pubDate>
            </item>
                    <item>
                <title>می خوام زبان یادبگیرم ! یک راه خوب یاد بدید !</title>
                <link>https://virgool.io/@mohammadmghi/%D9%85%DB%8C-%D8%AE%D9%88%D8%A7%D9%85-%D8%B2%D8%A8%D8%A7%D9%86-%DB%8C%D8%A7%D8%AF%D8%A8%DA%AF%DB%8C%D8%B1%D9%85-%DB%8C%DA%A9-%D8%B1%D8%A7%D9%87-%D8%AE%D9%88%D8%A8-%DB%8C%D8%A7%D8%AF-%D8%A8%D8%AF%DB%8C%D8%AF-mopwvelytrca</link>
                <description>یادگیری یک زبان جدید یکی از کار های فانیه که حتما پیشنهاد می کنم دنبال کنید و بعد از یک مدت خیلی علاقه مند می شد و احتمال عادتی میشه براتون و دیگه ترکش سخت میشه !اول بگم این فقط یک نوشته حاصل تجربه شخصی من هست و یک نسخه نیست که بشه برای همه پیچیدش و بگی همه اینطوری می تونن زبان یادبگیرن ... پس سعی کنید ایده از نوشته بگیرید و یا در بخش نظرات ایده خودتون رو باهام به اشتراک بذارید (:خب من هم کلاس زبان رفتم و به صورت هم خود آموز زبان یادگرفتم ولی اگه بهم بگید کدوم راه بهتره میگم هر دو ! چرا ؟! یک موقع شما نیاز دارید با یکی صحبت کنید و یک زمان هم هست که سرعت انتقال اطلاعات کلاس یا و یا روشش برای شما مناسب نیست اینجا باید خودتون دست به کار بشید و به صورت خود آموزی یاد بیگرید ! حتی اگه هیچی از اون زبانی که قصد دارید یادبگیرید بلد نیستید البته منظورم هیچی هیچی نیست ولی در حد همون hello how are u بلدید یک سریال خوب پیدا کنید و با دو زیر نویس فارسی و انگلیسی سعی کنید زبان یادبگیرد به این صورت که اول خوب گوش کنید یا خوب بخونید بستگی داره به اینکه علاقتون چیه!؟ من خودم زیر نویس رو می خوندم فقط ... بعد این کار ترجمه یا چیزی که متوجه شدید رو با زیرنویس فارسی مقایسه کنید که البته زیر نویس های فارسی هم غلط دارن و سعی کنید مفهوم کلی رو ازشون یادبگیرید. بعدش سعی کنید جملات رو خودتون تلفظ کنید ... سعی کنید چیزایی که از فیلم یادگرفتید رو خلاصه کنید .مقالات و کتاب های انگلیسی بخونید و خلاصشو بنویسید و گرامرتون رو چک کنید با متن اصلی کتاب و بعد با خود متن کتاب مقایسه کنید که درست نوشته باشید ...از اپلکیشن های آموزشی کمک بگیرید و از سایت ها آموزشی مختلف یادبگیرید ...و در نهایت مجموعه ای از همه این تمرینات و پیوستگی و پشتکار می تونه زبان رو تو ذهنتون جا بندازه...</description>
                <category>Mohammad Mghi</category>
                <author>Mohammad Mghi</author>
                <pubDate>Sun, 10 May 2020 01:49:20 +0430</pubDate>
            </item>
                    <item>
                <title>ایده های من : چگونه بهتر یادبگیریم  ؟ یک ایده برای یادگیری بهتر ! بخش اول</title>
                <link>https://virgool.io/@mohammadmghi/%D8%A7%DB%8C%D8%AF%D9%87-%D9%87%D8%A7%DB%8C-%D9%85%D9%86-%DA%86%DA%AF%D9%88%D9%86%D9%87-%DB%8C%D8%A7%D8%AF%D8%A8%DA%AF%DB%8C%D8%B1%DB%8C%D9%85-%D8%A8%D9%87%D8%AA%D8%B1-%DB%8C%DA%A9-%D8%A7%DB%8C%D8%AF%D9%87-%D8%A8%D8%B1%D8%A7%DB%8C-%DB%8C%D8%A7%D8%AF%DA%AF%DB%8C%D8%B1%DB%8C-%D8%A8%D9%87%D8%AA%D8%B1-%D8%A8%D8%AE%D8%B4-%D8%A7%D9%88%D9%84-rzkrmrkns5qv</link>
                <description>سلام دوستان محمد هستم و اینجا تجربیات زندگی شخصیمون رو می نویسم ! شاید خوشتون باید شاید هم نیاد ولی شاید ارزش خوندن داشته باشه ! :) نوشته ها من ایده های من هستن و چیزی که با خوندن و یا از روانشناسی یادگرفتم و یا تجربیات شخصی هستن...من یک مهندس نرم افزارم و برنامه نویسی می کنم و علاقه نوشتن دارم ...منو می تونید تو انستا گرامم : mohammadm.oghadasi دنبال کنید !اولین مطلبی که میشه گفت اینه یادگیری چیه؟ جواب این سوال خب در حوضه تخصصی من نیست اما خب میشه گفت یادگیری فرایند درک موضوع هست .اما اینکه ما چطور یادبگیریم و چه روشی بهتره باز بر میگرده به اینکه شخصیت شما به روش زندگیتون نمیشه یک نسخه برای همه گفت که زندگی ها و روش زندگی ها متفاوته و شما باید روش خودتون رو پیدا کنید ! پس دنبال راه خاصی بودن شاید درست نباشه اما ایده های زیادی وجود داره که می تونید امتحان کنید و ببینید چه جوابی میگیرید مثلا :به نظر شخصی هر چیز ی که میخواید بخونید یا یادبگیرید اول باید بر اساس سطح دانش که دارید تصیمیم به انتخاب سطح کتاب مناسب خودتون رو بگیرید مثلا اگه از برنامه نویسیتون ضعیفه و ریاضیاتتون پس خوندن کتابی مثل clrs شاید کار درستی نباشه پس باید کتاب های پایه رو بخونید !خب حالا تا یک جایی پیش رفتید و تو همون کتاب پایه گیر کردید و بخشی از مطلب رو متوجه نمی شید ! البته خوبه قبلش بگم اگه مدام گیر می کنید این یعنی همین کتاب هم براتون سنگینه پس برید سراغ یک کتاب سبک تر! خب 50 صفحه از کتاب رو خونید و گیر کردید چیکار باید کرد ؟! اول سعی کنید بار ها و بارها بخونید اگه نفهمیدید برگردید از عقب تر مثلا برگردید به اول سر فصل و با دقت بیشتر بخونید اگ مشکلتون حل شد و رد کردید خب چه بهتر اگه نه برگردید از اول کتاب بخونید این کار چندین مزیت داره :احتمالا شما بخش هایی از قبلا رو متوجه نشدید که اینجا گیر کردید و با دقت که بار دوم یا سوم می خونید مطالب قبلی که پیش نیاز این قسمتی که گیر کردید هستن رو متوجه می شید و رد می شیداسترستون رو کمتر می کنه بار اول ما با هر چی که مواجه میشیم چون آشنا نیست محیط برامون احساس ترس بهمون دست میده بار دوم که کتاب رو می خونید چون آشنا هستید پس استرستون کمتره و با آرامش بیشتر می خونید !و...اگر منتور(کسی که راهنماییتون کنه) خیلی خوبه منتها اول سعی کنید خودتون یادبگیرید چون وابستگی به یک منتور شاید خلاقیت رو کمتر کنه ! و اینکه منتور همیشه در دسترس نیست.راه های زیادی وجود داره که میشه وجود داره بهتر یادگرفت ! ایده شما چیه ؟ تبادل اطلاعات یکی از بهترین راه هاست ! نظرتون رو بنویسید حتما می خونم و پاسخ میدم...اگه مطالب رو دوست داشتید منو تو انستاگرامم دنبال کنید :mohammadm.oghadasi</description>
                <category>Mohammad Mghi</category>
                <author>Mohammad Mghi</author>
                <pubDate>Sat, 09 May 2020 02:36:07 +0430</pubDate>
            </item>
            </channel>
</rss>