Pure Coder
785 subscribers
189 photos
30 videos
8 files
150 links
⭕️آدرس سایت:
https://purecoder.ir

⭕️گروه پرسش و پاسخ:
@purecoder_gp

⭕️پشتیبانی:
@PureCoder_support
@MohammadTaherri
Download Telegram
تقویت زبان انگلیسی از هر چیز دیگه ای برای پیشرفت ضروری تره...

برای تقویت زبان لغت حفظ نکنید، پادکست گوش کنید، برنامه کودک ببینید و ....

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

مثلن یه پادکست رو توی ۲ هفته ۵۰ بار گوش کنید

بعدش یه پادکست یه کوچولو سختر انتخاب کنید و دوباره ۵۰ بار گوش کنید

توی هر پادکست ۱۰ تا ۲۰ تا لغت و اصطلاح جدید به این شکل و به صورت کاربردی یاد میگیرید

برنامه کودک ها و سریال های ساده و روون رو هم میتونید به همین شکل، یعنی با تکرار بالا ببینید.

تکرار بالا شرط اصلیه

مغز با تکرار یه چیزی رو حالیش میشه

نگید یاد گرفتم میرم سر بعدی

تکرار در حدی که دیوونه بشید و بخواید گوشی رو پرت کنید توی دیوار 😁😁😁

@purecoder_ir
تست می‌نویسید؟
Anonymous Poll
16%
آره
84%
نه
Pure Coder
تست می‌نویسید؟
چون اکثرن اینجا موبایلی هستن اختصاصن در مورد موبایل میگم ...

آپ موبایلی که همه چیزش سمت سروره، یونیت تست زیادی نمیخواد و یونیت تست نوشتن براش نه میصرفه و نه سودی میرسونه (به جز جاهای اندک)، ولی integration رو باید بزنید

نیازی به e2e هم نیست ولی integration حتمن بزنید و یه view model خوب درست کنید که تا جایی که میشه لاجیکی توی UI قرار نگیره و به جز UI هر یوزکیس رو از سر تا ته integration بزنید و وب سرویس ها رو هم mock کنید

@purecoder_ir
Pure Coder
چون اکثرن اینجا موبایلی هستن اختصاصن در مورد موبایل میگم ... آپ موبایلی که همه چیزش سمت سروره، یونیت تست زیادی نمیخواد و یونیت تست نوشتن براش نه میصرفه و نه سودی میرسونه (به جز جاهای اندک)، ولی integration رو باید بزنید نیازی به e2e هم نیست ولی integration…
البته این نکته هم مهمه که تست نزدن توی موبایل معمولن ضرری به بیزینس نمیرسونه (معمولن، معمولن، معمولن) و نزدنش خیلی ریسکی نیست، اونجوری که توی بکند ریسکی هست و ممکنه دیتاسورس رو به ... بده و بیزینس رو فلج کنه .

به هر حال تست ها باید بر اساس ریسک نوشته بشن و شاید از این نظر بخواید توجیه کنید که وقتی ریسکی برای بیزینس نداره پس نزدیم هم نزدیم.

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

به هر حال نرم افزار همش trade off عه

@purecoder_ir
دو تا اصطلاح یاد بگیریم ؟😍

🍀پروژه ای که از صفر صفر شروعش کردید و هیچی کد وجود نداره و از اول قراره همه چی توسعه پیدا کنه بهش میگن Greenfield.

💩پروژه ای که قبلن کلی کد زده شده و احتمالن خراب کاری هم شده و همچین دلچسب نیست و قراره ادامش بدید بهش میگن Brownfield.

@purecoder_ir
Forwarded from Pure Coder (Mohammad Taheri)
🔗 سایت👇
https://purecoder.ir

🆔کانال👇
@purecoder_ir

🆔گروه👇
@purecoder_gp

🆔پشتیبانی👇
@PureCoder_support
Service Locator

امروزه service locator به عنوان یکی از آنتی پترن های dependency injection شناخته میشه و استفاده ازش به ویژه باعث وابستگی تست های مختلف به هم و سخت شدن فرایند تست میشه.

علاوه بر این مشکلات دیگه ای هم داره که در نهایت service locator رو به گزینه ی خوبی برای DI تبدیل نمیکنه.

@purecoder_ir
🔥silver bullet

یه اصطلاحی هست که به چیزی میگن در برابر هر مشکلی یه راه حلی جلوی پامون میگذاره و همه جا دستمون رو میگیره و هر جایی گیر کنیم میریم سراغش.

توی نرم افزار هیچ Silver Bullet ای نداریم و هر چیزی فقط توی یه اسکوپ خاصی کارایی داره و نه همه جا.

@purecoder_ir
کد کلین کدی هست که شبیه یه داستان خونده بشه.

همین.

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

فرقی نمیکنه اسم یه متد باشه یا یه condition که توی if قرار میگیره یا هر چیز دیگه ...

فرمول همینه ...تا حد امکان یه جمله یا کلمه ی روون انگلیسی با رعایت دستور زبان.

@purecoder_ir
نمونه بارز UX بد کارت خوان هایی هست که به نونوایی ها دادن.

یه باتن مثبت و منفی داره که باهاش تعداد نون رو مشخص میکنه و حالا اگه یه نفر بخواد ۳۰ تا نون بخرن باید ۳۰ بار مثبت رو بزنه .

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

چنین سیستم هایی usability پایینی دارن و کاربر باید کشفشون کنه و یوزکیس های مهم رو در دسترس و جلوی چشم کاربر قرار نمیدن.

@purecoder_ir
همیشه حضرت نوح در کار نیست😳😳

فیچرهایی که ولیو اضافه نمیکنن و پول نمیسازن و هم راستا با هدف بیزینس نیستن، دست و پای بیزینس رو میبندن.

@purecoder_ir
هر چقدر برنامه نویس بهتری بشی، سرعت کد زدنت کمتر میشه، حداقل در شروع کار، برنامه نویس های بد به انتها نمیرسن چون بخاطر سرعت زیاد به در و دیوار میخورن و شهید میشن.

@purecoder_ir
بعضی کدهارو که نگاه میکنی (توی کامیونیتی فلاتر ) ... یه تلاش نافرجام برای معماری میبینی:

+یه یوزکیس داره
+یه متد توی ریپوزیتوری داره دقیقن هم اسم یوزکیس
+یه کلاس به اسم دیتاسورس (یا ...) داره
+یه متد توی دیتاسورس داره اسمش شبیه همون قبلیا با اندکی تفاوت(یوزکیس و ریپو)
+برای هر کدوم اینا یه اینترفیس هم زده
+احتمالن یکی دو تا کلاس دیگه مثل api provider رو‌ این چیزا هم داره.

تهش یه خط کد توی اون دیتاسورسه زده و کل داستان با همون هندل شده و نهایتن یکی دو خط هم توی ریپو (مثلن ارور هندلینگی چیزی )

دلیل این همه پیچوندن لقمه دور سر چیه؟

برای یه تسک کوچولو باید این همه کلاس و ... نوشت 🤦‍♂

کدی که هیچ abstraction ای نداره و فکر میکنیم بخاطر اون اینترفیس ها abstraction اعمال کردیم 🤦‍♂

کدی که فهمش سخته چون برای یه کار خیلی کوچولو باید هی کلاس به کلاس و متد به متد توی کد بچرخی و بری پایین تا تهش به دو خط کد برسی که اون کار رو انجام دادن.

چه سودی داره؟
هیچ، همش ضرر.

@purecoder_ir
یکی‌از سوالاتی که برای خیلی از برنامه نویس ها پیش میاد اینه که مواردی مثل MVC و MVVM و ... معماری هستن یا نه؟

اگه معماری هستن، چرا؟

اگه نیستن، پس‌‌ چی هستن و ارتباطشون با معماری چیه؟

اصلن هدفشون چیه؟

خب،‌ نظر و دانسته های خودت رو زیر این پست به اشتراک بگذار🙏

هر چی توضیح بیشتر، بهتر.

پ.ن: از chat gpt اگه میپرسید، اینجا کپی نکنید😁😁 بفهمید چی گفته و بعد اینجا بگید

@purecoder_ir
🤦‍♂🤦‍♂🤦‍♂🤦‍♂🤦‍♂

@purecoder_ir
Pure Coder
🤦‍♂🤦‍♂🤦‍♂🤦‍♂🤦‍♂ @purecoder_ir
کسایی که عادت به نت برداری حساب شده دارن توی این امر موفق ترن.

من خودم متاسفانه عادت به این کار ندارم.

علم رو نباید واو به واو حفظ بود، بلکه باید راه استقاده ازش رو بلد بود و هر موقع نیاز بود به کاغذ ها مراجعه کرد و ازش استفاده کرد.

به قول یک بزرگی که می‌گفت من نمیتونم به مغز خودم اعتماد کنم، پس مینویسم و سندش میکنم تا هر موقع خواستم بهش مراجعه کنم.

چیز هایی که روی کاغذ هستن بیشتر اژ چیزهایی که توی سرمون هستن قابل اعتمادن.

@purecoder_ir
🔥چالش

🟢یه مسابقه ی فوتبال که توی مرحله ی حذفی یه cup مثل چمپیونزلیگ برگزار میشه رو در نظر بگیر.

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

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

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

این مسابقه رو با کد مدل کن...
یکی از behavior هایی که لازم داریم اینه که تیم برنده مشخص بشه
و behavior دیگه ای که لازم داریم گرفتن امتیاز تیم برنده هست.(تعداد گل هایی که زده)

🟢سوال یا ابهامی داشتی توی کامنت...
🟢فقط چنتا کلاس قراره بنویسی و احتمالن یونیت تست...
استیت منجمنت و کدهای فلاتری و ... ننویس.
یو ای لازم نیست
🟢هر زبان برنامه نویسی باشه اوکیه.

🔥دوستانی که بدنبال پروژه نمونه تست و معماری و ...بودن اینو انجام بدن و از اینجا شروع کنن.

@purecoder_ir
سعی کنید وقتی که توی مسیر شغلیتون به جایی میرسید، همون مدلی با آدم ها برخورد کنید که وقتی هیچی نبودید برخورد می‌کردید...

شق القمری اتفاق نیوفتاده، اون آدم ها هم دیر یا زود میرسن بهت و ویییییییژژژ از کنارت رد میشن...

@purecoder_ir
وقتی راننده اسنپی و خودت خبر نداری 😳😳
اول دبستان که بودیم به ما املا میگفتن...

بعضی بچه ها وقتی یه صفحه رو پر میکردن، میگفتن خانم اجازه، خانم اجازه، ما صفحمون تموم شد، چکار کنیم ؟

بعد که خانم معلم بهشون میگفت برو صفحه ی بعدی، اونا هم میرفتن ادامشو توی صفحه بعدی مینوشتن‌.

اگه برای نوشتن تیکه تیکه کدتون، تست بنویسم یا نه؟ کدمو فلان جا ریفکتور کنم یا نه؟ و... میرید از مدیرتون اجازه میگیرید، شما هم شبیه همون بچه کوچولوعه هستید🤦‍♂

@purecoder_ir