<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
    <channel>
        <title>نوشته های مسعود دانش پور</title>
        <link>https://virgool.io/feed/@mdp</link>
        <description>ارث بری شده از انسان، مرد،همسر، پسر، پدر، کنجکاو، توسعه دهنده نرم افزار.</description>
        <language>fa</language>
        <pubDate>2026-06-17 09:48:48</pubDate>
        <image>
            <url>https://files.virgool.io/upload/users/10772/avatar/K7GThL.png?height=120&amp;width=120</url>
            <title>مسعود دانش پور</title>
            <link>https://virgool.io/@mdp</link>
        </image>

                    <item>
                <title>بازنگری در برگزاری جلسات Stand up یا Daily</title>
                <link>https://virgool.io/@mdp/%D8%A8%D8%A7%D8%B2%D9%86%DA%AF%D8%B1%DB%8C-%D8%AF%D8%B1-%D8%A8%D8%B1%DA%AF%D8%B0%D8%A7%D8%B1%DB%8C-%D8%AC%D9%84%D8%B3%D8%A7%D8%AA-stand-up-%DB%8C%D8%A7-daily-ekuusmyvqois</link>
                <description>تیم TTT Studiosساعت 9 الی 9:15 دقیقه، هر روز.یا هر 15 دقیقه دیگری که بی هدف و بر اساس عادت در تیم های چابک به هدر می رود.عادتی که برای رسیدن به چابکی در بین تیم های نرم افزاری به کرات و بدون منفعت استفاده می شود.شما هم حتما تجربه شرکت در این نوع جلسات را داشته اید.خیلی از افراد برای شرکت در جلسات Daily دچار استرس و فشار عصبی می شوند و آن هم فقط به یک دلیل است:جلسات Daily تبدیل به جلسات گزارش کار شده اند.جلسات Daily از دسته فعالیت هایی هستند که به راحتی از مسیر اصلی خارج شده و تبدیل به یکی از موانع چابکی تیم ها می شوند که مشکلات و آسیب هایی زیادی نیز به تیم خواهند زد.از جمله این آسیب ها می توان به:تلف شدن زمانفشار عصبی به اعضای تیمکم شدن تاثیر همکاری بین اعضا تیم در بلند مدتاشاره کرد.آسیب شناسیحال باید دید که چرا این رویداد به ظاهر ساده، مشکلاتی به این مهمی را در تیم ایجاد می کند ؟ دلیل اصلی(از نظر بنده) عدم درک درست علت برگزاری این رویداد در گام نخست و همچنین عدم هدف گذاری برای Sprint ها در گام دوم است.یکی از مهمترین دلایل برگزاری جلسات Daily اطمینان تیم از رسیدن به هدف تایین شده برای اسپرینت می باشد که معمولا با اعلام کار های انجام شده در روز گذشته جایگزین می شود و بدین صورت، وظیفه رسیدن به هدف نهایی به اشتباه به افرادی مانند اسکرام مستر و یا مدیر فنی تیم واگذار می شود.تیم های چابک نیازی به سازمندهی و مدیریت متمرکز ندارند، همانطور که می دانید در اسکرام، مدیریت به معنای عام وجود نداشته و به اعضا واگذار شده است، بدین معنی که تمام اعضا بخشی از وظیفه مدیریت را بر عهده می گیرند.حال اگر افراد به جای کنترل کار ها و فعالیت ها از آن طرفه بروند، این اصل مهم هویت خود را از دست خواهد داد.راهکار عملیحال برای بهبود این وضعیت چه باید کرد ؟ راه حل پیشنهادی من برای گذار از این مشکلات به دو راه کار ساده و در عین حال کارا تقسیم می شود.اول - تعیین هدفبرای هر Sprint هدف تایین کنید، اهدافی قابل دستیابی.هدف هر اسپرینت را قبل از هر جلسه تکرار کنید و در طول جلسه اطلاعاتی را در اختیار اعضا قرار دهید که به تیم در رسیدن به این هدف کمک می کند.دوم - راهبری مداوم مربی چابکی و یا Scrum Masterدر طول جلسات Daily و همچنین در طول Sprint، مربی چابکی تیم و یا Scrum Master به صورت مداوم هدف برگزاری جلسات و فعالیت ها را یاد آوری کند و از اعضای تیم بخواهد که به این موضوع فکر کنند که آیا فعالیت ها و تصمیمات آنها در راستای رسیدن به هدف Sprint هست و یا خیر.بروز رسانی (1400/2/28) :بر اساس راهنمایی یکی از مربی های چابکی خودم- نوید نیک پی عزیز- یک بخش به این نوشتار اضافه می کنم :یکی از اهداف Daily بروز کردن راه رسیدن به هدف Sprint می باشد.توضیح : برنامه ریزی بلند مدت برای تیم های چابک معنی ندارد، تیم های چابک بر اساس روند پیشرفت خود به صورت مستمر، اهداف و فعالیت های خود را برای بهتر شدن هدف اصلی و رسیدن به محصول نهایی که برای کاربر ارزش ایجاد کند، تغییر می دهند.چه جایی بهتر از جلسات Daily برای بررسی وضعیت راه رسیدن به هدف اسپرینت و بروز رسانی کار های لازم!ممنون نوید جان ❤بروز رسانی(1400/3/6) :نوشته بالا با کمک مربی دیگرم، سهیل صمدزاده عزیز بهبود پیدا کرد.در دیلی ما هدف اسپرینت را تغییر نمی دهیم، راه رسیدن به هدف را مورد بررسی و در صورت نیاز باز بینی قرار می دهیم.ممنون سهیل جان ❤سخن آخردر طول تمام جلسات و برنامه های چابکی، به صورت مداوم فعالیت های خود را بررسی کنید که انجام آنها چه تاثیر خوب یا بدی در روند اجرای کار ها دارند.مفاهیم پایه را مطالعه کنید و به صورت مداوم رفتار خود در تیم را پالایش کنید که آیا برای اهداف تیم، اطلاعات و فعالیت های مفیدی ارائه می کنید و یا خیر.</description>
                <category>مسعود دانش پور</category>
                <author>مسعود دانش پور</author>
                <pubDate>Mon, 17 May 2021 21:26:49 +0430</pubDate>
            </item>
                    <item>
                <title>من یک بچه وسطی هستم، لطفا من را وادار به رقابت نکنید</title>
                <link>https://virgool.io/@mdp/%D9%85%D9%86-%DB%8C%DA%A9-%D8%A8%DA%86%D9%87-%D9%88%D8%B3%D8%B7%DB%8C-%D9%87%D8%B3%D8%AA%D9%85-%D9%84%D8%B7%D9%81%D8%A7-%D9%85%D9%86-%D8%B1%D8%A7-%D9%88%D8%A7%D8%AF%D8%A7%D8%B1-%D8%A8%D9%87-%D8%B1%D9%82%D8%A7%D8%A8%D8%AA-%D9%86%DA%A9%D9%86%DB%8C%D8%AF-xlilqn1we055</link>
                <description>تقدیم به تمام بزرگسالان درگیر با &#x27;سندروم بچه میانی&#x27; و تمام مادر و پدر هایی که به فرزندان خود &#x27;عشق&#x27; می‌ورزند.من هم مانند خیلی از افراد، یک بچه وسط هستم.بچه وسط به فرزندی از خانواده گفته می‌شود که بین دو فرزند دیگر به دنیا آمده باشد. ممکن است خانواده دارای دو فرزند باشد ولی بچه دوم به دلیل وجود یک کودک کوچک‌تر از خود در نزدیکان و آشنایان به بچه وسطی تبدیل شود.شاید بپرسید: خوب، که چی؟قبل از اینکه بیشتر در مورد این موضوع توضیح دهم، بهتره است که بیشتر در مورد مفهوم &quot;دوران کودکی&quot; آشنا شویم.تعریف دوران کودکی (Childhood)برای ساخت و قوام بهتر نوشته ام رجوع می ‌نم به تعریف UNICEF از دوران کودکی :Childhood is the time for children to be in school and at play, to grow  strong and confident with the love and encouragement of their family and  an extended community of caring adults. It is a precious time in which  children should live free from fear, safe from violence and protected  from abuse and exploitation. As such, childhood means much more than  just the space between birth and the attainment of adulthood. که ترجمه غیر رسمی آن، چیزی شبیه به این خواهد بود:دوران کودکی به زمانی اطلاق می‌شود که، کودک در مدرسه و در حال بازی در جهت قدرتمند شدن و کسب اعتماد به نفس خود به وسیله(کاتالیزور) عشق و تشویق خانواده و افراد بالغ دیگر می‌باشد.این دوران، دوران بسیار با ارزشی است که کودکان می‌بایست از ترس، خشونت و سوء استفاده، حفاظت شوند.بنابراین، کودکی چیزی فرارتر از زمان بین تولد تا بزرگسالی است.بخش مهمی که باید از این تعریف یادگرفته شود، لزوم محافظت از کودک در مقابل ترس، خشونت و سوء استفاده است.به عبارت دیگر، کودکی یک بازه زمانی از زندگی هر کودکی را تشکیل می دهد که کاشت و نمو شخصیتی کودک برای رفتار وی در بزرگسالی را فراهم می‌کند.این دوران بنا بر گفته بسیاری از روانشناسان و متخصصان این حوزه، زمینه ساز رفتار، موفقیت و کیفیت زندگی کودک در بزرگسالی وی خواهد بود.مادران و پدران نیز توجه ویژه ای به دوران کودکی فرزندان خود دارند.و معمولا برای آن برنامه هایی نیز ترتیب می‌دهند.به شخصه شک ندارم که تمام پدر و مادر های دنیا برای فرزندان خود با از خود گذشتگی و تحمل سختی های بسیار، بهترین ها را  خواسته اند.تاثیر دوران کودکی در بزرگسالیاگر بر روی Google scholar در مورد &quot;تاثیر دوران کودکی بر بزرگسالی&quot; جست و جوی ساده ای کنید، به حدود 2،450،000 مقاله خواهید رسید که نشانه مورد وثوق بودن این تاثیر در مجامع علمی جهانی می‌باشد، ولی ما به عنوان بزرگسالانی بر اساس تجربه های شخصی و ... به این مورد دست یافته ایم که افرادی که در کودکی شرایط خاصی را تجربه کرده اند، در بزرگسالی تاثیرات آن را نمایان کرده اند.مجددا برای قوام نوشتار خودم به مقاله جالبی در Business Insider در مورد &quot;تاثیر دوران کودکی در موفقیت در بزرگسالی&quot; وجود دارد، کمک می‌گیرم.بر همین اساس، در مقاله ذکر شده، نویسنده به این مورد اشاره می‌کند که :When your parents pay attention to you, you&#x27;re more likely to have  healthier relationships and greater academic success in your 30s.که ترجمه غیر رسمی آن، چیزی شبیه این خواهد بود :اگر والدین شما(در دوران کودکی) به شما توجه کرده باشند، احتمالا شما روابط اجتماعی سالم تر و موفقیت های تحصیلی بیشتری در دوره 30 سالگی خود خواهید داشت.و در جای دیگر :If you experience maltreatment as a child, you&#x27;re twice as likely to be depressed now.که ترجمه غیر رسمی این نوشتار نیز، چیزی شبیه این خواهد بود :اگر به عنوان یک کودک( یا به عبارتی، در دوران کودکی) با شما بدرفتاری شده باشد، احتمال اینکه، هم اکنون دچار افسردگی باشید، دو برابر حالت عادی است !سندروم فرزند میانی یا Middle Child Syndromeسندروم بچه(فرزند) میانی به حالتی گفته می‌شود که فرزند میانی خانواده به دلیل عدم دریافت توجه کافی(از نگاه خود، چه به درست و یا چه به غلط)، برای جلب توجه و بر طرف کردن نیاز های عاطفی خود رفتار های متفاوت، متضاد و یا حتی در مواردی عصیان گونه از خود نشان می‌دهد.برای مثال اگر برادر بزرگتر، فردی منظم و مرتب باشد، فرزند میانی برای جلب توجه بیشتر خلاف برادر خود رفتار خواهد کرد.رفتار بزرگسالان حتی در مواردی تا جایی پیش خواهد رفت که فرزند میانی در واقعیت نیز توجه کمتری دریافت خواهد کرد و در بعضی موارد حتی با وی به عنوان یک کودک نگاه نخواهد شد.فرزندان میانی غالبا علاقه دارند تا از رقیبان توجه خود(خواهر و یا برادر کوچک تر و بزرگتر) پیشی بگیرند به همین دلیل معمولا در یک دو ماراتون بی پایان به سر می‌برند.این کودکان به علت این رقابت ها، شکست و برد های زیادی را تجربه می کنند که موجب ساخته شدن یک شخصیت قوی برای آنهاست.از طرفی این فرزندان به علت همین جنگ همیشگی که شاید همیشه باعث برد آنها نشود، در معرض افسردگی قرار دارند.تاثیرات مخرب سندروم فرزند میانی، بر بزرگسالیسندروم بچه میانی تاثیرات مخربی نیز بر شخصیت افراد در بزرگسالی آنها خواهد داشت که در این بخش، به بخشی از آنها در زیر اشاره می کنم:فرزند میانی، اعتماد به نفس کمتری دارد : این فرزندان به دلیل دریافت حس توجه کمتر در دوران رشد خود، اعتماد به نفس لازم برای خیلی از امور را نخواهند داشت.فرزند میانی، اغراق می کند : این فرزندان برای جلب توجه دیگران گاها در توصیفات و اعمال خود اغراق های بعضا عجیبی می‌کند.فرزند میانی، احساسات خود را سرکوب می کند : فرند میانی به دلیل اینکه خود را کم می‌شمارد، احساست قلبی خودرا بروز نمی دهد.فرزند میانی، ضد اجتماع است : اگر شما هم یک فرزند میانی باشید، احتمالا درونگرا هستید و علاقه ای به در جمع بودن ندارید.فرزند میانی، رفتار های توجه طلبانه از خود نشان می دهد : این دسته از کودکان برای به دست آوردن توجه از دیگران، رفتار های افراطی برای جلب توجه از خود نشان می‌دهند.برای مثال، معمولا آنها اطلاعات عمومی زیادی ذخیره میکنند که بتوانند در موارد مختلف از آنها جهت جذب توجه استفاده کنند.فرزند میانی، سخت اعتماد می کند : بچه های میانی به دلیل اینکه برادر و خواهد کوچکتر و بزرگتر خود را در بیشتر مواقع رقیب خود می‌پندارند، روحیه اعتماد کردن و صمیمی شدن در آنها کمتر دیده می‌شود.آنها معمولا دوستان کمی دارند و یا به دوستان خود اعتماد نمی‌کنند.فرزند میانی، ممکن است دچار افسردگی شود : این فرزندان به دلیل احساسات ناخوشایندی که تجربه می‌کنند، احتمال بیشتری وجود دارد که دچار افسردگی شوند.فرزند میانی، به دوستان خود، بیشتر از خانواده نزدیک می شوند : این فرزندان به دلیل حس سرخوردگی و عدم توجهی که از دیگران دریافت می‌کنند، تمایل بیشتری به کمک خواستن از دوستان خود نسبت به خانواده خود دارند.فرزند میانی، ممکن است پنهان کاری کنند : این فرزندان برای نشان دادن برتری خود، ضعف ها و یا شکست های خود را پنهان می کنند تا کوچکترین خدشه ای به میزان توجه دریافتی آنها وارد نشود.تاثیرات مثبت سندروم فرزند میانی، بر بزرگسالیفرزندان میانی بودن همیشه بد نیست.اگر شما هم یک فرزند میانی باشید، احتمالا حداقل یکی از حالات زیر در شما مشهود خواهد بودفرزند میانی، مغرور نیست :  فرزند های میانی در حقیقت سومین عضو از خانواده جهت دریافت توجه هستند، لذا کمتر دچار غرور هستند.فرزند میانی، حلال مشکلات است : فرزند های میانی، معمولا حلال مشکلات بین اعضای خانواده و یا دوستان و همکاران خود هستند، زیرا روش آنها برای کسب توجه در کودکی مذاکره بوده است.فرزند میانی، منصف است : فرزند های میانی، به دلیل برخورد هایی که با او در دوران کودکی شده به خوبی طعم بی انصافی را درک میکند و معملا تبدیل به افرادی منصف در بزرگسالی می‌شوند.فرزند میانی، خلاق است : فرزند های میانی، به دلیل دریافت توجه کمتر از والدین خود، خلاقیت و نو آوری بیشتری از خود نشان می‌دهند تا میزان دریافت توجه خود را بیشتر کنند.فرزند میانی، مستقل است : فرزند میانی به دلیل دریافت حس توجه نا کافی و احاساس ناخواسته بودن، سعی می کند که وابستگی به خانواده نداشته باشد، البته این بدان معنا نیست که این فرزندان به خانواده وفاداری ندارند.فرزند میانی، شنونده قابلی است : برای حل مشکلات همیشه باید شنونده خوبی بود، این فرزندان نیز به دلیل میانجی گربودنشان شنونده های خوبی نیز هستند.کلام آخربرخی از متخصصین، بر این باورند که سندروم فرزند میانی وجود ندارد، بعضی دیگر معتقدند این سندروم وجود دارد و در دوران 30 سالگی فرد کم کم ازبین می‌رود.ولی به عنوان یک فرزند میانی،این نظریه ها را غلط می‌دانم.سندروم فرزند وسط وجود دارد.به شخصه با بسیاری از این افراد معاشرت داشته ام و به راحتی همزبان شده ایم.زیرا هم درد بوده ایم.بچه وسط بودن برای به ذاته چیز بدی نیست و شاید یکی از قدرت هایی باشد که یک فرد می‌تواند تجربه کند، برای مثال &quot;خلاقیت&quot; زیاد فرزندان وسط به احتمال زیاد به دلیل همین مورد است.ولی اگر این مشکلات پیدا،  بررسی و مراقبت نشوند، امکان این وجود دارد که فرد دچار مشکلات مختلفی از جمله خودخواهی، استرس، احساس سرخوردگی، افسردگی و ... شوند.پس بهتر است اگر شما فرزند میانی دارید بیشتر مراقب او باشید.فرزند میانی به دلیل رقابت همیشگی که با دیگران دارد، انرژی زیادی را از دست می دهد، به درون خود کشیده می شود و احساس سرخوردگی دارد، اورا بشنوید و اجازه ندهید به داخل خود کشیده شود.نیازی ندارید کار خاصی انجام دهید، کافیست با او حرف بزنید و به او اطمینان دهید که شنیده می‌شود و هیچ فرقی با باقی افراد خانواده ندارد.به او بگویید که دست از مبارزه بردارد و خودش باشد، به بگویید که نیازی ندارد خودش را برای کسی و از همه مهم تر خودش اثبات کند.برای اطمینان کردن به دیگران کمکش کنید.به خلاقیتش توجه کنید، دستاورد هایش در مدیری روابط با بقیه را نظارت کنید و هرکجا که احساس کردید احساساتش جریحه دار شده است، با در آغوش کشیدنش به اون اطمینان دهید که او را همین گونه که هست دوست دارید.فرزند وسطی شما سیاهچاله محبت است، هر مقدار محبت که دارید را می‌تواند به خود جذب کند.اگر فرزند وسط خود را با این دستور العمل نگهداری و مراقبت کردید، احتمالا در 30 سالگی او، نتیجه کاشت خود را خواهید دید...تمام//.</description>
                <category>مسعود دانش پور</category>
                <author>مسعود دانش پور</author>
                <pubDate>Sat, 15 Aug 2020 12:01:59 +0430</pubDate>
            </item>
                    <item>
                <title>مهاجرت از ویندوز به لینوکس  - تصمیم</title>
                <link>https://virgool.io/applymag/%D9%85%D9%87%D8%A7%D8%AC%D8%B1%D8%AA-%D8%A7%D8%B2-%D9%88%DB%8C%D9%86%D8%AF%D9%88%D8%B2-%D8%A8%D9%87-%D9%84%DB%8C%D9%86%D9%88%DA%A9%D8%B3-%D8%AA%D8%AC%D8%A7%D8%B1%D8%A8-%DB%8C%DA%A9-%D8%A8%D8%B1%D9%86%D8%A7%D9%85%D9%87-%D9%86%D9%88%DB%8C%D8%B3-%D9%88%DB%8C%D9%86%D8%AF%D9%88%D8%B2%DB%8C-%D9%82%D8%B3%D9%85%D8%AA-%DB%B1-%D8%AA%D8%B5%D9%85%DB%8C%D9%85-zsxhmw4jmssh</link>
                <description>دسکتاپ اوبونتو 19.4از سال 1393 با لینوکس بعضا کارهایی سطحی و بدون دانش فنی انجام میدادم.حتی در کلاس های غیر حظوری لایتک نیز ثبت نام کردم و جزوات و DVD هم تا حدودی ( نصف DVD اول !) هم دیدم ولی به علت مشغله زیاد و همچنین Safe Zone ذهنم سمت این تغییر نرفتم.چند وقت اخیر که درگیر مباحث دنیای نرم افزار های آزاد و متن باز شدم به شدت به این حوزه علاقه مند شدم و حتی تصمیم گرفتم یادگیری زبان GO را به صورت جدی در برنامه های خودم قرار بدم.البته دلایل دیگری هم برای یادگیری این زبان جدید وجود داشت.به هر روی بعد از مشاهده چندین آموزش ویدویی و همچنین وبلاگ های مختلف با مشکل نبود منابع مطالعاتی مناسب برای برنامه نویسی GO روی ویندوز مواجه شدم.البته منابع بسیاری در این زمینه وجود دارد ولی بیشتر منابع تخصصی بر بستر LINUX نوشته شدن.روی لپتاپم یک نسخه UBUNTU 16.04 LTS برای روز مبدا داشتم.تصمیم گرفتم ادامه روند آموزش را به این سیستم عامل انتقال  بدم که با مشکلات زیادی مواجه شدم.اولین مشکل در به این علت بود که من هنگام نصب سیستم عامل ها برای اوبونتو فقط ۲۵ گیگ فضا درنظر گرفته بودم و تمام این فضا به دلایلی که هنوز هم در تخصصم نیست پر شده بود.دومین دلیل عدم آشنایی کافی من با Bash بود که باعث می شد من تقریبا هیچ کدام از بخش های آموزش را متوجه نشوم.بعد از ۲ روز کلنجار رفتن با  اوبونتو و آشنایی جزیی با Bash بلاخره حس بهتری پیدا کردم و از پس کارهای ابتدایی بر آمدم.ولی مشکل اول همچنان پابرجا بود.بلاخره تصمیم نهایی را گرفتم.راه چاره ای نبود و من به فضای بیشتری برای ادامه کار نیاز داشتم.به همین دلیل در یک حرکت انتحاری تمام سیستم عامل های روی لپتاپ را پاک و یک نشخه تازه از اوبونتو ورژم 19.04 را روی آن نصب کردم.بدون ویندوز! بلی.بدون ویندوز.تا وقتی که روی لپتاپ ویندوز داشته باشم سمت استفاده از لینوکس نمی رم.پس اصلا نصب نمی کنم تا به اجبار مشکلاتم را حل کنم.چه چیز هایی یادگرفتمیکی از استفاده های اساسی من تماشای ویدوهای آموزشیم هست.متاسفانه انکودر موجود در نسخه فعلی قابلیت اجرای هر نوع فایل تصویری را ندارد و باید راه حلی پیدا کرد و این راه حل استفاده از VLC هست.من برای رفع این مشکل از Ubuntu Software نرم افزار VLC را نصب کردم و مشکلم حل شد.وقتی به کیبورد های فارسی ویندوز عادت کرده باشید و مخصوصا استفاده از ALT+SHIFT برای تغییر زبان برای شما عادت شده باشد ؛در اوبونتو مشکلات زیادی خواهید داشت.این کلید میانبر در اوبونتو متفاوت است و از همه بدتر اینکه شما برای تغییر بین زبان ها امکان تغییر میانبر را دارید ولی برای یک حالت اصلی.یعنی برای مثال برای انتقال به فارسی می توانید از میانبری مانند ALT+ENTER استفاده کنید ولی برای برگشت به انگلیسی می بایست به اجبار از ALT + SHIT + ENTER استفاده کنید.من هنوز راه حلی برای این مشکل پیدا نکرده ام ولی امیدوارم با راهنمایی دوستانی متخصصی مثل @jadi راه حل مناسب را پیدا کنم.با Bash باید دوست شد.متاسفانه یا خوشبختانه ما کاربران ویندوزی عادت به استفاده از Command Line نداریم.در اوبونتو و فکر می کنم تمام سیستم عامل های Linux base برای انجام سریع تر و راحت تر کارها مجبور به یادگیری و استفاده از bash هستید.پس با این موجود به ظاهر خطرناک دوست شدم و سعی می کنم این آشنایی را بیشتر و بیشتر هم بکنم.مثلا فهمیدم که در bash برای اجرای چند دستور می توان آنها را پشت هم نوشت و با علامت &amp;&amp; جدا کرد.به این صورت تمام دستورات به ترتیب اجرا خواهند شد.پ.ن : این متن را با استفاده از Chromium و با مشقت بسیار روی اوبونتو 19.04 نوشتم. لطفا اگر از این مطلب خوشتون اومد لطفا مطلب رو لایک کنید. ممنون ^_^ </description>
                <category>مسعود دانش پور</category>
                <author>مسعود دانش پور</author>
                <pubDate>Wed, 03 Jul 2019 18:54:40 +0430</pubDate>
            </item>
                    <item>
                <title>موش کتاب خوان، کتابی جذاب با صحنه سازی های بدیع</title>
                <link>https://virgool.io/@mdp/%D9%85%D9%88%D8%B4-%DA%A9%D8%AA%D8%A7%D8%A8-%D8%AE%D9%88%D8%A7%D9%86-%DA%A9%D8%AA%D8%A7%D8%A8%DB%8C-%D8%AC%D8%B0%D8%A7%D8%A8-%D8%A8%D8%A7-%D8%B5%D8%AD%D9%86%D9%87-%D8%B3%D8%A7%D8%B2%DB%8C-%D9%87%D8%A7%DB%8C-%D8%A8%D8%AF%DB%8C%D8%B9-wmgebtak4qy4</link>
                <description>عکس از وبسایت یک پزشکدر سالگرد تولدم از همکار و استاد عزیزم، روح‌الله دلپاک کتاب فرمین، موش کتاب خوان را کادو گرفتم.از همان روز علاقه زیادی برای مطالعه این کتاب در من وجود داشت ولی به علت مشغله زیاد و زمان کم قبل از عید- برای کارهای عیدانه- زمان کافی برای مطالعه نداشتم.از چند دیدگاه کتاب برای مطالعه مناسب به نظر می رسید،اول ظاهر جذاب کتاب که به صورت گاز زده بود، هنوز زمانی که کادوی کتاب را باز کردم و فکر کردم آن بخش گاز زده شده را پاره کرده ام و حسابی شوکه شده بودم،در ذهنم هست.دوم چاپ سیزدهم بودن کتاب که نشان از پر طرفدار بودن و در نهایت احتمالا به این معنی که حرفی برای گفتن داشتن داشت.سوم کاهی و سبک بودن کتاب ( البته این پارامتر شاید برای شما مهم نباشد)چهارم متن اول کتاب که از آموز های ژوانگ ژو بود با این عنوان :روزی ژوانگ ژو خوابش برد و خواب دید پروانه ای است که با خوشحالی این طرف و آن طرف می پرد. و پروانه نمی دانست ژوانگ ژو است که دارد خواب می بینید.از خواب که برخواست به ظاهر دوباره خودش بود، اما حالا نمیدانست آیا مردی است که خواب میبیند پروانه است یا پروانه ای است که خواب می‌بیند انسان است.موش کتاب خوان اثری از اثری از سم سوج  است و  به لطف ترجمه بسیار خوب &quot;پوپه میثاقی&quot; دارای متنی روان و جذاب و به دور از کلمات پیچیده نگاشته شده است.روال داستان کند ولی صعودی پیش می‌رود و داستنک هایی به هم مرتبط از زبان و چشم یک موش نا امید از زندگی در بین دوازده خواهر و برادر دیگر او بازگو می‌شوند.ماجرای کتاب، از قبل از تولد فرمین و سپس در زمان تولد در یک کتاب فروش و تا منتهای نا امیدی او در زیر زمین همان کتاب فروشی است.در تمام فصول داستان شما تمام اتفاقات را از چشم فرمین می‌نگرید.صحنه سازی های دقیق نویسنده همچون فیلم‌نامه ای دقیق، تمام شرایط محیط را برای خواننده به تصویر می‌کشد.در بخشی از داستان فرمین به علت کمبود شیر مادر، مجبور به جویدن کاغذ های کتابی -که توسط مادرش ریش ریش شده است- می شود.در توصیف این صحنه بخوانید : در زیرزمین کتاب فروشی‌ای که ما زندگی می‌کردیم هیچ ذغالی نبود، یا هیچ خاک واقعی.گرد خاک زیاد بود اما گردخاک را نمی‌شود خورد.یه سق دهانت می‌چسبد و قورت دادنش غیر ممکن است.کاغذ اما - من خیلی زود این را کشف کردم- غلظتی فوق‌العاده و بعضی مواقع مزه قابل قبولی دارد.اگر بخواهی می‌توانی یک تکه بزرگ آن را ساعت ها مثل آدامس بجوی.توصیف جذاب صحنه هر خواننده ای را بر آن می‌دارد که تجسم خوردن خاک و جویدن کاغذ را هنگام خواندن این بخش از متن با خود تکرار کند و این از نظر من اوج هنر و قدرت یک نویسنده است.اگر شما هم مانند من از جمله افرادی باشید که طرعت مطالعه بالایی ندارند، به احتمال زیاد طی یک هفته کتاب را تمام خواهید کرد.ولی برای این کتاب طولانی بودن زمان مطالعه باعث همراهی بیشتر شما با فرمین شده و لذت مطالعه را برای شما بیشتر خواهد کرد.از نظر من، با نظر به اینکه توصیفات دقیقی از صحنه هایی که فرمین با شما به اشتراک میگذارد بسیار زیبا و جذاب است، ولی ناامیدی شدیدی در تمام کتاب موج می‌زند که باعث می‌شود خواننده در یک استرس همراه با اشتیاق قراربگیرد که شاید برای بعضی خوانندگان احساس خوشایندی نداشته باشد.در این کتاب نویسنده، در بسیاری از بخش ها  تسلط و حجم دانش خود نسبت به ادبیات و دیگر نویسنده‌ها را با استفاده از اشاراتی به داستان ها و یا کتاب های آنها به رخ خواننده می‌کشد که احتمالا  باعث جذابیت برای افرادی با سطح مطالعات زیاد باشد.نکته جالب دیگر در مورد شخصیت فرمین در این کتاب، نامگذاری های او برای اتفاقات و یا افراد است.برای مثال در بخشی از داستان فرمین به بخش های مختلف کتاب فروشی سرک می‌کشد و اکتشاف جدیدی می‌کند که نوسنده این گونه آن را توصیف می‌کند :این شکاف سقف که شبیه C مخفف Confidential[محرمانه] بود، به یکی از نقاط محبوبم بدل شد.پنجره ای بود به دنیای انسان ها، اولین پنجرهی من.از این لحاظ شبیه کتاب بود- می‌شد از وران آن به دنیاهایی نگاه کرد که مال خودت نبودند.اسمش را گذاشتم بالن، چون از آنجا که به پایین نگاه می‌کردم این حس را داشتم که انگار در بالنی بر فراز اتاق شناور بودم.علاوه بر فضا سازی بسیار زیبا، نامگذاری یک سوراخ با بالن بسیار جذاب است.نتیجه گیریمن شخصا این کتاب را جهت مطالعه به همه پیشنهاد خواهم کرد و در زمان هایی که بنا بر هدیه دادن کتاب باشد، جزو اولین انتخاب هایم خواهد بود.این کتاب از انتشارات مرکز و با قیمت بیست و دو هزار و پانصد تومان قابل خرید است.</description>
                <category>مسعود دانش پور</category>
                <author>مسعود دانش پور</author>
                <pubDate>Wed, 29 May 2019 11:28:47 +0430</pubDate>
            </item>
                    <item>
                <title>نصب Team Foundation Server 2018 قسمت اول</title>
                <link>https://virgool.io/@mdp/%D9%86%D8%B5%D8%A8-team-foundation-server-2018-%D9%82%D8%B3%D9%85%D8%AA-%D8%A7%D9%88%D9%84-qjsbgmjxeuru</link>
                <description>TFS یکی از بهترین ابزارهای ALM در سطح جهان و یک ابزار بسیار محبوب در ایران می‌باشد.اخیرا ماکروسافت نام این محصول را از TFS به Azure DevOps در ورژن 2018 تغییر داده.بر اساس سیاست های مدیر عامل شرکت ماکروسافت تمرکز شرکت بر روی سرویس های ابری متمرکز شده.بر همین اساس بیشتر ابزار ها در حال تلفیق با پلتفرم ابری ماکروسافت هستند.در این تغییر نام تغییرات نسبتا زیادی بر روی UI در کنار مابقی توسعه های ابزاری انجام شده.در این آموزش هدف اصلی ما نصب نسخه 2018 Update 3 از سری ابزار های TFS می‌باشد.در پست‌های آینده تغییرات نحوه نصب Azure DevOps نصبت به TFS را بیان خواهم کرد.مفاهیمTFS مجموعه ای از چند لایه می باشد که به صورت جدا از هم بر روی سرور های مختلف قابل پیاده سازی می‌باشند.ماژول های اختیاری TFSماژول های اختیاری TFSزیر ساختمعماری TFS به صورت چند لایه فیزیکی جدا از هم طراحی شده که هر لایه پیشنهاد می‌گردد که به صورت جدا از هم پیاده سازی گردند.ولی به صورت حداقلی پیشنهاد می‌گردد که دو لایه اصلی یعنی : Application Server و Database Server به صورت جداگانه آماده شوند.برای حالت های مختلف از دستورالعمل های زیر استفاده کنید:در صورتی که دسترسی به منابع ندارید،برای 0 تا 250 نفر کاربر بر روی یک سرورCPU: Dual coreRam: 4GBStorage : At least 250GBکه کمترین مقادیر ممکن می باشد.در مستندات ماکروسافت با این مقادیر برای کار‌های اولیه پیشبینی شده و حتی پیشنهاد می‌گردد حتی ماژول جست و جو را روی این سرور فعال نکنید.این بدین معنی است که قابلیت‌هایی مانند : Automate build و Automate Test بر روی این سرور قابل استفاده نیست.در صورتی که منابع بیشتر سخت افزاری بیشتری دارید از سروری با مشخصات زیر استفاده کنید :Application Tire :CPU : Dual coreRAM : 8GBData Tire :CPU : Dual coreRAM : 8GBدرصورتی که مایل به استفاده از قابلیت Code Search در TFS هستید، پیشنهاد می‌گردد از یک سرور جداگانه برای این کار بهره ببرید.در مورد Storage حتمی می‌دانید که جناب SSD کارایی بالاتری نسبت HDD های مرسوم دارند.در این حالت نیز استفاده از SSD ها توسط ماکروسافت پیشنهاد شده اند.مراحل نصب - مرحله اول - نصب زیر ساخت هابرای TFS 2018 Update 3 طبق پیشنهاد ماکروسافت نیاز به نصب Windows Server 2016 دارید.نحوه نصب سیستم عامل را می‌توانید با جست و جو در اینترنت پیدا کنید.برای پایگاه داد نیز طبق پیشنهاد از MS SQL Server 2016 SP1 و یا MS SQL Server 2017 استفاده کنید، که نصب آن نیز از حوصله این نوشته خارج بوده و با یک جست و جو در اینترنت قابل پیدا کردن است.</description>
                <category>مسعود دانش پور</category>
                <author>مسعود دانش پور</author>
                <pubDate>Sat, 09 Feb 2019 00:51:07 +0330</pubDate>
            </item>
                    <item>
                <title>ALM چیستی و چرایی !</title>
                <link>https://virgool.io/coderlife/alm-%DA%86%DB%8C%D8%B3%D8%AA%DB%8C-%D9%88-%DA%86%D8%B1%D8%A7%DB%8C%DB%8C-yubrwktw6unu</link>
                <description>در صنعت نرم‌افزار مفهومی به نام ALM و یا Application Life cycle Management وجود دارد.اگر به صورت کلمه به کلمه این مفهوم را تعریف کنیم به چیزی شبیه : مدیریت قبل از تولد تا مرگ نرم افزار(!) می‎‌رسیم.ALM در حقیقت شامل پروسه هایی در جهت تولید نرم افزار می باشد که شامل چند بخش اصلی می‌باشد.ALM Processesتعریف جذاب تری از ALM را در وبسایت Stackify می‌توان یافت  (نسخه ترجمه شده در بلاگ اسکرام)که : ALM, is an integrated system of people, processes, and tools that manage the life an application from concept to retirement. که به فارسی معادل :ALM یک روال از افراد، رویه ها و ابزار های در جهت مدیریت یک نرم افزار از ایده تا بازنشستگی را تشکیل می دهد.در حقیقت ALM، یک اسلوب یا متودولوژی  در صنعت نرم افزار -شامل مجموعه ای از رویه ها و ابزار های استاندارد شده برای رسیدن یک ایده به مرحله اجرایی شدن- می‌باشد.بخش‌های مختلفی در ALM وجود دارند که هر کدام اهداف خاصی را دنبال می کنند که به شرح زیر قابل دسته بندی می‌باشند :ابزار و روش‌های مربوط به تحلیل و مدیریت نیاز هااین رویه‌ها و ابزار‌ها به شما کمک می‌کنند تا نیاز‌های نرم‌افزار را  مدیریت کنید و حتی این امکان را برای تیم ها به وجود می آورد که اتصال و ترکیب داستان های کاربر با Test ها و موارد کاری برقرار شود.برنامه زیری و تخمیناین بخش به تیم ها اجازه برنامه ریزی فعالیت ها در جهت تولید نرم افزار را بر اساس متودولوژی های روز دنیا را می‌دهد.ابزار های ALM به گونه ای طراحی شده اند که چه درحال کار با متودولوژی  Agile یا Scrum باشید و چه Waterfall قابل استفاده باشند.توسعه کدمرحله بعد از برنامه ریزی و تخمین مسائل مربوط به توسعه نرم افزار می باشد.ابزار های ALM شامل ابزار هایی برای انجام هرچه بهتر فعالیت های مربوط به توسعه می‌باشد، مانند، Source control ها و یا Task management.تست و تضمین کیفیتیکی از مهمترین بخش های ALM مدیریت تست و تضمین کیفیت می‌باشد که توسط ابزار های محتلف کنترل میگردند.این دسته ابزار ها برای مدیریت تست، اجرای آن و همچنین طراحی برنامه های تست (Test Plan) می‌باشد.بحث های مربوط به Automated Test ها نیز زیرمجموعه همین بخش می‌باشند.استقرار و DevOpsاگرچه این مرحله معمولا از مراحل زیر مجموعه ALM به شمار نمی‌رود ولی در ابزار هایی که اکنون در بازار وجود دارند، مباحث مربوط به CI و یا قابلیت اتصال به این نوع ابزار ها یک مزیت به شمار می‌رود.نکته مهم در ALM درک تفاوت آن با SDLC و یا Software Development Life Cycle است.در حقیقت SDLC یک زیر مجموعه کوچک از مفاهیم ALM می‌باشد که در زیر مجموعه آن ابزار هایی مانند: SCM،Task Management و ... وجود دارد.در دنیا ابزار های بسیار متنوعی برای ALM وجود دارند که تا به امروز احتمالا با برخی از آنها مواجه شده باشید.بخشی از بهترین ابزار های SDLC در دنیا شامل لیست زیر می شوند : ALMComplete by SmartBear SoftwareClarity+AgileVision+ITKO by CA technologiesIBM Rational solution for Collaborative Lifecycle Management by IBMJIRA+Confluence+Stash+Bamboo by AtlassianTeam Foundation Server by Microsoftیکی از مقبول ترین این ابزار ها که در ایران بیشترین استقبال از آن به عمل آمده است، TFS شرکت Microsoft می‌باشد که به اشتباه در ایران به عنوان فقط SCM شناخته می‌شود.در صورتی که این ابزار شامل بخش‌های مختلفی که در بالا ذکر شده می‌باشد.در پست بعدی مراحل نصب TFS 2018 بر روی یک سرور خصوصی به عنوان یک ALM Tools بیان خواهد شد.</description>
                <category>مسعود دانش پور</category>
                <author>مسعود دانش پور</author>
                <pubDate>Fri, 08 Feb 2019 19:40:32 +0330</pubDate>
            </item>
                    <item>
                <title>توسعه کد برای مجالس ! - نام‌گذاری - قسمت دوم</title>
                <link>https://virgool.io/@mdp/%D8%AA%D9%88%D8%B3%D8%B9%D9%87-%DA%A9%D8%AF-%D8%A8%D8%B1%D8%A7%DB%8C-%D9%85%D8%AC%D8%A7%D9%84%D8%B3-%D9%86%D8%A7%D9%85%DA%AF%D8%B0%D8%A7%D8%B1%DB%8C-%D9%82%D8%B3%D9%85%D8%AA-%D8%AF%D9%88%D9%85-uhwte15si01f</link>
                <description>در ادامه تصمیم اخیرم درجهت نوشتن برداشت‌های شخصی خود در مورد کد تمیز سومین پست این سری مجموعه رو با نام نام‌گذاری-قسمت دوم شروع میکنم. نام‌گذارینام کلاس‌هایکی از چالش‌هایی که در بیشتر تیم‌های نرم افزاری با آن روبرو بوده ام، مشکل نام گذاری کلاس‌ها بوده و هست.اگر پست قبلی رو مطالعه کرده باشید، این نکته را به خاطر می‌آورید که یکی از نکات مهم در نام‌گذاری انتخاب نامی قابل پیش‌بینی است.نام‌های انتخابی برای کلاس‌ها معمولا شامل اسم‌ها می باشند.نام‌های کلاس‌ها می بایست توصیف فعالیت کلاس را انجام دهند.همین اصل ساده به شما کمک به سزایی در رعایت اصلی Single Responsibility  در S.O.L.I.D برای شما ایفا خواهد کرد.برای مثال اگر شما نام یک کلاس UserManager را انتخاب کرده باشید، احتمالا فقط فعالیت‌های مربوط به مدیریت کاربر را در این کلاس قرار خواهید داد ( البته احتمالا !).نکته ای که در انتخاب نام کلاس‌ها مهم می باشد، انتخاب نام‌هایی با سطح انتزاع یکسان ( Abstraction Level ) برای کلاس‌های هم سطح می باشد.بدین معنی که زمانی که نام یک کلاس File انتخاب می شود.نام کلاس دیگری که با این کلاس در سطح انتزاع یکسانی است احتملا می بایست Directory باشد و نه UserManager !نام خصوصیت‌ها (فیلد‌ها)هر کلاس شامل چند خصوصیت است.خصوصیت‌ها به صورت عمومی قابل دسترس هستند، پس می بایست مربوط به والد خود باشند.این بدین معنی است که اگر در کلاس Person در حال توسعه هستید، یک خصوصیت می تواند نام فرد باشد.نام قابلیت‌ها (متد‌ها و توابع)یکی از مهمترین بخش‌ها در نام‌گذاری، متد‌هاست، متد‌ها می‌بایست فعل‌هایی در زمینه کاری کلاس والد باشند.برای مثال کلاس File را در نظر بگیرید.متد‌های داخل این کلاس می توانند :CreateFileOpenFileReadFileWriteFileDeleteFileباشند.نکاتی در مورد این متد‌ها وجود دارند که توجه شما را به آنها جلب می‌کنم :همه آنها یک داستان مشترک و ادامه دار را بازگو می‌کنند.متد بعدی قابل پیش بینی است.ورود و خروجی آنها را احتمالا می توانید حدس بزنید.تا به الان متوجه شده اید که یکی از متد‌ها کم است : CloseFile.متد‌ها می‌بایست قابل پیشبینی و همچنین در یک سطح انتزاع از سایر برادران خود باشد.به مثال بالا توجه کنید، تمام متد‌ها در یک سطح از Abstraction هستند و هیچ متدی مانند SaveToDatabase در بین آنها وجود ندارد.نکته مهم دیگر در نام‌گذاری توابع انتخاب نام‌هایی است که گویای ورودی آنها باشد.برای مثال متد WriteFile احتمالا دو ورودی FilePath و FileContent را به عنوان ورودی دریافت می‌کند.نام ورودی‌های متد‌ها و توابعیکی از شاید مظلوم ترین بخش ها در نام‌گذاری که معمولا به آنها توجه لازم انجام نمی‌شود، انتخاب نام مناسب برای ورودی توابع و یا Argument ها می‌باشد.در بیشتر منابع، ورودی توابع را در سطح متغیر‌های محلی در نظر می‌گیرند-که خیلی هم غیر منطقی نمی‌باشد- ولی نکته مهم، انتخاب اسمی گویا می‌باشد.یکی از اهداف اصلی کد تمیز، کد قابل پیش بینی می‌باشد، انتخاب نام های مناسب برای ورودی توابع منجر به این می‌شود که توسعه دهنده‌های دیگر بدون رجوع به داخل تابع، درک درستی از نحوه کار تابع شما داشته باشند.البته بحث مفصلی در کتاب Clean-Code در رابطه با انواع ورودی های توابع و نحوه کنترل آنها وجود دارد که مطالعه آن را پیشنهاد می‌کنم.نام متغیر‌های محلیبرای متغیر های محلی نکته قابل اهمیت انتخاب نام هایی است که در Scope متد قابل درک باشند.برای مثال در متد CreateFile یک متغیر احتمالی، normilizedPathForCreatingFile می باشد.این متغیر کار نگهداری آدرس Normal شده فایلی که قرار است ساخته شود را نگهداری می‌کند.در متغییر های محل طولانی شدن نام متغیر نباید شما را نگران کند، البته طولانی شدنی که نیاز به آن وجود داشته باشد نه فقط به دلیل علاقه شخصی.هدف خوانایی بیشتر در طول مدت است.پس نگران نباشید !کلام آخرنام گذاری اولین قدم در توسعه کد تمیز است ولی به قول arlobelshee نام گذاری یک پروسه است تا یک قدم از توسعه کار.پیشنهاد می‌کنم در کنار تمام کتاب‌های موجود این سری مطلب از وبلاگ arlobelshee را نیز مطالعه کنید، همچنین مطمعا باشید که باز هم نظرات جذابی برای مطالعه وجود خواهد داشت.</description>
                <category>مسعود دانش پور</category>
                <author>مسعود دانش پور</author>
                <pubDate>Fri, 08 Feb 2019 17:32:58 +0330</pubDate>
            </item>
                    <item>
                <title>چگونه به درستی از یک شرکت جدا شویم یا ادب از که آموختی، از بی ادبان</title>
                <link>https://virgool.io/applymag/%DA%86%DA%AF%D9%88%D9%86%D9%87-%D8%A8%D9%87-%D8%AF%D8%B1%D8%B3%D8%AA%DB%8C-%D8%A7%D8%B2-%DB%8C%DA%A9-%D8%B4%D8%B1%DA%A9%D8%AA-%D8%AC%D8%AF%D8%A7-%D8%B4%D9%88%DB%8C%D9%85-%DB%8C%D8%A7-%D8%A7%D8%AF%D8%A8-%D8%A7%D8%B2-%DA%A9%D9%87-%D8%A2%D9%85%D9%88%D8%AE%D8%AA%DB%8C-%D8%A7%D8%B2-%D8%A8%DB%8C-%D8%A7%D8%AF%D8%A8%D8%A7%D9%86-d8fhirtowajy</link>
                <description>باید ها و نباید های خروج از یک شرکتما به عنوان کارمند در طول زندگی کاری خود معمولا شرکت های مختلفی را به منظور های مختلف مانند: کسب تجریه جدید، افزایش درآمد، اخراج، عدم علاقه شغلی و ... تغییر میدهیم.به تازگی به دلیل جدا شدن یکی از همکارانم از تیم ما دوباره این مساله برای من یادآور خاطرات قدیمی خودم بود.به همین دلیل تصمیم گرفتم تجربیات شخصی خودم را برای این موضوع به رشته تحریر درآورم.طبق معمول نکات زیر تجربه شخصی من می‌باشد و ممکن است همه با آنها موافق نباشند.نکته اول - توجه به قراردادهر همکاری شغلی معمولا با امضا یک قرارداد شروع می‌شود.این قرارداد شامل بخش های مختلفی مانند :مشخصات کارفرمامشخصات کارگرتاریخ شروع و اتمامحقوقزیر حقوق پرداختی ( شامل حق مسکن، حق اولاد، بیمه و ... )نحوه محاسبه مرخصی هاساعات کارمحل کارشرح مسئولیتمحل و مسئول حل اختلاف...می باشد.هر شرکت نیز بر اساس نظر مدیران خود ممکن است بخش هایی به قرارداد اضافه یا کم کنند که در قانون کار به آن اشاره نشده است.برای مثال : &quot;عدم پرداخت اضافه کار&quot;، &quot;عدم پرداخت حق ماموریت&quot; که با کارگر معمولا توافق می‌شود.اولین نکته مهم برای هر کارگری بررسی دقیق تمام موارد قبل از امضا این قرارداد می‌باشد.البته نگران نباشید، اگر در قرارداد شما تصبصره و یا موردی وجود داشته باشد که با قانون وزارت کار در تناقض باشد، حتی بعد از امضا قابل بررسی مجدد در مراجع معرفی شده در بخش حل اختلاف ( که وزارت کار و امور اجتماعی) می‌باشد، وجود دارد.نکته مهم بعدی در قرارداد، درخواست نسخه دوم قرارداد با امضا و مهر صاحب امضا ( که معمولا مدیر عامل شرکت می‌باشد)  می باشد.متاسفانه من شخصا در شرکت های مختلف این مورد را به کرات دیده ام که قرارداد پرسنل به آنها تحویل داده نشده و بعد از به وجود آمدن مشکل، به دلیل اینکه هیچ قراردادی نزد کارگر برای ارجاع وجود نداشته، مشکلاتی به وجود آمده است.البته برای این موارد نیز راه حال هایی وجود دارد که بحث این نوشتار نیستند.نکته مهم بعدی که می‌بایست به آن توجه کرد، وجود دو نسخه غیر یکسان از قرارداد می‌باشد.متاسفانه به دلیل‌های گوناگون در 99% شرکت هایی که من افتخار همکاری داشته‌ام، برای مسائل مختلف از قبیل مالیات، کم بود بودجه و ... شرکت ها دو نسخه قرارداد برای کارگر تنظیم میکنند که یکی با حداقل حقوق وزارت کار و امور اجتماعی و دومی با حقوق توافق شده می‌باشد.حتمی می‌توانید حدس بزنید که قرارداد اول معمولا با مهر و امضا به شما تحویل داده می‌شود و قرارداد دوم را شما هیچگاه بعد از امضا نخواهید دید.این مورد هم مزایایی دارد و هم مضرات.وقتی قراردادی برای ارجاع وجود نداشته باشد دست شما برای گرفتن حق و حقوق خود بسته است ولی وقتی قراردادی وجود نداشته باشد، ارجاع به آن توسط کارفرما نیز قابل انجام نیست.مگر اینکه قرارداد فوق را به مراجع ذی صلاح ارائه کنند که این خود تخلفی بزرگ برای کارفرما خواهد بود.پیشنهاد شخصی من به شما این است که هیچگاه با کارفرما وارد مشاجره های حقوقی نشوید ( به زبان خودمانی : ارزش ندارد ).نکته دوم - قانون کار برای خروج از یک کارگاه را بشناسیدطبق قانون کار، کارگر برای خروج از بنگاه اقتصادی که مشغول به کار می‌باشد، سه راه کلی دارد :اتمام قرارداد.فسخ قرارداد و یا اخراج.استعفا.اتمام قرارداددر صورتی که قرارداد کاری شما طبق قرارداد به اتمام رسیده باشد، کارفرما در هر لحظه می‌تواند از شما درخواست کند که محل کار خود را ترک کنید و شما طبق قانون هیچ حق و حقوقی بعد از اتمام تاریخ  اتمام کار درج شده قرارداد نخواهید داشت.متاسفانه باز به دلیل مشکلات مختلف مانند مشکلات اقتصادی و ... این مورد جدیدا به کرات دیده می‌شود که قرارداد های همکاری حتی به صورت ماهانه بسته می‌شوند که به نظر شخصی من کاری غیر حرفه ای و در عین حال غیر انسانی می‌باشد(قابل توجه کارفرما های محترم).پس دقت کنید که تاریخ اتمام قرارداد شما چه تاریخی است تا دچار مشکل نشوید.پیشنهاد می‌کنم شرکت‌هایی را برای کار انتخاب کنید که قراداد های بلند مدت داشته باشند.فسخ قرارداد و یا اخراجذات انسان با خطا آمیخته شده است.ولی گاهی این خطا ها باعث مشکلاتی در روند اجرای کار می‌شود که سازمان تحمل آن را ندارد و تصمیم به قطع همکاری می‌گیرد.چرایی فسخ قرارداد فارق از اینکه مشکل شخصی باشد یا بر اساس قراداد شخص امکانش وجود داشته باشد، دارای شرایط خاصی است که باید هم از طرف کارگر و هم کارفرما لحاظ شود.یکی از این موارد مهلت اعلام دلیل اخراج و یا فسخ قرارداد به کارگر توسط کارفرما ‌می‌باشد.زیرا دلیل فسخ قرارداد می‌بایست به دلیل های مشخصی انجام گیرد که از حوصله این نوشتار خارج است.برای اطلاعات بیشتر این متن را مطالعه نمایید.استعفایکی از رایج ترین انواع اتمام همکاری استعفا می‌باشد.استعفا به دلیل های مختلفی انجام می‌گیرد.دلیل استعفا هرچه باشد برای ارائه آن قوانینی وجود دارد که دانستن آن برای جلوگیری از از دست رفتن حق و حقوق کارگر امری لازم می‌باشد.نکته اول : شما نمیتوانید بعد از ارائه استعفا از شرکت خارج شوید.البته هیچکس نمی‌تواند شما را مجبور به رفتن به جایی بکند، ولی اگر در قرارداد شما، زمانی برای خروج از شرکت از زمان ارائه استعفا وجود نداشته باشد، شما می‌بایست یک ماه بعد از ارائه استعفا نامه خود در محل کار خود حضور داشته باشید.در برخی مواقع، کارگاه ها با کارگران خود توافق می‌نمایند که یا این زمان کمتر از زمان 1 ماه باشد و یا بیشتر.در هردو صورت توافق کتبی امضا و مهر شده در دونسخه لازم می‌باشد.نکته دوم : درصورتی که از زمان 15 روز از زمان ارائه استعفا نامه، استعفا خود را پس نگیرید، امکان استرداد استعفا وجود نخواهد داشت !نکته سوم : اگر از زمان مشخص شده - یک ماه از زمان ارائه درخواست- شما بدون هماهنگی همکاری خود را با سازمان قطع کنید، بعضی از حقوق شما مانند حق سنوات به شما پرداخت نخواهد شد.نکته چهارم : برای جلوگیری از هرگونه از سوء تفاهم حتمی در بازه زمانی یک ماه مذکور حتمی سروقت در محل کار حاضور داشته باشید و حتمی ورود خروج خود را با روش های معمول سازمان ( دستگاه حضور و غیاب ، ثبت دستی و ...) ثبت کنید.نکته پنجم : حتمی یک نسخه امضا و مهر شده استعفا خود جهت اثبات وصول استعفا را از محل کار خود دریافت کنید.نکته سوم - همکاری کنیدخوب یا بد، جذاب یا سخت، به هر حال شما برای انجام کاری در یک کارگاه (شرکت) استخدام شده‌اید.پس اگر کاری در دوران فعالیت خود در آن شرکت به شما محول شده، به صورت تمام کمال به نفر بعد انتقال دهید.هرگز از روش های کینه توزانه استفاده نکنید، زیرا :در هر صورت این کار غیر انسانی است.رفتار حرفه ای به شمار نمی‌رود.شما در قبال انتقال اطلاعات مسئول هستید.چهره حرفه ای شما را خراب می‌کند.دست کارفرما برای پرداخت نکردن حق و حقوق شما را باز می‌کند.اگر کمی هم دغدغه های مذهبی داشته باشید احتمالا برایتان رضایت قبلی کارفرما برای پرداختی به شما هم جزو موارد خواهد بود.در صورتی که در شرکت هایی که ماهیت عملیاتی و دانش بنیانی دارند - مانند شرکت های نرم افزاری - تمام کارها و روال های کاری خود را - تاکید می‌کنم، روال‌های کاری هم با اهمیت هستند- را به هر صورت ممکن، مانند: سند،صوت، تصویر، ویدیو و... را مستند کنید.بهترین روش برای انتقال این دانش، درخواست از مدیریت سازمان برای معرفی یک جانشین در جهت تحویل کار به آن فرد می‌باشد.با این روش شما می‌توانید به صورت کلامی نیز این نوع اطلاعات را منتقل کنید.نکته چهارم - در دسترس باشیدطبق قانون در صورتی که شما موارد ذکر شده را رعایت کرده باشید، بعد از یک ماه می‌توانید بدون مشکل محل کار خود را ترک کنید، ولی معمولا بازه زمانی یک ماه درصورتی که شما مدت زمان زیادی در شرکت مشغول به کار بوده باشید و یا مسئولیت های زیادی داشته اید، مدت کمی برای پیدا کردن جایگزین، انتقال اطلاعات و انتقال مسئولیت خواهد بود.یک فرد حرفه ای این موضوع را درک کرده و بعد از خروج از یک شرکت تا مدت‌ها پاسخگوی سوالات فرد جایگزین خود خواهد بود.نتیجه گیریخروج از یک شرکت هم برای کارگر و هم برای کارفرما پروسه ای زمان بر و همچنین هزینه بر خواهد بود.اگر علاقه دارید در محلی کارکنید که دچار این مشکلات نوشید، پیشنهاد می‌کنم برای پیدا کردن آن محیط وقت بگذارید و بعد از پیدا کردن آن محل، حتمی قراردادی قوی تنظیم کنید.تغییر محیط کاری شاید در افراد جوان تر ( مثل خودم در دوران جوانی ) شاید عادی و بعضا جذاب به نظر می‌رسد، ولی در اصل علاوه بر سختی های شخصی و شرکتی، رزومه شما را نیز مخدوش می‌کند.حتی شرکت هایی هستند که از افرادی که زیاد محیط های کاری خود را تغییر می‌دهند به خوبی استقبال نمی‌کنند!پیشنهاد می‌کنم اول سعی در رفع مشکلات خود با مجموعه خود کنید، سپس از کار خود خارج شوید.در آخر هم از احسان همکار عزیزم که عامل نوشتن این نوشتار به دلیل قطع همکاریش با مجموعه بود و نمونه یک همکار حرفه ای بود بابت دوران کاری خوبی که با یکدیگر داشتیم تشکر کنم.احسان جان امیدوارم موفق باشی !</description>
                <category>مسعود دانش پور</category>
                <author>مسعود دانش پور</author>
                <pubDate>Mon, 21 Jan 2019 12:28:12 +0330</pubDate>
            </item>
                    <item>
                <title>توسعه کد برای مجالس ! - نام‌گذاری - قسمت اول</title>
                <link>https://virgool.io/@mdp/%DA%A9%D8%AF-%D8%AA%D9%85%DB%8C%D8%B2-%D9%86%D8%A7%D9%85%DA%AF%D8%B0%D8%A7%D8%B1%DB%8C-%D9%82%D8%B3%D9%85%D8%AA-%D8%A7%D9%88%D9%84-fu60yqjewnzo</link>
                <description>بر اساس تصمیم اخیرم درجهت نوشتن برداشت های شخصی خود در مورد کد تمیز دومین پست این سری مجموعه رو با نام نام‌گذاری شروع میکنم.مفهوم نام‌گذارینام‌گذاری به معنی انتخاب یک کلمه (و یا چند کلمه در قالب یک شبه جمله) که باعث رجوع راحت تر،جست و جوی بهتر و همچنین به خاطر سپاری سهل تر انجام می‌شود.در دنیای انسان ها عموما نام افراد بر اساس علایق والدین انتخاب می‌شوند که هیچ ربطی به نحوه کارکرد و یا توانایی های فردی فرد ندارد (البته در بعضی موارد نام افراد برای تصاحب یک خصیصه شخصیتی خاص در بزرگ سال، مانند کریم_درجهت سخاوتمند بودن- انتخاب می‌شود.)در دنیای اشیا برعکس دنیای برعکس دنیای انسان ها نام‌ها بر اساس کارایی اجسام انتخاب می‌شوند.برای مثال قاب عکس.بیاید باهم اتفاقاتی که در ذهن بعد از دیدن کلمه &quot;قاب عکس&quot; می افتد را به صورت غیر علمی بررسی کنیم :کلمه قاب عکس خوانده شده و به مغز منتقل می‌شود.کلمه به دو بخش &quot;قاب&quot; و &quot;عکس&quot; شکسته می‌شود.مغز سه برچسب را به سرعت شناسایی می‌کند : &quot;قاب&quot;، &quot;عکس&quot; و &quot;قاب عکس&quot;برای هر سه برچسب فوق، مغز کارایی و موارد استفاده گوناگونی را دسته بندی می‌کند.بعد از لحظه تفکیک و آماده شدن برچسب ها و موارد استفاده (که در زمان بسیار بسیار بسیار سریعی اتفاق می افتد) شما قادر به درک موقعیت هستید.از این مثال یک برداشت ساده می‌توان داشت :ترکیب کلمات امکان حدس و درک مورد استفاده اشیا را ممکن می‌سازد.نام‌گذاری در دنیای نرم افزاربراساس تعریف بالا از نام‌گذاری اشیا، امکان معادل سازی با دنیای نرم افزار به دلیل اشتراک در وجود اشیا قابل انجام است که بر اساس دسته های زیر قابل ارائه می‌باشد.نام‌گذاری در دنیای توسعه نرم افزار برای بخش های مختلفی قابل اعمال است،از جمله:نام پروژه.نام پوشه‌ها.نام فایل‌ها.نام namespace ها.نام کلاس‌ها.نام خصوصیت‌ها (فیلد‌ها).نام قابلیت‌ها (متد‌ها و توابع).نام ورودی های متد‌ها و توابع.نام متغیر‌های محلی.قبل از شروع بررسی نکات، شاه کلید نام‌گذاری را این جمله می‌دانم :به گونه‌ای نام انتخاب کنید که کدتان همانند یک نثر ادبی زیبا قابل خواندن و لذب بردن باشد.نام پروژهدر این بخش بررسی خاصی غیر از این نکته وجود ندارد که نام‌گذاری پروژه ها بهتر است بر اساس نوع معماری مورد استفاده به سادگی قابل درک باشد.برای مثال در پروژه درصورتی که بخش‌هایی برای انجام فعالیت های سطح Domain وجود دارد انتخاب یک نام مانند MainProjectName.DomainService می‌تواند در اولین برخورد بدون درگیرکردن ذهن خواننده به راحتی محتوایات پروژه را بدون باز کردن توصیف کند.یکی از اصلی ترین اهداف در نامگذاری درست،درگیر نکردن ذهن خواننده اتلاف وقت وی برای بررسی بیشتر می‌باشد.نام پوشه‌هامعمولا در مدت توسعه نرم افزار، در جهت مدیریت بهتر فایل ها از پوشه های استفاده می‌کنیم.نکته مهم در استفاده از پوشه ها توجه به عمقی است که با ساختن پوشه های تو در تو اعمال می‌کنیم.برای مثال مورد زیر را درنظر بگیرید :یک Task با این تعریف داریم : ساخت کلاسی در جهت پردازش مالیات برای مشتریان حقوقی.نگاهی به عمق درخت تشکیل دهنده مناسب برای این کلاس بیندازید :برای کلاس اصلی :src &gt; MainProjectName &gt; DomainService &gt; TaxCalculation &gt; LegalCustomersTaxCalculationService.csبرای کلاس تست مربوط به کلاس اصلی :src &gt; MainProjectName &gt; DomainServiceTests &gt; TaxCalculation &gt; LegalCustomersTaxCalculationServiceTests.csدر این حالت بهینه عمق درخت فایل 5 می‌باشد، یعنی در صورت راهبری به وسیله ماوس، به حداقل 5 کلیک نیاز می‌باشد.حال ساختار زیر را درنظر بگیرید :برای کلاس اصلی :src &gt; MainProjectName &gt; DomainService &gt; Tax &gt; LegealCustomers &gt;  TaxCalculationService.csبرای کلاس تست مربوط به کلاس اصلی :src &gt; MainProjectName &gt; DomainServiceTests &gt; Tax &gt;  LegalCustomers &gt;  TaxCalculationServiceTests.csبا یک تصمیم اشتباه عمق درخت به 6 واحد رسید.این درحالی است که فقط عمق درخت برای افزایش کلیک‌ها بررسی شده و هنوز به مقوله namespace ها نپرداخته‌ایم ! نام فایل‌هابه کرات در پروژه‌های مختلف شاهد این مورد بوده ام که فایل‌هایی مانند :Text1.txt / Class1.cs /style.css / a.cs / java.java / a.ts / main.js / ...در پروژه‌ها ساخته می‌شوند ! یکی از اصلی ترین قوانین کد تمیز، تولید مصنوعاتی است که قابلیت حدس محتوایات و کارکرد آنها بدون بازرسی داخل آنها وجود داشته باشد.همیشه نام هایی انتخاب کنید که دو خصیصه اصلی زیر را دارا باشند :قابلیت حدس محتویات آن و مورد کاربرد آن وجود دارد.قابلیت جست‌و‌جو داشته باشند.احتمالا لطیفه‌هایی که در زمینه انتخاب نام برای توسعه دهندگان در سطح اینترنت وجود دارد را مشاهده کرده‌اید.در واقع این به ظاهر لطیفه ها حقیقتی تلخ در توسعه نرم افزار می‌باشد.انتخاب نام در توسعه کد نام namespace هابا افزایش طول درخت فایل‌ها، namespace ها نیز معمولا افزایش پیدا می‌کنند.افزایش طول namespace ها به برخلاف افزایش طول فایل ها، کلیک را افزایش نمی‌دهد، بلکه منجر به تایپ بیشتر توسعه دهنده ها و همچنین از ریخت افتادن کد ها می‌شود.البته نباید این مورد را نادیده گرفت که به لطف کامپایلر ها و IDE های فعلی این موارد کمتر به چشم می‌آید-استفاده از کلید واژه‌هایی مانند : using/import کار توسعه دهنده بسیار راحت تر شده است - ولی نکته مهم در افزایش طول namespace ها تولید کلاس‌هایی با اسم های unique تر خواهیم بود.برای مثال :با کنترل namespace ها می‌‎توان :MainProjectName.DomainService.Tax.LegealCustomers.TaxCalculation.TaxCalculationService.csبهMainProjectName.DomainService.TaxCalculation.LegalCustomersTaxCalculationService.csتغییر داد، که علاوه بر خوانایی بهتر از ساخت نام های عمومی - TaxCalculationService- که قادر به حدس محتویات آن بدون باز کردن و مطالعه آن نیستیم، جلوگیری می‌کند.یکی دیگر از مواردی که در نام‌گذاری namespace ها اهمیت دارد، انتخاب نام هایی است که با خواندن آن، خواننده به صورت مرحله به مرحله توانایی حدس مورد استفاده زیر مجموعه ها را داشته باشد.برای مثال توجه شما را به یکی از namespace های معروف در dot net framework است جلب می‎‌کنم :System.IO.Fileبرداشت های اولیه از این namespace، دست شما را گرفته و مرحله به مرحله مشخص می کنید که :از ابزار های سیستم عاملی ، در زیرمجموعه فعالیت های I/O ، فعالیت های مربوط به کارکردن با File ها در این namespace قرار دارد.نکته آخر در نام‌گذاری namespace ها این مورد است که لزوما نام namespace ها با سختار پوشه ای آن می‌تواند یکسان نباشد.این مورد در تیم‌های بزرگ دیده می‌شود.</description>
                <category>مسعود دانش پور</category>
                <author>مسعود دانش پور</author>
                <pubDate>Wed, 16 Jan 2019 19:09:44 +0330</pubDate>
            </item>
                    <item>
                <title>توسعه کد برای مجالس ! - قسمت صفر</title>
                <link>https://virgool.io/@mdp/%D8%AA%D9%88%D8%B3%D8%B9%D9%87-%DA%A9%D8%AF-%D8%A8%D8%B1%D8%A7%DB%8C-%D9%85%D8%AC%D8%A7%D9%84%D8%B3-jvjv33gadzua</link>
                <description>توسعه کد تمیزهمه ما به عنوان #توسعه_دهنده برای توسعه نرم افزار از کد ها استفاده می‌کنیم.کد ها به نوبه خود کلماتی متشکل از حروف انگلیسی به همراه اعداد و کاراکتر های نمایشی هستند.نوشتن کد کار عجیب و یا خیلی خارق العاده ای نیست.کافیه یکسری اصول اولیه را بدانید تا بتوانید نیاز های خودتون رو در قالب نرم افزار توسعه بدید.ولی همونطور که می‌دانید همه ماجرا تایپ کد ها نیست.توسعه نرم افزار یک کار مهندسی است.مهندسی در لغت این طور تعریف می‌شود: کاربرد خلاقانه اصول علمی برای طراحی یا توسعه ساختارها، ماشین‌ها، ابزار یا فرآیندهای ساخت یا برای کار
 جداگانه و همراه با آن‌ها یا ساخت و به‌کارگیری موارد مشابه با آگاهی کامل از طراحی آن‌ها یا پیش‌بینی
 عملکرد آن‌ها تحت شرایط عملیاتی خاص و به عنوان یک نقش اقتصاد عملیاتی یا امنیت زندگی یا دارایی به 
 آن‌ها احترام گذاشته می‌شود. 
 
 ویکی‌پدیا فارسیمهندسی نرم افزار نیز از این قوانین و تعاریف جدا نیست.برای تولید محصولات با کیفیت با دید مهندسی به خلاقیت و یک سری اصول علمی نیاز داریم.بحث خلاقیت موضوع بحث این نوشتار نیست،و در مقابل اصول علمی و عملی هدف این نوشتار را تشکیع می دهند.یکی از این اصول مهم در توسعه نرم افزار،توسعه کدی باکیفیت می‌باشد که در دنیای نرم افزار به آن کد تمیز و یا Clean-Code گفته می‌شود.در دنیای توسعه نرم افزار اساتید بزرگی در این رابطه صحبت و کتاب ها نوشته اند.برای مثال: کتاب کد تمیز، نوشته Robert.c Martin یکی از معروف ترین این کتاب ها می‌باشد.به واسطه نوبت من برای ارائه در Tech Hours شرکت، موضوعی رو انتخاب کردم برای ارائه که برای خودم جذابیت داشت.اون هم موضوع کد تمیز بود.تصمیم گرفتم برداشت های شخصی خودم از سه کتاب Clean-Code و Code-Complete و Pragmatic-Programmer رو به صورت خلاصه بنویسم.تاکید می‌کنم که این نوشته برداشت شخصی من به همراه تجربیاتم در دوران کاریم هست و ممکنه همه با اونا موافق نباشند.قسمت های مختلف این سری نوشتار به شرح زیر می‌باشد:- نام گذاری قسمت اولاین لیست در طول مدت تکمیل می‌شود.</description>
                <category>مسعود دانش پور</category>
                <author>مسعود دانش پور</author>
                <pubDate>Mon, 14 Jan 2019 17:07:27 +0330</pubDate>
            </item>
            </channel>
</rss>