Skip to Content

بلاگ

تفاوت بین آرایه (Array) و لیست آرایه (ArrayList)

تفاوت بین آرایه (Array) و لیست آرایه (ArrayList)

یک آرایه (Array)، در زمان تعریف دارای اندازه مشخص می باشد. امکان اضافه کردن یا حذف کردن آیتم به آن وجود ندارد. همچنین تمام آیتم ها می بایست از یک نوع (Type) باشند. در نتیجه آرایه ها دارای نوع مطمئن و مشخص هستند که عامل مهمی در اجرا و اختصاص حافظه ی مورد نیاز می باشد.

چنانچه در هنگام تعریف آرایه، مانند مثال فوق آرایه را از نوع خاصی مثلا int تعریف کنیم، در آنصورت آرایه مورد نظر تنها مقادیر از نوع int را قبول می کند و در خارج از این حالت خطا می دهد. برای رفع این مشکل می تواند آرایه را از نوع object تعریف کرد.

از دیگر ویژگی های آرایه اینست که می تواند چندین بعد (Dimension) داشته باشد، در حالیکه لیست آرایه (ArrayList) از این ویژگی برخوردار نیست.

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

ادامه مطلب

معرفی jQuery

معرفی jQuery

هدف JQuery ، ساده کردن استفاده از جاوا اسکریپت در وب سایت است .

پیش نیاز های دوره

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

  • HTML
  • CSS
  • JavaScript

JQuery چیست؟

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

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

همچنین JQuery بسیاری از عملیات پیچیده جاوا اسکریپت مانند فراخوانی های AJAX و دستکاری DOM را ساده می نماید .

کتابخانه JQuery حاوی ویژگی های زیر می باشد :

  • دستکاری HTML/DOM
  • دستکاری CSS
  • توابع رویدادهای HTML
  • افکت ها و انیمیشن ها
  • AJAX
  • ابزارها

نکته : علاوه بر ویژگی های فوق ، تقریبا برای هر عملی اضافه بر عملیات بالا ، پلاگین های JQuery موجود و آماده می باشند .

چرا JQuery؟

با وجود اینکه فریم ورک های جاوا اسکریپتی بسیاری وجود دارند ، اما به نظر می رسد JQuery معروفترین و توسعه پذیرترین آن ها می باشد. بسیاری از شرکت های بزرگ در وب سایت هایشان از JQuery استفاده  می نمایند .

مانند :

  • Google
  • Microsoft
  • IBM
  • Netflix

آیا JQuery در تمام مرورگرها کار می کند ؟

تیم JQuery آگاهی کافی نسبت به انواع مرورگرها دارد و این مسئله را در کتابخانه JQuery لحاظ کرده اند.کدهای JQuery در تمام مرورگرها مشابه هم اجرا می شوند.

 

ادامه مطلب

رفع مشکل تبدیل حروف فارسی به علامت سوال (؟)

رفع مشکل تبدیل حروف فارسی به علامت سوال (؟)

امروز متوجه شدم مدتی ست که بعضی از متن های فارسی وبلاگ به شکل علامت سوال (؟؟؟…) نشان داده می شوند. این متن ها آنهایی نبودند که از دیتابیس خوانده می شدند، بلکه آنهایی بودند که مستقیما در فایل های php نوشته شده بودند. نمایش آنها تا چند روز پیش درست بود و نمیدانم چه اتفاقی افتاد که این خرابی پیش آمد، اما بهرحال به دنبال راه حل گشتم. در اینترنت هرچه جستجو کردم (چه فارسی و چه انگلیسی) همه راه حل ها برای تصحیح encoding جدول های درون دیتابیس و یا connection مربوطه بود. هیچکدام از تصحیح فرمت encoding فایل ها چیزی نگفته بود. خودم با نرم افزار Notepad++ راهی را امتحان کردم و مشکل حل شد. از آنجاییکه ممکن است این مشکل برای هر فارسی زبان دیگری نیز پیش بیاید و راه حلی در اینترنت به سادگی پیدا نکند تصمیم گرفتم آنرا اینجا منتشر کنم.

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

سپس آن فایل هایی را که کاراکترهای فارسی درونشان به صورت علامت سوال نمایش داده می شوند را با این نرم افزار باز کنید، از منوی بالا وارد Encoding شوید و Encoding in UTF-8 without BOM را انتخاب کنید. فایل را Save کنید و دوباره باز کنید (اگر با سرور کار می کنید آنرا بر فایل روی سرور overwrite کنید). همانطور که می بینید به همین سادگی مشکل برطرف شد!

نکته فنی: نرم افزار Notepad ویندوز هم در پنجره Save As قابلیت انتخاب کدگذاری UTF-8 را دارد، اما حتما از BOM استفاده می کند. در این حالت یک کاراکتر اضافی مزاحم در ابتدای فایل وجود خواهد داشت که هم ممکن است صفحات HTML را بهم بزند و هم ممکن است باعث شود در صفحات PHP هنگام کار با Cookie یا Session با خطای "Headers already sent" مواجه شوید، چرا که این کاراکتر اضافی قبل از هرچیز برای Client ارسال شده است.

اردلان نقش

ادامه مطلب

معرفی React Native: آسان ترین و بهترین راه برنامه نویسی موبایل و وب؟

معرفی React Native: آسان ترین و بهترین راه برنامه نویسی موبایل و وب؟

الان حدود ۱۵ ساله که برنامه نویسی تحت وب می کنم. هرروز سری به Smashing Magazine و TechCrunch و سایت های دیگه از این دست می زنم و راجع به استارتاپ های جدید و کمپانی ها و اشخاص موفق مرتبط با IT تحقیق می کنم. با این مطالعات میشه خیلی زود فهمید که صنعت IT با سرعتی باورنکردنی در حال پیشرفت و تحوله. اگر می خوای در این صنعت بمونی باید هرروز مطالعه داشته باشی و مفاهیم جدید یاد بگیری. شاید یکی از علل علاقه بسیار من به این صنعت همینه. هیچوقت یکنواخت نمیشه!

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

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

تابحال خیلی تلاش ها در این زمینه شده (فلش و تا حدی جاوا در این زمینه ناموفق بودن). از فریم ورک های محبوبی که امروزه به شما امکان برنامه نویسی وب و موبایل اپلیکیشن رو میدن میشه اینها رو نام برد: PhoneGap، Ionic، Appcelerator Titanium، Xamarin

PhoneGap و Ionic خوبیشون اینه که توشون از زبان های وب (HTML، CSS، JS) استفاده می کنید. پس نیازی به یادگیری زبان جدید ندارید (مثل اینه که وب اپلیکیشنتون رو در مرورگر موبایل باز می کنن، اما Full-screen). بدیشون اما اینه که Performanceشون اصلا خوب نیست. اگر اپلیکیشنی که با اینها می سازید «خیلی ساده» نباشه، از سرعت پایین و پریدن های تصویر و انیمیشن های لَگ دار خیلی راحت میشه فهمید که اپلیکیشن Native نیست. به این اپلیکیشن ها Hybrid میگن، و به اپلیکیشن هایی که با زبان مخصوص سیستم عامل نوشته شده باشن Native میگن. (زبان مخصوص دستگاه های کمپانی اپل Objective-C و Swift هست و زبان مخصوص اندروید جاوا.)

Appcelerator Titanium و Xamarin می تونن Performance بهتری ایجاد کنن. بخاطر اینکه از یک زبان برنامه نویسی خاص (جاوااسکریپت و C#) المان های Native رو خروجی می گیرن. اما هردو پولی هستن. همین باعث میشه که طرفداران و منابعشون کم بشه.

حالا می رسیم به این جوجه کوچکی که موضوع این نوشته ست! این جوجه کوچک React Native نام داره.

بذارید یکم برم به عقب. فیس بوک ابتدای سال ۲۰۱۵ اولین نسخه stable یک کتابخانه جاوااسکریپت open-source رو منتشر کرد برای توسعه رابط کاربری (user interface) وب اپلیکیشن ها. اسم این کتابخانه React (یا ReactJS) بود. این کتابخانه با ساختار بسیار ساده و سرعت بسیار بالایی که داشت خیلی سریع مورد توجه قرار گرفت. طوری که با وجود اینکه مدت کوتاهی از اومدنش گذشته، بجز فیس بوک کمپانی هایی از قبیل یاهو، Airbnb و Netflix هم دارن ازش استفاده می کنن.

react-native

اواخر مارچ ۲۰۱۵ (دو و نیم ماه پیش) یک فریم ورک جدید از فیس بوک منتشر شد. یک فریم ورک که به شما اجازه میده با استفاده از زبان جاوااسکریپت (و تنها جاوااسکریپت!) و کتابخانه React اپلیکیشن موبایل بسازید! فعلا فقط برای iOS ولی بزودی برای iOS و Android. اسم این فریم ورک React Native ه!

همونطور که از اسمش پیداست، مزیت بزرگش اینه که خروجیش تشکیل شده از المان های Native سیستم عامله. در نتیجه Performance خوبی داره. سیستم کاریش خیلی شباهت ها به Appcelerator Titanium داره. من قبلا اون رو کمی یاد گرفتم. اما وقتی مطالعه درباره React و React Native رو شروع کردم مجذوب سادگی و نظمشون شدم! مجانی و open-source بودن و پشتیبانی شدن توسط فیسبوک رو هم که به اینها اضافه کنید می فهمید که چرا در این مدت کوتاه انقدر پرطرفدار شدن.

من یک اپلیکیشن ساده برای iOS با استفاده از React Native ظرف چند روز ساختم. همه چیز ساده و بی دردسر پیش رفت و Performance اپلیکیشن هیچ فرقی با Native نداشت. الان هم مشغول کار روی دو اپلیکیشن دیگه هستم که تا بحال خیلی خوب پیش رفته.

react-native-conf

یکی از جالب ترین کاربرد های React اینه که با استفاده از Node میشه برای برنامه نویسی سمت سرور و نرم افزار تحت سیستم عامل کامپیوتر هم ازش استفاده کرد. یعنی اگر یک موبایل اپ و وب اپ با یک اپ سمت سرور می سازید، می تونید توی همش از زبان جاوااسکریپت استفاده کنید! اولش که این رو می شنوید شاید خیلی به نظرتون نیاد. اما بیشتر بهش فکر کنید مجذوب ایده ش میشید! همین باعث شده که خیلی ها پیش بینی کنن که جاوااسکریپت در آینده دنیای IT رو تسخیر می کنه (البته قبلا با دیدن Node هم همین رو می گفتن، اما حالا با ورود React و React Native به میدان احتمالش بیشتر شده).

خب حالا با وجود همه اینها، به نظر شما الان یادگیری چه زبان برنامه نویسی و فریم ورکی می تونه آینده خیلی خوبی داشته باشه؟

پاسخ من JavaScript و ReactJS و React Native هست. اما یک علامت سوال هم در انتهای تیتر این نوشته گذاشتم، چون هنوز یک رخداد بسیار مهم باقی مونده: انتشار React Native برای اندروید. من فکر می کنم اگر فیس بوک اون قدم رو هم درست برداره و مثل قبل به بروزرسانی مرتب این فریم ورک ادامه بده محبوبیت React Native به سرعت چند برابر میشه و ۳ سال آینده حداقل ‍۱۰ درصد اپلیکیشن های جدید موبایل با React Native ساخته میشن.

نظر شما چیه؟

منابع خوب برای یادگیری

ادامه مطلب

مزایای React.js برای SEO


مزایای React.js برای SEO

React.js یک کتابخانه است که شبکه های اجتماعی مهمی چون فیسبوک و telegram از آن استفاده کرده اند.البته این کتابخانه اساسا در فیسبوک توسعه داده شده است .

مزایای React.js برای SEO

React.js یک کتابخانه است که شبکه های اجتماعی مهمی چون فیسبوک و telegram از آن استفاده کرده اند.البته این کتابخانه اساسا در فیسبوک توسعه داده شده است .

یکی از ویژگی های منحصر به فرد این تکنولوژی این است که هم در سمت سرور و هم در سمت کاربر به صورت هماهنگ و سازگار کار می کند.

تعریف Dom: وقتی یک صفحه وبی بارگذاری میشود مرورگر یک مدل شی گرا از المان های موجود در صفحه می سازد.این مدل Dom و یا Document Object Model نام دارد .این نمودار یک نمودار درختی از اشیا موجود در صفحه است .برنامه هایی مانند جاوااسکریپت با استفاده از مدل یک صفحه Html را به صورت پویا ایجاد می کنند.درتکنولوژی React.js از مفهومی به نام Virtual DOM استفاده می شود .این حالت زیر گروه های انتخابی را بر اساس شرایط ارائه می کند.این کار را به این صورت انجام می دهد که تا جای ممکن از دستکاری Dom جلوگیری می کند.

Virtual DOM به این صورت کارمیکند که برای هر شی Dom که ویژگی جدیدی قرار است برای آن ساخته شود نیازی نیست که آن شی دوباره ساخته شود تنها نیاز است که آن ویژگی مورد نظر را تغییر داد و یا افزود.

بعد از آشنایی کلی با React.js راجع به مزیت هایی که این روش در SEOبرای ما ایجاد می کند صحبت می کنیم .

مشکلی که جاوااسکریپت داشت این است که به طور کامل Search Engin Freindly نیست  .با وجود اینکه  Crawl و index های گوگل ، محتواهای Ajax را هم می فهمند ولی خیلی قابل اعتماد نیست .امتیاز React.js این است که شما می توانید آن را سمت سرور اجرا کنید و virtual DOM ها در سمت سرور Renden میشوند و بعد به سمت کلاینت ارسال می شوند

قصد داریم یک پروژه ساده به کمک React.js بنویسیم

ابتدا Visual Studio را باز کرده و یک پروژه asp.net MVC از نوع Empty باز می کنیم .سپس در Tools=>Install package Manager Consol دستور زیر را تایپ می کنیم

Install-Package react.js

 با این دستور کتابخانه React.js به پروژه ما اضافه می شود.در قسمت Solution Explorer در داخل فولدر Scripts یک فولدری به نام react ایجاد شده است که در داخل آن اسکریپت های جاوااسکریپت قرار دارد .بعد از این کار باید React.Web.Mvc4 را نصب کنیم .دوباره در کنسول مربوط به Nuget دستور زیر را وارد میکنیم

Install-Package React.Web.Mvc4

حال یک کنترلر خالی ایجاد کنید.کد زیر را به Actionمورد نظر اضافه کنید.
 

123456789public ActionResult Index(){var employees = new[]{new  {id= "1", name= "ایمان ", department= "IT", phone= "555-1212"},new {id="2", name= "سجاد", department= "Sales", phone= "555-1213"},new  {id= "3", name= "رحمان", department= "HR", phone= "123-456"}};return View(employees);}

کامپوننت Grid:

یک فایل جاوااسکریپت به نام Grid.jsx در داخل فولدر Scripts ایجاد می کنیم و کد های زیر را به آن اضافه کنید .این کد برای نمایش دیتا است .

123456789101112131415161718192021222324252627282930var Cell = React.createClass({   render: function () {var data = this.props.data;return <div className="cell">{this.props.data}</div>}}); var Row = React.createClass({render: function () {return (<div className="row"><Cell data={this.props.data.name} /><Cell data={this.props.data.department} /><Cell data={this.props.data.phone} /></div>);}});var Grid = React.createClass({render: function () {var headerRow = <div className="row"><Cell data="Name" /><Cell data="Department" /><Cell data="Phone" /></div>; var rows = this.props.data.map(function (rowData, index) {return <Row key={index} data={rowData}>Row</Row>;});return <div className="table">{headerRow}{rows}</div>;}});

Rendering سمت سرور

وارد مسیر App_Start\ReactConfig.cs شوید و کامپوننت Grid را رفرنس دهید.

12345678public static class ReactConfig{public static void Configure(){ReactSiteConfiguration.Configuration = new ReactSiteConfiguration().AddScript("~/Scripts/Grid.jsx");}}

این کد به React.js می گوید که جاوااسکریپت سمت سرور را لود کند .

در مرحله بعد در داخل View مربوط به ایندکس کد های زیر را کپی کنید

12345678910<h2>React Demo:</h2> @Html.React("Grid", new{data = Model}) <script src="~/Scripts/react/react-0.12.2.min.js"></script><script src="~/Scripts/Grid.jsx"></script>@Html.ReactInitJavaScript()

بعد از اجرا شکل زیر را خواهید دید

فایل های ضمیمه
ادامه مطلب

React چیست ؟

React چیست ؟

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

React JS

JSX در React

یکی از امکانات مفید که در React موجود است، JSX یا JavaScript XML است. JSX شیوه‌ای جدید از نوشتن کدها است که هم می‌تواند شامل HTML و هم جاوااسکریپت باشد. با ترکیب این دو، کار توسعه رابط کاربری آسان‌تر می‌شود. فایل‌های JSX سپس توسط کامپایلر به فایل‌های جاوااسکریپت معمول تبدیل می‌شوند و در مرورگر به اجرا در می‌آیند.

استفاده از JSX الزامی نیست ولی اغلب توسعه‌دهندگان استفاده از آن را نسبت به نوشتن فایل‌های جاوااسکریپت و HTML به صورت جداگانه ترجیح می‌دهند.

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

1234567const name = ‘Ali’;const element = <h1>Hello, {name}</h1>; ReactDOM.render( element, document.getElementById(‘root’));

کتابخانه رابط کاربری چیست ؟

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

کتابخانه‌های رابط کاربر مانند React، AngularJS و Vue.js ابزارهایی هستند که پیچیدگی‌های تولید رابط کاربری را پشت لایه‌ای از کدهای قابل درک و آسان مخفی می‌کنند و علاوه بر آسان‌سازی، سرعت برنامه‌نویسی را نیز افزایش می‌دهند.
همچنین، به دلیل توسعه و آزمون توسط جامعه‌ی بزرگی از برنامه‌نویسان، پشتیبانی بهتری از حالت‌های مختلف و مرورگرهای متفاوت و متعدد امروزی در سیستم‌های رومیزی و موبایل به عمل می‌آورند.

نرم‌افزار هوشمند اینترنتی چیست ؟

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

یک نرم‌افزار هوشمند تحت وب، با یک بار بارگزاری، تمامی یا اغلب فعالیت‌های لازم را بدون تازه‌سازی( Refresh ) صفحه به انجام می‌رساند و اطلاعات ارسالی و دریافتی کاربر را همگی با استفاده از فناوری AJAX با سرور رد و بدل می‌کند.

نرم‌افزارهای هوشمند و سئو

به جز گوگل که توانایی پردازش کدهای جاوااسکریپت موجود در صفحه‌ی وب را دارا است، سایر موتورهای جستجو هنوز توانایی درک محتوای هوشمند صفحات که با فناوری جاوااسکریت تولید می‌شوند را ندارند.

در خصوص گوگل نیز، انجام پیش‌بینی‌های لازم در جهت تغییر نشانی صفحه به صورت پویا برای ایجاد تمایز بین محتواهای مختلف موجود در سایت، ضروری خواهد بود.

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

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

کتابخانه‌های مشابه

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

ادامه مطلب

چگونه به یک برنامه نویس اندروید موفق تبدیل شویم؟!

چگونه به یک برنامه نویس اندروید موفق تبدیل شویم؟!

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

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

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

۳- صبر داشته باشید!
خودتان را فریب ندهید. در راه برنامه نویس شدن بارها شکست خواهید خورد و این جزئی از این راه است.
برنامه نویسی یعنی کدی را بنویسید و پس از آن باید کلی تلاش کنید که آن کد واقعا بدون نقص کار کند.
در این مسیر است که شما تجربه لازم برای برنامه نویس شدن را کسب خواهید کرد.

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

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

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

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

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

۹- از GIT استفاده کنید!
مهم نیست که برای چه پلتفرمی کد نویسی می کنید.
برنامه کنترل نسخه (GIT) دقیقا چیزیست که شما در هر پروژه ای چه برای شرکت شما باشد و چه برای شخص شما کاربرد خواهد داشت.
کنترل نسخه (GIT) مقداری پیچیده است اما نترسید ، فقط کافیست مقداری با آن کار کنید.
GIT بسیار مهم است بویژه زمانی که بصورت تیمی کار می کنید.
اگر نمی دانید گیت(GIT) چیست ، بزودی در مطلبی جداگانه آن را بررسی خواهم کرد.

۱۰-راه و روش خود را پیدا کنید!
هیچ فرمول کامل و دقیقی برای روش های برنامه نویسی وجود ندارد.
بهتر است با تیم خود بر روی مشکلات خود کار کنید و راه حل مخصوص به خودتان را پیدا کنید.
البته منظور من این نیست که از تجربه ها دیگران استفاده نکنید یا الگو نگیرید. فقط بدانید همیشه این الگو ها جوابگوی کار شما نخواهند بود.

ادامه مطلب

نمایش IP Address با استفاده از #C

نمایش IP Address با استفاده از #C

همانطور که می دانید IP Adress بخشی جدا نا پذیر از شبکه می باشد . شاید عنوان این مقاله زیاد جالب به نظر نرسد ولی در بعضی از پروژه ها شاید نیاز داشته باشیم تا برای بعضی از عملیات آدرس IP کاربر را به دست بیاوریم .راه های مختلفی برای به دست آوردن آدرس IP سیستم وجود دارد از جمله CMD ویندوز.

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

IP Address

بدست آوردن IP Address با استفاده از cms.exe :

ابتدا بر روی دکمه start کلیک و در کادر جستجو cmd.exe را وارد و بعد از پیدا کردن Enter را بزنید تا وارد برنامه شد .برای گرفتن آدرس IP  و نمایش اطلاعاتی درباره شبکه و جزئیات آن ipconfig را نوشته و Enter را بزنید می بینید که لیسیتی از جزئیات شبکه از جمله IP Adress ، Host Name، Getway و … را به شما نشان می دهد.

ipconfig-Get-IPAddress

به دست آوردن IP Address در #C  :

در NET. برای کار با شبکه  و به دست آوردن اطلاعاتی در این باره تعدادی کلاس در System.Net ، namespace داریم .

1 – پروزه جدید از نوع Console ایجاد کنید .

2 – ابتدا namespace زیر را به پروژه اضافه کنید .

Using System.Net;

3- ابتدا HostName را بدست آورده و با استفاده از متد ()GetHostByName و پاس دادن پارامتر HostName با آن IP Asdrress را بدست می آوریم .

static void Main(string[] args)

{

string hostName = Dns.GetHostName(); // Retrive the Name of HOST

Console.WriteLine(hostName);

// Get the IP

string myIP = Dns.GetHostByName(hostName).AddressList[0].ToString();

Console.WriteLine(“My IP Address is :”+myIP);

Console.ReadKey();

}

خروجی کدهای بالا به صورت زیر می باشد :

Get-IPAddress-Using-C#

این مقاله شروعی برای آشنایی بیشتر با System.Net,namespace بود . در مقاله های بعدی سعی می کنیم بیشتر با این namespace و کلاس های آن کار کنیم .

ادامه مطلب

بدست آوردن مشخصات کاربران سايت در ASP.NET

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

1 –  نام دستگاه کاربر و IP آن

1
2
ClientName = Request.UserHostName
ClientIP = Request.UserHostAddress

2 – لينکی که کاربر با کليک بر روی آن سايت را يافته است.

1
REFERER = Request.ServerVariables.Item("HTTP_REFERER");

3 – اطلاعاتی در رابطه با سیستم کاربر (Client)

1
2
3
LANGUAGE = Request.ServerVariables.Item("HTTP_ACCEPT_LANGUAGE  ")
AGENT = Request.ServerVariables.Item("HTTP_USER_AGENT")
Platform = Request.Browser.Platform()

4 – QUERY STRING صفحه حاضر

1
QUERY STRING = Request.ServerVariables.Item("QUERY_STRING")

5 – اطلاعاتی در رابطه با Browser کاربر

1
2
3
Browser = Request.Browser.Browser()
Browser_Type = Request.Browser.Type()
Browser_Version = Request.Browser.Version()

 

ادامه مطلب

آموزش ساخت Multi Threading برای فراخوانی اطلاعات

آموزش ساخت Multi Threading برای فراخوانی اطلاعات

هرچقد کیفیت و کاربرپسند شدن برنامه را در پروژه های خود بالاببریم این امکان برای جذب مشتری بیشتر میشود در این مطلب توسط Multi Threading و یک Progress اطلاعات دسته به دسته load میکنیم.درباره مزایا Multi Threading در ادامه بحث خواهیم کرد.همراه ما باشید.

آموزش ساخت Multi Threading برای فراخوانی اطلاعات

ابتدا بریم برسی کنیم ببینیم چند نخی یا یا مالتی تردینگ چیست !

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

یک پروژه در سی شارپ ایجاد و یک دیتاگرید و یک Button روی آن قرار بدید.(فرمی همانند فرم اول )

یک کلاس با نام “clsProgress” ایجاد کنید و کد زیر را در آن قرار دهید.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
private static Thread th = new Thread(new ThreadStart(showProgressForm));                
       public void startProgress()
       {
           th = new Thread(new ThreadStart(showProgressForm));
           th.Name = "first";
           th.Start();           
       }
       private static void showProgressForm()
       {
           frmProgress sForm = new frmProgress();
           sForm.ShowDialog();           
       }
       public void stopProgress()
       {
           th.Abort();
           th = null;
       }

در Load فرمی که ساخته اید کد زیر را قرار دهید.

1
2
3
4
5
6
7
DataGridViewTextBoxColumn col1 = new DataGridViewTextBoxColumn();
            col1.HeaderText = "UserID ";
            dataGridView1.Columns.Add(col1);
            col1 = new DataGridViewTextBoxColumn();
            col1.HeaderText = "Password";
            dataGridView1.Columns.Add(col1);

در Button فرم نیز کد زیر را قرار بدید !

1
2
3
4
5
6
7
8
9
10
clsProgress cPro = new clsProgress();
cPro.startProgress();
for (int i = 0; i < 9999; i++)
{
    dataGridView1.Rows.Insert( dataGridView1.Rows.Count-1,1);
    dataGridView1[0, i].Value  = i.ToString();
    dataGridView1[1, i].Value = i.ToString();
}
cPro.stopProgress();

ما برای نمایش Loading به کاربر نیازبه یک فرم دیگه داریم یک فرم با نام FrmProgress  بسازید

سعی کنید سایزشو کوچیک کنید و موقعیت نمایش را روی Center Screen قرار بدید که وسط فرم به نمایش دربیاد یک ابزار تصویر که تصویر آن ضمیمه شده به ابزار تصویر اضافه کنید
و کد زیر را به فرم Progress اضافه کنید.

1
2
3
4
5
6
7
public static frmProgress sForm = null;
       public static frmProgress Instance()
       {
           if (sForm == null) { sForm = new frmProgress(); }
           return sForm;
       }

خیلی سخته براتون ! فایل ضمیمه کردم برید دانلودش کنید !

ادامه مطلب