انواع داده در پایتون

در دنیای برنامه نویسی انواع داده از مسائل پایه ای و بسیار مهم است و تقریبا تمام زبان‌های برنامه نویسی به نوعی از data type استفاده می‌کنند. متغیرها می‌توانند انواع مختلفی از داده را ذخیره کنند و این انواع مختلف می‌توانند کارهای مختلفی انجام دهند. زبان پایتون نیز از دیگر زبان‌های برنامه نویسی جدا نیست و به صورت پیش فرض از نوع داده‌های زیر پشتیبانی می‌کند:

انواع متنی: تنها یک نوع str (یعنی رشته)
انواع عددی: int (عدد صحیح) و float (عدد اعشاری) و complex (بعدا در مورد آن صحبت می‌کنیم)
انواع توالی: list و tuple و range
انواع mapping: تنها یک نوع dict
انواع دسته: set و frozenset
انواع Boolean: تنها مقدار bool
انواع باینری (دودویی): bytes و bytearray و memoryview

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

برای پیدا کردن نوع داده‌ی یک متغیر می‌توانیم از تابع ()type استفاده کنیم:

x = 5
print(type(x))

مقدار خروجی بدین شکل خواهد بود:

class 'int'

در زبان پایتون هنگامی که به متغیری مقدار بدهید، data type آن به صورت خودکار تنظیم می شود. به طور مثال:

x = "Hello World"

#display x:
print(x)

#display the data type of x:
print(type(x))

خروجی این کد عبارت <'class 'str> خواهد بود.

مثال دیگر:

x = 20

#display x:
print(x)

#display the data type of x:
print(type(x))

خروجی این کد نیز <'class 'int> خواهد بود.

ما می‌توانیم این کار را با تمامی انواع داده انجام دهیم:

x = 20.5
x = 1j
x = ["apple", "banana", "cherry"]
x = ("apple", "banana", "cherry")
x = range(6)
x = {"name" : "John", "age" : 36}
x = {"apple", "banana", "cherry"}
x = frozenset({"apple", "banana", "cherry"})
x = True
x = b"Hello"
x = bytearray(5)
x = memoryview(bytes(5))

با این حال اگر نیاز به تعیین نوع داده به صورت دستی داشته باشید، زبان پایتون توابعی با نام data type‌ها را برای شما آماده کرده است. به طور مثال:

x = str("Hello World")
x = int(20)
x = float(20.5)
x = complex(1j)
x = list(("apple", "banana", "cherry"))
x = tuple(("apple", "banana", "cherry"))
x = range(6)
x = dict(name="John", age=36)
x = set(("apple", "banana", "cherry"))
x = frozenset(("apple", "banana", "cherry"))
x = bool(5)
x = bytes(5)
x = bytearray(5)
x = memoryview(bytes(5))

اگر روی هر کدام از مثال‌های بالا از تابع ((print(type(x استفاده کنیم حتما نتیجه همان نوع داده‌ای خواهد بود برایش تعیین کرده ایم.

اعداد در پایتون

در زبان پایتون سه نوع عدد وجود داریم:

int
float
complex

با int شروع می‌کنیم؛ int مخفف integer و به معنای عدد صحیح است، یعنی عدد مثبت یا منفی و بدون اعشار تا بی‌نهایت. چند مثال را در کد زیر می‌بینید:

x = 1
y = 35656222554887711
z = -3255522
print(type(x))
print(type(y))
print(type(z))

خروجی این کد به صورت زیر خواهد بود:

class 'int'
class 'int'
class 'int'

نوع دوم اعداد float است که با نام floating point number هم شناخته می‌شوند و در فارسی معادل اعداد اعشاری هستند؛ بنابراین اعداد منفی یا مثبت با اعشار و تا بی‌نهایت. چند مثال را در کد زیر مشاهده می‌کنید:

x = 1.10
y = 1.0
z = -35.59
print(type(x))
print(type(y))
print(type(z))

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

class 'float'
class 'float'
class 'float'

نکته: اعداد float می‌توانند نماد e را نیز قبول کنند (به معنای «به توان ۱۰»):

x = 35e3
y = 12E4
z = -87.7e100
print(type(x))
print(type(y))
print(type(z))

خروجی این کد ها به شکل زیر است:

class 'float'
class 'float'
class 'float'

نوع سوم اعداد complex می‌باشد. complex در لغت به معنی «پیچیده» یا «چند وجهی» است. به این نوع اعداد در ریاضیات «عدد مختلط» یا «عدد هم‌تافت» گفته می‌شود. چنانچه با این مبحث آشنایی ندارید می توانید به صفحه ی ویکی پدیای آن مراجعه کنید اما به زبان ساده:

“عدد مختلط یا عدد هم‌تافت عددی به شکل a + bi است که a و b اعداد حقیقی‌اند و i یکهٔ موهومی با خصوصیت i2 = -1 است. عدد a قسمت حقیقی و عدد b قسمت موهومی نامیده و نوشته می‌شود. اعداد حقیقی را می‌توان به عنوان اعداد مختلط با قسمت موهومی صفر در نظر گرفت، یعنی عدد حقیقی a معادل است با عدد مختلط a+0i.” منبع: ویکی پدیا

در زبان پایتون حرف j به عنوان قسمت فرضی عدد در نظر گرفته می‌شود. چند مثال را مشاهده کنید:

x = 3+5j
y = 5j
z = -5j
print(type(x))
print(type(y))
print(type(z))

خروجی:

class 'complex'
class 'complex'
class 'complex'

تبدیل نوع (type conversion)

شما می‌توانید اعداد را با استفاده از توابع ()int و ()float و ()complex به نوع داده‌ی مورد نظر خود تبدیل کنید:

#convert integer to float
x = float(1)
#convert float to integer
y = int(2.8)
#convert integer to complex
z = complex(x)
print(x)
print(y)
print(z)

خروجی:

۱.۰
۲
(۱+0j)
تولید عدد تصادفی

زبان پایتون تابعی به نام ()random برای تولید اعداد تصادفی ندارد اما module ای به نام random دارد که می‌ از آن برای تولید اعداد تصادفی استفاده کنیم. ابتدا باید این module را import کرده و سپس از آن استفاده کنیم. در کد زیر می‌خواهیم یک عدد تصادفی بین ۱ و ۹ تولید کنیم:

import random
print(random.randrange(1,10))

خروجی این عدد در هر بار یک مقدار تصادفی بین ۱ و ۹ خواهد بود. در جلسات پایانی این دوره در مورد این module توضیحات بیشتری خواهیم داد.

منبع: https://bit.ly/2YRj3kl

اشتباهات رایج در توسعه وب

روی سخن نویسنده این مقاله با برنامه نویسان full stack است که در فرآیند توسعه نزم افزارهای وب با هر دو فرآیند back-end و front-end روبرو هستند. اکثر این برنامه نویسان برای چگونگی مدیریت برنامه نویسی هم زمان back-end و front-end هیچ برنامه مشخصی ندارند که در نهایت وقت زیادی را برای انجام کارهای تکراری ناخواسته تلف می‌کنند.
صحبت در مورد شناخت و توانایی انجام هر دو طرف فناوری نیست، بلکه مربوط به نحوه مدیریت کارهای توسعه پروژه توسط شماست. در مورد داشتن یک رویکرد متعادل و منظم برای هماهنگی کارهای back-end و front-end و رهایی از امور اضافی و استرس زا.

اول طراحی کنید

“اگر به من شش ساعت فرصت دهید تا یک درخت را خرد کنم، چهار ساعت اول را برای تیز کردن تبر صرف خواهم کرد.” آبراهام لینکولن
مهم نیست که برنامه شما چقدر ساده یا پیچیده باشد، یک صفحه یا چند صفحه، همیشه اول برای UI و تعامل سطح بالای برنامه خود یک طرح آماده کنید. اگر قبل از شروع پروژه، طرح را تهیه نکنید، خود را مرتبا درگیر رنگ و پیکسل هر یک از مؤلفه‌های UI می‌کنید تا به یک احساس رضایت برسید و واقعیت این است که شما هرگز از رابط کاربری خود راضی نخواهید شد! این کار سرعت برنامه نویسی شما را به شدت کاهش می‌دهد و همچنین ذهن شما را دچار استرس می‌کند.
برای طراحی UI و درک تعامل بین مؤلفه‌های مختلف آن می‌توانید از ابزارهایی مانند Adobe XD یا Sketch استفاده کنید.

بپرسید بپرسید بپرسید!

می‌خواهید برای مشتریان خود پروژه بنویسید؟ با آنها جلسه کاملی داشته باشید، در مورد علایق، برنامه‌ها، الگوی‌های طراحی مختلفی که باید انجام شود. درباره لوگو، رنگها و … بحث کنید. سعی کنید نیازهای کاربر نهایی را کاملا درک کنید تا در ذهنتان شخصیتی از کاربرتان طراحی کنید.
تا زمان تصویب طراح اولیه توسط مشتری، برنامه نویسی front-end را شروع نکنید.
پروژه را بر این اساس برنامه ریزی کرده و به آن بچسبید و در نقاط عطف، ارتباط مستقیمی با مشتری خود داشته باشید.

رویکرد افزایشی داشته باشید

فرض کنید می‌خواهید یک برنامه مدیریت کتابخانه بر روی وب بسازید، برنامه اصلی را به تعدادی زیر برنامه تقسیم کنید. ابتدا آن زیر برنامه‌ها را پیاده سازی کنید، UI آنها را بسازید و قبل از انتقال به برنامه اصلی، آن را کاملاً تست کنید.
بیایید فرض کنیم ثبت نام و ورود کاربر، یکی از زیر برنامه‌ها است. ابتدا با استفاده از تمام اجزای لازم HTML مانند فرم‌ها یا برچسب‌های ورودی، که برای ورودی کاربران لازم است، بدون هیچگونه Style CSS فرم خود را ایجاد کنید. اکنون عملکردهای برنامه‌های میانی و توابع back-end را پیاده سازی کنید و این برنامه را برای ورودی‌ها و پاسخ‎های مربوطه آزمایش کنید. در آخر، کامپوننت‌های UI خود را کاملاً با استفاده از مثلا CSS طراحی کنید. حال این کار را برای هر زیر برنامه به صورت پایین به بالا تکرار کنید (در ادغام این کارها با پروژه اصلی بسیار دقت کنید) تا زمانی که یک برنامه کامل بسازید.

از ابزارها استفاده کنید

اگر به عنوان مثال در حال ساختن API هستید، از ابزار تست پروژه مانند Postman برای بررسی request/response HTTP‌ها استفاده کنید تا بتوانید به جای سایر کارها، اول بر صحت API خود تمرکز کنید.
اگر اول بخش front-end را توسعه می‌دهید، می‌توانید برای استفاده از داده‌های ساختگی به جای داده‌های واقعی، از داده‌های متنی ساختگی مانند “lorem ipsum” استفاده کنید، که بعدا هنگام شروع کار با back-end این داده‌ها را با بانک اطلاعاتی واقعی خود تعویض کنید.

ترجمه بر اساس:

“Common mistakes in web development” by Neel Vikmani @ Codeburst

منبع: https://bit.ly/2NP90rY

۱۰ ابزار و کتابخانه مطرح مرتبط با فریم‌ورک Vue.js

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

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

رابط خط فرمان (CLI)

به نظر می‌رسد این روزها داشتن نوعی ابزار رابط خط فرمان (CLI) برای فریم‌ورک‌های اپلیکیشن جاوااسکریپت ضروری است. Vue نیز از این قائده مستثنا نیست. (/Vue CLI (https://cli.vuejs.org یک مجموعه ابزار کامل برای توسعه سریع Vue است. علاوه بر فریم‌ورک معمول ساخت یک پروژه، این ابزار اجازه می‌دهد تا ایده‌های تازه خود را با استفاده از قابلیت نمونه‌سازی فوری حتا بدون ساخت یک پروژه کامل به اجرا بگذارید. به‌طور پیش‌فرض، Vue CLI پشتیبانی از ابزارهای توسعه وب و فناوری‌هایی نظیر Babel، TypeScript، ESLint، PostCSS، PWA، Jest، Mocha، Cypress و Nightwatch را امکان‌پذیر می‌کند. چنین امکاناتی به پشتوانه سیستم پلاگین گسترش‌پذیر این ابزار میسر شده است. توسعه‌‌دهندگان می‌توانند پلاگین‌های قابل استفاده مجدد را ایجاد کرده و با سایرین به‌اشتراک بگذارند. یکی دیگر از ویژگی‌های برجسته این ابزار رابط کاربری گرافیکی (GUI) قدرتمند آن است که اجازه می‌دهد پروژه خود را به راحتی ایجاد کرده و بدون نیاز به کار اضافه آن‌را پیکربندی و مدیریت کنید.

ویوپرس (VuePress)

بازیگر مطرح بعدی در اکوسیستم Vue ابزار ایجاد سایت ایستا (https://v1.vuepress.vuejs.org) یا همان VuePress است که در ابتدا به‌عنوان یک ابزار برای نوشتن مستندات فنی ساخته شد. اکنون ابزار فوق به یک سامانه مدیریت محتوا (CMS) کوچک و قدرتمند تبدیل شده است. از نسخه ۱.x امکاناتی برای ساخت وبلاگ و یک سیستم پلاگین قدرتمند به آن اضافه شده است. این CMS یک قالب پیش‌فرض (متناسب با مستندات فنی) دارد، اما می‌توانید قالب‌های سفارشی خود را ایجاد کنید یا گزینه‌های ساخته شده توسط دیگران را استفاده کنید. در VuePress محتوا را در قالب Markdown می‌نویسید که بعدا به فایل‌های ایستا HTML تغییر شکل می‌دهد. بعد از این‌که فایل‌ها بارگیری شدند، سایت به عنوان یک برنامه تک صفحه‌ای نیرو گرفته از Vue، Vue Router و Webpack اجرا می‌شود. یکی از مزایای اصلی VuePress این است که می‌توانید کدهای Vue را به فایل‌های Markdown ضمیمه تا سایت را شبیه به یک برنامه عادیVue طراحی کرده و از تمام مزایای موجود استفاده کنید.

گریدسام (Gridsome)

گریدسام (https://gridsome.org) شباهت زیادی به VuePress دارد، اما در زمان کار با منابع داده‌ای عملکرد بهتری دارد. این ابزار اجازه می‌دهد انواع مختلفی از داده‌ها را به یک برنامه متصل کرده و از آن‌ها به عنوان یک لایهGraphQL واحد استفاده کنید. در حالت کلی Gridsome از Vue در ارتباط با فرانت‌اند و از GraphQL برای مدیریت داده استفاده می‌کند. عملکرد این ابزار را می‌توان در سه مرحله خلاصه کرد:

محتوا را با فرمت داده Markdown، JSON، YAML یا CVS فراهم می‌کنید یا آن‌را از یک سامانه مدیریت محتوا مثل وردپرس یا دروپال وارد می‌کنید.
این محتوا به لایه GraphQL تبدیل می‌شود که امکان مدیریت متمرکز داده را فراهم می‌کند. سپس از این داده‌ها برای ساخت اپلیکیشن خود با Vue استفاده می‌کنید.
فایل‌های HTML از پیش رندر شده را به میزبان وب ایستا یا شبکه‌های تحویل محتوا شبیه به Netlify، Amazon S3، Now.sh، Surge.sh و غیره منتقل می‌کنید.
قابلیت‌ها و امکانات جالب توجه دیگری همچون تقسیم کد، بهینه‌سازی اجزای تشکیل‌دهنده و پیش‌نمایش لینک توسط Gridsome ارائه شده که به خوبی استانداردهای بهینه‌سازی موتورهای جستجو (SEO) را رعایت می‌کند.

ویواکس (Vuex)

مدیریت وضعیت یک یا چند کنترل رابط کاربری یکی از عمده‌ترین مشکلاتی است که توسعه‌دهندگان در ساخت اپلیکیشن‌های وب با آن مواجه هستند. برای برطرف کردن این مشکل Vue یک سیستم مدیریت وضعیت به‌نام (/Vuex (https://vuex.vuejs.org دارد که به عنوان یک محل ذخیره‌سازی برای تمام اجزای یک برنامه استفاده می‌شود. یک store نوعی شی ویژه است که به چهار بخش تقسیم می‌شود:

شی State – یک شی که داده‌های اپلیکیشن را ذخیره می‌کند.
شی Getters – یک شی شامل متدهای استفاده شده برای دسترسی به state
شی Mutations – یک شی شامل متدهایی که مستقیما روی state تاثیر می‌گذارند
شی Actions – یک شی شامل متدهای استفاده شده برای فعال کردن تغییرات و اجرای کد غیر همزمان
برای استفاده ساده‌تر از این store می‌توان آن‌را به چند ماژول تقسیم‌بندی و با توجه به نیاز پروژه یکی از آن‌ها را انتخاب کرد.

برای استفاده ساده‌تر از این store می‌توان آن‌را به چند ماژول تقسیم‌بندی و با توجه به نیاز پروژه یکی از آن‌ها را انتخاب کرد.

ناکس Nuxt

وقتی درباره استفاده از رندرینگ سمت سرور (SSR) صحبت می‌کنیم، (/Nuxt (https://nuxtjs.org یک ابزار مفید و کاربردی است. یک فریم‌ورک ساده و سر راست که برای ساخت برنامه‌های عمومی‌ استفاده می‌شود. Nuxt ماژولار هست، بنابراین می‌توانید تنها ماژول‌هایی که برای برنامه خود نیاز دارید را استفاده کنید. با Nuxt می‌توانید برنامه‌های سمت سرور، برنامه‌های تک صفحه‌ای (SPA) و برنامه‌های وب پیش‌رونده (PWA) را تولید کنید یا تنها از Nuxt برای ساخت یک سایت ایستا استفاده کنید. به‌طور خلاصه، Nuxt شما را از کار خسته کننده در ساخت و بهینه‌سازی برنامه‌ها نجات می‌دهد و یک تجربه توسعه ساده و لذت‌بخش ارائه می‌کند.

ویوتیفای (Vuetify)

ویوتیفای (https://vuetifyjs.com/en) یکی از بهترین کتابخانه‌های رابط کاربری است که مجموعه بزرگی از مولفه‌های از پیش ساخته شده (بیشتر از ۸۰ عدد) مبتنی بر طراحی Material Design را ارائه می‌کند و می‌تواند تقریبا نیاز هر نوع اپلیکیشنی را برآورده کند. شما می‌توانید از این کتابخانه برای ساخت اپلیکیشن‌های سمت سرور، اپلیکیشن‌های تک صفحه‌ای (SPA)، اپلیکیشن وب‌پیش‌رونده (PWA) و اپلیکیشن‌های موبایل استفاده کنید. قالب‌های همراه این کتابخانه به صورت رایگان و حرفه‌ای و غیر رایگان ارائه می‌شوند، هر چند می‌توانید قالب‌های اختصاصی خود را ایجاد کنید.
Vuetify همچنین از یک سیستم انتخاب و استفاده از مولفه‌های خاص برخوردار است که حجم نهایی یک برنامه را به میزان قابل ملاحظه‌ای کاهش می‌دهد.

کواسار (Quasar)

کواسار(https://quasar.dev) نسخه‌ای از جاوا اسکریپت با فلسفه یکبار بنویس، همه جا اجرا کن است. یک فریم‌ورک عمومی‌ و نیرو گرفته از Vue که اجازه می‌دهد اپلیکیشن‌های خود را برای پلتفرم‌های مختلف با یک کد مبنا ایجاد کنید. این فریم‌ورک امکان ساخت اپلیکیشن‌های سمت سرور، اپلیکیشن‌های تک صفحه‌ای (SPA)، اپلیکیشن وب پیش‌رونده (PWA) و اپلیکیشن‌های موبایل و حتا اپلیکیشن‌های چند پلتفرمی‌ دسکتاپ را نیز فراهم می‌کند.
مستندات و راهنمای کار با Quasar جامع و کامل است و مجموعه عظیمی‌ از مولفه‌های مفید و کاربردی همراه این فریم‌ورک عرضه می‌شود. همچنین یک ابزار CLI برای کمک به ساخت بی دردسر پروژه‌های جدید همراه این فریم‌ورک است.

استوری بوک (StoryBook)

استوری بوک (https://storybook.js.org) به شما اجازه می‌دهد تا مولفه‌های رابط کاربری را در یک محیط ساده و راحت توسعه داده، مدیریت کرده یا آزمایش کنید.
Storybook توسعه‌دهندگان را قادر می‌سازد تا مولفه‌های مختلف را مستقل از اپلیکیشن اصلی ایجاد کرده و بدون نگرانی در مورد وابستگی‌ها و الزامات خاص یک اپلیکیشن آن‌ها را به صورت تعاملی در یک محیط توسعه مجزا به نمایش بگذارند. Storybook تعداد زیادی افزونه به علاوه یک API انعطاف‌پذیر برای سفارشی‌سازی محیط ارائه می‌کند. شما می‌توانید از پروژه خود به صورت یک اپلیکیشن وب ایستا خروجی گرفته و آن‌را روی هر نوع سرور HTTP مستقر کنید.

ویو آپولو (Vue Apollo)

اخیرا سرو صدای زیادی پیرامون GraphQL به راه افتاده است. این فناوری از یک زبان Schema برای سرور و یک Query Language برای کلاینت تشکیل شده و تعامل بین فرانت‌اند و بک‌اند را ساده می‌کند. بنابراین اگر از قبل با آن آشنا هستید و می‌خواهید آن‌را با Vue یکپارچه کنید، بهتر است نگاهی به Vue Apollo https://vue-apollo.netlify.com بیاندازید. این کتابخانه استفاده همزمان از Vue و GraphQL/Apollo را سریع و آسان می‌کند.

ایگل جی اس (Eagle.js)

ایگل جی اس (https://github.com/zulko/eagle.js) یک ابزار قدرتمند، انعطاف‌پذیر و منحصر به فرد است که توسط Vue ساخته شده است. این ابزار اجازه می‌دهد مولفه‌های رابط کاربری، اسلایدها و عناصر مورد نیاز برای ارائه پروژه‌های خود را آماده‌ کرده و به دفعات از آن استفاده کنید. Eagle همچنین از انیمیشن‌ها، قالب‌‌ها و ابزارک‌های تعاملی پشتیبانی می‌کند که برای ساخت نسخه‌های نمایشی وب عالی هستند. این سیستم یک API ساده و قابل ویرایش دارد که آزادی عمل کامل برای ساخت اسلایدشوها را ارائه می‌کند.
یکی از بزرگ‌ترین کارهایی که با این کتابخانه می‌توانید انجام دهید قرار دادن یک اسلاید در یک فایل جداگانه و استفاده مجدد از آن در سایر اسلایدشوها است.

منبع: https://bit.ly/2PNa9Sb

Create A product first!

Create a product first please!