Pure Coder
описание
⭕️آدرس سایت: https://purecoder.ir ⭕️گروه پرسش و پاسخ: @purecoder_gp ⭕️پشتیبانی: @PureCoder_support @MohammadTaherri
768
подписчиков
Охват к подписчикам
90,6%
ERR
Реакции к просмотрам
1,61%
237 на 21 постов
Пересылки к просмотрам
0,55%
81
Постов в день
0,0
всего 21
Где отзываются чаще
доля реакций к просмотрам- 5 дек.واقعن هیچ شرکتی کار درست تر از Jet Brains نیست... این یه دونه رو بذارید متعصب باشیم😂😂3,32%
- 25 нояб.برنامه نویس ها علاقه ی زیادی به reuse کردن کد دارن. این علاقه باعث میشه که خیلی وقت ها دنبال این باشن که چند تا مفهوم (concept) رو generalize کنن و ازش یه base class تولید کنن که یه کدی رو به اشتراک میگذاره و بقیه کلاس ها ازش ارث بری میکنن ... . خیلی وقت ها خیلی عجله میکنن و قبل از اینکه خود اون concept ها رو implement کرده باشن میخوان به زور ازش یه base class در بیارن. یعنی اول base class تولید میشه و بعد ... . این عجله بیشتر وقت ها نتیجه ی خوبی نداره. ابتدا باید هر concept به صورت جداگانه پیاده سازی بشه. صبر و تحمل به خرج بدیم و اجازه بدیم و اجازه بدیم و اجازه بدیم که اگه duplication واقعی بوجود اومد، اون موقع از قوه ی generilazation خودمون استفاده کنیم و یه base class استخراج کنیم. ریفکتورینگ ابداع شده تا بتونیم صبور باشیم و هر کاری رو به موقع انجام بدیم و نه زودتر از موعدش. @purecoder_ir2,97%
- 14 нояб.استفاده از واژه های انگلیسی در گفت و گو های روزمره وقتی که معادل فارسی زیبا داره، خیلی زشته. متاسفانه این زشتی گریبان بیشتر ماها رو گرفته... @purecoder_ir2,58%
- 28 нояб.🔥سطح مهندس های نرم افزار ایران از نگاه کسی که توی گوگل بوده و سال ها خارج از ایران بوده. 😱کسایی که میگن توی ایران سطح فنی همه پایینه و مرغ خارجیا غازه، مشکل از خودشونه!!! ❓خودمون چه قدمی برای بهبود برداشتیم؟ پ.ن: من این فرد رو نمیشناسم و به صحبت هاش استناد نمیکنم. ولی حرفی که میزنه رو قبول دارم و اصلن قبول ندارم که توی ایران سطح فنی افتضاحه و پات رو که از ایران بیرون بگذاری، سطح فنی و عمق دانش سر به فلک میگذاره. برعکس یه موقع هایی با افرادی روبرو میشی که مغزت سوت میکشه و تعدادشون هم کم نیست. @purecoder_ir2,16%
- 20 нояб.قبل از Git سورس کنترل های مهم مثل subversion بر اساس ایده ی central repository کار میکردن. یه ریپوزیتوری مرکزی بود که همه بهش وصل میشدن. ولی گیت ایده ی Distributed Source Control رو مطرح کرد. یعنی قبلن اگه ۱۰۰ نفر روی یک پروژه کار میکردن، یه ریپوزیتوری مرکزی روی cloud بود که همه باید بهش متصل میشدن و روش کار میکردن و اون ریپو بود که نسخه ی معتبر پروژه بود. قبل از subversion حتا cloud هم خیلی مطرح نبود. ولی توی دنیای گیت اگه ۱۰۰ نفر روی یک پروژه کار کنن، همشون یه نسخه ی لوکال یا محلی برای خودشون دارن و همه ی این نسخه ها هم نسخه های معتبر پروژه هستن. درسته که یه ریپوزیتوری روی cloud هست. ولی این ریپو کمک میکنه که نسخه های لوکال به طور پیوسته باهم سینک یا همگام یشن. این به این معنی نیست که اون ریپویی که روی cloud هست از درجه ی اعتبار بالاتری نسبت به نسخه ی لوکال برخورداره. تمام نسخه هایی که توی تمام ماشین ها اجرا میشن از یک درجه ی اعتبار برخوردارن. و این میشه ایده ی Distributed Source Control. @purecoder_ir2,06%
- 13 нояб.ویراش دوم کتاب Clean Code. باب مارتین، ۲۰۲۵. 🔥تغییرات زیادی نسبت به ویرایش اول داشته: ✅از اصول low level کلین کد، ✅تا اصول سالید و، ✅اصول طراحی component ها، ✅معماری کلین، ✅تست، ✅و حتا هوش مصنوعی، توی این ویرایش صحبت شده. البته خیلی از این موارد توی ویرایش اول هم بود. ولی خب یه باز طراحی شده. @purecoder_ir1,87%
- 1 дек.🔥Fluent Validation ✅پکیج Fluent Validation یه پکیج محبوب توی سی شارپ هست که برای input validation استفاده میشه و امکانات زیادی داره. 🔥داشتم دنبال چنین چیزی توی دارت میگشتم که یه پکیج با اسم مشابه پیدا کردم که به طور کامل از نمونه ی سی شارپش الهام گرفته. https://pub.dev/packages/fluent_validation class UserValidator extends AbstractValidator<User> { UserValidator() { ruleFor((user) => user.age, key: 'age').isNotNull().greaterThanOrEqual(13); ruleFor((user) => user.name, key: 'name').isNotEmpty(); } } // Later on final UserValidator validator = UserValidator(); ValidationResult result = validator.validate(user); result.errors.first.key == 'The key of the rule that errored (for example age)' result.errors.first.message == 'The supplied error message (Passed by you, or default)' result.errors.first.code == 'The error code' ✅یه جاهایی با نمونه ی سی شارپ متفاوته که فک میکنم بخاطر غیرفعال بودن رفلکشن توی دارت این مورد پیش اومده. ولی خب اون قدر مهم نیست. @purecoder_ir1,84%
- 18 нояб.تصور اینکه ۶۰ سال پیش کدها شون رو روی یه سری punched card هک میکردن و هر پروژه ای شامل یه عالمه از این punched card ها بوده و سورس کد یه پروژه رو (ینی این کارت ها رو) توی کابینت یا کشو نگه میداشتن، و در کمتر از ۶۰ سال به این نقطه رسیدیم خیلی سخته. (هر کارت یه خط برنامه رو در برمیگرفته و هر برنامه شامل تعداد خیلی زیادی از این کارت ها بوده که با یه دونه کش به هم میبستنشون تا گم و گور نشن.🤣 یعنی برنامت از نظر فیزیکی وزن زیادی داشته و برای حملش باید یه کامیون میگرفتی😂 ) فرض کن این کارت ها که هر کدوم شامل یه خط برنامه بودن از دستت ول میشدن و ترتیب کدها به هم میریخت.😂😂🤦♂🤦♂ پس در اینده هم دنیای نرم افزار به گونه ای پیش میره که کارهایی که الان میکنیم، پیش پا افتاده یا حتا خنده دار تلقی میشه. جهان نرم افزار ترسناکه!!! @purecoder_ir1,83%
- 14 дек.🔥یک نکته ی کوچیک public class AuthorDto { [Key] public Guid Id {get; set;} [Required] [MaxLength(50)] public string FirstName {get; set;} [Required] [MaxLength(50)] public string LastName {get; set;} [Required] public DateTimeOffset DateOfBirth {get; set;} [Required] [MaxLength(50)] public string MainCategory {get; set;} public ICollection<Course> Courses {get; set;} = new List<Course>(); } ❌اعمال ولیدیشن به این شکل و با استفاده از Annotation بالای سر پراپرتی های Dto باعث نقض Single Responsibility میشه!!! ✅تنها مسيولیت یا Single Responsibility یک Dto انتقال یا transfer کردن دیتاست و نه چیز دیگه. ❌این مدل ولیدیشن احتمال duplication رو هم بالا میبره که با نقض SRP ارتباط تنگاتنگ داره... پ.ن: مثال با سی شارپه, ولی این مدل ولیدیشن رایجه و نمونش رو جاهای دیگه هم میتونید ببینید. @purecoder_ir1,80%
- 29 дек.این elif توی پایتون باحاله. قشنگ و راحت تلفظ میشه: الیف. خیلی راحتره تا اینکه بگی: الز ایف. اگه با دید سرسختانه که همش دوس داریم پایتون رو بکوبیم بهش نگاه نکنیم. بنظر من syntax پایتون زشت نیس و در کل خیلیم خوبه. @purecoder_ir1,74%
- 27 нояб.🔥Configurations in .NET توی دات نت میتونیم تنظیمات برنامه رو توی سطوح مختلف به برنامه پاس بدیم. 1️⃣appsettings.json 2️⃣appsettings.[Environment].json 👉appsettings.Development.json 👉appsettings.Production.json 3️⃣OS Environment variables 4️⃣Command Line Args 1️⃣پایین ترین سطح appsettings.json هست. 2️⃣بعد از اون تنظیمات مربوط به environment خاص هست. مثل 👉appsettings.Development.json 👉appsettings.Production.json تنطیماتی که اینجا قرار میگیرن, تنظیمات appsettings.json رو در صورت تداخل اوراید میکنن. 3️⃣سطح بعدی قرار دادن تنظیمات توی environment variable های سیستم عامل هست که این ها هم تنظیمات دو سطح قبلی رو در صورت تداخل اوراید میکنن. اینجا میتونیم تظیمات رو با استفاده از env var هایی که روی سیستم عامل یا داکر کانتینر ست میکنیم اعمال کنیم. 4️⃣اخری هم command line args هست که نسبت به همه اولویت بالاتری داره. ✅پس برای مثال اگه یه connection string رو توی appsettings گذاشته باشی و توی development ازش استفاده کنی, توی پروداکشن میتونی با env var ای که روی داکر ست میکنی اورایدش کنی. پ.ن: این اولویت بندی و اوراید کردن توسط فریمورک انجام میشه و لازم نیست ما کاری انجام بدیم. توی برنامه ما با استفاده از configuration کانفیک مربوطه رو میگیرم و استفاده میکنیم و همه ی کارهای مربوط به اولویت بندی و اوراید شدن توسط فریمورک انجام میشه. Configuration["ConnectionString:Default"] 🔥فرمت کانفیگ هایی که توی appsettings.json قرار میگیرن به صورت json هست: { "ConnectionString": { "Default ": "...." } } ولی موقع تنظیم کردن توی environment variable باید به این صورت عمل کنیم: expose ConnectionString__Default = "..." // linux setx ConnectionString__Default "..." //windows اون __ کار nested object توی json رو میکنه!!! توی داکر هم باید با همین فرمت تعریف بشن (__) @purecoder_ir1,51%
- 8 февр.🔥شیائومی توی HyperOS 4 از فلاتر برای توسعه ی اپلیکیشن های بومی خودش استفاده میکنه. لینک مبنع: https://www.gizmochina.com/2026/02/05/xiaomi-hyperos-4-self-developed-os-ai-framework/ Xiaomi is also experimenting with rewriting core system apps using Google’s Flutter framework and the Rust programming language. @purecoder_ir1,49%