Forwarded from کداکسپلور | CodeExplore (D@n!)
سلام رفقای کد به دست (یا دست به کد) ! امروز میخوایم درباره یه موضوع حیاتی حرف بزنیم: چطوری تو دنیای وحشی فریلنسری، یه پروژه بگیریم و زنده بمونیم تا تهش!
رزومهتون رو طوری بنویسید انگار دارید برای اسکار نامزد میشید
- پلتفرمهای فریلنسری مثل Upwork, Freelancer, Fiverr (اینجا جنگله، مراقب شیرها باشید (و همچنین کفتار ها😂)!)
- جاهایی مثل پونیشا هم هست ، که برای شروع خوبه ، اما دستمزدا عجیبه
- گروههای لینکدین و فیسبوک (بله، فیسبوک هنوزم زندهست!)
- وبسایتهای محلی و فرومهای تخصصی (شاید یه گنج پنهان پیدا کنید)
و مهم تر از همه جا تلگرام دوست داشتنیمون
- درخواست هارو شخصیسازی کنید (نه اینکه کپی پیست کنید و فقط اسم طرف رو عوض کنید!)
- نمونه کار مرتبط بفرستید (نه اینکه پروژه موز فروشی رو برای یه شرکت فناوری نانو بفرستید
- قیمت منطقی پیشنهاد بدید (نه اونقدر پایین که از گشنگی بمیرید، نه اونقدر بالا که طرف سکته کنه
- یاد بگیرید "نه" بگید (حتی به اون پروژه وسوسهانگیزی که میدونید از پسش برنمیاید)
- سوال بپرسید (نه اینکه فقط بله و چشم بگید)
- شفافسازی کنید (هر جمله ایی که میگید تاثیر گذاره)
- زمانبندی و بودجه رو مشخص کنید (وگرنه پروژهتون مثل سریالهای ترکی کش میاد)
- حتماً قرارداد ببندید (حتی اگه طرف مقابل بابابزرگتون باشه!)
- جزئیات رو مشخص کنید (وگرنه بعداً میفهمید قراره موشک هم بسازید)
- شرایط پرداخت رو دقیق بنویسید (چون پول حلال مشکلاته، ولی بیپولی خودش یه مشکل بزرگه)
- حتما 50 تا 60 درصد هزینه پروژه رو به عنوان پیش پرداخت بگیرید (وگرنه ممکنه آخرش فقط با یه "دمتم گرم" خدافظی کنید)
- زمانبندی کنید (نه اینکه روز آخر یادتون بیفته پروژه دارید)
- ارتباط منظم داشته باشید (کارفرما رو تو خماری نذارید، بهش آپدیت بدید)
- از ابزارهای مدیریت پروژه استفاده کنید (نه اینکه همه چی رو رو کاغذ یادداشت کنید و بعد گمش کنید
- تمیز و مرتب کد بزنید (جوری که انگار قراره بعداً خودتون بخونید، چون احتمالاً مجبور میشید!)
- مستندسازی کنید (بله، اون کامنتهایی که همیشه میگید بعداً مینویسم ...)
- تست کنید، تست کنید، و باز هم تست کنید (وگرنه بعداً جای اشک و آه و ناله دارید)
- همه چیز رو دوباره چک کنید (حتی اون قسمتی که مطمئنید درسته)
- یه نفر دیگه هم نگاه کنه (چهار تا چشم بهتر از دوتاست)
- آماده باشید برای سوالات (چون یهو یادشون میاد یه ویژگی دیگه هم میخواستن ، انگار ما مسخرشونیم
- همه چیز رو مرتب و منظم تحویل بدید (نه اینکه فایلها رو بریزید تو یه فولدر به اسم "آخرین ورژن نهایی ،واقعیه این دفعه جدی")
- آموزش بدید (جوری که انگار دارید به مادربزرگتون یاد میدید چجوری از لینوکس استفاده کنه)
- برای تغییرات احتمالی آماده باشید (چون همیشه یه چیزی هست که یادشون رفته بگن و حتما بررسی کنید که چیز اضافه ایی نباشه)
- دقیق و کامل بنویسید (نه اینکه بزنید :یه چیزایی کد زدیم، لطفاً پولشو بدید)
- زمان پرداخت رو مشخص کنید (وگرنه تا آخر عمر منتظر میمونید)
- روش پرداخت رو هماهنگ کنید (چک، کارت به کارت، ارز دیجیتال، یا شاید هم گونی سیبزمینی!)
- مؤدبانه پیگیری کنید (نه اینکه هر روز زنگ بزنید و گریه کنید)
- اگه تأخیر شد، علتش رو بپرسید (شاید واقعاً مشکلی پیش اومده و تو گرفتاریه!)
- برای موارد اضطراری آماده باشید
#programming #project #freelancer
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from کداکسپلور | CodeExplore (𝙰𝚖𝚒𝚗)
چند ماهیه دارم روی یه پروژه اوپن سورس کار میکنم برای دپلوی کردن پروژه هایی که بک اند لاراول دارن.
قضیه از اون جایی شروع شد که پارسال بررسی که کردم دیدم سولوشن استفاده از سرویس های کم کیفیت و گرون داخلی هست و یا سلف هاست که منابع موجود اوپن سورس و آموزش ها اکثرا خیلی ضعیف، ناقص و یا دارای اشتباهات اساسی هست و عملا بردرد پروداکشن نمیخورن منم خورد خورد کارو شروع کردم و الان به جای خیلی خوبی رسیدم.
چون پروداکشن خیلی حساسه میخوام که اگه کسی هست که توی زمینه دوآپس (ابونتو سرور، داکر کامپوز و بش) تجربه داره تا قبل از اینکه پروژه رو استیبل منتشر کنم کمی با هم مشورت کنیم و رو پروژه کانتریبیوت کنه تا بهینه تر بشه.
🌐 https://github.com/MansourM/ez-docker-for-laravel
#php #laravel #backend #project
☕️ @CodeExplore
قضیه از اون جایی شروع شد که پارسال بررسی که کردم دیدم سولوشن استفاده از سرویس های کم کیفیت و گرون داخلی هست و یا سلف هاست که منابع موجود اوپن سورس و آموزش ها اکثرا خیلی ضعیف، ناقص و یا دارای اشتباهات اساسی هست و عملا بردرد پروداکشن نمیخورن منم خورد خورد کارو شروع کردم و الان به جای خیلی خوبی رسیدم.
چون پروداکشن خیلی حساسه میخوام که اگه کسی هست که توی زمینه دوآپس (ابونتو سرور، داکر کامپوز و بش) تجربه داره تا قبل از اینکه پروژه رو استیبل منتشر کنم کمی با هم مشورت کنیم و رو پروژه کانتریبیوت کنه تا بهینه تر بشه.
#php #laravel #backend #project
Please open Telegram to view this post
VIEW IN TELEGRAM
GitHub
GitHub - MansourM/ez-docker-for-laravel: easy to setup, robust and production ready environment for Laravel using Docker, Docker…
easy to setup, robust and production ready environment for Laravel using Docker, Docker Compose and bash script. - MansourM/ez-docker-for-laravel
Forwarded from LearnPOV | لرن پی او وی
بهترین پروژهها، برای افزایش مهارت خودتون در برنامه نویسی Frontend ✅
🎧 پخشکننده موزیک
🧮 ماشین حساب
🌥️ اپلیکیشن آب و هوا ( Real Api )
⏱️ اپلیکیشن تایمر و کرنومتر
📝 لیست کارها (To-Do List)
#frontend | #project
🎧 پخشکننده موزیک
این مینی پروژه میتونی تمرین فوقالعاده ای باشه برای کار با فایلهای رسانهای و APIهای HTML5 مثل Audio API و همچنین بهتون کمک میکنه تا با کار با فایلهای MP3 به صورت پویا آشنا میشوید.
🧮 ماشین حساب
این پروژه بهتون کمک میکنه تا در کار با event های مختلف و همچنین انجام محاسبات ریاضی در جاوااسکریپت حرفه ای
تر بشید و نحوه طراحی رابط کاربری پویا و مدیریت حالتهای مختلف در یک پروژه رو یاد بگیرید.
🌥️ اپلیکیشن آب و هوا ( Real Api )
این پروژه بهتون کمک میکنه تا توی استفاده از APIهای خارجی و واقعی حرفه ای تر بشید.
⏱️ اپلیکیشن تایمر و کرنومتر
این پروژه بهتون کمک میکنه تا با استفاده از توابع زمانبندی مثل setInterval و setTimeout، کار با زمان رو بهتر درک کنید و همچنین با چالشهای کنترل زمان و متوقفکردن و ... سروکار داشته باشید.
📝 لیست کارها (To-Do List)
این پروژه برای تمرین خود جاوااسکریپت و کار با DOM خیلی خوبه. باید یه صفحه بسازید که کاربر بتونه کارهای جدید رو اضافه کنه، کارهای انجام شده رو تیک بزنه و مواردی رو که نمیخواد حذف کنه.
ایجاد Todo List با Reactjs
🗨️ 𝗖𝗛𝗔𝗡𝗡𝗘𝗟 | 𝗚𝗥𝗢𝗨𝗣
Forwarded from LearnPOV | لرن پی او وی
بهترین پروژهها، برای افزایش مهارت خودتون در برنامه نویسی Frontend ( سطح حرفه ای ) 🚀
✨ کلون YouTube
📊 پنل مدیریتی
🛍️ فروشگاه اینترنتی کامل
⚒️ اپلیکیشن مدیریت پروژه
و در نهایت یکی از بهترین پروژه هایی که میتونید بزنید 😍
💎 ساخت Portfolio جذاب 3D
امیدوارم از این مطلب لذت برده باشید، با ریاکشنای خودتون بهمون انرژی بدید ❤️🔥
✨ کلون YouTube
ساخت کلونی از YouTube که شامل صفحهاصلی، صفحهآپلود ویدیو و همچنین پخش ویدیوها باشه، البته که خودتون میتونید قسمت های تکمیلی تر رو بهش اضافه بکنید.
📊 پنل مدیریتی
یک داشبورد مدیریتی که اطلاعات رو از طریق جداول (با کتابخانههایی مثل MUI یا D3.js) نمایش بده + فرم های ایجاد و آپدیت حرفه ای.
🛍️ فروشگاه اینترنتی کامل
یک فروشگاه آنلاین با امکان مدیریت سبد خرید، دستهبندی محصولات و ... که میتونید توی پیاده سازیش از fakeApi هم استفاده بکنید که پروژه جذاب و چالش برانگیزی هستش.
⚒️ اپلیکیشن مدیریت پروژه
ابزاری شبیه Trello با قابلیت D&D و مدیریت حرفهای تر وظایف که حرف ای تر از یک todo list ساده باشه میتونه نمونه کار خوبی باشه مخصوصا اگر خودتون قابلیت های خلاقانه تری بهش اضافه بکنید.
و در نهایت یکی از بهترین پروژه هایی که میتونید بزنید 😍
💎 ساخت Portfolio جذاب 3D
پروژه پورتفولیو درواقع یک وبسایته برای نمایش مهارتها، پروژهها و رزومه خودتون.
این پروژه به شما کمک میکنه تا توی طراحی صفحات 3D حرفه ای تر بشید و همچنین بهترین مکان برای به رخ کشیدن مهارت های خودتونه 💥
#️⃣ #frontend #project
🫶 𝗖𝗛𝗔𝗡𝗡𝗘𝗟 | 𝗚𝗥𝗢𝗨𝗣
Forwarded from Anophel | آنوفل
آیا تا به حال به یک ساختار کامل و منظم برای مدیریت پروژههای #گولنگ ( Go# ) با معماری Domain-Driven Design (DDD) فکر کردهاید؟ در این پست قصد داریم این ساختار را با جزئیات بیشتری بررسی کنیم و به شما نشان دهیم چگونه میتوانید پروژهتان را مرتبتر و کارآمدتر پیش ببرید.
پست قبلی ما در این لینک:
https://lnkd.in/evuPH7cB
1. سطح بالا (Root Directory):
-cmd/:
- این دایرکتوری برای نقاط ورود برنامه استفاده میشه. هر اپلیکیشن قابلاجرا، چه سرور باشه چه ابزارهای CLI یا میکروسرویسها، اینجا قرار میگیره.
- مثال: cmd/app/main.go: فایل اصلی که نقطه شروع اجرای برنامه است. این فایل باید تمیز و ساده باشه و فقط وظیفهی مقداردهی اولیه مثل خواندن تنظیمات، ایجاد کانکشنها، و شروع سرور رو برعهده داشته باشه.
- internal/:
- کدهایی که مختص پروژهی ما هستن و نباید توسط ماژولهای خارجی استفاده بشن، اینجا قرار میگیرن. در گولنگ، دایرکتوری internal بهصورت پیشفرض دسترسی ماژولهای خارجی رو محدود میکنه.
- pkg/:
- شامل کتابخانهها و کدهای قابل استفاده مجدد هست که ممکنه در پروژههای دیگه یا بخشهای دیگه همین پروژه استفاده بشن. دقت کنید که این دایرکتوری باید از internal جدا باشه چون عمومیتر هست.
- configs/:
- تنظیمات پروژه مثل فایلهای yaml، json یا toml که برای کانفیگ سرور، دیتابیس یا سرویسهای دیگه استفاده میشن اینجا قرار میگیرن.
- go.mod و go.sum:
- این فایلها وظیفه مدیریت وابستگیها رو به عهده دارن و توسط Go Modules استفاده میشن.
2. دایرکتوری داخلی (internal/):
این دایرکتوری قلب پروژهست و تمامی دامنههای پروژه رو در خودش جای میده. هر دامنه یا Bounded Context به صورت جداگانه سازماندهی شده.
ساختار دامنه (مثال: user/):
- user.go (Model):
- شامل مدلها و ساختارهای دادهای مرتبط با دامنه است.
- repository.go:
- مسئول مدیریت دسترسی به دادهها (Data Access Layer) هست.
- service.go:
- این لایه منطق تجاری رو پیادهسازی میکنه و سرویسها با repository تعامل دارند و مدیریت فرآیندهای مربوط به دامنه رو انجام میدن.
- handler.go:
- این لایه مدیریت درخواستهای ورودی (HTTP یا gRPC) و اتصال اونها به سرویسها رو بر عهده داره.
ساختار دامنه دیگر (مثال: product/):
- دامنههای دیگه مثل product ساختاری مشابه دارند. هر دامنه بهصورت مستقل پیادهسازی شده و شامل لایههای مدل، سرویس، ریپازیتوری و هندلر هست.
کاربرد این ساختار در DDD:
- تفکیک دامنهها :
- هر دامنه کاملاً مستقل پیادهسازی شده و میتونه به صورت جداگانه توسعه یابد.
- انعطافپذیری:
- با این ساختار، میتونید تغییرات یا افزودن دامنههای جدید رو بدون تأثیر روی سایر بخشها انجام بدید.
-مقیاسپذیری:
- هر دامنه میتونه بهصورت مجزا تست و مقیاسدهی بشه. برای مثال، در صورت نیاز، میتونید دامنه خاصی رو به یک سرویس مستقل تبدیل کنید.
سازگاری با معماریهای مدرن:
- این ساختار برای پروژههای میکروسرویس، مونولیت ماژولار یا حتی معماریهای لایهای مناسب است.
آیا شما هم تجربهای در استفاده از معماری DDD# دارید؟ خوشحال میشوم که تجربیات و نظرات خود را با ما به اشتراک بگذارید!
Anophel | آنوفل
پست قبلی ما در این لینک:
https://lnkd.in/evuPH7cB
1. سطح بالا (Root Directory):
-cmd/:
- این دایرکتوری برای نقاط ورود برنامه استفاده میشه. هر اپلیکیشن قابلاجرا، چه سرور باشه چه ابزارهای CLI یا میکروسرویسها، اینجا قرار میگیره.
- مثال: cmd/app/main.go: فایل اصلی که نقطه شروع اجرای برنامه است. این فایل باید تمیز و ساده باشه و فقط وظیفهی مقداردهی اولیه مثل خواندن تنظیمات، ایجاد کانکشنها، و شروع سرور رو برعهده داشته باشه.
- internal/:
- کدهایی که مختص پروژهی ما هستن و نباید توسط ماژولهای خارجی استفاده بشن، اینجا قرار میگیرن. در گولنگ، دایرکتوری internal بهصورت پیشفرض دسترسی ماژولهای خارجی رو محدود میکنه.
- pkg/:
- شامل کتابخانهها و کدهای قابل استفاده مجدد هست که ممکنه در پروژههای دیگه یا بخشهای دیگه همین پروژه استفاده بشن. دقت کنید که این دایرکتوری باید از internal جدا باشه چون عمومیتر هست.
- configs/:
- تنظیمات پروژه مثل فایلهای yaml، json یا toml که برای کانفیگ سرور، دیتابیس یا سرویسهای دیگه استفاده میشن اینجا قرار میگیرن.
- go.mod و go.sum:
- این فایلها وظیفه مدیریت وابستگیها رو به عهده دارن و توسط Go Modules استفاده میشن.
2. دایرکتوری داخلی (internal/):
این دایرکتوری قلب پروژهست و تمامی دامنههای پروژه رو در خودش جای میده. هر دامنه یا Bounded Context به صورت جداگانه سازماندهی شده.
ساختار دامنه (مثال: user/):
- user.go (Model):
- شامل مدلها و ساختارهای دادهای مرتبط با دامنه است.
- repository.go:
- مسئول مدیریت دسترسی به دادهها (Data Access Layer) هست.
- service.go:
- این لایه منطق تجاری رو پیادهسازی میکنه و سرویسها با repository تعامل دارند و مدیریت فرآیندهای مربوط به دامنه رو انجام میدن.
- handler.go:
- این لایه مدیریت درخواستهای ورودی (HTTP یا gRPC) و اتصال اونها به سرویسها رو بر عهده داره.
ساختار دامنه دیگر (مثال: product/):
- دامنههای دیگه مثل product ساختاری مشابه دارند. هر دامنه بهصورت مستقل پیادهسازی شده و شامل لایههای مدل، سرویس، ریپازیتوری و هندلر هست.
کاربرد این ساختار در DDD:
- تفکیک دامنهها :
- هر دامنه کاملاً مستقل پیادهسازی شده و میتونه به صورت جداگانه توسعه یابد.
- انعطافپذیری:
- با این ساختار، میتونید تغییرات یا افزودن دامنههای جدید رو بدون تأثیر روی سایر بخشها انجام بدید.
-مقیاسپذیری:
- هر دامنه میتونه بهصورت مجزا تست و مقیاسدهی بشه. برای مثال، در صورت نیاز، میتونید دامنه خاصی رو به یک سرویس مستقل تبدیل کنید.
سازگاری با معماریهای مدرن:
- این ساختار برای پروژههای میکروسرویس، مونولیت ماژولار یا حتی معماریهای لایهای مناسب است.
آیا شما هم تجربهای در استفاده از معماری DDD# دارید؟ خوشحال میشوم که تجربیات و نظرات خود را با ما به اشتراک بگذارید!
Anophel | آنوفل
Linkedin
Mohammad Abdorrahmani on LinkedIn: #گولنگ #golang #go #project_folder_structures
وقتی در اولین قدم، پروژه گولنگ (Golang) رو شروع میکنید، چطور ساختار پوشهها رو انتخاب میکنید تا هم سرعت توسعهتون بالا باشه و هم تجربهی خوبی داشته باشید؟…