۱۱ کانال برتر یوتیوب برای آموزش برنامه نویسی

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

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

۱- کانال Codecourse
قطعاً یکی از بهترین کانال ها برای شروع یادگیری زبانهای برنامه نویسی این کانال است و مطمئناً آموزش های برنامه نویسی آن در زبان PHP جزو بهترین هاست. همچنین آموزش های این ویدئو بروی اصول استاندارد نویسی بسیار تمرکز دارد و بهتر است که یاد بگیرید چگونه استاندارد تر کد بزنید.
حتماً به این کانال سر بزنید و تجربه خودتون رو با من در اشتراک بزارید.

۲- کانال JREAM
این کانال زبانهای برنامه نویسی زیادی را همانند Codecourse پوشش نمیدهد ولی یک بخش آموزشی ویژه ۵۴ قسمتی مخصوص PHP-Object-Oriented ( برنامه نویسی شی گرا ) که پیشنهاد میکنم از دستش ندید.

۳- کانال RebellionRider
این کانال دارای بیش از ۱۰۰ فیلم ضروری برنامه نویسی SQL است که سطح مبتدی تا پیشرفته میتوانید این زبان برنامه نویسی رو بیاموزید.
برنامه نویسی SQL مبتدی آن دارای ۸۹ ویدئو است و مرحله به مرحله پس از ارتقا خود در این زبان میتوانید با این کانال و ویدئوهای آموزشی اش همراه باشید.

۴- کانال PASStv
یک کانال آموزشی خوش ساخت از ویدئو های خوب در مورد تجربیات و زمینه های یادگیری SQL SERVER . این کانال خیلی به آموزش زبان برنامه نویسی نمیپردازد اما حضور مهندسان و متخصصان این زبان باعث میشود که ویدئو های خوبی از تجربیات مهندسان را بتوانید ببینید و فرا بگیرید.
اگر بدنبال یادگیری تجربی SQL SERVER هستید، توصیه میکنم این کانال رو ببینید.

۵- کانال MacKenzie Child
کانال جالب MacKenzie Child دارای ۱۲ سری آموزش مبتدی زبان برنامه نویسی Ruby است که طرفداران این زبان حتماً باید دیده باشند.
اما بیشتر از آن بخش ویژه “۱۲ وب سرویس در ۱۲ هفته” مخاطبان زیادی رو به خود اختصاص داده است. این بخش ویژه برای یادگیری تجربی برنامه نویسی وب سرویس ها در نظر گرفته شده است.

۶- کانال WildAcademy
کانال وایلدآکادمی توسط Jake Day Williams، برای گسترش دانش در زبان برنامه نویسی Ruby و PHP تاسیس شده است.این کانال برای مبتدیان و علاقه مندان به Ruby بسیار مفید است.

۷- کانال Corey Schafer
کوری شافر یک توسعه دهنده پایتون است که در دنیای پایتونی ها بسیار فعال است . سری ویدئوهای پایتون برای مبتدیان او بسیار مورد توجه و بازدید قرار گرفته است. اگر هر سری ویدئوهای اون ۲۲ قسمت طولانی هم باشد مطمئن باشید برایتان بسیار فراتر از مبتدیان خواهید آموخت.

۸- کانال Programming Knowledge
این کانال صرفاً آموزش پایتون نیست اما این کانال بالای ۱۶۰ ویدئو در زمینه آموزش پایتون منتشر کرده است . اگر بدنبال آموزش ASP.NET هستید این کانال را با ویدئو های آموزشی جذابش از دست ندهید.

۹- کانال Cave of Programming
این کانال دارای لیست پخش هایی با دسته بندی مبتدی – متوسطه – پیشرفته دارد که پوشش آموزشی در بخش های مختلفی را میدهد اما بسیار تمرکز زیادی بروی زبان برنامه نویسی Java دارد که در ایران هم بسیار طرفدار و برنامه نویس دارد.

۱۰- کانال Telusko
در این کانال آموزشی واقعاً با یک دوره حرفه ای از زبان Java مواجه هستید. درست است که ویدئو های آموزشی این کانال در هر مقطعی از یادگیری جاوا آموزش میدهد اما توسط پیشرفته ترین اساتید روز جاوا در دنیا تهیه و انتشار میگردد.
علاقه مندان و برنامه نویسان جاوا این کانال را جدی بگیرید…

۱۱- کانال The New Boston
The New Boston به عنوان مرجع آموزشی برای زبانهایی که با آن در حال کار هستید بوجود آمده است. این کانال ۲ میلیون دنبال کننده دارد و حدود نیم میلیارد بازدید از ویدئو رو به نام خود ثبت کرده است. در این کانال تمامی زبان های برنامه نویسی که توسعه back-end نرم افزار ها را بر عهده دارند آموزش داده میشود.

نوشته ۱۱ کانال برتر یوتیوب برای آموزش برنامه نویسی اولین بار در ویرگول پدیدار شد.

گردآوری توسط ایده طلایی

قسمت چهارم JavaFX _ معماری و ساختار

سایر قسمت هارا در اینجا ببینید.

توجّه این قسمت تقریباً حالت معرّفی کلّی بخش های مختلف JavaFX را دارد و ممکن است به کلمات یا جملاتی برخورد کنید که باعث گیج شدنتان شود. اصلاً نگران این موضوع نباشید، متن را به دقّت بخوانید و هرجارا که نفهمیدید از آن رد شوید. این قسمت صرفاً برای آشنایی کلّی با معماری برنامه های JavaFX می باشد.

ـ JavaFX یک API کامل با مجموعه ای غنی از کلاس ها و اینترفیس ها برای ساخت اپلیکیشن های گرافیکی با گرافیک غنی را فراهم می کند.پکیج های مهمّ این API عبارت اند از _

ـ javafx.animation _ شامل کلاس هایی برای اضافه کردن انیمیشن های مبتنی بر انتقال از قبیل پر کردن(fill)، محو شدن(fade)، چرخش(rotate)، تغییر مقیاس(scale) و جابه جایی(translation) برای nodeهای JavaFX است.

نکته: node ها المان های گرافیکی JavaFX هستند.

  • ـjavafx.application _ شامل مجموعه ای از کلاس ها است که چرخه ی زندگی(life cycle) برنامه های JavaFX را بر عهده دارند.
  • ـ javafx.css _ شامل کلاس هایی برای طرّاحی CSSمانندِ اپلیکیشن های گرافیکی JavaFX می باشد.
  • ـ javafx.event _ شامل کلاس ها و اینترفیس هایی برای ارائه و مدیریت رویداد های JavaFX است.
  • ـ javafx.geometry _ شامل مجموعه ای از کلاس ها برای تعریف کردن اشیاء ۲بعدی و عملیات بر روی آن هاست.
  • ـ javafx.stage _ این بسته دارای کلاس های نگه دارنده ی(container) سطح بالای اپلیکیشن های JavaFX است.
  • ـ javafx.scene _ این بسته کلاس ها و اینترفیس هایی را برای پشتیبانی از گرافیک صحنه(Scene Graph) فراهم می کند. علاوه بر این، زیربسته ها یا sub_package هایی از قبیل بوم، نمودار، کنترل ها، افکت، تصویر، ورودی، لایه، مدیا، رنگ، شکل، متن، تبدیل، وب و… را فراهم می کند. اجزای متعدّدی هستند که این API غنی JavaFX، پشتیبانی می کنند. There are several components that support this rich API of JavaFX.

تصویر زیر ساختار API جاوا اف ایکس را نشان می دهد. در اینجا می توانید اجزایی که API جاوا اف ایکس پشتیبانی می کنند مشاهده کنید.

ساختار ای پی آی های JavaFX و اجزایی که از این APIها پشتیبانی می کنند.

گراف صحنه(Scene Graph)

در JavaFX ، اپلیکیشن های گرافیکی با استفاده از گراف صحنه کد نویسی شده اند. گراف صحنه نقطه ی شروع ساخت اپلیکیشن است. گراف صحنه(Scene Graph) اِلِمان های اصلی اپلیکیشن های گرافیکی JavaFX را که node نامیده می شوند در خود نگه داری می کند.

ـ node یک شیء بصری یا گرافیکی است و می تواند شامل این موارد باشد _

  • اشیای هندسی (گرافیکی) _ (۲بعدی و ۳بعدی) از قبیل دایره، مستطیل، چند ضلعی و…
  • کنترل های UI _ از قبیل Button ، CheckBox ، Choice box ، Text Area و…
  • ظروف شامل شونده (Containers) _ (پنجره های لایه ها یا layout panes)مثل Border Pane و Grid pane و Flow Pane و… (نگران نباشید بعداً به طور کامل همه ی این هارا بررسی خواهیم کرد.)
  • عناصر رسانه (Media elements) _ مانند آبجکت های صوتی، ویدیویی و تصویری.

به طور کلّی مجموعه ای از node ها یک گراف صحنه(scene graph) را می سازد. همه ی این node ها در یک سلسله مراتب(وراثتی) مرتّب شده اند که در تصویر زیر نشان داده شده است.

نمودار وراثتی node ها

هر node در گراف صحنه(scene graph) یک والد تک دارد، و node ای که هیچ والدی ندارد به عنوان nodeریشه یا root node شناخته می شود.

به طور مشابه node ها یک یا چند فرزند دارند، و node ای که هیچ فرزندی نداشته باشد leaf node نامیده می شود؛ node ای که دارای فرزند باشد branch node نامیده می شود.

در یک گراف صحنه(scene graph) فقط یک node می تواند اضافه شود. node ِ گراف صحنه می تواند افکت(Effects)، شفّافیت(Opacity)، تغییر شکل (transform) و Event Handler داشته باشد. (نگران نباشید در ادامه ی آموزش درباره ی همه ی این موارد توضیح داده خواهد شد)

ـPrism

ـprism یک عملکرد گرافیکی سطح بالاست که برای تفسیر گرافیکی در JavaFX استفاده می شود. که می تواند هر دوی گرافیک های دو بعدی و سه بعدی را تفسیر کند.

در صورتی که سیستم مورد نظر سخت افزار لازم برای پردازش گرافیکی را پشتیبانی نکند، prism از تفسیر نرم افزاری برای پردازش گرافیکی استفاده می کند.

زمانی که از کارت گرافیک یا GPU استفاده شود، گرافیک روان تری ارائه می شود. فقط زمانی که سیستم کارت گرافیک نداشته باشد، prism به صورت پیش فرض از پردازش گرافیکی نرم افزاری استفاده می کند.

GWT (Glass Windowing Toolkit)

ـGWT سرویس هایی برای مدیریت پنجره ها، تایمرها، سطوح برنامه(Surfaces) و صف رویدادها ارائه می دهد. GWT بسترِ JavaFX را به سیستم عامل بومی سیستم متّصل می کند.

وب ویو (WebView)

با استفاده از JavaFX شما می توانید محتوای HTML را هم در گراف صحنه ی خود قرار دهید. WebView کامپوننتی(جزئی) است که نمایش این محتوارا بر عهده دارد. وب ویو از تکنولوژی ای به نام Web Kit استفاده می کند که یک مرورگر وب داخلی منبع باز(open source) است. این جزءِ JavaFX از تکنولوژی های مختلف مربوط به وب پشتیبانی می کند مانند HTML5 و CSS و JavaScript و DOM و SVG.

با استفاده از وب ویو شما می توانید _

  • محتوای HTML را از بخش محلّی(local) یا آدرس URL ، رندر کنید.
  • پشتیبانی از تاریخ و ارائه ی قابلیت برگشت و جلو رفتن در صفحات وب.
  • بارگیری مجدّد محتوا (reload the content)
  • اعمال افکت روی صفحات وب.
  • ویرایش محتوای HTML.
  • اجرای دستورات JavaScript.
  • مدیریت رویدادها.

به طور کلّی با استفاده از WebView می توانید محتوای وب را از جاوا کنترل کنید.

موتور رسانه یا Media Engine

موتور رسانه ی JavaFX مبتنی بر یک موتور() منبع باز است که به عنوان یک استریمر(streamer) شناخته می شود. این موتور رسانه از پخش ویدیو و محتوای صوتی پشتیبانی می کند.

موتور رسانه ی JavaFX فایل های صوتی با فرمت های زیر را پشتیبانی می کند _

قالب های پشتیبانی شده در موتور رسانه ی JavaFX

بسته ی javafx.scene.media ، کلاس ها و اینترفیس هایی را برای ارائه ی قابلیت رسانه در JavaFX فراهم می کند. این در قالب سه جزء ارائه شده است که موارد زیر هستند _

ـMedia Object _ این نشان دهنده ی یک فایل رسانه ای است.

ـMedia Player _ برای پخش محتوای رسانه.

ـMedia View _ برای نمایش رسانه.

در ادامه با این سه بهتر آشنا خواهیم شد. فعلاً اسمشان را در گوشه ی ذهن خود داشته باشید تا بعد.

لطفاً نظرات ارزشمند خودتون رو بنویسید. لایک هم فراموش نشه، مرسی.

نوشته قسمت چهارم JavaFX _ معماری و ساختار اولین بار در ویرگول پدیدار شد.

گردآوری توسط ایده طلایی

چرا از ASP .NET Core استفاده کنیم؟

مایکروسافت با توجه به نابودی Silverlight و عدم توان رقابت با IOS  و اندروید به این نتیجه رسید که در بستر برنامه نویسی ویندوز موبایل نمی تواند موفقیت آنچنانی داشته باشد، سیستمهای تحت ویندوز یا همان Windows Application ها نیز آنچنان پر رونق نیستند. پس تنها صحنه رقابت برای ماکروسافت بستر وب است .  Startup ها نیز به بستر های Open Source و ارزان نیاز دارند.

حتما خبرهایی مانند “open source شدن دات نت” و “قابلیت اجرا بر روی غیر ویندوز مثل لینوکس”  را شنیده اید.

مایکروسافت جهت رفع مشکلات اعلام شده Asp .Net Core را وارد بازار رقابت کرده است. .Net Core کاملا cross-platform طراحی شده به شکلی که در ویندوز ، لینوکس و مک قابل استفاده بوده و همچنین برای دستگاهای مختلف ، فضاهای ابری و سناریوهای مرتبط با اینترنت اشیاء کاربرد دارد.

ASP.NET Core ، بازنویسی کامل از  ASP.NET است. ویندوز هنوز هم سیستم عاملی برتر به حساب می آید ولی برنامه های وب نه تنها روز به روز از کاربرد و اهمیت بیشتری برخوردار می‌شوند بلکه باید بر روی سکوهای دیگری مانند فضای ابری هم بتوانند میزبانیشوند. مایکروسافت با معرفی ASP.NET Core گستره کارکرد NET. را افزایش داده است . به این معنی که می‌توان برنامه‌های کاربردی ASP.NET Core را بر روی بازه‌ی گسترده ای از محیط‌های مختلف میزبانی کرد هم‌اکنون می‌توانید پروژه های وب را برای Linux یا macOS هم تولید کنید.

 

تفاوت‌های .Net Core و .Net framework

. NET Framework فقط برای سرویس‌های ویندوزی مورد استفاده قرار می‌گیرد. پروژه‌های Xamarin و Mono برای آوردن .NET به دستگاه‌های تلفن همراه،  macOS و لینوکس کار کرده‌اند .

.Net Core کتابخانه‌های استاندارد را که بر اساس ویندوز، لینوکس، دستگاه‌های تلفن همراه (Xamarin) و  macOS هستند، تأمین می‌کند.

همان طور که ‌می‌توانید در عکس زیر مشاهده کنید، مایکروسافت هر دو زمان اجرا را برای ساخت برنامه‌های کاربردی با دات نت  را اداره ‌می‌کند و بسیاری از API‌های مشابه را به اشتراک ‌می‌گذارند. این API مشترک ، .NET Standard نامیده ‌می‌شوند.

 هنوز تعداد زیادی از کتابخانه‌های Full framework به NET Core. انتقال پیدا نکرده‌اند

توسعه‌دهندگان از NET Framework. برای ساخت نرم افزارهای ویندوزی و سرور استفاده می‌کنند که شامل برنامه‌های ASP.NET هم می‌شود. NET Core. برای ساخت برنامه‌های سروری (Server Applications) مورد استفاده قرار می‌گیرد که امکان اجرا برروی ویندوز، لینوکس و مک را دارند. در حال حاضر NET Core. از ساخت اپلیکیشن‌های دسکتاپی که دارای رابط کاربری هستند، پشتیبانی نمی‌کند. توسعه‌دهندگان می‌توانند نرم‌افزارها و کتابخانه‌های خود را برای هرکدام از این runtimeها در #C یا VB.NET یا #F بنویسند.

 

برخی از ویژگی  های  .Net Core

NET CORE.  و برنامه های اجرا شده در این پلتفرم بسیار سبک و کم حجم میباشند.

Cross Platform میباشد:  شما با NET CORE. به معنای کامل میتوانید بصورت یکپارچه در تمامی سیستم عامل ها و دیوایس ها پروژه خود را پیاده  سازی کنید.

سازگاری : به لطف استفاده از کتابخانه استاندارد .Net ،.Net Core توانایی سازگاری با .Net Framework ، Xamarin و Mono را داراست.

انعطاف پذیری در استفاده : می تواند به صورت یک افزونه در اپلیکیشن مورد نظر شما افزوده شود و یا اینکه به صورت کاملا مجزا و با کاربری های مختلف در سرویس شما نصب گردد.

توسعه راحت و سریع: .Net Core  باعث شده است پروژه ها و استارت آپ های زیاد به جهت راحتی در تیم برنامه نویسی این پلتفرم را انتخاب کنند.

پشتیبانی از Github و نیوگت برای برنامه های اوپن سورس

هزینه های پایینتر: از دیگر مشکلات برنامه های ویندوزی هزینه نگهداری و منابع مورد نیاز آنها بود. با کاهش محسوس حجم برنامه ها و منابع مورد نیاز میتواند یکی دیگر از بهترین مزیت های NET CORE. را هزینه نگهداری پایین آن درنظر گرفت.

متن باز بودن (Open source) : پلتفرم .Net Core کاملا متن باز بوده و از لایسنسهای MIT و Apache 2 استفاده می کند.

ابزارهای Command-line : پشتیبانی از خط فرمان بسیار قدرتمند برای نصب بسته های پیش نیاز، تمامی محصولات مشتق شده از سناریوهای مختلف قابل استفاده و ویرایش و اجرا به صورت خط فرمان هستند.

با این تغییرات ASP.NET میتواند دوباره به مدار باز گردد .

با این ویژگی ها ASP.NET با دیگر محیطها و زبانهای توسعه وب در یک سطح خواهد بود، علاوه بر اینکه زبان قدرتمند C#.NET همچنان هسته اصلی توسعه باقی خواهد ماند و این یک برتری بسیار بزرگ نسبت به دیگر زبانها  می باشد.

 

 NET Core. از اجزای زیر تشکیل شده است:

یک .NET runtime که یک نوع سیستم را ارائه می‌دهد، assembly loading، جمع‌کننده اضافات، تبادل کننده داخلی اطلاعات و دیگر سرویس‌های پایه‌ای.

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

تعدادی ابزار SDK و کامپایلر زبان که تجربه توسعه پایه‌ای را که در NET Core SDK. در دسترس است، فعال می‌کند.

اپلیکیشن میزان dotnet که به منظور اجرای اپلیکیشن‌های NET Core. مورد استفاده قرار می‌گیرد. این اپ، runtime را انتخاب و میزبانی کرده و حریم شحصی و اجرای اپلیکیشن‌ها را ارائه می‌دهد.

چه موقع از NET Core. استفاده نکنیم؟

یکی از مشکلات NET Core. این است که تمام امکانات NET. را ندارد و از تمام کتابخانه‌ها و افزونه‌ها پشتیبانی نمی‌کند. در برخی از مواقع بهتر است که از NET Core. استفاده نکنیم، البته با گذر زمان و توسعه‌ی بیشتر، احتمالا در آینده برای تمام موارد استفاده مناسب خواهد شد. ولی فعلا بهتر است در موارد زیر از آن استفاده نکنیم:

  1.  در مواقع توسعه‌ی نرم‌افزار بر پایه‌ی«Windows Forms» و «WPF»

این دو هنوز پشتیبانی نمی‌شوند. هنوز هم برای ساخت یک اپلیکیشن NET. برای Mac باید از مونو استفاده کنید.

  1.  در مواقع استفاده ازNET Webforms

مایکروسافت برنامه‌ای برای منتقل کردن آن به ASP.NET Core ندارد.

  1. در مواقعی که نیاز به ساخت یک «WCF Service» دارید

NET Core. در حال حاضر از WCF پشتیبانی نمی‌کند. به جای آن باید یک «REST API» به کمک «ASP.NET Core MVC» بسازید.

  1. در مواقعی که امکاناتی می‌خواهید که مختص NET Framework. است

برخی از امکانات NET Framework. هنوز در NET Core. وجود ندارد. برای مثال، «Entity Framework Core» با «Entity Framework v6» متفاوت است.

  1.  در مواقعی که نیاز به استفاده از APIهای مختص ویندوز دارید

اگر نرم‌افزار شما نیاز دارد تا با رجیستری ویندوز، WMI یا سایر APIهای مخصوص ویندوز کار کند، امکان نوشتن آن با NET Core. را ندارید. NET Core. به گونه‌ای طراحی شده است که محیط بسته‌تر و دور از سیستم‌عامل داشته باشد.

ویژگی های asp.net core  نسبت به asp.net mvc

ASP.NET Core در مقایسه با MVC ، ساده‌تر شده و برخلاف آن هیچ ارتباطی با پروژه های Web Form ندارد و از آنجا که بر پایه NET Core. بنا شده ایجاد پروژه های وب  را در محیط های مختلف و سیستم عامل های گوناگون ساپورت می کند.

اضافه شدن برخی ویژگی های جدید و یا بهبود امکانات و ویژگی های قبلی مانند Tag Handler , Madular , dl, lo C و بازنویسی کلاس ها و کتابخانه های موجود در asp.net mvc  در جهت بهبود آن ها از سایر مزیت های ASP .NET Core نسبت به mvc می باشد.

نصب .net core

از اینجا می توانید .net core را دانلود نموده و مراحل نصب آن در سرور را انجام دهید.

نظر شما در مورد NET Core. چیست؟

نوشته چرا از ASP .NET Core استفاده کنیم؟ اولین بار در ایران سرور پدیدار شد.

گردآوری توسط ایده طلایی

مهم ترین تغییرات پایتون ۳٫۷٫۱ 🐍

پایتون ۳٫۷٫۱ چند هفته قبل (۲۰۱۸/۱۰/۲۰) منتشر شد


  • Add new time functions with nanosecond resolution
import time

time.clock_gettime_ns()
time.clock_settime_ns()
time.monotonic_ns()
time.perf_counter_ns()
time.process_time_ns()
time.time_ns()

تابعی که برای زمان وجود داشت time.time() بود که عددی اعشاری را برمیگرداند…

اما با تکنیک جدید نانوثانیه این مشکل برطرف شده، و در صورت نیاز محاسبات خیلی دقیقی رو میشه با این تکنیک انجام داد

  • Typing Enhancements
from typing import List
Vector = List[float]

def scale(scalar: float, vector: Vector) -> Vector:
    return [scalar * num for num in vector]
    
    # typechecks; a list of floats qualifies as a Vector.
new_vector = scale(2.0, [1.0, -4.2, 5.4])

پایتون بی نیاز از تعیین نوع داده متغییر هاست، ولی به گفته برخی باعث پیچیده تر شدن و ناخوانی کُد میشود. این سینتکس که در سری نسخه های پایتون ۳ موجود بود در این بروزرسانی عملکرد بهتری پیدا کرده.

پایتون در زمان اجرا نوع متغییر را چک نمیکند(!)

from typing import NewType
UserId = NewType('UserId', int)
ProUserId = NewType('ProUserId', UserId) 

  • Built-in breakpoint()
breakpoint()
print("one step")
print("second step")

این تابع که دیباگ کردن برنامه استفاده میشد اکنون به صورت یک تابع داخل هسته پایتون قرار داده شده و دیگر نیاز به فراخوانی pdb نیست!

(پ.ن: در محیط pdb از کامند help برای دیدن لیست کار هایی که قادر به انجام هستین استفاده کنید و یا به سادگی کامند next را تایپ کنید!)

امکانات مهم دیگه که در این بروزرسانی میشه مشاهده کرد Await expression و Forced UTF-8 Runtime Mode هستند

خوشحال میشم اگه اشکالی در نوشته بالا هست بهم گوش زد بشه، و یا حتی باهم گپی درمورد پایتون داشته باشیم 🙂

برای مطالعه بیشتر: لینک

منابع:

۱ ۲

نوشته مهم ترین تغییرات پایتون ۳٫۷٫۱ 🐍 اولین بار در ویرگول پدیدار شد.

گردآوری توسط ایده طلایی

HTML چیست و چه کاربردی دارد؟

اگر کمی با دنیای طراحی وب یا برنامه نویسی وب آشنایی داشته باشید، حتما واژه‌ی HTML به گوشتان خورده است و این سوال برایتان پیش آمده است که HTML چیست . در این فایل و مقاله آموزشی میخواهیم بصورت کامل به پاسخ به این سوال بپردازیم که HTML چیست ، چه کاربردی در طراحی وب دارد؟ چطور کار میکند؟ رابطه‌ی آن با CSS چیست و… . هر آن چیزی که برای پاسخ به سوال HTML چیست نیاز دارید را در این مقاله و آموزش به آن پاسخ خواهیم داد.

HTML چیست

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

https://www.aparat.com/v/ul76e

یک معرفی کلی

برای پاسخ به سوال HTML چیست باید یک آشنایی نسبی و ابتدایی با آن داشته باشیم. HTML مخفف عبارت Hyper Text Markup Language هست.

اگر بخواهیم یک ترجمه‌ی فارسی از HTML داشته باشیم، میتوانیم به آن «زبان نشانه گذاری فرا متن» بگوییم. البته که این ترجمه، نمیتواند کارایی HTML را به خوبی توضیح دهد به سوال HTML چیست پاسخ خوبی دهد! در ادامه بیشتر با HTML آشنا خواهیم شد.

اگر میخواهید خیلی بیشتر درباره‌ی تاریخچه‌ی اچ تی ام ال (HTML) را مطالعه کنید، ویکی پدیا در خدمت شماست.

کاربرد اصلی HTML

اگر بخواهیم به سوال HTML چیست پاسخ دهیم، باید کاربرد اصلی HTML را بررسی کنیم. در این قسمت میخواهیم یاد بگیریم که HTML چیست و دقیقا چه کاری انجام میدهد.

اگر بخواهیم خیلی ساده به سوال HTML چیست پاسخ دهیم، میتوانیم بگوییم:

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

اگر کمی با طراحی وب آشنایی داشته باشید،‌ حتما میدانید که طراحی وب ۲ مرحله اصلی دارد:

  1. ساختاربندی اصلی صفحات وب که با HTML انجام میشود.
  2. اضافه کردن جذابیت های ظاهری مثل رنگ و… که با CSS انجام میشود.

یک ساختمان را تصور کنید

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

یک ساختمان را تصور کنید که شخصی میخواهد اقدام به ساخت آن کند، برای مثال یک مجتمع مسکونی!

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

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

طراحی وب با HTML نیز دقیقا به همین صورت است. HTML به شما کمک میکند تا با استفاده از تگ ها، ساختار و ساختمان کلی صفحه وب خود را تعریف کنید. مثلا بگویید که منو کجاست، هدر کجاست، فوتر کجاست و… .

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

یا مثلا یک انسان را تصور کنید

اگر بخواهیم دقیق تر به سوال HTML چیست پاسخ دهیم، میتوانیم HTML را با بدن یک انسان مقایسه کنیم.

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

  • ابتدا بدن انسان با استفاده از استخوان ها، اسکلت بندی میشود و ساختار کلی آن مشخص میشود.
  • سپس با استفاده از کدهایی مثل CSS، میتوان به آن جذابیت های ظاهری بخشید (همانطور که کیفیت کدهای CSS یک صفحه‌ی وب متفاوت است،‌ کیفیت کدهای CSS دو انسان هم میتواند متفاوت باشد 🙂 )

تگ (tag) چیست؟

شاید در حین کار با HTML به چیزهایی به نام «تگ یا tag» برخورد کرده اید و برایتان سوال پیش آمده است که تگ ها چه چیزهایی هستند.

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

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

درباره تگ ها در HTML در آینده در یادیفای بصورت بسیار کامل صحبت خواهیم کرد.

رابطه‌ی HTML و CSS

همانطور که چندین بار هم در این مقاله به آن اشاره کردیم، HTML و CSS به کمک یکدیگر میتوانند صفحات وب را بسازند.

شما با استفاده از HTML، ساختار کلی صفحه وب را مشخص میکنید و سپس با استفاده از CSS میتوانید به آن جذابیت های ظاهری اضافه کنید. دقیقا مثل همان مثال ساختمان سازی که با استفاده از میل گرد، بتن و… ساختار کلی ساختمان را میساختید و سپس با استفاده از رنگ و گچ بری و… آن ساختمان را زیبا میکردید

روش اجرای فایل های HTML

فایل های HTML برای اجرا شدن به هیچ تکنولوژی خاصی نیاز ندارد. شما برای اجرای فایل های HTML فقط نیاز به یک مرورگر دارید که از HTML پشتیانی کند و تمام مرورگرها این کار را برای شما انجام میدهند!

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

چرا HTML یک زبان برنامه نویسی نیست؟

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

HTML هرگز نمیتواند یک زبان برنامه نویسی باشد. زیرا اصلا ویژگی های یک زبان برنامه نویسی، مثل متغیر ها، توابع، شرط ها، حلقه ها و… را ندارد. پس کاملا اشتباه است اگر HTML را یک زبان برنامه نویسی بدانیم. میتوانیم درباره‌ی HTML بگوییم که ابزاری است که با استفاده از تگ ها، میتواند صفحات وب را برای ما ساختاردهی کند.

HTML5 چیست و چه تفاوتی با HTML دارد؟

در ادامه‌ی پاسخ به سوال HTML چیست ، میخواهیم کمی درباره‌ی HTML5 صحبت کنیم.

HTML5 آخرین نسخه از HTML است که طراحی وب را برای طراحان وب بسیار ساده تر و جذاب تر کرده است و چندین ویژگی بسیار جدید و جالب دارد. اگر میخواهید یک طراح وب حرفه‌ای باشید، حتما باید از HTML5 استفاده کنید و به آن مسلط باشید.

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

منبع: یادیفای

نوشته HTML چیست و چه کاربردی دارد؟ اولین بار در ویرگول پدیدار شد.

گردآوری توسط ایده طلایی

آموزش استفاده از Composer در PHP

مقدمه

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

مدیریت وابستگی

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

بروزرسانی پکیج ها

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

وابستگی های تو در تو

پکیج های مورد نیاز پروژه ما (وابستگی های سطح یک) برای ارائه کاربرد مورد نظر ممکن است از دیگر پکیج ها استفاده کنند و اصطلاحا خود وابستگی هایی که آنرا وابستگی های سطح دو می نامیم داشته باشند، این داستان ممکن است حتی ادامه دار باشد و وابستگی های سطح سوم، چهارم و … هم به وجود بیایند. برای مدیریت این مسئله دو راهکار را می توان درنظر گرفت: ۱) برای هر پکیج وابستگی های آن را در دایرکتوری همان پکیج قرار بدهیم و سلسله مراتبی از وابستگی ها به وجود بیاوریم. ۲) همه پکیج ها از همه سطوح وابستگی بدون اینکه تفاوتی برای سطح آنها قائل شویم را در کنار هم قرار دهیم.

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

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

ابزار مدیریت وابستگی

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

برای زبان های مختلف ابزار های مختلفی طراحی شده است، برای مثال Maven و Gradle برای جاوا، pip برای Python، SBT برای اسکالا و Dep برای Go را می توان نام برد. برای زبان PHP در گذشته از ابزار Pear استفاده می شد اما سالهاست که Composer نه به عنوان ابزار رسمی اما به عنوان محبوب ترین ابزار مدیریت وابستگی در پروژه های PHP استفاده می شود.

قرارداد نامگذاری نسخه

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

MAJOR.MINOR.PATCH

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

بخش MAJOR در نسخه

بخش اول در نام نسخه Major نام دارد که نسخه اصلی پکیج به حساب می آید و تغییر آن به معنی تغییرات بنیادی یا مهم در پکیج است و لزوما با نسخه قبلی سازگار نمی باشد. در صورتی که ما توسعه دهنده پکیج هستیم و در نسخه جدید تغییراتی در API پکیج ایجاد کرده ایم که کاربران نسخه قبلی بدون تغییر نمی توانند از این نسخه استفاده کنند ما این بخش از نسخه را یک واحد افزایش می دهیم. برای مثال اگر نسخه قبلی پکیج ما v2.6.1 بوده نسخه جدید را باید v3.0.0 نامگذاری کنیم. در صورتی که ما کاربر یک پکیج هستیم باید به هنگام بروزرسانی پکیج توجه کنیم که با بروزرسانی به نسخه Major جدید ممکن است به تغییراتی در پروژه برای سازگاری با نسخه جدید نیازمند باشیم و حتی ممکن است از بروزرسانی منصرف شویم.

بخش MINOR در نسخه

بخش دوم در نام نسخه Minor نام دارد که نسخه فرعی پکیج به حساب می آید و تغییر آن به معنی معرفی شدن فیچر جدید یا بهبود قابل توجه با حفظ کامل سازگاری با نسخه قبلی است. برای مثال اگر نسخه پکیج v2.6.1 است چنین تغییری می تواند به نسخه v2.7.0 منجر شود. با توجه توضیحات ذکر شده می توان با خاطری نسبتا آسوده پکیج ها را به نسخه های فرعی جدید بروزرسانی کنیم.

بخش PATCH در نسخه

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

ابزار Composer

همانطور که اشاره کردیم Composer محبوب ترین ابزار مدیریت وابستگی برای پروژه های به زبان PHP می باشد که فریم ورک های معروف PHP از جمله Laravel، Symfony و Zend Framework همگی از این ابزار استفاده می کنند. این ابزار یکی از قویترین ابزار های مدیریت وابستگی می باشد که امکانات بسیاری را در اختیار توسعه دهنده ها قرار می دهد و ما سعی کردیم در این مقاله تعدادی از آنها را معرفی کنیم.

کمپوزر بطور پیشفرض از مخزن packagist.org برای دانلود پکیج ها استفاده می کند و می توانید پکیج های قابل استفاده را در این سایت ببینید.

نصب Composer

کومپوزر را به عنوان یک ابزار Command Line می توانید از سایت getcomposer.org دانلود و نصب کنید. پس از نصب می توانید صحت نصب را با اجرای دستور زیر در خط فرمان (ترمینال) بررسی کنید.

composer --version

و برای افزودن پکیج های مورد نیاز به پروژه می توانید دستوری مشابه دستور زیر را در دایکتوری پروژه اجرا کنید.

composer require miladrahimi/phpconfig

در صورتی که مشکلی رخ ندهد، پس اجرای دستور بالا Composer پکیج مورد نظر را دانلود در دایرکتوری your-project/vendor قرار می دهد و همچنین فایل composer.json و composer.lock را هم در دایرکتوری پروژه ایجاد می کند. کاربرد این فایل را در ادامه توضیح می دهیم.

فایل composer.json

فایل composer.json پس از اجرای دستور init یا تعریف اولین وابستگی برای پروژه در دایرکتوری ریشه (root) پروژه ایجاد می شود. این فایل را که می توان به طور دستی و با یک Text Editor هم ساخت شامل لیست وابستگی ها (پکیج ها مورد نیاز پروژه)، مخزن ها، Auto-loader ها و همه اطلاعاتی است که Composer نیاز دارد تا درباره پروژه شما بداند می باشد.

در این فایل نسخه پکیج ها را می توان بصورت انعطاف پذیر همانند v3.* یا v3.6.* نوشت تا بروزرسانی پکیج ها و همچنین جلوگیری از نصب نسخه غیر قابل سازگار ممکن باشد.

فایل composer.lock

فایل composer.lock که در کنار فایل composer.json قرار می گیرد شامل اطلاعات دقیق تر (نسخه دقیق پکیج ها) می باشد. این فایل به هنگام اجرای دستور install مورد استفاده قرار می گیرد تا از بروزرسانی ناخواسته وابستگی ها در محیط های حساس جلوگیری شود. پیشنهاد می شود این فایل به همراه پروژه به سرور منتقل شود تا با نصب وابستگی ها در سرور مطمئن باشیم همان نسخه استفاده شده در محیط تست و یا توسعه بر بروی سرور نصب می شود.

دایرکتوری vendor

این دایرکتوری شامل تمام پکیج های دانلود شده توسط Composer می باشد که مورد نیاز پروژه است. علاوه بر پکیج های نصب شده، اطلاعات مربوط به نحوه بارگذاری آنها و همچنین فایل autoload.php در این دایرکتوری نگهداری می شود.

با توجه به اینکه با استفاده از اطلاعات موجود در فایل های composer.json و composer.lock و نرم افزار Composer هر زمان و هر کجا می توان مجددا تمام پکیج های مورد نیاز پروژه را نصب کرد به هنگام به اشتراک گذاری، آپلود به سرور یا مخزن Git و Deploy این دایرکتوری را ignore کرد.

تعریف وابستگی ها

در صورتی که در پروژه خود به یک پکیج نیاز دارید ابتدا باید آنرا در مخزن packagist.org پیدا کنید. در صفحه مربوط به پکیج در سایت Packagist می توانید روند افزودن آن به پروژه مشاهده کنید. برای مثال برای افزودن پکیج PhpRouter به پروژه می توانید دستور زیر را در دایرکتوری پروژه اجرا کنید.

composer require miladrahimi/phprouter

با افزودن اولین وابستگی به پروژه، Composer دو فایل composer.lock و composer.json و همچنین دایرکتوری vendor را به پروژه شما اضافه می کند و در صورت وجود این فایل ها و دایرکتوری بروزرسانی می شود.

پس از افزودن وابستگی به پروژه، Composer آنرا دانلود کرده و در دایرکتوری vendor قرار می دهد و همچنین وابستگی مورد نظر را به بخش require در فایل composer.json اضافه می کند و نهایتا composer.lock را هم بروزرسانی می کند.

در صورتی که پکیج مورد نظر تنها کاربرد تستی دارد و در سرور اصلی نیازی به نصب آن نیست می توانید با دستوری مشابه دستور زیر آنرا به پروژه اضافه کنید.

composer require phpunit/phpunit --dev

دستور بالا پکیج PhpUnit را به بخش require-dev در composer.json اضافه خواهد کرد.

چنانچه نسخه خاصی از پکیج مد نظرتان هست می توانید همانند دستور زیر آنرا به پروژه به اضافه کنید:

composer require miladrahimi/phprouter:"3.0"

با اجرای دستور بالا نسخه v3.0.* از پکیج را نصب می شود. به مثال دیگری که در ادامه آورده ایم هم توجه کنید.

composer require miladrahimi/phprouter:"3.*"

با اجرای این دستور نسخه v3.* از پکیج نصب خواهد شد. Composer جدیدترین نسخه از پکیج که بخش Major آن ۳ می باشد را نصب خواهد کرد.

برای مشاهده دیگر فرمت های نوشتن نسخه که توسط Composer معرفی شده است می تواند به مقاله رسمی سایت Composer با نام Versions and constraints مراجعه کنید.

بارگذاری پکیج ها

همانطور که قبلا گفتیم Composer پکیج های مورد نیاز پروژه (و دیگر پکیج ها) را پس از دانلود در دایرکتوری vendor قرار می دهد. Composer همچنین فایلی به نام autoload.php در این دایرکتوری ایجاد میکند. این فایل حاوی Auto-loader برای تمام پکیج های نصب شده توسط Composer است و با include کردن آن در پروژه می توان از پکیج های نصب شده استفاده کرد. مثال زیر نحوه استفاده از پکیج PhpRouter را نشان می دهد:

include "vendor/autoload.php";
use MiladRahimiPhpRouterRouter;
$router = new Router();
$router->get('/', function () {
    return 'This is home page!';
});
$router->dispatch();

بروزرسانی وابستگی ها

پس از نصب وابستگی ها ممکن است نیاز باشد که آنها را بروزرسانی کنیم که در آن صورت می توانید از دستوری مشابه دستور زیر استفاده کنید.

composer update miladrahimi/phprouter

پس از اجرای دستور بالا جدیدترین نسخه سازگار از پکیج مورد نظر توسط Composer دانلود و جایگزین نسخه قبلی آن در دایرکتوری vendor می شود. همچنین فایل composer.lock هم بروزرسانی می شود اما هیچ تغییر در فایل composer.json نخواهیم داشت.

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

composer update

این دستور تمام وابستگی ها، دایرکتوری vendor و فایل composer.lock را بروزرسانی می کند. این دستور را با دستور زیر که خود نرم افزار Composer را بروزرسانی می کند اشتباه نگیرید.

composer self-update

نصب وابستگی ها

همانطور که قبلا توضیح دادیم بهتر است دایرکتوری vendor را به هنگام آپلود پروژه در سرور یا در مخزن هایی مانند گیتهاب ignore کرد. همچنین در صورتی که بطور کلاسیک برای Deploy پروژه روی سرور آنرا آپلود می کنید در این صورت به هنگام دریافت پروژه از مخزن دایرکتوری vendor را نداریم اما می توان با دستور زیر مجددا وابستگی ها را نصب کنیم.

composer install

دستور بالا در صورتی که فایل composer.lock در دسترس باشد، پکیج ها را مطابق با نسخه تعریف شده در آن نصب می کند و در غیر این صورت با استفاده از اطلاعات موجود در فایل composer.json آخرین نسخه سازگار با پروژه را نصب خواهد کرد.

در محیط هایی همانند سرور اصلی با استفاده از پارامتر —no-dev می توانید از نصب پکیج های مورد نیاز محیط های تستی جلو گیری کنید.

composer install --no-dev

افزودن autoload

یکی از قابلیت های مفیدی که Composer ارائه می دهد که البته ممکن است فراتر از وظایف یک ابزار مدیریت وابستگی باشد، امکان تعریف autoload برای پروژه است. در بخش های قبل متوجه شدیم که برای بارگذاری پکیج های دانلود شده توسط Composer باید فایل vendor/autoload.php در پروژه خود include کنید. از طرفی پروژه شما هم به یک Auto-loader برای بارگذاری کلاس های پروژه نیاز دارد. با قابلیت مورد نظر نیاز نیست که شما به طور جداگانه یک. Auto-loder طراحی کنید تنها کافیت تا اطلاعات بارگذاری پروژه را به composer.json اضافه کنید تا همان autoload موجود در دایرکتوری vendor کلاس های پروژه شما را هم بارگذاری کند.

"autoload": {
    "psr-4": {"App": "app/"}
}

مخزن ها

سرور Packagist مخزن رسمی و عمومی Composer است و Composer برای نصب پکیج ها به این مخزن رجوع می کند. با وجود مخزن Packagist برای پکیج های خصوصی و یا پکیج هایی که در این مخزن رجیستر نشده اند ما به مخزن های ثانویه نیازمندیم که خوشبختانه Composer به راحتی به ما اجازه می دهد تا این مخزن ها را برای پروژه تعریف کنیم.

در صورتی که مخزن مورد یک مخزن خصوصی در یک سرور Git همانند GitHub یا GitLab است می توانید با آنرا همانند کد زیر به فایل composer.json اضافه کنید.

"repositories": [
    {
        "type": "git",
        "url": "https://github.com/private-company/foo"
    }
],
"require": {
    "private-company/foo": "1.*"
}

در صورتی که پکیج مورد نظر شما فقط در قالب تعدادی فایل در دسترس است می توانید به شکل زیر آنرا در composer.json اضافه کنید.

"repositories": [
    {
        "type": "path",
        "url": "../../packages/my-package"
    }
],
"require": {
    "my/package": "*"
}

برای اطلاعات بیشتر در زمینه مخزن ها می توانید بخش Repositories از مستندات رسمی Composer را مطالعه کنید.

گفتار پایانی

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

نسخه PDF مقاله آموزش استفاده از Composer در PHP

نوشته آموزش استفاده از Composer در PHP اولین بار در ویرگول پدیدار شد.

گردآوری توسط ایده طلایی

Full Stack چیست و به چه کسی برنامه نویس فول استک میگویند؟

در مقالات قبلی درباره برنامه نویسی، طراحی وب، برنامه نویسی وب و مفاهیم مختلف صحبت کردیم و به سوالات بسیاری پاسخ دادیم. در این مقاله و فایل ویدئویی میخواهیم درباره‌ی فول استک یا Full Stack صحبت کنیم و یاد بگیریم که Full Stack چیست . در این مقاله با من همراه باشید.

Full Stack چیست

اگر به دنبال یک پاسخ خیلی ساده ولی کاربردی برای سوال Full Stack چیست هستید، فیلم زیر را مشاهده کنید

https://www.aparat.com/v/yqi3X

مقدمه

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

Front End چیست و به چه کسی برنامه نویس فرانت اند میگویند؟

Back End چیست و به چه کسی برنامه نویس بک اند میگویند؟

بعد از مطالعه و مشاهده‌ی مطالب بالا، حالا میتوانید ادامه‌ی این مطلب را مطالعه بفرمایید.

همه چیز درباره برنامه نویس فول استک یا Full Stack Developer

همانطور که گفتیم، در دنیای طراحی سایت،‌ گروهی از افراد هستند که چیزهایی که کاربر میبیند را طراحی و کدنویسی میکنند و گروهی دیگر هستند که روی پشت صحنه (Back End) متمرکز میشوند و کدهای سمت سرور را مینویسند.

اما یک گروه دیگر نیز از برنامه نویسان سمت وب وجود دارد که مارا به پاسخ سوال Full Stack چیست می‌رساند:

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

عبارت بالا شاید بتواند یک تعریف خیلی ساده برای برنامه نویس Full Stack باشد. برنامه نویس فول استک، همانطور که از واژه‌ی Full پیداست، همه مهارت‌های لازم برای انجام یک پروژه را دارد. به این معنا که:

یک برنامه نویس فول استک، هم میتواند ظاهرهای بسیار خوبی را برای سرویس های آنلاین طراحی کند و هم میتواند برنامه نویس سمت سرور خوبی باشد.

یک مثال برای جواب دادن به سوال Full Stack چیست

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

  • یک شخص که بتواند ظاهر سایت را با تکنولوژی هایی مثل HTML, CSS, Javascript و… طراحی کند.
  • و شخص دومی که بتواند کدهای بک اند و سمت سرور را با زبانی مثل PHP بنویسد و به پایگاه داده (دیتابیس) متصل شود و اطلاعات را از دیتابیس بخواند و اطلاعات جدید را وارد آن کند.

همانطور که گفتیم، هرکدام از این افراد، یک تخصص دارند و برای ساخت یک سایت، به ۲ فرد نیاز داریم.

اما در دنیای طراحی و برنامه نویسی وب اشخاصی هستند که به دلیل تجربه بالا در هرکدام از قسمت‌های Front End و Back End، میتوانند هر دو بخش ظاهر و سرور یک وبسایت را طراحی و برنامه نویسی کنند. برنامه نویسان Full Stack کسانی هستند که به تنهایی برای ساخت یک سرویس آنلاین خوب، کافی هستند و میتوانند یک نفره یک پروژه‌ی تقریبا بزرگ را مدیریت کنند.

آیا واقعا میتوان یک برنامه نویس فول استک واقعی بود؟

اما در پاسخ به سوال Full Stack چیست باید حواسمان به این نکته باشد که اگر مثلا ما میتوانیم هم با HTML-CSS کد بزنیم و هم PHP میدانیم، به این معنا نیست که از الان میتوانیم به خودمان یک Full Stack بگوییم.

یک برنامه نویس Full Stack شخصی است که مدت زیادی درگیر طراحی وب بوده است و بعد از آن نیز مدت زیادی خود را درگیر برنامه نویسی وب با یک زبان برنامه نویسی سمت سرور کرده است و به تمام پیچ و خم ها و نکات هر ۲ دنیای طراحی سایت واقف است.

معمولی کسی میتواند یک برنامه نویس Full Stack باشد که چندین سال سابقه‌ی کار در هر ۲ زمینه‌ی طراحی وب و برنامه نویسی وب را داشته باشد و به این راحتی‌ها نمیتوان در همان چند ماه ابتدای برنامه نویس بودمان، به خودمان یک Full Stack Developer بگوییم.

علاوه بر این، در پاسخ به سوال Full Stack چیست ، باید حواسمان به این نکته هم باشد:

یک برنامه نویس Full Stack علاوه از تسلط بر طراحی و برنامه نویسی وب، باید بتواند یک پیدا کننده‌ی مشکل حرفه‌ای (Debuger) باشد. همچنین باید توانایی بسیار خوبی در مدیریت سرور داشته باشد و همچنین از مدیریت پروژه نیز اندکی بداند. صرفا دانستن HTML,CSS,PHP, MySQL نمیتواند شما را یک برنامه نویس Full Stack کند!

در انتهای این مقاله‌ درباره مهارت های یک Full Stack Developer بیشتر صحبت خواهیم کرد.

آیا Full Stack Developer ها همه کارِ و هیچ کارِ هستند؟

تا الان به یک پاسخ خوبی درباره‌ی سوال Full Stack چیست رسیدیم. اما الان ممکن است این سوال برایتان پیش بیاید:

آیا میتوان هم طراحی وب را انجام داد و هم به برنامه نویسی آن مسلط شد و در کنار آن کلی مهارت دیگر مثل کار و مدیریت سرور، مدیریت پروژه و… را نیز دارا بود؟

و شاید با خودتان فکر کنید که کسی که همه‌ی این چیزها را میداند، اصطلاحا اقیانوسی به عمق ۱ سانتی متر است و درباره‌ی هرکدام از این مباحث یک دانش سطحی دارد.

در خصوص پاسخ به این سوال، باید چند نکته را بررسی کنیم:

Full Stack کارها با تجربه هستند

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

بسیار از طراحان و برنامه نویسان وب که حرفه‌ای هستند و عمق داستان را میدانند، از اینکه خودشان را یک برنامه نویس Full Stack بخوانند میترسند و از عنوان کردن اینکه «من یک برنامه نویس Full Stack هستم» ترس دارند. زیرا تبدیل شدن به یک برنامه نویس Full Stack، کاری زمان بر است و حاصل تجربیات چندین ساله‌ی شما خواهد بود.

پس به راحتی و صرفا به دلیل دانستن HTML, CSS, Javascript, PHP, MySQL و… نمیتوانید به خودتان یک برنامه نویس فول استک بگویید. ماجرا خیلی پیچیده تر از این حرف‌هاست

اما نهایتا …

در پاسخ به سوال Full Stack چیست ، باید این را بپذیریم که نهایتا هر فرد، بالاخره در یکی از زمینه‌های طراحی وب یا برنامه نویسی وب، قوی تر از آن یکی است.

من دوستان برنامه نویس Full Stack زیادی دارم و با برنامه نویسان Full Stack بسیار زیادی نیز همکاری داشته ام. اما آن‌ها نهایتا در یکی از زمینه‌ها قوی تر بوده‌اند. به این معنا که:

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

یعنی هرچقدر فرد هم یک Full Stack Developer باشد،‌ باز هم در یکی از زمینه‌های طراحی وب یا برنامه نویسی وب قوی تر است و یکی از نیم کره‌های مغز او بهتر کار میکند. برای مثال ممکن است یک فرد یک برنامه نویس Full Stack باشد و هم طراحی وب فوق العاده ای انجام دهد و هم برنامه نویس سمت سرور بسیار خوبی باشد، اما نهایتا خود آن فرد هم میداند که در یکی از این زمینه‌ها حرفه‌ای تر و بهتر است.

مهارت‌های یک برنامه نویس فول استک (Full Stack)

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

  • طراحی وب
  • طراحی رابط کاربری
  • برنامه نویسی وب
  • کار با پایگاه داده
  • هاست و سرور
  • توانایی کار با API ها
  • آشنایی با Version Controll System ها
  • توانایی مدیریت پروژه‌های نرم افزاری

در این مقاله و فایل ویدئویی سعی کردیم به سوال Full Stack چیست پاسخ دهیم. نظر شما چیست؟ طراح وب بودن بهتر است؟ یا برنامه نویس بودن؟ یا تبدیل شدن به یک Full Stack Developer؟ کدام یک آسان تر است؟

منبع: یادیفای

نوشته Full Stack چیست و به چه کسی برنامه نویس فول استک میگویند؟ اولین بار در ویرگول پدیدار شد.

گردآوری توسط ایده طلایی

Back End چیست و به چه کسی برنامه نویس بک اند میگویند؟

در مقاله ای دیگر در یادیفای درباره‌ی Front End و یا طراحی سمت وب صحبت کردیم. در این مقاله میخواهیم درباره برنامه نویسی سمت وب، یا برنامه نویسی بک اند یا Back End Development صحبت کنیم و تمام آن چیزی که نیاز دارید را بررسی کنیم. این مقاله و فایل آموزشی میتواند به سوال Back End چیست پاسخ دهد و شما را برای تبدیل شدن به یک برنامه نویس وب (یا برنامه نویس سمت وب یا برنامه نویس Server Side) آماده کند.

https://www.aparat.com/v/yTC1G

Back End چیست

اگر بخواهیم به سوال Back End چیست پاسخ دهیم، در مرحله‌ی اول خیلی خوب است که به دنبال معنی واژه‌ی Back در دیکشنری باشیم. در فست دیک، واژه‌ی Back اینگونه معنا شده است:

Back: عقب، پشت (بدن)، پس، عقبی، گذشته، پشتی، پشتی کنندگان، تکیه گاه، به عقب، درعقب، برگشت (و…)

همانطور که میبینید، یکی از اصلی ترین معانی واژه‌ی Back، پشت می‌باشد. و دقیقا این معنی با کاری که برنامه نویسی اند میکند ارتباط دارد.

وقتی از برنامه نویسی بک اند صحبت میکنیم، منظورمان تمام آن کارهایی است که در پشت صحنه انجام میشود و کاربر آن‌ها را نمیبیند.

ما در تعریف طراحی/برنامه نویسی فراند اند گفتیم:

طراحی یا کدنویسی هر آن چیزی که مربوط به جلوی وبسایت میشود. در واقع یک طراح وب یا یک Front End Developer، کسی است که چیزی را طراحی میکند کاربر آنرا میبیند.

اما برنامه نویسی بک اند (Back End)،‌ دقیقا آن سوی ماجرا قرار دارد. اگر بخواهیم به سوال Back End چیست خیلی ساده پاسخ دهیم، میتوانیم بگوییم:

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

مقایسه با فرانت اند

یک نکته‌ی خیلی جالب در تفاوت برنامه نویسی فرانت اند (Front End) و برنامه نویسی بک اند (Back End) وجود دارد. و آن هم نمایان بودن یا نبودن کدهای آن برای کاربران سایت شماست.

وقتی که شما در حال طراحی وب با تکنولوژی هایی مثل HTML, CSS, Javascript و… هستید، تمام کدهایی که نوشتید را کاربر میتواند به راحتی ببیند. زیرا آن کدها مربوط به کاربر هستند و به آن‌ها دسترسی مستقیم دارد.

اما وقتی شما در حال کدنویسی بک اند هستید و مثلا با زبانی مثل PHP کد نویسی میکنید، کاربر هیچ وقت هیچ دسترسی ای نمیتواند به کدهای شما داشته باشد. به این دلیل که این کدها سمت سرور پردازش و اجرا میشوند و کاربر به هیچ وجه نمیتواند آن‌ها را ببیند،‌ بلکه فقط نتیجه‌ای که ایجاد میکنند را مشاهده میکند.

برای اطلاعات بیشتر و درک بهتر سوالBack End چیست پیشنهاد میکنیم این مقاله را حتما مطالعه کنید: Front End چیست و به چه کسی برنامه نویس فرانت اند میگویند؟

Server Side و Client Side به چه معنا هستند.

در آینده حتما در خصوص تفاوت Server Side و Client Side بیشتر صحبت خواهیم کرد. اما برای اینکه بتوانیم به سوال Back End چیست بهتر پاسخ دهیم، خیلی خوب است که این دو مفهوم را کمی توضیح دهیم.

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

Client Side

از آن‌جایی که Client به معنای مشتری است، Client Side هم به معنی زبان‌هایی است که سمت کاربر کار میکنند. برای مثال میتوان به HTML, CSS, Javascript و… زبان‌های سمت کاربر و Client Side نیز بگوییم. و به مجموع کاری که این زبان‌ها انجام میدهند، طراحی وب یا Front End Development میگوییم.

Server Side

همانطور که از اسم این عبارت پیداست، زبان‌هایی که در این دسته بندی قرار میگیرند، روی سرور اجرا میشوند و برای اجرا شدن به یک سرور نیاز دارند. برای مثال زبان‌هایی مثل PHP یا ASP.NET برای اجرا حتما به یک سرور نیاز دارند،‌ که این سرور هم میتواند یک سرور واقعی در دنیای آنلاین باشد و هم یک شبیه ساز سرور یا لوکال هاست (Localhost). به زبان‌های برنامه نویسی‌ای که سمت سرور اجرا میشوند، زبان‌های Server Side و به مجموع کاری که این زبان‌ها انجام میدهند، برنامه نویسی بک اند یا Back End Development میگویند

همان مثال تئاتر

در مطلبی که به سوال Front End چیست پاسخ دادیم، گفتیم که طراحی وب و برنامه نویسی وب را میتوانیم به یک سالن تئاتر تشبیه کنیم. حالا دوباره همان مثال را میزنیم که پاسخ سوال Back End چیست برایمان واضح تر شود

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

و تمام کسانی که در پشت صحنه فعالیت میکنند، مثل طراح لباس، کارگردان، نویسنده، تهیه کننده و… که تماشاچیان آن‌ها را نمیبینند، ولی در پشت صحنه کار میکنند و کارشان روی اجرا تاثیر دارد را میتوانیم Back End یک اجرای تئاتر بنامیم.

در وب هم دقیقا به همین صورت است. تمام آن چیزی که کاربر در صفحه مانیتور خود میبیند مربوط به Front End میشود، و تمام آن چیزی که در پشت صحنه اجرا میشود، مربوط به Back End میشود.

مهارت‌های یک برنامه نویس Back End چیست

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

زبان برنامه نویسی سمت سرور

برای برنامه نویسی سمت سرور یا برنامه نویسی بک اند، اولین چیزی که نیاز دارید، یک زبان برنامه نویسی‌ای است که سمت سرور اجرا شود. برای مثال زبانی مثل PHP یک زبان برنامه نویسی Back End است که باید روی سرور اجرا شود. پر در اولین قدم شما به یک زبان برنامه نویسی نیاز دارید.

پایگاه داده

دومین چیزی که حتما و قطعا به آن نیاز دارید، پیدا کردن تسلط به یک دیتابیس (Database) یا پایگاه داده است.

میتوان گفت که اصلی ترین کار زبان های برنامه نویسی سمت سرور، توانایی ارتباط برقرار کردن آن‌ها با دیتابیس است.

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

مباحث پیشرفته زبان برنامه نویسی

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

برای مثال در برنامه نویسی PHP،‌ شما اگر بتوانید کدتان را به شیوه‌ی شی گرایی (Object Oriented) بنویسید، کد شما میتواند خیلی تمیزتر، سریع‌تر و حرفه‌ای تر باشد.

توانایی حل مسئله

وقتی در خصوص برنامه نویسی سمت سرور یا Back End  صحبت میکنیم، یکی از چیزهایی که برای شما ضروری است،‌توانایی حل مسئله و داشتن یک ذهن تحلیل‌گر است.

داشتن ذهن تحلیلگر، یکی از مهم‌ترین ویژگی هایی است که هر برنامه نویسی باید از آن بهره ببرد.

خبر خوب این است که این ذهن تحلیلگر،‌ ارثی نیست و میتوان آن‌را بدست آورد!

در آینده حتما در خصوص توانایی حل مسئله صحبت خواهیم کرد.

سوال پرسیدن

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

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

در این مقاله بصورت کامل سعی کردیم به سوال Back End چیست پاسخ دهیم و تمام آن چیزی که نیاز دارید را در اختیارتان قرار دهیم.

نظر شما چیست؟ به نظر شما برای تبدیل شدن به یک برنامه نویس وب خوب،‌ به چه مهارت‌هایی نیاز داریم؟

منبع: یادیفای

نوشته Back End چیست و به چه کسی برنامه نویس بک اند میگویند؟ اولین بار در ویرگول پدیدار شد.

گردآوری توسط ایده طلایی

طراحی وب چیست؟ همه چیز درباره‌ی طراحی وب سایت (web design)

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

طراحی وب چیست

در مقاله ای به نام برنامه نویسی چیست، درباره‌ی برنامه نویسی توضیحات ساده‌ای را ارائه دادیم. در این فایل آموزشی میخواهیم به این سوال پاسخ دهیم: طراحی وب چیست

اگر به دنبال یک پاسخ خیلی ساده ولی کاربردی برای سوال طراحی وب چیست هستید، فیلم زیر را مشاهده کنید

https://www.aparat.com/v/3VbeP

وب چیست؟

اگر بخواهیم به سوال طراحی وب چیست پاسخ بدهیم، اول باید بدانیم که وب چیست و به چه چیزی وب میگویند. در زیر یک تعریف بسیار ساده (و شاید تا حدودی اشتباه از لحاظ فنی) از وب ارائه میدهیم:

وب یا همان شبکه جهانی یا World Wide Web که به اختصار www نامیده میشود، همان چیزی است که امروزه به آن اینترنت میگوییم. امروزه از طریق یک مرورگر و با اتصال به این شبکه‌ی جهانی، میتوانیم به تمام اطلاعات درون آن دسترسی داشته باشیم.

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

وب سایت چیست؟

بعد از پاسخ به سوال وب چیست ، میرسیم به وب سایت. حتما شما هم بارها اسم وب سایت به گوشتان خورده است. میخواهم با یک مثال مفهوم وبسایت را برایتان توضیح دهم.

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

طراحی وب چیست؟

با مفهوم وب سایت نیز آشنا شدیم. حالا میخواهیم برسیم به سوال اصلی خودمان: طراحی وب چیست .

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

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

پس در پاسخ به سوال طراحی وب چیست میتوانیم بصورت بسیار ساده بگوییم: هر آن چیزی که کمک میکند وبسایت ما بهتر و زیباتر دیده شود را طراحی وب میگوند.

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

طراحی وب را با برنامه نویسی وب اشتباه نگیرید!

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

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

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

طراح وب کیست و چه وظایفی دارد؟

تا اینجا درباره‌ی طراحی وب صحبت کردیم و الان پاسخ دادن به سوال « طراحی وب چیست » برایمان کار زیاد سختی نیست. حالا میخواهیم درباره‌ی وظایف یک طراح وب صحبت کنیم و بگوییم که یک طراح وب چه کاری باید انجام دهد.

طراح وب یا به اصطلاح Front End Designer کسی است که با استفاده از تکنولوژی‌های مختلف (مثل HTML – CSS – Javascript و … ) ظاهر یک سایت را طراحی میکند و کاری به کدهای پشت صحنه ندارد.

ممکن است برایتان سوال پیش بیاید که Front End چیست و چه تفاوتی با Back End دارد. سوال بسیار خوبی است که در فیلم و مقالات آموزشی آینده حتما درباره آن صحبت میکنیم.

زبان های طراحی وب

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

یک طراح وب، برای اینکه بتواند یک صحفه‌ی وب را طراحی کند، از تکنولوژی های زیر استفاده میکند:

  • HTML (یا HTML5)
  • CSS (یا CSS3)
  • جاوا اسکریپت
  • جی کوئری
  • و…

۴ موردی که در بالا نام بردیم، حداقل دانشی است که شما برای طراحی صفحات وب و تبدیل شدن به یک طراح وب نیاز دارید. البته میتوانید فقط با ۲ مورد اول یعنی HTML و CSS نیز سایت هایی را طراحی کنید،‌ ولی جاوا اسکریپت و جی کوئری میتوانند به کار شما بسیار قدرت دهند.

باید به این نکته توجه کنیم که به دلایلی نمیتوانیم به HTML و CSS زبان های برنامه نویسی بگوییم. زیرا اصلا ویژگی های زبان های برنامه نویسی را ندارند. بلکه آن‌ها را  زبان های نشانه گذاری یا تگ گذاری میدانیم.

برای طراحی وب به چه ابزارهایی نیاز داریم

تا اینجا سعی کردیم به سوال طراحی وب چیست پاسخ دهیم. حالا میخواهیم ببینیم که برای طراحی وب به چه ابزارهایی نیاز داریم.

برای طراحی صفحات اینترنتی، نیاز به داشتن امکانات پیچیده نیست. حداقل هایی که نیاز داریم را در زیر مشاهده میکنید:

  • یک محیطی که بتوانیم کدهایمان را در آن بنویسیم. این محیط میتواند Notepad ویندوز باشد و یا یک Text Editor یا IDE حرفه‌ای تر(مثل phpStorm)
  • یک مرورگر اینترنتی (Browser) که بتوانیم کدهایمان را از طریق آن اجرا کنید (مثل فایرفاکس، گوگل کروم و…)

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

منبع: یادیفای

نوشته طراحی وب چیست؟ همه چیز درباره‌ی طراحی وب سایت (web design) اولین بار در ویرگول پدیدار شد.

گردآوری توسط ایده طلایی

باگ امنیتی جدید در افزونه Duplicator وردپرس

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

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

خود Duplicator این موضوع را به کرات به کاربر گوشزد می کند، ولی خب طبیعتا ما ایرانی ها علاقه چندانی به توجه به پیغام های هشدار و یا حتی خوندن آن ها نداریم و با بی توجهی ازش می گذریم 🙂

بعد از پایان کار افزونه، این پیغام به صورت sticky داشبورد نمایش داده میشه و تا زمان پاک کردن فایل های نصبی (و یا uninstall کردن افزونه) باقی می ماند:

پیغام sticky

فایل های مخرب اصلی در این باگ، دو فایل installer.php و installer-backup.php هستند و چون استرینگ های دریافتی را اصطلاحا بدون تمیز کاری (sanitizing)‌ مستقیما به فایل wp-config وارد می کنند باعث به وجود آمدن injection vulnerability در سایت می شوند.

راه حل چیه؟‌

  • اولا Duplicator را آپدیت کنید. چون patch مربوط به باگ توسط شرکت صادر شده که تا حد زیادی مشکل رو رفع می کنه.
  • فایل هایی که دربارش صحبت شد (installer.php and installer-backup.php) و یا هر فایل دیگه ای که مربوط به بازگردانی بک آپ توسط افزونه میشه را از روی هاست خود پاک کنید. ممکنه فایل هایی با اسم database.sql را هم ببینید که باید حذف بشه.
  • جهت اطمینان رمز دیتابیس وردپرس را ریست کنید.
  • باز هم جهت اطمینان، فایل wp-config.php را پاک کنید و مجددا بسازید. از این API وردپرس استفاده کنید تا کلید های امنیتی برای فایل بسازید و در آن جایگزین کنید.

در آخر هم یادتون باشه که از این به بعد اگر از اینچین افزونه هایی استفاده کردید حتما پس از پایان کار فایل های اضافی را پاک کنید .

نوشته باگ امنیتی جدید در افزونه Duplicator وردپرس اولین بار در ویرگول پدیدار شد.

گردآوری توسط ایده طلایی