Forwarded from 🎄 DevTwitter | توییت برنامه نویسی
یه اشتباهی که خیلی ها می کنند اینه که فکر می کنند که Typenoscript یه زبان در مقابل جاوا اسکریپته
مثلا پایتون یه زبانه و جاوا یه زبان دیگه هست و شما تصمیم میگیری که کدت رو به زبان پایتون یا جاوا بزنی
اما رابطه تایپ اسکریپت و جاوااسکریپت به این شکل نیست
یعنی تایپ اسکریپت یه زبان جداگانه و جدید نیست که اومده باشه جاوا اسکریپت رو جایگزین کنه
بلکه تایپ اسکریپت همراه جاوا اسکریپته تا تایپ ها استاتیک باشند و خطا های زمان اجرا به زمان کامپایل بیاد و همینطور دولوپر ها تجربه بهتری هنگام کد زدن داشته باشند و بعد از کامپایل(ترنسپایل) کل کد تایپ اسکریپت به جاوا اسکریپت تبدیل میشه.
یعنی این دو تا زبان همراه هم خواهند بود.
(تا اینکه روزی browser ها به صورت native از تایپ اسکریپت پشتیبانی کنند)
البته تو بک اند deno و bun به صورت native می تونن typenoscript رو اجرا کنن که این خیلی خبر خوبیه
@DevTwitter | <Pouria Jahandideh/>
مثلا پایتون یه زبانه و جاوا یه زبان دیگه هست و شما تصمیم میگیری که کدت رو به زبان پایتون یا جاوا بزنی
اما رابطه تایپ اسکریپت و جاوااسکریپت به این شکل نیست
یعنی تایپ اسکریپت یه زبان جداگانه و جدید نیست که اومده باشه جاوا اسکریپت رو جایگزین کنه
بلکه تایپ اسکریپت همراه جاوا اسکریپته تا تایپ ها استاتیک باشند و خطا های زمان اجرا به زمان کامپایل بیاد و همینطور دولوپر ها تجربه بهتری هنگام کد زدن داشته باشند و بعد از کامپایل(ترنسپایل) کل کد تایپ اسکریپت به جاوا اسکریپت تبدیل میشه.
یعنی این دو تا زبان همراه هم خواهند بود.
(تا اینکه روزی browser ها به صورت native از تایپ اسکریپت پشتیبانی کنند)
البته تو بک اند deno و bun به صورت native می تونن typenoscript رو اجرا کنن که این خیلی خبر خوبیه
@DevTwitter | <Pouria Jahandideh/>
Forwarded from 🎄 DevTwitter | توییت برنامه نویسی
Media is too big
VIEW IN TELEGRAM
یک پروژه دیدم امروز روی گیتهاب که یک AI Agent بود که از طریق Whatsapp میتونستی باهاش صحبت کنید. فقط شلوغش کرده بود. فکر کردم یک پروژه مشابه درست کنم با تلگرام. این ویدیوی دمو هست (صدا هم داره قسمتی که ایجنت صحبت میکنه).
فعلا میتونید باهاش چت کنید، عکس generate میکنه و همچین متن به صدا. برای متن به صدا از Kodoro استفاده کردم و کاملا هم لوکال هست . برای عکس هم میشه از Dalle و هم از یک کمپانی/api دیگه به اسم Novita استفاده کنید.
اسم این agent را گذاشتم Nova. بیشتر از ۲ ساعت وقت نذاشتم و هنوز خیلی کار داره تا یک agent کامل بشه. ولی هسته کد آماده است. حتا readme هم کامل نیست. ولی میتونید متوجه بشید و استفاده کنید. pull request بدید اگه دوست داشتید.
Github: https://github.com/mallahyari/nova-assistant
@DevTwitter | <Mehdi Allahyari/>
فعلا میتونید باهاش چت کنید، عکس generate میکنه و همچین متن به صدا. برای متن به صدا از Kodoro استفاده کردم و کاملا هم لوکال هست . برای عکس هم میشه از Dalle و هم از یک کمپانی/api دیگه به اسم Novita استفاده کنید.
اسم این agent را گذاشتم Nova. بیشتر از ۲ ساعت وقت نذاشتم و هنوز خیلی کار داره تا یک agent کامل بشه. ولی هسته کد آماده است. حتا readme هم کامل نیست. ولی میتونید متوجه بشید و استفاده کنید. pull request بدید اگه دوست داشتید.
Github: https://github.com/mallahyari/nova-assistant
@DevTwitter | <Mehdi Allahyari/>
Forwarded from Rust for Python developers
#موقت
بنظرم قبل از توضیح راجب انواع نوع داده توی Rust لازمه راجب Heap/Stack صحبت کنم 🧐
یک مقداری سخت تر میشه ولی اینطوری فکر میکنم خروجی بهتری خواهد داشت.
بنظرم قبل از توضیح راجب انواع نوع داده توی Rust لازمه راجب Heap/Stack صحبت کنم 🧐
یک مقداری سخت تر میشه ولی اینطوری فکر میکنم خروجی بهتری خواهد داشت.
Forwarded from Yasha
توی این کنفرانس راب پایک، یکی از سازندههای اصلی زبان گولنگ میاد درباره ساده بودن گولنگ صحبت میکنه و با بقیه زبانا مقایسهاش میکنه. با اینکه برای ۹ سال پیشه ولی حرفاش خیلی جالبه، پیشنهاد میکنم که حتی اگه با گولنگ سروکار ندارید ۲۰ دقیقه بهش وقت بدید و ببینیدش:
https://youtube.com/watch?v=rFejpH_tAHM
https://youtube.com/watch?v=rFejpH_tAHM
YouTube
dotGo 2015 - Rob Pike - Simplicity is Complicated
Go is often described as a simple language. It is not, it just seems that way. Rob explains how Go's simplicity hides a great deal of complexity, and that both the simplicity and complexity are part of the design.
Help us caption & translate this video!…
Help us caption & translate this video!…
Forwarded from 🎄 DevTwitter | توییت برنامه نویسی
بچه ها اگه کسی علاقه داره به ترجمه داکیومنت فارسی Vite کمک کنه اینجا درحال توسعه هست و قبل از انتقال به org اصلی نیاز به بررسی داره.
- https://github.com/mostafa-nematpour/vite-docs-fa
- https://vite.liara.run
@DevTwitter | <پویا/>
- https://github.com/mostafa-nematpour/vite-docs-fa
- https://vite.liara.run
@DevTwitter | <پویا/>
Forwarded from DevAcademy
برنامه نویس ارشد گو لنگ Golang
دورکاری
حقوق: از رنج ۱۲۰۰ تا ۱۷۰۰ دلار توافقی (سطح زبان انگلیسی توی حقوق تاثیر بسیار زیادی داره)
سطح زبان: از متوسط به بالا
برای کسب اطلاعات بیشتر به ایشون پیام بدید:
@R_dhghani
💻@DevAcaademy
💬@DevAcademyGroup
دورکاری
حقوق: از رنج ۱۲۰۰ تا ۱۷۰۰ دلار توافقی (سطح زبان انگلیسی توی حقوق تاثیر بسیار زیادی داره)
سطح زبان: از متوسط به بالا
برای کسب اطلاعات بیشتر به ایشون پیام بدید:
@R_dhghani
💻@DevAcaademy
💬@DevAcademyGroup
Forwarded from Python Hints
این از بحث گروه هست :
خلاصه سوال این بود که؛ چطور ورژن پایتون رو انتخاب کنیم (ی صحبت هم این بود که ۴ تا ورژن قبل از آخرین نسخه برای اینکه پایدارتر هست) :
۱- اولین مورد
حتی در حال حاضر
اگر زمان توسعه یک پروژه رو ۶ ماه درنظر بگیریم حتی
۲- توی مورد قبلی هم گفتم حواستون به
۳- مهمترین نکته؛ پکیجهایی هستند که استفاده میکنید؛ هرکدوم یک
ولی بعضی پکیجها هستند که دارند برای مثال اگر اینطور باشه یعنی پایتون
یا خود
۴- به تیم هم بستگی داره؛ اینکه بتونه از تغییراتی که توی ورژنهای جدیدتر اومده استفاده کنه و باهاشون آشنا باشه.
این موارد حداقل چیزهایی هست که قبل از انتخاب ورژن پایتون پروژه باید درنظر بگیرید.
خلاصه سوال این بود که؛ چطور ورژن پایتون رو انتخاب کنیم (ی صحبت هم این بود که ۴ تا ورژن قبل از آخرین نسخه برای اینکه پایدارتر هست) :
۱- اولین مورد
End of Life هست؛ ۴ نسخه قبل از آخرین Stable Release اطلا و ابدا منطقی نیست و کاملا هم اشتباه هست:Branch Schedule End of life
3.13 PEP 719 2029-10
3.12 PEP 693 2028-10
3.11 PEP 664 2027-10
3.10 PEP 619 2026-10
حتی در حال حاضر
3.9 حدود ۸ ماه دیگه و 3.8 حدود ۴ ماه دیگه پشتیبانی ازشون تموم میشه یعنی اگر باگ - مورد امنیتی یا چیزی بخوره خودتونید و خودتون.اگر زمان توسعه یک پروژه رو ۶ ماه درنظر بگیریم حتی
3.10 هم دیگه ریسک هست (درحال حاضر پروژههام از ۳ ماه قبل روی 3.12 استارت خوردن)۲- توی مورد قبلی هم گفتم حواستون به
Stable Release باشه؛ اگر یک نسخهای روی بخش Stable منتشر شده باید آماده باشید بهش مهاجرت کنید؛ البته چون پشتیبانی توی پایتون ۴-۵ ساله هست؛ میتونید کمی صبر کنید ۱ سال و بعد مهاجرت کنید روی نسخه جدید (اینم بخاطر پکیجها میگم)۳- مهمترین نکته؛ پکیجهایی هستند که استفاده میکنید؛ هرکدوم یک
compatibility list دارند مثلا برای Django 4.2.19 محدودیت روی ورژن بالاتر نذاشته :Requires: Python >=3.8
ولی بعضی پکیجها هستند که دارند برای مثال اگر اینطور باشه یعنی پایتون
3.13 پشتیبانی نمیشه هنوز.Requires: Python 3.8, 3.9, 3.10, 3.11, 3.12
یا خود
Django 5.1.6:Requires: Python >=3.10
۴- به تیم هم بستگی داره؛ اینکه بتونه از تغییراتی که توی ورژنهای جدیدتر اومده استفاده کنه و باهاشون آشنا باشه.
این موارد حداقل چیزهایی هست که قبل از انتخاب ورژن پایتون پروژه باید درنظر بگیرید.
Forwarded from Python Hints
از بحث گروه :
سورس کد رو چطوری بخونیم ؟
سورس کد خوندن باید از نقطه شروع باشه؛ پروژهای که میخواید سورس کدش رو بخونید باید مطمئن بشید استانداردها رو رعایت کرده حداقل توی شروع پیشنهاد میکنم به تعداد fork, star, ... پروژه نگاه کنید و قبل از خوندنش هم بهتره کمی با استانداردها آشنا باشید.
همیشه سورس کد خوندن رو از پروژهای استفاده کنید که توی زمینه کاری خودتون یا توی مباحث مورد علاقه خودتون هست.
مثلا برای
برای خوندن هم دو حالت داره :
۱- دنبال یک مدل استانداردسازی برای یک چیز خاص هستید و فقط همون بحث رو میخونید.
مثلا من اگر بخوام ببینم چطوری
۲- هدف خاصی ندارم جز یادگیری استانداردها؛ در اینصورت یک نقطه شروع رو برای خودم پیدا میکنم و از اون بعنوان سر نخ استفاده میکنم.
شخصا
توی هر دو مورد مهم اینه که قبل از خوندن سورس کد با پکیجهای اصلی آشنا باشید و بلدشون باشید؛ پکیج جدید هم که میبینید که بلدش نیستید؛ اول یک ویدئو گوتاه و سریع از آموزشش ببینید و بعد توی سورس کد به خوندن ادامه بدید.
سورس کد رو چطوری بخونیم ؟
سورس کد خوندن باید از نقطه شروع باشه؛ پروژهای که میخواید سورس کدش رو بخونید باید مطمئن بشید استانداردها رو رعایت کرده حداقل توی شروع پیشنهاد میکنم به تعداد fork, star, ... پروژه نگاه کنید و قبل از خوندنش هم بهتره کمی با استانداردها آشنا باشید.
همیشه سورس کد خوندن رو از پروژهای استفاده کنید که توی زمینه کاری خودتون یا توی مباحث مورد علاقه خودتون هست.
مثلا برای
Django چندتا مورد داریم؛ Baserow جزو مواردی هست که خوب نوشته شده و یک بیزینس فعال هم هست که open source هم کردند.برای خوندن هم دو حالت داره :
۱- دنبال یک مدل استانداردسازی برای یک چیز خاص هستید و فقط همون بحث رو میخونید.
مثلا من اگر بخوام ببینم چطوری
swagger این پروژه نوشته شده اول وارد requirements اش میشم و میگردم ببینم از کدوم پکیج استفاده کرده بعد میرم روی Endpointها یا .... ببینم این موارد رو با چه استانداردی نوشته و کجاها گذاشته.۲- هدف خاصی ندارم جز یادگیری استانداردها؛ در اینصورت یک نقطه شروع رو برای خودم پیدا میکنم و از اون بعنوان سر نخ استفاده میکنم.
شخصا
Integration test ها اولین چیزی هست که میرم سراغش؛ اگر نبود logic هر بخش رو از داکیومنت میخونم و بخش بخش میرم توی سورس کدها و ...توی هر دو مورد مهم اینه که قبل از خوندن سورس کد با پکیجهای اصلی آشنا باشید و بلدشون باشید؛ پکیج جدید هم که میبینید که بلدش نیستید؛ اول یک ویدئو گوتاه و سریع از آموزشش ببینید و بعد توی سورس کد به خوندن ادامه بدید.
GitHub
baserow/backend/src/baserow at master · baserow/baserow
Open-source no-code platform and the best alternative to Airtable. Build databases, applications, automations, and dashboards — all in one secure, self-hostable environment. Empower your team to cr...
Forwarded from 🎄 یک برنامه نویس تنبل (The Lazy 🌱 Raymond)
🔶 در پکیچ multipay لاراول که درایورهای درگاه های پرداخت ایران پشتیبانی می کند را درخواست حذف سه درگاه دادیم.
درگاه pay.ir هم تعطیل شد.
برای همین توی پکیچ مولتی پی تغییرات حذف درگاه ها اعمال کردیم.
درخواست حذف درگاه :
- Pay.ir
- Walleta
- idpay
آی دی پی فعالیتش نامعلومه که درخواست حذف دادیم.
https://github.com/shetabit/multipay/pull/303
#لاراول
@TheRaymondDev
درگاه pay.ir هم تعطیل شد.
برای همین توی پکیچ مولتی پی تغییرات حذف درگاه ها اعمال کردیم.
درخواست حذف درگاه :
- Pay.ir
- Walleta
- idpay
آی دی پی فعالیتش نامعلومه که درخواست حذف دادیم.
https://github.com/shetabit/multipay/pull/303
#لاراول
@TheRaymondDev
GitHub
Remove Payir - Walleta - idpay by Rayiumir · Pull Request #303 · shetabit/multipay
Denoscription
Closure of Payir and Walleta payment gateways and unknown and suspicious activity of idpay
Closure of Payir and Walleta payment gateways and unknown and suspicious activity of idpay
Forwarded from Gopher Academy
🔵 عنوان مقاله
sturdyc: Caching Library with Advanced Concurrency Features
🟢 خلاصه مقاله:
مقاله "A sturdy gopher shielding data sources from rapidly incoming requests" به بررسی یک راهکار مؤثر برای جلوگیری از بارگذاری بیش از حد و حملات اصطلاحاً cache stampede در سیستمهای با حجم ترافیک بالا میپردازد. رویکرد مورد بحث در این مقاله، استفاده از خواندنهای غیربلاککننده و نوشتنهای شارد شده است که کمینه کردن تداخل قفلها را هدف قرار داده و در نتیجه، افزایش کارایی و پایداری سیستم هنگام مواجهه با درخواستهای متعدد و سریع را به دنبال دارد. با استفاده از این روش، سیستمها میتوانند دادهها را مدیریت و در برابر بارهای ناگهانی وزیاد محافظت نمایند. این روش برای زیرساختهایی که نیازمند حجم بالایی از تراکنشهای داده هستند، ایدهآل است.
🟣لینک مقاله:
https://golangweekly.com/link/165666/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
sturdyc: Caching Library with Advanced Concurrency Features
🟢 خلاصه مقاله:
مقاله "A sturdy gopher shielding data sources from rapidly incoming requests" به بررسی یک راهکار مؤثر برای جلوگیری از بارگذاری بیش از حد و حملات اصطلاحاً cache stampede در سیستمهای با حجم ترافیک بالا میپردازد. رویکرد مورد بحث در این مقاله، استفاده از خواندنهای غیربلاککننده و نوشتنهای شارد شده است که کمینه کردن تداخل قفلها را هدف قرار داده و در نتیجه، افزایش کارایی و پایداری سیستم هنگام مواجهه با درخواستهای متعدد و سریع را به دنبال دارد. با استفاده از این روش، سیستمها میتوانند دادهها را مدیریت و در برابر بارهای ناگهانی وزیاد محافظت نمایند. این روش برای زیرساختهایی که نیازمند حجم بالایی از تراکنشهای داده هستند، ایدهآل است.
🟣لینک مقاله:
https://golangweekly.com/link/165666/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
GitHub
GitHub - viccon/sturdyc: A caching library with advanced concurrency features designed to make I/O heavy applications robust and…
A caching library with advanced concurrency features designed to make I/O heavy applications robust and highly performant - viccon/sturdyc
Forwarded from 🎄 DevTwitter | توییت برنامه نویسی
روش درست برنامه نویسی Node.js
۱. برنامه نویسی رویداد محور و asynchronous
در برنامه نویسی node خیلی مهمه که به event loop توجه داشته باشیم و از callback ها و promise ها و async/await موثر استفاده کنیم.
نیازه که از callback hell دوری کنیم و جریان async رو مدیریت کنیم.
۲. استفاده از stream ها و پردازش داده real time
یکی از امکانات استفاده از stream ها هست که کمک داده ها را به صورت بهینه پردازش کنیم و مشکلات حافظه نداشته باشیم.
برای کار کردن با dataset های بزرگ استفاده از stream api خیلی کمک کننده است.
۳. مایکروسرویس ها و معماری Modular
به عنوان برنامه نویس بک اند خیلی خوبه که با modular monolith پروژمون رو شروع کنیم و کم کم تبدیل به microservice های مختلف بکنیم.
برای اینکار نیازه که به معماری های مایکروسرویس ها و همینطور الگو های data در آنها تسلط داشته باشیم.
۴. کار با دیتابیس ها
خیلی مهمه که بدونیم کجا از query استفاده کنیم، کجا query builder و کجا ORM
چطور data model رو برای query هایی که داریم بهینه کنیم و همینطور مطمئن بشیم که در query های زمانبر سیستم از index ها استفاده میشه.
مهمه که روش های مختلف کار با دیتابیس به صورت async رو بدونیم
۵. برنامه نویسی شبکه و TCP/UDP
برنامه نویسی فقط REST و WEB نیست و گاهی برای کاربرد های خاص از سوکت های خام TCP و UDP استفاده می کنیم تا پرفورمنس بالاتری داشته باشیم.
همینطور مهمه که بتونیم از WebSocket ها یا grpc یا http 2 برای پیاده سازی real time استفاده کنیم.
۶. تست نویسی و دیباگ کردن
شناخت ابزار تست نویسی یه بحثه، اینکه چه تست کیس هایی بنویسیم یه مهارته که طی زمان رشد پیدا می کنه.
علاوه بر این مهمه که بتونیم کد node رو دیباگ کنیم برای اینکار میتونیم از node inspector استفاده کنیم.
۷. دیپلوی و scale کردن
در نهایت نیازه که بتونیم کد های node رو به صورت scalable دیپلوی کنیم.
برای scalable بودن می توانیم از استراتژی هایی مانند clustering و load balancing استفاده کنیم.
۸. امنیت
همینطور مهمه که در پیاده سازی authentication از ایجاد آسیب پذیری ها امنیتی جلوگیری کنیم.
مهمه که حملات رایج مانند XSS و CSRF و نحوه جلوگیری را در عمل آنها را بشناسیم.
@DevTwitter | <Pouria Jahandideh/>
۱. برنامه نویسی رویداد محور و asynchronous
در برنامه نویسی node خیلی مهمه که به event loop توجه داشته باشیم و از callback ها و promise ها و async/await موثر استفاده کنیم.
نیازه که از callback hell دوری کنیم و جریان async رو مدیریت کنیم.
۲. استفاده از stream ها و پردازش داده real time
یکی از امکانات استفاده از stream ها هست که کمک داده ها را به صورت بهینه پردازش کنیم و مشکلات حافظه نداشته باشیم.
برای کار کردن با dataset های بزرگ استفاده از stream api خیلی کمک کننده است.
۳. مایکروسرویس ها و معماری Modular
به عنوان برنامه نویس بک اند خیلی خوبه که با modular monolith پروژمون رو شروع کنیم و کم کم تبدیل به microservice های مختلف بکنیم.
برای اینکار نیازه که به معماری های مایکروسرویس ها و همینطور الگو های data در آنها تسلط داشته باشیم.
۴. کار با دیتابیس ها
خیلی مهمه که بدونیم کجا از query استفاده کنیم، کجا query builder و کجا ORM
چطور data model رو برای query هایی که داریم بهینه کنیم و همینطور مطمئن بشیم که در query های زمانبر سیستم از index ها استفاده میشه.
مهمه که روش های مختلف کار با دیتابیس به صورت async رو بدونیم
۵. برنامه نویسی شبکه و TCP/UDP
برنامه نویسی فقط REST و WEB نیست و گاهی برای کاربرد های خاص از سوکت های خام TCP و UDP استفاده می کنیم تا پرفورمنس بالاتری داشته باشیم.
همینطور مهمه که بتونیم از WebSocket ها یا grpc یا http 2 برای پیاده سازی real time استفاده کنیم.
۶. تست نویسی و دیباگ کردن
شناخت ابزار تست نویسی یه بحثه، اینکه چه تست کیس هایی بنویسیم یه مهارته که طی زمان رشد پیدا می کنه.
علاوه بر این مهمه که بتونیم کد node رو دیباگ کنیم برای اینکار میتونیم از node inspector استفاده کنیم.
۷. دیپلوی و scale کردن
در نهایت نیازه که بتونیم کد های node رو به صورت scalable دیپلوی کنیم.
برای scalable بودن می توانیم از استراتژی هایی مانند clustering و load balancing استفاده کنیم.
۸. امنیت
همینطور مهمه که در پیاده سازی authentication از ایجاد آسیب پذیری ها امنیتی جلوگیری کنیم.
مهمه که حملات رایج مانند XSS و CSRF و نحوه جلوگیری را در عمل آنها را بشناسیم.
@DevTwitter | <Pouria Jahandideh/>
Forwarded from 🎄 DevTwitter | توییت برنامه نویسی
#کوته_نیوز
شبکه پرداخت
@DevTwitter
شبکه پرداخت
pay.ir تعطیل شد. مدیرعاملش گفته دهنمونو سرویس کردن سر اینترنت و بانک مرکزی هم سرورهامونو برد که روش سالاد درست کنه.@DevTwitter
🔥1
Forwarded from Linuxor ?
اگه میخوای یه CTO بشی یا بدونی CTO دقیقاً چیکار میکنه، این ریپو رو از دست نده، CTO یا همون مدیر ارشد فناوری، مسئول تصمیمات فنی و معماری یه استارتاپه. از مدیریت تیم و استخدام گرفته تا انتخاب تکنولوژیهای مناسب.
این ریپو از پوزیشن CTO تا روند استخدام و معماری و تکنولوژي و کتاب هایی ک برای CTO مفیده رو ریز به ریز توی یه جا جمع کرده :
https://github.com/kuchin/awesome-cto
@Linuxor
این ریپو از پوزیشن CTO تا روند استخدام و معماری و تکنولوژي و کتاب هایی ک برای CTO مفیده رو ریز به ریز توی یه جا جمع کرده :
https://github.com/kuchin/awesome-cto
@Linuxor
Forwarded from 🎄 DevTwitter | توییت برنامه نویسی
بیا با یه ترفند خفن توی پی اچ پی آشنات کنم؟
خیلی جاها پیش میاد که میخوایم اعضای یک آرایه رو داخل متغیر قرار بدیم. توی تصویر زیر، به دو روش این کار انجام شده و نتیجه یکسان هست.
البته آرایه نباید indexed باشه.
@DevTwitter | <Pouya Farshidnia/>
خیلی جاها پیش میاد که میخوایم اعضای یک آرایه رو داخل متغیر قرار بدیم. توی تصویر زیر، به دو روش این کار انجام شده و نتیجه یکسان هست.
البته آرایه نباید indexed باشه.
@DevTwitter | <Pouya Farshidnia/>
Forwarded from CleverDevs (Mammad)
🔥 با تحلیل داده یک تخصص پردرآمد یاد بگیر!
بوتکمپ دیتا آنالیز، 6 ماهه ازت یک متخصص میسازه.
🖥 آموزش پروژه محور
📠 معرفی برای استخدام
آموزش و استخدامت، هر دو با ماست👇👇
https://dnkr.ir/6NAXa
https://dnkr.ir/6NAXa
بوتکمپ دیتا آنالیز، 6 ماهه ازت یک متخصص میسازه.
🖥 آموزش پروژه محور
📠 معرفی برای استخدام
آموزش و استخدامت، هر دو با ماست👇👇
https://dnkr.ir/6NAXa
https://dnkr.ir/6NAXa
Forwarded from 🎄 DevTwitter | توییت برنامه نویسی
اگه تا حالا API زدی، حتماً به این فکر کردی که GraphQL بهتره یا REST؟ هرکدوم یه سری مزایا و معایب دارن،
پس بیاید یه مقایسه ساده کنیم :
RESTful API :
- هر چیزی یه Endpoint داره، مثلاً /users یا /products.
- اگه اطلاعات مختلف بخوای، باید چند تا درخواست بزنی. (گاهی داده اضافی میگیری، گاهی کمتر از چیزی که لازم داری!)
- کشینگش راحتتره، چون روی HTTP سوار شده.
GraphQL :
- فقط یه Endpoint داری، ولی میتونی دقیقاً همون دادهای که لازم داری رو درخواست بدی.
- یه درخواست، چندین جواب! یعنی بهینهتر، مخصوصاً برای اپهای موبایل.
- کشینگش سختتره، ولی Apollo Client کمک میکنه.
- برای کشینگش و ارور های خاص نیاز به تنظیمات داره
پس کدومو انتخاب کنیم ؟
+ اگه API ساده میخوای که سریع بالا بیاد و کشینگ برات مهمه → REST!
+ اگه یه سرویس پیچیده داری که قراره چندین نوع کلاینت (موبایل، وب و ...) بهش وصل شن → GraphQL عالیه!
+ گاهی ترکیبشون هم جواب میده! REST برای بخشهای عمومی، GraphQL برای بخشهای خاص.
در نهایت، انتخاب بین GraphQL و REST به نیازهای پروژه بستگی داره! مهم اینه که بدونیم هر کدوم کجا بهتر عمل میکنن.
@DevTwitter | <Mohsen Abbasi/>
پس بیاید یه مقایسه ساده کنیم :
RESTful API :
- هر چیزی یه Endpoint داره، مثلاً /users یا /products.
- اگه اطلاعات مختلف بخوای، باید چند تا درخواست بزنی. (گاهی داده اضافی میگیری، گاهی کمتر از چیزی که لازم داری!)
- کشینگش راحتتره، چون روی HTTP سوار شده.
GraphQL :
- فقط یه Endpoint داری، ولی میتونی دقیقاً همون دادهای که لازم داری رو درخواست بدی.
- یه درخواست، چندین جواب! یعنی بهینهتر، مخصوصاً برای اپهای موبایل.
- کشینگش سختتره، ولی Apollo Client کمک میکنه.
- برای کشینگش و ارور های خاص نیاز به تنظیمات داره
پس کدومو انتخاب کنیم ؟
+ اگه API ساده میخوای که سریع بالا بیاد و کشینگ برات مهمه → REST!
+ اگه یه سرویس پیچیده داری که قراره چندین نوع کلاینت (موبایل، وب و ...) بهش وصل شن → GraphQL عالیه!
+ گاهی ترکیبشون هم جواب میده! REST برای بخشهای عمومی، GraphQL برای بخشهای خاص.
در نهایت، انتخاب بین GraphQL و REST به نیازهای پروژه بستگی داره! مهم اینه که بدونیم هر کدوم کجا بهتر عمل میکنن.
@DevTwitter | <Mohsen Abbasi/>