منم یه نکته به این مطلب خیلی خوب اضافه کنم:
این که ما فیچر فلگ داشته باشیم همیشه هم هدفش بار روی سرورها نیست و ممکنه دست پروداکت منیجر ها رو باز بگذاره تا تجربه کاربر نهایی رو تیون کنن. مثلا با کمک A/B تست، انواع ترکیب ها امتحان بشه تا به یه نقطه ایده آل برسیم. حتی ممکنه بسته به رفتار کاربر یا اطلاعات پایه که از کاربر داریم چیزی رو براش حذف یا اضافه کنیم.
این که ما فیچر فلگ داشته باشیم همیشه هم هدفش بار روی سرورها نیست و ممکنه دست پروداکت منیجر ها رو باز بگذاره تا تجربه کاربر نهایی رو تیون کنن. مثلا با کمک A/B تست، انواع ترکیب ها امتحان بشه تا به یه نقطه ایده آل برسیم. حتی ممکنه بسته به رفتار کاربر یا اطلاعات پایه که از کاربر داریم چیزی رو براش حذف یا اضافه کنیم.
👍9❤1
مرورگر های امروزی چطوری کار میکنند؟
از ارسال درخواست به شبکه تا پارس و رندر صفحات وب.
https://addyo.substack.com/p/how-modern-browsers-work
و اگه دوست داشتید بیشتر بدانید این سایت فوقالعاده رو چک کنید:
https://browser.engineering/
از ارسال درخواست به شبکه تا پارس و رندر صفحات وب.
https://addyo.substack.com/p/how-modern-browsers-work
و اگه دوست داشتید بیشتر بدانید این سایت فوقالعاده رو چک کنید:
https://browser.engineering/
Substack
How modern browsers work
A web developers guide to browser internals
❤9👍1
Forwarded from SoniaCircuit (Sonia Fatholahi)
🔥10
یه اتفاق خیلی عجیبی که برخوردم این بود که یه کد گولنگ کار میکرد و کامپایل و اجرا میشد تا وقتی که go mod vendor میزدم. وقتی که پوشه vendor ساخته میشد دیگه کامپایل نمیشد و با پاک کردن پوشه vendor دوباره کار میکرد! اینجا از اون جا ها بود که آدم میگه من دارم اشتباه میکنم یا واقعا باگ کامپایلره؟!
خلاصه سرچ کردم و به این ایشو رسیدم و واقعا باگ کامپایلره! داستان از این قراره که موقع دانلود یه پکیج گولنگ کلشو دانلود میکنه ولی موقعی که go mod vendor میزنید فقط پوشه هایی که حداقل یه فابل .go توش هست رو برمیداره میاره. حالا این کتابخونه مورد نیاز من هم یه سری .c و .h داشت که توی یه پوشه بودن بدون هیچ فایل گو و در نتیجه توی پوشه vendor قرار نمیگیره و در نتیجه کامپایل ناموفق صورت میگیره.
راه حل چیه؟ راه حل اینه که توسعهدهنده کتابخونه این رو بدونه و پوشهبندی رو درست کنه.
https://github.com/uber/h3-go/issues/30
خلاصه سرچ کردم و به این ایشو رسیدم و واقعا باگ کامپایلره! داستان از این قراره که موقع دانلود یه پکیج گولنگ کلشو دانلود میکنه ولی موقعی که go mod vendor میزنید فقط پوشه هایی که حداقل یه فابل .go توش هست رو برمیداره میاره. حالا این کتابخونه مورد نیاز من هم یه سری .c و .h داشت که توی یه پوشه بودن بدون هیچ فایل گو و در نتیجه توی پوشه vendor قرار نمیگیره و در نتیجه کامپایل ناموفق صورت میگیره.
راه حل چیه؟ راه حل اینه که توسعهدهنده کتابخونه این رو بدونه و پوشهبندی رو درست کنه.
https://github.com/uber/h3-go/issues/30
GitHub
Library doesn't build when using mod=vendor · Issue #30 · uber/h3-go
When using vendor mode .h files are not copied to the vendor directory because they are in a subdirectory, according to cgo's documentation (https://golang.org/cmd/cgo/) we should not put non-g...
👍17❤4🤯3
Forwarded from مهندسی نرمافزار - Software Inside
Enums in Programming Languages and Exhaustiveness
اخیرا این ویدیو رو توی یوتیوب دیدم که نحوهی تعریف Enum توی زبانهای برنامهنویسی مختلف و امکاناتشون رو بررسی و مقایسه میکرد.
یکی از نکاتی که توجهم رو جلب کرد این بود که Golang تقریبا امکانات خاصی برای Enum نداره و باید مقادیر enum رو مثل constant تعریف کنی و حتی اگر دوتا اینام مقادیری با اسم یکسان داشته باشن توی یه فایل اسمهاشون باهم تداخل میخوره. واقعا ایدهای ندارم در این حد ساده بودن خوبه یا نه ولی فکر میکنم اذیت کننده باشه.
یکی از چیزایی که کلا توی Enum ها کاربردیه قابلیت Exhaustiveness هست. یعنی اگر روی یه متغیر از جنس enum سوویچ کیس یا match زدی خود کامپایلر چک کنه که همهی حالتها پوشش داده شده یا نه و مجبورت کنه همهی حالتها رو پوشش بدی یا صریحا ignore اشون کنی. خوبیش اینه که اگر چندماه بعد به این enum یه مقداری اضافه کنی توی زمان compile متوجه میشی که کجاها رو باید بری پیادهسازی کنی و چه مسیرهای جدیدی به کدت اضافه میشه. همچنین احتمال خطا و اینکه یه حالتی رو فراموش کنیم هم از بین میره.
راست و نسخههای جدید جاوا این قابلیت رو دارن. جاوا توی نسخههای جدید امکانات switch و enum رو خیلی بهبود داده و بهتر کرده که قابل تحسینه.
زبان Rust خیلی enum های کاربردی و قدرتمندی داره. این قابلیتها رو توی بقیه زبونها مثل جاوا و سیشارپ با ترکیب sealed interface و value class ها میشه درست کرد اما سینتکس Rust واقعا مختصر و مفیده.
#language_design #enum
✴️ @software_inside - مهندسینرمافزار
اخیرا این ویدیو رو توی یوتیوب دیدم که نحوهی تعریف Enum توی زبانهای برنامهنویسی مختلف و امکاناتشون رو بررسی و مقایسه میکرد.
یکی از نکاتی که توجهم رو جلب کرد این بود که Golang تقریبا امکانات خاصی برای Enum نداره و باید مقادیر enum رو مثل constant تعریف کنی و حتی اگر دوتا اینام مقادیری با اسم یکسان داشته باشن توی یه فایل اسمهاشون باهم تداخل میخوره. واقعا ایدهای ندارم در این حد ساده بودن خوبه یا نه ولی فکر میکنم اذیت کننده باشه.
یکی از چیزایی که کلا توی Enum ها کاربردیه قابلیت Exhaustiveness هست. یعنی اگر روی یه متغیر از جنس enum سوویچ کیس یا match زدی خود کامپایلر چک کنه که همهی حالتها پوشش داده شده یا نه و مجبورت کنه همهی حالتها رو پوشش بدی یا صریحا ignore اشون کنی. خوبیش اینه که اگر چندماه بعد به این enum یه مقداری اضافه کنی توی زمان compile متوجه میشی که کجاها رو باید بری پیادهسازی کنی و چه مسیرهای جدیدی به کدت اضافه میشه. همچنین احتمال خطا و اینکه یه حالتی رو فراموش کنیم هم از بین میره.
راست و نسخههای جدید جاوا این قابلیت رو دارن. جاوا توی نسخههای جدید امکانات switch و enum رو خیلی بهبود داده و بهتر کرده که قابل تحسینه.
زبان Rust خیلی enum های کاربردی و قدرتمندی داره. این قابلیتها رو توی بقیه زبونها مثل جاوا و سیشارپ با ترکیب sealed interface و value class ها میشه درست کرد اما سینتکس Rust واقعا مختصر و مفیده.
#language_design #enum
✴️ @software_inside - مهندسینرمافزار
YouTube
Ranking Enums in Programming Languages
We rank all the different implementations of enums in programming languages, from simple constant collections to proper algebraic datatypes.
This video was voiced using Elevenlabs for privacy reasons. If you want to try it out yourself, you can sign up using…
This video was voiced using Elevenlabs for privacy reasons. If you want to try it out yourself, you can sign up using…
🔥8👏2👌1