-اصل 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
دوستان عزیز درحال حاضر ایران حملات سایبری اعم از هک کردن سیستم پدافندی اسرائیل و خرابی توزیع برق؛ حملات نظامی رو شروع کرده و تا این لحظه پهپاد های انتحاری رو روانه کرده، از طرفی دیگه موشک هایی از سمت حزب الله لبنان نیز به سمت شمال اسرائیل شلیک شده است.
برای #بحث_امشب نظر شخصیتون رو راجع به سرنوشت این حملات کامنتا ارسال کنید.
ایشالا که جدی تر نشه و حتی به یه تاری از موی هموطنانمون آسیبی نرسه❤️
#News
@CleverDevs - @CleverDevsGp
برای #بحث_امشب نظر شخصیتون رو راجع به سرنوشت این حملات کامنتا ارسال کنید.
ایشالا که جدی تر نشه و حتی به یه تاری از موی هموطنانمون آسیبی نرسه❤️
#News
@CleverDevs - @CleverDevsGp
🔥26👍12❤🔥9😁2👎1
Forwarded from محتوای آزاد سهراب
خب امروز آموزش ساخت بسته Deb رو برای توزیع های دبیان بیس ضبط کردم.
از طریق یوتوب و پیرتوب میتونید تماشا کنید.
Youtube:
https://youtu.be/YqDXa7q55yo
PeerTube:
https://tubedu.org/w/fXf7E9pYnq6UPqj5N3iV8Z
@SohrabContents
از طریق یوتوب و پیرتوب میتونید تماشا کنید.
Youtube:
https://youtu.be/YqDXa7q55yo
PeerTube:
https://tubedu.org/w/fXf7E9pYnq6UPqj5N3iV8Z
@SohrabContents
👍6🔥4⚡2❤1
خیلی اوقات برامون پیش میاد که تو یه سایتی هستیم و دوست داریم فونتش رو داشته باشیم
یکی از سریع ترین و اسون ترین راه ها برای فهمیدن فونتی که اون سایت استفاده میکنه سایت font of web هستش که ادرس سایت رو بهش میدی و اسم فونت هارو با لینک دانلودشون برات میاره
https://fontofweb.com
#font #tools
@CleverDevs - @CleverDevsGp
یکی از سریع ترین و اسون ترین راه ها برای فهمیدن فونتی که اون سایت استفاده میکنه سایت font of web هستش که ادرس سایت رو بهش میدی و اسم فونت هارو با لینک دانلودشون برات میاره
https://fontofweb.com
#font #tools
@CleverDevs - @CleverDevsGp
🔥15👍7👌7❤🔥3⚡2❤1
خیلی از بچه هایی که میخوان برنامه نویسی رو شروع کنن ممکنه راه هایی رو برن که بقیه رفتن و میدونن اشتباهه
چنل ماهم بچه هایی از سطح های مختلف و تجربه های مختلف داره
حالا بیایید برای #بحث_امشب کار هایی که شما کردید و برای تازه کار ها توصیه اش نمیکنید رو بگید
سعی کنید کل حرفتون تو یه پیام باشه تا تر و تمیز تر باشه
میشه بعدا برای تازه کار ها لینک به این پست داد
درضمن اگه خواستید تو گروه هم جوین شید تا از بقیه بحثا جا نمونید
@CleverDevs - @CleverDevsGp
چنل ماهم بچه هایی از سطح های مختلف و تجربه های مختلف داره
حالا بیایید برای #بحث_امشب کار هایی که شما کردید و برای تازه کار ها توصیه اش نمیکنید رو بگید
سعی کنید کل حرفتون تو یه پیام باشه تا تر و تمیز تر باشه
میشه بعدا برای تازه کار ها لینک به این پست داد
درضمن اگه خواستید تو گروه هم جوین شید تا از بقیه بحثا جا نمونید
@CleverDevs - @CleverDevsGp
👍16❤4🔥4
یکی از بچه های چنل یه چنل یوتوب زده و محتوای برنامه نویسی آماده میکنه اگه خواستید میتونید یه نگاه به چنلش بندازید
https://youtube.com/@MatinHosseiniofficail1?si=xFXzDypH0XsCfoL7?sub_confirmation=1
@CleverDevs - @CleverDevsGp
https://youtube.com/@MatinHosseiniofficail1?si=xFXzDypH0XsCfoL7?sub_confirmation=1
@CleverDevs - @CleverDevsGp
🔥10👌7💯3❤1
مثل اینکه ویدیوی معرفی devin فیک بوده و اونقدرا هم خفن نبوده
میتونید به این ویدیو هم یه نگاه بندازید که توضیح میده چی به چیه
https://www.youtube.com/watch?v=tNmgmwEtoWE
#devin #ai | Source
@CleverDevs - @CleverDevsGp
میتونید به این ویدیو هم یه نگاه بندازید که توضیح میده چی به چیه
https://www.youtube.com/watch?v=tNmgmwEtoWE
#devin #ai | Source
@CleverDevs - @CleverDevsGp
😁20👍7👌6
رپلیکا استودیو یک گیمی ساخته که داخلش از NPC هایی که متصل به هوش مصنوعی هستن استفاده کرده.
بطوری که شما داخل شهری شروع به بازی میکنید و میتونید با هر فردی داخل شهر صحبت کنید، میتونید سعی کنید قانع کنید که اونا داخل یک دنیای شبیه سازی شدن(که البته مثل دنیای خودمون کسی باورش نمیشه جز تعدادی)، گرافیک خوبی داره بازی جذابیم هست مخصوصاً صحبت با بعضیاشون که فهمیدن برنامه نویسی شدن...
گیم پلی ۱۵ دقیقهای
#AI #Game
@CleverDevs - @CleverDevsGp
بطوری که شما داخل شهری شروع به بازی میکنید و میتونید با هر فردی داخل شهر صحبت کنید، میتونید سعی کنید قانع کنید که اونا داخل یک دنیای شبیه سازی شدن(که البته مثل دنیای خودمون کسی باورش نمیشه جز تعدادی)، گرافیک خوبی داره بازی جذابیم هست مخصوصاً صحبت با بعضیاشون که فهمیدن برنامه نویسی شدن...
گیم پلی ۱۵ دقیقهای
#AI #Game
@CleverDevs - @CleverDevsGp
🔥29👍6😁3🆒3❤1⚡1
ولی واقعا آموزش پروروش ایران خفنه
هر گروه یا کانالی میری یکی دونفر سعی دارن pdf سوالارو کرک کنن
همین امشب سطح دانش بچه درباره کرک و ... چند لول بالاتره میره
#fun
@CleverDevs - @CleverDevsGp
هر گروه یا کانالی میری یکی دونفر سعی دارن pdf سوالارو کرک کنن
همین امشب سطح دانش بچه درباره کرک و ... چند لول بالاتره میره
#fun
@CleverDevs - @CleverDevsGp
🤣58😁7👌1
ارور ها نقش مهمی تو برنامه نویسی و دیباگ کردن دارن و سرعت دیباگ کردن مارو چند برابر میکنن
توی پایتون ما میتونیم کلاس های exception خودمون رو تعریف کنیم و در جای مناسب به عنوان ارور بالا ببریمش
مثلا من میام و یه exception میسازم به اسم DevIsNotCleverException و از کلاس Exception که پیشفرض توی پایتون هستت ارث بری میکنم تا هروقت خواستم تو برنامه همچین اروری باشه بالا ببرمش
برای اینکه ارور رو نشون بدیم کافیه از raise استفاده کنیم
حالا اگه برنامه رو اجرا کنیم ارور DevIsNotCleverException میگیریم
این ویژگی توی پایتون برای راحت تر دیباگ کردنه پس سعی کنید حتما حتما ارور های معنی دار بسازید وگرنه کار خودتون رو سخت تر میکنید و برعکس عمل میکنید در واقع
اگه تیمی کار میکنید حتما باید یه داکیومنت برای این ارور ها داشته باشید تا همه اعضای تیم بدونن که هر اروری اومد مشکل از کجاس
و اینکه من نخواستم پست طولانی بشه و مثال ساده ای ازش زدم اگه دوست داشتید برای توضیحات بیشتر میتونید یه نگاه به این لینک بندازید (فیلتره)
https://martinxpn.medium.com/custom-exceptions-in-python-creating-custom-exceptions-59-100-days-of-python-4f26de8e851d
#python
@CleverDevs - @CleverDevsGp
توی پایتون ما میتونیم کلاس های exception خودمون رو تعریف کنیم و در جای مناسب به عنوان ارور بالا ببریمش
مثلا من میام و یه exception میسازم به اسم DevIsNotCleverException و از کلاس Exception که پیشفرض توی پایتون هستت ارث بری میکنم تا هروقت خواستم تو برنامه همچین اروری باشه بالا ببرمش
class DevIsNotCleverException(Exception):
pass
برای اینکه ارور رو نشون بدیم کافیه از raise استفاده کنیم
raise DevIsNotCleverException('Dev must be Clever')حالا اگه برنامه رو اجرا کنیم ارور DevIsNotCleverException میگیریم
این ویژگی توی پایتون برای راحت تر دیباگ کردنه پس سعی کنید حتما حتما ارور های معنی دار بسازید وگرنه کار خودتون رو سخت تر میکنید و برعکس عمل میکنید در واقع
اگه تیمی کار میکنید حتما باید یه داکیومنت برای این ارور ها داشته باشید تا همه اعضای تیم بدونن که هر اروری اومد مشکل از کجاس
و اینکه من نخواستم پست طولانی بشه و مثال ساده ای ازش زدم اگه دوست داشتید برای توضیحات بیشتر میتونید یه نگاه به این لینک بندازید (فیلتره)
https://martinxpn.medium.com/custom-exceptions-in-python-creating-custom-exceptions-59-100-days-of-python-4f26de8e851d
#python
@CleverDevs - @CleverDevsGp
👍14👌6🔥4❤2
خیلی از برنامه نویسا دوست دارن لینوکس رو امتحان کنن و نمیدونن چه توزیعی استفاده کنن توی این پست میخوام یه توزیع خفن که بچه های کامیونیتی خودمون ساختن به اسم P-Arch لینوکس رو معرفی کنم
پی-آرچ یا پارچ یه توزیع لینوکس بر پایه Arch هستش که توسط سهراب و تیم پارچ توسعه پیدا میکنه
توزیع پارچ با هدف ساده سازی آرچ برای کاربران مخصوصا کاربران فارسی زبان منتشر شده و شما با نصب اون میتونید به راحتی و بدون دردسر از امکانات یک توزیع Arch base استفاده کنید
اما چرا من نصب پارچ رو پیشنهاد میکنم :
1 -کامیونیتی قوی پارچ : شما میتونید مستقیما با توسعه دهنده های پارچ توی تلگرام یا هرجای دیگه ارتباط داشته باشید و مشکلاتتون رو سریع تر حل کنید همچنین هر پیشنهادی که داشته باشید میتونید بدید تا درصورت تایید شدن در نسخه های بعدی اضافه بشه
2 - مخازن پارچ : پارچ دوتا مخزن pcp و ppr داره کمک میکنه پکیج های کاربردی که تو مخازن آرچ نیستن رو نصب کنید همچنین اگه شما خودتون توسعه دهنده پکیج لینوکسی باشید میتونید درخواست بدید تا توی مخازن قرار بگیره
3 - برتری نسبت به رقبای خود : پارچ هدف خود رو به عنوان یک توزیع رولینگ به خوبی اجرا میکنه و در برابر توزیع هایی مثل مانجارو عملکرد بهتری داره
در حال حاضر پارچ به طور رسمی دو نسخه plasma و gnome رو توسعه میده که میتونید از
parchlinux.com
دریافتش کنید و نصب کنید
#GNU #Linux #Parch #distro
@CleverDevs - @CleverDevsGp
پی-آرچ یا پارچ یه توزیع لینوکس بر پایه Arch هستش که توسط سهراب و تیم پارچ توسعه پیدا میکنه
توزیع پارچ با هدف ساده سازی آرچ برای کاربران مخصوصا کاربران فارسی زبان منتشر شده و شما با نصب اون میتونید به راحتی و بدون دردسر از امکانات یک توزیع Arch base استفاده کنید
اما چرا من نصب پارچ رو پیشنهاد میکنم :
1 -کامیونیتی قوی پارچ : شما میتونید مستقیما با توسعه دهنده های پارچ توی تلگرام یا هرجای دیگه ارتباط داشته باشید و مشکلاتتون رو سریع تر حل کنید همچنین هر پیشنهادی که داشته باشید میتونید بدید تا درصورت تایید شدن در نسخه های بعدی اضافه بشه
2 - مخازن پارچ : پارچ دوتا مخزن pcp و ppr داره کمک میکنه پکیج های کاربردی که تو مخازن آرچ نیستن رو نصب کنید همچنین اگه شما خودتون توسعه دهنده پکیج لینوکسی باشید میتونید درخواست بدید تا توی مخازن قرار بگیره
3 - برتری نسبت به رقبای خود : پارچ هدف خود رو به عنوان یک توزیع رولینگ به خوبی اجرا میکنه و در برابر توزیع هایی مثل مانجارو عملکرد بهتری داره
در حال حاضر پارچ به طور رسمی دو نسخه plasma و gnome رو توسعه میده که میتونید از
parchlinux.com
دریافتش کنید و نصب کنید
#GNU #Linux #Parch #distro
@CleverDevs - @CleverDevsGp
1🔥29👍10👎9❤4👌3
یکی از بچه های چنل با رفقاش یه پروژه اوپن سورسی نوشتن که بهتون کمک میکنه تا با توجه به شبکتون پرسرعت ترین dns هارو پیدا کنید و استفاده کنید
پیشنهاد میکنم حتما یه نگاه بهش بندازید و هر پیشنهادی هم داشتید تو کامنتا بنویسید براشون
https://github.com/ArmanTaheriGhaleTaki/best403unlocker
شماهم اگه پروژه اوپن سورسی دارید که قصد معرفی کردنش رو دارید برام بفرستید
#dns #opensource
@CleverDevs - @CleverDevsGp
پیشنهاد میکنم حتما یه نگاه بهش بندازید و هر پیشنهادی هم داشتید تو کامنتا بنویسید براشون
https://github.com/ArmanTaheriGhaleTaki/best403unlocker
شماهم اگه پروژه اوپن سورسی دارید که قصد معرفی کردنش رو دارید برام بفرستید
#dns #opensource
@CleverDevs - @CleverDevsGp
👍14🔥9❤5👌3