Syntax | سینتکس
الذهاب إلى القناة على Telegram
Focus: Web Lan: Python & Go Website: https://syntaxfa.ir Quick connect: https://quick-connect.syntaxfa.ir Github: https://github.com/syntaxfa Group: https://t.me/Syntax_fa_group
إظهار المزيد3 261
المشتركون
-224 ساعات
+77 أيام
+230 أيام
أرشيف المشاركات
3 261
https://chrome.google.com/webstore/detail/eimadpbcbfnmbkopoojfekhnkhdbieeh
یه افزونه عالی برای اینکه همه وب سایت هارو بصورت dark ببینید.
#Introduce
@Syntax_fa
3 261
پاسخ:
یکی از روش ها استفاده از یک رفرنس تایپ هستش. مثل class ها
روش اول:
class MutableInteger:
def __init__(self, number):
self.number = number
def __add__(self, other):
self.number += other
def __str__(self):
return str(self.number)
def plus(number: MutableInteger):
number += 1
if __name__ == "__main__":
num = MutableInteger(1)
plus(num)
print(num)
روش بعدی استفاده از متغیر های گلوبال هستش:
def plus():
global number
number += 1
if __name__ == "__main__":
global number
number = 1
plus()
print(number)
#Problems
@Syntax_fa3 261
مسئله هفتم (پایتون)
سطح: ساده
ما همچین کدی را داریم:
def plus(...):
...
if __name__ == "__main__":
number = ...
plus(number)
print(number)
تابع plus کارش این است که number را به علاوه یک کند.
چگونه امکان دارد number زمانی که در تابع plus به علاوه یک می شود، موقع پرینت هم مقدارش بیشتر شده باشد؟
#Problems
@Syntax_fa3 261
چند نکته درباره stack و heap
در صورت کلی می توان گفت value type ها مانند integer و boolean در stack ذخیره می شوند و reference type ها و دیتایی که ساختار پیچیده تری دارد در heap ذخیره می شوند(برای مثال در اکثر زبان های برنامه نویسی string در heap ذخیره می شود).
یکی از تفاوت های بزرگ بین stack و heap در این است که استک توسط CPU مدریت می شود. برای مثال اگر شما در یک متد چند تا value type تعریف کنید، پس از اینکه از متد خارج شدید بصورت خودکار از اخر به اول مقادیری که تعریف کردید حذف می شوند.
اما در reference type ها اتفاقی که می افتاد این است ما به عنوان مقدار آدرس حافظه آن را که در heap قرار دارد ذخیره می کنیم و وقتی که از داخل stack پاک می شود فقط آدرسی که داده بودیم پاک شده است و هنوز هم داخل heap وجود دارد.
مدریت heap توسط خود برنامه نویس و یا قابلیت garbage collector که در اکثر زبان های برنامه نویسی وجود دارد انجام می شود. اگر garbage collector موفق به آزاد کردن حافظه نشود باید خود برنامه نویس بصورت دستی این کار را انجام دهد در غیر این صورت memory leak اتفاق می افتد.
یکی از تفاوت های ترد و پراسس در این است که هر ترد برای خودش stack جدا دارد اما برخلاف پراسس heap جداگانه ای ندارد و از یک heap مشترک استفاده می کنند.
(چند تا نکته، شما توی کامنت اضافه کنید)
#stack #heap
@Syntax_fa
3 261
یه وب سایت دیگه که آقای سعید برای بنچمارک و مقایسه زبان ها معرفی کردن
https://www.techempower.com/benchmarks
#Benchmark
@Syntax_fa
3 261
بیاید این گروه آهنگ بفرستیم (چت نکنید فقط آهنگ بفرستید موقع کد زدن گوش بدیم)
https://t.me/+jgNOc1-_LaRkOTlk
3 261
مقایسه زبان ها بر اساس
http server
pi digit
binary tree
nbody
json serialization
https://programming-language-benchmarks.vercel.app/
#Benchmark
@Syntax_fa
3 261
کامپایلر AOT و JIT
کامپایلر های Ahead Of Time مستیم کد ما را تبدیل به machine code می کنند اما در کامپایلر های Just In Time کد ما تبدیل به یک کد میانی Bytecode می شود و در زمان اجرا توسط runtime engine هر قسمت از برنامه ما که مورد استفاده قرار می گیرد تفسیر می شود و تبدیل به machine code می شود.
چه زبان هایی از AOT و چه زبان هایی از JIT استفاده می کنند؟
زبان هایی مثل سی، سی پلاس پلاس و گولنگ AOT compilation هستند.
زبان هایی مثل جاوا، سی شارپ معمولا از JIT استفاده میکنند.
مقایسه این دو با هم:
در AOT بیلد کردن کد بیشتر طول می کشد اما در JIT سریع تر اتفاق میوفتد.
در AOT کد های ما به machine code تبدیل می شوند و قابلیت اجرا بصورت مستقیم را دارند اما در JIT توسط interpreter اجرا میشود. در این صورت اگر در JIT تکه کدی از ما اصلا مورد استفاده قرار نگیرد، تبدیل به ماشین کد هم نمی شود اما از آن طرف همیشه overhead وجود دارد که باید یک runtime engine داشته باشید تا کد های شما اجرا شود.
#Compiler
@Syntax_fa
3 261
رنکینگ محبوب ترین زبان ها در حال حاضر
خب می تونید حدس بزنید. پایتون اوله مثل همیشه
بعدشم زبان سی، سی پلاس پلاس، جاوا و سی شارپ بدون تغییر نسبت به سال 2023 تو همون جایگاه خودشون هستن
جاوا اسکریپت و پی اچ پی یه خونه اومدن بالا تر
عجیب ترین رشد رو زبان اسکرچ داشته. نسبت به سال 23 رتبش از بیستم به دهم رسیده 😕
اون زبانی که خیلی محبوبه و رشد خوبی داشته رو یاد بگیریم؟
نه. اینطوری هممون باید بریم اسکرچو یاد بگیریم
زبان های این شکلی همیشه محبوبیت بالایی دارن اما آیا به اندازه محبوبیتشون کارایی هم دارن؟
منبع:
https://www.tiobe.com/tiobe-index/
#Ranking
@Syntax_fa
3 261
POV: وقتی برنامه نویس پایتون نیازی نیست نوع متغیرها و ساختارشون رو وارد کنه
تفاوت برنامه نویسان پایتون با سایر برنامه نویسان:
#fun
@Syntax_fa
3 261
می دونستی داکیومنت fastapi با ایموجی هم نوشته شده؟
https://fastapi.tiangolo.com/em/
#Fun
@Syntax_fa
3 261
وب سایت gitignore.io
هر وقت که با پروژههای گیت کار میکنی، احتمالاً خیلی وقتا با فایل gitignore سر و کار داری. این فایل خیلی مهمه، چون تعیین میکنه که کدوم فایلها و پوشهها باید توسط گیت ردیابی نشن و نباشن. مثلاً فایلهای کش و فایلهای محلی که نباید در ریپازیتوری گیت قرار بگیرن.
حالا به جای اینکه خودت وقت بذاری و بخشهای مختلف فایل gitignore رو بنویسی، وب سایت gitignore.io میتونه کمکت کنه.
فقط کافیه بری به gitignore.io و تایپ کنی که چه نوع پروژه داری. مثلاً، اگه با پایتون و Django کار میکنی، میتونی python و Django رو تایپ کنی. بعدش سایت لیستی از فایلها و پوشههایی که باید در فایل gitignore بنویسی رو میاره.
با یه کپی ساده از اون لیست، میتونی فایل gitignore خودت رو کامل کنی و اونو به ریپازیتوری گیتت اضافه کنی.
#Github
@Syntax_fa
3 261
دو تا از پروژه های جالب یکی از اعضای کانال
ارسال بازدید فیک برای وب سایت
این اسکریپت با استفاده از پروکسی لیست https برای وب سایت شما بازدید فیک ارسال می کند!
پروکسی لیست هارو داخل فایل https.txt بزارید
https://github.com/benyaminsh/send-visit-for-website
ربات پیدا کردن کلمه در تلگرام
ربات پیدا کردن کلمه درتلگرام نوشته شده با پایروگرام مثال شما میای ست میکنی که کلمه beni تحت نظر داشته باش بعدش هرکسی که داخل گروهی این کلمه رو به کار ببره داخل پیام هاش همون موقه ربات به کانالی که داخل سورس ست کردید پیام میفرسته که اقا مثلا این کاربر در این گروه این پیامو داد
داخل این پروژه از دیتابیس sqlite استفاده شده.
https://github.com/benyaminsh/telegrambot-find-word
اگه دوست دارید پروژه های شمارو معرفی کنیم بهم پیام بدید یا توی گروه بگید. پروژتون باید کاربردی باشه مهم نیست خفنه یا نه
#projects
@Syntax_fa
