اگه یه متدی داشته باشیم که قرار باشه یه Employee رو به عنوان ورودی بگیره و حقوقش رو محاسبه کنه، چه اسمی رو براش مناسب میدونی؟
Anonymous Poll
53%
CalculateSalary(Employee employee)
8%
GetSalary(Employee employee)
25%
CalculateSalaryFor(Employee employee)
11%
GetSalaryOf(Employee employee)
3%
اسم دیگه ای مد نظرم هست، کامنت کن...
Pure Coder
اگه یه متدی داشته باشیم که قرار باشه یه Employee رو به عنوان ورودی بگیره و حقوقش رو محاسبه کنه، چه اسمی رو براش مناسب میدونی؟
❌گزینه های ۲ و ۴ (get..) ناملموس هستن، چون صورت مساله خیلی واضح گفته "محاسبه کردن حقوق".
🟢بین گزینه ۱ و ۳ اولویت رو روی گزینه ای میگذاریم که راحتر و بهتر شبیه به یه جمله خونده بشه.
✔️گزینه ۱:
Calculate salary [employee ]
خوبه ولی مثل اینکه یه چیزی کم داره.
✔️گزینه ۳:
Calculate salary for [employee]
بهتر شد😍
✅پس گزینه ی ۳ بهتره چون که به یه جمله ی انگلیسی روون نزدیکتره.
🔥اسم ورودی متد رو هم به عنوان قسمتی از اسم در نظر گرفتیم.
برای مثال اسم زیر هم خیلی خوب نیست.
CalculateSalaryForEmployee(Employee employee)
کلمه ی Employee دوبار تکرار شده.
❓حالا اگه توی ورودی به جای ابجکت employee میخواستیم آیدی employee رو دریافت کنیم، بنظرت چه اسمی مناسب بود؟
CalculateSalary....(int employeeId)
اون "..." رو تو بگو👇
@purecoder_ir
🟢بین گزینه ۱ و ۳ اولویت رو روی گزینه ای میگذاریم که راحتر و بهتر شبیه به یه جمله خونده بشه.
✔️گزینه ۱:
Calculate salary [employee ]
خوبه ولی مثل اینکه یه چیزی کم داره.
✔️گزینه ۳:
Calculate salary for [employee]
بهتر شد😍
✅پس گزینه ی ۳ بهتره چون که به یه جمله ی انگلیسی روون نزدیکتره.
🔥اسم ورودی متد رو هم به عنوان قسمتی از اسم در نظر گرفتیم.
برای مثال اسم زیر هم خیلی خوب نیست.
CalculateSalaryForEmployee(Employee employee)
کلمه ی Employee دوبار تکرار شده.
❓حالا اگه توی ورودی به جای ابجکت employee میخواستیم آیدی employee رو دریافت کنیم، بنظرت چه اسمی مناسب بود؟
CalculateSalary....(int employeeId)
اون "..." رو تو بگو👇
@purecoder_ir
🔥8👍1
🔥نظریه broken window یا پنجره شکسته
در ابتدا ممکنه آسیب خیلی کوچیک باشه ولی عدم توجه به بهبود کد و ترمیم آسیب باعث میشه رفته رفته آسیب گسترش پیدا کنه و منجر به تولید یه کد فاسد بشه.
منبع تعریف اصطلاح: @tarfandemodiriat
@purecoder_ir
اين نظريه در حوزه علم جامعه شناسى مطرح شده است و يك واقعيت اجتماعى را با استعاره از "پنجره شكسته" تشريح مى نمايد.از این استعاره توی برنامه نویسی و مخصوصن برای کدی که به کلین شدنش اهمیتی داده نشده استفاده میشه.
هنگامى كه شيشه پنجره خانه اى شكسته شده باشد، در صورتى كه پس از مدتى پنجره شكسته ترميم نشود، به تدريج رهگذران با تصور اينكه ساختمان خالى از سكنه است، اقدام به شكستن شيشه هاى پنجره هاى ديگر خواهند كرد و به مرور زمان بر سرعت شكستن پنجره ها نيز افزوده خواهد شد!!
در ابتدا ممکنه آسیب خیلی کوچیک باشه ولی عدم توجه به بهبود کد و ترمیم آسیب باعث میشه رفته رفته آسیب گسترش پیدا کنه و منجر به تولید یه کد فاسد بشه.
منبع تعریف اصطلاح: @tarfandemodiriat
@purecoder_ir
🔥9👍2👌1
❓بنظرت ضروریه که برنامه نویس ها سرعت تایپ بالا داشته باشن؟
✅برای من به شخصه که نیاز نیست، چون سرعت فکر کردنم خیلی پایین تر از این حرفاست که کدنویسیم معطل سرعت تایپم بشه😂😂
✅برای من به شخصه که نیاز نیست، چون سرعت فکر کردنم خیلی پایین تر از این حرفاست که کدنویسیم معطل سرعت تایپم بشه😂😂
@purecoder_ir
👌19👍3🤣3👎1
Forwarded from Vania Dart Framework
📢 نسخه جدید وانیا منتشر شد
نسخه 0.7.1 🎉🎊
قابلیت های اضافه شده
💠 انجین قالب (Template Engine)
با این قابلیت شما با داشتن دانش html و css میتونید خیلی راحت بدون نیاز به داشتن دانش فنی در زمینه فریمورک های فرانت وب سایت های داینامیک رو توسعه بدید
👨👩👧👦 مدیریت نسشت های کاربرن (Session Manager)
با این قابلیت شما میتونید نشست های کاربران رو مدیریت کنید و وب اپلیکیشن های با امنیت بالا ایجاد
بزودی ویدیو معرفی و نحویه استفاده از این دو قابلیت رو منتشر میکنم
نسخه 0.7.1 🎉🎊
قابلیت های اضافه شده
💠 انجین قالب (Template Engine)
با این قابلیت شما با داشتن دانش html و css میتونید خیلی راحت بدون نیاز به داشتن دانش فنی در زمینه فریمورک های فرانت وب سایت های داینامیک رو توسعه بدید
👨👩👧👦 مدیریت نسشت های کاربرن (Session Manager)
با این قابلیت شما میتونید نشست های کاربران رو مدیریت کنید و وب اپلیکیشن های با امنیت بالا ایجاد
بزودی ویدیو معرفی و نحویه استفاده از این دو قابلیت رو منتشر میکنم
👍7
Forwarded from Vania Dart Framework
Media is too big
VIEW IN TELEGRAM
ویدیو استفاده از قابلیت های جدید فریمورک وانیا
اگه یه آموزشگاه داشته باشیم و داخلش بخوایم یه دانش اموز ثبت نام کنیم، اسم متدی که قراره این کار رو انجام (مثلن متدی که توی کنترلر قراره میگیره) رو چی میذاری؟
Anonymous Poll
3%
CreateNewUser
2%
AddNewUser
10%
RegisterNewUser
11%
CreateNewStudent
5%
AddNewStudent
64%
RegisterNewStudent
3%
اسم دیگه مد نظرمه، کامنت کن..
🔥7👍1
Pure Coder
اگه یه آموزشگاه داشته باشیم و داخلش بخوایم یه دانش اموز ثبت نام کنیم، اسم متدی که قراره این کار رو انجام (مثلن متدی که توی کنترلر قراره میگیره) رو چی میذاری؟
✅بهترین اسم گزینه ی آخر بود که بیشتر دوستان هم همون رو انتخاب کردن.👍
❌استفاده از create توی کانتکستی که ذکر شده خوب نیست.
❌استفاده از نام های دیگه مثل insert یا Store یا save که مفهوم دیتابیسی دارن هم متناسب با این کانتکست نیست.
❌استفاده از user متناسب با actor ذکر شده یعنی student نیست و user خیلی کلی هست.
✅بسته به شرایط میشه اسم رو کوتاهتر کرد و فقط از register برای نام استفاده کرد 👍
🔥تحلیلی که یکی از دوستان توی نظر ها داشت این بود که استفاده از صفت new توی این اسم ملموس نیست و خود RegisterStudent مفهوم رو به خوبی و کامل منتقل میکنه که قابل تامل هست و میتونیم بگیم اسم RegisterStudent بهتر هم هست.👍🔥
✅در کل واژه های Register و student مناسب بنظر میرسن که بسته به شرایط میشه از هر دوشون کنار هم استفاده کرد (RegisterStudent ) و یا از Register به تنهایی.
❌استفاده از create توی کانتکستی که ذکر شده خوب نیست.
❌استفاده از نام های دیگه مثل insert یا Store یا save که مفهوم دیتابیسی دارن هم متناسب با این کانتکست نیست.
❌استفاده از user متناسب با actor ذکر شده یعنی student نیست و user خیلی کلی هست.
✅بسته به شرایط میشه اسم رو کوتاهتر کرد و فقط از register برای نام استفاده کرد 👍
🔥تحلیلی که یکی از دوستان توی نظر ها داشت این بود که استفاده از صفت new توی این اسم ملموس نیست و خود RegisterStudent مفهوم رو به خوبی و کامل منتقل میکنه که قابل تامل هست و میتونیم بگیم اسم RegisterStudent بهتر هم هست.👍🔥
✅در کل واژه های Register و student مناسب بنظر میرسن که بسته به شرایط میشه از هر دوشون کنار هم استفاده کرد (RegisterStudent ) و یا از Register به تنهایی.
@purecoder_ir
👌9👍4🔥2
یه خبر خوووب 😍
میخوایم یکم توی دیزاین پترن ها عمیق تر بشیم و متفاوت تر یادشون بگیریم و ازشون استفاده کنیم😍
برای همین یه ریپوزیتوری توی گیتهاب درست کردیم که قراره اونجا در مورد دیزاین پترن ها discussion های مختلف و متفاوتی رو داشته باشیم.
در آینده هم حتمن نمونه کدهایی رو برای پترن های مختلف قرار میدیم.
البته این ریپو با مشارکت همه دوستان جلو میره😍
اولین discussion هم در مورد composition و inheritance هست...👇
https://github.com/MohammadTaherri/DesignPatterns/discussions/7
حتمن شرکت کنید و به پربار شدن بحث کمک کنید 🙏🙏
میتونی نظرهای خودت رو مطرح کنی یا سوال بپرسی یا حتا یه نمونه کد بع اشتراک بگذاری و با اون ایده ی خودتو شرح بدی...
@purecoder_ir
میخوایم یکم توی دیزاین پترن ها عمیق تر بشیم و متفاوت تر یادشون بگیریم و ازشون استفاده کنیم😍
برای همین یه ریپوزیتوری توی گیتهاب درست کردیم که قراره اونجا در مورد دیزاین پترن ها discussion های مختلف و متفاوتی رو داشته باشیم.
در آینده هم حتمن نمونه کدهایی رو برای پترن های مختلف قرار میدیم.
البته این ریپو با مشارکت همه دوستان جلو میره😍
اولین discussion هم در مورد composition و inheritance هست...👇
https://github.com/MohammadTaherri/DesignPatterns/discussions/7
حتمن شرکت کنید و به پربار شدن بحث کمک کنید 🙏🙏
میتونی نظرهای خودت رو مطرح کنی یا سوال بپرسی یا حتا یه نمونه کد بع اشتراک بگذاری و با اون ایده ی خودتو شرح بدی...
@purecoder_ir
GitHub
Composition vs Inheritance · MohammadTaherri DesignPatterns · Discussion #7
What differentiates composition and inheritance? When should each be used? Why are the Gang of Four patterns based on the "favor composition over inheritance" theory?
🔥17👍1
دلم برای vs code تنگ شده 😢
بقیه ide ها خیلی زشتن🤦♂🤦♂
اینم از دست ماکروسافت در رفت که خوشکل شد وگرنه ماکروسافت توی گرافیک خیلی خنگه.🤪
اگه هر روز با vs code کار میکنید، نعمت بزرگی دارید و خبر ندارید، قدرشو بدونید😂😍
بقیه ide ها خیلی زشتن🤦♂🤦♂
اینم از دست ماکروسافت در رفت که خوشکل شد وگرنه ماکروسافت توی گرافیک خیلی خنگه.🤪
اگه هر روز با vs code کار میکنید، نعمت بزرگی دارید و خبر ندارید، قدرشو بدونید😂😍
@purecoder_ir
❤15👍3👎3
دوستان گفتن که اندروید استدیو جدیدن خیلی شیک تر شده.
من Rider رو نصب کردم که IDE مخصوص .NET هست و خواهر اندروید استدیو محسوب میشه.
همیشه IDE های jetbrains جزو بهترین ها بودن ولی ظاهر خوبی نداشتن که الان خوشکل هم شدن.
فوق العاده کاملن..
بنظر من با ابزارهای اختصاصی، متنوع و دم دستی که دارن و الان ظاهر خوب، مناسب تر از vs code هم هستن 👍
توی سرعت و ابزار های ریفکتورینگ که ۱۰۰ درصد برای vs code حرفی برای گفتن باقی نمیذارن. VS فقط ظاهرش عالی بود که اونم الان داداش پیدا کرده😁😁
برای ریفکتورینگ یه چیزی بهتر از فوق العاده هستن و هیچ رقیبی ندارن🔥🔥 VS برای ریفکتورینگ افتضاحه🤦♂
حتمن متناسب با کارت یکی از IDE هاش رو امتحان کن...👇
✔️Rider
✔️Android Studio
✔️PHP Storm
✔️web Storm
✔️...
خوبیش اینه که برای یه هدف خاص توسعه داده شدن و تمام ابزارها و آپشن های مورد نیاز اون هدف رو دارن ولی توی VS باید پلاگین های بسیار نصب کنی و مختص چیزی توسعه داده نشده و بعضی وقت ها پلاگین ها کافی نیستن.
برای مثال Rider هم ncrunch رو داره و هم ابزار خاص کار کردن با ef core و ... رو .
من 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
👍19❤2
❓چرا isset اون set اش با حرف بزرک شروع نشده ؟ (حتمن دلیلی داره)
❓چرا اصن اسم is set ؟ اسم بهتر نبود؟
❓چرا خود اون دیکشنری یا مپ یا ارایه(یا هر چی که توی php بهش میگن) خودش متد contains و ... نداره؟ (شایدم داره و نخواسته استفاده کنه تا نکته رو توضیح بده)
❓چرا از $ اول هر چیزی استفاده میکنن؟(این واقعن بد رسمیه، از این رسم ها همه جا هست ولی خیلی خود ازاریه توی کد هی از این علامتا ببینی🤦♂🤦♂)
سلیقه ایه و هر کسی نظری داره، ولی چرا انقدر بنظر من PHP زشته 🤦♂🤦♂
❓چرا اصن اسم is set ؟ اسم بهتر نبود؟
❓چرا خود اون دیکشنری یا مپ یا ارایه(یا هر چی که توی php بهش میگن) خودش متد contains و ... نداره؟ (شایدم داره و نخواسته استفاده کنه تا نکته رو توضیح بده)
❓چرا از $ اول هر چیزی استفاده میکنن؟(این واقعن بد رسمیه، از این رسم ها همه جا هست ولی خیلی خود ازاریه توی کد هی از این علامتا ببینی🤦♂🤦♂)
سلیقه ایه و هر کسی نظری داره، ولی چرا انقدر بنظر من PHP زشته 🤦♂🤦♂
@purecoder_ir
👍13👎3
به یه اصطلاحی برخوردم خیلی جالب بود
"برنامه نویس جعبه ابزاری"
ینی کسی که هیچ تحلیلی روی مسئله و ابعاد مختلف داستان نمیکنه و بدون هیچ trade off ای بین راه حل های مختلف، همیشه یه راه حلی رو از توی جعبه ش در میاره و بهت میده.
😢چقد خیلی وقت ها به این درد دچار میشم.
"برنامه نویس جعبه ابزاری"
ینی کسی که هیچ تحلیلی روی مسئله و ابعاد مختلف داستان نمیکنه و بدون هیچ trade off ای بین راه حل های مختلف، همیشه یه راه حلی رو از توی جعبه ش در میاره و بهت میده.
😢چقد خیلی وقت ها به این درد دچار میشم.
@purecoder_ir
👍11👎2
Forwarded from Fluttery's Journey
قسمت Multi Currency Money به دوره اضافه شد...
مربوط به مدل سازی یه پول یا Money با currency هلی مختلف مثل دلار یا یورو یا درهم یا ... و جمع کردن currency های مختلف با هم دیگه...
برای مثال
10 dollor + 20 euro + 50 dirham
که با composite pattern پیاده شده.
لینک دوره:
https://purecoder.ir/course/flutterys-journey/
ثبت نام:
@purecoder_support
مربوط به مدل سازی یه پول یا Money با currency هلی مختلف مثل دلار یا یورو یا درهم یا ... و جمع کردن currency های مختلف با هم دیگه...
برای مثال
10 dollor + 20 euro + 50 dirham
که با composite pattern پیاده شده.
لینک دوره:
https://purecoder.ir/course/flutterys-journey/
ثبت نام:
@purecoder_support
❤6👍1
Media is too big
VIEW IN TELEGRAM
🔥Animated List (Flutter)
✨ با این تکنیک ساده، پیادهسازی Listهاتو مثل حرفهایها انجام بده!
توی این ویدیو توضیح دادم که چطوری کارتو راحتتر کنی.
⏩ ویدیو رو ببین، امتحان کن و نظرت رو برام بنویس!
📌 برای آموزشهای بیشتر، حتماً پیج رو فالو کن! ❤️
https://www.instagram.com/yalda.mohasseli?igsh=MXJ6OWpybG1lcmE2cA==
✨ با این تکنیک ساده، پیادهسازی Listهاتو مثل حرفهایها انجام بده!
توی این ویدیو توضیح دادم که چطوری کارتو راحتتر کنی.
⏩ ویدیو رو ببین، امتحان کن و نظرت رو برام بنویس!
📌 برای آموزشهای بیشتر، حتماً پیج رو فالو کن! ❤️
https://www.instagram.com/yalda.mohasseli?igsh=MXJ6OWpybG1lcmE2cA==
@purecoder_ir
🔥10👍2
کمال گرایی یه بیماری حاده، ولی بنظرم کمال گراها برای پیشرفت دنیا ضروریهستن وگرنه دنیا همیشه درجا میزد و از جاش تکون نمیخورد
خودشون اکثرن بیچاره میشن مگر اینکه شانس بیارن، ولی برای دنیا مفیدن😂😂
@purecoder_ir
خودشون اکثرن بیچاره میشن مگر اینکه شانس بیارن، ولی برای دنیا مفیدن😂😂
@purecoder_ir
👌15😁3⚡1👍1👎1
کریستوفر الکساندر
الکساندر در مورد پترن ها در ساختمان سازی و ... صحبت کرده و خودش هم توی کار ساختمان و این داستانا بوده ولی ابداع pattern language کار اون بوده.
عکس بالا هم کتابش در رابطه با این موضوع هست.
توی صنعت نرم افزار تقریبن اولین pattern language که خیلی معروف شد توسط Gang of Four تدوین شد که با ایده گرفتن از کار الکساندر انجام شد.
بعد از Gang of Four این موضوع توی صنعت نرم افزار خیلی رایج شد و pattern language های دیگه ای توی زمینه های مختلف مدون شدن و هنوز هم این راه ادامه داره.
این Pattern Language ها خدمت زیادی به افراد میکنن و مهمترینش اینه که به جای اینکه یه تومار راجب یه چیزی توضیح بدن تا منظورشو بفهمونن, با یه کلمه کل داستان رو میرسونن.
Each pattern describes a problem which occurs over and over again in our environment, and then describes the core of the solution to that problem, in such a way that you can use this solution a million times over, without ever doing it the same way twice
الکساندر در مورد پترن ها در ساختمان سازی و ... صحبت کرده و خودش هم توی کار ساختمان و این داستانا بوده ولی ابداع pattern language کار اون بوده.
عکس بالا هم کتابش در رابطه با این موضوع هست.
توی صنعت نرم افزار تقریبن اولین pattern language که خیلی معروف شد توسط Gang of Four تدوین شد که با ایده گرفتن از کار الکساندر انجام شد.
بعد از Gang of Four این موضوع توی صنعت نرم افزار خیلی رایج شد و pattern language های دیگه ای توی زمینه های مختلف مدون شدن و هنوز هم این راه ادامه داره.
این Pattern Language ها خدمت زیادی به افراد میکنن و مهمترینش اینه که به جای اینکه یه تومار راجب یه چیزی توضیح بدن تا منظورشو بفهمونن, با یه کلمه کل داستان رو میرسونن.
@purecoder_ir
🔥7❤1
❓چالش
یه دونه account داریم که میتونه activate و deactivate بشه
حالا میخوایم یه rest api برای activate و deactivate کردنش طراحی کنیم
کدوم یک از گزینه های زیر بنظرت بهتره؟
1⃣
2⃣
3⃣
4⃣
5⃣
6⃣
یه دونه account داریم که میتونه activate و deactivate بشه
حالا میخوایم یه rest api برای activate و deactivate کردنش طراحی کنیم
کدوم یک از گزینه های زیر بنظرت بهتره؟
1⃣
PUT
api/accounts/{id}
Body :
{
isActive: true
}
2⃣
PATCH
api/accounts/{id}
Body :
{
isActive: true
}
3⃣
PUT
1) api/accounts/{id}/activate
2)api/accounts/{id}/deactivate
4⃣
PATCH
1) api/accounts/{id}/activate
2)api/accounts/{id}/deactivate
5⃣
PUT
api/accounts/{id}/status
Body :
{
isActive: true
}
6⃣
PATCH
api/accounts/{id}/status
Body :
{
isActive: true
}
@purecoder_ir
👍1
👍1