🎄 یک برنامه نویس تنبل – Telegram
🎄 یک برنامه نویس تنبل
2K subscribers
1.5K photos
279 videos
37 files
1.88K links
کانال یک برنامه نویس تنبل

🔥لینوکس
🔥برنامه نویسی فرانت‌اند
🔥برنامه نویسی بک‌اند
🔥اخبار تکنولوژی و...

ارتباط با مدیریت :

@CoderNap

اسپانسر هاست سایت راییوم توسط پوینا

https://rayium.ir

@poinair
Download Telegram
🔶 شرط اصلی برای فریلنسر شدن :

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

@TheRaymondDev
🔶 فایل های ترجمه mo و po وردپرس به PHP تبدیل کنید

علت این کار سرعت سایت های ترجمه شده را افزایش میدهد و زیرا اگر سایت فایل ترجمه به زبان های mo و po باشد, سرعت بارگزاری آن تا 50 درصد را کاهش می دهد و باعث کاهش عملکرد سرور می شود.

نتیجه این کار توسط تیم توسعه وردپرس طبق تحقیقاتی بدست آمده است.

دانلود افزونه وردپرس :

https://wordpress.org/plugins/performant-translations/

@TheRaymondDev
کانال را به دوستان خود معرفی کنید.
دمت گرم ❤️

https://news.1rj.ru/str/TheRaymondDev
👍1
🎄 یک برنامه نویس تنبل pinned «کانال را به دوستان خود معرفی کنید. دمت گرم ❤️ https://news.1rj.ru/str/TheRaymondDev»
🔶 ماژولار کردن یک پروژه لاراولی کار سختی نیست.

پکیچ (وابستگی) لاراول ماژولار به نام Laravel-Modules از معروف ترین پکیچ برای لاراول می باشد که پروژه لاراول را خیلی سریع با چند دستور ماژولار می کند.

پیوند گیت هاب :

https://github.com/nWidart/laravel-modules

برای نصب آن دستور زیر را وارد کنید:
composer require nwidart/laravel-modules


با دستور زیر فایل کانفیگ اون رو از داخل فولدر vendor استخراج میکنیم:

php artisan vendor:publish --provider="Nwidart\Modules\LaravelModulesServiceProvider"


وارد فایل composer.json بشید و توی بخش autoloading، پکیج رو رجیستر کنید:

{
"autoload": {
"psr-4": {
"App\\": "app/",
"Modules\\": "Modules/",
"Database\\Factories\\": "database/factories/",
"Database\\Seeders\\": "database/seeders/"
}
}


خب نصب آن به اتمام رسید و می رسیم به آموزش کار با وابستگی لاراول ماژولار ... 😍😘

@TheRaymondDev
🔶 خب رسیدیم به آموزش کار با لاراول ماژولار با چند دستور ساده

برای ساخت یک ماژول جدید کافیه اسم آن به جای <module-name> را وارد کنید:

php artisan module:make <module-name>


مثال :
مثلا می خوام ماژول User ایجاد کنم و فقط کافیه دستور زیر را وارد کنید:
php artisan module:make User


بعد از اجرای دستور بالا یک فولدر به بخش اصلی پروژه به اسم Modules اضافه میشه و یه فایل به اسم modules_statuses.json ماژول هایی که ایجاد میکنید محتویات اون درون پوشه Modules میره و یه لاین هم درون modules_statuses.json اضافه میشه که مقدار بولین داره که مشخص میکنه ماژول شما فعال هست یا خیر.

اگر دستور زیر را وارد کنید پوشه و فایل های مرتبط با Modules لیست می کند:

php artisan module


یا مثال دیگر برای ایجاد مدل مربوط به User دستور را به شکل زیر وارد می کنیم:

php artisan module:make-model User User


دستور بالا User اول اسم مدل ما هستش و User دوم هم مشخص میکند که این مدل مربوط به کدوم ماژول هستند.

لیست زیر کلیه دستورات مربوط به وابستگی Laravel Modules آمده است:

https://nwidart.com/laravel-modules/v6/advanced-tools/artisan-commands

تمام شد 😊

@TheRaymondDev
🔶 اینم پیش نمایش ماژول ایجاد شده User لاراول

@TheRaymondDev
🔶 بی بی سی دوره‌ی ۴۴ جلسه‌ای تمرینی محور یادگیری انگلیسی را رایگان منتشر کرد.
ثبت نام و کار اضافه هم نمی‌خواهد، از لینک زیر می‌توانید شروع کنید:

https://www.bbc.co.uk/learningenglish/course/how-to-speak-english/unit-1

@TheRaymondDev
خودم را معرفی می کنم

بنده رایموند باغومیان هستم

برنامه نویس لاراول و وردپرس و 10 سال تجربه برنامه نویسی ...

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

در حال نوشتن پلتفرم آموزشی با چارچوب لاراول هستم.

سایت هم دارم: https://rayium.ir
ابزارهای یک فریلنسر :

ابزارهایی که من خودآگاه و ناخودآگاه توی این دو سال تجربه ام از فریلنسری به سمت شون رفتم ایناس:

1) ابزار مدیریت تسک ها : میزیتو / Microsoft to do / Google Tasks
2) ابزار مدیریت اهداف و برنامه ها : Notion
3) ابزار برگزاری جلسات : Google Meet
4) ابزار ذخیره سازی و نگهداری : Google Drive
5) ابزار مدیریت پروژه : Slack / ClickUp
6) ابزار ساخت لینک : زیلینک
7) ابزار اشتراک محتوا : Google data sheet
8) ابزار ایده یابی : Xmind

چه ابزار دیگه ای هست که برای مدیریت کارها، وظایف و عملکردتون استفاده میکنید و توی این لیست نیست؟

https://www.linkedin.com/embed/feed/update/urn:li:share:7103721087581966337

@TheRaymondDev
🔥1
🔶 آموزش کار با وابستگی تاریخ شمسی (Verta) در لاراول

اکثرا از وابستگی JDF برای نمایش تاریخ شمسی در پروژه ها به کار می گیریم و هم اکنون سراغ وابستگی تاریخ شمسی ورتا می رویم که چگونه این وابستگی در لاراول به کار بگیریم و تاریخ و ساعت میلادی را به شمسی نمایش دهیم.

دستور نصب وابستگی ورتا:

composer require hekmatinasser/verta


در فایل User.php لاراول تابع زیر را در انتهای آن وارد کنید

public function getCreateAtShamsi()
{
return new Verta($this->created_at);
}


در کنترلر UserController تابع زیر را وارد کنید

public function index()
{
$users = User::all();
return view('admin.users.index', compact('users'));
}


کد زیر تاریخ و ساعت کاربر عضو شده را نمایش می دهد

@foreach($users as $row)
<tr>
<th scope="row">{{$row->id}}</th>
<td>{{$row->name}}</td>
<td>{{$row->email}}</td>
<td>{{$row->getCreateAtShamsi()}}</td>
</tr>
@endforeach


گیت هاب :

https://github.com/hekmatinasser/verta

@TheRaymondDev
👍1
🔶 درود دوستان ، من یه نرم افزاری نوشتنم که فکر می کنم به درد همه میخوره و میخام به صورت رایگان در اختیار همه قرار بدم ، همیشه عاشق دنیای نرم افزار های رایگان و متن باز بودم و خوشحالم که امروز دارم تو لینکدین اولین نرم افزار سیستمی کاربردی خودم رو عرضه می کنم

خب یه توضیحی بدیم که این نرم افزار چیکار میکنه

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

من همیشه برای مدیریت آموزش هایی که میدیدم ضعف داشتم و نمیتونستم به یاد داشته باشم که دقیقاً امروز باید از کجا ادامه ی آموزشم رو ببینم مخصوصاً اگه چند روزی وقفه میفتاد و یجورایی رشته ی کار از دستم در میرفت

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

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

تو همون گیت هاب توضیحاتی هم گذاشتم که با انجامش براحتی میتونین از نرم افزار استفاده کنین

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

همچنین خیلی خوشحال میشم تو گیت هاب همدیگه رو داشته باشیم

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

گیت هاب : https://github.com/sajjadabd/python-course-player

https://www.linkedin.com/feed/update/urn:li:activity:7103756127934242816/

@TheRaymondDev
سلام دوستان...
در شرکتی به عنوان مونتاژکار الکترونیک کار کردم.
کار با الکترونیک دوست دارم و در کنار برنامه نویسی هم می کردم.
کل کار با شرکت دو ماه بودم و بعد از آن از شرکت خارج شدم.
علت ترک کار چی بوده؟
علت ترک کار #محیط سمی آن بوده به اضافه مجبوری به خواسته آن تن بدید.
چون در ماه آخر #شرکت #جشن تولدی برگزار کرد و من مایل به شرکت در آن نبودم و علاقه ای نداشتم و به همین خاطر #سرپرست به بهانه فلانی منو اخراج کرد که میگه تو به آدمای اینجا نمی سازی و چرا در جشن شرکت نمی کنید و فلان ...
وقتی علاقه به اینکارا ندارم چرا مجبور می کنید به خواسته های آنها تن بدم.
توی زندگیم هیچ وقت تولدی نگرفتم ...

https://www.linkedin.com/feed/update/urn:li:activity:7104066889093394432/

@TheRaymondDev
2
⭕️ مایکروسافت پس از 28 سال WORDPAD را از ویندوز حذف می کند.

@TheRaymondDev
🔶 اگر در ویرایش دسته بندی می خواهید والدهای مرتبط با دسته بندی نمایش دهید, کد زیر را استفاده کنید:

Category::where('id', '!=', $category->id)->get();

کد مربوطه برای لاراول هست.

@TheRaymondDev
🙋‍♂️ سلام...
همین چند دقیقه پیش نوشتن دیزاین پترن برای دسته بندی تمام کردم.
اولش دچار تردید شدم که مزایای نوشتن دیزاین پترن برای لاراول چیه؟
با کمی تحقیق برای تمیز نگاه داشتن کدها و استفاده مجدد از کدها در پروژه بعدی هست.

مزایای دیزاین پترن :

- ایجاد ساختاری منسجم و متمرکز
- حذف کد های تکراری
- توسعه و نگهداری آسانتر
- کاهش خطا و خطایابی سریعتر
- از بین بردن وابستگی های بین مدل و کنترلر
- کد تمیز و واضحتر

یه نمونه دیزاین پترن برای دسته بندی نوشتم.

نمونه کد کنترلر دسته بندی:

<?php

namespace modules\LMS\Category\Http\Controllers;

use App\Http\Controllers\Controller;
use modules\LMS\Category\Http\Requests\CategoryRequest;
use modules\LMS\Category\Repositories\CategoryRepo;

class CategoryController extends Controller
{
public CategoryRepo $repo;

public function __construct(CategoryRepo $categoryRepo)
{
$this->repo = $categoryRepo;
}
public function index()
{
$categories = $this->repo->all();
return view('Categories::index', compact('categories'));
}

public function store(CategoryRequest $request)
{
$this->repo->store($request);

$notification = array(
'message' => 'دسته جدید با موفقیت ایجاد شد.',
'alert-type' => 'success'
);

return back()->with($notification);
}

public function edit($categoryId)
{
$category = $this->repo->findById($categoryId);
$categories = $this->repo->allExceptById($categoryId);
return view('Categories::edit', compact('categories', 'category'));
}

public function update($categoryId, CategoryRequest $request)
{
$this->repo->update($categoryId, $request);

$notification = array(
'message' => 'دسته جدید با موفقیت به روز رسانی شد.',
'alert-type' => 'success'
);

return to_route('category.index')->with($notification);
}

public function destroy($categoryId)
{
$this->repo->delete($categoryId);

$notification = array(
'message' => 'دسته با موفقیت حذف شد.',
'alert-type' => 'success'
);

return back()->with($notification);
}
}

نمونه کد مخزن برای دسته بندی (CategoryRepo) :

<?php

namespace modules\LMS\Category\Repositories;

use modules\LMS\Category\Models\Category;

class CategoryRepo
{
public function all(): \Illuminate\Database\Eloquent\Collection
{
return Category::all();
}

public function store($values): void
{
Category::create([
'name' => $values->name,
'slug' => $values->slug,
'parent_id' => $values->parent_id,
]);
}

public function allExceptById($id): \Illuminate\Support\Collection|\Illuminate\Database\Eloquent\Collection
{
return $this->all()->filter(function ($item) use ($id) {
return $item->id != $id;
});
}

public function findById($id)
{
return Category::findOrfail($id);
}

public function update($id, $values): void
{
Category::where('id', $id)->update([
'name' => $values->name,
'slug' => $values->slug,
'parent_id' => $values->parent_id,
]);
}

public function delete($id)
{
return Category::where('id', $id)->delete();
}

public function tree()
{
return Category::where('parent_id', null)->with('subCategories')->get();
}
}

من این نمونه کد را به اشتراک می زارم که درک درستی از دیزاین پترن داشته باشید.

@TheRaymondDev
سلام دوستان...
یه جوانی آمد و به من گفت :
آقای رایموند من از کار کردن در #شرکت برنامه نویسی خسته شدم و با #حقوق بخور و نمیر 15 میلیون تومان در ماه, 3 سال در شرکت کار کردم و حالا از من درخواست #سفته 200 میلیونی کرده که شرکت را ترک نکنم و منو نگه دارد...

و گفت: شرکت وضعش خوبه اما به دلیل عدم #مدیریت درست برنامه نویسان حرفه ای در حال ترک شرکت هستند و شاید با کمبود نیروی انسانی با تجربه شرکت ورشکست شود!

در ادامه به من گفت: آقا من می خوام #دوره #آموزشی #لاراول - #ریکت پروژه محور بسازم و دیگه نمی خوام در شرکت کار کنم.

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

خلاصه در آخر گفت : من با این همه کار ۱۵ میلیون انگار داشتم حقوق کارگری می گرفتم و نه حقوق درست می دن تو ایران و نه امنیت شغلی داری و فقط شرکت ها به فکر خودشون هستند و من اگه پول داشتم, حتما مهاجرت می کردم.

خب منم به فکر #مهاجرت هستم

آنها به این فکر نمی کند که اگر کشور #جوانان با استعداد به اصصلاح #نخبگان از دست بدهد که به معنای نابودی کشور است؟

امیدوارم درک کرده باشند ور گرنه امیدی به #آینده این کشور ندارم که روز به روز #سرمایه های انسانی کشور در آستانه از بین رفتن است.


https://www.linkedin.com/feed/update/urn:li:activity:7104935707244158976/

@TheRaymondDev
1👍1
🔶 اوبونتو برای شروع به علت تمام اسنپ بودن پیشنهاد نمی شود.

ایراداتی که Snap دارد که برای هر نرم افزار یه حلقه روی سرویس های Systemd می سازد و هنگام بوت هم به SSD و هم به سیستم فشار میاورد و در آخر اوبونتو اجرا نشود به طوری که بوت به شدت مختل می کرد.

@TheRaymondDev
🔶 آیا استفاده Swap در SSD هنگام پارتیشن بندی لینوکس نیاز است؟

اساسا Swap برای کمک به رم اونم تو زمانی که رم ها ضعیف بودن کارایی داشت که یه سری دیتای با اهمیت کمتر رو بیاره روی هارد که رم آزاد تر باشد

الان بنظرم زیاد نیازی به Swap نیست و چون عمده سخت افزار های امروزی قوی هستند و اینکه جایگزین نداره و این خواندن و نوشتن اضافه باعث کندی می شود.

پارتیشن Swap ناحیه ای بر روی درایو ذخیره سازی (همون SSD ) هست که سیستم عامل از اون به عنوان رم مجازی استفاده و برای زمانی که رم پر میشود دیتاهای با اهمیت کمتر را در این پارتیشن بصورت موقت ذخیره میکند

زمانی که رم پر میشود این IO مکرر روی Swap باعث چرخه نوشتن بیشتر روی SSD میشود و چون تعداد دیتایی که در SSD رایت میشن باعث زیاد شدن سایکل ها در یک مدت کوتاه میشن طول عمر SSD ما به مرور زمان کاهش پیدا می کند

نویسنده : @Ashkan_Kazemii

@TheRaymondDev