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

مهمان گرامی، خوش‌آمدید!
شما قبل از این که بتوانید در این انجمن مطلبی ارسال کنید باید ثبت نام کنید.

نام کاربری
  

گذرواژه‌
  





جستجوی انجمن‌ها

(جستجوی پیشرفته)

آمار انجمن
» اعضا: 3,543
» آخرین عضو: makabaka
» موضوعات انجمن: 10,393
» ارسال‌های انجمن: 14,568

آمار کامل

کاربران آنلاین
در حال حاضر 323 کاربر آنلاین وجود دارد.
» 0 عضو | 323 مهمان
،

آخرین موضوع‌ها
بوم‌گردی؛ سفر به قلب فرهن...
انجمن: سفرهای داخلی
آخرین ارسال توسط: arvin912
دیروز، ۰۳:۰۲ عصر
» پاسخ: 0
» بازدید: 33
ویلا در شمال؛ تجربه لوکس ...
انجمن: سفرهای داخلی
آخرین ارسال توسط: arvin912
دیروز، ۰۲:۵۹ عصر
» پاسخ: 0
» بازدید: 36
کلبه چوبی؛ پناهی گرم در د...
انجمن: سفرهای داخلی
آخرین ارسال توسط: arvin912
دیروز، ۰۲:۵۸ عصر
» پاسخ: 0
» بازدید: 31
سفر به ماسال؛ اقامت در وی...
انجمن: سفرهای داخلی
آخرین ارسال توسط: arvin912
۰۴/۸/۲۳، ۰۱:۴۲ عصر
» پاسخ: 0
» بازدید: 85
بهترین ویلاهای بابلسر برا...
انجمن: سفرهای داخلی
آخرین ارسال توسط: arvin912
۰۴/۸/۲۳، ۰۱:۴۱ عصر
» پاسخ: 0
» بازدید: 69
سوئیت یا ویلا؟ بهترین گزی...
انجمن: سفرهای داخلی
آخرین ارسال توسط: arvin912
۰۴/۸/۲۳، ۰۱:۴۰ عصر
» پاسخ: 0
» بازدید: 57
آینده‌ای بدون صف؛ وقتی فن...
انجمن: گفتگوی آزاد
آخرین ارسال توسط: marjan1999
۰۴/۸/۲۱، ۰۱:۲۸ عصر
» پاسخ: 0
» بازدید: 71
نقش دستگیره هوشمند در امن...
انجمن: گفتگوی آزاد
آخرین ارسال توسط: marjan1999
۰۴/۸/۲۰، ۰۴:۵۵ عصر
» پاسخ: 0
» بازدید: 66
آموزش طرز تهیه کیک مرغ با...
انجمن: گفتگوی آزاد
آخرین ارسال توسط: navidradi
۰۴/۸/۱۹، ۰۶:۱۲ عصر
» پاسخ: 0
» بازدید: 63
ویلا بابلسر؛ ترکیب دریا، ...
انجمن: سفرهای داخلی
آخرین ارسال توسط: arvin912
۰۴/۸/۱۶، ۰۲:۲۵ عصر
» پاسخ: 0
» بازدید: 91
ویلا؛ انتخابی برای سبک زن...
انجمن: سفرهای داخلی
آخرین ارسال توسط: arvin912
۰۴/۸/۱۶، ۰۲:۲۱ عصر
» پاسخ: 0
» بازدید: 74
اجاره ویلا در رشت؛ تجربه ...
انجمن: سفرهای داخلی
آخرین ارسال توسط: arvin912
۰۴/۸/۱۶، ۰۲:۱۶ عصر
» پاسخ: 0
» بازدید: 76
هوشمند سازی ساختمان در ته...
انجمن: گفتگوی آزاد
آخرین ارسال توسط: navidradi
۰۴/۸/۱۴، ۱۰:۳۷ صبح
» پاسخ: 1
» بازدید: 970
زندگی محلی را با بوم‌گردی...
انجمن: سفرهای داخلی
آخرین ارسال توسط: arvin912
۰۴/۸/۹، ۰۸:۵۶ عصر
» پاسخ: 0
» بازدید: 85
یک آخر هفته رویایی در ویل...
انجمن: سفرهای داخلی
آخرین ارسال توسط: arvin912
۰۴/۸/۹، ۰۸:۵۵ عصر
» پاسخ: 0
» بازدید: 80

 
  پیام رسان سروش شماره مدیران کانال را لو می دهد
ارسال کننده: نگار - ۹۷/۱/۱۵، ۰۵:۰۳ صبح - انجمن: شبکه های اجتماعی - پاسخ (1)

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

به عنوان مثال در تصویر شماره موبایل ادمین کانال جناب آقای جهرمی (وزیر ارتباطات) رو مشاهده می‌ کنید.

[تصویر:  do.php?img=4714]

چاپ این مطلب

  شناخت انواع مختلف لوگو و دسته بندی آنها
ارسال کننده: ahmad20 - ۹۷/۱/۱۵، ۰۴:۳۳ صبح - انجمن: طراحی گرافیک - پاسخ (1)

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

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

[تصویر:  do.php?img=4711]

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

[تصویر:  do.php?img=4709]

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

[تصویر:  do.php?img=4710]

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

[تصویر:  do.php?img=4713]

Emblem
یک لوگو امبلم طرح لوگو رو با یک طرح گرافیکی پوشش میده. مدل هایی که از این نوع میشه مثال زد مثل لوگوی هارلی دیویدسون، ان اف ال و استارباکس هستن:

[تصویر:  do.php?img=4712]
همونطور که دیدید این ۵ دسته میتونه تمامی لوگوهایی که وجود داره رو شامل بشه. برای تمرین میتونید به تصویر شاخص همین آموزش نگاه کنید تا ببینید که هر کدوم از این لوگوها جزء کدوم دسته محسوب میشن و از این به بعد اگه قراره که لوگویی طراحی کنید باید تصمیم بگیرید که چه سبکی رو برای کاره نهایی در نظر دارید.

چاپ این مطلب

  غیرفعال کردن نمایش خطاهای php با htaccess
ارسال کننده: saberi - ۹۷/۱/۱۵، ۰۳:۴۸ صبح - انجمن: PHP - بدون پاسخ

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

در این پست یک قطعه کد معرفی می کنیم که بایستی در فایل htaccess  در root پروژه قرار دهید و اگر این فایل نبود، آن را ایجاد کرده و این کد را قرار بدید.

*محتوای این قسمت تنها برای اعضای انجمن قابل مشاهده می باشد. *


کار تمام شد، حال چنانچه خطایی وجود داشته باشد نمایش داده نخواهد شد.

چاپ این مطلب

  ساخت اسکریپت کوتاه کننده لینک با PHP به صورت Ajax
ارسال کننده: saberi - ۹۷/۱/۱۵، ۰۳:۳۱ صبح - انجمن: PHP - بدون پاسخ

به احتمال زیاد تا به حال به سایتهایی برخوردید که یک لینک طولانی را گرفته و آن را به یک لینک کوتاه تبدیل می کنند. سایتهایی مثل tinyurl.com , bit.ly و … در این پست می خواهیم آموزش ساخت اسکریپت کوتاه کننده لینک را به وسیله PHP به صورت ای جکس آموزش دهیم.

سورس این اسکریپت را از فایل پیوست انتهای مقاله دانلود کنید.

دیتابیس این اسکریپت را می سازیم :

*محتوای این قسمت تنها برای اعضای انجمن قابل مشاهده می باشد. *

بعد از ساخت دیتابیس بالا در فایل  config.php کدهای زیر را بنویسید و مقدار دهی کنید :

*محتوای این قسمت تنها برای اعضای انجمن قابل مشاهده می باشد. *

برای ساخت لینکهای کوتاه و ذخیره در دیتابیس کلاسی می نوسیم به نام UrlShortener که در زیر به توضیح این کلاس می پردازیم :

این کلاس ۶ متد دارد و از کتابخانه PDO برای اتصال با Mysql استفاده می کند :

*محتوای این قسمت تنها برای اعضای انجمن قابل مشاهده می باشد. *

در متد سازنده یک شیء از کلاس pdo ساختیم و رشته اتصال به دیتابیس را به آن  پاس دادیم.
متد createShortCode : این متد یک رشته بصورت تصادفی ایجاد می کند، اگر رشته در دیتابیس بود یک رشته دیگر می سازد و برمی گرداند.
متد validUrl : یک url میگیرد و فرمت url رو چک می کند، در صورت صحیح بودن true بر می گرداند.
متد existInDb : این متد یک url می گیرد و چک می کند که آیا در دیتابیس ذخیره شده یا خیر؟
متد insertInDb : این متد هم url مورد نظر را می گیرد . ابتدا چک می کند اگر در دیتابیس وجود داشت لینک کوتاه آن را برمی گرداند، ادر غیر اینصورت لینک را به دیتابیس اضافه می کند و لینک کوتاه را برمی گرداند.
متد getUrl : این متد کد کوتاه شده را می گیرد و آدرس مربوط را برمی گرداند.
متد addCount : این متد به ازای هر بازدید از آدرس ها یکی به تعداد فیلد visits اضافه می کند.

در فایل index.php فقط قسمت کدهای jquery را توضیح می دهیم.

*محتوای این قسمت تنها برای اعضای انجمن قابل مشاهده می باشد. *

در این قسمت زمانی که روی کلید ارسال فرم کلیک می شود یک درخواست به صورت post به صفحه shortener.php ارسال می شود و جواب این درخواست با فرمت json دریافت می شود.

دستور e.preventDefault برای جلوگیری از ارسال فرم هنگام کلیک روی دکمه submit فرم می باشد.

فایل shortebner.php

*محتوای این قسمت تنها برای اعضای انجمن قابل مشاهده می باشد. *

در این فایل هم روال کار بسیار ساده است. ابتدا فایل مربوط به تنظیمات را include کردیم. سپس یک شیء از کلاس UrlShortener ایجاد کردیم و بعد آدرس URL را در دیتابیس ذخیره می کنیم و نتیجه را با فرمت json نمایش می دهیم.

تا اینجا یک لینک از کاربر گرفتیم. برای این لینک یک کد کوتاه ساختیم و در دیتابیس ذخیره کردیم. حال برای اینکه کاربر بتواند با کلیک روی لینک به url اصلی برود، یک فایل با نام goto.php می سازیم و کدهای زیر روا داخل آن می نویسیم :

*محتوای این قسمت تنها برای اعضای انجمن قابل مشاهده می باشد. *

در این فایل کد کوتاهی که در متغیر $_GET[‘url’] قرار گرفته رو در دیتابیس پیدا می کنیم و URL مربوط به این کد رو از دیتابیس می خوانیم.
در نهایت با دستور header صفحه را به url مورد نظر انتقال می دهیم. در صورتی که کد کوتاه در دیتابیس وجود نداشته باشد، صفحه ۴۰۴ به کاربر نمایش داده می شود.
بعد از ایجاد فایل goto.php که در مرحله قبل انجام شد یک فایل .htaccess می سازیم تا به جای آدرس :
دیدن لینک ها برای شما امکان پذیر نیست. لطفا ثبت نام کنید یا وارد حساب خود شوید تا بتوانید لینک ها را ببینید.

آدرسهایی با فرمت زیر داشته باشیم :
دیدن لینک ها برای شما امکان پذیر نیست. لطفا ثبت نام کنید یا وارد حساب خود شوید تا بتوانید لینک ها را ببینید.


پس از ساخت فایل htaccess کدهای زیر را داخل آن بنویسید :

*محتوای این قسمت تنها برای اعضای انجمن قابل مشاهده می باشد. *

خب اسکریپت ما آماده شد.

امیدوارم مورد استفاده شما قرار گرفته باشد.






فایل‌(های) پیوست شده
.zip   url-shortener.zip (اندازه: 115/58 KB / تعداد دفعات دریافت: 1)
چاپ این مطلب

  به دست آوردن پسوند فایل با PHP
ارسال کننده: saberi - ۹۷/۱/۱۵، ۰۲:۵۳ صبح - انجمن: PHP - بدون پاسخ

در این پست نحوه تشخیص پسوند فایل ها به وسیله PHP آموزش داده میشود. برای این کار چند روش وجود دارد که هرکدام مزایا و معایبی دارد.
 
روش اول : استفاده از تابع pathinfo
این تابع اطلاعاتی در مورد فایل یا پوشه مورد نظر را بر میگرداند که پسوند فایل، یکی از این اطلاعات است.

*محتوای این قسمت تنها برای اعضای انجمن قابل مشاهده می باشد. *

از این تابع به صورت زیر هم میشود استفاده کرد :

*محتوای این قسمت تنها برای اعضای انجمن قابل مشاهده می باشد. *

روش دوم: استفاده از تابع explode و end

*محتوای این قسمت تنها برای اعضای انجمن قابل مشاهده می باشد. *

به جای تابع end از دستور array_pop هم میشه استفاده کرد.

روش سوم : استفاده از توابع substr و strrchr

*محتوای این قسمت تنها برای اعضای انجمن قابل مشاهده می باشد. *

ابتدا آخرین . رو پیدا می کند و سپس با substr قسمت پسوند را برمی گرداند.

این هم یک روش دیگر با substr

*محتوای این قسمت تنها برای اعضای انجمن قابل مشاهده می باشد. *

از آخر نام فایل ۳ کاراکتر را برمیگرداند.

روش هایی که در بالا ذکر شد ممکن است در بعضی مواقع کار نکند. اما بهترین راه استفاده از روش اول است.

چاپ این مطلب

  دانلود چند فایل با استفاده از header ها در PHP
ارسال کننده: saberi - ۹۷/۱/۱۵، ۰۲:۴۴ صبح - انجمن: PHP - بدون پاسخ

شاید با این مشکل بر خورده باشید که نیاز باشه چند فایل رو به وسیله header برای کاربر قابل دانلود کنید.اما در اصل چنین چیزی امکان پذیر نیست و header فقط میتونه یک فایل رو برای دانلود به سمت کاربر ارسال کنه.
راه حل این روش اینه که ابتدا فایلهاتون رو فشرده کنید سپس به سمت کاربر بفرستید. با استفاده از کد زیر میتونید چند فایل رو باهم فشرده کنید و با استفاده از header ها دانلود کنید.

*محتوای این قسمت تنها برای اعضای انجمن قابل مشاهده می باشد. *

برای استفاده از این تابع هم به صورت زیر عمل می کنیم :

*محتوای این قسمت تنها برای اعضای انجمن قابل مشاهده می باشد. *


موفق باشین

چاپ این مطلب

  تغییر اندازه تصاویر بوسیله php
ارسال کننده: saberi - ۹۷/۱/۱۵، ۰۲:۴۱ صبح - انجمن: PHP - بدون پاسخ

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

خب بریم سر کد کلاس:

*محتوای این قسمت تنها برای اعضای انجمن قابل مشاهده می باشد. *

تابع resizeImage($newWidth, $newHeight, $option=”auto”) وظیفه اصلی تغییر اندازه تصویر به عهده داره که پارامتر اول عرض تصویر جدید و پارامتر دوم طول تصویر جدید و پارامتر سوم روش تغییر سایز تصویر که می تواند چهار مقدارexactوportraitوlandscapeوauto به خودش بگیرد . این مقادیر توسط متد getDimensions پردازش و ابعاد جدید تولید می گردند .

مثال :

*محتوای این قسمت تنها برای اعضای انجمن قابل مشاهده می باشد. *



چاپ این مطلب

  کد لود تصاویر با جی کوئری
ارسال کننده: saberi - ۹۷/۱/۱۵، ۰۲:۳۸ صبح - انجمن: jquery - بدون پاسخ

شاید برای شما هم این مشکل پیش اومده باشه که به عنوان مثال برای یک تگ a یک تصویر پس زمینه میذارید و میخواید هنگامی که موس میره روی این تگ تصویر عوض شه.

خب این کار خیلی ساده است :

*محتوای این قسمت تنها برای اعضای انجمن قابل مشاهده می باشد. *

و استایل CSS :

*محتوای این قسمت تنها برای اعضای انجمن قابل مشاهده می باشد. *

و برای hover :

*محتوای این قسمت تنها برای اعضای انجمن قابل مشاهده می باشد. *

اما مشکلی که این کد داره اینه که هنگامی که برای بار اول روی این لینک میریم عکس ۲٫png که قراره نمایش داده بشه با تاخیر نمایش داده میشه.این به این خاطره که هنوز این عکس لود نشده. داشتن چنین مشکلی توی سایت جالب نیست و سایت رو از حالت حرفه ای در میاره.
برای حل این مشکل میتونیم از jQuery کمک بگیریم . به اینصورت که هنگامی که صفحه داره لود میشه عکس دوم رو هم لود کنیم اما نمایشش ندیم.
برای اینکار میتونید از تابع زیر استفاده کنید :

*محتوای این قسمت تنها برای اعضای انجمن قابل مشاهده می باشد. *

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

*محتوای این قسمت تنها برای اعضای انجمن قابل مشاهده می باشد. *

با این کار تمام عکسهایی که به صورت آرایه به این تابع پاس میدیم در هنگام لود شدن صفحه بارگذاری میشن و مشکل بالا دیگه پیش نمیاد.

میتونیم تابع بالا رو به صورت یک پلاگین جی کوئری بنویسیم ، به صورت زیر :

*محتوای این قسمت تنها برای اعضای انجمن قابل مشاهده می باشد. *

و به صورت زیر ازش استفاده کنیم :

*محتوای این قسمت تنها برای اعضای انجمن قابل مشاهده می باشد. *


موفق باشید.

چاپ این مطلب

  تشخیص مکان کاربر توسط ip با php
ارسال کننده: saberi - ۹۷/۱/۱۵، ۰۲:۳۳ صبح - انجمن: PHP - بدون پاسخ

در این پست تابعی را معرفی می کنیم که با ارسال IP کاربر میتوان مکان کاربر را از روی IP تشخیص داد.

این تابع یک پارامتر به عنوان IP خواهد گرفت. اگر مکان مورد نظر پیدا نشد UNKNOWN برگشت داده میشود.

*محتوای این قسمت تنها برای اعضای انجمن قابل مشاهده می باشد. *

چاپ این مطلب

  اشتباهات برنامه نویسان مبتدی
ارسال کننده: saberi - ۹۷/۱/۱۵، ۰۱:۴۱ صبح - انجمن: کد نویسی - بدون پاسخ

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

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

پیشنهاد من به برنامه نویسان مبتدی اینه که از ابزار Visual برای کدنویسی استفاده کنن. این کار کمک میکنه که شما از خطاهای تایپی در امان باشید و بتونید مفهوم حلقه ها ، شرط ها و متغیر هارو به خوبی درک کنید. از اینکار برای معرفی برنامه نویسی در مدارس زیاد استفاده میشه.
البته با این پاراگراف آخر سطر بالا موافق نیستم. به نظرم باید برنامه نویسای مبتدی از اول شروع کنن به تایپ کردن و چیزی که خیلی در برنامه نویسی مهمه اینه که یک برنامه نویس باید تایپ ۱۰ انگشتی بلد باشه. به نظرم ابزارهایی مثل Visual studio برای برنامه نویسهای مبتدی خیلی خطرناکه چون تمام ابزارها رو دم دست داره و فقط کافیه drag and drop بشه تا کد مربوطه رو خودش بنویسیه که اینکار به نظرم تفکر برنامه نویسی رو به برنامه نویس مبتدی نمیده و اون رو تنبل بار میاره.

۲- کد نویسی کثیف
یکی از راههایی که برنامه نویس های با تجربه میتونن به سرعت تشخیص بدن که این کد توسط یک مبتدی نوشته شده همین کد نویسیه کثیفه! کدهایی بدون دندانه گذاری (Indentation ) و استفاده نادرست از خطوط جدید و فضاهای خالی.بعضی از زبانهای برنامه نویسی مثل جاوااسکریپت محدودیت زیادی برای چطور نوشتن کدها ندارن.این میتونه برنامه نویس های مبتدی رو به بی نظم نوشتن کدها عادت بده. این کار یک اشتباهه چون یکی از راههای که ما میتونیم منطق کدهامون نشون بدیم استفاده از دندانه گذاری کدهاست.با استفاده از tab و space میتونیم بفهمیم که یک تابع ، شرط یا حلقه کجا شروع میشه و کجا تموم میشه، برای همین میتونیم تشخیص بدیم که کدهامون در جای درست قرار گرفتن. مثلا جاوااسکریپت اجازه میده یک تابع رو داخل تابع دیگه ایجاد کنیم ،با این قابلیت اگر شما جای بازو بسته کردن آکولاد هارو نمیبینید خیلی راحت میتونه شما رو در محدوده عملکرد توابع و متفغیرها به اشتباه بندازه. قوانینی وجود داره که چطور کدهاتون رو قالب بندی کنید.مهم نیست که از کدوم یکی از این قوانین استفاده میکنید. یکی دیگه از کارهای بد اینه که توضیحات یا comment های زیاد و بی استفاده که هیچ نیازی بهش ندارید رو می نویسید. این کارو همه ما انجام میدیم اما سعی کنید به کدهاتون برگردید و کامنتهای اضافه رو پاک کنید و فقط کامنتهایی رو نگه دارید که لازمه.

۳- استفاده ناهماهنگ از حروف بزرگ و کوچک
بعضی از زبانهای برنامه نویسی به حروف بزرگ و کوچک حساسن یا به اصطلاح case-sensitive هستند و بعضی از زبانها چنین خاصیتی ندارن. به هرحال با هر زبان برنامه نویسی که کار می کنید در استفاده از حروف بزرگ و کوچک در نام متغیرها و توابع ثابت قدم باشید! (یک روش رو پیش بگیرید ). برنامه نویس های مبتدی معمولا یک متغیربا یک حرف بزرگ مثلا :

*محتوای این قسمت تنها برای اعضای انجمن قابل مشاهده می باشد. *

تعریف میکنن اما در بقیه جاهای برنامه به صورت زیر ازش استفاده میکنن :

*محتوای این قسمت تنها برای اعضای انجمن قابل مشاهده می باشد. *

و اعصابشون به هم میریزه که چرا کدشون اجرا نمیشه! به اضافه بعضی از برنامه نویسان وقتی به یک زبان جدید مهاجرت میکنن به جای استفاده از قوانین زبان جدید، قوانین قبلی رو به زبان جدید وارد میکنن.

۴- نام های بی معنی برای توابع و متغیرها
ممکنه به برنامه نویسای جاوا بخندیم که از نامهای طولانی مثل : AbstractSingletonProxyFactoryBean استفاده میکنن.اما به جای نوشتن نامهای کوتاه و بی معنی بهتره که از نامهای بلند و قابل توصیف استفاده کنیم. منظور این هست که کدهامون واضح تر میشن و احتمال اینکه متغیرها و توابع همنام به وجود بیان و باعث گیج شدن شما یا درست کار نکردن کدتون بشن. علاوه بر این که از نامهای بی معنی برای متغیر ها استفاده می کنید، بدترش اینکه هنگام نوشتن اسم متغیر اشتباه تایپی داشته باشید، هنگامی که کدتون به مشکل برمیخوره نمی تونید به راحتی مشکل تایپی رو پیدا کنید و رفعش کنید.
یکی دیگه از اشتباهاتی که زیاد از برنامه نویسان مبتدی سر میزنه اینه که از اصطلاحات عامیانه برای نامگذاری متغیرها استفاده میکنن. وقتی که من به کدهای ۸ سال پیشم برمیگردم می بینیم که از این دسته از اشتباهات زیاد کردم.مثلا به جای “numPlayers” از نام “numPlayaz” و به جای “pause” از “pawz” استفاده کردم. (یعنی همینطوری که تلفظ میشه اسمش نوشته شده). این روزها بعضی از برنامه نویسان برای خود از قوانین کدنویسی شخصی رو استفاده میکنن .مثلا برای نگه داشتن تعدادی از یک چیز داخل یک متغیر از اسم numThings استفاده میکنن. با استفاده از این روشهای نامگذاری وقتی در آینده به سراغ کدهاتون برمی گردید به راحتی میتونید کدهاتون رو بخونید و دیگه نگرانی ندارید.

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

*محتوای این قسمت تنها برای اعضای انجمن قابل مشاهده می باشد. *

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

۶ – قدرت واقعی زبان برنامه نویسی تان را نمی دانید
برای این مورد نمیشه مبتدی هارو سرزنش کرد، دونستن اینکه یک زبان برنامه نویسی چه قدرتهایی داره نیاز به تجربه داره.اما اگر یک یا دوساله دارید برنامه نویسی میکنید دیگه زمان این رسیده که تعدادی از عملگرهایی رو که کمتر استفاده میشه رو یاد بگیرید، بعضی از این عملگرها واقعا مفیدن.مثلا برای نمونه :
! : این عملگر به معنای NOT یا نقیض. اگر مقدار false بهش بدید برعکسش میکنه :

*محتوای این قسمت تنها برای اعضای انجمن قابل مشاهده می باشد. *

در بالا اگر در x مقدار false باشه بعد از این عملیات مقدار true داخلش قرار میگیره.
% – این عملگر به معنای درصد نیست و دربیشتر زبانهای برنامه نویسی باقیمانده تقسیم رو بر میگردونه.
عملگر سه تایی با ternary operator : این عملگر شامل یک علامت ” ؟ ” و یک علامت ” : ” است که به ما اجازه میده شرط رو در یک خط چک کنیم :

*محتوای این قسمت تنها برای اعضای انجمن قابل مشاهده می باشد. *

۷ – گیج شدن بین اصطلاحاتی مثل : زبان ، فریم ورک ، پلتفرم و IDE
وقتی شما شروع به یادگیری برنامه نویسی میکنید، مخصوصا برنامه نویسی وب ، زیر بمبارانی از زبانهای مختلف ، فریم ورکها و IDE ها گیر می افتید و در ابتدا سخته که بدونید اینها چی هستن و به سرعت یک سری تصورات غلط به ذهنتون میاد.در مرحله اول بدونید که HTML و CSS یک زبان برنامه نویسی نیستن.HTML یک زبان نشانه گذاریه و CSS زبانی برای استایل دهی.این دو زبان مهارت های زیادی برای یاد گرفتن دارن اما وقتی باهاشون کار میکنین در واقع در حال برنامه نویسی نیستید. یکی از زبانهای برنامه نویسی سمت کاربر برای وب زبان جاوااسکریپته که در مبتدی ها در ابتدای کار جاوااسکریپت بهش جاوا میگن که اشتباهه.جاوا یک زبان برنامه نویسی برای همه پلتفرم هاست که کلا با جاوااسکریپت فرق داره.یکی دیگه از چیزهایی که ممکنه با دیدنش گیج بشید

*محتوای این قسمت تنها برای اعضای انجمن قابل مشاهده می باشد. *

که مربوط به فریم ورک (کتابخانه) jQuery ـه که کار با جاوااسکریپت رو خیلی خیلی راحت تر میکنه، اما حتمن یادتون باشه که jQuery یک زبان نیست و فقط یک کتابخانه است.یکی دیگه از تصورات غلط اینه که هنگامی که دارید با HTML , CSS , Javascript کار میکنید فکر میکنید این همون IDE هست ، که در واقع IDE به نرم افزاری مثل Dreamweaver ـه که کدهاتون رو میتونید توش ویرایش کنید و …

۸ – با مزایای ابزارهای دیباگ حال نمیکنید (!!)
اگر با یکی از زبانهای برنامه نویسی جاوا ، سی شارپ یا اکشن اسکریپت کار میکنید بهتره که از دیباگر استفاده کنید.این زبانها خطاهای ریزی میدن که با استفاده از دیباگر میتونید به راحتی اشکالات یا باگهای کدتون رو پیدا کنید.اگه با زبانی مثل جاوااسکریپت کار میکنید تا وقتی که یک دیباگر خوب نداشته باشید مجبورید از alert() برای حالات مختلف استفاده کنید.مرورگر کروم یک ابزار به نام Developer Tools داره که میتونید خطاهای کدتون رو ببینید.

۹ – از کارهاتون نسخه پشتیبان تهیه نمی کنید
در لغت نامه برنامه نویسا نباید اصطلاح ” من فقط [x] ساعت از کاری که کردم رو از دست دادم”.تعدادی ابزار خوب برای پشتیبان گیری خود کار و version-control  وجود داره ، که دیگه بهانه ای برای از دست دادن اطلاعاتتون ندارید، حتی اگر کامپیوتر شما دارای نقص سخت افزاری بشه یا منفجر بشه!!من از Dropbox استفاده میکنم که به صورت خودکار از تمام فایلها و فولدرهام پشتیبان میگیره ، همچنین از subversion یا GitHub استفاده کنید.همه این ابزارها بعضی از امکاناتشون رایگانه.

۱۰- فکر میکنید همه چیزو میدونید!
این اشتباهیه که خیلی راحت مبتدی ها انجامش میدن.بعد از پافشاری زیاد بالاخره اولین برنامه تون رو مینویسید.شما شروع میکنید به آموزش چیزهایی که یادگرفتید و احساس میکنید که میتونید جهان رو فتح کنید.این یک حس خیلی خوبه واز اینکه تونستید به کامپیوتر بگید کاری رو بکنه که ازش خواستید لذت میبرید.اما زمانی که پوزخندی رو صورتتونه و دارید کدهاتون رو به بقیه آموزش میدید یاتون باشه از یادگرفتن غافل نشید.شاید بهتر باشه به کدهای قدیمی که نوشتید برگردید و عبرت بگیرید!ببینید که چقدر از کدهایی که نوشتید رو صد در صد میفهمید و چقدرش رو کپی و پیست کردید.شاید الان وقتش رسیده که توابعی رو که از جایی برداشتید و در توضیحاتش نوشته شده ” دست نزنید” رو کمی دستکاری کنید.من الان ۱۳ ساله که برنامه نویسی میکنم و هنوز احساس میکنم بسیاری از راههایی که در پیش گرفتم سطحی و بدون هیچ فکری بوده.

۱۱- اشتباه جایزه !!! فکر میکنید که شرط “if” حتما نیاز به مقایسه داره
این تذکر رو در آخرین مرحله بیان کردم تا مطمئن شم این مورد از ذهنتون پاک میشه. حتی بعضی از برنامه نویسای با تجربه تر هم این اشتباه رو مرتکب میشن.
مثال :

*محتوای این قسمت تنها برای اعضای انجمن قابل مشاهده می باشد. *

یکی از اشتباهاتیه که ممکنه هیچ ضرری نرسونه ، اما این نشون میده که درک درستی از نحوه کارکرد زبانهای برنامه نویسی ندارید.بذارید روشنتون کنم : پرانتزی که بعد از کلمه if میاد باید شامل یک نوع boolean باشه (true یا false).ما در این پرانتز دو مقدار رو مقایسه میکنیم تا به مقدار Boolean برسیم.مثلا :

*محتوای این قسمت تنها برای اعضای انجمن قابل مشاهده می باشد. *

حالا اگر x کوچکتر از ۲۰۰ باشه مقدار true و اگر بزرگتر باشه مقدارش false میشه.حالا اگر ما از قبل یک مقدار از نوع boolean داشته باشیم مثلا myBoolean مبتونیم به تنهایی ازش در شرط if استفاده کنیم

*محتوای این قسمت تنها برای اعضای انجمن قابل مشاهده می باشد. *


و نیازی نیست اینجوری بنویسیم :

*محتوای این قسمت تنها برای اعضای انجمن قابل مشاهده می باشد. *

(این یه مقدار در PHP یا جاوااسکریپت پیچیده تر میشه وقتی از === استفاده می کنید.)


منبع :دیدن لینک ها برای شما امکان پذیر نیست. لطفا ثبت نام کنید یا وارد حساب خود شوید تا بتوانید لینک ها را ببینید.














چاپ این مطلب