Pure Coder
784 subscribers
196 photos
34 videos
8 files
163 links
⭕️آدرس سایت:
https://purecoder.ir

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

⭕️پشتیبانی:
@PureCoder_support
@MohammadTaherri
Download Telegram
😱نشخوار فکری

1⃣تفکر عمیق (Ruminating):
اشتباهات گذشته رو بارها و بارها توی ذهنت مرور میکنی.

2⃣فاجعه سازی(Catastrophizing):
بدترین سناریوی ممکن رو محتمل ترین حالت تصور میکنی.

3⃣فلج تحلیلی (Paralysis by analysis):
بین گزینه ها گیر میکنی و هیچ وقت دست به کار نمیشی.

4⃣ ذهن خوانی (Mind-reading) :
با خودت فرض میکنی که دیگران چی فکر میکنن و اکثرا فکر خوبی نیست.

5⃣در جست وجوی تایید مداوم (Reassurance seeking):
مدام از دیگران میپرسی که آیا کارت رو درست انجام میدی.

6⃣نگرانی از آینده (Future - tripping):
در مورد چیزهایی که ممکنه در آینده اشتباه پیش برن وسواس به خرج میدی.

7⃣مارپیچ مقایسه (Comparison spirals):
زندگی خودت رو با ویترین زندگی دیگران مقایسه میکنی.

@purecoder_ir
8
This media is not supported in your browser
VIEW IN TELEGRAM
جهان - من =

یه بار یه جایی یه سوالی مطرح شد که از نظر شما یه برنامه نویس خوب کیه؟

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

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

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

و ... .

ولی من میگم تعریف از خوب بودن ارتباطی با جایگاه و شغل تو نداره‌.

تاثیر گذار هستی یا نه؟
تا حالا چقدر توی بهتر شدن مسیر بقیه ایفای نقش کردی؟
بدون وجود تو کارها چقدر سخت میشه؟

جهان بدون تو تعریفش تغییر میکنه یا نه؟
جهان بدون تو باید یه چیزی کم داشته باشه، ولو به اندازه ی یک اتم.

بقیه چیز ها ابزارهایی هستن که ما در جهت خوب بودن یا بد بودن ازشون استفاده میکنیم، ولی اون ابزارها به خودی خود و به تنهایی تعیین کننده نیستن!! این ما هستیم که ظرف اون ها رو تعیین میکنیم.

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

@purecoder_ir
8👍2
میگن مدیرعامل اوراکل شده ثروتمندترین فرد دنیا و ایلان ماسک رو گرفته.

حالا دیگه چطوری توی چشم جاوایی ها نگاه کنیم 😂😂

داستانی شد🤦‍♂🤦‍♂😜
🤣12😁5
توی دارت برای اینکه ببینیم آیا دو تا object reference به object یکسانی اشاره میکنن یا نه، از چی استفاده میکنیم؟ (به عبارت دیگه میخوایم دو تا variable رو مقایسه کنیم و ببینیم که ایا به یک object توی حافظه برمیگردن یا نه؟)
Anonymous Quiz
45%
"==" (Equality) operator
28%
"identical" function
16%
"equals" method
11%
نمیدونم، دیدن جواب
Pure Coder
توی دارت برای اینکه ببینیم آیا دو تا object reference به object یکسانی اشاره میکنن یا نه، از چی استفاده میکنیم؟ (به عبارت دیگه میخوایم دو تا variable رو مقایسه کنیم و ببینیم که ایا به یک object توی حافظه برمیگردن یا نه؟)
فانکشن identical برای مقایسه رفرنس ها به کار میره:
identical(o1, o2);

این فانکشن توی ورودی ۲ تا object میگیره.

ولی چرا "==" درست نیست؟

این operator توی کلاس object وجود داره و همه ی کلاس های دارت هم به صورت implicit از Object ارث بری میکنن. عملکرد پیش فرض این operator توی کلاس object به این شکله که از فانکشن identical استفاده میکنه و همه چیز رو به اون میسپاره. پس عملکرد پیش فرض این operator هم مقایسه کردن رفرنس هاست.

‌پس چرا نادرسته؟

این operator امکان داره توی کلاس های دیگه override بشه و عملکردش تغییر کنه. برای همین همیشه و همیشه reference ها رو برای مقایسه چک نمیکنه.

همون طور که توی مقاله ی زیر گفتیم👇

https://purecoder.ir/three-types-of-equality-in-programming-world/

سه حالت برای مقایسه ی object ها داریم:

Reference
Structure
Identifier

🔥برای پیاده سازی حالت های دوم و سوم باید == رو اوراید کنیم و عملکردش رو تغییر بدیم. پس این operator همیشه و در همه ی شرایط reference رو مقایسه نمیکنه و ممکنه structure و یا identifier رو مورد هدف قرار بده.

پس اگه == ترو داد، همیشه به این معنا نیست که دو تا چیزی که مقایسه کردیم رفرنس یکسانی داشتن. ولی اگه identical ترو داد، چرا !!!

@purecoder_ir
🔥7👍1
🔥اینترفیس ها در جاوا و سی شارپ

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

یا خیلی چیز های دیگه...

خب اینکار ها رو با کلاس هم میشه انجام داد.

کلن هر کاری که با اینترفیس انجام میدیم، با کلاس هم میشه انجامش داد‌.

پس چرا نیاز به وجود چنین عنصری در زبان های برنامه نویسی بوده؟

1⃣زبان c++ از multiple inheritance پشتیبانی میکرد. یعنی یه کلاس به طور همزمان میتونست از چند کلاس دیگه ارث بری کنه.

2⃣پشتیبانی از multiple inheritance چالشی به اسم diamond problem رو به وجود میاره که زبان هایی که از این قابلیت پشتیبانی میکنن، باید فکری به حالش کنن.

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

✂️اما مساله اینجاست که توسعه دهنده گان جاوا و سی شارپ از بیخ این مساله رو حذف کردن و نمیخواستن خودشون رو درگیر diamond problem کنن. در نتیجه بحث multiple inheritance رو پیچوندن و‌ گفتن که توی زبان ما یک کلاس فقط و فقط میتونه از یک کلاس دیگه ارث بری کنه‌.

😖ولی این مساله یه مشکل اساسی رو بوجود میورد. بعضی مواقع واقعن نیاز داشتیم که کلاسمون از چند کلاس دیگه ارث بری کنه. برای مثال چند تا abstract class داشتیم و میخواستیم که کلاسمون از همشون ارث بری کنه.

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

🔥در واقع یکی از دلایل اصلی وجود اینترفیس ها در این دو زبان، پیچوندن multiple inheritance بوده و نه یه چیز خارق العاده و یا یه جعبه ی جادویی که امکاناتی رو بهمون بده که قبلن کلاس ها بهمون نمیدادن.

@purecoder_ir
🔥8👏1👌1
This media is not supported in your browser
VIEW IN TELEGRAM
+شما استادش بودید؟

+اگر انصاف داشته باشید باید بگویید شاگرد مستعدی بود.

مدرسه ی هنر مزرعه ی بلال نیست که هر سال محصولش بهتر شود. از کواکب آسمان هم یکی میشود ستاره ی درخشان، الباقی سوسو میزنند...


برشی از فیلم کمال الملک
پ.ن: برداشت آزاد ...
@purecoder_ir
8👏1
🥹توی JS نمیشه Object Oriented کد زد!!!

🥸ممکنه اینو خیلی شنیده باشی که جاوا اسکریپت یه زبانیه که نمیشه توش object oriented کد زد!!! مخصوصن جاوا اسکریپت خام و بدون امکاناتی که ES بهش میده.

🙄شاید بگن توش کلاس نداره و از این حرفا!!!

🤬نهههه.خیلیم میشه.

👈جاوا اسکریپت یه چیزی داره به اسم Constructor Function که همون چیزیه که لازم داریم‌. حتمن که نباید یه چیزی به اسم class باشه. اصن اصل object oriented همین Constructor Function بوده.

🍊ابجکت ارینتد یه دونه کلاس بهت میده که یه سری instance variable و یه سری method داره که اون متد ها میتونن از instance variable ها استفاده کنن.

📋حالا در نظر بگیر که یه function داری که داخل خودش یه تعداد local variable تعریف کرده و همچنین یه تعداد nested function هم توی خودش داره. در نتیجه اون nested function ها میتونن از local variable های داخل function استفاده کنن.

🏭در واقعیت object oriented همین کار رو میکنه. یعنی یه فانشکن بزرگ به اسم Constructor Function تعریف میکنه که توی دل خودش یه تعداد local variable و nested function داره. به local variable ها میگه instance variable و به nested function ها میگه method.

🔥حالا زبان های برنامه نویسی اومدن و یه سینتکس خوشکل (class) بهمون دادن که کار مارو ساده تر کنن. درسته که جاوا اسکریپت اون سینتکس قشنگه رو نداره. ولی دلیل نمیشه که بگیم کلن نمیشه توش OO زد. چون چیزی که باید داشته باشه رو داره.

📦کلاس ها یه جعبه ی جادویی نیستن، در اصل همه چیز به همون فانکشن برمیگرده. ولی با یه سری ترفند ها تو رو از یه سیاه چاله عبور میدن و وارد سرزمین عجایبی به اسم Object Oriented میکنن.

😍پس توی JS هم میشه OO زد، به شرط اینکه به دنبال ظاهر نباشی. کاری با زشتی و قشنگیش و ایراد هاش ندارم، که حتمن ایراد هایی بهش وارده. ولی دلیل نداره یه موضوع رو از بیخ رد کنیم.

@purecoder_ir
🔥5👍3🤣1
Forwarded from Fluttery's Journey
خب دوره ی فلاترمون خیلی وقته که تکمیل شده و توی چند پست فصل های مختلفش رو‌ معرفی میکنیم تا برای دوستانی که تصمیم به شرکت دارن یه راهنما باشه.

این دوره شامل ۱۶ فصله که توی ۳ پارت تنظیم شده. فصل های ۱ تا ۷ توی پارت یک قرار دارن که از لینک زیر میتونید دنبالش گنید👇
https://purecoder.ir/course/flutterys-journey/

1⃣فصل اول

توی فصل اول یه مقدمه ی خیلی کوتاه در مورد درخت های مختلف فلاتر و معماری فلاتر میگیم.

در مورد call stack صحبت میکنیم. بعدش Recursive Function ها رو یاد میگیریم و نحوه ی مدیریتشون توی call stack رو با مثال عملی و شکل میبینیم.

همچنین یه مثال خوب دیگه از Recursive Function میزنیم و اونو با روش TDD حل میکنیم و unit test هاش رو تحلیل میکنیم و مرحله به مرحله جلو میبریمش.

در نهایت ولی با Event Loop توی دارت آشنا میشیم و میبینیم که در پشت پرده ی کدهای async ای که میزنیم چی میگذره.

🔥قرار بود توی فصل اول در مورد Composite Pattern هم صحبت کنیم، ولی در ادامه یه فصل کامل رو به این پترن اختصاص دادیم و توی فصل ۷ با دو تا مثال عملی به خوبی شرحش دادیم. یکی از این مثال ها Multi Currency Money بود که توش جمع و تفریق کردن واحد های مختلف پولی باهم و سپس تبدیلشون به یک واحد رو با Composite Pattern مدل کردیم.

5 Dollar + 10 Euro + 30 Dirham

توی این فصل همچنین ارتباط Composite Pattern با Recursive Function رو بررسی کردیم و نحوه ی مدیریتش توی Call Stack رو با شکل دیدیم.

@fluttery_journey

@purecoder_ir
11
Forwarded from Fluttery's Journey
2⃣فصل دوم: Dart UI

🔥خب dart ui یه library خیلی low level عه که فریمورک فلاتر رو به انجین متصل میکنه.

توی این فصل با این المان های Low Level از جمله Engine Layer ها آشنا میشیم.

با مفهوم Frame و نحوه ی schedule کردن Frame اشنا میشیم و API های مختلف Platform Dispatcher رو هم بررسی میکنیم.

بدون استفاده از هیچ ویجتی و با low-level ترین API هایی که dart ui در اختیارمون میگذاره یه دونه UI و یه دونه Animation ساده میسازیم تا با مفاهیم از پایه اشنا بشیم.

با Canvas اشنا میشیم و به ویژه مفاهیم save و restore کردن رو توی canvas یاد میگیریم‌.

🔥مفاهیم این فصل پایه ای برای ادامه دوره ایجاد میکنن و به ویژه موقع کار با Render Tree و Layer Tree و انیمیشن ها توی فصل های بعدی، کاربردشون رو به صورت عملی میبینیم و درک میکنیم.

🆔برای مشاوره یا ثبت نام در دوره به ایدی زیر پیام بدید👇
@PureCoder_support


@fluttery_journey

@purecoder_ir
5👌2
Forwarded from Fluttery's Journey
3⃣فصل سوم

توی این فصل با مفهوم Widget و Element و Render Object اشنا میشیم. البته اینجا خیلی ساده با این مفاهیم آشنا میشیم و توی فصل های اینده به طور دقیق Element و Render Object رو بررسی میکنیم.

تناظر بین ویجت ها، المنت ها و رندر ابجکت ها رو‌ بررسی میکنیم و میبینیم که ایا به ازای هر ویجت توی widget tree یک المنت توی element tree و یک رندر ابجکت توی render tree داریم یا نه؟

ماهیت Value Object بودن ویجت ها رو بررسی میکنیم.

با Build Context و واقعیت پشتش اشنا میشیم.

🆔برای مشاوره یا ثبت نام در دوره به ایدی زیر پیام بدید👇
@PureCoder_support


@fluttery_journey

@purecoder_ir
6
Forwarded from Fluttery's Journey
4⃣و5⃣: فصل های چهارم و پنجم

این ۲ فصل به طور کامل به Elment Tree اختصاص داره.

با Widget ها و Element های مختلف کار میکنیم.

✔️StatelessWidget/Element
✔️StatefulWidget/Element
✔️InheritedWidget/Element
✔️RenderObjectWidget/Element

فاز build که فاز سوم یک فریم هست رو به طور کامل بررسی میکینم.

با setState و حقیقت پشتش اشنا میشیم.

با استیت های مختلفی که یک المنت درش قرار میگیره
✔️ initial ✔️active ✔️inactive ✔️defunct

و همچنین اکشن های مختلفی که باعث تغییر استت المنت میشه
✔️ create ✔️mount ✔️deactivate ✔️activate ✔️unmount

به طور کامل اشنا میشیم.
😳پس با یک Finite State Machine هم طرفیم که توی عکس بالا میبینیم.

همچنین ساخته شدن رندر تری توی فاز بیلد رو‌ میبینیم.

و کلی نکته ی جذاب دیگه

6⃣فصل ششم: key ها

فصل ششم به Key ها اختصاص داره و انواع Key ها و ویژگی هاشون رو بررسی میکنیم.

با Local Key ها، ویژگی ها و کاربردشون اشنا میشیم.

همچنین Global Key ها رو هم به طور کامل بررسی میکنیم.

🆔برای مشاوره یا ثبت نام در دوره به ایدی زیر پیام بدید👇
@PureCoder_support


@fluttery_journey

@purecoder_ir
5
Forwarded from Fluttery's Journey
🔥پارت دوم دوره شامل ۴ فصل میشه و از فصل های ۸ تا ۱۱ رو در بر میگیره:

https://purecoder.ir/course/fluttery-journey-2/

🔥این پارت به طور کامل به بحث Rendering اختصاص داره.

توی فصل های قبلی با فاز Build اشنا شدیم و توی این پارت با ۳ فاز دیگه که یک فریم فلاتری طی میکنه به طور کامل اشنا میشیم:
✔️Layout
✔️Paint
✔️Composite

با Render Object ها و ویژگی هاشون اشنا میشیم.

نکات مهمی رو در مورد Constraints میگیم.

فاز Layout توی Render Tree رو به طور کامل شرح میدیم و مفهوم Re-layout Boundary رو به خوبی درک میکنیم و بررسی میکنیم که Render Object ها در چه شرایطی به Re-layout Boundary تبدیل میشن.

فاز Paint توی Render Tree رو هم به طور کامل بررسی میکنیم و مفاهیم زیر رو به طور کامل بررسی میکنیم:

✔️Repaint Boundar
✔️Compositing Bits

🔥فقط ۷ قسمت به Repaint Boundary اختصاص داره. اگه هست جای دیگه ایران نه کل جهان که اینجوری توضیح داده باشه....

فاز Composite رو‌ بررسی میکنیم و با Layer Tree و وظایفش به طور کامل اشنا میشیم.

با انواع Layer ها و ویژگی هاشون اشنا میشیم:

✔️Picture Layer
✔️Offset Layer ✔️Transform Layer
✔️Clip Layers ✔️BackdropFilter Layer ✔️...

کاربرد Engine Layer ها، Picture و Canvas رو که توی فصل ۲ باهاشون اشنا شده بودیم رو از نزدیک میبینیم.

با Painting Context اشنا میشیم و یاد میگیرم که چطوری باهاش کار کنیم.

با Pipeline Owner و نحوه ی مدیریت فاز های مختلف مربوط به rendering اشنا میشیم.

نحوه ی توسعه ی یک Render Object اختصاصی رو بررسی میکنیم.

و کلی نکته ی جذاب دیگه...

🆔برای مشاوره یا ثبت نام در دوره به ایدی زیر پیام بدید👇
@PureCoder_support


@fluttery_journey

@purecoder_ir
🔥3
کدام یک از موارد زیر هم ارز Hollywood Principle است؟

این اصل میگه: Don't call us, we'll call you.
Anonymous Quiz
44%
Inversion of Control
16%
Dependency Inversion
13%
Interface Segregation
27%
نمیدونم، دیدن جواب
🔥2
Forwarded from Fluttery's Journey
🔥پارت سوم دوره ی فلاتر شامل ۵ فصله که روی توسعه ی Render Box اختصاصی تمرکز می کنیم و هر چی نکته هست رو میگیم. همچنین توی دو فصل اخر در مورد Binding ها و Animation ها صحبت میکنیم:
https://purecoder.ir/course/flutterys-journey-3/

2⃣1⃣فصل دوازدهم

🔥این فصل به نحوه ی توسعه ی یک Render Box اختصاصی میپردازیم و نکته ای رو نگفته باقی نمیگذاریم.

در مورد Layout Protocol میگیم و مفاهیم Wet Layout و Dry Layout رو خیلی خوب بررسی و نحوه ی پیاده سازیش رو میگیم.

با Children Protocol و نحوه ی مدل کردن و مدیریت بچه های یه Render Box اشنا میشیم.

مفهوم Baseline رو به طور کامل شرح میدیم و میگیم که چطوری موقع ساخت یه Render Box اختصاصی باید به حسابش برسیم.

همچنین بحث مفصلی هم در مورد مفهوم Intrinsic Dimensions و پیاده سازیشون داریم.

در مورد نحوه ی نوشتن کانستراکتور و پراپرتی های یه Render Box و نکاتی که باید رعایت کنیم هم صحبت میکنیم.

🔥اما کار به اینجا ختم نمیشه و پا رو فراتر میگذاریم و در مورد ۲ مدل از Render Box های معروف مفصل صحبت میکنیم و ویژگی هاشون رو میگیم.
✔️Proxy Box
✔️Shifted Box

نحوه ی توسعه ی این ۲ مدل Box رو هم بررسی میکنیم.

و نکته های تر و تمیز دیگه که توی این فصل که با ۲۶ قسمت طولانی ترین فصل دوره هست، میگیم😍

🆔برای مشاوره یا ثبت نام در دوره به ایدی زیر پیام بدید👇
@PureCoder_support


@fluttery_journey

@purecoder_ir
4
Forwarded from Fluttery's Journey
🔥خب توی فصل ۱۲ هر نکته ای که برای توسعه ی یه دونه Render Box اختصاصی لازم بود رو گفتیم. ولی هر چقدر هم نکته بگیم، تا کد نزنیم و مثال نبینیم یه جای کار میلنگه.

🔥از این رو توی فصل های ۱۳ و ۱۴ وارد گود میشیم و چندین Render Box رو از صفر توسعه میدیم. توی این دو فصل ویجت های زیر و Render Box شون رو با هم توسعه میدیم:

ConstrainedBox / SizedBox
Padding
Align / Center
OverflowBox
ClipRect
Opacity
Stack

💥روند کار به این شکل نیست که بریم و سورس کد فلاتر رو نگاه کنیم. بلکه خدمون سناریو میچینیم و از صفر شروع به توسعه میکنیم. وسط کار به چالش میخوریم. چالش ها رو حل میکنیم و جلو میریم.

🔥با این مثال ها روند دقیق تحلیل نیازمندی ها و توسعه ی یه Render Box رو یاد میگیری و مثل اب خوردن انجامش میدی.

💥ویجت ها کاملن هوشمندانه انتخاب شدن تا توی هر کدوم نکته یا نکات خاصی رو یاد بگیریم و مدل های مختلفی از Render Box ها رو شامل میشن.


🆔برای مشاوره یا ثبت نام در دوره به ایدی زیر پیام بدید👇
@PureCoder_support


@fluttery_journey

@purecoder_ir
6
رضا رشیدپور، مجری، آموزش هوش مصنوعی گذاشته‌.😂

نفری ۶۰۰ تومن هم میگیره که بهت یاد بده چطوری از chat gpt استفاده کنی.😭

سوراخ دعا...
🤣21😱1
کد کپه ای

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

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

هیچ موقع توی این تله نیوفتید.

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

اتفاقن کمال گرایی باعث میشه که ادم صفر و صدی بشه و اون که یهو صفر بشی و بگی فقط یه چیزی مینویسم که بره و یهو صد بشی و بخوای از اول ایده ال بزنی، میشه کمال گرایی. حالت طبیعی یه کوچولو کد زدن و ریفکتور کردنش هست.

پ.ن: اصطلاح کد کپه ای هم اختراع خودم بود که میتونیم به واژگان کدنویسی اضافش کنیم😂😂😝😜

@purecoder_ir
👍15🔥21🤣1
This media is not supported in your browser
VIEW IN TELEGRAM
تهران یا شهرستان؟

@purecoder_ir
10