بایگانی برچسب‌ها : اسپم

کامنت Comment

کامنت یا Comment چیست؟

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

مفهوم کامنت در کاربردهای عادی

همانطور که گفته شد به نظرات و بازخوردهایی که کاربران در یک شبکه اجتماعی یا سایت در واکنش به محتوای یک مطلب یا پست درج می‌کنند و یا در مورد تجربه خود از خرید یک محصول در صفحات فروشگاه‌های اینترنتی بیان می‌کنند Comment گفته می‌شود. حتی در برخی از واژه پردازها (نظیر Microsoft Word) کاربران می‌توانند روی بخشی از متن یک سند برای همکاران یا نویسنده اصلی سند، نظر و پیشنهاد خود را در قالب کامنت ثبت کنند.

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

کامنت اینستاگرام Instagram Comment
دو Comment در یک پست اینستاگرامی

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

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

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

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

در زبان های برنامه نویسی مختلف از نمادها و علائم گوناگونی برای تعیین بخش کامنت استفاده می‌شود. این تعیین کننده‌ها به کامپایلر یا مفسر اعلام می‌کنند ناحیه مربوطه متعلق به یک Comment است و محتوای آن‌ها نباید مشابه با بخش‌های معمولی سورس کد مورد پردازش قرار گیرد.

لازم است بدانید در فرایند کمینه سازی (Minification)، کامنت ها از جمله اجزائی هستند که برای کاهش حجم نهایی فایل از سورس کد حذف می‌شوند.

انواع کامنت ها

در اغلب زبان‌ها از دو نوع کامنت خطی و چندخطی در سورس کدها پشتیبانی می‌شود که معمولا از علائم مختلفی برای تعیین محدوده هرکدام از آن‌ها استفاده می‌شود.

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

از سوی دیگر، کامنت های چند خطی (Multi-line Comment) که به کامنت های بلاکی (Block Comments) نیز مشهور هستند ناحیه‌ای از سورس کد – متشکل از تعدادی خط – را معین می‌کنند و معمولا برای بیان هدف و عملکرد کلی یک متد، کلاس یا هر قطعه کد نسبتا پیچیده (که نیازمند توضیحی طولانی در تعدادی خط است) به کار می‌روند. محدوده این ناحیه توسط یک نماد آغازین و یک نماد انتهایی معین می‌شود و هر چیزی که مابین آن‌ها قرار بگیرد یک Comment به شمار می‌رود.

نوع دیگری از کامنت ها موسوم به کامنت های مستندات (Documentation Comments) نیز وجود دارد که در سورس کد برخی از زبان های برنامه نویسی (از جمله زبان جاوا و سی شارپ) پشتیبانی می‌شود. از این نوع Comment ها برای ایجاد خودکار مستندات توسط ابزارهایی موسوم به تولید کننده مستندات (Documentation Generator) استفاده می‌شود (Javadoc از جمله این ابزارهاست که برای کدهای به زبان جاوا مورد استفاده قرار می‌گیرد). در این کامنت ها معمولا از تگ های مختلفی برای تعیین نویسنده، نسخه و … پشتیبانی می‌شود که از این تگ ها به هنگام تولید مستندات استفاده می‌شود.

کامنت ها در زبان های برنامه نویسی مختلف

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

کامنت Comment
نمونه‌ای از Comment های خطی و چندخطی در زبان برنامه نویسی جاوا که به انگلیسی نوشته شده است.

در جدول زیر می‌توانید لیستی از علائم مورد استفاده به عنوان تعیین کننده‌های Comment خطی و چندخطی را در برخی از زبان های برنامه نویسی و نشانه گذاری مشاهده کنید:

زبانتعیین کننده کامنت خطیتعیین کننده کامنت چندخطی
تعیین کننده ابتداتعیین کننده انتها
 Java, JavaScript, C++, C#, PHP///**/
Cاز همان ساختار چندخطی استفاده می‌کند/**/
HTML, XMLاز همان ساختار چندخطی استفاده می‌کند<!––>
Visual Basicاین زبان فاقد ساختار مجزا برای نوع چند خطی است
Ruby#=begin=end

کاربردها و محتوای کامنت ها

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

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

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

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

در بسیاری از محیط های یکپارچه توسعه، برنامه نویسان می‌توانند به سرعت با کمک آیتم‌های موجود در منو، نوار ابزار یا کلیدهای میانبر بخشی از کد انتخاب شده را به صورت Comment درآورند یا آن را از حالت Comment خارج کنند (Uncomment).

پیوندهای پیشنهادی تک دیک

لینک واژه در ویکیپدیا

ایمیل Email

ایمیل یا Email چیست؟

ایمیل (Email یا E-mail) که در واقع کوتاه شده عبارت Electronic Mail است روشی برای انتقال پیام میان افراد با استفاده از دستگاه های الکترونیکی و شبکه های رایانه ای است. رایانامه، پست الکترونیک یا نامه الکترونیک معادل‌هایی هستند که در زبان فارسی برای این واژه به کار می‌رود.

امروزه ایمیل ها معمولا بر بستر شبکه اینترنت فعالیت می‌کنند و سامانه های ایمیل نیز از مدلی موسوم به Store and Forward تبعیت می‌کنند. در این مدل، سرورهای ایمیل مسئولیت دریافت، ارسال و نگه داری پیام ها را برعهده دارند؛ این درحالیست که در نخستین روزهای شکل گیری این سیستم ها، دریافت کننده و ارسال کننده پیام هر دو مجبور بودند برای ارتباط با یکدیگر به طور همزمان آنلاین باشند.

نماد at sign در نشانی های ایمیل
نماد at sign به عتوان بخشی از نشانی های ایمیل امروزی شناخته می‌شود.

پست الکترونیک توسط یکی از پیشتازان دانش رایانه با نام ری تاملینسون (Ray Tomlinson) اختراع شده است و بارقه‌هایی از نمونه‌های امروزی آن را می‌توان در دهه‌های 1960 و 1970 میلادی جستجو کرد. هرچند در ابتدا تنها متون ASCII از طریق ایمیل ها قابل ارسال و دریافت بودند اما با ظهور استاندارد MIME (کوتاه شده عبارت Multipurpose Internet Mail Extensions)، فرمت ایمیل ها برای پشتیبانی از انواع کاراکترها و ارسال فایل های صوتی، تصویری و … در قالب ضمیمه ها (Attachment) گسترش یافته است.

این روزها با توسعه استفاده از اینترنت و تعدد فراهم کنندگان سرویس های پست الکترونیک، داشتن حداقل یک حساب کاربری ایمیل برای اغلب کاربران، امری کاملا بدیهی تلقی می‌شود. بسیاری از فراهم کنندگان پرآوازه این سرویس‌ها، مجموعه‌ای از خدمات خود را به صورت رایگان در اختیار کاربران قرار می‌دهند و متقاضیان می‌توانند تنها در عرض چند دقیقه با ثبت نام در این سرویس‌ها به حجم قابل قبولی از فضا برای ذخیره سازی پیام ها و همچنین امکانات متعدد دسترسی پیدا کنند. از جمله این سرویس‌ها می‌توان به سرویس ایمیل گوگل موسوم به جیمیل (Gmail)، سرویس ایمیل مایکروسافت (که با نشانی Outlook.com قابل دسترسی است)، سرویس یاهو میل (Yahoo! Mail) و AOL Mail اشاره کرد.

کلاینت ایمیل

کاربران یک سرویس پست الکترونیک می‌توانند از نرم افزارهایی موسوم به کلاینت ایمیل (Email Client) یا عامل کاریری ایمیل (Mail User Agent – MUA) برای دسترسی به رایانامه خود و مدیریت پیام ها، ارسال یا مشاهده آن‌ها استفاده نمایند. از جمله مشهورترین کلاینت های ایمیل قابل استفاده روی رایانه می‌توان به Mozilla Thunderbird, Mailbird و eM Client اشاره کرد.

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

نشانی ایمیل

هر رایانامه با یک رایانشانی یا آدرس ایمیل (Email Address) مخصوص به خود شناخته می‌شود که از آن (مشابه با یک کد پستی در دنیای سنتی نامه های پستی) برای دریافت پیام استفاده می‌شود. این نشانی در حال حاضر دارای فرمتی مشابه با [email protected] می‌باشد. بخش اول این نشانی که پیش از علامت @ قرار گرفته است (در اینجا Ali.Reza76) مشخص کننده میل باکس می‌باشد و معمولا همان نام کاربری صاحب آنست. بخش دوم که پس از علامت @ قرار می‌گیرد (در اینجا example.com) بیانگر نام دامنه ای است که ایمیل به آن منتسب می‌باشد.

پیام های ایمیل

پیام های ایمیل شامل دو بخش اصلی موسوم به هدر پیام (Message Header) و بدنه پیام (Message Body) هستند. هدر، اطلاعات مختلفی را در قالب مجموعه‌ای از فیلدها (که با نام فیلدهای هدر شناخته می‌شوند) در خود نگه داری می‌کند. این فیلدها شامل فیلد From (نشانی ایمیل و احتمالا نام فرستنده پیام که معمولا توسط کلاینت ایمیل به طور خودکار تکمیل می‌شود)، فیلد To (نشانی ایمیل و احتمالا نام گیرنده یا گیرندگان پیام)، فیلد Cc و Bcc (نشانی گیرندگان ثانویه پیام)، فیلد Subject (موضوع پیام)، تاریخ ارسال پیام (که معمولا توسط کلاینت به صورت خودکار هنگام ارسال پیام تکمیل می‌شود) و … می‌باشد. بدنه پیام ها نیز حاوی محتوای پیام در قالب متنی ساده یا با فرمت HTML است.

ارسال و دریافت پیام ایمیل

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

در کنار این دو فیلد اصلی و پرکاربرد، معمولا فیلدهایی با لیبل های Cc و Bcc نیز در اغلب کلاینت ها تعبیه شده است که برای وارد کردن نشانی گیرندگان فرعی پیام مورد استفاده قرار می‌گیرد. در نهایت اگر مریم نیاز به ارسال فایل به عنوان ضمیمه (Attachment) همراه با پیام داشته باشد کافیست از گزینه‌ای که معمولا با عنوان Attach Files با نماد گیره کاغذ در اکثر کلاینت ها وجود دارد فایل یا فایل های مورد نظر خود را به پیام پیوست کند. پس از اتمام کار، مریم می‌تواند با کلیک روی دکمه ای که معمولا با عنوان Send مشخص شده است پیام را برای سمیرا ارسال نماید.

در سمت مقابل، سمیرا نیز با ورود به کلاینت ایمیل خود و مراجعه به صندوق ورودی که معمولا با عنوان اینباکس (Inbox) مشخص می‌شود می‌تواند پیام‌های دریافتی خود (از جمله پیام مریم) را مشاهده کند و به آن پاسخ دهد (Reply) و یا حتی آن را برای فرد دیگری ارسال کند (Forward). در صورتی که پیامی به عنوان هرزنامه (Email Spam) تشخیص داده شود معمولا در بخشی به نام Spam یا Junk قابل مشاهده است.

بخش نوشتن پیام ایمیل Compose
بخش نگارش پیام جدید در وب میل Gmail – فیلدهای پرکاربرد همراه با ابزارهایی که به کاربر در نگارش پیام کمک می‌کنند در تصویر قابل مشاهده است.
پیام ایمیل Email Message
نمونه ای از یک پیام آماده ارسال در وب میل Gmail – در این تصویر تنها فیلد To با یک نشانی پست الکترونیک تکمیل شده است که به صورت مبهم نمایش داده شده است و فیلدهای Cc و Bcc به دلیل خالی بودن پنهان شده است. فیلد Subject نیز با عنوان “دعوت به جشن دوستانه آخر سال” تکمیل شده است. در قسمت محتوا یا بدنه پیام متنی کوتاه را مشاهده می‌کنید که با “سلام سمیرای عزیز…” آغاز شده است.

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

ایمیل چگونه کار می کند؟

مجددا سناریوی فوق را در نظر بگیرید. زمانی که مریم پیام خود را ارسال می‌کند ابتدا این پیام برای سروری موسوم به SMTP Server (کوتاه شده عبارت Simple Mail Transfer Protocol Server) ارسال می‌شود. این سرور نقش یک دفتر پستی در دنیای نامه های سنتی را ایفا می‌کند و برای آنکه متوجه شود پیام مریم را باید به کجا ارسال کند لازم است ابتدا با DNS Server ارتباط برقرار کند.

DNS Server نیز مشابه با یک دفترچه آدرس عمل می‌کند و برای دامنه ای که ایمیل گیرنده (سمیرا) به آن تعلق دارد در پاسخ، رکوردهایی از نوع MX (یا Mail Exchanger record) را در اختیار SMTP Server قرار می‌دهد. این رکوردها لیستی از سرورهای تبادل ایمیل موسوم به عامل انتقال پیام (Message Transfer Agent – MTA) را مشخص می‌کنند. به این ترتیب SMTP Server براساس پروتکل SMTP پیام مریم را برای MTA ارسال می‌کند و MTA پیام دریافتی را در اختیار عامل تحویل پیام (Mail Delivery Agent – MDA) قرار می‌دهد. MDA نیز وظیفه دارد پیام دریافتی از MTA را سازماندهی کرده و در جعبه پیام های ورودی سمیرا قرار دهد. در نهایت سمیرا با استفاده از پروتکل هایی نظیر IMAP (کوتاه شده عبارت Internet Message Access Protocol) یا POP3 (نسخه سوم پروتکل POP – کوتاه شده عبارت Post Office Protocol)، پیام مریم را در کلاینت پست الکترونیک خود دریافت می‌کند.

ایمیل Email
مسیری که یک پیام ایمیل از مبدأ (با نشانی فرضی [email protected]) تا مقصد (با نشانی [email protected]) طی می‌کند. ترجمه شده و ویرایش شده از نسخه انگلیسی ویکیپدیا

کاربردهای ایمیل

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

مزایای استفاده از ایمیل و چالش های مرتبط با آن

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

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

پیوندهای پیشنهادی تک دیک

لینک واژه در ویکیپدیا