<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>دسته‌بندی نشده &#8211; طراحی سایت، ربات تلگرام و راهکارهای هوش مصنوعی | پشتیبانی 24 ساعته | مشاوره رایگان | Piero.ir</title>
	<atom:link href="https://piero.ir/category/%D8%AF%D8%B3%D8%AA%D9%87%D8%A8%D9%86%D8%AF%DB%8C-%D9%86%D8%B4%D8%AF%D9%87/feed/" rel="self" type="application/rss+xml" />
	<link>https://piero.ir</link>
	<description>Piero.ir ارائه‌دهنده طراحی سایت حرفه‌ای، ساخت ربات تلگرام، اتوماسیون n8n، هوش مصنوعی، یادگیری ماشین و راه‌اندازی استارتاپ‌های نوآورانه. راهکارهای اختصاصی و مشتری‌محور برای رشد کسب‌وکار شما.</description>
	<lastBuildDate>Mon, 10 Nov 2025 12:25:12 +0000</lastBuildDate>
	<language>fa-IR</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.8.3</generator>

<image>
	<url>https://piero.ir/wp-content/uploads/2025/08/logopiero-100x100.png</url>
	<title>دسته‌بندی نشده &#8211; طراحی سایت، ربات تلگرام و راهکارهای هوش مصنوعی | پشتیبانی 24 ساعته | مشاوره رایگان | Piero.ir</title>
	<link>https://piero.ir</link>
	<width>32</width>
	<height>32</height>
</image> 
        <wp_options>
            <wp_option>
                <name>
                    shopengine_activated_templates                </name>
                <val>
                    a:0:{}                </val>
            </wp_option>
        </wp_options>
        	<item>
		<title>آموزش ریاضی برای هوش مصنوعی (پیش‌نیازهای ریاضی یادگیری ماشین)</title>
		<link>https://piero.ir/%d8%a2%d9%85%d9%88%d8%b2%d8%b4-%d8%b1%db%8c%d8%a7%d8%b6%db%8c-%d8%a8%d8%b1%d8%a7%db%8c-%d9%87%d9%88%d8%b4-%d9%85%d8%b5%d9%86%d9%88%d8%b9%db%8c/</link>
					<comments>https://piero.ir/%d8%a2%d9%85%d9%88%d8%b2%d8%b4-%d8%b1%db%8c%d8%a7%d8%b6%db%8c-%d8%a8%d8%b1%d8%a7%db%8c-%d9%87%d9%88%d8%b4-%d9%85%d8%b5%d9%86%d9%88%d8%b9%db%8c/#respond</comments>
		
		<dc:creator><![CDATA[پیروز جنابی]]></dc:creator>
		<pubDate>Mon, 10 Nov 2025 12:24:04 +0000</pubDate>
				<category><![CDATA[دسته‌بندی نشده]]></category>
		<guid isPermaLink="false">https://piero.ir/?p=13011</guid>

					<description><![CDATA[چرا آموزش ریاضی برای هوش مصنوعی (پیش‌نیازهای ریاضی یادگیری ماشین) حیاتی است؟ اگر بخواهیم تنها یک زبان برای برقراری ارتباط بین انسان و هوش مصنوعی انتخاب کنیم، آن زبان بدون شک ریاضیات است. الگوریتم‌های یادگیری ماشین، از مدل‌های ساده رگرسیون خطی تا شبکه‌های عصبی عمیق، همگی بر پایه مفاهیم ریاضی ساخته شده‌اند.در واقع، بدون درک [&#8230;]]]></description>
										<content:encoded><![CDATA[
<h3 class="wp-block-heading">چرا آموزش ریاضی برای هوش مصنوعی (پیش‌نیازهای ریاضی یادگیری ماشین) حیاتی است؟</h3>



<p>اگر بخواهیم تنها یک زبان برای برقراری ارتباط بین انسان و هوش مصنوعی انتخاب کنیم، آن زبان بدون شک <strong>ریاضیات</strong> است. الگوریتم‌های یادگیری ماشین، از مدل‌های ساده رگرسیون خطی تا شبکه‌های عصبی عمیق، همگی بر پایه مفاهیم ریاضی ساخته شده‌اند.<br>در واقع، بدون درک مفاهیم ریاضی، درک واقعی از نحوه تصمیم‌گیری مدل‌های یادگیری ماشین غیرممکن است.</p>



<p>در این مطلب از <strong><a href="https://piero.ir" data-type="link" data-id="https://piero.ir">piero.ir</a></strong> به‌صورت گام‌به‌گام پیش‌نیازهای ریاضی یادگیری ماشین را بررسی می‌کنیم و توضیح می‌دهیم چرا تسلط بر این مباحث برای افرادی که قصد ادامه تحصیل در رشته‌های هوش مصنوعی در خارج از کشور دارند، ضروری است.</p>



<h2 class="wp-block-heading">جبر خطی — قلب تپنده یادگیری ماشین</h2>



<p>هر مدل یادگیری ماشین، داده‌ها را در قالب ماتریس‌ها و بردارها پردازش می‌کند. از وزن‌های مدل تا ورودی‌های شبکه عصبی، همه و همه در قالب <strong>جبر خطی</strong> تعریف می‌شوند.<br>برای شروع، لازم است بر مفاهیم زیر مسلط باشید:</p>



<ul class="wp-block-list">
<li>ماتریس‌ها و عملیات ماتریسی</li>



<li>بردارها و ضرب داخلی</li>



<li>مقادیر ویژه (Eigenvalues) و بردارهای ویژه (Eigenvectors)</li>



<li>تجزیه SVD و کاربرد آن در فشرده‌سازی داده‌ها</li>
</ul>



<p>درک این مفاهیم به شما کمک می‌کند بفهمید الگوریتم‌هایی مثل <strong>Principal Component Analysis (PCA)</strong> یا <strong>Neural Networks</strong> چگونه کار می‌کنند.<br>تقریباً هیچ الگوریتم یادگیری ماشین بدون جبر خطی قابل درک یا پیاده‌سازی نیست.</p>



<div class="wp-block-buttons is-layout-flex wp-block-buttons-is-layout-flex">
<div class="wp-block-button"><a class="wp-block-button__link wp-element-button" href="https://www.aparat.com/v/d2OHq?refererRef=search" target="_blank" rel="noopener">شروع آموزش جبر خطی</a></div>
</div>



<h2 class="wp-block-heading">آمار و احتمال — مغز تحلیلی یادگیری ماشین</h2>



<p>یادگیری ماشین بدون آمار و احتمال مانند نقشه‌ای بدون جهت‌نماست.<br>در این بخش شما باید مفاهیمی مانند موارد زیر را یاد بگیرید:</p>



<ul class="wp-block-list">
<li>توزیع‌های آماری (Normal, Bernoulli, Binomial)</li>



<li>میانگین، واریانس و انحراف معیار</li>



<li>قانون احتمال شرطی و بیز</li>



<li>نمونه‌گیری و آزمون فرضیه‌ها</li>
</ul>



<p>به‌عنوان مثال، الگوریتم معروف <strong>Naive Bayes</strong> کاملاً بر پایه قانون بیز ساخته شده است. درک مفاهیم احتمالی به شما کمک می‌کند تصمیمات مدل را تحلیل کرده و میزان اطمینان پیش‌بینی‌ها را بسنجید.</p>



<div class="wp-block-buttons is-layout-flex wp-block-buttons-is-layout-flex">
<div class="wp-block-button"><a class="wp-block-button__link wp-element-button" href="https://www.aparat.com/v/bkfws39" target="_blank" rel="noopener">شروع آموزش آمار و احتمال</a></div>
</div>



<p></p>



<h2 class="wp-block-heading">ابزار درک تغییرات و بهینه‌سازی</h2>



<p>ر مدل‌های یادگیری ماشین، هدف یافتن بهترین پارامترها برای کمینه‌کردن خطا است. این کار از طریق محاسبات مشتق و گرادیان انجام می‌شود.<br>مفاهیم مهم حسابان که باید بیاموزید عبارتند از:</p>



<ul class="wp-block-list">
<li>مشتق و گرادیان</li>



<li>گرادیان نزولی (Gradient Descent)</li>



<li>حد، پیوستگی و توابع چندمتغیره</li>



<li>بهینه‌سازی توابع هزینه</li>
</ul>



<p>هر بار که مدل شما در حال آموزش است، در واقع دارد با استفاده از حسابان، مسیر کم‌خطا‌ترین پاسخ را پیدا می‌کند.</p>



<div class="wp-block-buttons is-layout-flex wp-block-buttons-is-layout-flex">
<div class="wp-block-button"><a class="wp-block-button__link wp-element-button" href="https://www.aparat.com/v/r195hm2" target="_blank" rel="noopener">شروع آموزش مشتق</a></div>
</div>



<p>اگر تا به حال از خود پرسیده‌اید «مشتق دقیقاً یعنی چه؟» و چرا در <strong>یادگیری ماشین</strong> این‌قدر مهم است، پاسخ ساده است: مشتق یعنی <strong>نرخ تغییر</strong>.<br>در واقع مشتق به ما می‌گوید وقتی یک مقدار کمی تغییر می‌کند، مقدار دیگر با چه سرعتی تغییر پیدا می‌کند.</p>



<p>در دنیای <strong>یادگیری ماشین</strong>، ما همیشه در حال کمینه‌کردن خطا هستیم. برای مثال، فرض کنید مدل شما در پیش‌بینی قیمت خانه کمی اشتباه دارد. شما می‌خواهید بدانید اگر وزن یا پارامتری را تغییر دهید، خطا چقدر کم یا زیاد می‌شود. این دقیقاً همان کاری است که مشتق انجام می‌دهد!</p>



<p>فرمول پایه مشتق به زبان ساده این است: f′(x)=dxdf(x)​</p>



<p>یعنی: چقدر تابع f(x)f(x)f(x) نسبت به تغییرات xxx حساس است.</p>



<p>در الگوریتم‌های <strong>یادگیری ماشین</strong> مانند شبکه‌های عصبی، گرادیان (مشتق چندمتغیره) برای به‌روزرسانی وزن‌ها استفاده می‌شود. هر بار که مدل آموزش می‌بیند، گرادیان‌ها حساب می‌شوند تا خطا کمتر شود — فرایندی که به آن <strong>Gradient Descent</strong> یا <strong>نزول گرادیان</strong> گفته می‌شود.</p>



<p>با تمرین ساده روی توابع x2x^2&#215;2، sin(x)sin(x)sin(x)، یا exe^xex، به‌راحتی می‌توانید مفهوم مشتق را درک کرده و ارتباط آن با آموزش مدل‌های یادگیری ماشین را ببینید.</p>



<h2 class="wp-block-heading">برای یادگیری مؤثر ریاضیات در زمینه یادگیری ماشین، این مسیر آموزشی توصیه می‌شود:</h2>



<ol class="wp-block-list">
<li><strong>جبر خطی مقدماتی تا پیشرفته</strong>
<ul class="wp-block-list">
<li>منابع: کتاب “Linear Algebra Done Right”</li>
</ul>
</li>



<li><strong>آمار و احتمال کاربردی</strong>
<ul class="wp-block-list">
<li>منابع: Khan Academy، Coursera</li>
</ul>
</li>



<li><strong>حسابان و بهینه‌سازی</strong>
<ul class="wp-block-list">
<li>منابع: Calculus by Stewart، MIT OpenCourseWare</li>
</ul>
</li>



<li><strong>نظریه اطلاعات و مبانی ریاضی یادگیری ماشین</strong>
<ul class="wp-block-list">
<li>منابع: “Information Theory, Inference and Learning Algorithms”</li>
</ul>
</li>



<li><strong>تمرین عملی در یادگیری ماشین با پایتون و کتابخانه‌هایی مثل NumPy، Pandas و TensorFlow</strong></li>
</ol>



<h2 class="wp-block-heading">نظریه اطلاعات — پایه درک یادگیری ماشین در هوش مصنوعی</h2>



<p>در مدل‌های هوش مصنوعی، اطلاعات نقش کلیدی دارد. نظریه اطلاعات (Information Theory) به ما می‌آموزد که چگونه داده‌ها را به‌صورت کارآمد و مؤثر نمایش دهیم.<br>مفاهیم مهم این حوزه شامل:</p>



<ul class="wp-block-list">
<li>آنتروپی (Entropy)</li>



<li>کدگذاری شانون</li>



<li>Information Gain</li>



<li>Cross-Entropy Loss</li>
</ul>



<p>درک این مفاهیم باعث می‌شود عملکرد مدل‌های یادگیری ماشین در تشخیص الگوها و تصمیم‌گیری‌های پیچیده را بهتر درک کنید.</p>



<h2 class="wp-block-heading">نتیجه‌گیری — ریاضی، ستون فقرات یادگیری ماشین و آینده شغلی شما</h2>



<p>اگر هدف شما ورود به دنیای هوش مصنوعی است، <strong>یادگیری ریاضی برای یادگیری ماشین</strong> تنها یک مرحله نیست، بلکه پایه‌ای است برای همه‌ی مراحل پیشرفت شما.<br>دانشجویانی که این مفاهیم را درک می‌کنند، نه‌تنها می‌توانند الگوریتم‌ها را به‌درستی تحلیل کنند، بلکه درک عمیق‌تری از چگونگی کار مدل‌های هوش مصنوعی خواهند داشت.</p>



<p>#پیش‌نیازهای یادگیری ماشین</p>



<p></p>

    <div class="xs_social_share_widget xs_share_url after_content 		main_content  wslu-style-1 wslu-share-box-shaped wslu-fill-colored wslu-none wslu-share-horizontal wslu-theme-font-no wslu-main_content">

		
        <ul>
			        </ul>
    </div> 
]]></content:encoded>
					
					<wfw:commentRss>https://piero.ir/%d8%a2%d9%85%d9%88%d8%b2%d8%b4-%d8%b1%db%8c%d8%a7%d8%b6%db%8c-%d8%a8%d8%b1%d8%a7%db%8c-%d9%87%d9%88%d8%b4-%d9%85%d8%b5%d9%86%d9%88%d8%b9%db%8c/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>آموزش داکر Docker &#8211; شروع کار</title>
		<link>https://piero.ir/%d8%a2%d9%85%d9%88%d8%b2%d8%b4-%d8%af%d8%a7%da%a9%d8%b1-docker-%d8%b4%d8%b1%d9%88%d8%b9-%da%a9%d8%a7%d8%b1/</link>
		
		<dc:creator><![CDATA[پیروز جنابی]]></dc:creator>
		<pubDate>Fri, 26 Sep 2025 00:32:35 +0000</pubDate>
				<category><![CDATA[دسته‌بندی نشده]]></category>
		<guid isPermaLink="false">https://www.piero.ir/?p=4182</guid>

					<description><![CDATA[آموزش کامل Docker: از صفر تا دیپلوی حرفه‌ای داکر چیست و چرا مهم است؟ Docker پلتفرمی برای ساخت، بسته‌بندی و اجرای اپلیکیشن‌ها در قالب کانتینر است. کانتینرها سبک، سریع و قابل‌انتقال‌اند و مشکل «روی سیستم من کار می‌کند!» را حل می‌کنند. مزایا: سرعت راه‌اندازی، تکرارپذیری، مقیاس‌پذیری، سازگاری محیط توسعه و تولید، هزینه کمتر نسبت به [&#8230;]]]></description>
										<content:encoded><![CDATA[<h1>آموزش کامل Docker: از صفر تا دیپلوی حرفه‌ای</h1>
<h2>داکر چیست و چرا مهم است؟</h2>
<p>Docker پلتفرمی برای ساخت، بسته‌بندی و اجرای اپلیکیشن‌ها در قالب <strong>کانتینر</strong> است. کانتینرها سبک، سریع و قابل‌انتقال‌اند و مشکل «روی سیستم من کار می‌کند!» را حل می‌کنند.</p>
<ul>
<li><strong>مزایا:</strong> سرعت راه‌اندازی، تکرارپذیری، مقیاس‌پذیری، سازگاری محیط توسعه و تولید، هزینه کمتر نسبت به VMها.</li>
</ul>
<h2>مفاهیم کلیدی</h2>
<ul>
<li><strong>Image (ایمیج):</strong> قالب فقط‌خواندنی که شامل اپ و وابستگی‌هاست.</li>
<li><strong>Container (کانتینر):</strong> نمونهٔ در حال اجرای ایمیج.</li>
<li><strong>Registry:</strong> مخزن ایمیج‌ها (مانند Docker Hub).</li>
<li><strong>Dockerfile:</strong> دستورالعمل ساخت ایمیج.</li>
<li><strong>Volume:</strong> ذخیره‌سازی پایدار داده‌ها خارج از لایهٔ کانتینر.</li>
<li><strong>Network:</strong> اتصال کانتینرها به هم و به بیرون.</li>
</ul>
<h2>نصب Docker روی لینوکس (Ubuntu/Debian)</h2>
<pre><code>sudo apt update
sudo apt install -y ca-certificates curl gnupg lsb-release
sudo install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] \
https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | \
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt update
sudo apt install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
sudo usermod -aG docker $USER
</code></pre>
<p><strong>تست:</strong></p>
<pre><code>docker run --rm hello-world
</code></pre>
<h2>اولین تجربه: اجرای یک کانتینر</h2>
<pre><code>docker run -d --name web -p 80:80 nginx:alpine
docker logs -f web
docker ps
</code></pre>
<h2>مدیریت ایمیج و کانتینر</h2>
<pre><code>docker images
docker ps -a
docker stop web
docker start web
docker rm web
docker rmi nginx:alpine
docker system prune -af
</code></pre>
<h2>Volumes: ذخیره‌سازی پایدار</h2>
<pre><code>docker volume create web_data
docker run -d --name web -p 80:80 -v web_data:/usr/share/nginx/html nginx:alpine
</code></pre>
<h2>Networking: اتصال سرویس‌ها</h2>
<pre><code>docker network create app_net
docker run -d --name db --network app_net \
-e POSTGRES_PASSWORD=secret \
-e POSTGRES_DB=app postgres:16-alpine

docker run -d --name app --network app_net \
-e DATABASE_URL=postgres://postgres:secret@db:5432/app youruser/yourapp:latest
</code></pre>
<h2>Dockerfile: ساخت ایمیج سفارشی</h2>
<pre><code># مرحله ساخت
FROM node:20-alpine AS build
WORKDIR /app
COPY package*.json ./
RUN npm ci --only=production
COPY . .
# مرحله اجرا
FROM node:20-alpine
ENV NODE_ENV=production
WORKDIR /app
COPY --from=build /app /app
EXPOSE 3000
CMD ["node", "server.js"]
</code></pre>
<h2>Compose: مدیریت چند سرویس</h2>
<pre><code>services:
  db:
    image: postgres:16-alpine
    environment:
      POSTGRES_DB: app
      POSTGRES_USER: app
      POSTGRES_PASSWORD: please-change
    volumes:
      - db_data:/var/lib/postgresql/data

  app:
    build: ./app
    environment:
      DATABASE_URL: postgres://app:please-change@db:5432/app
    depends_on:
      - db

  web:
    image: nginx:alpine
    ports:
      - "80:80"
    volumes:
      - ./nginx.conf:/etc/nginx/conf.d/default.conf:ro
    depends_on:
      - app

volumes:
  db_data:
</code></pre>
<h2>سناریوهای آماده</h2>
<h3>استقرار n8n</h3>
<pre><code>services:
  n8n:
    image: n8nio/n8n:latest
    ports:
      - "5678:5678"
    environment:
      - N8N_HOST=n8n.example.com
      - N8N_PORT=5678
      - N8N_PROTOCOL=https
      - GENERIC_TIMEZONE=Asia/Tehran
    volumes:
      - n8n_data:/home/node/.n8n
volumes:
  n8n_data:
</code></pre>
<h3>ربات تلگرام</h3>
<pre><code>services:
  bot:
    build: ./bot
    env_file:
      - .env
</code></pre>
<h3>وب‌سایت استاتیک</h3>
<pre><code>services:
  web:
    image: nginx:alpine
    ports: ["80:80"]
    volumes:
      - ./public:/usr/share/nginx/html:ro
</code></pre>
<h2>بهترین شیوه‌ها</h2>
<ul>
<li>استفاده از تصاویر سبک (Alpine)</li>
<li>Multi-stage build</li>
<li>اجرای کاربر غیر-ریشه</li>
<li>نسخه‌گذاری ایمیج‌ها</li>
<li>استفاده از متغیرهای محیطی و Secrets</li>
<li>مانیتورینگ و بکاپ ولوم‌ها</li>
</ul>
<h2>امنیت Docker</h2>
<ul>
<li>آپدیت منظم Docker و سیستم‌عامل</li>
<li>محدودیت منابع برای کانتینرها</li>
<li>فعال‌سازی AppArmor/SELinux</li>
<li>استفاده از Docker Content Trust</li>
</ul>
<h2>دیپلوی روی سرور (CI/CD)</h2>
<p>با GitHub Actions می‌توانید ایمیج بسازید، به رجیستری پوش کنید و روی سرور اجرا کنید.</p>
<h2>خطایابی سریع</h2>
<pre><code>docker ps -a
docker logs -f <name>
docker exec -it <name> sh
docker inspect <name>
docker compose logs -f
</code></pre>
<h2>پرسش‌های متداول</h2>
<ul>
<li><strong>فرق VM و کانتینر؟</strong> کانتینر سبک‌تر و سریع‌تر است چون کرنل میزبان را استفاده می‌کند.</li>
<li><strong>آیا داکر برای تولید مناسب است؟</strong> بله، با رعایت امنیت و مانیتورینگ.</li>
<li><strong>چه زمانی به Kubernetes برویم؟</strong> وقتی نیاز به مقیاس‌پذیری و چند سرور دارید.</li>
</ul>
<div class="xs_social_share_widget xs_share_url after_content 		main_content  wslu-style-1 wslu-share-box-shaped wslu-fill-colored wslu-none wslu-share-horizontal wslu-theme-font-no wslu-main_content">
<ul>
			        </ul>
</p></div>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>آموزش کامل و حرفه‌ای React JSX &#124; مثال‌های کاربردی و نکات پیشرفته</title>
		<link>https://piero.ir/jsx/</link>
		
		<dc:creator><![CDATA[پیروز جنابی]]></dc:creator>
		<pubDate>Sun, 24 Sep 2017 14:57:29 +0000</pubDate>
				<category><![CDATA[آموزش reactJs]]></category>
		<category><![CDATA[دسته‌بندی نشده]]></category>
		<category><![CDATA[reactJs]]></category>
		<guid isPermaLink="false">http://www.piero.ir/?p=857</guid>

					<description><![CDATA[آموزش حرفه‌ای React JSX: از اصول تا الگوهای پیشرفته JSX یک سینتکس شبیه HTML است که داخل جاوااسکریپت استفاده می‌شود و به‌صورت Declarative رابط کاربری را توصیف می‌کند. این آموزش از مبانی تا تکنیک‌های حرفه‌ای (شرطی‌سازی، لیست‌ها و کلیدها، مدیریت state، هوک‌ها، پرفورمنس و الگوهای پیشرفته) را پوشش می‌دهد. ۱) JSX چیست و چرا؟ خوانایی [&#8230;]]]></description>
										<content:encoded><![CDATA[<div dir="rtl">
<h1>آموزش حرفه‌ای React JSX: از اصول تا الگوهای پیشرفته</h1>
<p>JSX یک سینتکس شبیه HTML است که داخل جاوااسکریپت استفاده می‌شود و به‌صورت <em>Declarative</em> رابط کاربری را توصیف می‌کند. این آموزش از مبانی تا تکنیک‌های حرفه‌ای (شرطی‌سازی، لیست‌ها و کلیدها، مدیریت state، هوک‌ها، پرفورمنس و الگوهای پیشرفته) را پوشش می‌دهد.</p>
<hr />
<h2>۱) JSX چیست و چرا؟</h2>
<ul>
<li>خوانایی بالا و نزدیکی به ساختار UI</li>
<li>اسکوپ و منطق جاوااسکریپت در کنار View</li>
<li>بهینه‌سازی هوشمند توسط React و ابزارهای ساخت</li>
</ul>
<h3>قواعد JSX</h3>
<ul>
<li>کامپوننت‌ها باید <strong>یک ریشه</strong> داشته باشند (از &lt;div&gt; یا &lt;React.Fragment&gt; استفاده کنید).</li>
<li>به‌جای <code>class</code> از <code>className</code> استفاده کنید.</li>
<li>استایل inline به‌صورت آبجکت جاوااسکریپت است (camelCase).</li>
<li>عبارت‌های JS را داخل <code>{}</code> قرار دهید.</li>
</ul>
<pre><pre class="brush: jscript; title: ; notranslate">// یک کامپوننت ساده
function Hello() {
const name = &quot;Piero&quot;;
return (
&amp;amp;lt;div className=&quot;box&quot;&amp;amp;gt;
&amp;amp;lt;h2&amp;amp;gt;سلام، {name}!&amp;amp;lt;/h2&amp;amp;gt;
&amp;amp;lt;/div&amp;amp;gt;
);
}</pre>
<hr />
<h2>۲) درج متغیرها و عبارات در JSX</h2>
<p>هر عبارت جاوااسکریپت را می‌توانید با آکولاد در JSX بنویسید.</p>
<pre><pre class="brush: jscript; title: ; notranslate">const price = 129_000;
const user = { firstName: &quot;Sara&quot;, lastName: &quot;Karimi&quot; };

export default function Card() {
return (
&amp;amp;lt;section&amp;amp;gt;

مبلغ: {price.toLocaleString(&quot;fa-IR&quot;)}

نام: {${user.firstName} ${user.lastName}}
{price &amp;amp;gt; 100000 ? &amp;amp;lt;strong&amp;amp;gt;پیشنهاد ویژه!&amp;amp;lt;/strong&amp;amp;gt; : null}
&amp;amp;lt;/section&amp;amp;gt;
);
}</pre>
<hr />
<h2>۳) شرطی‌سازی در JSX</h2>
<p>از عملگر سه‌تایی، AND منطقی یا جداسازی منطق قبل از return استفاده کنید.</p>
<pre><pre class="brush: jscript; title: ; notranslate">// 1) سه‌تایی
{isLoading ? &amp;amp;lt;Spinner /&amp;amp;gt; : &amp;amp;lt;DataList /&amp;amp;gt;}

// 2) AND منطقی (برای نمایش شرطی کوتاه)
{error &amp;amp;amp;&amp;amp;amp; 
خطا: {error.message}
}

// 3) جداسازی منطق
let content;
if (isLoading) content = &amp;amp;lt;Spinner /&amp;amp;gt;;
else if (error) content = &amp;amp;lt;ErrorView /&amp;amp;gt;;
else content = &amp;amp;lt;DataList /&amp;amp;gt;;
return &amp;amp;lt;div&amp;amp;gt;{content}&amp;amp;lt;/div&amp;amp;gt;;</pre>
<hr />
<h2>۴) رندر لیست‌ها و کلیدها (keys)</h2>
<p>برای عملکرد و جلوگیری از باگ در Diff، به هر آیتم یک <code>key</code> یکتا بدهید (از id پایدار استفاده کنید).</p>
<pre><pre class="brush: jscript; title: ; notranslate">const items = &#x5B;
{ id: &quot;a1&quot;, title: &quot;React&quot; },
{ id: &quot;b2&quot;, title: &quot;JSX&quot; },
{ id: &quot;c3&quot;, title: &quot;Hooks&quot; },
];

function List() {
return (
&amp;amp;lt;ul&amp;amp;gt;
{items.map(item =&amp;amp;gt; (
&amp;amp;lt;li key={item.id}&amp;amp;gt;{item.title}&amp;amp;lt;/li&amp;amp;gt;
))}
&amp;amp;lt;/ul&amp;amp;gt;
);
}</pre>
<hr />
<h2>۵) پراپس‌ها، State و رویدادها</h2>
<h3>پراپس‌ها</h3>
<pre><pre class="brush: jscript; title: ; notranslate">function Button({ children, onClick, type = &quot;button&quot; }) { return &amp;amp;lt;button type={type} onClick={onClick}&amp;amp;gt;{children}&amp;amp;lt;/button&amp;amp;gt;; }

// استفاده
&amp;amp;lt;Button onClick={() =&amp;amp;gt; alert(&quot;clicked!&quot;)}&amp;amp;gt;کلیک&amp;amp;lt;/Button&amp;amp;gt;</pre>
<h3>State و رویدادها با Hooks</h3>
<pre><pre class="brush: jscript; title: ; notranslate">import { useState } from &quot;react&quot;;

function Counter() {
const &#x5B;count, setCount] = useState(0);
return (
&amp;amp;lt;div&amp;amp;gt;

شمارنده: {count}
&amp;amp;lt;button onClick={() =&amp;amp;gt; setCount((c) =&amp;amp;gt; c + 1)}&amp;amp;gt;افزایش&amp;amp;lt;/button&amp;amp;gt;
&amp;amp;lt;/div&amp;amp;gt;
);
}</pre>
<h3>کنترل فرم (Controlled Components)</h3>
<pre><pre class="brush: jscript; title: ; notranslate">import { useState } from &quot;react&quot;;

function LoginForm() {
const &#x5B;email, setEmail] = useState(&quot;&quot;);

const submit = (e) =&amp;amp;gt; {
e.preventDefault();
console.log({ email });
};

return (
&amp;amp;lt;form onSubmit={submit}&amp;amp;gt;
&amp;amp;lt;input
value={email}
onChange={(e) =&amp;amp;gt; setEmail(e.target.value)}
placeholder=&quot;ایمیل&quot;
/&amp;amp;gt;
&amp;amp;lt;button&amp;amp;gt;ارسال&amp;amp;lt;/button&amp;amp;gt;
&amp;amp;lt;/form&amp;amp;gt;
);
}</pre>
<hr />
<h2>۶) Fragment، Portal و Context</h2>
<h3>Fragment</h3>
<pre><pre class="brush: jscript; title: ; notranslate">return ( &amp;amp;lt;&amp;amp;gt; &amp;amp;lt;Header /&amp;amp;gt; &amp;amp;lt;Main /&amp;amp;gt; &amp;amp;lt;/&amp;amp;gt; );</pre>
<h3>Portal (رندر خارج از سلسله‌مراتب معمول)</h3>
<pre><pre class="brush: jscript; title: ; notranslate">import { createPortal } from &quot;react-dom&quot;;

function Modal({ children }) {
return createPortal(
&amp;amp;lt;div className=&quot;backdrop&quot;&amp;amp;gt;{children}&amp;amp;lt;/div&amp;amp;gt;,
document.getElementById(&quot;modal-root&quot;)
);
}</pre>
<h3>Context (مدیریت وضعیت سراسری سبک)</h3>
<pre><pre class="brush: jscript; title: ; notranslate">import { createContext, useContext } from &quot;react&quot;;

const ThemeContext = createContext(&quot;light&quot;);

function App() {
return (
&amp;amp;lt;ThemeContext.Provider value=&quot;dark&quot;&amp;amp;gt;
&amp;amp;lt;Toolbar /&amp;amp;gt;
&amp;amp;lt;/ThemeContext.Provider&amp;amp;gt;
);
}

function Toolbar() {
const theme = useContext(ThemeContext);
return &amp;amp;lt;div data-theme={theme}&amp;amp;gt;Toolbar&amp;amp;lt;/div&amp;amp;gt;;
}</pre>
<hr />
<h2>۷) الگوهای حرفه‌ای با Hooks</h2>
<h3>بهینه‌سازی پرفورمنس: memo, useMemo, useCallback</h3>
<pre><pre class="brush: jscript; title: ; notranslate">import React, { useMemo, useCallback } from &quot;react&quot;;

const Expensive = React.memo(function Expensive({ value }) {
console.log(&quot;render&quot;);
return &amp;amp;lt;div&amp;amp;gt;محاسبه: {value}&amp;amp;lt;/div&amp;amp;gt;;
});

function Dashboard({ items }) {
const total = useMemo(() =&amp;amp;gt; items.reduce((s, x) =&amp;amp;gt; s + x, 0), &#x5B;items]);
const handleClick = useCallback(() =&amp;amp;gt; console.log(&quot;clicked&quot;), &#x5B;]);
return (
&amp;amp;lt;div&amp;amp;gt;

جمع: {total}
&amp;amp;lt;button onClick={handleClick}&amp;amp;gt;لاگ&amp;amp;lt;/button&amp;amp;gt;
&amp;amp;lt;Expensive value={total} /&amp;amp;gt;
&amp;amp;lt;/div&amp;amp;gt;
);
}</pre>
<h3>کداسپلیتینگ با lazy و Suspense</h3>
<pre><pre class="brush: jscript; title: ; notranslate">import React from &quot;react&quot;;

const Chart = React.lazy(() =&amp;amp;gt; import(&quot;./Chart&quot;));

function Reports() {
return (
&amp;amp;lt;React.Suspense fallback={&amp;amp;lt;div&amp;amp;gt;در حال بارگذاری...&amp;amp;lt;/div&amp;amp;gt;}&amp;amp;gt;
&amp;amp;lt;Chart /&amp;amp;gt;
&amp;amp;lt;/React.Suspense&amp;amp;gt;
);
}</pre>
<h3>Error Boundary</h3>
<pre><pre class="brush: jscript; title: ; notranslate">import React from &quot;react&quot;;

class ErrorBoundary extends React.Component {
state = { hasError: false };
static getDerivedStateFromError() { return { hasError: true }; }
componentDidCatch(err, info) { console.error(err, info); }
render() {
return this.state.hasError ? &amp;amp;lt;h3&amp;amp;gt;خطایی رخ داد&amp;amp;lt;/h3&amp;amp;gt; : this.props.children;
}
}

export default ErrorBoundary;</pre>
<hr />
<h2>۸) الگوی «بالابردن State» و ترکیب‌پذیری</h2>
<pre><pre class="brush: jscript; title: ; notranslate">import { useState } from &quot;react&quot;;

function Parent() {
const &#x5B;value, setValue] = useState(&quot;&quot;);
return (
&amp;amp;lt;&amp;amp;gt;
&amp;amp;lt;Input value={value} onChange={setValue} /&amp;amp;gt;
&amp;amp;lt;Preview value={value} /&amp;amp;gt;
&amp;amp;lt;/&amp;amp;gt;
);
}

function Input({ value, onChange }) {
return &amp;amp;lt;input value={value} onChange={(e) =&amp;amp;gt; onChange(e.target.value)} /&amp;amp;gt;;
}

function Preview({ value }) {
return 
پیش‌نمایش: {value}
;
}</pre>
<hr />
<h2>۹) استایل‌دهی در JSX</h2>
<p>گزینه‌ها: CSS Module، Styled Components، Tailwind، یا استایل inline.</p>
<pre><pre class="brush: jscript; title: ; notranslate">// استایل inline

&amp;amp;lt;div style={{ padding: 12, borderRadius: 8 }} /&amp;amp;gt;

// CSS Module
import styles from &quot;./box.module.css&quot;;

&amp;amp;lt;div className={styles.box}&amp;amp;gt;Box&amp;amp;lt;/div&amp;amp;gt;</pre>
<hr />
<h2>۱۰) دسترسی‌پذیری (a11y) و SEO فرانت‌اند</h2>
<ul>
<li>استفاده از تگ‌های معنایی (&lt;main&gt;, &lt;nav&gt;, &lt;header&gt;)</li>
<li>مشخص‌کردن alt برای تصاویر</li>
<li>مدیریت فوکوس و نسبت کنتراست مناسب</li>
</ul>
<hr />
<h2>۱۱) تست کامپوننت‌ها</h2>
<pre><pre class="brush: jscript; title: ; notranslate">// React Testing Library import { render, screen } from &quot;@testing-library/react&quot;; import Button from &quot;./Button&quot;;

test(&quot;renders label&quot;, () =&amp;amp;gt; {
render(&amp;amp;lt;Button&amp;amp;gt;سلام&amp;amp;lt;/Button&amp;amp;gt;);
expect(screen.getByText(&quot;سلام&quot;)).toBeInTheDocument();
});</pre>
<hr />
<h2>۱۲) نمونهٔ اپ کوچک: فهرست کارها (Todo)</h2>
<pre><pre class="brush: jscript; title: ; notranslate">import { useState } from &quot;react&quot;;

export default function TodoApp() {
const &#x5B;items, setItems] = useState(&#x5B;]);
const &#x5B;text, setText] = useState(&quot;&quot;);

const add = () =&amp;amp;gt; {
if (!text.trim()) return;
setItems((prev) =&amp;amp;gt; &#x5B;...prev, { id: crypto.randomUUID(), text }]);
setText(&quot;&quot;);
};

const remove = (id) =&amp;amp;gt; setItems((prev) =&amp;amp;gt; prev.filter(i =&amp;amp;gt; i.id !== id));

return (
&amp;amp;lt;div className=&quot;todo&quot;&amp;amp;gt;
&amp;amp;lt;h2&amp;amp;gt;کارها&amp;amp;lt;/h2&amp;amp;gt;
&amp;amp;lt;input value={text} onChange={(e) =&amp;amp;gt; setText(e.target.value)} /&amp;amp;gt;
&amp;amp;lt;button onClick={add}&amp;amp;gt;افزودن&amp;amp;lt;/button&amp;amp;gt;
&amp;amp;lt;ul&amp;amp;gt;
{items.map(i =&amp;amp;gt; (
&amp;amp;lt;li key={i.id}&amp;amp;gt;
{i.text}
&amp;amp;lt;button onClick={() =&amp;amp;gt; remove(i.id)}&amp;amp;gt;حذف&amp;amp;lt;/button&amp;amp;gt;
&amp;amp;lt;/li&amp;amp;gt;
))}
&amp;amp;lt;/ul&amp;amp;gt;
&amp;amp;lt;/div&amp;amp;gt;
);
}</pre>
<hr />
<h2>۱۳) نکات حرفه‌ای برای پروژه‌های واقعی</h2>
<ul>
<li>ساختار پوشه‌ها بر اساس دامنه (Feature-Sliced) به‌جای تفکیک فایل‌محور.</li>
<li>TypeScript برای خودمستندسازی و ایمنی تایپی.</li>
<li>ESLint + Prettier برای یکپارچگی کد.</li>
<li>استفاده از React Query / SWR برای مدیریت سرور استیت.</li>
<li>Next.js برای SSR/SSG، بهبود SEO و رندر سمت سرور.</li>
</ul>
<hr />
<h2>پرسش‌های متداول (FAQ)</h2>
<p><strong>تفاوت JSX و HTML؟</strong> JSX یک سینتکس داخل جاوااسکریپت است؛ برخی ویژگی‌ها متفاوت‌اند (مثل className، onClick).<br />
<strong>آیا بدون Babel می‌توان JSX نوشت؟</strong> نه، JSX باید به جاوااسکریپت کامپایل شود (Vite/Next.js/CRA قدیمی).<br />
<strong>راه بهینه‌سازی سرعت رندر چیست؟</strong> کلیدهای پایدار، memo/useMemo/useCallback، تقسیم کد با lazy/Suspense و جلوگیری از رندرهای غیرضروری.</p>
<hr />
<h3></h3>
</div>
<div class="xs_social_share_widget xs_share_url after_content 		main_content  wslu-style-1 wslu-share-box-shaped wslu-fill-colored wslu-none wslu-share-horizontal wslu-theme-font-no wslu-main_content">
<ul>
			        </ul>
</p></div>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>آموزش  reactJS</title>
		<link>https://piero.ir/%d8%a2%d9%85%d9%88%d8%b2%d8%b4-%d8%b1%db%8c-%d8%a7%da%a9%d8%aa-react/</link>
		
		<dc:creator><![CDATA[پیروز جنابی]]></dc:creator>
		<pubDate>Sun, 24 Sep 2017 11:33:05 +0000</pubDate>
				<category><![CDATA[آموزش reactJs]]></category>
		<category><![CDATA[آموزش رایگان]]></category>
		<category><![CDATA[دسته‌بندی نشده]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[jsx]]></category>
		<category><![CDATA[reactJs]]></category>
		<category><![CDATA[ری اکت]]></category>
		<guid isPermaLink="false">http://www.piero.ir/?p=781</guid>

					<description><![CDATA[به آموزش  reactJS  (ری اکت) قسمت اول خوش آمدید reactJS یک فریم ورک جاوا اسکریپت می باشد که توسط فیس بوک ساخته شده است . این فریم ورک از برترین فریم ورکهای جهان می باشد که دارای مزایای زیر می باشد. بسیار سریع : برنامه هایی که با این فریم ورک ساخته می شوند بسیار [&#8230;]]]></description>
										<content:encoded><![CDATA[<h3 style="text-align: justify;">به آموزش  reactJS  (ری اکت) قسمت اول خوش آمدید</h3>
<p style="text-align: justify;">reactJS یک فریم ورک جاوا اسکریپت می باشد که توسط فیس بوک ساخته شده است . این فریم ورک از برترین فریم ورکهای جهان می باشد که دارای مزایای زیر می باشد.</p>
<ol style="text-align: justify;">
<li><strong>بسیار سریع :</strong> برنامه هایی که با این فریم ورک ساخته می شوند بسیار سریع هستند زیرا reactJS بسیار بهینه ساخته شده است.</li>
<li><strong>بسیار ماژولار :</strong> در صورتی که شما بسیار برنامه ای بزرگ دارید شما می توانید با reactJS به قطعات کوچکتر تبدیل کنید .</li>
<li><strong>هماهنگ با داده های بزرگ :</strong> reactJS بسیار مناسب برای برناه هایی با داده های بالا است .</li>
<li><strong>انعطاف بالا :</strong> با reactJS هرکاری که شما فکر کنید می توان انجام داد .</li>
<li><strong>شهرت :</strong> وقتی شما تسلط بر این فریم ورک داشته باشید طبیعتا شرایط شما برای یافتن کار مناسب بسیار عالی می باشد .</li>
</ol>
<p style="text-align: justify;">لازم به ذکر است برای شروع نیاز است شما به زبان برنامه نویسی <strong>جاوا اسکریپت</strong>  مسلط باشید همچنین می بایست جاوا اسکریپت اکما اسکریپت ۶ را مسلط با شید که ما با استفاده از بابل آن را به نسخه های رایج مرور گرها تبدیل می کنیم . در لینکهای زیر شامل برترین منابع یادگیری جاوا اسکریپت است :</p>
<p dir="ltr" style="text-align: justify;"><a href="https://www.codecademy.com/learn/javascript" target="_blank" rel="noopener">https://www.codecademy.com/learn/javascript</a></p>
<p dir="ltr" style="text-align: justify;"><a href="https://www.w3schools.com/js/default.asp" target="_blank" rel="noopener">https://www.w3schools.com/js/default.asp</a></p>
<h2 style="text-align: justify;">شروع آموزش reactJS</h2>
<p style="text-align: justify;">به کد زیر توجه نمایید :</p>
<pre class="lang:default decode:true ">var h1 = &lt;h1&gt;Hello world&lt;/h1&gt;;</pre>
<p>&nbsp;</p>
<p style="text-align: justify;">در حالت عادی جاوا اسکریپت به این کد خطا می گیرد :</p>
<div class="panelNode panelNode-console contextUID=2">
<div class="logRow logRow-errorMessage ">
<div class=" " style="text-align: justify;">
<div class="logContent " dir="ltr">
<div class="errorTitle focusRow subLogRow "><span class="errorMessage " style="color: #ff0000;">The character encoding of the HTML document was not declared. The document will render with garbled text in some browser configurations if the document contains characters from outside the US-ASCII range. The character encoding of the page must be declared in the document or in the transfer protocol.</span></div>
</div>
</div>
<div class="logContent " dir="rtl" style="text-align: justify;">به این ساختار <em>JSX</em> می گویند در ادامه به این مبحث به طور کامل می پردازیم.</div>
<h1 class="logContent " dir="rtl" style="text-align: justify;"><em>JSX</em></h1>
<p style="text-align: justify;">JSX یک المنت است که تعریف می شود و می توان هر مقدار دلخواهی را درون آن قرار داد  مانند اعداد ، رشته ، HTML  ، شی ، آرایه و &#8230;</p>
<p style="text-align: justify;">در واقع شما با jsx می توانید یک متغیر تعریف کنید و آن متغیر را به یک المنت html تبدیل کنید و در مواقع لزوم از آن استفاده کنید .</p>
<pre class="lang:default decode:true ">var navBar = &lt;nav&gt;I am a nav bar&lt;/nav&gt;;</pre>
<p>&nbsp;</p>
<p style="text-align: justify;">ذخیره شدن المنتهای HTML در JSX</p>
<pre class="lang:default decode:true ">var Pistons2004 = {
  center:        &lt;li&gt;Ben Wallace&lt;/li&gt;,
  powerForward:  &lt;li&gt;Rasheed Wallace&lt;/li&gt;,
  smallForward:  &lt;li&gt;Tayshaun Prince&lt;/li&gt;,
  shootingGuard: &lt;li&gt;Richard Hamilton&lt;/li&gt;,
  pointGuard:    &lt;li&gt;Chauncey Billups&lt;/li&gt;
};</pre>
<p>&nbsp;</p>
<p style="text-align: justify;">المنتهای jsx می نوانند دارای ویژگی باشند همانند html</p>
<p style="text-align: justify;">و همانند html هم مقدار دهی می شوند .</p>
<pre dir="ltr" class="">&lt;a href="http://www.yahoo.com"&gt;Welcome to the Yahoo&lt;/a&gt;;
var title = &lt;h1 id="title"&gt;Introduction to React.js: Part I&lt;/h1&gt;;</pre>
<p style="text-align: justify;">همچنین می توانند تو در تو باشند و برای خوانایی بیشتر از فاصله ها یا رفتن به خط بعد استفاده کرد.</p>
<pre class="lang:default decode:true ">&lt;a href="https://www.google.net"&gt; &lt;h1&gt; Click me I am Goooogle &lt;/h1&gt; &lt;/a&gt;</pre>
<p>&nbsp;</p>
<p dir="rtl" style="text-align: justify;"><strong>ولی توجه کنید برای رفتن به خط بعد حتما باید کد ما در پرانتز قرار بگیرد:</strong></p>
<pre dir="ltr" class="">var theGoogle = (
   &lt;a href="https://www.google.net"&gt;
     &lt;h1&gt;
       Click me I am Gooooooooooogle
     &lt;/h1&gt;
   &lt;/a&gt;
 );</pre>
<p style="text-align: justify;">نکته مهم : شما فقط می توانید یک المنت پایه داشته باشید :</p>
<pre dir="ltr" class="">var paragraphs = (
  &lt;div id="i-am-the-outermost-element"&gt;
    &lt;p&gt;I am a paragraph.&lt;/p&gt;
    &lt;p&gt;I, too, am a paragraph.&lt;/p&gt;
  &lt;/div&gt;
);</pre>
<p style="text-align: justify;">در حالی که مثال زیر خطا می دهد :(به دلیل اینکه  تگهای p دارای ریشه نمی باشند )</p>
<pre dir="ltr">var paragraphs = (
  &lt;p&gt;I am a paragraph.&lt;/p&gt;
  &lt;p&gt;I, too, am a paragraph.&lt;/p&gt;
);</pre>
<p style="text-align: justify;">برای رفع خطا بهتر است المتهایمان را درون یک &lt;div&gt; بگزاریم.(هر متغیر فقط می تواند یک تگ ریشه داشته باشد)</p>
<pre>var blog = ( &lt;div&gt; &lt;img src="pics/192940u73.jpg" /&gt;
&lt;h1&gt; Welcome to Dan's Blog! &lt;/h1&gt;
&lt;article&gt; Wow I had the tastiest sandwich today. I &lt;strong&gt;literally&lt;/strong&gt; almost freaked out. &lt;/article&gt; &lt;/div&gt; );</pre>
<h2 style="text-align: justify;">رندر کردن reactJS</h2>
<p style="text-align: justify;">حالا که به ساختار آن اشنا شدید بهتر است نحوه استفاده از react رایاد بگیرید .</p>
<pre class="lang:default decode:true">var React = require('react');
var ReactDOM = require('react-dom');
// Copy code here:
ReactDOM.render(&lt;h1&gt;Hello world&lt;/h1&gt;, document.getElementById('app'));</pre>
<p>&nbsp;</p>
<h4 style="text-align: justify;">خروجی : Hello world</h4>
<p style="text-align: justify;">نگران نباشید الان به طور کامل براتون این مورد را شرح می دهیم:</p>
<p style="text-align: justify;">در خط اول و دوم کتابخانه reactJS را فراخوانی کردیم.</p>
<p style="text-align: justify;"><code>ReactDOM</code> چیست ؟</p>
<p style="text-align: justify;">یک کتابخانه جاوا اسکریپت است که ویژگی های ری اکت را در خود جا داده است . البته در ادامه با این مفهوم به طور کامل آشنا می شویم ولی الان برمیگردیم به فایلمان همان گونه که می بینید تکه کد زیر خروجی مناسب می دهد :</p>
<pre class="lang:default decode:true ">ReactDOM.render(&lt;h1&gt;Hello world&lt;/h1&gt;, document.getElementById('app'));</pre>
<p>&nbsp;</p>
<p>ReactDOM.render تابعی است که نوع jsx را خروجی می دهد به المنت دوم تابع در واقع این تابع دو آرگومان ورودی دارد :</p>
<p>ارگومان اول متغیر jsx را دریافت و در المنت دوم چاپ می کند .</p>
<p><strong>توجه : شما می بایست در فایل html خود المنتی با ایدی app داشته باشید</strong></p>
<p dir="ltr">  &lt;main id=&#8221;app&#8221;&gt;&lt;/main&gt;</p>
<h2 dir="rtl">بارگزاری متغیر reactJs</h2>
<pre class="lang:default decode:true" dir="ltr">var React = require('react');
var ReactDOM = require('react-dom');

// Write code here:
var myList=(&lt;ul&gt;
    &lt;li&gt;info@piero.ir&lt;/li&gt;
    &lt;li&gt;www.piero.ir &lt;/li&gt;
    &lt;/ul&gt;
    );
ReactDOM.render(myList,document.getElementById("app"));</pre>
<p>خروچی :</p>
<ul data-reactroot="">
<li>info@piero.ir</li>
<li>www.piero.ir</li>
</ul>
<p>همانگونه که دیدید متغیری تعریف نمودیم و در آن لیستی قرار دادیم و بعد آن را چاپ نمودیم.</p>
<p>نکته پایانی:</p>
<p>چون از المنت استفاده می کنیم درصورتی که یک کد دوبار نوشته شود دفعه دوم هیچ کاری انجام نمیدهد :</p>
<pre dir="ltr" class="">var hello = &lt;h1&gt;Hello world&lt;/h1&gt;;

// This will add "Hello world" to the screen:

ReactDOM.render(hello, document.getElementById('app'));

// This won't do anything at all:

ReactDOM.render(hello, document.getElementById('app'));</pre>
</div>
<p>لطفا با ارایه نظرتتان مارا در بهبود مطالب وب سایت یاری نمایید با تشکر</p>
<p>با تشکر پیروز جنابی</p>
</div>
<div class="xs_social_share_widget xs_share_url after_content 		main_content  wslu-style-1 wslu-share-box-shaped wslu-fill-colored wslu-none wslu-share-horizontal wslu-theme-font-no wslu-main_content">
<ul>
			        </ul>
</p></div>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>کدایگنایتر درphpstrom</title>
		<link>https://piero.ir/%da%a9%d8%af%d8%a7%db%8c%da%af%d9%86%d8%a7%db%8c%d8%aa%d8%b1-%d8%af%d8%b1phpstrom/</link>
		
		<dc:creator><![CDATA[پیروز جنابی]]></dc:creator>
		<pubDate>Sun, 23 Jul 2017 12:01:07 +0000</pubDate>
				<category><![CDATA[دسته‌بندی نشده]]></category>
		<category><![CDATA[codeigniter]]></category>
		<category><![CDATA[phpstrom]]></category>
		<guid isPermaLink="false">http://www.piero.ir/?p=1088</guid>

					<description><![CDATA[نحوه پشتیبانی phpstrome در کدایگنایتر همانگونه که می دانیم phpstrom قوی ترین محیط برنامه نویسی php می باشد و کدایگنایتر یکی از قوی ترین و محبوب ترین فریم ورکهای php می باشد که به صورت پیش فرض قسمت تکمیل کد آن  در phpstrom پشتیبانی نمی شود .در واقع قسمتی که هنگام نوشتن کدها در phpstrom [&#8230;]]]></description>
										<content:encoded><![CDATA[<h1>نحوه پشتیبانی phpstrome در کدایگنایتر</h1>
<p>همانگونه که می دانیم phpstrom قوی ترین محیط برنامه نویسی php می باشد و کدایگنایتر یکی از قوی ترین و محبوب ترین فریم ورکهای php می باشد که به صورت پیش فرض قسمت تکمیل کد آن  در phpstrom پشتیبانی نمی شود .در واقع قسمتی که هنگام نوشتن کدها در phpstrom باعث می شود که ادامه کدها به ما پیشنهاد شود .</p>
<p>با مراحل زیر به راحتی می توانیم این قابلیت را به phpstrom خود بیفزارییم.</p>
<ol>
<li>فایلی به نام <strong>phpstorm.php</strong> در شاخه اصلی برنامه بسازید و محتوای زیر را در آن بگزارید.(در کنار index.php)</li>
<li>به پوشه <em>system/core/</em> رفته و بروی Controller.php و Model.php کلیک راست کرده و گزینه set <em>Mark as Plain Text</em> را بزنید.</li>
</ol>
<p>اکنون تنظیمات شما به اتمام رسیده است و همانگونه که در تصویر زیر می بینید متدها به راحتی به شما پیشنهاد داده می شود.</p>
<p><strong>تصویر دمو :</strong></p>
<p><img decoding="async" class="aligncenter" src="https://raw.githubusercontent.com/natanfelles/codeigniter-phpstorm/master/codeigniter-phpstorm.png" /></p>
<p><strong>فایل phpstorm.php :</strong></p>
<pre class="lang:default decode:true ">&lt;?php
die('This file is used for development purposes only.');
/**
 * PhpStorm Code Completion to CodeIgniter + HMVC
 *
 * @package       CodeIgniter
 * @subpackage    PhpStorm
 * @category      Code Completion
 * @version       3.1.4
 * @author        Natan Felles
 * @link          http://github.com/natanfelles/codeigniter-phpstorm
 */
/*
 * To enable code completion to your own libraries add a line above each class as follows:
 *
 * @property Library_name       $library_name                        Library description
 *
 */
/**
 * @property CI_Benchmark        $benchmark                           This class enables you to mark points and calculate the time difference between them. Memory consumption can also be displayed.
 * @property CI_Calendar         $calendar                            This class enables the creation of calendars
 * @property CI_Cache            $cache                               Caching Class
 * @property CI_Cart             $cart                                Shopping Cart Class
 * @property CI_Config           $config                              This class contains functions that enable config files to be managed
 * @property CI_Controller       $controller                          This class object is the super class that every library in CodeIgniter will be assigned to
 * @property CI_DB_forge         $dbforge                             Database Forge Class
 * @property CI_DB_mysql_driver|CI_DB_query_builder $db                                  This is the platform-independent base Query Builder implementation class
 * @property CI_DB_utility       $dbutil                              Database Utility Class
 * @property CI_Driver_Library   $driver                              Driver Library Class
 * @property CI_Email            $email                               Permits email to be sent using Mail, Sendmail, or SMTP
 * @property CI_Encrypt          $encrypt                             Provides two-way keyed encoding using Mcrypt
 * @property CI_Encryption       $encryption                          Provides two-way keyed encryption via PHP's MCrypt and/or OpenSSL extensions
 * @property CI_Exceptions       $exceptions                          Exceptions Class
 * @property CI_Form_validation  $form_validation                     Form Validation Class
 * @property CI_FTP              $ftp                                 FTP Class
 * @property CI_Hooks            $hooks                               Provides a mechanism to extend the base system without hacking
 * @property CI_Image_lib        $image_lib                           Image Manipulation class
 * @property CI_Input            $input                               Pre-processes global input data for security
 * @property CI_Javascript       $javascript                          Javascript Class
 * @property CI_Jquery           $jquery                              Jquery Class
 * @property CI_Lang             $lang                                Language Class
 * @property CI_Loader           $load                                Loads framework components
 * @property CI_Log              $log                                 Logging Class
 * @property CI_Migration        $migration                           All migrations should implement this, forces up() and down() and gives access to the CI super-global
 * @property CI_Model            $model                               CodeIgniter Model Class
 * @property CI_Output           $output                              Responsible for sending final output to the browser
 * @property CI_Pagination       $pagination                          Pagination Class
 * @property CI_Parser           $parser                              Parser Class
 * @property CI_Profiler         $profiler                            This class enables you to display benchmark, query, and other data in order to help with debugging and optimization.
 * @property CI_Router           $router                              Parses URIs and determines routing
 * @property CI_Security         $security                            Security Class
 * @property CI_Session          $session                             Session Class
 * @property CI_Table            $table                               Lets you create tables manually or from database result objects, or arrays
 * @property CI_Trackback        $trackback                           Trackback Sending/Receiving Class
 * @property CI_Typography       $typography                          Typography Class
 * @property CI_Unit_test        $unit                                Simple testing class
 * @property CI_Upload           $upload                              File Uploading Class
 * @property CI_URI              $uri                                 Parses URIs and determines routing
 * @property CI_User_agent       $agent                               Identifies the platform, browser, robot, or mobile device of the browsing agent
 * @property CI_Xmlrpc           $xmlrpc                              XML-RPC request handler class
 * @property CI_Xmlrpcs          $xmlrpcs                             XML-RPC server class
 * @property CI_Zip              $zip                                 Zip Compression Class
 * @property CI_Utf8             $utf8                                Provides support for UTF-8 environments
 * @property Ispconfig           $ispconfig                           This class enables you to use the ISPConfig 3 Remote API
 * @property Boleto              $boleto                              Boleto Class
 */
class CI_Controller {
	public function __construct()
	{
	}
}
/**
 * @property CI_Benchmark        $benchmark                           This class enables you to mark points and calculate the time difference between them. Memory consumption can also be displayed.
 * @property CI_Calendar         $calendar                            This class enables the creation of calendars
 * @property CI_Cache            $cache                               Caching Class
 * @property CI_Cart             $cart                                Shopping Cart Class
 * @property CI_Config           $config                              This class contains functions that enable config files to be managed
 * @property CI_Controller       $controller                          This class object is the super class that every library in CodeIgniter will be assigned to
 * @property CI_DB_forge         $dbforge                             Database Forge Class
 * @property CI_DB_mysql_driver|CI_DB_query_builder $db                                  This is the platform-independent base Query Builder implementation class
 * @property CI_DB_utility       $dbutil                              Database Utility Class
 * @property CI_Driver_Library   $driver                              Driver Library Class
 * @property CI_Email            $email                               Permits email to be sent using Mail, Sendmail, or SMTP
 * @property CI_Encrypt          $encrypt                             Provides two-way keyed encoding using Mcrypt
 * @property CI_Encryption       $encryption                          Provides two-way keyed encryption via PHP's MCrypt and/or OpenSSL extensions
 * @property CI_Exceptions       $exceptions                          Exceptions Class
 * @property CI_Form_validation  $form_validation                     Form Validation Class
 * @property CI_FTP              $ftp                                 FTP Class
 * @property CI_Hooks            $hooks                               Provides a mechanism to extend the base system without hacking
 * @property CI_Image_lib        $image_lib                           Image Manipulation class
 * @property CI_Input            $input                               Pre-processes global input data for security
 * @property CI_Javascript       $javascript                          Javascript Class
 * @property CI_Jquery           $jquery                              Jquery Class
 * @property CI_Lang             $lang                                Language Class
 * @property CI_Loader           $load                                Loads framework components
 * @property CI_Log              $log                                 Logging Class
 * @property CI_Migration        $migration                           All migrations should implement this, forces up() and down() and gives access to the CI super-global
 * @property CI_Model            $model                               CodeIgniter Model Class
 * @property CI_Output           $output                              Responsible for sending final output to the browser
 * @property CI_Pagination       $pagination                          Pagination Class
 * @property CI_Parser           $parser                              Parser Class
 * @property CI_Profiler         $profiler                            This class enables you to display benchmark, query, and other data in order to help with debugging and optimization.
 * @property CI_Router           $router                              Parses URIs and determines routing
 * @property CI_Security         $security                            Security Class
 * @property CI_Session          $session                             Session Class
 * @property CI_Table            $table                               Lets you create tables manually or from database result objects, or arrays
 * @property CI_Trackback        $trackback                           Trackback Sending/Receiving Class
 * @property CI_Typography       $typography                          Typography Class
 * @property CI_Unit_test        $unit                                Simple testing class
 * @property CI_Upload           $upload                              File Uploading Class
 * @property CI_URI              $uri                                 Parses URIs and determines routing
 * @property CI_User_agent       $agent                               Identifies the platform, browser, robot, or mobile device of the browsing agent
 * @property CI_Xmlrpc           $xmlrpc                              XML-RPC request handler class
 * @property CI_Xmlrpcs          $xmlrpcs                             XML-RPC server class
 * @property CI_Zip              $zip                                 Zip Compression Class
 * @property CI_Utf8             $utf8                                Provides support for UTF-8 environments
 */
class CI_Model {
	public function __construct()
	{
	}
}
/**
 * @property CI_Benchmark        $benchmark                           This class enables you to mark points and calculate the time difference between them. Memory consumption can also be displayed.
 * @property CI_Calendar         $calendar                            This class enables the creation of calendars
 * @property CI_Cache            $cache                               Caching Class
 * @property CI_Cart             $cart                                Shopping Cart Class
 * @property CI_Config           $config                              This class contains functions that enable config files to be managed
 * @property CI_Controller       $controller                          This class object is the super class that every library in CodeIgniter will be assigned to
 * @property CI_DB_forge         $dbforge                             Database Forge Class
 * @property CI_DB_mysql_driver|CI_DB_query_builder $db                                  This is the platform-independent base Query Builder implementation class
 * @property CI_DB_utility       $dbutil                              Database Utility Class
 * @property CI_Driver_Library   $driver                              Driver Library Class
 * @property CI_Email            $email                               Permits email to be sent using Mail, Sendmail, or SMTP
 * @property CI_Encrypt          $encrypt                             Provides two-way keyed encoding using Mcrypt
 * @property CI_Encryption       $encryption                          Provides two-way keyed encryption via PHP's MCrypt and/or OpenSSL extensions
 * @property CI_Exceptions       $exceptions                          Exceptions Class
 * @property CI_Form_validation  $form_validation                     Form Validation Class
 * @property CI_FTP              $ftp                                 FTP Class
 * @property CI_Hooks            $hooks                               Provides a mechanism to extend the base system without hacking
 * @property CI_Image_lib        $image_lib                           Image Manipulation class
 * @property CI_Input            $input                               Pre-processes global input data for security
 * @property CI_Javascript       $javascript                          Javascript Class
 * @property CI_Jquery           $jquery                              Jquery Class
 * @property CI_Lang             $lang                                Language Class
 * @property CI_Loader           $load                                Loads framework components
 * @property CI_Log              $log                                 Logging Class
 * @property CI_Migration        $migration                           All migrations should implement this, forces up() and down() and gives access to the CI super-global
 * @property CI_Model            $model                               CodeIgniter Model Class
 * @property CI_Output           $output                              Responsible for sending final output to the browser
 * @property CI_Pagination       $pagination                          Pagination Class
 * @property CI_Parser           $parser                              Parser Class
 * @property CI_Profiler         $profiler                            This class enables you to display benchmark, query, and other data in order to help with debugging and optimization.
 * @property CI_Router           $router                              Parses URIs and determines routing
 * @property CI_Security         $security                            Security Class
 * @property CI_Session          $session                             Session Class
 * @property CI_Table            $table                               Lets you create tables manually or from database result objects, or arrays
 * @property CI_Trackback        $trackback                           Trackback Sending/Receiving Class
 * @property CI_Typography       $typography                          Typography Class
 * @property CI_Unit_test        $unit                                Simple testing class
 * @property CI_Upload           $upload                              File Uploading Class
 * @property CI_URI              $uri                                 Parses URIs and determines routing
 * @property CI_User_agent       $agent                               Identifies the platform, browser, robot, or mobile device of the browsing agent
 * @property CI_Xmlrpc           $xmlrpc                              XML-RPC request handler class
 * @property CI_Xmlrpcs          $xmlrpcs                             XML-RPC server class
 * @property CI_Zip              $zip                                 Zip Compression Class
 * @property CI_Utf8             $utf8                                Provides support for UTF-8 environments
 */
class MX_Controller {
	public function __construct()
	{
	}
}</pre>
<p><strong>منبع :</strong></p>
<p><a href="https://github.com/natanfelles/codeigniter-phpstorm" target="_blank" rel="noopener">https://github.com/natanfelles/codeigniter-phpstorm</a></p>
<p>&nbsp;</p>
<div class="xs_social_share_widget xs_share_url after_content 		main_content  wslu-style-1 wslu-share-box-shaped wslu-fill-colored wslu-none wslu-share-horizontal wslu-theme-font-no wslu-main_content">
<ul>
			        </ul>
</p></div>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>نصب Linux  Nginx  MySQL  PHP بر روی لینوکس</title>
		<link>https://piero.ir/%d9%86%d8%b5%d8%a8-linux-nginx-mysql-php-%d8%a8%d8%b1-%d8%b1%d9%88%db%8c-%d9%84%db%8c%d9%86%d9%88%da%a9%d8%b3/</link>
		
		<dc:creator><![CDATA[پیروز جنابی]]></dc:creator>
		<pubDate>Mon, 10 Jul 2017 12:52:59 +0000</pubDate>
				<category><![CDATA[آموزش پی اچ پی]]></category>
		<category><![CDATA[آموزش رایگان]]></category>
		<category><![CDATA[دسته‌بندی نشده]]></category>
		<category><![CDATA[سایر آموزشها]]></category>
		<category><![CDATA[nginx]]></category>
		<category><![CDATA[php7]]></category>
		<category><![CDATA[نصب nginx]]></category>
		<category><![CDATA[نصب nginx بروی لینوکس]]></category>
		<guid isPermaLink="false">http://www.piero.ir/?p=1083</guid>

					<description><![CDATA[انجین ایکس ( Nginx ) یکی از وب سرور هایی است که بسیاری از مدیران سایت های پربازدید را به سوی خود جلب نموده است. انجین ایکس علاوه بر وب سرور، ریورس پراکسی سرور ( reverse proxy server ) و میل پراکسی سرور ( mail proxy server ) نیز می باشد که  بصورت متن باز ( open [&#8230;]]]></description>
										<content:encoded><![CDATA[<div dir="rtl">انجین ایکس ( Nginx ) یکی از وب سرور هایی است که بسیاری از مدیران سایت های پربازدید را به سوی خود جلب نموده است. انجین ایکس علاوه بر وب سرور، ریورس پراکسی سرور ( reverse proxy server ) و میل پراکسی سرور ( mail proxy server ) نیز می باشد که  بصورت متن باز ( open source ) ارائه شده است و از پروتکل های http , https , SMTP , POP3 و IMAP پشتیبانی می کند. انجین ایکس به گونه ای طراحی شده است که همزمان با پشتیبانی از تعداد کانکشن های بسیار بالا ، عملکرد مناسب و مصرف کم رم را به همراه داشته باشد. این وب سرور محبوب بر روی سیستم عامل های مختلفی از جمله لینوکس ، mac os و سولاریس قابل نصب می باشد. nginx توسط ایگور سیسویو ( igor sysoev ) ساخته شده است، ایگور در سال ۱۹۷۰ در شهر آلماتی قزاقستان به دنیا آمده است و فارغ التحصیل دانشگاه ایالتی مسکو می باشد.</div>
<p dir="rtl">کار ساخت nginx از سال ۲۰۰۲ آغاز گردید و اولین نسخه آن در سال ۲۰۰۴ منتشر گردید. در حال حاضر نزدیک به ۱۲ درصد وب سایت های جهان یعنی چیزی در حدود ۲۲ میلیون وب سایت از nginx به عنوان وب سرور خود استفاده می کنند.</p>
<p dir="rtl"><strong>چگونه وب سرور Nginx را بر روی سرور لینوکس خود نصب نمائیم؟</strong></p>
<p dir="rtl">در این آموزش به نصب LEMP بروی سرورهای ابونتو با استفاده از دستور apt می پردازیم .</p>
<h1 dir="rtl">گام اول :نصب NGINX</h1>
<p>برای شروع ترمینال خود را باز کرده و دستورات زیر را تایپ می کنیم .</p>
<pre class="lang:default decode:true ">    sudo apt-get update
    sudo apt-get install nginx
</pre>
<p>در صورتی که firewall ufw استفاده می کنید کد زیر را بزنید</p>
<pre class="lang:default decode:true ">sudo ufw allow 'Nginx HTTP'</pre>
<p>با کذ زیر می توانید ازufw خود مطلع شوید</p>
<pre class="lang:default decode:true ">sudo ufw status</pre>
<p>خروجی باید به شرح زیر باشد</p>
<pre class="lang:default decode:true ">Output
Status: active

To                         Action      From
--                         ------      ----
OpenSSH                    ALLOW       Anywhere
Nginx HTTP                 ALLOW       Anywhere
OpenSSH (v6)               ALLOW       Anywhere (v6)
Nginx HTTP (v6)            ALLOW       Anywhere (v6)</pre>
<p>&nbsp;</p>
<p>درصورتی که در حال حاضر سرور apache را نصب کرده اید با کد زیر آن را stop کنید و سرویس ngnix را اجرا کنید :</p>
<pre class="lang:default decode:true ">service apache2 stop
service ngnix start</pre>
<p>در کد اول آپاچی متوقف می شود و در کد دوم ngnix شروع به کار می کند .</p>
<p><strong>در صورتی که ngnix با موفقیت نصب شده باشد با زدن <a href="http://localhost" target="_blank" rel="noopener">http://localhost</a> درون مرور گر صفحه زیر نشان داده میشود</strong> :</p>
<p><img decoding="async" src="https://assets.digitalocean.com/articles/lemp_ubuntu_1604/nginx_default.png" /></p>
<p>&nbsp;</p>
<h1>نصب بانک اطلاعاتی</h1>
<p>به منظور نصب mysql از کد زیر استفاده می نماییم :</p>
<pre class="lang:default decode:true ">sudo apt-get install mysql-server</pre>
<p>ولی پیشنهاد می شود بانک اطلاعاتی maria db را نصب نمایید که در مقاله زیر به طور کامل به آن پرداخته ایم :</p>
<p>[irp posts=&#8221;620&#8243; name=&#8221;مهاجرت از Mysql به MariaDb&#8221;]</p>
<p>&nbsp;</p>
<h1>نصب php</h1>
<p>به طور کلی برای سازگاری php و nginx می بایست <code>php-fpm</code> را نصب نمود و در کل روال عادی نصب php را داریم :</p>
<pre class="lang:default decode:true ">sudo apt-get install php-fpm php-mysql</pre>
<p>قطعه کد بالا php را نصب نموده و تنظیمات مورد نظر جهت استفاده nginx را انجام می دهد.</p>
<h2>تنظیمات php برای nginx</h2>
<p>با کد زیر وارد تنظیمات <code>php-fpm</code> برای تنظیم php برروی سرورهای nginx می شویم :</p>
<pre class="lang:default decode:true">sudo nano /etc/php/7.0/fpm/php.ini</pre>
<p>در فایل مربوطه به دنبال گزینه cgi.fix_pathinfo می گردیم که در حالت پیش فرض به صورت زیر است:</p>
<pre class="lang:default decode:true">;cgi.fix_pathinfo=1</pre>
<p>به منظور تصحیح عملکرد ; را از ابتدا برداشته و مقدارش را برابر ۰ قرار می دهیم:</p>
<pre class="lang:default decode:true ">cgi.fix_pathinfo=0</pre>
<p>حالا کافی است php را با کد زیر  ریست نماییم :</p>
<pre class="lang:default decode:true ">sudo systemctl restart php7.0-fpm</pre>
<p>در صورتی که کد بالا جواب نداد از کد زیر برای ریست php استفاده نمایید :</p>
<pre class="lang:default decode:true ">service  php7.1-fpm restart</pre>
<h1>ساخت فایل تنظیمات NGINX</h1>
<p>امنون فقط یک گام مانده تا به lemp برسیم کافی است دستور زیر را بزنیم :</p>
<pre class="lang:default decode:true ">sudo nano /etc/nginx/sites-available/default</pre>
<p>این فایل حاوی تنظیمات پیش فرض nginx است بهتر است به مقدار زیر تغییرش دهیم:</p>
<pre class="lang:default decode:true ">server {
    listen 80 default_server;
    listen [::]:80 default_server;

    root /var/www/html;
    index index.php index.html index.htm index.nginx-debian.html;

    server_name server_domain_or_IP;

    location / {
        try_files $uri $uri/ =404;
    }

    location ~ \.php$ {
        include snippets/fastcgi-php.conf;
        fastcgi_pass unix:/run/php/php7.0-fpm.sock;
    }

    location ~ /\.ht {
        deny all;
    }
}
</pre>
<p>فایل بالا تنظیمات مناسب جهت استفاده php از nginx  می باشد .</p>
<p>بعد از اتمام تغییر فایل را بسته و نمظیمات را با کد زیر تست نمایید :</p>
<pre class="lang:default decode:true ">sudo nginx -t</pre>
<p>در صورتی که خطایی مشاهده نشد کد زیر را در برای بارگزاری دوباره nginx بزنید :</p>
<pre class="lang:default decode:true ">sudo systemctl reload nginx</pre>
<p>یا :</p>
<pre class="lang:default decode:true ">service  nginx restart
</pre>
<p>&nbsp;</p>
<p>تبریک نصب شما با موفقیت انجام شده و شما می توانید با ساختن فایل php.info و قرار دادن تابع phpinfo() مطابق کد زیر سرور خود را تست نمایید :</p>
<pre class="lang:default decode:true ">&lt;?php
phpinfo();</pre>
<p><img decoding="async" src="https://assets.digitalocean.com/articles/lemp_ubuntu_1604/php_info.png" /></p>
<p>با تشکر &#8211; پیروز جنابی</p>
<div class="xs_social_share_widget xs_share_url after_content 		main_content  wslu-style-1 wslu-share-box-shaped wslu-fill-colored wslu-none wslu-share-horizontal wslu-theme-font-no wslu-main_content">
<ul>
			        </ul>
</p></div>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>آموزش گیت (۲) – تنظیمات پایه GIT</title>
		<link>https://piero.ir/%d8%a2%d9%85%d9%88%d8%b2%d8%b4-%da%af%db%8c%d8%aa-2-%d8%aa%d9%86%d8%b8%db%8c%d9%85%d8%a7%d8%aa-%d9%be%d8%a7%db%8c%d9%87-git/</link>
					<comments>https://piero.ir/%d8%a2%d9%85%d9%88%d8%b2%d8%b4-%da%af%db%8c%d8%aa-2-%d8%aa%d9%86%d8%b8%db%8c%d9%85%d8%a7%d8%aa-%d9%be%d8%a7%db%8c%d9%87-git/#respond</comments>
		
		<dc:creator><![CDATA[پیروز جنابی]]></dc:creator>
		<pubDate>Sat, 21 Jan 2017 06:22:24 +0000</pubDate>
				<category><![CDATA[دسته‌بندی نشده]]></category>
		<category><![CDATA[git]]></category>
		<category><![CDATA[گیت]]></category>
		<guid isPermaLink="false">http://www.piero.ir/?p=701</guid>

					<description><![CDATA[ آموزش گیت (۲) – تنظیمات پایه GIT حال که Git روی سیستم نصب شده است، نیاز به شخصی‌سازی بعضی از منابع Git است. انجام این تنظیمات فقط برای یک مرتبه انجام می‌پذیرد؛ و بعد از آن با هر بار ارتقاء بدون تغییر باقی می‌مانند. همچنین امکان تغییر آن‌ها در هر زمانی که نیاز باشد به [&#8230;]]]></description>
										<content:encoded><![CDATA[<h2> آموزش گیت (۲) – تنظیمات پایه GIT</h2>
<p dir="rtl" style="text-align: justify;">حال که Git روی سیستم نصب شده است، نیاز به شخصی‌سازی بعضی از منابع Git است. انجام این تنظیمات فقط برای یک مرتبه انجام می‌پذیرد؛ و بعد از آن با هر بار ارتقاء بدون تغییر باقی می‌مانند. همچنین امکان تغییر آن‌ها در هر زمانی که نیاز باشد به کمک خط فرمان وجود دارد.تنظیمات پایه GIT</p>
<p dir="rtl" style="text-align: justify;">به همراه Git ابزاری ارائه شده است با نام git config که امکان خواندن و اعمال متغیرهای تنظیماتی که تمامی ابعاد ظاهری و عملیاتی Git را کنترل می‌کند فراهم می‌سازد.</p>
<ul dir="rtl" style="text-align: justify;">
<li>فایل <code>/etc/gitconfig</code>: حاوی مقادیر تمامی کاربران سیستم و مخازن آن‌ها است. اگر به همراه <code>git config</code> از گزینه <code>--system</code> استفاده شود، خواندن و نوشتن به صورت اختصاصی از این فایل انجام می‌پذیرد.</li>
<li>فایل <code>~/.gitconfig</code>: مختص کاربر مشخصی است. با استفاده از گزینه <code>--global</code> خواندن و نوشتن Git به صورت اختصاصی از این فایل انجام می‌پذیرد.</li>
<li>فایل config موجود در پوشه git (<code>.git/config</code>) یا هر مخزنی که در حال استفاده از آن می‌باشید: مختص یک مخزن خاص است. مقادیر هر سطح باعث لغو مقادیر سطح قبلی خود می‌شود. بنابراین مقادیر <code>.git/config</code> موجب لغو مقادیر <code>/etc/gitconfig</code> خواهد شد.</li>
</ul>
<p dir="rtl" style="text-align: justify;">در سیستم‌های ویندوزی، Git در پوشه <code>$HOME</code> (متغیر محیطی <code>%USERPROFILE%</code> در ویندوز) که برای اکثر کاربران با توجه به نسخه سیستم در مسیرهای <code>C:\Documents and Settings\$USER&#x200d; یا</code>C:\Users\$USER<code>(</code>$USER&#x200d; در ویندوز متغیر محیطی <code>%USERNAME%</code>) قرار دارد، فایل <code>.gitconfig</code> را جستجو می‌کند. همچنین نسبت به مسیر ریشه MSys که همان مسیر نصب انتخاب شده در هنگام اجرای نصاب Git در ویندوز می‌باشد، به دنبال فایلی با نام /etc/gitconfig می‌گردد.</p>
<h3 id="شناسه-کاربر">شناسه کاربر</h3>
<p>اولین عملی که بعد از نصب Git باید انجام شود، مقداردهی دو متغیر نام کاربری (user name) و آدرس پست الکترونیکی (e-mail address) است. این عمل از آن جهت اهمیت دارد که در هر commit این اطلاعات به‌صورتی تغییر ناپذیر روی commit انجام شده حک می‌شوند.تنظیمات پایه GIT</p>
<p>&nbsp;</p>
<pre dir="ltr"><code>$ git config --global user.name "John Doe"
$ git config --global user.email johndoe@example.com
</code></pre>
<p>مجدداً یادآوری می‌شود که انجام این عمل در صورت استفاده از گزینه <code>--global</code> فقط یک مرتبه انجام می‌پذیرد، زیرا Git برای هر عملی که در سیستم انجام می‌پذیرد از این اطلاعات استفاده می‌کند. حال اگر فرد نیاز به استفاده از نام و آدرس پست الکترونیکی متفاوتی برای پروژه‌های خاصی دارد، می‌تواند با اجرای همان دستورات البته بدون استفاده از گزینه <code>--global</code> هنگامی که در مسیر پروژه مذکور قرار دارد به مقصود خود دست یابد.</p>
<h3 id="ویرایشگر-کاربر">ویرایشگر کاربر</h3>
<p>حال که شناسه تنظیم شد، می‌توان ویرایشگر متن پیش فرضی را معرفی کرد تا هنگامی که نیاز به درج پیغامی در Git است فراخوانی شود. به صورت پیش فرض Git از ویرایشگر پیش فرض سیستم برای این امر استفاده می کند، که معمولاً Vi یا Vim است. اگر نظر شخص به استفاده از ویرایشگر متنی متفاوتی مانند Emacs باشد، می‌توان به صورت ذیل عمل کرد:تنظیمات پایه GIT</p>
<p>&nbsp;</p>
<pre dir="ltr"><code>$ git config --global core.editor emacs
</code></pre>
<h3 id="ابزار-Diff">ابزار Diff</h3>
<p>ابزار مفید دیگری که شاید نیاز به تنظیم داشته باشد، ابزار diff پیش فرضی است که برای رفع مغایرت ایجاد شده در هنگام اجرای دستور merge استفاده می‌گردد. به عنوان مثال اگر هدف استفاده از vimdiff باشد خواهیم داشت:تنظیمات پایه GIT</p>
<p>&nbsp;</p>
<pre dir="ltr"><code>$ git config --global merge.tool vimdiff
</code></pre>
<p>Git از ابزارهای kdiff3، tkdiff، meld، xxdiff، emerge، vimdiff، gvimdiff، ecmerge و opendiff جهت merge پشتیبانی می‌کند. با این وجود امکان تعریف ابزاری شخصی نیز وجود دارد؛ برای اطلاعات بیشتر جهت انجام این مورد می‌توانید به فصل ۷ مراجعه کنید.</p>
<h3 id="بررسی-تنظیمات">بررسی تنظیمات</h3>
<p>برای مشاهده و بررسی تنظیمات، می‌توان از دستور <code>git config --list</code> استفاده کرد که در نتیجه آن Git تمامی تنظیمات موجود تا آن لحظه را در قالب لیستی نمایش می‌دهد:</p>
<pre dir="ltr"><code>$ git config --list
user.name=Scott Chacon
user.email=schacon@gmail.com
color.status=auto
color.branch=auto
color.interactive=auto
color.diff=auto
...
</code></pre>
<p>احتمال دارد در این لیست کلیدهایی بیش از یک بار مشاهده شوند، دلیل این امر آن است که Git کلید مشابهی را از فایل‌های مختلفی (مانند <code>/etc/giconfig</code> و <code>~/.gitconfig</code>) خوانده است. در این‌گونه موارد، Git آخرین مقدار کلید منحصر به فردی که مشاهده می‌کند را جهت استفاده به‌کار می‌گیرد.</p>
<p>همچنین برای مشاهده مقدار مورد استفاده یک کلید خاص توسط Git، می‌توان از دستور <code>git config {key}</code> استفاده کرد:</p>
<pre dir="ltr"><code>$ git config user.name
Scott Chacon
</code></pre>
<h2></h2>
<h2>دریافت راهنما</h2>
<p>هرگاه در استفاده از Git نیازمند راهنمایی بودید، سه روش برای مشاهده صفحه راهنما هرگونه دستوری در Git وجود دارد:</p>
<pre dir="ltr"><code>$ git help &lt;verb&gt;
$ git &lt;verb&gt; --help
$ man git-&lt;verb&gt;
</code></pre>
<p>برای مثال، برای مشاهده صفحه راهنما دستور config داریم</p>
<pre dir="ltr"><code>$ git help config
</code></pre>
<p>این دستورات از آن جهت که می‌توان از هر مکانی، حتی در حالت آفلاین، به آن‌ها دسترسی پیدا کرد ابزاری کاربردی می‌باشند. اگر صفحات راهنما و این کتاب جوابگوی نیاز شما نبودند و نیاز به راهنمایی فردی پیدا کردید، میتوانید به کانالهای <code>#git</code> یا <code>#github</code> در سرور Freenode IRC (irc.freenode.net) مراجعه کنید. معمولاً این کانال‌ها مملؤ از افرادی با سطح دانش بالا در زمینه Git هستند که آماده راهنمایی رساندن به شما می‌باشند</p>
<div class="xs_social_share_widget xs_share_url after_content 		main_content  wslu-style-1 wslu-share-box-shaped wslu-fill-colored wslu-none wslu-share-horizontal wslu-theme-font-no wslu-main_content">
<ul>
			        </ul>
</p></div>
]]></content:encoded>
					
					<wfw:commentRss>https://piero.ir/%d8%a2%d9%85%d9%88%d8%b2%d8%b4-%da%af%db%8c%d8%aa-2-%d8%aa%d9%86%d8%b8%db%8c%d9%85%d8%a7%d8%aa-%d9%be%d8%a7%db%8c%d9%87-git/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>بهترین زبان برنامه نویسی ۲۰۱۶</title>
		<link>https://piero.ir/%d8%a8%d9%87%d8%aa%d8%b1%db%8c%d9%86-%d8%b2%d8%a8%d8%a7%d9%86-%d8%a8%d8%b1%d9%86%d8%a7%d9%85%d9%87-%d9%86%d9%88%db%8c%d8%b3%db%8c-%db%b2%db%b0%db%b1%db%b6/</link>
					<comments>https://piero.ir/%d8%a8%d9%87%d8%aa%d8%b1%db%8c%d9%86-%d8%b2%d8%a8%d8%a7%d9%86-%d8%a8%d8%b1%d9%86%d8%a7%d9%85%d9%87-%d9%86%d9%88%db%8c%d8%b3%db%8c-%db%b2%db%b0%db%b1%db%b6/#respond</comments>
		
		<dc:creator><![CDATA[پیروز جنابی]]></dc:creator>
		<pubDate>Sun, 25 Dec 2016 08:30:10 +0000</pubDate>
				<category><![CDATA[آموزش رایگان]]></category>
		<category><![CDATA[دسته‌بندی نشده]]></category>
		<category><![CDATA[سایر آموزشها]]></category>
		<category><![CDATA[آموزش برنامه نویسی]]></category>
		<category><![CDATA[آموزش فریم ورک پی اچ پی]]></category>
		<guid isPermaLink="false">http://www.piero.ir/?p=614</guid>

					<description><![CDATA[بهترین زبان برنامه نویسی۲۰۱۶ چیست؟ با سلام در این مقاله به بهترین زبان برنامه نویسی ۲۰۱۶ بر اساس چندین آمار معتبر و ذکر منابع می پردازیم. TIOBE Index,DEC  ۲۰۱۶ این مرجع می تواند به صورت لحظه ای آمار بهترین زبان برنامه نویسی را به شما بدهد که شما می توانید در لینک زیر مشاهده نمایید. [&#8230;]]]></description>
										<content:encoded><![CDATA[<h2>بهترین زبان برنامه نویسی۲۰۱۶ چیست؟</h2>
<p style="text-align: justify;">با سلام در این مقاله به بهترین زبان برنامه نویسی ۲۰۱۶ بر اساس چندین آمار معتبر و ذکر منابع می پردازیم.</p>
<h2>TIOBE Index,DEC  ۲۰۱۶</h2>
<p style="text-align: justify;">این مرجع می تواند به صورت لحظه ای آمار بهترین زبان برنامه نویسی را به شما بدهد که شما می توانید در لینک زیر مشاهده نمایید.</p>
<p style="text-align: center;"><strong><a href="http://www.tiobe.com/tiobe-index//" target="_blank" rel="noopener">مشاهده آمار هم اکنون بهترین زبان برنامه نویسی </a></strong></p>
<table class="table table-striped table-top20 aligncenter" style="height: 517px; width: 730px;">
<thead>
<tr>
<th style="width: 99px;">Dec 2016</th>
<th style="width: 99px;">Dec 2015</th>
<th style="width: 78.7333px;">Change</th>
<th style="width: 245.267px;">Programming Language</th>
<th style="width: 87px;">Ratings</th>
<th style="width: 79px;">Change</th>
</tr>
</thead>
<tbody>
<tr>
<td style="width: 99px;">۱</td>
<td style="width: 99px;">۱</td>
<td style="width: 78.7333px;"></td>
<td style="width: 245.267px;">Java</td>
<td style="width: 87px;">۱۷٫۸۵۶%</td>
<td style="width: 79px;">-۳٫۱۲%</td>
</tr>
<tr>
<td style="width: 99px;">۲</td>
<td style="width: 99px;">۲</td>
<td style="width: 78.7333px;"></td>
<td style="width: 245.267px;">C</td>
<td style="width: 87px;">۸٫۷۲۶%</td>
<td style="width: 79px;">-۷٫۷۳%</td>
</tr>
<tr>
<td style="width: 99px;">۳</td>
<td style="width: 99px;">۳</td>
<td style="width: 78.7333px;"></td>
<td style="width: 245.267px;">C++</td>
<td style="width: 87px;">۵٫۳۳۵%</td>
<td style="width: 79px;">-۰٫۶۱%</td>
</tr>
<tr>
<td style="width: 99px;">۴</td>
<td style="width: 99px;">۴</td>
<td style="width: 78.7333px;"></td>
<td style="width: 245.267px;">Python</td>
<td style="width: 87px;">۴٫۲۳۹%</td>
<td style="width: 79px;">-۰٫۱۹%</td>
</tr>
<tr>
<td style="width: 99px;">۵</td>
<td style="width: 99px;">۷</td>
<td style="width: 78.7333px;"><img decoding="async" src="http://www.tiobe.com/images/up.png" alt="change" /></td>
<td style="width: 245.267px;">Visual Basic .NET</td>
<td style="width: 87px;">۳٫۳۰۲%</td>
<td style="width: 79px;">+۰٫۹۱%</td>
</tr>
<tr>
<td style="width: 99px;">۶</td>
<td style="width: 99px;">۵</td>
<td style="width: 78.7333px;"><img decoding="async" src="http://www.tiobe.com/images/down.png" alt="change" /></td>
<td style="width: 245.267px;">C#</td>
<td style="width: 87px;">۳٫۱۷۱%</td>
<td style="width: 79px;">-۰٫۹۴%</td>
</tr>
<tr>
<td style="width: 99px;">۷</td>
<td style="width: 99px;">۶</td>
<td style="width: 78.7333px;"><img decoding="async" src="http://www.tiobe.com/images/down.png" alt="change" /></td>
<td style="width: 245.267px;">PHP</td>
<td style="width: 87px;">۲٫۹۱۹%</td>
<td style="width: 79px;">+۰٫۱۳%</td>
</tr>
<tr>
<td style="width: 99px;">۸</td>
<td style="width: 99px;">۸</td>
<td style="width: 78.7333px;"></td>
<td style="width: 245.267px;">JavaScript</td>
<td style="width: 87px;">۲٫۸۶۲%</td>
<td style="width: 79px;">+۰٫۵۰%</td>
</tr>
<tr>
<td style="width: 99px;">۹</td>
<td style="width: 99px;">۱۱</td>
<td style="width: 78.7333px;"><img decoding="async" src="http://www.tiobe.com/images/up.png" alt="change" /></td>
<td style="width: 245.267px;">Assembly language</td>
<td style="width: 87px;">۲٫۵۳۹%</td>
<td style="width: 79px;">+۰٫۶۱%</td>
</tr>
<tr>
<td style="width: 99px;">۱۰</td>
<td style="width: 99px;">۹</td>
<td style="width: 78.7333px;"><img decoding="async" src="http://www.tiobe.com/images/down.png" alt="change" /></td>
<td style="width: 245.267px;">Perl</td>
<td style="width: 87px;">۲٫۳۳۸%</td>
<td style="width: 79px;">+۰٫۱۳%</td>
</tr>
<tr>
<td style="width: 99px;">۱۱</td>
<td style="width: 99px;">۱۵</td>
<td style="width: 78.7333px;"><img decoding="async" src="http://www.tiobe.com/images/upup.png" alt="change" /></td>
<td style="width: 245.267px;">Objective-C</td>
<td style="width: 87px;">۲٫۳۲۵%</td>
<td style="width: 79px;">+۰٫۹۷%</td>
</tr>
<tr>
<td style="width: 99px;">۱۲</td>
<td style="width: 99px;">۱۰</td>
<td style="width: 78.7333px;"><img decoding="async" src="http://www.tiobe.com/images/down.png" alt="change" /></td>
<td style="width: 245.267px;">Ruby</td>
<td style="width: 87px;">۲٫۱۴۷%</td>
<td style="width: 79px;">+۰٫۰۹%</td>
</tr>
<tr>
<td style="width: 99px;">۱۳</td>
<td style="width: 99px;">۱۴</td>
<td style="width: 78.7333px;"><img decoding="async" src="http://www.tiobe.com/images/up.png" alt="change" /></td>
<td style="width: 245.267px;">Swift</td>
<td style="width: 87px;">۲٫۱۳۴%</td>
<td style="width: 79px;">+۰٫۷۳%</td>
</tr>
<tr>
<td style="width: 99px;">۱۴</td>
<td style="width: 99px;">۱۲</td>
<td style="width: 78.7333px;"><img decoding="async" src="http://www.tiobe.com/images/down.png" alt="change" /></td>
<td style="width: 245.267px;">Visual Basic</td>
<td style="width: 87px;">۱٫۹۶۷%</td>
<td style="width: 79px;">+۰٫۳۱%</td>
</tr>
<tr>
<td style="width: 99px;">۱۵</td>
<td style="width: 99px;">۱۳</td>
<td style="width: 78.7333px;"><img decoding="async" src="http://www.tiobe.com/images/down.png" alt="change" /></td>
<td style="width: 245.267px;">Delphi/Object Pascal</td>
<td style="width: 87px;">۱٫۹۵۰%</td>
<td style="width: 79px;">+۰٫۳۱%</td>
</tr>
<tr>
<td style="width: 99px;">۱۶</td>
<td style="width: 99px;">۵۰</td>
<td style="width: 78.7333px;"><img decoding="async" src="http://www.tiobe.com/images/upup.png" alt="change" /></td>
<td style="width: 245.267px;">Go</td>
<td style="width: 87px;">۱٫۹۳۹%</td>
<td style="width: 79px;">+۱٫۷۴%</td>
</tr>
<tr>
<td style="width: 99px;">۱۷</td>
<td style="width: 99px;">۱۸</td>
<td style="width: 78.7333px;"><img decoding="async" src="http://www.tiobe.com/images/up.png" alt="change" /></td>
<td style="width: 245.267px;">R</td>
<td style="width: 87px;">۱٫۸۲۶%</td>
<td style="width: 79px;">+۰٫۷۰%</td>
</tr>
<tr>
<td style="width: 99px;">۱۸</td>
<td style="width: 99px;">۱۶</td>
<td style="width: 78.7333px;"><img decoding="async" src="http://www.tiobe.com/images/down.png" alt="change" /></td>
<td style="width: 245.267px;">MATLAB</td>
<td style="width: 87px;">۱٫۸۱۸%</td>
<td style="width: 79px;">+۰٫۶۵%</td>
</tr>
<tr>
<td style="width: 99px;">۱۹</td>
<td style="width: 99px;">۲۴</td>
<td style="width: 78.7333px;"><img decoding="async" src="http://www.tiobe.com/images/upup.png" alt="change" /></td>
<td style="width: 245.267px;">Groovy</td>
<td style="width: 87px;">۱٫۷۸۶%</td>
<td style="width: 79px;">+۱٫۰۱%</td>
</tr>
<tr>
<td style="width: 99px;">۲۰</td>
<td style="width: 99px;">۱۹</td>
<td style="width: 78.7333px;"><img decoding="async" src="http://www.tiobe.com/images/down.png" alt="change" /></td>
<td style="width: 245.267px;">PL/SQL</td>
<td style="width: 87px;">۱٫۴۹۵%</td>
<td style="width: 79px;">+۰٫۳۹%</td>
</tr>
</tbody>
</table>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<h1>IEEE</h1>
<p>طبق استاندارد ieee بهترین زبان برنامه نویسی ۲۰۱۶ به ترتیب زیر می باشند.</p>
<p><img decoding="async" class="aligncenter zoooom" src="http://spectrum.ieee.org/image/Mjc5MjI0Ng.png" /></p>
<h2 style="text-align: center;"></h2>
<h1>codingdojo</h1>
<p>براساس وب سایت codingdojo ببهترین زبان برنامه نویسی ۲۰۱۶ طبق تصویر زیر است .</p>
<p><img decoding="async" class="aligncenter" src="http://www.codingdojo.com/blog/wp-content/uploads/Programming-Languages-for-2016_graph.jpg" /></p>
<h2 style="text-align: center;"><a href="http://www.codingdojo.com/blog/9-most-in-demand-programming-languages-of-2016/" target="_blank" rel="noopener">مشاهده بهترین زبان برنامه نویسی ۲۰۱۶ در وب سایت</a>codingdojo</h2>
<h1>بهترین زبان برنامه نویسی برای من چیست ؟</h1>
<p style="text-align: justify;">سوالی که شاید بارها از شما پرسیده شده است و یا شما از افراد مختلف پرسیده اید . جواب سوال شما بسته به کاری که می خواهید انجام دهید دارد و شما می توانید بسته به کاری که می خواهید انجام دهید به شما به همراه مثال نشان می دهد.</p>
<h3 style="text-align: center;"><a href="http://www.bestprogramminglanguagefor.me" target="_blank" rel="noopener">http://www.bestprogramminglanguagefor.me</a></h3>
<h1 style="text-align: right;">نتیجه بهترین زبان برنامه نویسی ۲۰۱۶</h1>
<p style="text-align: justify;">درست است که آمار های بالا طبق آمار برترین زبانها را به نشان می دهند ولی برترین زبان برنامه نویسی وجود ندارد و بستگی به کار مورد نظر و برنامه نویس دارد . من به شما پیشنهاد می کنم زبان برنامه نویسی را حرفه ای بیاموزید و سعی کنید فقط ذهن برنامه نویسی داشته باشید در واقع بدانید که در صورت مواجه شدن با مشکلی راهکار رسیدن به نتیجه چیست و اینکه با چه زبانی پیاده سازی نمایید فرقی ندارد چون ساختار برنامه نویسی بیشتر زبانهای برنامه نویسی شبیه هم هستند.</p>
<p style="text-align: justify;">در صورتی که می خواهید یک زبان برنامه نویسی را شروه کنید ابتدا به زبانهای مدل سازی و تحلیل مسلط شوید و هر کاری را ابتدا روی کاغذ پیاده سازی نمایید  و در ادامه یک زبان برنامه نویسی را به صورت حرفه ای یاد بگیرید در صورتی که می خواهید تحت وب کار کنید پیشنهاد ما php است ودر غیر این صورت پیشنهاد می شود جاوا را یاد بگیرید . یادگیری زبانهای زیر در همه جا کاربرد دارد پس پیشنهاد می شود بزودی آنها را یاد بگیرید.</p>
<h3></h3>
<h3>sql</h3>
<p style="text-align: justify;"><strong>اس کیو ال</strong> = یک زبان ارتباط با بانکهای اطلاعاتی می باشد و در تمامی برنامه ها از ان استفاده می شود .</p>
<pre class="lang:default decode:true ">SELECT * FROM Customers
WHERE Country='Germany'
AND City='Berlin';</pre>
<p>&nbsp;</p>
<h3>HTML</h3>
<p style="text-align: justify;"><strong>اچ تی ام ال</strong> = یک زبان نمایشی است در بیشتر برنامه ها استفاده می شود و در تمامی سیستم عامل ها حتی موبایل مورد استفاده قرار می گیرد طبعیتا در تمامی زبانهای برنامه نویسی مخصوصا برنامه های تحت وب که حتما از این زبان برای ساختار نمایشی از آن استفاده میکند همچنین جدیدا در html5 امکان ساخت بازی و برنامه های موبایل را نیز بوجود آورده است.</p>
<pre class="lang:default decode:true "> &lt;!DOCTYPE html&gt;
&lt;html&gt;
&lt;head&gt;
&lt;title&gt;Page Title&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;

&lt;h1&gt;This is a Heading&lt;/h1&gt;
&lt;p&gt;This is a paragraph.&lt;/p&gt;

&lt;/body&gt;
&lt;/html&gt;</pre>
<h3></h3>
<h3>JAVA SCRIPT</h3>
<p style="text-align: justify;">جاوا اسکریپت = این یک زبان برنامه نویسی برای اچ تی ام ال می باشد بسیار راحت و دارای فریم ورکهای زیادی از جمله jquery و anguarjs و &#8230; دارد .  در آینده استفاده نکردن از جاوا اسکریپت در برنامه ها غیر ممکن است .</p>
<pre class="lang:default decode:true ">document.getElementById("demo").innerHTML = "Hello JavaScript";</pre>
<p>&nbsp;</p>
<h3>CSS</h3>
<p style="text-align: justify;"><strong>سی اس اس</strong> = یک زبان ساختاری و آبشاری جهت تغییر ظاهری المنتهای اچ تی ام ال است و هنگامی که اچ تی امال استفاده شود غیر ممکن است از css استفاده نشود.</p>
<pre class="lang:default decode:true ">body {
    background-color: lightblue;
}

h1 {
    color: white;
    text-align: center;
}

p {
    font-family: verdana;
    font-size: 20px;
}</pre>
<p>&nbsp;</p>
<p>&nbsp;</p>
<h3>XML</h3>
<p style="text-align: justify;"><strong>اکس ام ال</strong> =  یک زبان ساختاری است که بیشتر برای ذخیره و ارتباط برنامه ها استفاده می شود .</p>
<pre class="lang:default decode:true "> &lt;?xml version="1.0" encoding="UTF-8"?&gt;
&lt;note&gt;
  &lt;to&gt;Tove&lt;/to&gt;
  &lt;from&gt;Jani&lt;/from&gt;
  &lt;heading&gt;Reminder&lt;/heading&gt;
  &lt;body&gt;Don't forget me this weekend!&lt;/body&gt;
&lt;/note&gt;</pre>
<p>&nbsp;</p>
<h2></h2>
<h2><strong>PHP</strong></h2>
<p style="text-align: justify;">پی اچ پی :یک زبان برنامه نویسی تحت سرور می باشد که با تمامی زبانهای بالا ارتباط برقرار می کند . این زبان رایگان است همچنین بازمتن در واقع برنامه در زمان اجرا کامپایل می شود . این زبان سرعت و قدرت بالایی دارد و به صورت خیلی پهناور استفاده می شود و دارای برنامه های آماده زیادی است که شما می توانید آنها را ارتقا بدهید و همچنین بدلیل استفاده wordpress و سیستمهای مدیریت های محتوای دیگر از php می توان گفت این زبان فرا گیر ترین زبان تحت وب دانست .</p>
<pre class="lang:default decode:true ">&lt;!DOCTYPE html&gt;
&lt;html&gt;
&lt;body&gt;

&lt;?php
echo "My first PHP script!";
?&gt;

&lt;/body&gt;
&lt;/html&gt;</pre>
<p>&nbsp;</p>
<p>امیدواریم توانسته باشیم با این مقاله کمکی به شما کرده باشیم</p>
<h1 style="text-align: center;"><span style="color: #3366ff;">جهت مشاهده جدید ترین اخبار به کانال هنر کدینگ تلگرام بپیوندید.</span></h1>
<h1 style="text-align: center;"><span style="color: #3366ff;"> <a href="https://telegram.me/itnew4u" target="_blank" rel="noopener">عضویت در کانال هنر کدینگ itnew4u@</a></span></h1>
<div class="xs_social_share_widget xs_share_url after_content 		main_content  wslu-style-1 wslu-share-box-shaped wslu-fill-colored wslu-none wslu-share-horizontal wslu-theme-font-no wslu-main_content">
<ul>
			        </ul>
</p></div>
]]></content:encoded>
					
					<wfw:commentRss>https://piero.ir/%d8%a8%d9%87%d8%aa%d8%b1%db%8c%d9%86-%d8%b2%d8%a8%d8%a7%d9%86-%d8%a8%d8%b1%d9%86%d8%a7%d9%85%d9%87-%d9%86%d9%88%db%8c%d8%b3%db%8c-%db%b2%db%b0%db%b1%db%b6/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>تایپ  فارسی درandroid studio</title>
		<link>https://piero.ir/%d8%aa%d8%a7%db%8c%d9%be-%d9%81%d8%a7%d8%b1%d8%b3%db%8c-%d8%af%d8%b1android-studio/</link>
					<comments>https://piero.ir/%d8%aa%d8%a7%db%8c%d9%be-%d9%81%d8%a7%d8%b1%d8%b3%db%8c-%d8%af%d8%b1android-studio/#respond</comments>
		
		<dc:creator><![CDATA[پیروز جنابی]]></dc:creator>
		<pubDate>Sat, 24 Dec 2016 08:53:42 +0000</pubDate>
				<category><![CDATA[دسته‌بندی نشده]]></category>
		<category><![CDATA[آموزش اندروید]]></category>
		<category><![CDATA[اندروید استدیو ، ادیت فارسی ، انتخاب متن فارسی]]></category>
		<category><![CDATA[برنامه نویسی اندروید]]></category>
		<category><![CDATA[تایپ فارسی در اندروید]]></category>
		<guid isPermaLink="false">http://www.piero.ir/?p=657</guid>

					<description><![CDATA[تایپ فارسی درandroid studio editor.new.rendering=true شاید برای شما نیز پیش آمده است که هنگام کار در محیط اندروید استدیو وقتی با متنی فارسی سر و کار داریم برای انتخاب قسمتی از آن متن  و تغییر در آن دچار مشکل میشویم. &#160; برای حل این مشکل ابتدا یک فایل متنی با عنوان idea.roperties.txt بسازید و در [&#8230;]]]></description>
										<content:encoded><![CDATA[<h2>تایپ فارسی درandroid studio</h2>
<h2>editor.new.rendering=true</h2>
<p>شاید برای شما نیز پیش آمده است که هنگام کار در محیط اندروید استدیو وقتی با متنی فارسی سر و کار داریم برای انتخاب قسمتی از آن متن  و تغییر در آن دچار مشکل میشویم.</p>
<p>&nbsp;</p>
<p>برای حل این مشکل ابتدا یک فایل متنی با عنوان idea.roperties.txt بسازید و در داخل آن عبارت  زیر  را در آن وارد نمایید.</p>
<pre class="lang:default decode:true">editor.new.rendering=true</pre>
<p>فایل تولید شده را زخیره و در مسیر زیر قرار دهید :</p>
<p dir="ltr">C:\Users\&#8230;.\.AndroidStudio2.2</p>
<p style="text-align: justify;">توجه داشته باشید در صورتی که از لینوکس یا مک استفاده می کنید این ویژگی در محل نصب اندروید که اندروید در ابتدا دانلود و نصب کردهاید باید قرار دهید . همچنین به این نکته توجه داشته باشید نسخه های مختلف اندروید استدیو ممکن است روی سیستمتها باشد .</p>
<p style="text-align: justify;">پس دقت نمایید که نسخه مورد نظر را یافته و تنظیم اعلام شده را درون آن قرار دهید.</p>
<p>امیدوارم مطلب فوق برای شما مفید بوده باشد (تایپ فارسی درandroid studio)</p>
<h4>سایر مطالب مفید برای اندروید استدیو بصورت رایگان:</h4>
<ul>
<li><a href="http://www.piero.ir/tabhost/" target="_blank" rel="noopener">آموزش تب در اندروید استدیو</a></li>
<li><a href="http://www.piero.ir/%d8%a7%d9%86%db%8c%d9%85%db%8c%d8%b4%d9%86-%d8%af%d8%b1-%d8%a7%d9%86%d8%af%d8%b1%d9%88%db%8c%d8%af/" target="_blank" rel="noopener">انیمیشن ها در اندروید استادیو</a></li>
<li><a href="http://www.piero.ir/%da%a9%d8%af-%d9%be%d8%b1%d8%b3%d8%b4-%d8%ae%d8%b1%d9%88%d8%ac-%d8%a8%d8%b1%d8%a7%db%8c-%d8%a7%d9%86%d8%af%d8%b1%d9%88%db%8c%d8%af/" target="_blank" rel="noopener">پرسیدن خروج اندروید</a></li>
</ul>
<p>&nbsp;</p>
<p style="text-align: justify;">اندروید استودیو نام محیط یکپارچه‌ی توسعه (IDE) اختصاصی گوگل است که از آن برای ساخت برنامه‌های اندروید استفاده می‌شود. گوگل آخرین نسخه از اندروید استودیو با نام  Android Studio 2.3 را در ماه مارس (۲ ماه پیش) سال جاری میلادی عرضه کرده بود. با توجه به جهش شماره‌ی نسخه‌ی جدید به ۳، می‌توان انتظار تغییرات بنیادین در ابزار برنامه‌نویسی گوگل داشت. (شماره‌ی نسخه‌های بتای بیلد جدید اندروید استودیو در ابتدا ۲.۴ بود؛ اما گوگل با توجه به گستردگی تغییرات، تصمیم به افزایش شماره‌ی نسخه گرفت.)</p>
<p>از جمله امکانات جدید در نسخه های جدید اندروید استادیو می توان به زبان جدید کاتلین ساخت jetbrains سازنده مشهور روسی phpstorm و inteliJ  اشاره نمود که انشاله به یاری متخصصان پیرو در آینده به صورت تخصصی در وب سایت <a href="http://ww.piero.ir">پیرو</a> آموزش داده می شود .</p>
<div class="xs_social_share_widget xs_share_url after_content 		main_content  wslu-style-1 wslu-share-box-shaped wslu-fill-colored wslu-none wslu-share-horizontal wslu-theme-font-no wslu-main_content">
<ul>
			        </ul>
</p></div>
]]></content:encoded>
					
					<wfw:commentRss>https://piero.ir/%d8%aa%d8%a7%db%8c%d9%be-%d9%81%d8%a7%d8%b1%d8%b3%db%8c-%d8%af%d8%b1android-studio/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>مدل ها(Models) در کد ایگنایتر</title>
		<link>https://piero.ir/codeegniter-model/</link>
					<comments>https://piero.ir/codeegniter-model/#respond</comments>
		
		<dc:creator><![CDATA[پیروز جنابی]]></dc:creator>
		<pubDate>Mon, 17 Oct 2016 19:29:34 +0000</pubDate>
				<category><![CDATA[دسته‌بندی نشده]]></category>
		<category><![CDATA[codeegniter]]></category>
		<category><![CDATA[آموزش php]]></category>
		<category><![CDATA[آموزش برنامه نویسی]]></category>
		<category><![CDATA[آموزش فریم ورک پی اچ پی]]></category>
		<category><![CDATA[آموزش کد ایگنایتر]]></category>
		<guid isPermaLink="false">http://www.piero.ir/?p=437</guid>

					<description><![CDATA[مدل ها(Models) در کد ایگنایتر مدل ها(Models) در کد ایگنایتر به منظور ارتباط با بانک اطلاعاتی به کار می رود ، شما تصور کنید وب سایتی فروشگاهی داریدکه نیازدارید محصولات را از بانک اطلاعاتی بگیرد و نشان دهد ، این کدها در قسمت مدل نوشته می شود. به مثال زیر توجه کنید: class Shop_model extends [&#8230;]]]></description>
										<content:encoded><![CDATA[<h1>مدل ها(Models) در کد ایگنایتر</h1>
<p>مدل ها(Models) در کد ایگنایتر به منظور ارتباط با بانک اطلاعاتی به کار می رود ، شما تصور کنید وب سایتی فروشگاهی داریدکه نیازدارید محصولات را از بانک اطلاعاتی بگیرد و نشان دهد ، این کدها در قسمت مدل نوشته می شود.</p>
<p>به مثال زیر توجه کنید:</p>
<pre class="lang:default decode:true">class Shop_model extends CI_Model {


        public $title;

        public $content;

        public $date;


        public function __construct()

        {

                // Call the CI_Model constructor

                parent::__construct();

        }

        public function get_last_ten_entries()

        {

                $query = $this-&gt;db-&gt;get('entries', 10);

                return $query-&gt;result();

        }


        public function insert_entry()

        {

                $this-&gt;title    = $_POST['title']; // please read the below note

                $this-&gt;content  = $_POST['content'];

                $this-&gt;date     = time();

                $this-&gt;db-&gt;insert('entries', $this);

        }

        public function update_entry()

        {

                $this-&gt;title    = $_POST['title'];

                $this-&gt;content  = $_POST['content'];

                $this-&gt;date     = time();

                $this-&gt;db-&gt;update('entries', $this, array('id' =&gt; $_POST['id']));

        }

}</pre>
<p>توجه : این مثال با استفاده از query builder  ساخته شده است.</p>
<p>شرح مثال مدل ها(Models) در کد ایگنایتر :</p>
<p>ابتدا کلاس مدل را همانند کنترلر را می سازیم با این تفاوت که وارث CI_MODEL می باشد و باید در سازنده آن سازنده والد آن را صدا می زنیم.</p>
<pre class="lang:default decode:true">   public function __construct()

        {

                // Call the CI_Model constructor

                parent::__construct();

        }


</pre>
<p>و در گام بعد توابع مورد نیاز جهت اعمال مورد نظر را می سازیم.</p>
<p>همچنین توجه داشته باشید فایل شما باید در جای خود ساخته شود به طور مثال فایل بالا در آدرس ریر ساخته می شود.</p>
<p dir="ltr">application/models/Shop_model.php</p>
<h2>صدا زدن مدل</h2>
<p>جهت صدا زدن مدل ابتدا شما باید کلاس آن را صدا بزنید :</p>
<pre class="lang:default decode:true ">$this-&gt;load-&gt;model('model_name');</pre>
<p>&nbsp;</p>
<p>و در گام بعدی با استفاده از اسم کلاس مدل تابع مربوطه را صدا بزنید:</p>
<pre class="lang:default decode:true">$this-&gt;model_name-&gt;method();</pre>
<p>توجه نمایید می توانید در کنترلر خود چندین مدل را صدا بزنید.</p>
<p>در صورتی که شما بخواهید مدلی را صدا بزنید و نامی منحصز به آن بدهید و در صدا زدن از آن نام استفاده کنید روند زیر را انجام می دهید:</p>
<pre class="lang:default decode:true">$this-&gt;load-&gt;model('model_name', 'foobar');


$this-&gt;foobar-&gt;method();</pre>
<p>و در کل می توانید با توجه به مثال زیر کنترلر ها و مدلها را ترکیب و به ویو جهت نمایش ارسال کنید.</p>
<pre class="lang:default decode:true ">class Blog_controller extends CI_Controller {

        public function blog()

        {

                $this-&gt;load-&gt;model('blog');


                $data['query'] = $this-&gt;blog-&gt;get_last_ten_entries();

                $this-&gt;load-&gt;view('blog', $data);

        }

}</pre>
<h2>مدلهای خود بارگزار در مدل ها(Models) در کد ایگنایتر</h2>
<p>شما می توانید مدلی را به دلخواه انتخاب نمایید تا در تمامی فایله بارگزاری شود برای این منظور در فایل <strong>application/config/autoload.php</strong><strong> آرایه </strong><strong>model_autoload() </strong><strong>را مقدار دهی می کنیم.</strong></p>
<div class="xs_social_share_widget xs_share_url after_content 		main_content  wslu-style-1 wslu-share-box-shaped wslu-fill-colored wslu-none wslu-share-horizontal wslu-theme-font-no wslu-main_content">
<ul>
			        </ul>
</p></div>
]]></content:encoded>
					
					<wfw:commentRss>https://piero.ir/codeegniter-model/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
