تا حالا زیاد پیش اومده وقتی یکی میگه من مدیرمحصولم
برای خیلیها سوال پیش میاد که محصول چی هست اصلا؟ خیلیها برداشتشون از محصول یه کالای قابل لمس هست؛ یا بعضی وقتها از سوال میکنن بهشون جواب میدم محصولات تکنولوژی محور میگن نه چی تولید میکنید؟!من مهدی صالحزاده هستم مدیرمحصول دکتردکتر، اگه شما هم علاقهمندین که بدونید وقتی یکی میگه مدیرمحصول منظورش از محصول چیه، این مطلب به درد شما هم میخوره میتونید با من همراه بشید.این یه سوال اساسی برای شرکت هست؛ همچنین برای خود مدیران محصول که محصول چیه؟ "محصول هرکالا فن لپ تاپ یا خدماتی هست که شما برای نیاز یا خواسته مشتری میفروشید" این تعریف ممکنه خیلی ساده به نظر بیاد، اما تو این مطلب میخوام درمورد این بگم که نسبت به خصوصیات نگاه اول مشتری و اونچه که مشتری فکر میکنه مبلغی رو برای اون پرداخته، محصولات بیشتری وجود داره.
"یه محصول میتونه فیزیکی یا مجازی باشه، کالاهای فیزیکی میتونه کالاهای"
بادوام (مثل ماشین، مبلمان، کامپیوتر و...) یا کالاهای تند مصرف (مثل نوشیدنی و غذا) باشه؛ محصولات مجازی هم میتونه خدمات یا تجربیات (مثل آموزش و نرمافزار) باشه. یک محصول هم ممکنه ترکیبی باشه و هم عناصر فیزیکی و هم عناصر مجازی رو تو خودش داشته باشه.نرمافزار رو میتونیم هم محصول، هم سرویس در نظر بگیریم، میشه نسخه فیزیکی محصول رو خرید و اونو نصب کرد، همون کاری که همیشه بصورت سنتی انجام میشده. بسیاری از محصولات نرمافزاری امروزه بصورت واقعی فروخته میشن و هیچ نسخه فیزیکی وجود نداره، اینجاست که اصطلاح نرم افزار به عنوان سرویس (SaaS) سرچشمه میگیره. این روش اکثرا یه مدل مبتنی بر وب استفاده میشه و غالبا مشتریان برای دسترسی به نرمافزار، هزینه اشتراک ماهانه یا سالانه پرداخت میکنن.احتمالا شخصی وجود داره که مسئولیت برنامهریزی و نگهداری یک محصول رو در طول چرخه عمر خودش داشته باشه که این مدیرمحصول هستش که قبلا در موردش صحبت کردیم. نقش مدیریت محصول در شرکتهای فناوری اینه که بصورت جامع درباره تجربه مشتری فکر کنند؛ اصلیترین دلیل این مورد هم اینه که مشتریان تصمیم میگیرند که بر اساس کل مجموعه تعاملاتی که با یک شرکت دارند، درباره یک محصول چه احساسی دارند و تجربه نشون داده که ارائه محصول با قیمت رقابتی برای کسب وفاداری طولانی مدت کافی نیست.
انواع مشتری در فناوری
شما میتونید با تقسیم محصولات بین دونوع مشتری اصلی «مصرف کننده» و «کسب و کار» شروع کنید. محصولات معمولا بر اساس نوع مشتری که در اون خدمت میکنند به عنوان «کسب و کار» به «کسب و کار» (B2B) یا «کسب و کار» به «مصرف کننده» (B2C) طبقه بندی میشن. دسته سومی هم وجود داره که «کسب و کار» به «کسب و کار» به «مصرف کننده» (B2B2C) وجود داره که تو ایران به مارکتپلیس میشناسیمش، تو این مدل هست که یک شرکت ار طریق کسب و کار دیگری بازار مصرف رو هدف قرار میده.نمونهاش رو میشه اسنپ فود یا علی بابا نام برد که یک طرف با کسب و کارها و در طرف دیگه با مصرف کنندهها در ارتباط هستند. یک شرکت میتونه هم مشتریهای «مصرف کننده» و هم «کسب و کار» داشته باشه، اما درک اینکه چگونه هر نوع خریداد کالایی رو خریداری و استفاده میکنه، برای محصول و استراتژی بازاریابی مهمه.
هر چی تکنولوژی روز به روز بهتر میشه هر فرایندی هم رو به بهینه تر شدن و افزایش سرعت پیش میره .همونجوری که میدونیم گوگل و بقیه موتورهای جستجو به شدت به سرعت لود سایت اهمیت میدن.چرا؟چونکه کاربران و مخاطبهای سایتها دیگه برای لود سایت صبر نمیکنن وزمان لود سایت بیشتر از 2 ثانیه بشه کاربر برای همیشه سایت شما رو میبندهچون کاربرای جدید مثل سابق صبور نیستن, پس وبسایت هایی موفق به جذب ترافیک بالا میشن که بتونن صفحات سایتشون رو برای کاربر هر چه سریعتر لود کنن.
چرا بالا بردن سرعت باز شدن سایت خیلی برامون مهم شده ؟
بارگزاری سریع موجب میشه نسبت به بقیه سایت های رقیب ترافیک بیشتری رو به سمت خودتون بیارین .
گوگل هم رضایت کاربران براش مهمه واسه همین یکی از اولین و مهمترین کارهایی که باید خیلی اهمیت داد سرعت بارگزاری صفحات سایت هستش.خب حالا بریم سراغ تشخیص سرعت وبسایتمونتست سرعت سایتیکی از ابزارهایی که میشه سرعت رو اندازه گیری کرد همین gtmetrix هستش ابزارهای دیگه ای هم هست که بشه باهاش سرعت رو اندازه گیری کرد مثل tools.pingdom.com که برای ایران که تحریمه نمیشه استفاده کرد.از طریق جی تی متریکس میتونیم متوجه بشیم سرعت سایتمون در چه حالتی هستش .معمولا ارورهایی که میده در اکثر سایت ها اتفاق میوفته شبیهه بهم هستن که برای رفع کندی سایت ها یه سری نکات مهم رو یکی یکی بهتون میگم
اسکرول نامحدود YITH Infinite Scrolling
مورد یک بعضی از سایت ها هستن که صفحه اصلیشون شامل وبلاگ یا محصولات هستش .حالا تصور کنید که برای باز کردن صفحه اصلی باید تمام این پست ها یا محصولات باز بشن که این میتونه خیلی سنگین بشه و سرعت لود رو کاهش بده.راهکار چیه؟بهتره که صفحه اصلی دارای اسکرول باشه یعنی با اسکرول لود بشه نه اینکه بصورت یکجا بارگزاری بشه اسکرول باعث میشه تیکه تیکه و با اسکرول کردن صفحه محتویات اون لود بشه.اگه وردپرس دارین میتونین افزونه Yith Infinite Scrolling رو نصب کنید .نصب افزونه های کاربردی وردپرس مورد دوم یه سری افزونه و ابزارک هایی هستن که درون صفحه سایتمون قرار میدیم که تعدادشون خیلی زیاده .باید سعی کنیم خیلی کمترازشون استفاده کنیم تا سرعت لود صفحه سخت و زیاد نشه.و اینکه افزونه های ضروری که داریم رو همیشه به روز رسانی کنید چون باعث افزایش راندمان سایت میشه.حتما مراقب تداخل عملکرد افزونه ها باشین گاهی نصب یک افزونه باعث میشه یه جاهایی از سایت از کار بیوفته و حتی سرعت لود صفحه رو کاهش بده.پس حتما بررسی بکنید ک افزونه ها تداخلی در عملکردهای یکدیگر ایجاد نکنن.نکته مهم وقتی افزونه ی نصب شده رو دیگه بهش احتیاج ندارین و یا تداخلی ایجاد کرده و قصد دارین پاک کنین حتما بعد از پاک کردنشون باید تیبل های اونها رو از دیتا بیس هم حذف کنید تا سبک تر بشه و سرعت لود بالا بره.
بسیاری از ارائه دهندگان ربات ناظم گروه، سورس
همان کدهای ربات را بر روی سرورهای ضعیف ران یا اجرا می کنند، که این موضوع باعث افت کیفیت عملکرد ربات میشود، خداروشکر با همت و تلاش دوستان برنامه برنامه نویس ما تمامی سورس ربات را بر روی یک سرور کاملا اختصاصی پیاده سازی کردیم تا ربات بهترین عملکرد ممکن را در برقراری امنیت در گروه یا سوپرگروه های شما داشته باشد.
با وجود رباتهای رایگان، چرا ربات بخریم؟
این سوال خیلی از مدیران گروههاست که چرا باید هزینه ای پرداخت کنیم، وقتی که سرویس دهندگانی هستند که ربات رایگان ارائه می کنند؟ پاسخ این سوال خیلی ساده است، تمام صاحبان ربات هایی که سرویس رایگان به کاربران خود ارائه می کنند، به منظور انجام تبلیغات در گروههای شماست. در ازای استفاده از ربات آنها، لینکهای تبلیغاتی را به گروه شما ارسال می کنند که این موضوع گاهاً موجب اذیت شدن ادمینها و اعضای گروه میشود.نامیده میشود، کمتر از سایر اصول شناخته شده است. شاید این اتفاق به خاطر نام نامناسب این اصل افتاده باشد. برنامه نویسان، با توجه به نامی که این اصل دارد خیلی ساده فرض میکنند این اصل میگوید هر ماژول یک کار بیشتر نباید انجام دهد.هنگامی که اقدام به اصلاح کدها و توابع بزرگ میکنیم، اصلی وجود دارد که میگوید: "هر تابع باید یک و تنها یک کار انجام دهد."، دقت کنید که آن اصل و الگو با SRP متفاوت است و نباید دچار اشتباه شوید. از منظر تاریخی اگر بخواهیم SRP را تعریف کنیم باید بگوییم:هر ماژول باید یک و تنها یک دلیل برای تغییر داشته باشد.
سیستمهای نرمافزاری برای اینکه خواستههای ذینفعان سیستمها را به درستی انجام دهند در طول زمان تغییر میکنند. در اصل کاربران و ذینفعان نرمافزارها دلایل تغییر آنها هستند. میتوانیم تعریف SRP را به این شکل تغییر دهیم:هر ماژول نرمافزاری مسئول پاسخگویی به یک و تنها یک کاربر یا ذینفع است.متاسفانه کلمات "کاربر" و "ذینفع" برای استفاده در این تعریفها مناسب نیستند. در اصل گروهی از کاربران و ذینفعان هستند که از یک جنبه نرمافزاری استفاده میکنند و همزمان نیازمند تغییر رفتاری در سیستم هستند. بهتر است به جای استفاده از واژههای "کاربر" یا "ذینفع" از واژه "بازیگر" استفاده کنیم. در نتیجه آخرین نسخه از تعریف ما برای SRP به صورت زیر خواهد بود:هر ماژول نرمافزاری مسئول پاسخگویی به یک و تنها یک بازیگر است.
حال بیایید نگاهی به تعریف خودمان از ماژول بیاندازیم. منظور ما از ماژول در این تعاریف چیست؟ سادهترین تعریف برای ماژول که اغلب هم به درستی کار میکند، فایل سورس است. البته در برخی محیطها و زبانهای برنامه نویسی عملکردهای مرتبط در قالب فایل کنار هم قرار نمیگیرند که در آن زبانها هر ماژول مجموعهای منسجم از دادهها و توابع است.
واژه انسجام مفهوم SRP را میرساند. در واقع انسجام و پیوستگی کدها نیرویی است که باعث ایجاد پاسخگویی ماژول به تنها یک بازیگر میشود.
نامیده میشود، کمتر از سایر اصول شناخته شده است. شاید این اتفاق به خاطر نام نامناسب این اصل افتاده باشد. برنامه نویسان، با توجه به نامی که این اصل دارد خیلی ساده فرض میکنند این اصل میگوید هر ماژول یک کار بیشتر نباید انجام دهد.
هنگامی که اقدام به اصلاح کدها و توابع بزرگ میکنیم، اصلی وجود دارد که میگوید: "هر تابع باید یک و تنها یک کار انجام دهد."، دقت کنید که آن اصل و الگو با SRP متفاوت است و نباید دچار اشتباه شوید. از منظر تاریخی اگر بخواهیم SRP تعمیر را تعریف کنیم باید بگوییم:
هر ماژول باید یک و تنها یک دلیل برای تغییر داشته باشد.
سیستمهای نرمافزاری برای اینکه خواستههای ذینفعان سیستمها را به درستی انجام دهند در طول زمان تغییر میکنند. در اصل کاربران و ذینفعان نرمافزارها دلایل تغییر آنها هستند. میتوانیم تعریف SRP را به این شکل تغییر دهیم:
"هر ماژول نرمافزاری مسئول پاسخگویی به یک و تنها یک کاربر یا ذینفع است."
متاسفانه کلمات "کاربر" و "ذینفع" برای استفاده در این تعریفها مناسب نیستند. در اصل گروهی از کاربران و ذینفعان هستند که از یک جنبه نرمافزاری استفاده میکنند و همزمان نیازمند تغییر رفتاری در سیستم هستند. بهتر است به جای استفاده از واژههای "کاربر" یا "ذینفع" از واژه "بازیگر" استفاده کنیم. در نتیجه آخرین نسخه از تعریف ما برای SRP به صورت زیر خواهد بود:هر ماژول نرمافزاری مسئول پاسخگویی به یک و تنها یک بازیگر است.حال بیایید نگاهی به تعریف خودمان از ماژول بیاندازیم. منظور ما از ماژول در این تعاریف چیست؟ سادهترین تعریف برای ماژول که اغلب هم به درستی کار میکند، فایل سورس است. البته در برخی محیطها و زبانهای برنامه نویسی عملکردهای مرتبط در قالب فایل کنار هم قرار نمیگیرند که در آن زبانها هر ماژول مجموعهای منسجم از دادهها و توابع است.واژه انسجام مفهوم SRP را میرساند. در واقع انسجام و پیوستگی کدها نیرویی است که باعث ایجاد پاسخگویی ماژول به تنها یک بازیگر میشود.
شاید برای درک بهتر این اصل بهتر باشد به علائم نقض این اصل نگاهی بیاندازیم.
دانشکده بهداشت و پزشکی گرمسیری لندن، طغیانی از ویروس را در خوابگاهی متعلق به کارگران مهاجر در سنگاپور فهرست میکند که با تقریبا ۸۰۰ مورد ابتلا ارتباط دارد؛ ۸۰ عفونت به سالنهای موزیک زنده در اوزاکا در ژاپن مرتبط است و خوشهای از ۶۵ مورد از کلاسهای زومبا در کره جنوبی سرچشمه میگیرند. خوشههای انتقال در کشتیها و خانههای سالمندان، کارخانههای بستهبندی گوشت، پیستهای اسکی، کلیساها، رستورانها، بیمارستانها و زندانها نیز شکل گرفتهاند. گاهیاوقات یک نفر، دهها فرد را آلوده میکند؛ درحالیکه دیگر خوشهها موجب شکلگیری چندین زنجیرهی انتقال در مکانهای متعدد میشود.دیگر بیماریهای عفونی نیز ازطریق خوشهها گسترش مییابند و باوجود نزدیک به ۵ میلیون مورد ابتلای ثبتشده به کووید ۱۹ در سرتاسر جهان، وقوع چند طغیان بزرگ از ویروس انتظار میرفت؛ اما سارس ۲ (SARS-CoV-2) همانند دو عضو دیگر خانوادهی خود، سندرم تنفسی بسیار حاد (سارس) و سندرم تنفسی خاورمیانه (مرس)، ظاهرا متمایل به حمله به گروههایی از افراد بهشدت درارتباط باهم درعین چشم پوشیدن از دیگران است. بهگفتهی دانشمندان، این یافتهای دلگرمکننده است؛ زیرا نشان میدهد که محدودسازی گردهماییها که احتمال وقوع رویدادهای ابرانتقالی در آنها میرود، تأثیری درخورتوجه بر نرخ انتشار بیماری خواهد گذاشت و میتوان سایر ممنوعیتها بهعنوان مثال فعالیت در فضای باز را کاهش داد.عدد تکثیر پایه ویروس کرونا تقریبا سه است؛ اما در دنیای واقعی برخی افراد شمار زیادی را آلوده میکنند؛ درحالیکه دیگران اصلا ویروس را انتقال نمیدهند
جیمی لوید اسمیت از دانشگاه کالیفرنیا لسآنجلس که انتشار بسیاری
از عوامل بیماریزا را مطالعه کرده است، میگوید «اگر بتوانید پیشبینی کنید چه شرایطی موجب رشد رویدادهای ابرانتقالی میشود، آنگاه ریاضیات نشان میدهد که شما واقعاً خیلی سریع توانایی کاهش شیوع بیماری را دارید.» اما درک درستی از رویدادهای ابرانتقالی وجود ندارد، مطالعهی آنها دشوار است و یافتهها میتواند به دلهره و نگرانی از ننگ در بیمارانی منجر شود که بهعنوان ابرناقل شناخته میشوند.اغلب گفتگوها پیرامون انتشار ویروس کرونای جدید بر میانگین شمار عفونتهای تازهی ناشی از هر بیمار متمرکز شده است. بدون فاصلهگذاری اجتماعی، این عدد تکثیر (R) نزدیک به سه است؛ اما در دنیای واقعی، برخی افراد شمار زیادی را آلوده میکنند؛ درحالیکه دیگران اصلا ویروس را انتقال نمیدهند. درحقیقت، افراد دستهی دوم بیشتر هستند. لوید اسمیت میگوید «طبق الگوی ثابت، رایجترین عدد تکثیر ویروس صفر است. اغلب افراد بیماری را انتقال نمیدهند.»بههمین دلیل، دانشمندان علاوه بر عدد R از مقدار دیگری بهنام عامل پراکندگی (k) که تعداد خوشههای یک بیماری را توصیف میکند، بهره میگیرند. هرچه عدد k کمتر باشد، انتقال بیشتر ازسوی شمار کوچکی از افراد صورت میگیرد. لوید اسمیت و همکاران در مقالهای تأثیرگذار که سال ۲۰۰۵ در نشریهی نیچر منتشر شد، برآورد کردند که عدد k برای سارس (ازجمله بیماریهایی که ابرناقلها نقشی بزرگ در انتشار آن داشتند)، ۰/۱۶ است. پژوهشگران عدد k را برای مرس که در سال ۲۰۱۲ ظاهر شد، نزدیک به ۰/۲۵ تخمین زدند. درمقابل در دنیاگیری آنفلوانزای ۱۹۱۸، این مقدار تقریبا یک بود که نشانگر نقش کمتر خوشهها در انتشار بیماری بود.
برآوردها از عدد k برای ویروس کرونای جدید متغیر است. در ماه ژانویه، جولیان ریو و کریستین آلتاوس در دانشگاه برن، دنیاگیری کووید ۱۹ را در چین برای ترکیبهای مختلفی از مقادیر R و k شبیهسازی و نتایج را با وضعیت واقعی در آنجا مقایسه کردند. آنها نتیجه گرفتند که عدد k برای کووید ۱۹ تاحدی بالاتر از سارس و مرس است. گابریل لیانگ، مدلساز در دانشگاه هنگکنگ، یافتهی پژوهشگران برن را صحیح میداند. او میگوید «تصور نمیکنم کووید ۱۹ کاملا شبیه سارس یا مرس با خوشههای ابرانتقالی بسیار بزرگ باشد؛ اما درعینحال قطعا خوشههای متمرکز بسیاری را میبینیم که در آنها، درصد اندکی از افراد مسئول درصد بالایی از عفونتها هستند. بااینحال در نسخهای پیشانتشار از مقالهای تازه، آدام کوچارسکی از دانشکده بهداشت و پزشکی گرمسیری لندن برآورد کرد که عدد k برای کووید ۱۹ بهاندازهی ۰/۱ است. بهگفتهی کوچارسکی «احتمالا نزدیک به ۱۰ درصد از موارد ابتلا، عامل ۸۰ درصد از انتشار بیماری هستند.»
یافتهی کوچارسکی و همکارانش میتواند برخی از جنبههای مبهم دنیاگیری کنونی را توضیح دهد؛ ازجمله اینکه چرا ویروس پس از ظهور در چین، زودتر به سرتاسر جهان گسترش نیافت و چرا برخی موارد اولیهی ابتلا در سایر نقاط جهان نظیر یک مورد در اواخر دسامبر ۲۰۱۹ در فرانسه که در سوم مه شناسایی شد، ظاهرا در برافروختن طغیان گستردهتر ویروس ناکام ماندند؟ بهگفتهی کوچارسکی، اگر عدد k واقعا ۰/۱ باشد، آنگاه اغلب زنجیرههای عفونت بهخودی خود ازبین میروند و ویروس کرونای جدید باید دستکم چهار مرتبه بهطور پنهانی به کشوری جدید وارد شود تا تازه فرصت تثبیت خود را پیدا کند. اگر همهگیری چینی، آتشی بزرگ بود که جرقههایی را به سرتاسر جهان میفرستاد، اغلب آن جرقهها بهسادگی ازبین میرفتند.
کریستوفر فریزر، پژوهشگر رویدادهای ابرانتقالی ابولا و ایدز از دانشگاه آکسفورد میگوید «چرا خوشهی انتقال ویروس کرونا بسیار بیش از سایر عوامل بیماریزا پرسش علمی بیجواب و واقعا جالبتوجهی است؟» نحوهی انتقال کووید ۱۹ ممکن است تنها ازطریق یک عامل باشد. ویروس کرونای جدید ظاهرا عمدتا ازطریق قطرات کوچک منتقل میشود؛ اما انتشار آن گهگاه ازطریق آئروسلهای ریزتری نیز صورت میگیرد که قادر به معلقماندن در هوا هستند و بدین طریق به یک فرد امکان آلودهکردن بسیاری از افراد را میدهند. بهگفتهی فریزر اغلب خوشههای انتقال بزرگ منتشرشده «ظاهرا بر انتقال آئروسل دلالت دارند.»
- ابهام برسر انتشار آئروسل: ویروس کرونا واقعا ازطریق هوا منتقل میشود؟
- ویروس کرونا جدید چگونه منتشر میشود؟
- خصوصیات انفرادی بیماران نیز نقش مهمی ایفا میکند.
- برخی افراد نسبت به دیگران ویروس را در حجم بسیار بیشتر
- و برای دورههای زمانی طولانیتر پخش میکنند. علت این امر
- شاید تفاوتها در سیستم ایمنی یا توزیع گیرندههای ویروس
- در بدنشان باشد. مطالعهای در سال ۲۰۱۹ که افراد سالم در آن مشارکت
- داشتند، نشان داد که برخی افراد در مقایسه با دیگران هنگام پیادهروی
در بازدم خود ذرات بسیار بیشتری را خارج میکنند. همچنین آوازخواندن میتواند نسبت به صحبتکردن ویروس بیشتری را در هوا رها کند. این امر ممکن است کمک کند تا طغیان ویروس در گروههای سرود را توضیح دهیم. رفتار افراد نیز ایفاگر نقش است. داشتن تماسهای اجتماعی زیاد یا نشستن دستها احتمال انتقال ویروس را افزایش میدهد.احتمالا نزدیک به ۱۰ درصد از موارد ابتلا به ویروس کرونا، عامل ۸۰ درصد از انتشار بیماری هستند
عاملی که دانشمندان بیش از همه نزدیک به درک آن هستند، مکان احتمالی شکلگیری خوشههای کووید ۱۹ است. آلتاوس میگوید «بهوضوح در فضاهای محصور خطری بیشتری نسبت به فضاهای بیرون وجود دارد.» پژوهشگران چینی که شیوع ویروس کرونا را در خارج از استان هوبئی، کانون اصلی انتشار دنیاگیری مطالعه میکنند، بین ۴ ژانویه و ۱۱ فوریه، ۳۱۸ خوشهی متشکل از سه مورد ابتلا یا بیشتر را شناسایی کردند که از این بین، فقط یک خوشه از فضای آزاد سرچشمه گرفته بود. مطالعهای در ژاپن نیز دریافت که خطر آلودگی در فضاهای بسته تقریبا ۱۹ برابر بیشتر از فضاهای باز است. ژاپن که ابتدا بهسختی از ویروس آسیب دید اما انتشار آن را تحت کنترل درآورد، در راهبرد خود برای مبارزه با کووید ۱۹ به شهروندانش توصیه میکند از فضاهای بسته و محیطهای پرازدحام دوری کنند.برخی محیطها میتوانند بهطور ویژه خطرناک باشند. کارخانههای بستهبندی گوشت احتمالا ازجمله مکانهای آسیبپذیر بهشمار میآید؛ زیرا درآنها افراد بسیاری نزدیک به یکدیگر و در فضاهایی فعالیت میکنند که دمای پایین به بقای ویروس کمک میکند؛ اما بهگفتهی نایت، آسیبپذیری کارخانههای بستهبندی گوشت ممکن است به پرسروصدا بودن این مکانها مرتبط باشد. گزارش پیرامون گروه سرود در واشنگتن به نایت فهماند که یک عامل، خوشههای پرشمار را بههم پیوند میدهد: آنها در مکانهایی شکل میگیرند که افراد فریاد میزنند یا آواز میخوانند. هرچند کلاسهای زومبا به طغیانهای ویروس مرتبط بودهاند، در کلاسهای پیلاتس که ورزشی با شدت کمتر است، خوشههای انتقال بیماری شکل نگرفتهاند. نایت میگوید: «شاید تنفس آهسته و ملایم عامل خطر نباشد؛ اما تنفس سنگین، عمیق یا سریع و فریادزدن خطرناک است.»
زمانبندی نیز ازجمله عوامل دخیل است. شواهد درحالظهور اشاره میکنند که بیماران کووید ۱۹ در دورهی زمانی کوتاهی بیش از همیشه واگیردار هستند. کوچارسکی میگوید ورود به محیطی پرخطر در آن دوره ممکن است به وقوع رویدادی ابرانتقالی ختم شود. دو روز بعد، آن شخص ممکن است به همان شکل رفتار کند اما نتیجه متفاوت باشد.»
کشورهایی که انتشار ویروس را به سطوح پایین رساندهاند
باید بهطور ویژه مراقب رویدادهای ابرانتقالی باشند؛ زیرا ممکن است موفقیتهایی را که بهسختی بهدست آوردهاند، بهراحتی ازدست دهند. پس از آنکه کره جنوبی قوانین فاصلهگذاری اجتماعی را در اوایل مه کاهش داد، مردی که بعدا تست کرونایش مثبت شد، از چندین کلاب در سئول بازدید کرد. مقامهای بهداشت عمومی بهسختی درصدد شناسایی هزاران مخاطب احتمالی برآمدند و تا هفتهی گذشته نزدیک به ۱۷۰ مورد جدید را پیدا کردند.کوچارسکی میگوید اگر کارکنان بهداشت عمومی از مکان شکلگیری احتمالی خوشهها مطلع بودند، میتوانستند تلاش کنند از بهوجودآمدن آنها جلوگیری و از تعطیلکردن بخشهای گستردهی جامعه اجتناب کنند. او افزود «تعطیلیها ابزاری فوقالعاده کند هستند. شما اساسا میگویید ما بهاندازهی کافی دربارهی مکان انتشار ویروس نمیدانیم تا قادر به هدفگیری آن باشیم؛ بنابراین تمام مکانها را هدف قرار میدهیم.»اما مطالعهی خوشههای بزرگ کووید ۱۹ دشوارتر از آن چیزی است که بهنظر میآید. بسیاری از کشورها دادههای جزئی و مورد نیاز ردیابی مخاطبان را جمعآوری نکردهاند. همچنین تعطیلیها چنان مؤثر بوده که فرصت مطالعهی رویدادهای ابرانتقالی را از پژوهشگران گرفته است. بهگفتهی فریرز، پیش از تعطیلیها .http://tamirkaran.blog.ir/1399/02/30/%D8%AF%D9%86%DB%8C%D8%A7%DB%8C-%D9%87%D9%86%D8%B1-%D8%B1%D9%88-%D8%A8%D8%B4%D9%86%D8%A7%D8%B3%DB%8C%D8%AF
2. علامت اول: تکثیر تصادفی:
مثال مورد علاقه من برای این مورد، کلاس Employee در سیستم حقوق و دستمزد است. این کلاس سه متد به نامهای calculatePay, reportHours و save دارد.
- شمای کلاس Employee
- شمای کلاس Employee
- با یک نگاه سطحی به این کلاس درمییابیم که این
- کلاس اصل SRP را زیر سوال بردهاست چرا که این کلاس
- مسئول پاسخگویی به سه بازیگر متفاوت است.
- متد calculatePay توسط واحد حسابداری مورد استفاده قرار میگیرد
- که مسئول پاسخگویی به CFO است.
- متد reportHours توسط واحد منابع انسانی استفاده می شود
- که به COO گزارش میدهد.
- متد save نیز توسط مدیران پایگاه داده مورد استفاده قرار می گیرد
- که به CTO گزارش میدهند.
- با قراردادن سورس کد این سه تابع در یک کلاس در حقیقت این بازیگران
- را به هم وابسته کردهایم. این وابستگی ممکن است باعث شود تغییری که
- توسط تیم CFO داده میشود، روی عملکرد تیم COO تاثیر بگذارد.
- فرض کنید که متدهای calculatePay و reportHours برای محاسبه
- ساعات بدون اضافهکاری الگوریتم
- شاید برای درک بهتر این اصل بهتر باشد به علائم نقض این اصل نگاهی بیاندازیم.
2. علامت اول: تکثیر تصادفی:
مثال مورد علاقه من برای این مورد، کلاس Employee در سیستم حقوق و دستمزد است. این کلاس سه متد به نامهای calculatePay, reportHours و save داردبا یک نگاه سطحی به این کلاس درمییابیم که این کلاس اصل SRP را زیر سوال بردهاست چرا که این کلاس مسئول پاسخگویی به سه بازیگر متفاوت است.متد calculatePay توسط واحد حسابداری مورد استفاده قرار میگیرد که مسئول پاسخگویی به CFO است.متد reportHours توسط واحد منابع انسانی استفاده می شود که به COO گزارش میدهد.متد save نیز توسط مدیران پایگاه داده مورد استفاده قرار می گیرد که به CTO گزارش میدهند.
- با قراردادن سورس کد این سه تابع در یک کلاس در حقیقت این بازیگران
- را به هم وابسته کردهایم. این وابستگی ممکن است باعث شود تغییری
- که توسط تیم CFO داده میشود، روی عملکرد تیم COO تاثیر بگذارد.
- فرض کنید که متدهای calculatePay و reportHours برای محاسبه ساعات بدون اضافهکاری الگوریتم
- ولی سوال دیگر این است؛ آیا تفاوت رباتهای پولی با رایگان فقط در تبلیغات است؟
- باید خدمتتان عرض کنیم که پاسخ خیر است، بنا به چند دلیل :
اول اینکه رباتهای رایگان به دلیل حجم بالای استفاده کنندگان، افت سرعت پیدا میکنند و در مواقعی امکان از کار افتادن ربات تا ساعاتی وجود دارد.
دوم اینکه به دلیل رایگان بودن این رباتها تیم های برنامه نویسی دلسوزانه به کاربران خود سرویس دهی نمی کنند و اینجور ربات ها در صورت وجود مشکلی، پشتیبانی بسیار ضعیفی دارند.دلیل سوم به خاطر امکانات یا قابلیت های پایین ربات میباشد، برنامه نویسان ربات های رایگان به خاطر اینکه از منابع سرور استفاده کمتری شود، امکانات ربات را محدود می کنند.تفاوت های دیگری هم بین رباتهای رایگان و پولی وجود دارد، ولی همین سه مورد کفایت می کند، تا متوجه باشید که چرا هزینه ماهیانه ناچیزی پرداخت کنید، بهتر است تا از ربات رایگان که امنیت گروهتان را به خطر می اندازد، استفاده کنید.به شما دوستان عزیز پیشنهاد می کنم که ربات های پرقدرت ما را حتما یه تست کنید، تیم ربات نویسی با اولین نیست ولی با سعی در ارائه خدمات باکیفیت سعی دارد بهترین باشد. برای استفاده از رباتهای پرقدرت ما ابتدا در کانال ما از طریق لینک زیر عضو شوید، بعد داخل کانال میتوانید با پشتیبانی ربات در ارتباط باشید و سوالات خود را مطرح کنید. آموزش ها و دستورات ربات هم داخل کانال وجود دارد.
بررسی لینک خارجی
مورد سوم میتونه حتی لینک های خارجی هم باشه بعضی از محتوا ها نباید به سایتی لینک بدیم که به خاطر تحریم برای ایران فیلتر هستستفاده از عکس ثابت به جای اسلایدر
محصولات تجاریشاید یکی از مهمترین دلایلی که متخصصین شبکه، از سیستمعامل ویندوز، دلسرد شده (فارغ از مباحث امنیتی و رایگان بودن و غیره) و به سیستمعامل لینوکس (Linux)، علاقهمند شده بودند، همین ضعف Windows Command Prompt بود. هر چند که ما میتوانیم (میتوانستیم) به زیبایی و در حالی که به پشتی صندلی خود تکیه دادهایم و با استفاده از ماوس، در محیط ویندوز، بر روی My Computer = This PC، دکمه سمت راست ماوس را زده، گزینه Manage را انتخاب کرده و سپس از طریق انتخاب گزینه Local Users and Groups، اقدام به ایجاد گروهها و حسابهای کاربری نماییم! ولی زمانی که مسئول یک شبکه کامپیوتری بزرگ هستیم و باید بیش از ۱۰۰۰ حساب کاربری و ۱۰۰ گروه کاربری تعریف نماییم، این روال گرافیکی و جذاب، تقریبا ما را دیوانه میکند! در صورتی که از همان ابتدا در محیط لینوکس، میتوانستیم با استفاده از یک دستور ساده add-user در محیط ترمینال (SHELL)، اقدام به ایجاد یک حساب کاربری کرده و یا با استفاده از فایلهای sh لینوکس، چیزی شبیه Batch File، ایجاد کرده و با استفاده از یک دستور حلقه، اقدام به ایجاد هزاران حساب کاربری و گروههای کاربری نماییم!
این جذابیت لینوکس که اجازه میداد که تقریبا هر کاری که میتوان در محیط گرافیکی آن انجام داد را در محیط ترمینال آن، و با استفاده از دستورات انجام دهیم و چه بسا کارهایی را انجام دهیم که حتی در محیط گرافیکی نیز امکانپذیر نبود! ویندوز را بر آن داشت که نسبت به ایجاد یک محیط قدرتمندتر از Windows Command Prompt، اقدامی اساسی کند. مایکروسافت در اولین اقدام PowerShell نسخه یک را در محیط ویندوز ایجاد کرد و پس از آن در محیط ویندوز، ما شاهد دو محیط برای اجرای دستورات بودیم!
محیط Windows Command Prompt
محیط Windows PowerShell
در محیط Windows PowerShell، ضمن آنکه تمامی دستورات DOS، قابلیت اجرا داشتند، مجموعه دستورات PowerShell، توجه اکثر متخصصین شبکه و حتی برنامهنویسان را به خود جلب کرد! تا جایی که در آخرین نسخه PowerShell، یعنی نسخه ۷ آن، تقریبا هر کاری که در محیط گرافیکی ویندوز و به صورت Wizard، انجام میدهیم، معادل آن، دستوری در این محیط قدرتمند وجود دارد!
پاورشل تا نسخه ۴، به صورت Native، توسعه پیدا کرد و برای اولین بار، مایکروسافت برای توسعه نسخه ۵ از DOT NET Framework استفاده کرد. مایکروسافت در نسخه ۵.۱، دو نسخه از پاورشل را منتشر نمود، یک نسخه به اصطلاح Desktop که کماکان با DOT NET Framework، توسعه پیدا کرده بود و یک نسخه به نام Core، که با اولین نسخه DOT NET Core ایجاد شده بود. مایکروسافت نسخه ۶ را کمی تغییر نام داد و نام آنرا PowerShell Core 6.0 قرار داد و صرفا از DOT NET Core، آن هم نسخه ۲ برای توسعه آن استفاده کرده. این روال تا نسخه ۶.۲ نیز ادامه داشت، تا در نهایت مجددا در نسخه ۷، نام آنٰرا به اختصار PowerShell 7 نام نهاد. مایکروسافت در این نسخه از DOT NET Core 3.1 استفاده کرد و از آنجایی که مدتهاست که تصمیم گرفته که از حالت دو نسخهای DOT NET Framework (آخرین نسخه آن ۴.۸) و DOT NET Core (آخرین نسخه آن ۳.۱) خارج شود، به زودی نسخه DOT NET 5 را منتشر خواهد کرد که در واقع نسخه یکی شده این دو خواهد بود. به همین دلیل نیز از اضافه کردن کلمه Core، به ادامه کلمه PowerShell اجنتاب کرد!
از آنجایی که DOT NET Core، یک بستر Cross Platform میباشد! و برنامههایی که با این فریمورک ایجاد میشوند، قابلیت اجرا شدن در محیطهای لینوکس و iOS را دارند، خصوصا از نسخه ۶ پاورشل، بسیاری از کاربران لینوکس و iOS نیز به این ابزار علاقهمند شده و از آن در سیستمعاملهای خود استفاده میکنند. خصوصا کسانی که به هر شکل، در طول روز، با سیستمعاملهای متنوعی سر و کار دارند! و به جای اینکه مثلا در سیستمعامل لینوکس حفظ کنند که برای نمایش فایلها و پوشهها، دستوری به نام ls وجود دارد و در سیستمعامل ویندوز، دستوری به نام dir وجود دارد، اگر بر روی دستورات پاورشل، سرمایهگذاری کنند، به راحتی با نوشتن دستور Get-ChildItem میتوانند به مقصود خود در هر سیستمعاملی برسند!
- تاریخچه مختصری از PowerShell
- PowerShell 1.0
- تاریخ انتشار:۲۰۰۶
- زبانبرنامهنویسی: Native
- تعداد دستورات: ۱۲۹
- سیستمعاملهایی که آنرا پشتیبانی میکنند:
- Windows Vista
- Windows XP SP2
- Windows Server 2008
- Windows Server 2003 SP1
- PowerShell 2.0
- تاریخ انتشار:۲۰۰۸
- زبانبرنامهنویسی: Native
- تعداد دستورات: ۶۳۲
- سیستمعاملهایی که آنرا پشتیبانی میکنند:
- Windows 7
- Windows XP SP3
- Windows Vista SP1
- Windows Server 2008 R2
- Windows Server 2003 SP2
- PowerShell 3.0
- تاریخ انتشار: ۲۰۱۲
- زبانبرنامهنویسی: Native
- تعداد دستورات: بیش از ۱۰۰۰ دستور
- سیستمعاملهایی که آنرا پشتیبانی میکنند:
- Windows 8
- Windows 7 SP1
- Windows Server 2012
- Windows Server 2008 SP1
- Windows Server 2008 R2 SP1
- PowerShell 4.0
- تاریخ انتشار:۲۰۱۴
- زبانبرنامهنویسی: Native
- تعداد دستورات: بیش از ۱۰۰۰ دستور
سیستمعاملهایی که آنرا پشتیبانی میکنن
محصولات تجاری به شرکتها کمک میکند تا اونها بتونن محصولات خودشون را بسازن یا کسب و کار خودشون رو اداره کنند. نمونههایی از محصولات تجاری شامل مواد اولیه، تجهیزات، اجزای سازنده و خدمات تجاری هستش. نرمافزارهای تجاری توسط شرکتها برای پشتیبانی از کارکردهای کلیدی تجاری استفاده میشن؛ نمونههایی از برنامههای تجاری شامل حسابداری، مدیریت ارتباط مشتری، مدیریت منابع انسانی و نرمافزارهای برنامهریزی استراتژیک است که بیشتر با اندازه شرکتها طبقه بندی میشن.
صنعت
محصولات همچنین توسط صنعتی که در خدمت آنها هستند هم توصیف میشن، صنایع دستهبندی گستردهای از قبیل انرژی، بهداشت و درمان، خدمات مالی یا فناوری اطلاعات هستند. محصولاتی که متناسب با نیازهای یک صنعت خاص طراحی شدن «محصولات عمودی بازار» نامیده می شن. نمونهای از محصولات عمودی، برنامه بهداشتی و درمانی برای مدیریت دادههای بیمار است. وقتی محصولی در صنایع مختلف حضور دارد، به عنوان محصول بازار افقی توصیف میشه و میتونه طیف گستردهای از نیازهای مشتری رو پشتیبانی کنه؛ به عنوان مثال یک محصول حسابداری کلی توسط همه مشاغل قابل استفاده است.
تا حالا زیاد پیش اومده وقتی یکی میگه من مدیرمحصولم، برای خیلیها سوال پیش میاد که محصول چی هست اصلا؟ خیلیها برداشتشون از محصول یه کالای قابل لمس هست؛ یا بعضی وقتها از سوال میکنن بهشون جواب میدم محصولات تکنولوژی محور میگن نه چی تولید میکنید؟!
من مهدی صالحزاده هستم مدیرمحصول دکتردکتر، اگه شما هم علاقهمندین که بدونید وقتی یکی میگه مدیرمحصول منظورش از محصول چیه، این مطلب به درد شما هم میخوره میتونید با من همراه بشید.
این یه سوال اساسی برای شرکت هست؛ همچنین برای خود مدیران محصول که محصول چیه؟ "محصول هرکالا یا خدماتی هست که شما برای نیاز یا خواسته مشتری میفروشید" این تعریف ممکنه خیلی ساده به نظر بیاد، اما تو این مطلب میخوام درمورد این بگم که نسبت به خصوصیات نگاه اول مشتری و اونچه که مشتری فکر میکنه مبلغی رو برای اون پرداخته، محصولات بیشتری وجود داره.
یه محصول میتونه فیزیکی یا مجازی باشه، کالاهای فیزیکی میتونه کالاهای بادوام (مثل ماشین، مبلمان، کامپیوتر و...) یا کالاهای تند مصرف (مثل نوشیدنی و غذا) باشه؛ محصولات مجازی هم میتونه خدمات یا تجربیات (مثل آموزش و نرمافزار) باشه. یک محصول هم ممکنه ترکیبی باشه و هم عناصر فیزیکی و هم عناصر مجازی رو تو خودش داشته باشه.
نرمافزار رو میتونیم هم محصول، هم سرویس در نظر بگیریم، میشه نسخه فیزیکی محصول رو خرید و اونو نصب کرد، همون کاری که همیشه بصورت سنتی انجام میشده. بسیاری از محصولات نرمافزاری امروزه بصورت واقعی فروخته میشن و هیچ نسخه فیزیکی وجود نداره، اینجاست که اصطلاح نرم افزار به عنوان سرویس (SaaS) سرچشمه میگیره. این روش اکثرا یه مدل مبتنی بر وب استفاده میشه و غالبا مشتریان برای دسترسی به نرمافزار، هزینه اشتراک ماهانه یا سالانه پرداخت میکنن.
احتمالا شخصی وجود داره که مسئولیت برنامهریزی و نگهداری یک محصول رو در طول چرخه عمر خودش داشته باشه که این مدیرمحصول هستش که قبلا در موردش صحبت کردیم. نقش مدیریت محصول در شرکتهای فناوری اینه که بصورت جامع درباره تجربه مشتری فکر کنند؛ اصلیترین دلیل این مورد هم اینه که مشتریان تصمیم میگیرند که بر اساس کل مجموعه تعاملاتی که با یک شرکت دارند، درباره یک محصول چه احساسی دارند و تجربه نشون داده که ارائه محصول با قیمت رقابتی برای کسب وفاداری طولانی مدت کافی نیست.
انواع مشتری
- شما میتونید با تقسیم محصولات بین دونوع مشتری اصلی «مصرف کننده»
- و «کسب و کار» شروع کنید. محصولات معمولا بر اساس نوع مشتری
- که در اون خدمت میکنند به عنوان «کسب و کار» به «کسب و کار» (B2B) یا
- «کسب و کار» به «مصرف کننده» (B2C) طبقه بندی میشن. دسته سومی
- هم وجود داره که «کسب و کار» به «کسب و کار» به «مصرف کننده» (B2B2C)
- وجود داره که تو ایران به مارکتپلیس میشناسیمش، تو این مدل هست که یک
- شرکت ار طریق کسب و کار دیگری بازار مصرف رو هدف قرار میده.
- نمونهاش رو میشه اسنپ فود یا علی بابا نام برد که یک طرف با کسب و کارها
- و در طرف دیگه با مصرف کنندهها در ارتباط هستند. یک شرکت میتونه هم مشتریهای
«مصرف کننده» و هم «کسب و کار» داشته باشه، اما درک اینکه چگونه هر نوع خریداد کالایی رو خریداری و استفاده میکنه، برای محصول و استراتژی بازاریابی مهمه.
هر چی تکنولوژی روز به روز بهتر میشه هر فرایندی هم رو به بهینه تر شدن و افزایش سرعت پیش میره .همونجوری که میدونیم گوگل و بقیه موتورهای جستجو به شدت به سرعت لود سایت اهمیت میدن.چرا؟
چونکه کاربران و مخاطبهای سایتها دیگه برای لود سایت صبر نمیکنن وزمان لود سایت بیشتر از 2 ثانیه بشه کاربر برای همیشه سایت شما رو میبنده
چون کاربرای جدید مثل سابق صبور نیستن, پس وبسایت هایی موفق به جذب ترافیک بالا میشن که بتونن صفحات سایتشون رو برای کاربر هر چه سریعتر لود کنن.
چرا بالا بردن سرعت باز شدن سایت خیلی برامون مهم شده ؟
بارگزاری سریع موجب میشه نسبت به بقیه سایت های رقیب ترافیک بیشتری رو به سمت خودتون بیارین .
گوگل هم رضایت کاربران براش مهمه واسه همین یکی از اولین و مهمترین کارهایی که باید خیلی اهمیت داد سرعت بارگزاری صفحات سایت هستش.
خب حالا بریم سراغ تشخیص سرعت وبسایتمون
تست سرعت سایت
یکی از ابزارهایی که میشه سرعت رو اندازه گیری کرد همین gtmetrix هستش ابزارهای دیگه ای هم هست که بشه باهاش سرعت رو اندازه گیری کرد مثل tools.pingdom.com که برای ایران که تحریمه نمیشه استفاده کرد.
از طریق جی تی متریکس میتونیم متوجه بشیم سرعت سایتمون در چه حالتی هستش .
معمولا ارورهایی که میده در اکثر سایت ها اتفاق میوفته شبیهه بهم هستن که برای رفع کندی سایت ها یه سری نکات مهم رو یکی یکی بهتون میگم
اسکرول نامحدود YITH Infinite Scrolling
مورد یک بعضی از سایت ها هستن که صفحه اصلیشون شامل وبلاگ یا محصولات هستش .حالا تصور کنید که برای باز کردن صفحه اصلی باید تمام این پست ها یا محصولات باز بشن که این میتونه خیلی سنگین بشه و سرعت لود رو کاهش بده.
راهکار چیه؟
بهتره که صفحه اصلی دارای اسکرول باشه یعنی با اسکرول لود بشه نه اینکه بصورت یکجا بارگزاری بشه اسکرول باعث میشه تیکه تیکه و با اسکرول کردن صفحه محتویات اون لود بشه.
اگه وردپرس دارین میتونین افزونه Yith Infinite Scrolling رو نصب کنید .
نصب افزونه های کاربردی وردپرس
مورد دوم یه سری افزونه و ابزارک هایی هستن که درون صفحه سایتمون قرار میدیم که تعدادشون خیلی زیاده .باید سعی کنیم خیلی کمتر ازشون استفاده کنیم تا سرعت لود صفحه سخت و زیاد نشه.
و اینکه افزونه های ضروری که داریم رو همیشه به روز رسانی کنید چون باعث افزایش راندمان سایت میشه.
حتما مراقب تداخل عملکرد افزونه ها باشین گاهی نصب یک افزونه باعث میشه یه جاهایی از سایت از کار بیوفته و حتی سرعت لود صفحه رو کاهش بده
.پس حتما بررسی بکنید ک افزونه ها تداخلی در عملکردهای یکدیگر ایجاد نکنن.
نکته مهم وقتی افزونه ی نصب شده رو دیگه بهش احتیاج ندارین و یا تداخلی ایجاد کرده و قصد دارین پاک کنین حتما بعد از پاک کردنشون باید تیبل های اونها رو از دیتا بیس هم حذف کنید تا سبک تر بشه و سرعت لود بالا بره.
بسیاری از ارائه دهندگان ربات ناظم گروه، سورس یا همان کدهای ربات را بر روی سرورهای ضعیف ران یا اجرا می کنند، که این موضوع باعث افت کیفیت عملکرد ربات میشود، خداروشکر با همت و تلاش دوستان برنامه برنامه نویس ما تمامی سورس ربات را بر روی یک سرور کاملا اختصاصی پیاده سازی کردیم تا ربات بهترین عملکرد ممکن را در برقراری امنیت در گروه یا سوپرگروه های شما داشته باشد.
با وجود رباتهای رایگان، چرا ربات بخریم؟
این سوال خیلی از مدیران گروههاست که چرا باید هزینه ای پرداخت کنیم، وقتی که سرویس دهندگانی هستند که ربات رایگان ارائه می کنند؟ پاسخ این سوال خیلی ساده است، تمام صاحبان ربات هایی که سرویس رایگان به کاربران خود ارائه می کنند، به منظور انجام تبلیغات در گروههای شماست. در ازای استفاده از ربات آنها، لینکهای تبلیغاتی را به گروه شما ارسال می کنند که این موضوع گاهاً موجب اذیت شدن ادمینها و اعضای گروه میشود.
نامیده میشود، کمتر از سایر اصول شناخته شده است. شاید این اتفاق به خاطر نام نامناسب این اصل افتاده باشد. برنامه نویسان، با توجه به نامی که این اصل دارد خیلی ساده فرض میکنند این اصل میگوید هر ماژول یک کار بیشتر نباید انجام دهد.
هنگامی که اقدام به اصلاح کدها و توابع بزرگ میکنیم، اصلی وجود دارد که میگوید: "هر تابع باید یک و تنها یک کار انجام دهد."، دقت کنید که آن اصل و الگو با SRP متفاوت است و نباید دچار اشتباه شوید. از منظر تاریخی اگر بخواهیم SRP را تعریف کنیم باید بگوییم:
هر ماژول باید یک و تنها یک دلیل برای تغییر داشته باشد.
سیستمهای نرمافزاری برای اینکه خواستههای ذینفعان سیستمها را به درستی انجام دهند در طول زمان تغییر میکنند. در اصل کاربران و ذینفعان نرمافزارها دلایل تغییر آنها هستند. میتوانیم تعریف SRP را به این شکل تغییر دهیم:
هر ماژول نرمافزاری مسئول پاسخگویی به یک و تنها یک کاربر یا ذینفع است.
متاسفانه کلمات "کاربر" و "ذینفع" برای استفاده در این تعریفها مناسب نیستند. در اصل گروهی از کاربران و ذینفعان هستند که از یک جنبه نرمافزاری استفاده میکنند و همزمان نیازمند تغییر رفتاری در سیستم هستند. بهتر است به جای استفاده از واژههای "کاربر" یا "ذینفع" از واژه "بازیگر" استفاده کنیم. در نتیجه آخرین نسخه از تعریف ما برای SRP به صورت زیر خواهد بود:
هر ماژول نرمافزاری مسئول پاسخگویی به یک و تنها یک بازیگر است.
حال بیایید نگاهی به تعریف خودمان از ماژول بیاندازیم. منظور ما از ماژول در این تعاریف چیست؟ سادهترین تعریف برای ماژول که اغلب هم به درستی کار میکند، فایل سورس است. البته در برخی محیطها و زبانهای برنامه نویسی عملکردهای مرتبط در قالب فایل کنار هم قرار نمیگیرند که در آن زبانها هر ماژول مجموعهای منسجم از دادهها و توابع است.
واژه انسجام مفهوم SRP را میرساند. در واقع انسجام و پیوستگی کدها نیرویی است که باعث ایجاد پاسخگویی ماژول به تنها یک بازیگر میشود.
نامیده میشود، کمتر از سایر اصول شناخته شده است. شاید این اتفاق به خاطر نام نامناسب این اصل افتاده باشد. برنامه نویسان، با توجه به نامی که این اصل دارد خیلی ساده فرض میکنند این اصل میگوید هر ماژول یک کار بیشتر نباید انجام دهد.
هنگامی که اقدام به اصلاح کدها و توابع بزرگ میکنیم، اصلی وجود دارد که میگوید: "هر تابع باید یک و تنها یک کار انجام دهد."، دقت کنید که آن اصل و الگو با SRP متفاوت است و نباید دچار اشتباه شوید. از منظر تاریخی اگر بخواهیم SRP را تعریف کنیم باید بگوییم:
هر ماژول باید یک و تنها یک دلیل برای تغییر داشته باشد.
سیستمهای نرمافزاری برای اینکه خواستههای ذینفعان سیستمها را به درستی انجام دهند در طول زمان تغییر میکنند. در اصل کاربران و ذینفعان نرمافزارها دلایل تغییر آنها هستند. میتوانیم تعریف SRP را به این شکل تغییر دهیم:
هر ماژول نرمافزاری مسئول پاسخگویی به یک و تنها یک کاربر یا ذینفع است.
متاسفانه کلمات "کاربر" و "ذینفع" برای استفاده در این تعریفها مناسب نیستند. در اصل گروهی از کاربران و ذینفعان هستند که از یک جنبه نرمافزاری استفاده میکنند و همزمان نیازمند تغییر رفتاری در سیستم هستند. بهتر است به جای استفاده از واژههای "کاربر" یا "ذینفع" از واژه "بازیگر" استفاده کنیم. در نتیجه آخرین نسخه از تعریف ما برای SRP به صورت زیر خواهد بود:
هر ماژول نرمافزاری مسئول پاسخگویی به یک و تنها یک بازیگر است.
حال بیایید نگاهی به تعریف خودمان از ماژول بیاندازیم. منظور ما از ماژول در این تعاریف چیست؟ سادهترین تعریف برای ماژول که اغلب هم به درستی کار میکند، فایل سورس است. البته در برخی محیطها و زبانهای برنامه نویسی عملکردهای مرتبط در قالب فایل کنار هم قرار نمیگیرند که در آن زبانها هر ماژول مجموعهای منسجم از دادهها و توابع است.
واژه انسجام مفهوم SRP را میرساند. در واقع انسجام و پیوستگی کدها نیرویی است که باعث ایجاد پاسخگویی ماژول به تنها یک بازیگر میشود.
شاید برای درک بهتر این اصل بهتر باشد به علائم نقض این اصل نگاهی بیاندازیم.
دانشکده بهداشت و پزشکی گرمسیری لندن، طغیانی از ویروس را در خوابگاهی متعلق به کارگران مهاجر در سنگاپور فهرست میکند که با تقریبا ۸۰۰ مورد ابتلا ارتباط دارد؛ ۸۰ عفونت به سالنهای موزیک زنده در اوزاکا در ژاپن مرتبط است و خوشهای از ۶۵ مورد از کلاسهای زومبا در کره جنوبی سرچشمه میگیرند. خوشههای انتقال در کشتیها و خانههای سالمندان، کارخانههای بستهبندی گوشت، پیستهای اسکی، کلیساها، رستورانها، بیمارستانها و زندانها نیز شکل گرفتهاند. گاهیاوقات یک نفر، دهها فرد را آلوده میکند؛ درحالیکه دیگر خوشهها موجب شکلگیری چندین زنجیرهی انتقال در مکانهای متعدد میشود.
دیگر بیماریهای عفونی نیز ازطریق خوشهها گسترش مییابند و باوجود نزدیک به ۵ میلیون مورد ابتلای ثبتشده به کووید ۱۹ در سرتاسر جهان، وقوع چند طغیان بزرگ از ویروس انتظار میرفت؛ اما سارس ۲ (SARS-CoV-2) همانند دو عضو دیگر خانوادهی خود، سندرم تنفسی بسیار حاد (سارس) و سندرم تنفسی خاورمیانه (مرس)، ظاهرا متمایل به حمله به گروههایی از افراد بهشدت درارتباط باهم درعین چشم پوشیدن از دیگران است. بهگفتهی دانشمندان، این یافتهای دلگرمکننده است؛ زیرا نشان میدهد که محدودسازی گردهماییها که احتمال وقوع رویدادهای ابرانتقالی در آنها میرود، تأثیری درخورتوجه بر نرخ انتشار بیماری خواهد گذاشت و میتوان سایر ممنوعیتها بهعنوان مثال فعالیت در فضای باز را کاهش داد.
عدد تکثیر پایه ویروس کرونا تقریبا سه است؛ اما در دنیای واقعی برخی افراد شمار زیادی را آلوده میکنند؛ درحالیکه دیگران اصلا ویروس را انتقال نمیدهند
جیمی لوید اسمیت از دانشگاه کالیفرنیا لسآنجلس که انتشار بسیاری از عوامل بیماریزا را مطالعه کرده است، میگوید «اگر بتوانید پیشبینی کنید چه شرایطی موجب رشد رویدادهای ابرانتقالی میشود، آنگاه ریاضیات نشان میدهد که شما واقعاً خیلی سریع توانایی کاهش شیوع بیماری را دارید.» اما درک درستی از رویدادهای ابرانتقالی وجود ندارد، مطالعهی آنها دشوار است و یافتهها میتواند به دلهره و نگرانی از ننگ در بیمارانی منجر شود که بهعنوان ابرناقل شناخته میشوند.
اغلب گفتگوها پیرامون انتشار ویروس کرونای جدید بر میانگین شمار عفونتهای تازهی ناشی از هر بیمار متمرکز شده است. بدون فاصلهگذاری اجتماعی، این عدد تکثیر (R) نزدیک به سه است؛ اما در دنیای واقعی، برخی افراد شمار زیادی را آلوده میکنند؛ درحالیکه دیگران اصلا ویروس را انتقال نمیدهند. درحقیقت، افراد دستهی دوم بیشتر هستند. لوید اسمیت میگوید «طبق الگوی ثابت، رایجترین عدد تکثیر ویروس صفر است. اغلب افراد بیماری را انتقال نمیدهند.»
بههمین دلیل، دانشمندان علاوه بر عدد R از مقدار دیگری بهنام عامل پراکندگی (k) که تعداد خوشههای یک بیماری را توصیف میکند، بهره میگیرند. هرچه عدد k کمتر باشد، انتقال بیشتر ازسوی شمار کوچکی از افراد صورت میگیرد. لوید اسمیت و همکاران در مقالهای تأثیرگذار که سال ۲۰۰۵ در نشریهی نیچر منتشر شد، برآورد کردند که عدد k برای سارس (ازجمله بیماریهایی که ابرناقلها نقشی بزرگ در انتشار آن داشتند)، ۰/۱۶ است. پژوهشگران عدد k را برای مرس که در سال ۲۰۱۲ ظاهر شد، نزدیک به ۰/۲۵ تخمین زدند. درمقابل در دنیاگیری آنفلوانزای ۱۹۱۸، این مقدار تقریبا یک بود که نشانگر نقش کمتر خوشهها در انتشار بیماری بود.
برآوردها از عدد k برای ویروس کرونای جدید متغیر است. در ماه ژانویه، جولیان ریو و کریستین آلتاوس در دانشگاه برن، دنیاگیری کووید ۱۹ را در چین برای ترکیبهای مختلفی از مقادیر R و k شبیهسازی و نتایج را با وضعیت واقعی در آنجا مقایسه کردند. آنها نتیجه گرفتند که عدد k برای کووید ۱۹ تاحدی بالاتر از سارس و مرس است. گابریل لیانگ، مدلساز در دانشگاه هنگکنگ، یافتهی پژوهشگران برن را صحیح میداند. او میگوید «تصور نمیکنم کووید ۱۹ کاملا شبیه سارس یا مرس با خوشههای ابرانتقالی بسیار بزرگ باشد؛ اما درعینحال قطعا خوشههای متمرکز بسیاری را میبینیم که در آنها، درصد اندکی از افراد مسئول درصد بالایی از عفونتها هستند. بااینحال در نسخهای پیشانتشار از مقالهای تازه، آدام کوچارسکی از دانشکده بهداشت و پزشکی گرمسیری لندن برآورد کرد که عدد k برای کووید ۱۹ بهاندازهی ۰/۱ است. بهگفتهی کوچارسکی «احتمالا نزدیک به ۱۰ درصد از موارد ابتلا، عامل ۸۰ درصد از انتشار بیماری هستند.»
یافتهی کوچارسکی و همکارانش میتواند برخی از جنبههای مبهم دنیاگیری کنونی را توضیح دهد؛ ازجمله اینکه چرا ویروس پس از ظهور در چین، زودتر به سرتاسر جهان گسترش نیافت و چرا برخی موارد اولیهی ابتلا در سایر نقاط جهان نظیر یک مورد در اواخر دسامبر ۲۰۱۹ در فرانسه که در سوم مه شناسایی شد، ظاهرا در برافروختن طغیان گستردهتر ویروس ناکام ماندند؟ بهگفتهی کوچارسکی، اگر عدد k واقعا ۰/۱ باشد، آنگاه اغلب زنجیرههای عفونت بهخودی خود ازبین میروند و ویروس کرونای جدید باید دستکم چهار مرتبه بهطور پنهانی به کشوری جدید وارد شود تا تازه فرصت تثبیت خود را پیدا کند. اگر همهگیری چینی، آتشی بزرگ بود که جرقههایی را به سرتاسر جهان میفرستاد، اغلب آن جرقهها بهسادگی ازبین میرفتند.
کریستوفر فریزر، پژوهشگر رویدادهای ابرانتقالی ابولا و ایدز از دانشگاه آکسفورد میگوید «چرا خوشهی انتقال ویروس کرونا بسیار بیش از سایر عوامل بیماریزا پرسش علمی بیجواب و واقعا جالبتوجهی است؟» نحوهی انتقال کووید ۱۹ ممکن است تنها ازطریق یک عامل باشد. ویروس کرونای جدید ظاهرا عمدتا ازطریق قطرات کوچک منتقل میشود؛ اما انتشار آن گهگاه ازطریق آئروسلهای ریزتری نیز صورت میگیرد که قادر به معلقماندن در هوا هستند و بدین طریق به یک فرد امکان آلودهکردن بسیاری از افراد را میدهند. بهگفتهی فریزر اغلب خوشههای انتقال بزرگ منتشرشده «ظاهرا بر انتقال آئروسل دلالت دارند.»
ابهام برسر انتشار آئروسل: ویروس کرونا واقعا ازطریق هوا منتقل میشود؟
ویروس کرونا جدید چگونه منتشر میشود؟
خصوصیات انفرادی بیماران نیز نقش مهمی ایفا میکند. برخی افراد نسبت به دیگران ویروس را در حجم بسیار بیشتر و برای دورههای زمانی طولانیتر پخش میکنند. علت این امر شاید تفاوتها در سیستم ایمنی یا توزیع گیرندههای ویروس در بدنشان باشد. مطالعهای در سال ۲۰۱۹ که افراد سالم در آن مشارکت داشتند، نشان داد که برخی افراد در مقایسه با دیگران هنگام پیادهروی در بازدم خود ذرات بسیار بیشتری را خارج میکنند. همچنین آوازخواندن میتواند نسبت به صحبتکردن ویروس بیشتری را در هوا رها کند. این امر ممکن است کمک کند تا طغیان ویروس در گروههای سرود را توضیح دهیم. رفتار افراد نیز ایفاگر نقش است. داشتن تماسهای اجتماعی زیاد یا نشستن دستها احتمال انتقال ویروس را افزایش میدهد.
احتمالا نزدیک به ۱۰ درصد از موارد ابتلا به ویروس کرونا، عامل ۸۰ درصد از انتشار بیماری هستند
عاملی که دانشمندان بیش از همه نزدیک به درک آن هستند، مکان احتمالی شکلگیری خوشههای کووید ۱۹ است. آلتاوس میگوید «بهوضوح در فضاهای محصور خطری بیشتری نسبت به فضاهای بیرون وجود دارد.» پژوهشگران چینی که شیوع ویروس کرونا را در خارج از استان هوبئی، کانون اصلی انتشار دنیاگیری مطالعه میکنند، بین ۴ ژانویه و ۱۱ فوریه، ۳۱۸ خوشهی متشکل از سه مورد ابتلا یا بیشتر را شناسایی کردند که از این بین، فقط یک خوشه از فضای آزاد سرچشمه گرفته بود. مطالعهای در ژاپن نیز دریافت که خطر آلودگی در فضاهای بسته تقریبا ۱۹ برابر بیشتر از فضاهای باز است. ژاپن که ابتدا بهسختی از ویروس آسیب دید اما انتشار آن را تحت کنترل درآورد، در راهبرد خود برای مبارزه با کووید ۱۹ به شهروندانش توصیه میکند از فضاهای بسته و محیطهای پرازدحام دوری کنند.
برخی محیطها میتوانند بهطور ویژه خطرناک باشند. کارخانههای بستهبندی گوشت احتمالا ازجمله مکانهای آسیبپذیر بهشمار میآید؛ زیرا درآنها افراد بسیاری نزدیک به یکدیگر و در فضاهایی فعالیت میکنند که دمای پایین به بقای ویروس کمک میکند؛ اما بهگفتهی نایت، آسیبپذیری کارخانههای بستهبندی گوشت ممکن است به پرسروصدا بودن این مکانها مرتبط باشد. گزارش پیرامون گروه سرود در واشنگتن به نایت فهماند که یک عامل، خوشههای پرشمار را بههم پیوند میدهد: آنها در مکانهایی شکل میگیرند که افراد فریاد میزنند یا آواز میخوانند. هرچند کلاسهای زومبا به طغیانهای ویروس مرتبط بودهاند، در کلاسهای پیلاتس که ورزشی با شدت کمتر است، خوشههای انتقال بیماری شکل نگرفتهاند. نایت میگوید: «شاید تنفس آهسته و ملایم عامل خطر نباشد؛ اما تنفس سنگین، عمیق یا سریع و فریادزدن خطرناک است.»
زمانبندی نیز ازجمله عوامل دخیل است. شواهد درحالظهور اشاره میکنند که بیماران کووید ۱۹ در دورهی زمانی کوتاهی بیش از همیشه واگیردار هستند. کوچارسکی میگوید ورود به محیطی پرخطر در آن دوره ممکن است به وقوع رویدادی ابرانتقالی ختم شود. دو روز بعد، آن شخص ممکن است به همان شکل رفتار کند اما نتیجه متفاوت باشد.»
کشورهایی که انتشار ویروس را به سطوح پایین رساندهاند، باید بهطور ویژه مراقب رویدادهای ابرانتقالی باشند؛ زیرا ممکن است موفقیتهایی را که بهسختی بهدست آوردهاند، بهراحتی ازدست دهند. پس از آنکه کره جنوبی قوانین فاصلهگذاری اجتماعی را در اوایل مه کاهش داد، مردی که بعدا تست کرونایش مثبت شد، از چندین کلاب در سئول بازدید کرد. مقامهای بهداشت عمومی بهسختی درصدد شناسایی هزاران مخاطب احتمالی برآمدند و تا هفتهی گذشته نزدیک به ۱۷۰ مورد جدید را پیدا کردند.
کوچارسکی میگوید اگر کارکنان بهداشت عمومی از مکان شکلگیری احتمالی خوشهها مطلع بودند، میتوانستند تلاش کنند از بهوجودآمدن آنها جلوگیری و از تعطیلکردن بخشهای گستردهی جامعه اجتناب کنند. او افزود «تعطیلیها ابزاری فوقالعاده کند هستند. شما اساسا میگویید ما بهاندازهی کافی دربارهی مکان انتشار ویروس نمیدانیم تا قادر به هدفگیری آن باشیم؛ بنابراین تمام مکانها را هدف قرار میدهیم.»
اما مطالعهی خوشههای بزرگ کووید ۱۹ دشوارتر از آن چیزی است که بهنظر میآید. بسیاری از کشورها دادههای جزئی و مورد نیاز ردیابی مخاطبان را جمعآوری نکردهاند. همچنین تعطیلیها چنان مؤثر بوده که فرصت مطالعهی رویدادهای ابرانتقالی را از پژوهشگران گرفته است. بهگفتهی فریرز، پیش از تعطیلیها «احتمالا فرصتی دو هفتهای
2. علامت اول: تکثیر تصادفی:
مثال مورد علاقه من برای این مورد، کلاس Employee در سیستم حقوق و دستمزد است. این کلاس سه متد به نامهای calculatePay, reportHours و save دارد.
شمای کلاس Employee
شمای کلاس Employee
با یک نگاه سطحی به این کلاس درمییابیم که این کلاس اصل SRP را زیر سوال بردهاست چرا که این کلاس مسئول پاسخگویی به سه بازیگر متفاوت است.
متد calculatePay توسط واحد حسابداری مورد استفاده قرار میگیرد که مسئول پاسخگویی به CFO است.
متد reportHours توسط واحد منابع انسانی استفاده می شود که به COO گزارش میدهد.
متد save نیز توسط مدیران پایگاه داده مورد استفاده قرار می گیرد که به CTO گزارش میدهند.
با قراردادن سورس کد این سه تابع در یک کلاس در حقیقت این بازیگران را به هم وابسته کردهایم. این وابستگی ممکن است باعث شود تغییری که توسط تیم CFO داده میشود، روی عملکرد تیم COO تاثیر بگذارد.
فرض کنید که متدهای calculatePay و reportHours برای محاسبه ساعات بدون اضافهکاری الگوریتم
شاید برای درک بهتر این اصل بهتر باشد به علائم نقض این اصل نگاهی بیاندازیم.
2. علامت اول: تکثیر تصادفی:
مثال مورد علاقه من برای این مورد، کلاس Employee در سیستم حقوق و دستمزد است. این کلاس سه متد به نامهای calculatePay, reportHours و save دارد.
شمای کلاس Employee
شمای کلاس Employee
با یک نگاه سطحی به این کلاس درمییابیم که این کلاس اصل SRP را زیر سوال بردهاست چرا که این کلاس مسئول پاسخگویی به سه بازیگر متفاوت است.
متد calculatePay توسط واحد حسابداری مورد استفاده قرار میگیرد که مسئول پاسخگویی به CFO است.
متد reportHours توسط واحد منابع انسانی استفاده می شود که به COO گزارش میدهد.
متد save نیز توسط مدیران پایگاه داده مورد استفاده قرار می گیرد که به CTO گزارش میدهند.
با قراردادن سورس کد این سه تابع در یک کلاس در حقیقت این بازیگران را به هم وابسته کردهایم. این وابستگی ممکن است باعث شود تغییری که توسط تیم CFO داده میشود، روی عملکرد تیم COO تاثیر بگذارد.فرض کنید که متدهای calculatePay و reportHours برای محاسبه ساعات بدون اضافهکاری الگوریتمولی سوال دیگر این است؛ آیا تفاوت رباتهای پولی با رایگان فقط در تبلیغات است؟باید خدمتتان عرض کنیم که پاسخ خیر است، بنا به چند دلیل :اول اینکه رباتهای رایگان به دلیل حجم بالای استفاده کنندگان، افت سرعت پیدا میکنند و در مواقعی امکان از کار افتادن ربات تا ساعاتی وجود دارد.
دوم اینکه به دلیل رایگان بودن این رباتها تیم های برنامه نویسی دلسوزانه به کاربران خود سرویس دهی نمی کنند و اینجور ربات ها در صورت وجود مشکلی، پشتیبانی بسیار ضعیفی دارند.
دلیل سوم به خاطر امکانات یا قابلیت های پایین ربات میباشد، برنامه نویسان ربات های رایگان به خاطر اینکه از منابع سرور استفاده کمتری شود، امکانات ربات را محدود می کنند.
تفاوت های دیگری هم بین رباتهای رایگان و پولی وجود دارد، ولی همین سه مورد کفایت می کند، تا متوجه باشید که چرا هزینه ماهیانه ناچیزی پرداخت کنید، بهتر است تا از ربات رایگان که امنیت گروهتان را به خطر می اندازد، استفاده کنید.
به شما دوستان عزیز پیشنهاد می کنم که ربات های پرقدرت ما را حتما یه تست کنید، تیم ربات نویسی با اولین نیست ولی با سعی در ارائه خدمات باکیفیت سعی دارد بهترین باشد. برای استفاده از رباتهای پرقدرت ما ابتدا در کانال ما از طریق لینک زیر عضو شوید، بعد داخل کانال میتوانید با پشتیبانی ربات در ارتباط باشید و سوالات خود را مطرح کنید. آموزش ها و دستورات ربات هم داخل کانال وجود دارد.
بررسی لینک خارجی
مورد سوم میتونه حتی لینک های خارجی هم باشه بعضی از محتوا ها نباید به سایتی لینک بدیم که به خاطر تحریم برای ایران فیلتر هستش.
استفاده از عکس ثابت به جای اسلایدرشاید یکی از مهمترین دلایلی که متخصصین شبکه، از سیستمعامل ویندوز، دلسرد شده (فارغ از مباحث امنیتی و رایگان بودن و غیره) و به سیستمعامل لینوکس (Linux)، علاقهمند شده بودند، همین ضعف Windows Command Prompt بود. هر چند که ما میتوانیم (میتوانستیم) به زیبایی و در حالی که به پشتی صندلی خود تکیه دادهایم و با استفاده از ماوس، در محیط ویندوز، بر روی My Computer = This PC، دکمه سمت راست ماوس را زده، گزینه Manage را انتخاب کرده و سپس از طریق انتخاب گزینه Local Users and Groups، اقدام به ایجاد گروهها و حسابهای کاربری نماییم! ولی زمانی که مسئول یک شبکه کامپیوتری بزرگ هستیم و باید بیش از ۱۰۰۰ حساب کاربری و ۱۰۰ گروه کاربری تعریف نماییم، این روال گرافیکی و جذاب، تقریبا ما را دیوانه میکند! در صورتی که از همان ابتدا در محیط لینوکس، میتوانستیم با استفاده از یک دستور ساده add-user در محیط ترمینال (SHELL)، اقدام به ایجاد یک حساب کاربری کرده و یا با استفاده از فایلهای sh لینوکس، چیزی شبیه Batch File، ایجاد کرده و با استفاده از یک دستور حلقه، اقدام به ایجاد هزاران حساب کاربری و گروههای کاربری نماییم!
این جذابیت لینوکس که اجازه میداد که تقریبا هر کاری که میتوان در محیط گرافیکی آن انجام داد را در محیط ترمینال آن، و با استفاده از دستورات انجام دهیم و چه بسا کارهایی را انجام دهیم که حتی در محیط گرافیکی نیز امکانپذیر نبود! ویندوز را بر آن داشت که نسبت به ایجاد یک محیط قدرتمندتر از Windows Command Prompt، اقدامی اساسی کند. مایکروسافت در اولین اقدام PowerShell نسخه یک را در محیط ویندوز ایجاد کرد و پس از آن در محیط ویندوز، ما شاهد دو محیط برای اجرای دستورات بودیم!
محیط Windows Command Prompt
محیط Windows PowerShell
در محیط Windows PowerShell، ضمن آنکه تمامی دستورات DOS، قابلیت اجرا داشتند، مجموعه دستورات PowerShell، توجه اکثر متخصصین شبکه و حتی برنامهنویسان را به خود جلب کرد! تا جایی که در آخرین نسخه PowerShell، یعنی نسخه ۷ آن، تقریبا هر کاری که در محیط گرافیکی ویندوز و به صورت Wizard، انجام میدهیم، معادل آن، دستوری در این محیط قدرتمند وجود دارد!پاورشل تا نسخه ۴، به صورت Native، توسعه پیدا کرد و برای اولین بار، مایکروسافت برای توسعه نسخه ۵ از DOT NET Framework استفاده کرد. مایکروسافت در نسخه ۵.۱، دو نسخه از پاورشل را منتشر نمود، یک نسخه به اصطلاح Desktop که کماکان با DOT NET Framework، توسعه پیدا کرده بود و یک نسخه به نام Core، که با اولین نسخه DOT NET Core ایجاد شده بود. مایکروسافت نسخه ۶ را کمی تغییر نام داد و نام آنرا PowerShell Core 6.0 قرار داد و صرفا از DOT NET Core، آن هم نسخه ۲ برای توسعه آن استفاده کرده. این روال تا نسخه ۶.۲ نیز ادامه داشت، تا در نهایت مجددا در نسخه ۷، نام آنٰرا به اختصار PowerShell 7 نام نهاد. مایکروسافت در این نسخه از DOT NET Core 3.1 استفاده کرد و از آنجایی که مدتهاست که تصمیم گرفته که از حالت دو نسخهای DOT NET Framework (آخرین نسخه آن ۴.۸) و DOT NET Core (آخرین نسخه آن ۳.۱) خارج شود، به زودی نسخه DOT NET 5 را منتشر خواهد کرد که در واقع نسخه یکی شده این دو خواهد بود. به همین دلیل نیز از اضافه کردن کلمه Core، به ادامه کلمه PowerShell اجنتاب کرد!از آنجایی که DOT NET Core، یک بستر Cross Platform میباشد! و برنامههایی که با این فریمورک ایجاد میشوند، قابلیت اجرا شدن در محیطهای لینوکس و iOS را دارند، خصوصا از نسخه ۶ پاورشل، بسیاری از کاربران لینوکس و iOS نیز به این ابزار علاقهمند شده و از آن در سیستمعاملهای خود استفاده میکنند. خصوصا کسانی که به هر شکل، در طول روز، با سیستمعاملهای متنوعی سر و کار دارند! و به جای اینکه مثلا در سیستمعامل لینوکس حفظ کنند که برای نمایش فایلها و پوشهها، دستوری به نام ls وجود دارد و در سیستمعامل ویندوز، دستوری به نام dir وجود دارد، اگر بر روی دستورات پاورشل، سرمایهگذاری کنند، به راحتی با نوشتن دستور Get-ChildItem میتوانند به مقصود خود در هر سیستمعاملی برسند!
- تاریخچه مختصری از PowerShell
- PowerShell 1.0
- تاریخ انتشار:۲۰۰۶
- زبانبرنامهنویسی: Native
- تعداد دستورات: ۱۲۹
- سیستمعاملهایی که آنرا پشتیبانی میکنند:
- Windows Vista
- Windows XP SP2
- Windows Server 2008
- Windows Server 2003 SP1
- PowerShell 2.0
- تاریخ انتشار:۲۰۰۸
- زبانبرنامهنویسی: Native
- تعداد دستورات: ۶۳۲
- سیستمعاملهایی که آنرا پشتیبانی میکنند:
-
سیستمعاملهایی که آنرا پشتیبانی میکنن
محصولات تجاری به شرکتها کمک میکند تا اونها بتونن محصولات خودشون را بسازن یا کسب و کار خودشون رو اداره کنند. نمونههایی از محصولات تجاری شامل مواد اولیه، تجهیزات، اجزای سازنده و خدمات تجاری هستش. نرمافزارهای تجاری توسط شرکتها برای پشتیبانی از کارکردهای کلیدی تجاری استفاده میشن؛ نمونههایی از برنامههای تجاری شامل حسابداری، مدیریت ارتباط مشتری، مدیریت منابع انسانی و نرمافزارهای برنامهریزی استراتژیک است که بیشتر با اندازه شرکتها طبقه بندی میشن.
محصولات همچنین توسط صنعتی که در خدمت آنها هستند هم توصیف میشن، صنایع دستهبندی گستردهای از قبیل انرژی، بهداشت و درمان، خدمات مالی یا فناوری اطلاعات هستند. محصولاتی که متناسب با نیازهای یک صنعت خاص طراحی شدن «محصولات عمودی بازار» نامیده می شن. نمونهای از محصولات عمودی، برنامه بهداشتی و درمانی برای مدیریت دادههای بیمار است. وقتی محصولی در صنایع مختلف حضور دارد، به عنوان محصول بازار افقی توصیف میشه و میتونه طیف گستردهای از نیازهای مشتری رو پشتیبانی کنه؛ به عنوان مثال یک محصول حسابداری کلی توسط همه مشاغل قابل استفاده است.
یکی از معمولترین حقههای تبلیغاتی اسمارتفونها اینست که یکسری تصویر با دوربینهای DSLR به ثبت میرسد و بعد از آنها به عنوان تصاویر ثبت شده با دوربین موبایل یاد میشود. هواوی به عنوان مثال از این ترفند بارها استفاده کرده: یک موردش با موبایل هواوی پی ۸ در سال ۲۰۱۶ بود و مورد دیگر با دیوایسهای سری نووا در سال ۲۰۱۸. ماجرای موبایلهای سری نووا زمانی مشخص شد که یک مدل ایسنتاگرامی، تصویر بالا را منتشر کرد و معلوم شد به جای دوربین موبایل، از دوربین DSLR استفاده شده است.
سامسونگ هم با این رویکرد چندان غریبه نیست و شعبه برزیل این شرکت تصاویری استوک منتشر میکرد که مدعی میشد با دوربین گلکسی A8 به ثبت رسیدهاند. در بیشتر مواقع میتوان گفت که این برندها بیشتر از اینکه اهدافی شوم داشته باشند، دچار قصور شدهاند. اما وقتی دوربینهای اسمارتفونهای امروزی به چنین حدی از کیفیت رسیده، دست زدن به چنین حرکاتی فقط باعث ناامیدی مردم میشود.
تقلب در بنچمارکها
بنچمارکها معمولا معیاری برای سنجش عملکرد دستگاه در دنیای واقعی نیستند، اما معمولا ایدهای کلی به ما میدهند که باید منتظر چه چیزی باشیم. متاسفانه تقلب در بنچمارکها هم به یکی دیگر از تاکتیکهای مارکتینگ اسمارتفونها تبدیل شده و چندین برند از آن استفاده کردهاند. این موضوع زمانی اتفاق میافتد که برندها میخواهند موبایل خود را از آنچه واقعا هست بهتر نشان دهند.
سازندگان موبایلهای هوشمند (و حتی تامینکنندگان چیپست) قادر به تشخیص زمانی که هستند که یک اپلیکیشن بنچمارک اجرا میشود و بعد وارد حالتی میشوند که شدیدا پرفورمنس را بالا میبرد. این حالت افزایش پرفورمنس، عمر باتری را نادیده میگیرد تا قادر به دست یافتن به بالاترین امتیاز بنچمارک ممکن باشد. اما مشکل اینجاست که این حالت در پرفورمنس دنیای واقعی در دسترس نیست و با تنظیمات پیشفرض دستگاه تفاوتهای فراوان دارد.
از جمله شرکتهایی که در سالهای اخیر به تقلب در بنچمارکها متهم شدهاند میتوان به مدیاتک، هواوی، آنر، اوپو، شیائومی و اچتیسی اشاره کرد.
تصاویر گمراهکننده در قیاس با واقعیت
یک تاکتیک ناامیدکننده دیگر در مارکتیک، نمایش رندرها و تصاویری است که ظاهری بهتر از ظاهر حقیقی دستگاه دارند. چه موضوع صحبت حاشیههای باریکتر باشد، چه بریدگی کوچکتر در نمایشگر و چه بیرونزدگی کمتر دوربین، چندین برند مختلف تا به امروز رندرهایی منتشر کردهاند که موجب گمراهی مردم شده است.
یکی از برجستهترین موارد این موضوع با موبایل لنوو Z5 اتفاق افتاد: زمانی که مدیر این کمپانی تصویری از طراحی بدون حاشیه این موبایل منتشر کرد (که بالاتر میبینیدش). در نهایت مشخص شد که این دستگاه در دنیای واقعی یک بریدگی عظیم به سبک آیفون روی نمایشگر دارد. یک مورد دیگر هم زمانی بود که هواوی در سال ۲۰۱۵ حاشیههای کناری موبایل پی ۸ را در تصاویر کاهش داد و در دنیای واقعی، حاشیهها بزرگتر بودند.
تولیدکنندگان کمتر شناختهشده مانند Bluboo و Umidig هم چنین رفتارهای مقلبانهای داشتهاند و بارها موبایلهای خود را در رندرها باریکتر و خوشدستتر نشان دادهاند.
فروشهای فوری و ادعای اتمام موجودی
وان پلاس یکی از اولین برندهای اسمارتفونی بود که به سراغ تاکتیک فروشهای فوری (Flash Sale) رفت و صرفا با این سبک فروش، توانست برای موبایل وانپلاس ۱ تقاضا ایجاد کند. معنای Flash Sale اینست که مردم در مدت زمانی محدود، قادر به خرید تعدادی محدود از دیوایس هوشمند هستند و اگر فرصت خود را از دست بدهند، باید تا فروش بعدی صبر کنند.
اگرچه برگزاری چنین فروشهایی مزیت خودش را برای به تعادل رساندن عرضه و تقاضا دارد، بسیاری از کمپانیها از آن به عنوان رویکردی تبلیغاتی استفاده میکنند. ایده کلی اینست که اگر تعداد دیوایسهای موجود را محدود جلوه دهیم، مردم بیشتر دلشان آن را میخواهد. شیائومی و ریلمی دو شرکتی بودهاند که این تاکتیک را به دفعات به کار گرفتهاند.
یک روش تبلیغاتی دیگر اینست که برندها اعلام میکنند در نخستین روز فروش یک دستگاه چقدر کسب درآمد کردهاند. برای مثال یک برند با افتخار میگوید در روز نخست عرضه یک مدل خاص، ۱ میلیون دلار فروش داشته است. اما اگر آن موبایل ۱۰۰۰ دلار قیمت داشته باشد، یعنی برند مورد نظر تنها ۱۰۰۰ دستگاه فروخته. در بازارهایی مانند چین، هند و آمریکا، چنین ارقامی اصلا به چشم نمیآید.
ادعاهای گمراهکننده درباره مشخصات سختافزاری
این هم یک تاکتیک تبلیغاتی دیگر برندهای سازنده موبایل هوشمند است که اطلاعات کذب راجع به تواناییهای موبایل را شامل میشود. قبلا در اخبار شنیدهایم که شرکتهایی مانند اوپو و سامسونگ درباره قابلیت زوم در دوربین موبایلهایشان اطلاعات گمراهکننده منتشر میکنند، اما این فقط شروع ماجراست.
تا به امروز چندین برند درجه دو داشتهایم که درباره رزولوشن دوربین محصولاتشان دروغ میگویند، برای مثال میگویند این دوربین قادر به ثبت تصاویر ۸ مگاپیکسلی است، اما در حقیقت تصاویری ۵ مگاپیکسلی ثبت میکند که به ۸ مگاپیکسل آپاسکیل شدهاند.
حالا که صحبت از دوربین است، چند برند هم داشتهایم که گفتهاند موبایلهایشان به دوربین سهگانه یا چهارگانه مجهز است اما در حقیقت صرفا سنسورهای ماکروی اضافه دارد. دوربینهای فوق عریض در صورت دسترسی به فوکوس خودکار، قادر به ثبت تصاویر ماکرو هستند، بنابراین یک سنسور جداگانه ماکرو اصلا ضروری نیست. اما برندها میخواهند پز دوربینهای سهگانه یا چهارگانه موبایلهایشان را بدهند و برای همین چنین مسیری را در پیش میگیرند.
یک تاکتیک مارکتینگ دیگر هم داریم که اگرچه به اندازه مثالهای بالا جدی نیست، اما ارزش اشاره کردن را دارد. بسیاری از اوقات خردهفروشان، تولیدکنندگان و دیگر شرکا از ارائه اطلاعات به صورت کامل خودداری می کنند. برای مثال آنها در لیست مشخصات دستگاه از عبارت «پردازنده هشت هستهای» استفاده میکنند. آن هم در حالی که در دنیای واقعی، تفاوت میان یک چیپست هشت هستهای اقتصادی و یک چیپست هشت هستهای پریمیوم، زمین تا آسمان است.
وقتی که شفاف به معنای شفاف نیست
یکی از ترندهای سال ۲۰۱۸، عرضه موبایلها با بدنه شفاف بود و دو شرکت شیائومی و اچتیسی مدعی شدند که در دو موبایل Mi 8 Explorer Edtion و U12 Plus قادر به مشاهده اجزای درونی موبایلها هستیم.
اما خیلی زود مشخص شد که در نسخه ویژه موبایل Mi 8 قادر به مشاهده اجزای درونی دستگاه نیستید و در واقع قطعاتی ساختگی زیر لایه شفاف قرار گرفته است. اینها قطعاتی واقعی هستند، اما خیلی ساده هیچکاری انجام نمیدهند و مدار اصلی را میپوشانند. اگر شیائومی خیلی راحت این موضوع را به مشتریان اعلام میکرد، تمام ماجرا تبدیل به یک رسوایی نمیشد.
خبری از دوربین سلفی داخل نمایشگر نیست
یکی از معمولترین حقههای تبلیغاتی اسمارتفونها اینست که یکسری تصویر با دوربینهای DSLR به ثبت میرسد و بعد از آنها به عنوان تصاویر ثبت شده با دوربین موبایل یاد میشود. هواوی به عنوان مثال از این ترفند بارها استفاده کرده: یک موردش با موبایل هواوی پی ۸ در سال ۲۰۱۶ بود و مورد دیگر با دیوایسهای سری نووا در سال ۲۰۱۸. ماجرای موبایلهای سری نووا زمانی مشخص شد که یک مدل ایسنتاگرامی، تصویر بالا را منتشر کرد و معلوم شد به جای دوربین موبایل، از دوربین DSLR استفاده شده است.
سامسونگ هم با این رویکرد چندان غریبه نیست و شعبه برزیل این شرکت تصاویری استوک منتشر میکرد که مدعی میشد با دوربین گلکسی A8 به ثبت رسیدهاند. در بیشتر مواقع میتوان گفت که این برندها بیشتر از اینکه اهدافی شوم داشته باشند، دچار قصور شدهاند. اما وقتی دوربینهای اسمارتفونهای امروزی به چنین حدی از کیفیت رسیده، دست زدن به چنین حرکاتی فقط باعث ناامیدی مردم میشود.
تقلب در بنچمارکها
بنچمارکها معمولا معیاری برای سنجش عملکرد دستگاه در دنیای واقعی نیستند، اما معمولا ایدهای کلی به ما میدهند که باید منتظر چه چیزی باشیم. متاسفانه تقلب در بنچمارکها هم به یکی دیگر از تاکتیکهای مارکتینگ اسمارتفونها تبدیل شده و چندین برند از آن استفاده کردهاند. این موضوع زمانی اتفاق میافتد که برندها میخواهند موبایل خود را از آنچه واقعا هست بهتر نشان دهند.سازندگان موبایلهای هوشمند (و حتی تامینکنندگان چیپست) قادر به تشخیص زمانی که هستند که یک اپلیکیشن بنچمارک اجرا میشود و بعد وارد حالتی میشوند که شدیدا پرفورمنس را بالا میبرد. این حالت افزایش پرفورمنس، عمر باتری را نادیده میگیرد تا قادر به دست یافتن به بالاترین امتیاز بنچمارک ممکن باشد. اما مشکل اینجاست که این حالت در پرفورمنس دنیای واقعی در دسترس نیست و با تنظیمات پیشفرض دستگاه تفاوتهای فراوان دارد.
از جمله شرکتهایی که در سالهای اخیر به تقلب در بنچمارکها متهم شدهاند میتوان به مدیاتک، هواوی، آنر، اوپو، شیائومی و اچتیسی اشاره کرد.
تصاویر گمراهکننده در قیاس با واقعیت
یک تاکتیک ناامیدکننده دیگر در مارکتیک، نمایش رندرها و تصاویری است که ظاهری بهتر از ظاهر حقیقی دستگاه دارند. چه موضوع صحبت حاشیههای باریکتر باشد، چه بریدگی کوچکتر در نمایشگر و چه بیرونزدگی کمتر دوربین، چندین برند مختلف تا به امروز رندرهایی منتشر کردهاند که موجب گمراهی مردم شده است.
یکی از برجستهترین موارد این موضوع با موبایل لنوو Z5 اتفاق افتاد: زمانی که مدیر این کمپانی تصویری از طراحی بدون حاشیه این موبایل منتشر کرد (که بالاتر میبینیدش). در نهایت مشخص شد که این دستگاه در دنیای واقعی یک بریدگی عظیم به سبک آیفون روی نمایشگر دارد. یک مورد دیگر هم زمانی بود که هواوی در سال ۲۰۱۵ حاشیههای کناری موبایل پی ۸ را در تصاویر کاهش داد و در دنیای واقعی، حاشیهها بزرگتر بودند.
تولیدکنندگان کمتر شناختهشده مانند Bluboo و Umidig هم چنین رفتارهای مقلبانهای داشتهاند و بارها موبایلهای خود را در رندرها باریکتر و خوشدستتر نشان دادهاند.
فروشهای فوری و ادعای اتمام موجودی
وان پلاس یکی از اولین برندهای اسمارتفونی بود که به سراغ تاکتیک فروشهای فوری (Flash Sale) رفت و صرفا با این سبک فروش، توانست برای موبایل وانپلاس ۱ تقاضا ایجاد کند. معنای Flash Sale اینست که مردم در مدت زمانی محدود، قادر به خرید تعدادی محدود از دیوایس هوشمند هستند و اگر فرصت خود را از دست بدهند، باید تا فروش بعدی صبر کنند.اگرچه برگزاری چنین فروشهایی مزیت خودش را برای به تعادل رساندن عرضه و تقاضا دارد، بسیاری از کمپانیها از آن به عنوان رویکردی تبلیغاتی استفاده میکنند. ایده کلی اینست که اگر تعداد دیوایسهای موجود را محدود جلوه دهیم، مردم بیشتر دلشان آن را میخواهد. شیائومی و ریلمی دو شرکتی بودهاند که این تاکتیک را به دفعات به کار گرفتهاند.
یک روش تبلیغاتی دیگر اینست که برندها اعلام میکنند در نخستین روز فروش یک دستگاه چقدر کسب درآمد کردهاند. برای مثال یک برند با افتخار میگوید در روز نخست عرضه یک مدل خاص، ۱ میلیون دلار فروش داشته است. اما اگر آن موبایل ۱۰۰۰ دلار قیمت داشته باشد، یعنی برند مورد نظر تنها ۱۰۰۰ دستگاه فروخته. در بازارهایی مانند چین، هند و آمریکا، چنین ارقامی اصلا به چشم نمیآید.
ادعاهای گمراهکننده درباره مشخصات سختافزاری