Forwarded from Syntax | سینتکس (Sovren)
Forwarded from Gopher Academy
مقاله «Writing Go Code like a Pro!» در Go Chronicles، همراه با نکات مهم و مثالهای کوچک برای درک بهتر:
---
🧠 نکات کلیدی برای نوشتن کد حرفهای در Go
1. نامگذاری متغیرها و توابع
* از camelCase استفاده کنید و از snake\_case پرهیز شود.
مثال:
* نامها را کوتاه ولی واضح نگه دارید؛ بسته به scope، اسم کوتاهتر مناسبتر است.
* برای شاخص حلقهها از حروف تک مثل
> بیشترین زمان را برای خواندن کد دیگران میگذارید، پس کدی بنویسید که دیگران بدون دردسر بفهمند.
---
2. نامگذاری پکیجها
* نام پکیجها باید کوتاه، پاییننویس (lowercase) و معمولاً مفرد باشند (مثلاً
---
3. طراحی ساختار پروژه
* پروژههای کوچک: تمام فایلها در ریشه، مثل
* برای پروژههای با چند executable: ساختار پیشنهادی:
* فقط وقتی نیاز واقعی به جداکردن logic دارید، پکیج مجزا در
---
4. رعایت اصول Domain-Driven Structure
* پکیجها را براساس سرویسها و موجودیتهای دامنه تعریف کنید (مثلاً پکیجهایی مثل
* اجتناب از ساختار تقلیدی MVC یا مدلهایی که ممکن است منجر به circular dependency شود.
---
5. شروع ساده و افزایش تدریجی ساختار
* اگر ایدهای ندارید، فقط با
---
6. فایلهای مرتبط را کنار هم نگه دارید
* توابع مرتبط، typeها و handlerهای یک واحد منطقی را در فایلهای نزدیک یا مشابه قرار دهید؛ این کار خوانایی را بالا میبرد.
---
7. اندازه فایل مهم نیست... مگر نگهداری را دشوار کند
* فایلهای بزرگ ایرادی ندارند، تا وقتی که نگهداری آنها راحت باشد. لازم نیست برای چند فایل ساده، پکیج ایجاد کنید.
---
8. وقتی لازم نیست پکیج جدا نسازید
* از ایجاد پکیجهای کماهمیت یا بسیار جزئی خودداری کنید؛ مگر قصد reuse مجزا یا جداسازی واضح logic را داشته باشید.)
---
9. به علائم هشدار ساختار دقت کنید
اگر موارد زیر را دیدید، زمان بازبینی ساختار فرارسیده:
* مشکل در یافتن نقاط کد،
* تغییرات گسترده در بخشهای متفاوت،
* سخت شدن debug،
* وابستگی حلقوی یا پیچیدگی error handling.
---
💡 جمعبندی نهایی
* تأکید روی خوانایی، نگهداریپذیری و ساختار معقول.
* شروع از سادهترین حالت، حفظ نامگذاری استاندارد Go و اجتناب از ساختارهای پیچیده غیر idiomatic Go.
* اجازه دهید پروژه در طول زمان ساختار مناسب خودش را بیابد، نه طراحی اولیهی کاملاً دقیق.
---
🧠 نکات کلیدی برای نوشتن کد حرفهای در Go
1. نامگذاری متغیرها و توابع
* از camelCase استفاده کنید و از snake\_case پرهیز شود.
مثال:
myVariable بجای my_variable ☑️* نامها را کوتاه ولی واضح نگه دارید؛ بسته به scope، اسم کوتاهتر مناسبتر است.
* برای شاخص حلقهها از حروف تک مثل
i استفاده کنید، نه index. > بیشترین زمان را برای خواندن کد دیگران میگذارید، پس کدی بنویسید که دیگران بدون دردسر بفهمند.
---
2. نامگذاری پکیجها
* نام پکیجها باید کوتاه، پاییننویس (lowercase) و معمولاً مفرد باشند (مثلاً
service بجای services, utils توصیه نمیشود).---
3. طراحی ساختار پروژه
* پروژههای کوچک: تمام فایلها در ریشه، مثل
main.go.* برای پروژههای با چند executable: ساختار پیشنهادی:
cmd/
app1/
app2/
internal/
go.mod
README.md
* فقط وقتی نیاز واقعی به جداکردن logic دارید، پکیج مجزا در
internal/ بسازید. ---
4. رعایت اصول Domain-Driven Structure
* پکیجها را براساس سرویسها و موجودیتهای دامنه تعریف کنید (مثلاً پکیجهایی مثل
account, inventory).* اجتناب از ساختار تقلیدی MVC یا مدلهایی که ممکن است منجر به circular dependency شود.
---
5. شروع ساده و افزایش تدریجی ساختار
* اگر ایدهای ندارید، فقط با
go.mod و main.go شروع کنید؛ بعد با رشد پروژه، نیاز به طبقهبندی دقیقتر را تشخیص دهید. شروع مینیمال، کد قابل نگهداری را تسهیل میکند. ---
6. فایلهای مرتبط را کنار هم نگه دارید
* توابع مرتبط، typeها و handlerهای یک واحد منطقی را در فایلهای نزدیک یا مشابه قرار دهید؛ این کار خوانایی را بالا میبرد.
---
7. اندازه فایل مهم نیست... مگر نگهداری را دشوار کند
* فایلهای بزرگ ایرادی ندارند، تا وقتی که نگهداری آنها راحت باشد. لازم نیست برای چند فایل ساده، پکیج ایجاد کنید.
---
8. وقتی لازم نیست پکیج جدا نسازید
* از ایجاد پکیجهای کماهمیت یا بسیار جزئی خودداری کنید؛ مگر قصد reuse مجزا یا جداسازی واضح logic را داشته باشید.)
---
9. به علائم هشدار ساختار دقت کنید
اگر موارد زیر را دیدید، زمان بازبینی ساختار فرارسیده:
* مشکل در یافتن نقاط کد،
* تغییرات گسترده در بخشهای متفاوت،
* سخت شدن debug،
* وابستگی حلقوی یا پیچیدگی error handling.
---
💡 جمعبندی نهایی
* تأکید روی خوانایی، نگهداریپذیری و ساختار معقول.
* شروع از سادهترین حالت، حفظ نامگذاری استاندارد Go و اجتناب از ساختارهای پیچیده غیر idiomatic Go.
* اجازه دهید پروژه در طول زمان ساختار مناسب خودش را بیابد، نه طراحی اولیهی کاملاً دقیق.
Forwarded from Gopher Academy
📝 نکات کاربردی درباره
1. چهار روش نوشتن مختلف
*
بسته به نوع دادهای که در اختیار دارید، میتوانید روش مناسب را استفاده کنید
2. نحوه ذخیرهسازی داخلی
این نوع از یک slice داخلی استفاده میکند که نوشتنها به صورت
3. استفادهی بهینه با
قبل از نوشتن با حجم بالا، بهتر است با
* اگر ظرفیت فعلی کافی باشد، گسترش اتفاق نمیافتد.
* اگر ظرفیت کافی نباشد، با فرمول
4. عملکرد
متد
### 5. هرگز یک Builder غیرصفر را کپی نکنید
کپی کردن یک `strings.Builder` که قبلاً نوشته شده باشد منجر به panic میشود:
فقط اشیاء صفر مقدار (بدون نوشتن) قابل کپی هستند
6. عدم پشتیبانی همزمانی (Concurrency)
7. پیادهسازی
رابط
---
⚡️ مثال استفاده
در این مثال:
* از
* با ترکیب
* قابلیت گرفتن طول و ظرفیت نیز وجود دارد.
|
strings.Builder1. چهار روش نوشتن مختلف
strings.Builder از چهار روش برای افزودن محتوا پشتیبانی میکند:*
Write([]byte), WriteByte(byte), WriteRune(rune), WriteString(string)بسته به نوع دادهای که در اختیار دارید، میتوانید روش مناسب را استفاده کنید
2. نحوه ذخیرهسازی داخلی
این نوع از یک slice داخلی استفاده میکند که نوشتنها به صورت
append در آن انجام میشوند. بنابراین عملکرد آن مشابه append روی slice است 3. استفادهی بهینه با
Grow(n)قبل از نوشتن با حجم بالا، بهتر است با
Grow(n) ظرفیت را از پیش افزایش دهید تا از realloc جلوگیری شود:* اگر ظرفیت فعلی کافی باشد، گسترش اتفاق نمیافتد.
* اگر ظرفیت کافی نباشد، با فرمول
current_capacity*2 + n افزایش پیدا میکند 4. عملکرد
String()متد
String() بدون تخصیص حافظه اضافی، یک رشته جدید از buffer داخلی ایجاد میکند—با استفاده از `unsafe`، فقط اشارهگر را باز میگرداند ### 5. هرگز یک Builder غیرصفر را کپی نکنید
کپی کردن یک `strings.Builder` که قبلاً نوشته شده باشد منجر به panic میشود:
var b1 strings.Builder
b1.WriteString("ABC")
b2 := b1
b2.WriteString("DEF") // panic!
فقط اشیاء صفر مقدار (بدون نوشتن) قابل کپی هستند
6. عدم پشتیبانی همزمانی (Concurrency)
strings.Builder ایمن برای استفاده همزمان از چند goroutine نیست؛ خواندن یا نوشتن همزمان میتواند منجر به نتایج غیرمنتظره شود 7. پیادهسازی
io.Writerرابط
Write(p []byte) (int, error) پیادهسازی شده است، بنابراین میتوانید از strings.Builder به عنوان یک io.Writer استفاده کنید—مثلاً logسازی، fmt.Fprintf و … ---
⚡️ مثال استفاده
package main
import (
"fmt"
"strings"
)
func main() {
var sb strings.Builder
sb.Grow(100)
sb.WriteString("Hello")
sb.WriteByte(' ')
sb.WriteRune('世')
sb.WriteString("界")
fmt.Println(sb.String()) // خروجی: "Hello 世界"
fmt.Printf("Len=%d, Cap=%d\n", sb.Len(), sb.Cap())
}
در این مثال:
* از
Grow(100) برای کاهش realloc استفاده کردیم.* با ترکیب
WriteString, WriteByte, و WriteRune یک رشته UTF‑8 ساختیم.* قابلیت گرفتن طول و ظرفیت نیز وجود دارد.
|
Forwarded from tiivik️
⭕️سیاست رقابت اتحادیه اروپا (Competition Policy EU) و
جستجو در پروندههای رقابتی اتحادیه اروپا
این منبع رسمی به شما اجازه میدهد تا تصمیمات منتشر شده مرتبط با پروندههای ضد انحصار، ادغام شرکتها و کمکهای دولتی در اتحادیه اروپا را بیابید.
امکان جستجو بر اساس موارد زیر وجود دارد:
حوزه سیاسی (مقررات ضد انحصار، کمکهای دولتی، ادغامها)؛
شماره پرونده؛
نام (از جمله نام شرکتها)؛
تاریخ صدور رأی؛
بخش اقتصادی (بر اساس طبقهبندی NACE:
[ طبقهبندی آماری فعالیتهای اقتصادی در اتحادیه اروپا)؛
کشور عضو و تاریخ انتشار.
🆔@tiivik
جستجو در پروندههای رقابتی اتحادیه اروپا
این منبع رسمی به شما اجازه میدهد تا تصمیمات منتشر شده مرتبط با پروندههای ضد انحصار، ادغام شرکتها و کمکهای دولتی در اتحادیه اروپا را بیابید.
امکان جستجو بر اساس موارد زیر وجود دارد:
حوزه سیاسی (مقررات ضد انحصار، کمکهای دولتی، ادغامها)؛
شماره پرونده؛
نام (از جمله نام شرکتها)؛
تاریخ صدور رأی؛
بخش اقتصادی (بر اساس طبقهبندی NACE:
[ طبقهبندی آماری فعالیتهای اقتصادی در اتحادیه اروپا)؛
کشور عضو و تاریخ انتشار.
🆔@tiivik
Forwarded from linuxtnt(linux tips and tricks) (hosein seilany https://seilany.ir/)
🔥 ابزار کاربردی nethogs برای مدیریت پهنای باند شبکه 🔥
———————————————————
اگر دوست داری بدونی کدام پردازش بیشترین پهنای باند شبکه رو مصرف میکنه، nethogs بهترین گزینه است! این ابزار ساده و قدرتمند، به راحتی مصرف اینترنت هر پردازش رو بهت نشون میده.
### نصب nethogs در توزیعهای مختلف لینوکس:
### نحوه اجرا:
یا میتونی با مشخص کردن اینترفیس شبکه دستور رو اجرا کنی:
### سوئیچهای کاربردی nethogs:
*
*
*
*
*
نویسنده: حسین سیلانی
📢 اخبار و آموزشهای بیشتر در کانال:
https://t.iss.one/linuxtnt
———————————————————
اگر دوست داری بدونی کدام پردازش بیشترین پهنای باند شبکه رو مصرف میکنه، nethogs بهترین گزینه است! این ابزار ساده و قدرتمند، به راحتی مصرف اینترنت هر پردازش رو بهت نشون میده.
### نصب nethogs در توزیعهای مختلف لینوکس:
sudo apt install nethogs # اوبونتو، دبیان
sudo yum install nethogs # سنتاواس، ردهت
sudo dnf install nethogs # فدورا
sudo pacman -S nethogs # آرچ لینوکس
sudo zypper install nethogs # اوپنسوزه
apk add nethogs # آلپاین لینوکس
### نحوه اجرا:
sudo nethogs
یا میتونی با مشخص کردن اینترفیس شبکه دستور رو اجرا کنی:
nethogs eth1
nethogs eth0 eth1 ppp0
sudo /usr/sbin/nethogs eth0
### سوئیچهای کاربردی nethogs:
*
-d : تنظیم تأخیر برای نرخ بهروزرسانی*
-h : نمایش راهنمای دستورات*
-p : حالت شنود پرومیسکویوس (Promiscuous Mode) – (توصیه نمیشود)*
-t : حالت Trace*
-V : نمایش نسخه برنامهنویسنده: حسین سیلانی
📢 اخبار و آموزشهای بیشتر در کانال:
https://t.iss.one/linuxtnt
Telegram
linuxtnt(linux tips and tricks)
https://t.iss.one/+AL7RKhKS6b4zNzY8
آموزش لینوکس- گروه مکمل برای پرسش و پاسخ
linux tips and tricks
ارتباط با من
@seilany
seilany.ir
آموزش لینوکس- گروه مکمل برای پرسش و پاسخ
linux tips and tricks
ارتباط با من
@seilany
seilany.ir
Forwarded from DevTwitter | توییت برنامه نویسی
یه مینی پروژه بازیسازی با Vanilla JS که برای یادگیری بیشتر خودم شروع به توسعهش کردم.
توش سعی کردم قواعد clean code رو رعایت کنم و خود کدها هم پیچیدگی خاصی ندارن و قابل درکن.
اگه هنوز اول راه JS هستید، پیشنهاد میکنم یه نگاهی بهش بندازید، شاید بهتون ایده بده یا کمکتون کنه.
https://github.com/whosfatima/Snake_Mini_Game
@DevTwitter | <whosfatima/>
توش سعی کردم قواعد clean code رو رعایت کنم و خود کدها هم پیچیدگی خاصی ندارن و قابل درکن.
اگه هنوز اول راه JS هستید، پیشنهاد میکنم یه نگاهی بهش بندازید، شاید بهتون ایده بده یا کمکتون کنه.
https://github.com/whosfatima/Snake_Mini_Game
@DevTwitter | <whosfatima/>
Forwarded from Laravel News
Laravel Boost, your AI coding starter kit https://laravel-news.com/laravel-boost-your-ai-coding-starter-kit
Laravel News
Laravel Boost, your AI coding starter kit - Laravel News
Introducing Laravel Boost, your AI coding starter kit.
Forwarded from SoniaCircuit (Soroush)
This media is not supported in your browser
VIEW IN TELEGRAM
Forwarded from DevTwitter | توییت برنامه نویسی
بررسی نظرسنجی Stack Overflow 2025
نتایج نظرسنجی امسال سایت Stack Overflow منتشر شده. بیاید ببینیم صنعت و تکنولوژی های مختلف تو چه وضعیتی قرار دارن. تو این ویدیو یه بررسی خیلی سریع رو این نتایج انجام میدیم. در نهایت نتایج بهتون میگه که Rust رو بیشتر جدی بگیرید و دوستش داشته باشید، اگه از شغلتون خوشحال نیستید خیلی طبیعیه و تقریبا مثه بقیه هستید، آدما به هوش مصنوعی اعتماد ندارن و هنوز هم اونو یه تهدید جدی برای شغلشون نمیدونن :)
لینک یوتیوب
https://www.youtube.com/watch?v=8D8xQV9pgFw
@DevTwitter | <Rouzbeh/>
نتایج نظرسنجی امسال سایت Stack Overflow منتشر شده. بیاید ببینیم صنعت و تکنولوژی های مختلف تو چه وضعیتی قرار دارن. تو این ویدیو یه بررسی خیلی سریع رو این نتایج انجام میدیم. در نهایت نتایج بهتون میگه که Rust رو بیشتر جدی بگیرید و دوستش داشته باشید، اگه از شغلتون خوشحال نیستید خیلی طبیعیه و تقریبا مثه بقیه هستید، آدما به هوش مصنوعی اعتماد ندارن و هنوز هم اونو یه تهدید جدی برای شغلشون نمیدونن :)
لینک یوتیوب
https://www.youtube.com/watch?v=8D8xQV9pgFw
@DevTwitter | <Rouzbeh/>
Forwarded from SoniaCircuit (Soroush)
This media is not supported in your browser
VIEW IN TELEGRAM
Forwarded from جادی | Jadi
قسمت جدید لذت شطرنج: پایان بازی شطرنج
https://youtu.be/ZrZBip5BT1g
https://youtu.be/ZrZBip5BT1g
YouTube
لذت شطرنج، قسمت ۳: پایان بازی؛ کیش، مات و مساوی
حالا که حرکات ابتدایی رو یاد گرفتیم وقتشه ببینیم بازی چطوری میتونه تموم بشه. مثل اکثر بازیهای دیگه، نتیجه نهایی یا برد است یا باخت و گاه گداری هم در مورد ما مساوی. توی این قسمت میبینیم چطوری میشه کیش داد و خطراتش چیه، بعد میبینیم که اگر حریف نتونه از…
Forwarded from Bardiaism
توی لینوکس میخواید اپلیکیشنی که به کمک timezone موقعیت مکانی شمارو حدس میزنه و سرویسشو تحریم میکنه گول بزنید؟
یه environment variable هست به اسم TZ که اکثر فریمورکها ازش پیروی میکنن. اونو روی timezone مورد نظر تنظیم کنید و بعد برنامه رو اجرا کنید.
مثلا برای نیویورک:
یا برای برلین:
روی خیلی برنامهها جواب میده.
همچنین میتونید از اینجا لیست کاملی از مقادیر timezone رو ببینید:
https://en.wikipedia.org/wiki/List_of_tz_database_time_zones
@Bardiaism
یه environment variable هست به اسم TZ که اکثر فریمورکها ازش پیروی میکنن. اونو روی timezone مورد نظر تنظیم کنید و بعد برنامه رو اجرا کنید.
مثلا برای نیویورک:
export TZ=America/New_York
یا برای برلین:
export TZ=Europe/Berlin
روی خیلی برنامهها جواب میده.
همچنین میتونید از اینجا لیست کاملی از مقادیر timezone رو ببینید:
https://en.wikipedia.org/wiki/List_of_tz_database_time_zones
@Bardiaism
Forwarded from DevTwitter | توییت برنامه نویسی
توی این سایت و ریپو الگوریتم های مرتب سازی رو سعی شده با مصورسازی نحوه کار و عملکردشون مقایسه بشه.
https://ds-fall2025.github.io/sorting_algo/
https://github.com/hrnrxb/sorting_algo
از کلاس ساختمان داده دانشگاه آزاد شیراز هست که اگر خواستید میتونید از سایت زیر به محتوای درسی نابشون دسترسی پیدا کنید
https://ds-fall2025.github.io/ds-fall2025/
@DevTwitter | <hrnrxb/>
https://ds-fall2025.github.io/sorting_algo/
https://github.com/hrnrxb/sorting_algo
از کلاس ساختمان داده دانشگاه آزاد شیراز هست که اگر خواستید میتونید از سایت زیر به محتوای درسی نابشون دسترسی پیدا کنید
https://ds-fall2025.github.io/ds-fall2025/
@DevTwitter | <hrnrxb/>
Forwarded from DevTwitter | توییت برنامه نویسی
Forwarded from DevTwitter | توییت برنامه نویسی
از چک کردن دهها سورس و پلتفرم برای پیگیری اخبار، پیپرها و ریپوهای داغ اخیر در دنیای AI خسته شدی؟
من یه پروژه AI News Aggregator Bot زدم که با استفاده از RSS Feed، جدیدترین و دست اولترین اخبار، مقالات علمی، پروژهها و ریپوهای داغ اخیر AI رو جمعآوری میکنه و مستقیم میفرسته به کانال تلگرام!
اینجوری دیگه همه چیزو یه جا داری و لازم نیست هزار تا سورس جدا رو چک کنی.
لینک ریپو:
https://github.com/hrnrxb/AI-News-Aggregator-Bot
دوستان عزیز میتونن فورکش کنن و با ایدههای خودشون بهترش کنن و قابلیتهای بیشتری بهش اضافه کنن.
در آینده نزدیک هم میخوام یه سیستم Sentiment Analysis قوی بندازم پشتش تا بر اساس میزان هایپ بودن، مقدار کلیک شدن و احساسات اون خبر، بازم بهترینها رو گلچین کنه و هوشمندتر عمل کنه!
@DevTwitter | <hrnrxb/>
من یه پروژه AI News Aggregator Bot زدم که با استفاده از RSS Feed، جدیدترین و دست اولترین اخبار، مقالات علمی، پروژهها و ریپوهای داغ اخیر AI رو جمعآوری میکنه و مستقیم میفرسته به کانال تلگرام!
اینجوری دیگه همه چیزو یه جا داری و لازم نیست هزار تا سورس جدا رو چک کنی.
لینک ریپو:
https://github.com/hrnrxb/AI-News-Aggregator-Bot
دوستان عزیز میتونن فورکش کنن و با ایدههای خودشون بهترش کنن و قابلیتهای بیشتری بهش اضافه کنن.
در آینده نزدیک هم میخوام یه سیستم Sentiment Analysis قوی بندازم پشتش تا بر اساس میزان هایپ بودن، مقدار کلیک شدن و احساسات اون خبر، بازم بهترینها رو گلچین کنه و هوشمندتر عمل کنه!
@DevTwitter | <hrnrxb/>
Forwarded from mnr tech
اگر طراح هستید و دنبال تصاویر وکتوری یا PNG های خوشگل برای طراحیهاتون 🎨 میگردید، یا اگر برنامهنویس هستید و میخواید برای سایتتون عکسهای جذاب انتخاب کنید 💻، میتونید از لیست سایتهای زیر استفاده کنید:
🖼 سایتهای تصاویر وکتوری و گرافیکی:
undraw.co
iradesign.io
storyset.com
humaaans.com
opendoodles.com
drawkit.com
manypixels.co
freepik.com
برخی از این سایتها قابلیت ویرایش رنگ و جزئیات تصاویر قبل از دانلود رو دارن. اما اگه با ابزارهای وکتور مثل Adobe Illustrator، CorelDRAW یا سایر نرمافزارهای طراحی مسلط باشید، میتونید فایلها رو بعد از دانلود هم به راحتی ویرایش کنید 🛠.
📦 برای آیکونها هم سایتهای زیر خیلی خوبن:
svgrepo.com
icons8.com
flaticon.com
و همچنین:
✨ iconify.design
این وبسایت برای استفاده از آیکون در پروژههای برنامهنویسی خیلی پیشنهاد میشه. میتونید آیکونها رو هم بهصورت کامپوننت در پروژههاتون استفاده کنید، هم بهصورت SVG دانلود کنید 🔧.
🖼 سایتهای تصاویر وکتوری و گرافیکی:
undraw.co
iradesign.io
storyset.com
humaaans.com
opendoodles.com
drawkit.com
manypixels.co
freepik.com
برخی از این سایتها قابلیت ویرایش رنگ و جزئیات تصاویر قبل از دانلود رو دارن. اما اگه با ابزارهای وکتور مثل Adobe Illustrator، CorelDRAW یا سایر نرمافزارهای طراحی مسلط باشید، میتونید فایلها رو بعد از دانلود هم به راحتی ویرایش کنید 🛠.
📦 برای آیکونها هم سایتهای زیر خیلی خوبن:
svgrepo.com
icons8.com
flaticon.com
و همچنین:
✨ iconify.design
این وبسایت برای استفاده از آیکون در پروژههای برنامهنویسی خیلی پیشنهاد میشه. میتونید آیکونها رو هم بهصورت کامپوننت در پروژههاتون استفاده کنید، هم بهصورت SVG دانلود کنید 🔧.
Forwarded from 🎄 یک برنامه نویس تنبل (Lazy 🌱)
Forwarded from 🎄 یک برنامه نویس تنبل (Lazy 🌱)
🔶 به نظرم این بهترین پروژه ای بود که نوشتم.
https://github.com/Rayiumir/TaskSquad
قابلیت تجاری سازی داره ولی ...
#لاراول
@TheRaymondDev
https://github.com/Rayiumir/TaskSquad
قابلیت تجاری سازی داره ولی ...
#لاراول
@TheRaymondDev
GitHub
GitHub - Rayiumir/TaskSquad: A Tasks Management Project Based on Laravel and Livewire
A Tasks Management Project Based on Laravel and Livewire - Rayiumir/TaskSquad
Forwarded from Ninja Learn | نینجا لرن (Mohammad)
This media is not supported in your browser
VIEW IN TELEGRAM