حس میکنم نسبت به هر پیامی که اینجا خونده میشه با خودتون میگین : "خب الان چیکار کنم پاشم برات برقصم" ؟
The Null Objective
دیگه میریم واسه مطالب مفید، از این به بعد فقط Geek Mode
سرما خوردم کل دیروزو خواب بودم، از امروز دیگه فقط مطالب مفید
👍2👨💻1
میخوام براتون از اولین تجربه جدی بکاندم بعد از حدود ۵-۶ سال فرانت کار کردن و تلاش های نصفه و نیمه برای ورود به بکاند بگم.
توی این چند سال من با خیلی از فریم ورکها و ابزار های مختلف کار کردم، از React و Next.js گرفته تا چیز هایی مثل Ark UI که شاید خیلیها حتی اسمش رو هم نشنیده باشن، ولی هر دفعه میخواستم برم سمت بکاند یه حس عجیب و غریبی داشتم، واقعا نمیدونستم کدی که دارم میزنم صرفا «درسته» و ارور نمیده یا اینکه واقعا یک کد Best Practice و اصولی مینویسم، نمیدونستم چیزی که مرز بین این دوتارو جدا میکنه دقیقا چیه، فقط با خودم میگفتم اگه یه خطا پیش بیاد میدونم از کجاست؟
این کد که الان داره کار میده آیا دو هفته دیگه هم کار میده؟
اگه از کار افتاد میدونم چطوری و کجارو باید تغییر بدم که همه چیزو نزنم خراب کنم؟
این یکی از بزرگترین مانع های ذهنیم برای کد بکاند بود.
مسئله دیگه ای هم که بود این بود که فکر میکردم برای دیپلوی کردن و تست کردن حتما باید همه چیز روی سرور و هاست انجام بشه و چون نه اطلاعات دقیقی از هزینه داشتم نه تجربه جدی از زیرساخت هر دفعه بیخیالش میشدم، مشکل اصلی این مبهم بودن بیش از اندازه فضا بود.
توی این چند سال من با خیلی از فریم ورکها و ابزار های مختلف کار کردم، از React و Next.js گرفته تا چیز هایی مثل Ark UI که شاید خیلیها حتی اسمش رو هم نشنیده باشن، ولی هر دفعه میخواستم برم سمت بکاند یه حس عجیب و غریبی داشتم، واقعا نمیدونستم کدی که دارم میزنم صرفا «درسته» و ارور نمیده یا اینکه واقعا یک کد Best Practice و اصولی مینویسم، نمیدونستم چیزی که مرز بین این دوتارو جدا میکنه دقیقا چیه، فقط با خودم میگفتم اگه یه خطا پیش بیاد میدونم از کجاست؟
این کد که الان داره کار میده آیا دو هفته دیگه هم کار میده؟
اگه از کار افتاد میدونم چطوری و کجارو باید تغییر بدم که همه چیزو نزنم خراب کنم؟
این یکی از بزرگترین مانع های ذهنیم برای کد بکاند بود.
مسئله دیگه ای هم که بود این بود که فکر میکردم برای دیپلوی کردن و تست کردن حتما باید همه چیز روی سرور و هاست انجام بشه و چون نه اطلاعات دقیقی از هزینه داشتم نه تجربه جدی از زیرساخت هر دفعه بیخیالش میشدم، مشکل اصلی این مبهم بودن بیش از اندازه فضا بود.
تا اینکه npm mirror عزیزی رو دیدم و خب این چند وقته به خاطر قطع اینترنت خیلیا با go یه سری کد زده بودن و من سعی کردم آپتیمایز کنم کداشونو تصمیم گرفتم منم برای فلاتر mirror خودمو بزنم از اونجایی که فقط یه نفر اینو ساخته بود و دیگه هم اصلا آپدیتش نکرده بود، اللخصوص در این ایام که اینترنت قطعه و قبلا که با فیلتر شکنم نمیتونستی تو پکیج نصب کنی دیگه چه برسه به الان که فیلتر شکنتم وصل نمیشه.
تفاوت این دوتا خیلی چشمگیر و جالبن، فرانت بیشتر تورو مجبور میکنه محصول رو از دیدگاه یوزر ببینی، اینکه UI/UX خوبی برای محصول بسازی، flow ها قابل درم باشن، کاربر گیج نشه، خطاها واضح و ساده سازی شده باشن، صفحه ها سریع لود بشن و کلا یه تجربه خوبی به کاربر داده بشه که از استفاده کردن از اپت لذت ببره.
از لحاظ کدینگی هم منهای بقیه بحث ها یه روند خیلی ساده ای داره:
UI Action → API Call → API Response → Show Response
البته پیچیدگی های خودش مثل State Management و Performance و Caching و Hydration پابرجاست ولی مسیر ذهنی به صورت کلی خیلی مستقیمه، ولی وقتی میخواستم به نحوه کار بک اند فکر کنم مغزم کامل قفل میکرد، انگار ذهنم کامل به بخش سطحی محدود شده بود یعنی تنها چیزی که همیشه تو ذهن من بود این بوده که Request → Response در صورتی که مسئله خیلی پیچیده تر از این حرفاست.
از لحاظ کدینگی هم منهای بقیه بحث ها یه روند خیلی ساده ای داره:
UI Action → API Call → API Response → Show Response
البته پیچیدگی های خودش مثل State Management و Performance و Caching و Hydration پابرجاست ولی مسیر ذهنی به صورت کلی خیلی مستقیمه، ولی وقتی میخواستم به نحوه کار بک اند فکر کنم مغزم کامل قفل میکرد، انگار ذهنم کامل به بخش سطحی محدود شده بود یعنی تنها چیزی که همیشه تو ذهن من بود این بوده که Request → Response در صورتی که مسئله خیلی پیچیده تر از این حرفاست.
Go نقطه قوتی برای این نگاه من بود
چون خیلی تلاش نمیکنه خودشو پشت abstraction های مختلف قایم کنه و اینکه خیلی چیزها داخلش از همدیگه کاملا explicit و مستقلن.
وقتی یه request داری، باید خودت به timeout، cancel شدن و عمر اون request فکر کنی، وقتی یه فایل بزرگ رو جواب میدی، باید حواست باشه که قراره stream کنی، نه اینکه کل فایل رو بیاری توی memory، وقتی یه dependency مثل cache ،database یا یه API خارجی داری، باید مرزش رو مشخص کنی و بدونی کدوم بخش برنامه واقعا بهش وابستست، کلا زیبایی Go بنظرم در همینه که خیلی ساده شروع میشه و بیشتر چیزا دستی تنظیم میشه، سادگیش از جنس کمبود یا سطحی بودنش نیست، بیشتر این زبان خیلی تلاش نمیکنه تصمیم های مهم رو اتوماتیک و به جای تو بگیره،
مجبورت میکنه خودت ببینی داری چه چیزی رو به چه چیزی وصل میکنی، خطاها از کجا میان، request ها چطور مدیریت میشن، dependencyها کجا وارد سیستم میشن و مسئولیت هر بخش دقیقا چیه.
چون خیلی تلاش نمیکنه خودشو پشت abstraction های مختلف قایم کنه و اینکه خیلی چیزها داخلش از همدیگه کاملا explicit و مستقلن.
وقتی یه request داری، باید خودت به timeout، cancel شدن و عمر اون request فکر کنی، وقتی یه فایل بزرگ رو جواب میدی، باید حواست باشه که قراره stream کنی، نه اینکه کل فایل رو بیاری توی memory، وقتی یه dependency مثل cache ،database یا یه API خارجی داری، باید مرزش رو مشخص کنی و بدونی کدوم بخش برنامه واقعا بهش وابستست، کلا زیبایی Go بنظرم در همینه که خیلی ساده شروع میشه و بیشتر چیزا دستی تنظیم میشه، سادگیش از جنس کمبود یا سطحی بودنش نیست، بیشتر این زبان خیلی تلاش نمیکنه تصمیم های مهم رو اتوماتیک و به جای تو بگیره،
مجبورت میکنه خودت ببینی داری چه چیزی رو به چه چیزی وصل میکنی، خطاها از کجا میان، request ها چطور مدیریت میشن، dependencyها کجا وارد سیستم میشن و مسئولیت هر بخش دقیقا چیه.
درکل بسیار تجربه دلپذیری بود در حدی که دیگه دلم نمیخواد برگردم سمت فرانت، اگه ایران سرور هم لطف کنه این سرور مارو بده که دیپلوی کنیم بیشتر براتون حرف میزنم و توضیح میدم.
تف تو ذاتت منتظر بودی فقط من بگم کلمو نامناسب کردی بعدش تایید کنی؟
همین الان تایید کرد.
همین الان تایید کرد.
🤣3
هروقت فکر میکنم که میرر کارش تموم شده ایران یه کارت در میاره میگه 👍
خودم نمیدونم چی داره میشه.
خودم نمیدونم چی داره میشه.
🫡2
PubYar.ir
پروژه PubYar برای وقتیه که pub.dev و flutter pub get کند، ناپایدار یا دردسرساز میشن.
با استفاده از PubYar میتونید پکیجهای Dart و Flutter رو سریعتر و پایدارتر دانلود کنید، بدون اینکه محتوای اصلی پکیجها تغییر کنه.
اگه PubYar به کارت اومد دوست داری از ادامه توسعه اش حمایت کنی:
🥺 Daramet
daramet.com/NullObj
🪙 TONUQB37dh7eiEZhjkcRpB8tCvWsTkTeJLrWdr6PwV_lqeQ4VWG
🤑 Tether / USDT / EVM0x68be3814fe7aad67e0610e132ff4da34f3043bbd
🪙 TRONTDk5HBu7d1jh1s2R5DMDRzsKi7VN6xzEn8
Please open Telegram to view this post
VIEW IN TELEGRAM
❤6🔥2
The Null Objective
PubYar.ir 📦 دانلود راحتتر پکیجهای Dart و Flutter پروژه PubYar برای وقتیه که pub.dev و flutter pub get کند، ناپایدار یا دردسرساز میشن. با استفاده از PubYar میتونید پکیجهای Dart و Flutter رو سریعتر و پایدارتر دانلود کنید، بدون اینکه محتوای اصلی پکیجها…
قابلیت بیلد گرفتن هم اضافه شده به زودی آپدیتش میکنم، حتما هر مشکلی بود بهم بگید.
امیدوارم کمکی بهتون باشه تو این شرایط.
امیدوارم کمکی بهتون باشه تو این شرایط.
واقعا وضعیت جالبیه، روی لپتاپ بیلد میکنم، ایمیج داکرو کپی میکنم رو سرور، یعنی رو خود سرور با میرور ایرانی هم ران نمیشه.
قابلیت بیلد گرفتن به پابیار اضافه شد و الان میتونید بدون مشکل هم بیلد بگیرید هم پروژتونو استارت کنید.✔️
Please open Telegram to view this post
VIEW IN TELEGRAM
❤2
سرچ پکیج پابیار هم بهینه شد و دیگه لازم نیست اسم کل پکیج رو دقیق بنویسید تا نشون بده چی تو انباری موجود داریم، کلمه اولو بنویسید همش میاد. 👀
Please open Telegram to view this post
VIEW IN TELEGRAM
❤3
همزمان داشتم رو دوتا پروژه مختلف کار میکردم و پروژه بعدی هم میتونه برای کسب و کارای کوچیک و تیم های کوچیک خیلی مفید باشه، زودتر کاراشو میکنم و امیدوارم براتون مفید باشه. 🙂
Please open Telegram to view this post
VIEW IN TELEGRAM
❤2
همه چیز برقراره عزیزان دل؟
کار میکنه براتون یا نه، اگه به مشکلی چیزی برخوردید بهم حتما اطلاع بدید تا در اسرع وقت درستش کنم.👀
کار میکنه براتون یا نه، اگه به مشکلی چیزی برخوردید بهم حتما اطلاع بدید تا در اسرع وقت درستش کنم.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤5
پروژه بعدیو خیلی دوستش دارم خودم.
امشب تا نهایت فردا شب در دسترستون قرار میگیره تا استفاده کنید.🫡
امشب تا نهایت فردا شب در دسترستون قرار میگیره تا استفاده کنید.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤5
جدی دارم دو طرفه کار میکنم، هم دارم تسک شرکتو انجام میدم هم دارم پروژه جدیدو پیش میبرم، از فاکینگ پایتون به نود جیاس از نود جیاس به فرانت، یکی به دادم برسه واویلا. 🙂
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥3👏1