کلیدهای میانبری که شما را تبدیل به یک اسب بالدار می کند

2 هفته پیش | 88 مشاهده شده
کلید های میانبر

کلیدهای میانبر راهی سریع برای انجام کارهاست، تنها با فشار دادن هم زمان چند کلید! اما اهمیت کلید های میانبر کجاست؟ وقتی که ثانیه ثانیه ی زمان برای ما اهمیت داشته باشد. با کلید های میانبر شما از موس بی نیاز خواهید شد. همه چیز را به سرعت ثایپ خواهید کرد. کارها با سرعت بسیار بالایی انجام خواهید داد. در این پست کلید های میانبری که زیاد از آن استفاده می کنم به اشتراک می گذارم. به خاطر هماهنگی سعی کرده ام کلید های میان بر را شخصی سازی کنم. در ویندوز و لینوکس کلید های میانبری که استفاده می کنم یکسان است. برای مثال برای باز کردن کروم در ویندوز یا کرومیوم در لینوکس کلید میانبر یکسانی استفاده می می کنم.

در تعریف کلید های میانبر سعی شده است، از افراط جلوگیری شود. فقط کلید های میانبری که نقش موس را برای ما ایفا می کنند، تمرکز شده است. پرداختن به کلید های میانبر ضرروی و مهم، هدف این نوشتار است وگرنه این داستان سر درازی دارد. برای مطالعه بیشتردر مورد کلید های میانبر به این لینک مراجعه شود. از طرفی فرض شده کاربر ده انگشتی تایپ می کند.

گردش در انتخاب ها

اولین کلید، کلید Tab می باشد. این کلید نقش انتخاب کننده از بین چند گزینه ایفا می کند. شما بدون موس هم می توانید بین گزینه های مختلف گردش کنید این کار را کلید Tab انجام می دهد. در صورتی که بخواهید بین برنامه های باز شده گردش کنید کافی است کلید Alt+Tab را استفاده کنید.

کلید ویندوز

با فشار کردن کلید Win منوی استارت برای شما نمایش داده می شود. فشار دادن کلید های Win+E برنامه پیش فرض مدیریت فایل ها(در ویندوز File explorer) باز خواهد شد. کلید های Win+D باعث ماکسیمایز(فارسی اش بزرگ کردن پنجره) و مینیمایز شدن(کوچک کردن پنجره) پنجره می شود. کلیدهای Win+R برنامه Run را برای شما اجرا می کند. کلید های Win+L باعث لاگ اف شدن سیستم می شود.

بسته شدن پنجره ها

برای بسته شدن نرم افزای که باز است کافی است کلید های Alt+F4 را فشار دهید. برای خاموش کردن سیستم کافی است Alt+F4 را در دسکتاپ(میز کار) فشار دهید. پنجره شامل لاگ اف کردن، هایبرنیت کردن و غیره باز می شود، شما با کلید Tab قادر به انتخاب آنها هستید. فشار دادن کلید های Ctrl+Alt+Shift+H باعث هایبرنیت شدن سیستم شما می شود.

تذکر:کلید Enter نقش کلیک چپ موس را ایفا می کند. در صفحه کلید ها کلید Shift+F10 هم نقش کلیک راست را برای شما ایفا می کند. برای تمام صفحه کردن پنجره از کلید F11 استفاده کنید. اگر برنامه نویس هستید برای کامپایل کردن کد Ctrl+F5 استفاده کنید.

کلیدهای میانبر شخصی سازی شده برای باز کردن نرم افزارهای پر کاربرد

نرم افزارهای مانند گوگل کروم، نوت پد پلاس پلاس، پی اچ پی استورم، گیت و تاندربرد از پر استفاده ترین ها برای من است. برای باز کردن این نرم افزار ها از کلید های Alt+Ctrl+نام اول نرم افزار استفاده می کنم. مثلا برای باز کردن گیت از کلید ترکیبی Alt+Ctrl+G استفاده می کنم. برای باز کردن گوگل کروم از Alt+Ctrl+C استفاه می کنم.



ادامه خواندن


داده هایت را مراقبت کن، به شخص سوم نسپار(هر خطای ممکن رخ خواهد داد)

2 ماه پیش | 1014 مشاهده شده
داده هایت را مراقبت کن

نوشتن در این وبلاگ (وبلاگ استک دیزاین) از اوایل سال 2017 شروع کردم. روز های اول وبلاگ نویس خوبی نبودم، اما با خودم می گفتم بالاخره باید حرکت کنم، حتی اگر شروع خوبی نداشته باشم.( معمولا ازاوایل دوران دبیرستان خاطرات و افکارم را در دفترهایم می نوشتم. اما اواخر دبیرستان به رسانه های دیجیتال روی آوردم  و بعد از آن دوران، نوشتن در در دفتر خاطراتم کمرنگ شد.)  این که یک فرد چقدر خوب می نویسد، مهم نیست، مهم این است دست نوشته ها و یادداشت های به ظاهر ساده و غیر حرفه ای اثرات مثبتی بر روی نویسنده اش خواهد گذاشت. همین نوشته ها و یادداشت های روزانه به ظاهر ساده و بی ارزش برای دیگران، برای خود نویسنده بسیار باارزش و حیاتی است. اما این همه مقدمه چینی هدفش چی بود. بله موضوع مورد بحث داستان وبلاگم است که به خاطر سهل نگاری ام یادداشت های با ارزشم (حداقل برای خودم) در حال نابودی بود. پس بهترین توصیه برای اینترنت این دوران ، “داده هایت را مراقبت کن” به خودم و دوستانم گوشزد می کنم.

شروع یک تراژدی

اول هفته با یک اتفاق ناگوار شروع شد، دندانم درد گرفت، پس کار مهم این هفته مشخص شده بود، باید به دندان پزشک مراجعه می کردم. در حالی که دنبال یک دندان پزشک خوب و قیمت مناسب(تلفن کردن به دوستان و اعضای خانواده ام) بودم، متوجه شدم که اکانت گیت هابم یک هشدار زرد رنگ نشان می دهد. کامل تر که خواندم شستم خبر دار شد، باید به زودی فایل هایم را  بک اپ(فارسی اش پشتیبان گیری کنم) بگیرم (برخی از کدهایم  هم بر روی گیت لب قرار داده بودم.). اما این هفته سرم شلوغ بود. از طرفی مردد بودم فایل هایم را به کجا انتقال بدهم. باید صبر می کردم، با دوستانم مشورتی می کردم، تا ببینم مسئله گیت هاب چقدر جدی شده است.

Due to U.S. trade controls law restrictions, your GitHub account has been restricted. This means we have suspended access to private repository services and paid services for your account. For free individual accounts, you still have access to free GitHub public repository services (such as public repositories for open source projects and associated GitHub Pages and Gists). If you believe your account has been flagged in error, and you are not located in or resident in a sanctioned region, please file an appeal. Please read about GitHub and Trade Controls for more information.

اما این همه ی ماجرا نبود، در حینی که به وبلاگم رجوع کردم، هاست بنده خطا داشت. به بخش تیکت های شرکت هاستینگ رفتم، متوجه شدم هاست بنده تعلیق گشته است. از من در خواست کرده بودند، وبلاگ خود را به هاست دیگری انتقال دهم. علت این مورد هم نگذاشتن لینک شرکت هاستینگ (بخونید زیر بار حرف غیر منطقی نمی روم ) در وبلاگم بود. با توجه به این هشدار با شرکت بحثی نکردم. تصمیم گرفتم وبلاگم را به هاست دیگری انتقال بدهم. اما کجای ماجرا مشکل خوردم؟ شرکت اظهار کرده بود، برای رفع تعلیق و برداشت آخرین فایل ها تیکت بزنید. اما زمانی که می خواستم تیکتی ایجاد کنم تا در خواستم برای رفع تعلیق (جهت انتقال به هاست دیگر) به اطلاع شرکت هاستینگ برسانم، مشکلی پیش آمد. بخش تیکت ها غیر فعال شده بود. سعی کردم با تلفن ثابت شرکت تماس بگیرم، اما علی رغم اینکه سه بار تلاش کردم، موفق نشدم. در نهایت با ابزار چت آنلاینی که در بخش فروش هاست بود، پیامم را به آن ها منتقل کردم، اما با پررویی تمام هیچ اقدامی انجام ندادند. در افکار پی گیری برای آخرین فایل های وبلاگم و کدهای گیت هابم غرق شده بودم که ناگهان دندان درد یادم آورد هرچه سریعتر باید به دندان پزشکی بروم. به دندان پزشکی مراجعه کردم، دو روز درگیر عصب کشی و ترمیم شدم. در نهایت هم حال خوبی نداشتم و سرم خیلی شلوغ بود. چاره ای نبود تصمیم گرفتم کارهای بک آپ را در دفترچه ام بنویسم. انجام آن کارها را به هفته بعد موکول کردم. هرچند یک نگرانی و ناراحتی بابت داده هایم باید تحمل می کردم. 

تلاش برای رقم زدن یک پایان خوب

یاد قانون مرحوم مرفی افتادم. هر خطای ممکن رخ خواهد داد(همیشه همه چیزها در بدترین و نامناسبترین زمان به خطا می‌روند و کارها را لنگ می‌گذارند. معمولاً هنگامی که شخصی همواره بدشانسی می‌آورد او را مشمول قانون مورفی می‌نامند. من هم حقیقا آن روز مشمول این قانون شده بودم). خوب شانس آوردم مشکل دندان پزشکی ام کامل حل شد، حداقل از شر دندان درد خلاص شدم. اما من موندم یک دفترچه که روی آن نوشته بود، برای نجات فایل ها یک کاری بکن. برای گیت هاب و گیت لب مشکل زیادی نداشتم چند ساعتی صرف کردم، تمام  فایل هایم را در جاهای مختلف هارد اکسترنال، سایت های دانلودی مثل پیکوفایل و گوگل درایو انتقال دادم( هرچند به علت تحریم های روز افزون سرویس های خارجی کماکان سابق برای سرویس رسانی مطمئن نیستند، نگرانی بستن اکانت در هر لحظه در این سرویس ها وجود دارد). اما برای وبلاگم ناراحت بودم، نوشته های شش ماه وبلاگم از بین می رفت، این مورد من را خیلی ناراحت می کرد. اما داشتم برای راه حلش فکری می کردم( شرکت هاستینگ مورد بحث که اصلا راهی نگذاشته بود، به حساب خودشقانونش را اجرا می کرد) . همین حین که فکر می کردم، پوشه های دانلود ویندوز را بررسی کردم، باورم نمی شد، یک بک اپ از هاست وبلاگم برای یک ماه قبل پیدا کردم. در آن لحظه خیلی خوشحال شدم، وبلاگ چندین ساله ام از خطر نابود شدن نجات پیدا کرده بود. علی رغم اینکه کمتر از هزار کلمه  از وبلاگم  موفق به بازگردانی آن نشدم، اما این دیتای جز در برابر دیتای کل وبلاگم دیتای ناچیزی بود.

و اما کلام آخر

تکنولوژی وب با همکاری دانشمندان زیادی توسعه داده شد. اما با این وجود نام تیم برنرز لی به عنوان مخترع وب در اکثر مقالات انعکاس داده شده است. این دانشمند زبان اچ تی ام ال را طراحی و توسعه داد. سرانجام با انتشار آزاد این زبان، اچ تی ام ال به عنوان زبان جهانی وب انتخاب شد(در سال های بعد با توسعه ی زبان های دیگر موارد دیگری به وب اضافه شد. اما نقطه شروع این حرکت یعنی وب جهانی به تیم برنرز لی نسبت داده شده است ).

به گفتهٔ تیم برنرزلی، وب هم مانند بیشتر انسان‌ها پس از ۲۰ سالگی به مرحله اصلی شکوفایی خود رسیده‌است. او به روزنامه استاندارد چاپ اتریش گفته‌است که ما هنوز در سطح باقی مانده‌ایم و از تمام توانایی‌های وب استفاده نمی‌کنیم. خالق وب همزمان همگان را فرا خوانده تا از توانایی‌ها، خلاقیت و دانش خود برای گسترش امکانات اینترنت استفاده کنند.

اما کلام آخر چه ربطی به نوشته هایم دارد. متاسفانه ما با گذر زمان به جای نزدیک شدن به اینترنت آزاد و رعایت حقوق کاربران و حفظ کردن همین سطح از مفید بودن اینترنت دچار عقب گرد شده ایم(هر چند کاربران ایرانی از هر دو طرف مورد کم لطفی قرار گرفته اند). شرایط استفاده از خدمات (Terms of Service) اینترنتی کاملا انحصار طلبانه و حالت ارباب برده (Master/Slave) پیدا کرده است. داستان هنگامی غم انگیز تر می شود که سرویس های وفادار و مستقل یکی بعد از دیگری در حال فروپاشی هستند. پس با شرایط استفاده از خدمات بی چون و چرای سرویس های اینترنتی توصیه می کنم به هیچ سرویسی شخص سومی (داخلی و خارجی) اعتماد نکنید. خلاصه کلام داده هایت را مراقبت کن. چیزی که برای آن ها مهم نیست حقوق کاربران است. شاید اینترنت دوران سال های 2000 و قبل از آن و اوج یاهو و یاهو مسنجر و غیره بهترین دوران اینترنت( بخوانید زیباترین دوران) برای من بود. اینترنت آینده برای من دیگر دوست داشتنی نیست، بلکه رعب آور است.

لینک مطلب داده هایت را مراقبت کن ، به شخص سوم نسپار(هر خطای ممکن رخ خواهد داد) در ویرگول



کدام برای یادگیری بهتر است: تماشای دوره های آموزش آنلاین یا خواندن کتاب

2 ماه پیش | 343 مشاهده شده
یادگیری بهتر با کتاب

با گسترش دنیای فناوری اطلاعات ابزارهای یادگیری (به ویژه برای حوزه برنامه نویسی) بسیار متنوع گشته است. شما برای شروع برنامه نویسی انتخاب های زیادی دارید. کمپ های فشرده برنامه نویسی، کلاس های حضوری، خرید کتاب های آموزشی، سایت های آموزشی تولید محتوا (مانند توتوریال پوینت وسکان آکادمی) و سایت های آموزش ویدیویی (مانند لیندا ، کورسرا)  و غیره در سال های اخیر بیشتر مورد استقبال قرار گرفته است. حال سوال من این است به نظر شما این درست است که یادگیری بهتر با کتاب محقق می شود.

اکثر این سایت ها برای آموزش و یادگیری و ارتقا دانش خودم استفاده کرده ام. ولی بعد از تجربه کردن این منابع و راهکارهای آموزشی احساس می کنم هیچ کدام از این منابع آموزشی قابلیت رقابت با کتاب را ندارند. هر کدام از موارد بالا دارای مزایا و معایبی هستنند ولی برای یادگیری عمیق تر و حرفه ای شدن راهی جز کتاب خواندن (خط به خط و عمیق اندیشیدن و حتی شروع به وبلاگ نویسی برای تثبیت مطالب) ندارید. در این جا شرح یادگیری بهتر با کتاب در خدمتون هستم. بالاخره بعد از مدت ها فرصت پیدا کردم تا اولین نوشته ام را در ویرگول منتشر کنم، نوشته های گذشته در وبلاگم منتشر شده است.

تذکر: در تعریف کتاب تمام اشکال انتشار آن، کتب کاغذی و کتب الکترونیکی شامل می شود. در کتاب با عملی از جنس خواندن سر وکارداریم. ویدیو شامل ویدیو های سایت های آموزش آنلاین و حتی یوتوب و غیره است. در ویدیو با عملی از جنس صدا و تصویر رو به رو می شویم.

چرا کتاب هنوز برای من ارزش بیشتری دارد

تنظیم سرعت خواندن

هنگامی که کتاب را ورق می زنم شروع به خواندن می کنم، برخی از پاراگراف ها را با سرعت بیشتر و یک نگاه اجمالی (Skimming) می خونم. اما برخی مباحث را نه تنها خط به خط خوانده بلکه چندین روز در آن فصل و صفحات مانده وعمیق اندیشیده ام. یکی از ویژگی های شاخص کتاب این است که سرعت خواندن بخش های مختلف کتاب را خودتون تعیین می کنید.

فهم عمیق تر

در کتاب ها مباحث ریاضی وار و الگوریتمی و حتی بهینه سازی کد بحث می گردد. این ها مباحثی هستند که با گذر سال ها تغییر چندانی نمی کنند. در صورتی که در ویدیو های آموزشی بیشتر سینتکس ها بحث می شود. سینتکس های اطلاعات فنی هستند که با گذر زمان و اپدیت های ابزارهای برنامه نویسی تغییر می کنند. پس مزیت دیگر کتاب این است شما با یک تیر دو نشان می زنید سینتکس زبان را فرا می گیرید، علاوه بر آن با مباحث الگوریتمی و عمیق تر و حتی مسایلی دشواری که احتمال روبه رو شدن با آن ها در آینده نزدیک خیلی زیاد است، آشنا می شوید.

جامع بودن در کنار ایجاز

اگر ویدیو های آموزشی مانند کتاب های مرجع ، جامعیت مباحث را حفظ کنند و تمام سرفصلها را در دوره آموزشی ارائه کنند، زمان ویدیو های آموزشی بسیار زیاد شده، دانشجو ها (به علت احساس اتلاف وقت) استقبال چشم گیری نمی کنند. پس ویدیو ها باید تا حد امکان مختصر و مفید باشند. کتاب ها در عین جامعیت، مختصر و مفید بودن با خود به ارمغان آورده اند. هم برای افراد مبتدی مناسب خواهد بود، هم برای کسانی به سطح حرفه ای می رسند.

جستجوی راحت

در کتاب (با داشتنن فهرست و نمایه) جستجو در مورد کلمات کلیدی و مباحثی که فراموش کرده ایم، خیلی سریعتر جوابمان را می گیریم. در صورتی که بارها شده یک بحث خاص را در مجموعه ویدیو جستجو کرده، وقت زیادی از من تلف کرده است. خلاصه کلام جستجو در کتاب خیلی راحت تر است.

سند بودن

اگر پژوهش گر هستید، قصد دارید سمینارها و مقالاتی را در آینده نزدیک ارائه کنید. قطعا توصیه من باز هم کتاب است. چرا؟ جامعه آکادمیک و داوران مقالات علمی آی اس ای، چیزی جز کتاب و مقالات را به عنوان اساس و مرجع کار قبول نخواهند کرد. کتاب در برابر ویدیو به عنوان مدرک اثبات پروپوزالمان(فارسی شده اش پیشنهاده) مثل دلار در برابر ریال است.

واقع گرایی

در کتاب یک کلاغ ، چهل کلاغ وجود ندارد. اکثر اساتیدی که ویدیو های آموزشی را پر می کنند، یک ویژگی مشترک دارند. همه ی آن ها در جامعه آکادمیک کتاب هایی را خوانده، قصد دارند روایت وار این کتاب را برای شما به تصویر بکشند. اما این روایت ها در ویدیو های مختلف گاهی چندان هماهنگ نیست، چاره چیست؟ به سرچشمه اصلی یعنی کتاب مراجعه کنید. مثلا می خواهید زبان سی یا سی پلاس پلاس را یاد بگیرید، اگر کتاب دنیس ریچی یا بی‌یارنه استراس‌تروپ را نخوانده باشید، قطعا تا حرفه ای شدن خیلی فاصله دارید حتی ممکنه خودتون هم خبر نداشته باشید! هرچیزی را از سرچمشه اصلی اش دنبال کنید. برای یادگیری بهتر با کتاب انس بگیرید. حتی اگر سختی های زیادی بر شما تحمیل شود.

تذکر: این بحث در مورد کتاب های ترجمه هم وجود دارد. برای اینکه به هدف یادگیری بهتر با کتاب به طور کامل دست یابید زبان انگلیسی خود را قوی کنید، سعی کنید کتاب ها را زبان اصلی بخوانید. در غیر این صورت بدون شک در یک سری مفاهیم (در کتاب های ترجمه) دچار کج فهمی خواهید شد.

منظورت این است که از کتاب ها استفاده کنیم از ویدیو ها استفاده نکنیم؟

منظورم این نیست که ویدیو ها و سایت های آموزشی استفاده نکنیم. قطعا ویدیو ها هم دارای مزیت هایی هستند. مکانیسم آموزش از طریق خواندن کتاب نسبت به تماشای ویدیو کند تر خواهد بود. اما کتاب لایه های عمیق تری از موضوع را به شما یاد می دهد. پس بهتر است آموزش را با ویدیو و دوره های آموزش آنلاین شروع کنیم، اما به آن ها اکتفا نکنیم. خلاصه کلام اسب را گم نکنید پی نعلش بگردید. پس علاوه بر ویدیو ها یادگیری بهتر با کتاب را فراموش نکنید.



دانلود اپلیکشن وبلاگ

4 ماه پیش | 143 مشاهده شده
اپلیکشن اندروید استک دیزاین

با توجه به افزایش کاربران موبایل چند ماهی بود  در فکر توسعه یک اپلیکشن موبایل برای  وبلاگ های وردپرسی بودم، اما متاسفانه به علت های گوناگون این امر محقق نشد.  در نهایت بعد از مدتی کار کردن بر روی اپلیشکن وبلاگ استک دیزاین امروز نسخه ی اولیه از اون را را منتشر کردم تا درآینده نزدیک به زودی تکمیل شود، لینک دانلود آخرین اپدیت در این صفحه به اشتراک می گذارم.

 

ادامه خواندن


وبلاگ چیت شیت

1 سال پیش | 187 مشاهده شده

وبلاگی جدید در بلاگفا  به نام چپیت شیت به راه انداخته ام که سعی می کنم نه تنها یک سری نکات جالب، مفید اشتراک بگذارم بلکه  وب سایت ها و لینک های کاربردی را معرفی کنم. متن طولانی و مقاله مانندی برای آنها نخواهم نوشت بلکه سعی می کنم به صورت خیلی ساده و فشرده آنها را بیان کنم. یا به عبارتی عنوان  یک دست نوشته برای مرور کردن سریع کاربرد دارد.



ادامه خواندن



نحوه توصیف الگوهای طراحی

1 سال پیش | 115 مشاهده شده

وقتی کتابی لیستی از الگوهای طراحی در خود دارد دارای توضیحات خلاصه واری برای توصیف الگوی طراحی در ابتدای آن آورده می شود. این توضیحات خلاصه وار ما را در انتخاب الگوی طراحی موردنیازمان مان یاری می دهد.

اطلاعات در اسناد الگوی طراحی به شرح زیر خواهد بود:

نام و طبقه بندی الگو:

نام الگوی دقیقا ماهیت الگو را مشخص می کند. یک نام خوب یک کلید است زیرا آن کلید بخشی از واژگان طراحی ما خواهد شد. طبقه بندی نوع الگو را مشخص می کند.

قصد:

یک بیانیه کوتاه که به ما می گوید که الگوی انجام شده چیست و کدام  مشکل طراحی را رفع می کند.

همچنین به عنوان نام دیگر شناخته شده برای الگو، اگر وجود داشته باشد.

انگیزه:

یک سناریو که یک مشکل طراحی را نشان می دهد و نحوه ساختار کلاس و شیء آن مشکل را حل می کند. این سناریو به ما در درک تعریف الگوی انتزاعی کمک می کند.

کاربرد:

این مشخص می کند که در چه شرایطی الگوی طراحی می تواند مورد استفاده قرار گیرد. نمونه هایی از طرح های ضعیف که الگوی می تواند به آن پاسخ دهد کدامند؟ چگونه این موارد را تشخیص دهیم؟

ساختار:

نمایش گرافیکی از کلاس های درگیر در الگوی با استفاده از  تکنیک مدل سازی شی (OMT). ما همچنین از نمودارهای تعامل برای نشان دادن توالی درخواست ها و همکاری بین اشیا استفاده می کنیم.

شركت كنندگان:

کلاس ها و / یا اشیاء شرکت کننده در الگوی و مسئولیت های آنها.

همکاری:

چگونه طبقات و اشیاء همکاری می کنند تا مسئولیت های خود را انجام دهند.

عواقب:

به ما می گوید که هزینه ها و مزایای استفاده از الگو چیست. همچنین به ما می گوید که بخشی از سیستم را می توان مستقل تغییر داد.

پیاده سازی:

مشخص می کند چه تکنیک هایی باید در هنگام اجرای الگوریتم از آن آگاه باشیم و همچنین در مورد مسائل خاص زبان صحبت می کند.

کد نمونه:

قطعه کد که ما را به چگونگی اجرای الگوی در جاوا یا زبانهای دیگر می دهد.

استفاده های شناخته شده:

مثال استفاده از الگوها در دنیای واقعی

الگوهای مرتبط:

مشخص می کند که الگوهای دیگر مربوط به این الگو هستند و تفاوت بین آنها چیست.

 



دسته بندی الگوهای طراحی

1 سال پیش | 106 مشاهده شده

در مهندسی نرم‌افزار، الگوی طراحی (به انگلیسی: Design Pattern) یک راه‌حل عمومی قابل تکرار برای مشکلات متداول در زمینه طراحی نرم‌افزار است. الگوی طراحی، یک طراحی تمام‌شده نیست که به صورت مستقیم بتواند تبدیل به کد منبع یا ماشین شود؛ بلکه، یک توضیح یا قالب برای حل یک مسئله در شرایط مختلف است.

الگوها در واقع بهترین روش ممکن هستند که یک برنامه‌نویس می‌تواند در هنگام طراحی یک برنامه برای حل مشکلاتش از آن‌ها استفاده کند. الگوهای طراحی شیءگرا نوعاً نشان‌دهندۀ روابط و تعامل‌ها بین کلاس‌ها و شیء‌ها هستند، بدون این‌که کلاس‌ها یا اشیا نهایی برنامه را مشخص کند.

بحث Design Pattern برای اولین بار در دنیای نرم‌افزار توسط GoF صورت گرفت. یک گروه چهار نفره شامل: Erich Gamma ،Richard Helm ،Ralph Johnson و John Vlissides ملقب به Gang of Four یا GoF هستند.

این گروه در ۲۱ اکتبر سال ۱۹۹۴ کتابی را تحت عنوان Design Patterns: Elements of Reusable Object-Oriented Software منتشر کردند. (این کتاب تا تاریخ آوریل ۲۰۰۷، سی و ۶ بار تجدید چاپ شده است)

آنها در این کتاب ۲۳ الگوی طراحی کلاسیک را با زبان‌های شی گرا مطرح در آن زمان (++C و Smalltalk) برای اولین بار مورد بحث قرار دادند

برای یادگیری الگوهای طراحی یکی از بهترین کتاب ها برای شروع همین کتاب GoF است، که بنده هم این کتاب را مطالعه کرده ام. الگوهای طراحی در این کتاب از دو نظر دسته بندی شده است.بیشتر الگوهای طراحی را با استفاده از دو معیار طبقه بندی کنید:  هدف(purpose) و دامنه(Scope). هدف منعکس‌کننده آنچه یک الگو انجام می دهداست. دامنه مشخص می کند الگوهای کلاس با رابطه بین کلاس ها و زیر کلاس های آنها ارتباط دارد. روابط از طریق ارث بری آغاز می شود. هدف الگوهای طراحی را به دسته های زیر تقسیم بندی می کند.



ادامه خواندن



تکه تکه (گرانولی) در شی گرایی

1 سال پیش | 117 مشاهده شده

برای برنامه نویسی شی گرایی روش های مختلفی برای ساخت کلاس ها و اشیا وجود دارد اما اگر تعداد اشیا بیش از اندازه باشد باعث ایجاد مشکلاتی خواهد شد که در اینجا به آن خواهم پرداخت.

اشیا تکه تکه  (Granularity) یا  اشیا گرانولی بودن  در طراحی شی گرا به معنی این است که  اشیایی   که معمولا تکه تکه و تعداد آنها زیاد است. اشیاء این طراحی  گرانولی، آنهایی هستند که جزئیات کمتری در برنامه شما دارند. در نظر گرفتن:

درختان در چشم انداز بازی
شخصیت ها در سند
صندلی در سینما
نقاط قدرت در برنامه CAD

معمولا شما در برنامه کاربردی بسیاری از اشیاء گرانولی دارید. اگر شما یک شی جداگانه برای هر درخت / کاراکتر / صندلی / CAD ایجاد کنید، این امر می تواند بسیار حافظه مصرف کند. این مشکل است که توسط الگوی  Flyweight حل  شده است.



زبان برنامه نویسی منطقی پرولوگ

1 سال پیش | 108 مشاهده شده

پرولوگ یک زبان برنامه‌نویسی منطقی چند منظوره مبتنی بر مفاهیم هوش مصنوعی و زبان‌شناسی محاسباتی است. این زبان بر پایه منطق ریاضی بنا نهاده شده و آن را به عنوان زبان کاملاً منطقی می‌شناسند و حتی به آن پرلوگ خالص نیز اطلاق می‌شود و می‌توان گفت متفاوت از سایر زبان‌های برنامه‌نویسی است.



تست جامعیت نرم افزار

1 سال پیش | 93 مشاهده شده

تست جامعیت (گاهی اوقات به عنوان یکپارچه سازی و تست به اختصار I & T نامیده می شود) فاز تست نرم افزاری است که در آن ماژول های نرم افزاری یکپارچه به عنوان یک گروه تست شده و آزمایش می شوند. این تست پس از آزمایش واحد و قبل از آزمون اعتبار سنجی انجام می گیرد.



ادامه خواندن



تست واحد نرم افزار

1 سال پیش | 109 مشاهده شده

در برنامه نویسی کامپیوتر، آزمایش واحد یک روش تست نرم افزاری است که با استفاده از آن واحدهای منحصر به فرد کد منبع، مجموعه ای از یک یا چند ماژول برنامه های کامپیوتری همراه با داده های مربوط به کنترل، روش های استفاده و روش های عملیاتی برای تعیین اینکه آیا مناسب برای استفاده هستند مورد تست قرار می گیرد .



ادامه خواندن


تست رگراسیون نرم افزار

1 سال پیش | 94 مشاهده شده

واژه رگرسیون(Regression) را از لحاظ لغوی در فرهنگ لغت به معنی پسروی، برگشت و بازگشت است. اما از دید آمار و ریاضیات به مفهوم بازگشت به یک مقدار متوسط یا میانگین به‌کارمی‌رود. بدین معنی که برخی پدیده‌ها به مرور زمان از نظر کمی به طرف یک مقدار متوسط میل می‌کنند.  در مدل‌های آماری، تحلیل رگرسیون یک فرایند آماری برای تخمین روابط بین متغیرها می‌باشد. این روش شامل تکنیک‌های زیادی برای مدل سازی و تحلیل متغیرهای خاص و منحصر بفرد، با تمرکز بر رابطه بین متغیر وابسته و یک یا چند متغیر مستقل، می باشد.



ادامه خواندن



اتنوگرافی

1 سال پیش | 113 مشاهده شده

اتنوگرافی(ethnography) یا  مردم نگاری  یک تکنیک مشاهده ای است که بر مبنای علوم اجتماعی و علم انسان شناسی استقرار یافته است. این مسئله شامل درگیر شدن و غوطه ور شدن یک محقق یا یک تیم تحقیقی در فعالیتهای هرروزه یک سازمان یا یک جامعه است ،که به طور معمول برای یک بازه زمانی طولانی مورد بررسی قرار می گیرد.



ادامه خواندن


COTS چیست

1 سال پیش | 156 مشاهده شده

محصول تجاری در  دسترس  در  بازار  (Commercial off-the-shelf) نیازهای سازمان خریدار را بدون نیاز به سفارشی سازی و یا سفارشی کردن راه حل ها  برآورده می کند. یک واژه مرتبط Mil-COTS، به محصولات COTS برای استفاده توسط ارتش ایالات متحده اشاره دارد.



ادامه خواندن