برنامه نویسی از پایه
203 subscribers
46 photos
67 videos
8 files
75 links
کانال پشتیبان برنامه نویسی از پایه
آدرس کانال آپارات:
https://www.aparat.com/djangolearn
آدرس کانال یوتیوب:
https://www.youtube.com/c/DjangoLearn
Download Telegram
Forwarded from جنگولرن
آیا همیشه بهتره از آخرین نسخه پایتون برای همه پروژه ها استفاده کنیم؟
نظر چند تا از دوستان با تجربه در این مورد:

✔️یکسری پکیج هایی که اپدیت ندادن از ۳.۹ به ۳.۱۰ نیاز به یکسری تغییرات ریز دارن که باید فورک کنی دستی اپدیت کنی. ولی من خودم از ۳.۱۰ استفاده میکنم همه جا

✔️چون رو ۳.۱۰ یک تایمی انقدر سر پکیج ها ارور خوردم اومدم ۳.۹ همچی اوکی بود و اینکه الان دیفالت ۳.۱۰ وصله اوکی، ولی قدیمی ها روی ۳.۸ و ۳.۹ موندن دیگ

✔️تقریبا تمام پروژه هایی که تجاری هستن پایتون ۳.۸ و ۳.۹ استفاده میکنم. پروژه های استارتاپی و شخصی و ... آخرین نسخه پایتون (فکرکنم ۳.۱۱) برای من اینطوریه. روی همین ۳.۸ و ۳.۹ تا حالا چندین بار سر package conflict سرویس شدیم جرات نداریم بالاتر ببریم توی پروژه هایی که حساسن

🙏🏻 شما هم نظر خودتون رو بدید (خصوصی هم بگید اوکیه). نظرات بقیه رو هم به کامنت ها اضافه میکنم
👍1
Media is too big
VIEW IN TELEGRAM
برنامه نویسی از پایه قسمت پنجاه و دوم - ignore کردن فایل commit شده

در شروع این ویدئو میخواستیم ببینم که جلسه قبل چکار کردیم که با مشکل پوش شدن تنظیمات pycharm مواجه شدیم. یعنی تنظیمات پایچارم روی سیستم خودمون داشت به گیت منتقل میشد و ایرادش توی کار تیمی مشخص میشه. ابتدا تلاش کردیم که به gitignore اضافه اش کنیم. ولی مشکل همچنان وجود داشت. برای رفع این مشکل با دستوراتی مثل git status, git rm --cached, git commit, git push, git pull , git add آشنا شدیم. بعدش یاد گرفتیم چطور از سایت گیت هاب فایل حذف کنیم و کامیت کنیم. در ادامه یا گرفتیم که چه وقتهایی باید کامیت کنیم و چه فایل هایی رو باید با همدیگه commit کنیم. یه اشاره هایی هم به branch و merge داشتیم و فهمیدیم که شرکت های برنامه نویسی برای مدیریت پروژه و نحوه commit کردن ها، اصول خودشون رو دارن. در انتهای ویدئو هم یه باگ رو برطرف کردیم.

لینک آپارات:
https://www.aparat.com/v/Yl0gC
لینک یوتیوب:
https://youtu.be/ewHoQZw_1m4
👍3
Media is too big
VIEW IN TELEGRAM
برنامه نویسی از پایه قسمت پنجاه و سوم - ارث بری template در جنگو

در ابتدای این ویدئو توی سایت w3schools لاگین کردم و پروفایل و بقیه قسمت های دیگه اش رو بررسی کردم. توی این بررسی با مفهوم sub-domain آشنا شدیم. بعد از اون رفتیم توی داکیومنت های جنگو و در مورد template inheritance یا ارث بری تمپلت ها در جنگو مطالعه کردیم و در ادامه یه فایل html با اسم account_base.html ساختیم و تمپلت های لاگین و ثبت نام رو طوری تغییر دادیم که از این تمپلت ارث بری کنن و در ادامه همین کار با مفهوم extends و block هم آشنا شدیم. البته حین اعمال این تغییرات خودم یکم قاطی کردم ولی زود متوجه داستان شدم :)

لینک آپارات:
https://aparat.com/v/Avjl3
لینک یوتیوب:
https://youtu.be/jj_GMTkd9EI
👍2
Media is too big
VIEW IN TELEGRAM
برنامه نویسی از پایه قسمت پنجاه و چهارم- مدل OSI چیست

این قسمت بهراد آنلاین شد و فرمون رو دستش گرفت. ابتدای ویدئو فهمیدیم چرا برنامه نویس وب باید مفاهیم وب و شبکه و... رو بدونه. و در مورد کلمه پروتکل یاد گرفتیم. بعدش در مورد انتزاع و صحبت کردیم و بهراد خیلی خوب توضیح اش داد. در ادامه اشاره ای به شی گرایی هم داشتیم. بعدش در مورد مدل osi و هفت لایه اش صحبت کردیم. و بهراد همه لایه هارو توضیح داد. بعدش در مورد HTTP و تاریخچه اش صحبت کردیم و بهراد در مورد RFC توضیح داد. در انتهای ویدئو هم در مورد مفهوم client-server صحبت کردیم و ساختار یک رکوئست http رو قرار شد جلسه بعدی در موردش صحبت کنیم.

لینک آپارات:
https://www.aparat.com/v/ZU7wC
لینک یوتیوب:
https://youtu.be/LIcrl3evr94
👍3
Media is too big
VIEW IN TELEGRAM
برنامه نویسی از پایه قسمت پنجاه و پنجم - ساختار HTTP Request

این قسمت هم بهراد (@TadavomnisT_channel) پشت فرمون بود و ابتدای جلسه کتاب Computer Networking: A Top Down Approach رو معرفی کرد. در ادامه شروع کرد ساختار یک رکوئست HTTP رو توضیح داد حین توضیحاتش Metadata هم به صورت عملی توضیح داد و یه نکته امنیتی هم در موردش بهم گوشزد کرد. بعدش در مورد جزییات رکوئست توضیح داد و با line-feed charachter و carriage return charachter هم آشنا شدیم. بعدش جزییات Header هم ازش یاد گرفتیم.بعدش در مورد HTTP response توضیح داد و جزییاتش رو برامون شرح داد و یاد گرفتیم body توی response چیه. توی این قسمت بهراد بصورت عملی request و response رو بهم نشون داد. در ادامه در مورد مفهوم stateless بودن پروتکل http یاد گرفتیم و در ادامه خیلی جالب cookie و session رو هم توضیح داد. و حتی خطر cookie هم به ما توضیح داد. در ادامه اشاره هایی هم به non-persistent HTTP و persistent HTTP داشت. و در انتهای جلسه هم در مورد caching و get و post صحبت کردیم.
لینک آپارات:
https://aparat.com/v/6KTXu
لینک یوتیوب:
https://youtu.be/qexGg_FccoY
👍2
Media is too big
VIEW IN TELEGRAM
برنامه نویسی از پایه قسمت پنجاه و ششم - شروع به پیاده سازی منو W3Schools

ابتدای این قسمت توی سایت W3Schools لاگین کردم و بخش پروفایلش رو بررسی کردیم که قراره چه چیزی رو پیاده سازی کنیم. بعدش با استفاده از developer tools مرورگر کدهای سایت W3Schools رو بررسی کردیم که چطور منو و بخش های مختلف profile رو پیاده سازی کرده. متوجه شدیم که از flex box استفاده کرده و ما هم ازش استفاده می کنیم. توی این قسمت یکم در مورد قابلیت های HTML5 هم تحقیق کردیم و فهمیدم که بهتره از تگ هایی مثل header, footer, nav, section, article و ... استفاده کنیم تا موتورهای جستجوگر بهتر بتونن با سایت ما ارتباط برقرار کنن و توی نتایج اول گوگل باشیم. بعدش شروع به ساختن منو کردیم و با flex, flex-direction, flex-wrap, justify-content, gap و... هم توی css آشنا شدیم. البته فراموش کردیم که استایل هارو به فایل های css اضافه کنیم که توی جلسه بعدی درستش می کنم. ان شاالله

لینک آپارات:
https://www.aparat.com/v/9jyEn

لینک یوتیوب:
https://youtu.be/KEGESJT_hbo
👍2
Media is too big
VIEW IN TELEGRAM
برنامه نویسی از پایه قسمت پنجاه و هفتم - اعمال استایل های flex

توی این قسمت اول از همه، استایل هایی که قسمت بعدی با developer مرورگر اعمال کرده بودیم رو توی styles.css اضافه کردیم. بعد commit کردیم که توی ریپازیتوری گیت اونارو داشته باشم. بعدش تلاش کردیم که منو رو fixed کنیم و توی این مسیر نکاتی با هم یاد گرفتیم. البته یاد گرفتیم که html و css واقعا نیاز به تخصص داره و به همین دلیل هست که بعضی برنامه نویس های back-end اینقدر ازش فراری هستن. کاری که من توی 40 دقیقه انجام دادم، شاید کار 5 دقیقه یه برنامه نویس فرانت باشه. امیدوارم توی این مسیر و با همدیگه دانش خودمون در زمینه html و css بیشتر کنیم.

لینک آپارات:
https://www.aparat.com/v/1XVkl

لینک یوتیوب:
https://youtu.be/ehqI1EEkPkU
👍2
Media is too big
VIEW IN TELEGRAM
برنامه نویسی از پایه قسمت پنجاه و هشتم - اصلاح کلاس ها

بعد از یکم مطالعه درباره BEM, html, css, felxbox, css grid یه نگاه دیگه به کدهایی که نوشتم انداختم و متوجه شدم بعضی کلاس ها طبق BEM نامگذاری نشدند. در واقع اشتباه نامگذاری شده بودند. لذا توی این ویدئو نکات BEM رو بررسی کردم و در نهایت ایراد های نامگذاری class هارو برطرف کردم.

لینک آپارات:
https://aparat.com/v/CiPIr

لینک یوتیوب:
https://youtu.be/ymayBRRq8Mw
👍4
Media is too big
VIEW IN TELEGRAM
برنامه نویسی از پایه قسمت پنجاه و نهم - کاربر لاگین شده در Django

توی این قسمت یاد گرفتیم اگه کاربر لاگین باشه. چطور منوهارو براش تغییر بدیم. و با is authenticated و روش استفاده اون آشنا شدیم. بعدش تغییراتی در کد اعمال کردیم که وقتی کاربر لاگین شده صفحه signin رو باز کنه به صفحه index ما redirect بشه. این حرکت یه مشکل امنیتی به اسم social media fingerprinting داره که در موردش یکم توضیح دادم و عملی متوجه شدیم چکار میکنه.

لینک آپارات:
https://www.aparat.com/v/liVTB
لینک یوتیوب:
https://youtu.be/JPaIskKeo8I
👍3
Forwarded from جنگولرن
تمرین css grid با بازی Grid Garden 😊

لینک:
https://cssgridgarden.com/
👍1
Media is too big
VIEW IN TELEGRAM
برنامه نویسی از پایه قسمت شصتم - اضافه کردن داشبورد

این قسمت رو با اضافه کردن اپ جدید شروع کردیم و اتفاقی با ماژول پروفایل و مفهوم profiler در پایتون آشنا شدیم. بعدش با مشکل cache مواجه شدیم و حلش کردیم. در ادامه متوجه شدیم که وقتی از یک تمپلت ارث بری می کنیم، جنگو اولویت استفاده از تمپلت base رو براساس app هایی که توی installed_app هستن تنظیم میکنه. و اگه دو تا base همنام داشته باشیم اولویت با اونی هست که بالاتر به installed_app اضافه شده. بعدش با flex-grow و justify-content و align-items توی css آشنا شدیم. در ادامه با مفهوم Semantic elemnts توی HTML5 هم بیشتر آشنا شدیم و بهترین روش برای نوشتن کدهامون رو از اینترنت سرچ کردیم. در نهایت بعد از ۳۰ دقیقه تونستیم یه تگ h1 به پروژه اضافه کنیم. عجب سرعت عملی

لینک آپارات:
https://www.aparat.com/v/qkZw3

لینک یوتیوب:
https://youtu.be/bvGGQ-7HKiY
👍1
Media is too big
VIEW IN TELEGRAM
برنامه نویسی از پایه قسمت شصت و یکم - اصلاح کدها

توی این قسمت که حدودا ۱۰ دقیقه است. یه ایرادی رو برطرف کردیم که توی جلسه قبلی بهش دقت نکرده بودیم. بعدش باز یکم در مورد display direction و مفاهیم felx یاد گرفتیم. در نهایت هیچی به کدهای html اضافه نشد. و همچنان عجب سرعت عملی :)

لینک آپارات:
https://www.aparat.com/v/8q4y5
لینک یوتیوب:
https://youtu.be/YCgdErR2wBA
👍2
Media is too big
VIEW IN TELEGRAM
برنامه نویسی از پایه قسمت 62 - اضافه کردن تصویر پروفایل
در این ویدئو بعد از نیم ساعت تلاش تونستم یه div رو گرد کنم و بهش سایه بدم. و با استفاده از flex متن توی div رو وسط چین کنم.

لینک آپارات:
https://www.aparat.com/v/spjut
لینک یوتیوب:
https://youtu.be/vUQtyqjA-1A
👍3
Forwarded from جنگولرن
Media is too big
VIEW IN TELEGRAM
بخشی از آپدیت جدید دوره ساخت فروشگاه اینترنتی با جنگو

لینک ویدئو در آپارات:
https://www.aparat.com/v/42cSP

لطفا ایرادهایی که توی این قسمت دیدید. خصوصی برای @miladhzz بفرستید.
👍2
Forwarded from جنگولرن
This media is not supported in your browser
VIEW IN TELEGRAM
بخشی از آپدیت جدید دوره ساخت فروشگاه اینترنتی با جنگو
✔️ چرخه حیات Request در جنگو

لینک ویدئو در آپارات:
https://www.aparat.com/v/npWM2

هر مشکل یا ابهامی دیدید. خصوصی به @miladhzz پیام بدید
👍2
Forwarded from جنگولرن
Media is too big
VIEW IN TELEGRAM
شی گرایی چیست؟

بخشی از آپدیت جدید دوره فروشگاه اینترنتی
✔️این قسمت مفهوم شی گرایی رو خیلی ساده توضیح دادم.
هر انتقاد یا پیشنهادی به این قسمت دارید به @miladhzz پیام بدید.
تشکر
Forwarded from جنگولرن
یادگیری شی و کلاس با Clash of Clans

در جلسه پنجاه و ششم از دوره رایگان زبان پایتون، به معرفی شی (object) و کلاس (class) با استفاده از بازی کلش آو کلنز پرداختیم.
مدرس: احمد احمدی

لینک آپارات:
https://www.aparat.com/v/4TwKO
👍1
Forwarded from جنگولرن
مطلبی از لینکدین Saeed Shahrivari Joghan
لینک پست در کامنت

سری مهندسی نرم‌افزار: پست1
اولین پست سری مهندسی نرم‌افزار رو با تعریف خود نرم‌افزار شروع می‌کنم. شاید در نگاه اول تعریف نرم‌افزار برای اغلب افراد کامپیوتری خیلی بدیهی باشه اما بد نیست همین الان بهش فکر کنیم که تعریف نرم‌افزار چیه؟ اغلب بنا به تجربه من تعریفش سخته، چون بدیهیه!
تعاریفی که معمولا من شنیدم یه چیزایی مثل این عباراته:
- مجموعه‌ای از کدهای قابل اجرا توسط کامپیوتر
- هر چیزی به جز سخت‌افزار که باعث اجرای فرمانهای انسان رو ماشین بشه

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

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

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

برای اینکه این اصل رو همیشه به ذهن بسپریم میشه همچین معادله ساده‌ای رو داشت:
نرم‌افزار = کد + داده + مستندات

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

عناوین کتاب‌ها:
Software Engineering: A Practitioner's Approach, Pressman
Software Engineering, Sommerville
Forwarded from جنگولرن
سری مهندسی نرم‌افزار: پست 2
از لینکدین Saeed Shahrivari Joghan
لینک پست در کامنت

سری مهندسی نرم‌افزار: پست 2
در پست قبلی راجع به نرم‌افزار صحبت کردم و به این رسیدیم که نرم‌افزار شامل کد،داده، و مستندات میشه:
https://lnkd.in/d5Dwkxbt

حالا میخوام یه مقداری راجع به مهندسی نرم‌افزار صحبت کنم. اجازه بدید چند تعریف معروف رو ببینیم:
- «یک نظام مهندسی که شامل هرچیزی درباره تولید نرم‌افزار میشه» از سامرویل
- «پایه گذاری و استفاده از اصول مهندسی برای تولید نرم‌افزار اقتصادی و کارآمد» از بایر
- «استفاده از یک رویکرد سیستماتیک،منظم، و قابل سنجش برای توسعه، عملیات، و نگه‌داشت نرم‌افزار» از IEEE

من اگه بخام نکات مهم در تعاریف بالا رو خلاصه کنم میتونم بگم که:
۱- مهندسی نرم‌افزار یک رویکرد منظم و مهندسی شده باید باشه که شامل فرآیندی کارآمد و قابل سنجش میشه
۲- خروجی مهندسی نرم‌افزار باید یک محصول نرم‌افزاری خوب و باکیفیت و مقرون به صرفه و ... باشه (که فعلا از این ویژگی‌ها می‌گذریم)
۳- به صورت طبیعی باید در این فرآیند مهندسی از ابزارهای مناسبی هم برای توسعه، عملیات، و نگه‌داشت استفاده بشه

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

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

hashtag#software
hashtag#softwareengineering
Forwarded from جنگولرن
سری مهندسی نرم‌افزار: پست 3
از لینکدین Saeed Shahrivari Joghan
لینک پست در کامنت

احتمالاً در صحبت با دوستان و همکاران یا در فضای مجازی به کتاب‌های پیشنهادی متعددی برای مطالعه (مثلاً کتاب کد تمیز) برخورد کرده باشید. با وجود اینکه مطالعه این کتاب‌ها مفیده اما از دید من کتاب‌های مهمتر و پایه‌ای‌تری برای مطالعه قبل از این کتاب‌ها وجود داره که بهتره اول در اون زمینه‌ها مفاهیم پایه‌ای رو به طور صحیح یاد بگیریم.
از دید من یه مهندس نرم‌افزار باید در ۷ حوزه، مطالعات پایه‌ای مناسبی داشته باشه:
- برنامه نویسی
- ساختار داده‌ها و الگوریتم
- معماری کامپیوتر
- پایگاه داده
- سیستم عامل
- شبکه‌های کامپیوتری
- مهندسی نرم‌افزار

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

https://vrgl.ir/jl1SF
👍1
Forwarded from سید فرندز / برنامه نویسی / هک و امنیت / تکنولوژی (M.KH)
آموزش برنامه نویسی رایگان

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

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

- دوره نیاز به ثبت نام نداره
- این دوره به صورت لایو توی یوتیوب برگزار میشه
https://www.youtube.com/@SeYeDBax
- ویدیو ها توی یوتیوب بارگزاری میشه و لینکش توی کانال @makedeveloper گذاشته میشه
- لایو آموزش در روز های زوج (شنبه / دوشنبه / چهارشنبه) به استثنای روز های تعطیل رسمی برگزار میشه
- در طول دوره از شما امتحان هم گرفته میشه و همچنین تمرین هم میدیم
- توی دوره زبان برنامه نویسی پایتون و جاواسکریپت آموزش داده میشه و فریمورک های وب معروف برای این زبان ها

👇 کانال اطلاع رسانی دوره 👇
@SEYED_BAX
Please open Telegram to view this post
VIEW IN TELEGRAM