Pure Coder
Open in Telegram
⭕️آدرس سایت: https://purecoder.ir ⭕️گروه پرسش و پاسخ: @purecoder_gp ⭕️پشتیبانی: @PureCoder_support @MohammadTaherri
Show more775
Subscribers
No data24 hours
-17 days
-230 days
Posts Archive
775
برنامه نویسی مثل حرف زدنه، همش قرارداده.
آدم ها قرارداد کردن که به فلان چیز باید بگیم میز، به اون یکی چیز باید بگیم کفش و ... .
کم کم حروف رو اختراع کردن و با استفاده از حروف واژه ها رو ساختن، و از ترکیب واژه ها باهم واژه های بیشتری ساخته شد.
ولی همه ی اینها از یه سری قرارداد پیروی میکرد و اگر کسی میخواست خارج از چارچوب اون قرارداد ها عمل کنه، هر چقدر هم که زیبا صحبت میکرد، بقیه منظورش رو نمیفهمیدن و نمیتونست با بقیه ارتباط برقرار کنه.
برنامه نویسی هم همینه. توی سالیان سال برنامه نویس های مختلف سعی کردن که اونو از اشفتگی نجات بدن و قراردادهای مختلفی رو براش وضع کنن. پترن ها و اصول مختلف و خیلی زیادی ابداع شدن تا همه برنامه نویس ها و کدهاشون رو متحد کنه.
حالا اگه کسی پاشو از این چارچوب ها بیرون بگذاره و به دلخواه خودش عمل کنه، هر چقدر هم که هنرمند باشه نمیتونه با بقیه ارتباط سازنده برقرار کنه.
برای بقا در دایره ی برنامه نویس ها باید زبان مشترک اونها که طی سالیان ایجاد و بالغ شده و همچنان داره به رشد خودش ادامه میده رو فرابگیریم.
زبان مشترک برنامه نویس ها c و c++ یا سی شارپ، جاوا، دارت و ... نیست.
@purecoder_ir
775
آدم ها یاد گرفتن که برای اینکه منظور خودشون رو به بقیه برسونن، روی اجسام مختلف به صورت قراردادی اسم بگذارن.همچنین تصمیم گرفتن که الگوهای خاصی رو برای صحبت ابداع کنن.
برای مثال اسم یه چیزی رو گذاشتن میز، اسم یه چیزی رو کفش و ... .کم کم گنجینه ی واژگان و دستور زبان شکل گرفت.
اگه از این الگوهای قراردادی استفاده نکنیم و هر کسی طبق واژگان و الگوی دلخواه و من درآوردی خودش با بقیه صحبت کنه، هیچکس منظور دیگری رو نمیفهمه.
کدنویسی هم همین طوره، اگه هر کسی بخواد طبق آداب و اصول و واژگان دلخواه خودش کد بزنه، برقراری ارتباط بین برنامه نویس های مختلف به شدت کند میشه. کدی که امروز نوشتی رو فردا شخص دیگری نمیتونه توسعه بده.
باید طبق چارجوب ها و الگوهای پذیرفته شده و مدون شده پیش بریم. باید بتونیم بگیم این تیکه کدم طبق فلان الگو هست و اون تیکش طبق بهمان الگو. باید برای تصمیم گیری هامون توجیه های منطقی داشته باشیم.
در غیر اینصورت کد ما طبق واژگان رسمی نوشته نشده و یه الفبا و واژگان من درآوردی داره و کد خوبی نیست، هر چند هم که خودمون دوستش داشته باشیم و عاشقش باشیم.
@purecoder_ir
775
دوستان گفتن که اندروید استدیو جدیدن خیلی شیک تر شده.
من Rider رو نصب کردم که IDE مخصوص .NET هست و خواهر اندروید استدیو محسوب میشه.
همیشه IDE های jetbrains جزو بهترین ها بودن ولی ظاهر خوبی نداشتن که الان خوشکل هم شدن.
فوق العاده کاملن..
بنظر من با ابزارهای اختصاصی، متنوع و دم دستی که دارن و الان ظاهر خوب، مناسب تر از vs code هم هستن 👍
توی سرعت و ابزار های ریفکتورینگ که ۱۰۰ درصد برای vs code حرفی برای گفتن باقی نمیذارن. VS فقط ظاهرش عالی بود که اونم الان داداش پیدا کرده😁😁
برای ریفکتورینگ یه چیزی بهتر از فوق العاده هستن و هیچ رقیبی ندارن🔥🔥 VS برای ریفکتورینگ افتضاحه🤦♂
حتمن متناسب با کارت یکی از IDE هاش رو امتحان کن...👇
✔️Rider
✔️Android Studio
✔️PHP Storm
✔️web Storm
✔️...
خوبیش اینه که برای یه هدف خاص توسعه داده شدن و تمام ابزارها و آپشن های مورد نیاز اون هدف رو دارن ولی توی VS باید پلاگین های بسیار نصب کنی و مختص چیزی توسعه داده نشده و بعضی وقت ها پلاگین ها کافی نیستن.
برای مثال Rider هم ncrunch رو داره و هم ابزار خاص کار کردن با ef core و ... رو .
@purecoder_ir
775
دلم برای vs code تنگ شده 😢
بقیه ide ها خیلی زشتن🤦♂🤦♂
اینم از دست ماکروسافت در رفت که خوشکل شد وگرنه ماکروسافت توی گرافیک خیلی خنگه.🤪
اگه هر روز با vs code کار میکنید، نعمت بزرگی دارید و خبر ندارید، قدرشو بدونید😂😍
@purecoder_ir
775
یه خبر خوووب 😍
میخوایم یکم توی دیزاین پترن ها عمیق تر بشیم و متفاوت تر یادشون بگیریم و ازشون استفاده کنیم😍
برای همین یه ریپوزیتوری توی گیتهاب درست کردیم که قراره اونجا در مورد دیزاین پترن ها discussion های مختلف و متفاوتی رو داشته باشیم.
در آینده هم حتمن نمونه کدهایی رو برای پترن های مختلف قرار میدیم.
البته این ریپو با مشارکت همه دوستان جلو میره😍
اولین discussion هم در مورد composition و inheritance هست...👇
https://github.com/MohammadTaherri/DesignPatterns/discussions/7
حتمن شرکت کنید و به پربار شدن بحث کمک کنید 🙏🙏
میتونی نظرهای خودت رو مطرح کنی یا سوال بپرسی یا حتا یه نمونه کد بع اشتراک بگذاری و با اون ایده ی خودتو شرح بدی...
@purecoder_ir
775
بچه ها بنظرتون هوش مصنوعی تا کجا پیش میره
بدون جملات کلیشه ای که با برنامه نویس ها کاری نداره یا ....
من خودم الان به شدت از chat gpt استفاده میکنم، خیلی از پکیج ها رو دیگه نمیرم داکشو بخونم و بهش میگم و کدی که میخام رو میده، خیلی هم خوب این کارو میکنه
سرعت کار رو یه جاهایی به شدت زیاد میکنه
برنامه نویس الان فقط باید چارچوب کار رو مشخص کنه و بتونه در مواقع حساس تز های خوب و تعیین کننده بده، این مورد فعلن از chat gpt بر نمیاد
ولی اینکه مساله رو براش شرح بدیم و بهش بگیم من از فلان ابزار استفاده میکنم و ورودی مساله هم اینه و فلان خروجی مدنظرمه، به خوبی کد تولید میکنه و واقعن کمک کننده هست.
ولی آینده چی؟
در حال حاضر برنامه نویس ها باید در سطح بالاتری نسبت به گذشته قرار بگیرن، این که به فلان ابزار مسلط هستم، مثل گذشته کارساز و تعیین کننده نیست. الان برنامه نویس ها باید نظرات تعیین کننده در مواقع ضروری بدن و مسیر پروژه رو به خوبی هدایت کنن و در سطح دیگری نسبت به گذشته کار کنن.
ولی در آینده چی؟
نظر شما چیه؟
@purecoder_ir
775
✅بهترین اسم گزینه ی آخر بود که بیشتر دوستان هم همون رو انتخاب کردن.👍
❌استفاده از create توی کانتکستی که ذکر شده خوب نیست.
❌استفاده از نام های دیگه مثل insert یا Store یا save که مفهوم دیتابیسی دارن هم متناسب با این کانتکست نیست.
❌استفاده از user متناسب با actor ذکر شده یعنی student نیست و user خیلی کلی هست.
✅بسته به شرایط میشه اسم رو کوتاهتر کرد و فقط از register برای نام استفاده کرد 👍
🔥تحلیلی که یکی از دوستان توی نظر ها داشت این بود که استفاده از صفت new توی این اسم ملموس نیست و خود RegisterStudent مفهوم رو به خوبی و کامل منتقل میکنه که قابل تامل هست و میتونیم بگیم اسم RegisterStudent بهتر هم هست.👍🔥
✅در کل واژه های Register و student مناسب بنظر میرسن که بسته به شرایط میشه از هر دوشون کنار هم استفاده کرد (RegisterStudent ) و یا از Register به تنهایی.
@purecoder_ir
775
اگه یه آموزشگاه داشته باشیم و داخلش بخوایم یه دانش اموز ثبت نام کنیم، اسم متدی که قراره این کار رو انجام (مثلن متدی که توی کنترلر قراره میگیره) رو چی میذاری؟
775
قدیما یه وانتی توی کوچه ها داد میزد سماور کهنه، آهن قراضه، نون خشک ... میخریم.
الان توی تلگرام پیام میدن گروه قدیمی، کانال کهنه ...خریداریم.
775
Repost from Vania Dart Framework
📢 نسخه جدید وانیا منتشر شد
نسخه 0.7.1 🎉🎊
قابلیت های اضافه شده
💠 انجین قالب (Template Engine)
با این قابلیت شما با داشتن دانش html و css میتونید خیلی راحت بدون نیاز به داشتن دانش فنی در زمینه فریمورک های فرانت وب سایت های داینامیک رو توسعه بدید
👨👩👧👦 مدیریت نسشت های کاربرن (Session Manager)
با این قابلیت شما میتونید نشست های کاربران رو مدیریت کنید و وب اپلیکیشن های با امنیت بالا ایجاد
بزودی ویدیو معرفی و نحویه استفاده از این دو قابلیت رو منتشر میکنم
775
❓بنظرت ضروریه که برنامه نویس ها سرعت تایپ بالا داشته باشن؟
✅برای من به شخصه که نیاز نیست، چون سرعت فکر کردنم خیلی پایین تر از این حرفاست که کدنویسیم معطل سرعت تایپم بشه😂😂
@purecoder_ir
775
🔥نظریه broken window یا پنجره شکسته
اين نظريه در حوزه علم جامعه شناسى مطرح شده است و يك واقعيت اجتماعى را با استعاره از "پنجره شكسته" تشريح مى نمايد. هنگامى كه شيشه پنجره خانه اى شكسته شده باشد، در صورتى كه پس از مدتى پنجره شكسته ترميم نشود، به تدريج رهگذران با تصور اينكه ساختمان خالى از سكنه است، اقدام به شكستن شيشه هاى پنجره هاى ديگر خواهند كرد و به مرور زمان بر سرعت شكستن پنجره ها نيز افزوده خواهد شد!!از این استعاره توی برنامه نویسی و مخصوصن برای کدی که به کلین شدنش اهمیتی داده نشده استفاده میشه. در ابتدا ممکنه آسیب خیلی کوچیک باشه ولی عدم توجه به بهبود کد و ترمیم آسیب باعث میشه رفته رفته آسیب گسترش پیدا کنه و منجر به تولید یه کد فاسد بشه. منبع تعریف اصطلاح: @tarfandemodiriat @purecoder_ir
775
❌گزینه های ۲ و ۴ (get..) ناملموس هستن، چون صورت مساله خیلی واضح گفته "محاسبه کردن حقوق".
🟢بین گزینه ۱ و ۳ اولویت رو روی گزینه ای میگذاریم که راحتر و بهتر شبیه به یه جمله خونده بشه.
✔️گزینه ۱:
Calculate salary [employee ]
خوبه ولی مثل اینکه یه چیزی کم داره.
✔️گزینه ۳:
Calculate salary for [employee]
بهتر شد😍
✅پس گزینه ی ۳ بهتره چون که به یه جمله ی انگلیسی روون نزدیکتره.
🔥اسم ورودی متد رو هم به عنوان قسمتی از اسم در نظر گرفتیم.
برای مثال اسم زیر هم خیلی خوب نیست.
CalculateSalaryForEmployee(Employee employee)
کلمه ی Employee دوبار تکرار شده.
❓حالا اگه توی ورودی به جای ابجکت employee میخواستیم آیدی employee رو دریافت کنیم، بنظرت چه اسمی مناسب بود؟
CalculateSalary....(int employeeId)
اون "..." رو تو بگو👇
@purecoder_ir
775
اگه یه متدی داشته باشیم که قرار باشه یه Employee رو به عنوان ورودی بگیره و حقوقش رو محاسبه کنه، چه اسمی رو براش مناسب میدونی؟
775
#طنز
من اگه اعتماد به نفس اینو توی کدنویسی داشتم آنقدر کد نویس خوبی میشدم، دنیا رو کن فیکوم میکردم
@purecoder_ir
775
❓بنظرت کدوم یک از کدهای زیر بهتره و راحتر میتونی بخونی و بفهمیش؟
(این کد قراره عامل های اول عدد n رو محاسبه کنه!!!)
1⃣
List<int> PrimeFactorsOf(int n)
{
var factors = new List<int>();
int divisor = 2;
while (n > 1)
{
while (n % divisor == 0)
{
factors.Add(divisor);
n /= divisor;
}
divisor++;
}
return factors;
}
2⃣
List<int> PrimeFactorsOf(int n)
{
var factors = new List<int>();
for (int divisor = 2; n > 1; divisor++)
for (; n % divisor == 0; n /= divisor)
factors.Add(divisor);
return factors;
}
توضیحی داشتی توی کامنت بگو 🙏😍
@purecoder_ir775
🔥خب بریم سر وقت داستان فرستادن پیامک و اینترفیس زدن و implementation های مختلف برای هر provider:
❌هر گردی گردو نیست.
استراتژی اشتباه ترین گزینه بود.
❌فساد و اداپتر هم گزینه های اشتباهی بودن ولی نسبت به استراتژی خیلی خیلی معقول تر بودن و دوستانی که این دو رو انتخاب کردن تحلیل بهتری پیش خودشون داشتن.
و بنظرم اداپتر نسبت به فساد انتخاب بهتری بود و دوستانی که اداپتر رو انتخاب کردن احتمالن تحلیل ذهنی بهتری داشتن.
ولی در حال گزینه درست رو انتخاب نکردن.
✅و اما گزینه ی درست هیچکدام بود.
@purecoder_ir
