Forwarded from Syntax | سینتکس (Daimon)
سوال مصاحبه ای درباره ذاکر با توضیح کامل
چرا وقتی یک کانتینر از یک ایمیجی رو بالا میاریم، نمیتونیم اون ایمیج رو پاک کنیم؟
زمانی که شما یک کانتینر را از یک ایمیج (Image) در Docker بالا میآورید، امکان حذف آن ایمیج تا زمانی که کانتینر مرتبط با آن در حال اجرا یا وجود داشته باشد امکان پذیر نیست. این رفتار به دلیل معماری Docker و نحوه مدیریت دادهها از طریق مکانیزمهایی مانند Copy-on-Write (COW) و UnionFS اتفاق میافتد.
در Docker، ایمیجها بهعنوان قالبهای فقط خواندنی (Read-Only) عمل میکنند که شامل تمام فایلها، نرمافزارها و تنظیمات مورد نیاز برای اجرای یک برنامه هستند. وقتی یک کانتینر از یک ایمیج بالا میآید:
- ایمیج بهعنوان پایه (Base) عمل میکند.
- کانتینر یک لایه نوشتنی (Writable Layer) به بالای ایمیج اضافه میکند.
این لایه نوشتنی به کانتینر اجازه میدهد تغییراتی مانند ایجاد فایلها یا تغییر تنظیمات را انجام دهد، بدون اینکه لایههای فقط خواندنی ایمیج اصلی تغییر کنند.
Copy-on-Write (COW)
داکر برای مدیریت تغییرات کانتینر از مکانیزم Copy-on-Write (COW) استفاده میکند. به این معنا که:
- تا زمانی که نیازی به تغییر دادهها نباشد، کانتینر از لایههای موجود در ایمیج بهصورت مستقیم استفاده میکند.
- وقتی تغییری در یک فایل لازم باشد، آن فایل از لایه فقط خواندنی ایمیج به لایه نوشتنی کانتینر کپی میشود و سپس تغییرات اعمال میگردد.
این روش باعث صرفهجویی در منابع میشود، زیرا تا زمانی که نیازی به تغییر نباشد، ایمیج و کانتینر از همان نسخه دادهها استفاده میکنند.
UnionFS
سیستم فایل UnionFS (Union File System) برای ترکیب چندین لایه سیستم فایل در یک نمای واحد (Single View) استفاده میشود. Docker از UnionFS برای ساخت ایمیجها و کانتینرها استفاده میکند. نحوه کار به این صورت است:
- ایمیجها از چندین لایه تشکیل شدهاند.
- این لایهها فقط خواندنی هستند و هر لایه تغییرات و افزودههایی نسبت به لایه قبلی دارد.
- وقتی یک کانتینر ایجاد میشود، یک لایه نوشتنی به بالای این لایههای فقط خواندنی اضافه میشود.
بنابراین، از دید کانتینر، تمام این لایهها بهصورت یک سیستم فایل یکپارچه دیده میشوند. اما در واقعیت، لایه نوشتنی و لایههای فقط خواندنی جدا از هم هستند.
https://en.wikipedia.org/wiki/UnionFS
چرا ایمیج حذف نمیشود؟
وقتی یک کانتینر از یک ایمیج ایجاد میشود، آن کانتینر به لایههای ایمیج وابسته است. به همین دلیل، تا زمانی که کانتینر وجود دارد (حتی اگر متوقف شده باشد):
- لایههای فقط خواندنی ایمیج در حال استفاده هستند.
- اگر ایمیج حذف شود، کانتینر نمیتواند به لایههای مورد نیاز خود دسترسی پیدا کند و در نتیجه خراب میشود.
Docker برای جلوگیری از این مشکل، اجازه حذف ایمیجهایی که در حال استفاده هستند را نمیدهد و در نهایت فقط میتوانید تگ آن را حذف کنید نه بادی ایمیج را.
ارتباط Copy-on-Write و UnionFS
- UnionFS امکان استفاده از چندین لایه سیستم فایل را فراهم میکند و باعث میشود ایمیجها و کانتینرها بهصورت مؤثری مدیریت شوند.
- Copy-on-Write تضمین میکند که تنها زمانی تغییرات در دادهها ایجاد شوند که واقعاً لازم باشد، بدون تغییر لایههای اصلی (فقط خواندنی) ایمیج.
این دو مکانیزم با هم کار میکنند تا Docker بتواند ایمیجها و کانتینرها را بهصورت کارآمد مدیریت کند.
چگونه ایمیج را حذف کنیم؟
اگر بخواهید یک ایمیج را حذف کنید، ابتدا باید تمام کانتینرهای وابسته به آن را حذف کنید. مراحل کلی عبارتند از:
1. لیست کانتینرهای وابسته به ایمیج:
2. حذف کانتینرهای وابسته:
3. حذف ایمیج:
#docker #copy_on_write #union_file_system
@Syntax_fa
چرا وقتی یک کانتینر از یک ایمیجی رو بالا میاریم، نمیتونیم اون ایمیج رو پاک کنیم؟
زمانی که شما یک کانتینر را از یک ایمیج (Image) در Docker بالا میآورید، امکان حذف آن ایمیج تا زمانی که کانتینر مرتبط با آن در حال اجرا یا وجود داشته باشد امکان پذیر نیست. این رفتار به دلیل معماری Docker و نحوه مدیریت دادهها از طریق مکانیزمهایی مانند Copy-on-Write (COW) و UnionFS اتفاق میافتد.
در Docker، ایمیجها بهعنوان قالبهای فقط خواندنی (Read-Only) عمل میکنند که شامل تمام فایلها، نرمافزارها و تنظیمات مورد نیاز برای اجرای یک برنامه هستند. وقتی یک کانتینر از یک ایمیج بالا میآید:
- ایمیج بهعنوان پایه (Base) عمل میکند.
- کانتینر یک لایه نوشتنی (Writable Layer) به بالای ایمیج اضافه میکند.
این لایه نوشتنی به کانتینر اجازه میدهد تغییراتی مانند ایجاد فایلها یا تغییر تنظیمات را انجام دهد، بدون اینکه لایههای فقط خواندنی ایمیج اصلی تغییر کنند.
Copy-on-Write (COW)
داکر برای مدیریت تغییرات کانتینر از مکانیزم Copy-on-Write (COW) استفاده میکند. به این معنا که:
- تا زمانی که نیازی به تغییر دادهها نباشد، کانتینر از لایههای موجود در ایمیج بهصورت مستقیم استفاده میکند.
- وقتی تغییری در یک فایل لازم باشد، آن فایل از لایه فقط خواندنی ایمیج به لایه نوشتنی کانتینر کپی میشود و سپس تغییرات اعمال میگردد.
این روش باعث صرفهجویی در منابع میشود، زیرا تا زمانی که نیازی به تغییر نباشد، ایمیج و کانتینر از همان نسخه دادهها استفاده میکنند.
UnionFS
سیستم فایل UnionFS (Union File System) برای ترکیب چندین لایه سیستم فایل در یک نمای واحد (Single View) استفاده میشود. Docker از UnionFS برای ساخت ایمیجها و کانتینرها استفاده میکند. نحوه کار به این صورت است:
- ایمیجها از چندین لایه تشکیل شدهاند.
- این لایهها فقط خواندنی هستند و هر لایه تغییرات و افزودههایی نسبت به لایه قبلی دارد.
- وقتی یک کانتینر ایجاد میشود، یک لایه نوشتنی به بالای این لایههای فقط خواندنی اضافه میشود.
بنابراین، از دید کانتینر، تمام این لایهها بهصورت یک سیستم فایل یکپارچه دیده میشوند. اما در واقعیت، لایه نوشتنی و لایههای فقط خواندنی جدا از هم هستند.
https://en.wikipedia.org/wiki/UnionFS
چرا ایمیج حذف نمیشود؟
وقتی یک کانتینر از یک ایمیج ایجاد میشود، آن کانتینر به لایههای ایمیج وابسته است. به همین دلیل، تا زمانی که کانتینر وجود دارد (حتی اگر متوقف شده باشد):
- لایههای فقط خواندنی ایمیج در حال استفاده هستند.
- اگر ایمیج حذف شود، کانتینر نمیتواند به لایههای مورد نیاز خود دسترسی پیدا کند و در نتیجه خراب میشود.
Docker برای جلوگیری از این مشکل، اجازه حذف ایمیجهایی که در حال استفاده هستند را نمیدهد و در نهایت فقط میتوانید تگ آن را حذف کنید نه بادی ایمیج را.
ارتباط Copy-on-Write و UnionFS
- UnionFS امکان استفاده از چندین لایه سیستم فایل را فراهم میکند و باعث میشود ایمیجها و کانتینرها بهصورت مؤثری مدیریت شوند.
- Copy-on-Write تضمین میکند که تنها زمانی تغییرات در دادهها ایجاد شوند که واقعاً لازم باشد، بدون تغییر لایههای اصلی (فقط خواندنی) ایمیج.
این دو مکانیزم با هم کار میکنند تا Docker بتواند ایمیجها و کانتینرها را بهصورت کارآمد مدیریت کند.
چگونه ایمیج را حذف کنیم؟
اگر بخواهید یک ایمیج را حذف کنید، ابتدا باید تمام کانتینرهای وابسته به آن را حذف کنید. مراحل کلی عبارتند از:
1. لیست کانتینرهای وابسته به ایمیج:
docker ps -a --filter ancestor=<image_name_or_id>
2. حذف کانتینرهای وابسته:
docker rm <container_id>
3. حذف ایمیج:
docker rmi <image_name_or_id>
#docker #copy_on_write #union_file_system
@Syntax_fa
👍1
Forwarded from کانال مهرداد لینوکس (Mehrdad Linux)
💠 تانل کردن کل سیستم برای عبور از فیلترنیگ سختی های خودش را دارد
نیازه فقط ابزار هایی که نیاز به VPN دارن ترافیک را از VPN عبور دهند
یکی از راه های ساده استفاده از Socks است
✅ اگر از Socks به عنوان پروکسی استفاده میکنید
❌ میدانید که نرم افزارهای زیادی مثل Vscode اجازه استفاده از Socks را به صورت
محدود ارائه میکنند و نیازه شما http پروکسی داشته باشید ابزار gost کارایی زیادی داره یکی از کاربردها همین کاربرد است
🔥 روش استفاده :
فرض میکنیم که ساکس شما روی پورت ۹۰۹۰ است
حالا یک http پروکسی دارید روی 8282
این connect را هم ببینید
❤️ ممنون از حمایت هاتون 💐🌺
#VPN
نیازه فقط ابزار هایی که نیاز به VPN دارن ترافیک را از VPN عبور دهند
یکی از راه های ساده استفاده از Socks است
✅ اگر از Socks به عنوان پروکسی استفاده میکنید
❌ میدانید که نرم افزارهای زیادی مثل Vscode اجازه استفاده از Socks را به صورت
socks5://[yourip]:[yourport]
محدود ارائه میکنند و نیازه شما http پروکسی داشته باشید ابزار gost کارایی زیادی داره یکی از کاربردها همین کاربرد است
🔥 روش استفاده :
فرض میکنیم که ساکس شما روی پورت ۹۰۹۰ است
gost -L=http://:8282 -F=socks5://127.0.0.1:9090
حالا یک http پروکسی دارید روی 8282
این connect را هم ببینید
❤️ ممنون از حمایت هاتون 💐🌺
#VPN
Forwarded from Go Casts 🚀
ملت از چی پول در میارن 😁
طرف ۹۹ دلار میگیره که ruby رو روی سیستم عامل مک نصب کنه :)
تا الان بیش از ۲ هزار نفر هم بهش پول دادن
https://www.rubyonmac.dev/
حالا من از کجا پیداش کردم؟ برای یه پروژه قدیمی داشتم ruby نصب میکردم که به مشکل خوردم، واقعا هم بعضی وقتا دردسر داره نصبش، مخصوصا اینکه نسخه ۳ هم اومده...
من حاضرم رو سیستم تون کامپایلر گولنگ نصب کنم به همراه همه وابستگی هاش، ۹ دلارم بیشتر نمیگیرم 😄
@gocasts
طرف ۹۹ دلار میگیره که ruby رو روی سیستم عامل مک نصب کنه :)
تا الان بیش از ۲ هزار نفر هم بهش پول دادن
https://www.rubyonmac.dev/
حالا من از کجا پیداش کردم؟ برای یه پروژه قدیمی داشتم ruby نصب میکردم که به مشکل خوردم، واقعا هم بعضی وقتا دردسر داره نصبش، مخصوصا اینکه نسخه ۳ هم اومده...
من حاضرم رو سیستم تون کامپایلر گولنگ نصب کنم به همراه همه وابستگی هاش، ۹ دلارم بیشتر نمیگیرم 😄
@gocasts
Forwarded from Linuxor ?
اومدن یه استریمر آهنگ self-hosted نوشتن، که باهاش میتونین خودتون شخصی یه سرور پلی آهنگ درست کنید
https://github.com/blackcandy-org/blackcandy
برای تست هم میتونید به دموی زیر برین و با یوزرنیم
demo.blackcandy.org
@Linuxor
https://github.com/blackcandy-org/blackcandy
برای تست هم میتونید به دموی زیر برین و با یوزرنیم
admin@admin.com و پسورد foobar وارد شین :demo.blackcandy.org
@Linuxor
Forwarded from 12&12
💫انجمن بدهکاران گمنام 💫
💠 گروه آزادی مالی شهرری برگزار می کند.
🔻🔻🔻🔻🔻🔻🔻🔻
موضوع《 اکثر ما "این غیر قابل اداره شدن" بود که باعث شد به بدهکاران گمنام بیاییم 》
🔰🔰🔰🔰🔰🔰🔰🔰🔰*موضوع *ادامه جلسه ارتباط باطلبکاران*
جمعه ساعت 11 تا 12:30
🔰🔰🔰🔰🔰🔰🔰🔰
مورخ؛14/10/1403
---------------------------------------❇️مجید مشهد
❇️امیر :شهرری
❇️قاسم : قم
❇️عباس :تهران
------------------------------------------
🟥🟥🟥🟥🟥🟥🟥
لینک برگزاری جلسه در فضای فری کنفرانس:
https://join.freeconferencecall.com/azadimalirey
☎️تلفن ماندگار اطلاع رسانی انجمن بدهکاران گمنام ایران
☎️+989918555745
⭕️ نماینده گروه:
💠 گروه آزادی مالی شهرری برگزار می کند.
🔻🔻🔻🔻🔻🔻🔻🔻
موضوع《 اکثر ما "این غیر قابل اداره شدن" بود که باعث شد به بدهکاران گمنام بیاییم 》
🔰🔰🔰🔰🔰🔰🔰🔰🔰*موضوع *ادامه جلسه ارتباط باطلبکاران*
جمعه ساعت 11 تا 12:30
🔰🔰🔰🔰🔰🔰🔰🔰
مورخ؛14/10/1403
---------------------------------------❇️مجید مشهد
❇️امیر :شهرری
❇️قاسم : قم
❇️عباس :تهران
------------------------------------------
🟥🟥🟥🟥🟥🟥🟥
لینک برگزاری جلسه در فضای فری کنفرانس:
https://join.freeconferencecall.com/azadimalirey
☎️تلفن ماندگار اطلاع رسانی انجمن بدهکاران گمنام ایران
☎️+989918555745
⭕️ نماینده گروه:
Forwarded from code2 - تکنولوژی و فناوری (Mahdi Taleghani)
❔Interfaces or Types?
#javanoscript
Here are the key differences between TypeScript interfaces and types:
1. Syntax:
2. Extension/Inheritance:
3. Declaration Merging (Interface-only feature):
4. Union Types (Type-only feature):
5. Computed Properties:
General recommendations:
- Use
- Defining object shapes/APIs
- You need declaration merging
- You're creating object-oriented designs
- You want clearer error messages
- Use
- Creating unions or intersections
- Working with primitives
- Using mapped types
- Need complex type operations
Most modern TypeScript codebases tend to favor
#javanoscript
Here are the key differences between TypeScript interfaces and types:
1. Syntax:
// Interface
interface User {
name: string;
age: number;
}
// Type
type User = {
name: string;
age: number;
}
2. Extension/Inheritance:
// Interface extends interface
interface Animal {
name: string;
}
interface Dog extends Animal {
bark(): void;
}
// Type extends type (using intersection)
type Animal = {
name: string;
}
type Dog = Animal & {
bark(): void;
}
3. Declaration Merging (Interface-only feature):
// Interfaces can be defined multiple times and will merge
interface User {
name: string;
}
interface User {
age: number;
}
// Result: User has both name and age
// Types cannot be reopened
type User = { name: string }
// Error: Cannot redeclare type User
type User = { age: number }
4. Union Types (Type-only feature):
// Only possible with type
type Status = "pending" | "approved" | "rejected";
// Can't do this with interface
type StringOrNumber = string | number;
5. Computed Properties:
// Works with type
type Keys = "firstname" | "lastname";
type DudeType = {
[key in Keys]: string;
}
// Doesn't work with interface
interface DudeInterface {
[key in Keys]: string; // Error
}
General recommendations:
- Use
interface when:- Defining object shapes/APIs
- You need declaration merging
- You're creating object-oriented designs
- You want clearer error messages
- Use
type when:- Creating unions or intersections
- Working with primitives
- Using mapped types
- Need complex type operations
Most modern TypeScript codebases tend to favor
type because it's more flexible, but both are valid choices. The TypeScript team originally recommended interfaces, but types have become equally well-supported.Forwarded from LearnPOV | لرن پی او وی
رفقا یه هل بدید 1k رو زدیما ؛)❤️
اگر مطالب کانال رو دوستدارید میتونید برای دوستا و رفقای برنامه نویستون بفرستید که اونا هم جوین بدن و استفاده کنن.
📊 دسته بندی مطالب
اگر مطالب کانال رو دوستدارید میتونید برای دوستا و رفقای برنامه نویستون بفرستید که اونا هم جوین بدن و استفاده کنن.
📊 دسته بندی مطالب
Forwarded from Linuxor ?
یه موتور جاوااسکریپتی برای ساخت بازی های turn-based مولتی پلیر، حالت دار و ربات های بر پایه AI
خیلی راحت میشه یادش گرفت داکیومنش خوبی داره
https://github.com/boardgameio/boardgame.io
@Linuxor ~ tom_doerr
خیلی راحت میشه یادش گرفت داکیومنش خوبی داره
https://github.com/boardgameio/boardgame.io
@Linuxor ~ tom_doerr
Forwarded from Ninja Learn | نینجا لرن
Forwarded from Linuxor ?
داخل این سایت میتونید استپ به استپ ببینید الگوریتم Sha256 چجوری هش میکنه
sha256algorithm.com
@Linuxor ~ Taqiam_
sha256algorithm.com
@Linuxor ~ Taqiam_
Forwarded from mnr tech
محیط کار دستکتاپ ما یکی از مهمترین چیز هایی هست که ما روزانه باهاشون سر و کار داریم.
همیشه ابزار هایی هستند که کار با دستکتاپ رو برای ما ساده میکنن. و سرعت ما رو بیشتر میکنن.
یکی از این دسته برنامه ها keyboard launcher هست که به اون app launcher یا حتی run launcher هم میگن.
اساس کار این برنامه ها به این شکل هست که با زدن یک شورت کات یک اینپوت ساده باز میشه و شما میتونید چیزی که میخواین رو توی اون تایپ کنید. ساده ترین حالتش اینه که اسم یک برنامه رو جستجو کنید و راحت توی لیست پیدا کنید و بازش کنید. اما قابلیت های پیشرفته تری هم داره مثلا این که توی vscode یه ریپازیتوری خاصی رو باز کنید. یا کلی امکانات پایه مثل محاسبات ریاضی، ابزار های تبدیل و .... باید با این ابزار کار کنید تا ببینید چقدر مفیده.
⚡️ معرفی ابزار ها:
❤️ spotlight (مک)
اگر از مک استفاده میکنید ابزاری هست به اسم spotlight که این کار رو برای شما انجام میده و امکانات فوق العاده ای داره حتما باید امتحانش کنید.
😥 power toys | windows run (ویندوز)
توی ویندوز اگر power toys رو نصب کنید که امکانات زیادی داره یکی از امکاناتش windows run هست که دقیقا این کار رو براتون انجام میده و امکانات زیادی داره.
😴 albert launcher (مک و لینوکس)
این یه ابزار اپن سورس هست و امکانات زیادی بهتون میده اگر از لینوکس استفاده میکنید میتونید از این لانچر استفاده کنید.
https://albertlauncher.github.io/
😴 Ulauncher (لینوکس)
یک لانچر زیبا و قوی دیگه برای لینوکس که ظاهر و امکانات خوبی داره
https://ulauncher.io/
😴 cerebro-app (لینوکس، مک و ویندوز)
آخرین مورد هم cerebro-app هست که توی همه سیستم عامل ها قابل استفاده هست.
https://www.cerebroapp.com/
من راجع به هر کدوم اینها به طور جدا صحبت نکردم چون کارایی همشون مثل هم هست. 3 مورد آخر امکان اضافه کردن ماژول یا اکسنشن برای قابلیت های بیشتر رو دارن و همچنین مورد آخر امکان شخصی سازی زیادی داره.
پیشنهاد میکنم اگر تا حالا از این لانچر ها استفاده نکردین حتما امتحانش کنید
من خودم روی لینوکس ulaucher و albert رو تست کردم و ulaucher به نظرم خیلی بهتر بود هم از نظر ظاهری و هم اینکه اکستنشن های زیادی داره که میشه اضافه کرد. در مورد cerebro گیتهابش رو چک کردم آخرین فعالیت برای ۲ سال پیش بوده پس به نظرم برای لینوکس بهترین آپشن ulauncher هست
همیشه ابزار هایی هستند که کار با دستکتاپ رو برای ما ساده میکنن. و سرعت ما رو بیشتر میکنن.
یکی از این دسته برنامه ها keyboard launcher هست که به اون app launcher یا حتی run launcher هم میگن.
اساس کار این برنامه ها به این شکل هست که با زدن یک شورت کات یک اینپوت ساده باز میشه و شما میتونید چیزی که میخواین رو توی اون تایپ کنید. ساده ترین حالتش اینه که اسم یک برنامه رو جستجو کنید و راحت توی لیست پیدا کنید و بازش کنید. اما قابلیت های پیشرفته تری هم داره مثلا این که توی vscode یه ریپازیتوری خاصی رو باز کنید. یا کلی امکانات پایه مثل محاسبات ریاضی، ابزار های تبدیل و .... باید با این ابزار کار کنید تا ببینید چقدر مفیده.
اگر از مک استفاده میکنید ابزاری هست به اسم spotlight که این کار رو برای شما انجام میده و امکانات فوق العاده ای داره حتما باید امتحانش کنید.
توی ویندوز اگر power toys رو نصب کنید که امکانات زیادی داره یکی از امکاناتش windows run هست که دقیقا این کار رو براتون انجام میده و امکانات زیادی داره.
این یه ابزار اپن سورس هست و امکانات زیادی بهتون میده اگر از لینوکس استفاده میکنید میتونید از این لانچر استفاده کنید.
https://albertlauncher.github.io/
یک لانچر زیبا و قوی دیگه برای لینوکس که ظاهر و امکانات خوبی داره
https://ulauncher.io/
آخرین مورد هم cerebro-app هست که توی همه سیستم عامل ها قابل استفاده هست.
https://www.cerebroapp.com/
من راجع به هر کدوم اینها به طور جدا صحبت نکردم چون کارایی همشون مثل هم هست. 3 مورد آخر امکان اضافه کردن ماژول یا اکسنشن برای قابلیت های بیشتر رو دارن و همچنین مورد آخر امکان شخصی سازی زیادی داره.
پیشنهاد میکنم اگر تا حالا از این لانچر ها استفاده نکردین حتما امتحانش کنید
من خودم روی لینوکس ulaucher و albert رو تست کردم و ulaucher به نظرم خیلی بهتر بود هم از نظر ظاهری و هم اینکه اکستنشن های زیادی داره که میشه اضافه کرد. در مورد cerebro گیتهابش رو چک کردم آخرین فعالیت برای ۲ سال پیش بوده پس به نظرم برای لینوکس بهترین آپشن ulauncher هست
Please open Telegram to view this post
VIEW IN TELEGRAM
Albert
Home
Albert is a unified and efficient access to your machine. Technically it is a keyboard launcher written in C++/Qt. The plugin based architecture makes it extremely flexible and powerful. Plugins can be used to create frontends or functional extensions. Extensions…
Forwarded from ASafaeirad
اینو امروز دیدم یه چیز جالبی دربارش میتونم بگم.
این صفحه رو بعد از پرداخت به زبان Dutch دیدم و فکر کردم پرداخت موفقیت آمیز نبود. برای اینکه مطمئن بشم صفحه رو ترجمه کردم و دیدم کاملا برعکس فهمیدمش.
این اتفاقی که برای من افتاد یک روش تست رابط کاربریه تجربه کاربری که ما انجام میدیم.
به روش های مختلفی میشه توضیحش داد ولی من با مفهومی به اسم Self-evident design از Steve Krug میگم.
خیلی ساده یعنی توی یک رابط کاربری خوب کاربر باید بتونه بدون فکر کردن در کمترین زمان تشخیص بده چی به چیه.
برای بهبودش ما از Visual hierarchy، رنگ ها و علائم language agnostic هست.
مثل علامت تعجبی که اونجا گذاشته که توی اکثر فرهنگ ها به معنی خطر بکار میره
یا رنگ نارجی که بخاطر برند هست اما توسط رنگ دیگه ای خنثی نشده.
درنهایت برای اینکه این خاصیت رابط کاربری رو بسنجیم از تکنیکی به اسم Blur test استفاده میکنیم
یعنی رابط کاربری رو برای استفاده کننده گنگ میکنیم و ازش میخوایم باهاش کار کنه.
یکی از روش های این تست عوض کردن زبان رابط کاربری به زبانیه که کاربر بلد نیست. که متاسفانه Ziggo تو این تست نمره خوبی نمیگیره.
#ux #article
این صفحه رو بعد از پرداخت به زبان Dutch دیدم و فکر کردم پرداخت موفقیت آمیز نبود. برای اینکه مطمئن بشم صفحه رو ترجمه کردم و دیدم کاملا برعکس فهمیدمش.
این اتفاقی که برای من افتاد یک روش تست رابط کاربریه تجربه کاربری که ما انجام میدیم.
به روش های مختلفی میشه توضیحش داد ولی من با مفهومی به اسم Self-evident design از Steve Krug میگم.
خیلی ساده یعنی توی یک رابط کاربری خوب کاربر باید بتونه بدون فکر کردن در کمترین زمان تشخیص بده چی به چیه.
برای بهبودش ما از Visual hierarchy، رنگ ها و علائم language agnostic هست.
مثل علامت تعجبی که اونجا گذاشته که توی اکثر فرهنگ ها به معنی خطر بکار میره
یا رنگ نارجی که بخاطر برند هست اما توسط رنگ دیگه ای خنثی نشده.
درنهایت برای اینکه این خاصیت رابط کاربری رو بسنجیم از تکنیکی به اسم Blur test استفاده میکنیم
یعنی رابط کاربری رو برای استفاده کننده گنگ میکنیم و ازش میخوایم باهاش کار کنه.
یکی از روش های این تست عوض کردن زبان رابط کاربری به زبانیه که کاربر بلد نیست. که متاسفانه Ziggo تو این تست نمره خوبی نمیگیره.
#ux #article
Forwarded from Yasha
This media is not supported in your browser
VIEW IN TELEGRAM