Syntax | سینتکس – Telegram
کیا اینجا کسب و کار خودشونو دارن؟ (حتی فروش کانفیگ و یا چیزای خیلی کوچیک)
👍11
مفهوم اندازه و ظرفیت (Size, Capacity) در آرایه

یکی از پایه ای ترین ساختار داده آرایه ها هستند. در آرایه ها ما بصورت ترتیبی مقادیر را قرار می دهیم.

برای تعریف یک آرایه ما باید در قدم اول ظرفیت آرایه رو مشخص کنیم برای مثال ظرفیتش اگه 4 تا باشه فقط می تونیم 4 تا عنصر رو داخلش قرار بدیم.

همچنین لیست های پایتون، یک Array List هستند که در پشت صحنه همان آرایه ها هستند. پس سوالی که مطرح میشود این است که در لیست ها ما چجوری میتونیم هر چقدر که دوست داریم عنصر قرار بدیم و در تعریف کردن سایز رو هم مشخص نمیکنیم؟

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

در عکس کاملا مشخص است چگونه این اتفاق میوفتد.

#note #data_structures

@Syntax_fa
👍8
مسئله چهارم
سطح:‌ ساده

توضیح:
برنامه ای بنویسید که خروجی زیر را داشته باشد
 Python
1
22
333
55555
88888888
13131313131313131313131313
212121212121212121212121212121212121212121


#Problems

@Syntax_fa
👍13🔥3👎2
⭕️ حماسه ای دیگر از دوستان م.ج کشور

🛑 ۳ برابر شدن قیمت اینترنت

یه لحظه اوپراتورتون رو یه نگاه بندازید...

با بسته‌های نامحدود هم خداحافظی کنید ♥️


برای حمایت از طرح مخالفت با افزایش قیمت اینترنت
💔14😁3
Syntax | سینتکس
مسئله چهارم سطح:‌ ساده توضیح: برنامه ای بنویسید که خروجی زیر را داشته باشد Python 1 22 333 55555 88888888 13131313131313131313131313 212121212121212121212121212121212121212121 #Problems @Syntax_fa
چند تا از جواب ها:

s= 1
i = 0
for h in range(7):
s ,i = s+i,s
for n in range(1,s+1):
print(s,end="")
print()



fib = [1, 1]
for _ in range(7):
print(str(fib[1])*fib[1])
fib.append(sum(fib))
fib.pop(0)


first_sequence = 1
second_sequence = 1
sequence_counter = 1
while sequence_counter < 8:
print_obj = str(second_sequence)
print_num = second_sequence
second_sequence += first_sequence
first_sequence = second_sequence - first_sequence
while print_num != 0:
print(print_obj, end='')
print_num -= 1
print('')
sequence_counter += 1



func Example() {
number := 1
oldNumber := 1

for {
for i := 0; i < number; i++ {
fmt.Printf("%d", number)
}

fmt.Printf("\n")

if number >= 21 {
break
}
number, oldNumber = number+oldNumber, number
}
}



کدوم بهتره ؟

#Problems

@Syntax_fa
👍5
سورس کد Dota2 Tournament به فروش می رسد‌ !!

معرفی:
دوتادو تورنومنت، وب سایتی هستش که کاربران اکانت استیم خودشون رو لینک می کنن و توی تورنومنت هایی که برای بازی Dota2 قرار داده شده می تونن رقابت کنن.

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

از سورس کد این پروژه خیلی راحت میتونید برای بازی های دیگه ای که استیم پشتیبانی میکنه و api میده استفاده کنید.

این ایده رو بصورت کامل پیاده سازیش کردیم ولی هیچوقت آنلاین نشد :)

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

فرانت با react زده شده بک اند با django + درگاه پرداخت

برای دیدن دمو پیوی پیام بدید


@Syntax_fa
👍14
یک سال دیگم داره میگذره و چند ساعت دیگه وارد 2024 میشیم.

شمارو نمیدونم ولی من برای 2024 کلی برنامه دارم💥
(اگه دوست دارید اهدافتونو توی کامنت ها بگید شاید جهت بقیه رو هم تغییر داد)

از اونجا که اکثر ما برنامه نویسا با موجودی به اسم گیت هاب زیاد کار میکنیم و میشه گفت برای سنجیدن سطح فعالیت و پیشرفتمون صفحه گیت هابمون یکی از گزینه ها هستش،‌ برید توی وب سایت
https://www.githubunwrapped.com/
فعالیت سال 2023 تون رو گزارش میده. توی کامنت ها ارسال کنید.

ببینیم کیا خیلی فعال بودن 😁

ممکنه جایزه ناقابلی هم دریافت کنه اونی که بیشتر فعالیت کرده

#Github

@Syntax_fa
🔥7🤣4🎉3👎1🥰1
هشت فریم ورک بک اند با بیشترین تعداد star در گیت هاب:

1. Laravel(PHP) 75.6 k
https://github.com/laravel/laravel

2. Django(Python) 74.8 k
https://github.com/django/django

3. gin(Go) 73.3 k
https://github.com/gin-gonic/gin

4. Spring boot(Java) 71 k
https://github.com/spring-projects/spring-boot

5. Fastapi(Python) 66.5 k
https://github.com/tiangolo/fastapi

6. Flask(Python) 65.3 k
https://github.com/pallets/flask

7. Express(JS) 62.6 k
https://github.com/expressjs/express

8. rails(Ruby) 54.1
https://github.com/rails/rails

#framework

@Syntax_fa
👍8👎1🔥1
در دنیای برنامه نویسی هم ما نگارش داریم ⁉️

قوانین نگارشی در هر زبان متفاوت هست و باعث افزایش چشمگیر خوانایی کد میشه

یکی از نکاتی که اهمیت بسیاری در استخدام در شرکت های جهانی داره همین قوانین برنامه نویسی هستش

🌀 پایتون یکی از زبان های سطح بالاست و از این قوانین بسیار پیروی میکنه
به عقیده سازنده پایتون(Guido van Rossum) کد خیلی بیشتر از اینکه نوشته بشه باید خونده بشه

⭕️ این قوانین در پایتون به قوانین PEP8 مشهور هست. (Python Enhancement Proposal): پیشنهاد بهبود پایتون.
تمرکز اصلی PEP 8 بهبود خوانایی و سازگاری کد پایتون است.

افزونه هایی داخل VsCode وجود داره و این قوانین به صورت پیشفرض داخل پای‌چارم نصب و فعال هستش فقط کافیه به توصیه هاش توجه کنید.

❇️ یکی از سایت های خوب ایرانی که باهاش میتونید این قوانین رو به درستی یادبگیرید:
🌐 https://pep8.ir/

@Syntax_fa
👍5
چرا اینترفیس؟
شاید برای شما این سوال پیش بیاد چرا باید از اینترفیس استفاده کنیم و مزایای آن چیست؟ در زیر یکی از مزایای استفاده از اینترفیس و علت اینکه چرا باید از اینترفیس استفاده کنیم رو بهتون میگم

کد باید برای تغییر بسته، و باید برای توسعه باز باشد.
اصل باز و بسته بودن یا اصل Open/Closed به نظر بسیاری، اساس برنامه نویسی شی گرا را تشکیل می‌دهد. رابرت مارتین (Robert C. Martin) که در بین برنامه نویسان به عمو باب (Uncle Bob) مشهور است با عبارت: "مهم‌ترین اصل طراحی شی گرا" از این اصل یاد کرده است.

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

مثال:
فرض کنید ما چند تا سرویس اس ام اس داریم و در آینده هم ممکنه که سرویس های اس ام اس تغییر کنند و از یک ارائه دهنده دیگه خدمات بگیریم. خب در این صورت ما باید چیکار کنیم که با حذف و اضافه کردن سرویس جدید کد های ما تغییر نکنند؟
میایم یک اینترفیس به اسم مثلا Sms می نویسیم و مشخص میکنیم هر کی که میخواد از این اینترفیس استفاده کنه باید متد send_sms و هر چیزی که نیاز هستش رو پیاده سازیش کنه.

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

#Interface

@Syntax_fa
👍13
This media is not supported in your browser
VIEW IN TELEGRAM
سینیور های امروزی 😅😅

#Fun

@Syntax_fa
🤣15👍1😁1
مقایسه سایز thread با coroutine در پایتون بر حسب بایت

چیزی که مشخصه اینه coroutine ها نسبت به ترد ها سبک تر هستند. بعضی وقت ممکنه بشنوید که به coroutine ها light weight thread هم میگن.

لینک

#coroutine #thread

@Syntax_fa
👍13
🔥17
🔥16👏2
Syntax | سینتکس
Voice message
توضیحات یکی از اعضای دوست داشتنی کانال درباره اینکه نابینایان چجوری برنامه نویسی می کنن و خودش از کجا  شروع کرده و چه حوزه هایی فعالیت می کنه

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

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

@Syntax_fa
21
نوجوانی
خیلی با ارزش‌تر از این حرفاست که توی این کشور هدر بره.

اینو میگم چون خیلی سوال میشه، این ترازو رو تصور کنید،

انجام هرکاری توی ایران ------------- فرار از ایران.


همیشه سمت چپ این ترازو سنگین‌تر هست،
همیشه.
فقط فرار کنید.

@pyHints
👍35👎23
روحیات بک اند کار (سمت راست)

روحیات فرانت اند کار (سمت چپ)

#Fun

@Syntax_fa
🤣31👍5👎2🌚1
Object pool pattern

بعضی وقت ها ما یک سری چیزا هست که نباید ازش زیاد instance بسازیم. به این دلیل که زیاد instance ساختن از لحاظ مصرف مموری نتیجه خوبی نداره هم اینکه پرفورمنس خوبی به ما نمیده

توضیح:
برای مثال وقتی داریم با دیتایس کار میکنیم نمیتونیم بر اساس هر درخواستی که سمت ما میاد یه کانکشن جدید بسازیم چون ممکنه محدودیت تعداد کانکشن داشته باشیم و یا اینکه زیاد کانکشکن ساختن مشکلات دیگه ای رو بوجود بیاره

بحث pool اینجا بوجود میاد‌. (فقطم تو این مورد کاربرد نداره مثلا تو اکثر زبون ها ما thread pool رو داریم. اول برنامه میایم تعداد مشخصی ترد رو بوجود میاریم و در ادامه از همون ترد ها استفاده میکنیم چونکه ساخت ترد هزینه زیادی داره )

در کل pool به ما دو قابلیت اصلی رو میده. اولی اینکه از داخل pool مثلا یک connection رو برداریم و Get کنیم. قابلیت بعدی اینه بعد از اینکه کارمون تموم شد دوباره اون connection رو به pool برگردونیم و put کنیم.

#Pool

@Syntax_fa
👍10
This media is not supported in your browser
VIEW IN TELEGRAM
محبوب ترین زبان ها از سال 2000 تا 2023

پی او پی محبوبیتش داره کمتر میشه
زبان هایی مثل typenoscript رشد خوبی داشتن
یه سری زبون هایی مثل rust و golang هم دارن رشد میکنن

تو پست بعدی نظر استاد شهریوری نسبت به آینده جاوا و سی شارپ رو میذارم

@Syntax_fa
👍10
Syntax | سینتکس
محبوب ترین زبان ها از سال 2000 تا 2023 پی او پی محبوبیتش داره کمتر میشه زبان هایی مثل typenoscript رشد خوبی داشتن یه سری زبون هایی مثل rust و golang هم دارن رشد میکنن تو پست بعدی نظر استاد شهریوری نسبت به آینده جاوا و سی شارپ رو میذارم @Syntax_fa
زبان‌های برنامه‌نویسی و آینده

اخیراً خبر جالبی در سایت TIOBE منتشر شده راجع به اینکه از نظر محبوبیت زبان سی‌شارپ به نزدیکی زبان جاوا رسیده و دیگه داره حدس‌هایی مطرح میشه که بزودی سی‌شارپ از نظر محبوبیت از جاوا عبور خواهد کرد. مع‌الفارق از اینکه چقدر همچنین معیارهایی می‌تونه درست باشه (که از دید من واقعاً نشون‌دهنده برآیند بازار نیست) در این پست می‌خوام یه مقدار راجع به زبان‌های برنامه‌نویسی صحبت کنم.
اول از همه بگم که من از قدیم طرفدار زبان‌های شی‌گرا، با تایپ‌های ایستا، کامپایل‌شده و همه‌منظوره بودم و هنوزم هستم (و این صرفاً سلیقه شخصیه). از زبان‌هایی که در این حوزه قرار می‌گیرند میشه به: جاوا، سی‌شارپ، سی پلاس پلاس و کاتلین اشاره کرد. اگه صرفاً از بعد زبان بخوام نگاه کنم از دید من مایکروسافت در سال ۲۰۰۷ کار رو یکسره کرد (بازم سلیقه شخصی) و همیشه زبان سی‌شارپ یه سر و گردن از بقیه جلوتره برای مثال چیزی مثل LINQ هنوز برای بقیه زبان‌ها وجود نداره. اما آیا قدرت و خفن بودن یک زبان برای گرفتن بازار کافیه؟
از دید من جواب این سوال منفیه! شما علاوه بر زبان باید به اکوسیستمی که حول اون زبان شکل گرفته هم نگاه کنید مثل پروژه‌های متن‌باز، چارچوب‌ها، کتابخونه‌ها و خیلی چیزای دیگه حتی آدمای قدیمی و تاثیرگذار. خیلی وقتا حتی اگه یه زبان همه چیز رو هم باخته باشه بازم کلی پروژه فعلی حول اکوسیستم اون زبان وجود داره که مهاجرت از اون زبان بازنده رو سخت‌تر می‌کنه.

حالا تحلیل من چیه؟
۱- معیارهایی مثل TIOBE برای تحلیل آینده بازار خیلی قابل اتکا نیستند و نباید بهشون دلخوش باشیم. البته از دید من می‌تونه بیانگر رشد باشه پس لایک به سی‌شارپ.
۲- به نظرم حتی تا سال ۲۰۲۵ هم کل اکوسیستم سی‌شارپ (نه صرفاً زبان) بعیده بتونه جایگاه اکوسیستم جاوایی رو بگیره.
۳- اگه کسی اول راهه و می‌خواد برای خودش یه اکوسیستم انتخاب کنه اولین معیار باید براش علاقه و سلیقه شخصی خودش باشه و بهتره تحت تاثیر این‌ مدل خبرها قرار نگیره.
۴- یه چیزی که توی خبر TIOBE منو خوشحال می‌کنه رشد و اشاره به زبان کاتلینه. من از حوالی سال ۹۵ که نسخه ۱ کاتلین رسماً منتشر شد از جاوا به کاتلین مهاجرت کردم. شاید به نوعی از اولین آدما تو بازار ایران بودم که برای کدهای سمت سرور رفتم سراغ کاتلین و با جاوا کاملاً خداحافظی کردم. به نظرم یکی از دلایل نزول جاوا هم قطعاً رشد کاتلینه. پس اگه شما هم سمت سرور با زبان جاوا کار می‌کنید پیشنهاد می‌کنم حتماً کاتلین رو یه تستی بکنید، به احتمال زیاد پشیمون نمی‌شید :)

[Saeed Shahrivari Joghan]

@Syntax_fa
👍91