- 02:21 1405/1/18
- میلاد
Abstraction
بسیار مهمه ، برای اینکه بفهمی کد تمیز چیه ، برای اینکه بتونی کد بهتری بزنی ، برای اینکه درک کنی بقیه برنامه نویس ها چرا بعضی تصمیم ها رو گرفتن.
Abstraction
بسیار مهمه ، برای اینکه بفهمی کد تمیز چیه ، برای اینکه بتونی کد بهتری بزنی ، برای اینکه درک کنی بقیه برنامه نویس ها چرا بعضی تصمیم ها رو گرفتن.
هر کامپوننت که میبینی از خودت بپرس، چه چیزی ؟ چجوری ؟
یکی از راه های ریز کردن کامپوننت ها اینه. یا وضیفش این باشه که چجوری نمایش بده یا اینکه چه چیزی ( چه چیز هایی ) نمایش بده.
اگر جفتش باهم بود بهش شک کن.
تو تمیز کردن کد، قدم های کوتاه مهمه
( درواقع تمیز کردن کد نباید خیلی زمان بگیره ازت، ولی انجامش اجباریه )
چون اگر یهو بزنی یه تابع خیلی بزرگ رو ده تیکه کنی، احتمال داره به باگ بخوری، حل کردن باگ برای refactor کردن ، ازت زمان بی فایده میگیره و معمولا تو این حالت سخت تر میشه پیدا کرد کدوم بخش از چیزی که خورد کردی به باگ خورده.
پس کم کم تمیز کاری کن و هر کار کوچیکی که انجام میدی، تست های مروبط بهش رو اجرا کن.
بذار این کار برات روتین بشه، هر روز سیستم رو روشن کن برو تو محیط کد تا جایی که امکان داره کد بزن، حداقل دو خط بنویس، یه کم کد بخون هر جوری شده حتی پنج دقیقه هم، وقت بذار پاش . هرچقدر بیشتر تلاش نکنی تنبل تر میشی.
هیچ روز صفری نداشته باش.
همه میتونن کد بنویسن که کامپیوتر ها بفهمن ؛ یه برنامهنویس خوب ، کدی مینویسه که انسان ها هم بفهمن
اینم از اوج جوونی بچه های دهه هشتاد
واقعا rich editor خیلی باحالیه ، به شدت منعطف و قابل شخصی سازیه ، خیلی خوب تو next js کار میکنه ( مشکلات ssr نداره ) و واقعا پلاگین های مفید زیادی داره .
من به سلیقه خودم با shadcn ترکیبش کردم و یه تکست ادیتور بنظر تمیز برای محتوای وبلاگ ازش بیرون کشیدم ، پیشنهاد میکنم حتما باهاش کار کنید ( نمونه های اماده خوبی هم تو مستندات رسمی خودش هست )
bugfix:
اگر از useFieldArray استفاده میکنید حتما اون id که خودش میسازه رو اسمش رو تغییر بدید مثلا به keyId یا هر زهر مار دیگه ای ( بلاخره یه جا به دست و پا میپیچه )
پ ن : برای ایجاد فیلد های تکرار شونده به کار میره
برای سایت هایی که قراره چند زبانه باشه ، اینکه بین راست چین و چپ چین بدون مشکل جابجا بشی بهترین کار اینه که CSS رو درست استفاه کنی ( حالا با Tailwind یا هر چیز دیگه ای )
بسته به direction که اولش پیاده سازی میکنی (مثلا LTR ):
| به جای این | از این استفاده کن |
| right | end |
| left | start |
| margin-left | margin-inline-start |
| margin-right | margin-inline-end |
| padding-left | paddin-inline-start |
| padding-right | padding-inline-end |
| margin-top | margin-block-start |
| margin-bottom | margin-block-end |
| padding-top | padding-block-start |
| paddin-bottom | padding-block-end |
چرا ؟
چونکه وقتی شما میگی margin-left اگر direction بشه RTL همچنان سمت چپ فاصله داره .( برای مثال Icon و متن رو در نظر بگیر که تو یک منو هستن ، معمولا به متن میگی از icon فاصله بگیره ولی تو direction برعکس جای متن و icon جابجا میشه همین باعث بهم ریختگی میشه ) ولی وقتی میگی margin-inline-start وقتی که RTL باشه از سمت راست و وقتی که LTR باشه از سمت چپ فاصله میگیره .
این کار باعث میشه برای هر چیزی شرط نذاری و یه خط کد تو دوتا حالت کار میکنه.
میفهمم چقدر همه چیز خرابه، ولی کاری نیست که بتونی برای درست شدنش انجام بدی .
ولی میتونی همین الان بشینی یه CMS کوچیک برا خودت بسازی، تو یه همچین پروژه ای خیلی چیزا یاد میگیری . همچنین یه چالش سرگرم کننده میشه که گذر این روزای سخت رو کمتر حس میکنی .
یه پست راجب Mirror گذاشتم ، تقریبا خیلی از چیزایی که برای شروع لازم داری اونجا هست .
من کلی کامپوننت از shadcn دارم خواستی میدم استفاده کنی .