برای پروژه های بزرگ که فایل های خیلی زیاد و حجیمی دارند (مثل بازی ها و مدل های هوش مصنوعی)، از افزونه ای به نام Git LFS استفاده میشه که تنظیم میکنید چه فایل هایی رو نگه داره و داخل ریپازیتوری آپلود نکنه و بجاش بیاد یک فایل پوینتر (اشاره گر) بسازه و داخلش آدرس همشونو سیو کنه. عموما سرویسی مثل GitLab برای اینکار استفاده میشه و میان یکبار همه فایل هارو آپلود میکنن که برای هر کامیت تایم زیادی گرفته نشه و سرعت آپلود/دانلود هم کند نشه.
#Git
@CleverDevs - @CleverDevsGp
#Git
@CleverDevs - @CleverDevsGp
👍32❤🔥4❤2⚡1🆒1
یکی از ابزار های کاربردی برای کار با لاگ های خیلی بلند میتونه کاربردی باشه toolong هستش
که ترمینال بیس هست و امکانات برای سرچ کردن توی فایل های لاگ و ... داره
این ابزار با پایتون نوشته شده و میتونید برای نصب استفاده ازش به گیت هابش برید
https://github.com/Textualize/toolong
#tools
@CleverDevs - @CleverDevsGp
که ترمینال بیس هست و امکانات برای سرچ کردن توی فایل های لاگ و ... داره
این ابزار با پایتون نوشته شده و میتونید برای نصب استفاده ازش به گیت هابش برید
https://github.com/Textualize/toolong
#tools
@CleverDevs - @CleverDevsGp
🔥13👌5👍3⚡1🆒1
19 سال پیش چنین روزی لینوس توروالدز که بیشتر به عنوان خالق لینوکس میشناسیمش ابزاری به شدت کاربردی به اسم git ارائه کرد که امروزه اکثرا برنامه نویسا وابسته ان بهش
گیت یه ورژن کنترل هستش که کمک میکنه خیلی از به فنا رفتن ها توی پروژه رو به قبل برگردونیم و به کمک سرویس هایی مثل گیت هاب و ... کار تیمی رو راحت تر میکنه
خواستم امروز به مناسبت همین تولد گیت بگم که اگه تا حالا گیت رو یاد نگرفتید حتما یادش بگیرید وقت زیادی هم ازتون نمیبره و بیسش رو یاد بگیرید توی پروژه ها کار کردن باهاش دستتون میاد
برای یادگرفتنش هم بنظرم یه کرش کورس توی یوتوب ببینید کافیه یا اگه خواستید به زبان فارسی باشه وبسایت webprog.io هم یه دوره رایگان براش داره همچنین میتونید با سرچ کردن #git پست های مربوط به گیت رو توی کانال ببینید
#git
@CleverDevs - @CleverDevsGp
گیت یه ورژن کنترل هستش که کمک میکنه خیلی از به فنا رفتن ها توی پروژه رو به قبل برگردونیم و به کمک سرویس هایی مثل گیت هاب و ... کار تیمی رو راحت تر میکنه
خواستم امروز به مناسبت همین تولد گیت بگم که اگه تا حالا گیت رو یاد نگرفتید حتما یادش بگیرید وقت زیادی هم ازتون نمیبره و بیسش رو یاد بگیرید توی پروژه ها کار کردن باهاش دستتون میاد
برای یادگرفتنش هم بنظرم یه کرش کورس توی یوتوب ببینید کافیه یا اگه خواستید به زبان فارسی باشه وبسایت webprog.io هم یه دوره رایگان براش داره همچنین میتونید با سرچ کردن #git پست های مربوط به گیت رو توی کانال ببینید
#git
@CleverDevs - @CleverDevsGp
🔥47👍11❤🔥6❤2
یکی از مهمترین فاکتور ها برای برنامه نویسان فرانت اند، سرعت و دقت کدنویسی هست ! امیت از اون دسته ابزارهای سبک و رایگانی هست که کار و برای شما به سریعترین شکل ممکن انجام میده و از علاوه بر بالارفتن سرعت کدزدنتون از خطاهای احتمالی و تایپی هم جلوگیری میکنه
یکی از بچه های چنل یه دوره کوچیک برای یادگیری این ابزار توی یوتیوب درست کرده اگه خواستید میتونید نگاه کنید :
https://www.youtube.com/watch?v=xt7VbZuo76Q&list=PLi5nmUot7B7nxAD5TEyyN0ZqHBFWSEIuR
#Emmet
@CleverDevs - @CleverDevsGp
یکی از بچه های چنل یه دوره کوچیک برای یادگیری این ابزار توی یوتیوب درست کرده اگه خواستید میتونید نگاه کنید :
https://www.youtube.com/watch?v=xt7VbZuo76Q&list=PLi5nmUot7B7nxAD5TEyyN0ZqHBFWSEIuR
#Emmet
@CleverDevs - @CleverDevsGp
👍17🔥5👌2⚡1🆒1
اتریبیوت inert توی html چیه و چیکار میکنه ؟!
اگه یه فرمی دارید که میخواید کل چیزایی که تو فرم هستن disable بشن میتونید این اتریبیوت رو به تگ والد بدید
الان تو این مثال نه اینپوت کار میکنه نه باتن و نه لینک
میتونید با جاوا اسکریپت در صورت نیاز با متد removeAttribute پاکش کنید
// از لحاظ ساپورت مرورگر ممکنه تو ورژن های قدیمی مرورگر ها کار نکنه
#html | source
@CleverDevs - @CleverDevsGp
اگه یه فرمی دارید که میخواید کل چیزایی که تو فرم هستن disable بشن میتونید این اتریبیوت رو به تگ والد بدید
الان تو این مثال نه اینپوت کار میکنه نه باتن و نه لینک
میتونید با جاوا اسکریپت در صورت نیاز با متد removeAttribute پاکش کنید
// از لحاظ ساپورت مرورگر ممکنه تو ورژن های قدیمی مرورگر ها کار نکنه
#html | source
@CleverDevs - @CleverDevsGp
👌23🔥4👍3🆒3❤2💯1
نه داداش من اصلا با داکیومنت خوندن حال نمیکنم خودم میدونم چه کدی بزنم :
#fun
@CleverDevs - @CleverDevsGp
#fun
@CleverDevs - @CleverDevsGp
🤣79😁7👍3
This media is not supported in your browser
VIEW IN TELEGRAM
👍36❤14❤🔥5🆒4🔥3⚡1
یکی از بچه های چنل یه پروژه ای با nest js مینویسه و توش Authorization و Authentication رو پیاده سازی میکنه
پروژه فعلا در حال توسعه هستش و شما میتونید توی توسعش هم شرکت کنید . اگه هم سوالی در باره پروژه دارید میتونید تو کامنتا بپرسید
لینک گیت هاب پروژه :
https://github.com/dinno7/auth_nestjs
// اگه شما هم پروژه اوپن سورسی دارید که میخواید معرفی کنم برام بفرستید.
پروژه فعلا در حال توسعه هستش و شما میتونید توی توسعش هم شرکت کنید . اگه هم سوالی در باره پروژه دارید میتونید تو کامنتا بپرسید
لینک گیت هاب پروژه :
https://github.com/dinno7/auth_nestjs
// اگه شما هم پروژه اوپن سورسی دارید که میخواید معرفی کنم برام بفرستید.
👍13🔥5❤🔥3❤2
-اصل Have No Side Effects در کلین کد
این اصل میگه که تابع شما باید یه کار انجام بده اما حواستون باشه که تاثیرات جانبی روی برنامه نداشته باشه که یهو به باگ بخورین و نفهمید از کجا خوردید
مثلا این کد که میاد و یوزر نیم و پسورد رو چک میکنه و اگه اوکی بود true و اگه مشکلی بود false برمیگردونه رو در نظر بگیرید
این کد ظاهرا اوکیه اما دقت کنید یه قسمت Session.initialize داره که خب از اسم تابع معلوم نیس قراره سشنی درست بشه و خب کسی که کد رو میخونه نمیدونه ریسک پاک شدن سشن فعلی هست
ولی اگه نیازه که اون Session.initialize اونجا باشه بهتره که توی اسم تابع هم بیاد و خواننده کد از اسم تابع بفهمه که اونجا یه سشن initialize میشه و از side effect جلوگیری کنه
لپ کلام اینکه حواستون باشه علاوه بر اینکه تابع یه کار انجام میده در چنین شرایطی باید قسمت های مهم تابع از اسمش معلوم باشه تا تاثیرات جانبی نداشته باشه
#CleanCode
@CleverDevs - @CleverDevsGp
این اصل میگه که تابع شما باید یه کار انجام بده اما حواستون باشه که تاثیرات جانبی روی برنامه نداشته باشه که یهو به باگ بخورین و نفهمید از کجا خوردید
مثلا این کد که میاد و یوزر نیم و پسورد رو چک میکنه و اگه اوکی بود true و اگه مشکلی بود false برمیگردونه رو در نظر بگیرید
public class UserValidator {
private Cryptographer cryptographer;
public boolean checkPassword(String userName, String password) {
User user = UserGateway.findByName(userName);
if (user != User.NULL) {
String codedPhrase = user.getPhraseEncodedByPassword();
String phrase = cryptographer.decrypt(codedPhrase, password);
if ("Valid Password".equals(phrase)) {
Session.initialize();
return true;
}
}
return false;
}
}
این کد ظاهرا اوکیه اما دقت کنید یه قسمت Session.initialize داره که خب از اسم تابع معلوم نیس قراره سشنی درست بشه و خب کسی که کد رو میخونه نمیدونه ریسک پاک شدن سشن فعلی هست
ولی اگه نیازه که اون Session.initialize اونجا باشه بهتره که توی اسم تابع هم بیاد و خواننده کد از اسم تابع بفهمه که اونجا یه سشن initialize میشه و از side effect جلوگیری کنه
لپ کلام اینکه حواستون باشه علاوه بر اینکه تابع یه کار انجام میده در چنین شرایطی باید قسمت های مهم تابع از اسمش معلوم باشه تا تاثیرات جانبی نداشته باشه
#CleanCode
@CleverDevs - @CleverDevsGp
👌19👍9🔥4⚡2🆒1