کدهالیک | codehalic
前往频道在 Telegram
3 460
订阅者
-124 小时
-107 天
+6830 天
帖子存档
3 460
خب مثل دفعه پیش میخوام ریفرتون بدم به یه مقاله عالی از دوست و همکار خوبم محمدجواد ابراهیمی. محمدجواد توی این مطلب خیلی ساده و تمیز مفاهیم اصلی رو باز کرده که خلاصهش میشه این:
Side-effect Free: یعنی متد ما نباید بره یه جای دیگه از برنامه رو ناخواسته تغییر بده (Shared State ایجاد نکنه).
Idempotent: یعنی اگه یه تابع رو با ورودی یکسان، ۱۰۰ بار هم صدا بزنیم، نتیجه (خروجی و اثرش) همیشه همون بار اول باشه و سیستم رو به هم نریزه.
Pure Functions: توابعی که هر دو ویژگی بالا رو دارن و فرشته نجات کد ما هستن!
توی بحث درگاه پرداخت و Race Condition که سوال کردم، اگر کد ما Idempotent نباشه، با هر بار کلیک یوزر، یه فاجعه مالی رخ میده!
حتماً یه زمان ۵ دقیقهای بذارید و اصل مقاله رو بخونید که برای هر برنامه نویسی از نون شب واجبتر
https://virgool.io/dotnetzoom/%D8%A7%D9%87%D9%85%DB%8C%D8%AA-side-effect-free-%D9%88-idemponency-%D8%AF%D8%B1-%DA%A9%D8%AF%D9%86%D9%88%DB%8C%D8%B3%DB%8C-gazelp35o4zw
@codehalics | کدهالیک
3 460
خب امروز میخوام یکی دیگه از سوالای مصاحبهای که اگر به عنوان مصاحبهکننده باشم از بقیه میپرسم رو باهاتون مطرح کنم و نظر شما رو بپرسم.
سناریو: جلوگیری از فاجعه در درگاه پرداخت
فرض کنید یوزر روی دکمه «پرداخت نهایی» کلیک میکنه (پرداخت از کیف پول داخلی). به دلیل کندی اینترنت، Response سریع برنمیگرده؛ یوزر چندین بار پشت سر هم روی دکمه کلیک میکنه یا صفحه رو رفرش میکنه.
صورت مسئله:
۱. سمت Frontend، غیرفعال کردن دکمه (Disable Button) لایه اوله اما کافی نیست (چون با ابزارهایی مثل Postman یا رفرش صفحه قابل Bypass شدنه).
۲. سمت Backend، ما نباید تحت هیچ شرایطی اجازه بدیم بیش از یکبار از حساب کاربر کسر بشه، حتی اگر ۵ ریکوئست کاملاً یکسان در یک «میلیثانیه» به سرور برسه (Race Condition).
سوال:
حرفهایترین و استانداردترین راهکار برای اینکه مطمئن بشیم یک عملیات حساس «دقیقاً و فقط یکبار» (Exactly-once) اعمال میشه چیه؟
"Do not hesitate to answer this question!"
نظراتتون رو بنویسید، شب درباره راهکار استانداردش (که توی شرکتهای بزرگی مثل اسپاتیفای و اسنپ و ... استفاده میشه) گپ میزنیم.
@codehalics | کدهالیک
3 460
خب، تصمیم رو گرفتم.
دورهی منتورینگ Frontend Engineering رو میخوام برگذار کنم.
ظرفیتش فقط ۱۰ نفره و افراد تلنت رزومهشون به بلوبانک (تیم PWA) ریفر میشه!
شرایط:
- بالای ۳ سال تجربهکاری تماموقت
- تجربه کار ریاکت
رزومههاتون رو به ایمیل زیر بفرستید👇🏽
p.faramarzian@bluteam.ir
PooriaFaramarzian@gmail.com
پ.ن : فرصت خوبی بنظر میرسه برای کسایی که بدنبال منتورینگ فرانت هستند میتونن با پوریا مستقیما ارتباط بگیرن پوریا از فرانت اند دولوپر های بلوبانک هستن .
@codehalics | کدهالیک
3 460
معرفی ابزار OpenPencil: ویرایشگر طراحی متنباز و AI-Native
اگر به دنبال جایگزینی متنباز و هوشمند برای ابزارهای طراحی هستید، OpenPencil پروژه نوظهوری است که ارزش بررسی دارد. این ابزار با تمرکز بر هوش مصنوعی و انعطافپذیری بالا توسعه یافته است.
ویژگیهای کلیدی:
پشتیبانی مستقیم از فایلهای Figma: فایلهای .fig را بدون نیاز به خروجی گرفتن (Export) مستقیما باز میکند.
طراحی مبتنی بر هوش مصنوعی: ابزارهای AI داخلی آن اجازه میدهند مستقیما روی بوم طراحی، طرحهای جدید ایجاد کرده یا آنها را ویرایش کنید.
پشتیبانی از پروتکل MCP: با بهرهگیری از MCP Server، امکان اتصال به کلاینتهایی مانند Cursor، Claude Code و سایر ابزارهای سازگار فراهم شده است.
دسترسی چندپلتفرمی: علاوه بر نسخه وب (app.openpencil.dev)، نسخه دسکتاپ آن نیز برای سیستمعاملهای مختلف در دسترس است.
وبسایت پروژه:
https://openpencil.dev/
مخزن گیتهاب و نسخههای دسکتاپ:
https://github.com/open-pencil/open-pencil/releases
@codehalics | کدهالیک
3 460
مثل اینکه فیگما باز شده
روی ایرانسل و همراه اول و فیبر نوری بدون فیلتر باز میشه
@codehalics | کدهالیک
3 460
استفاده از یه پکیجِ کمستاره مثل Re.Pack برای اپلیکیشنی که میلیونها کاربر داره، یه ریسکِ سنگین مهندسیه که هر کسی زیر بارِش نمیره. واقعاً حرکتِ پرجرأتی بوده! خیلیا شاید میگفتن «بیخیال بابا، وبویو میزنیم بره»، ولی اینا ایستادن پایِ کیفیتِ نیتیو و رفتن دنبال یه راهحل مدرن که تازه اول راهشه. این یعنی تیم دیجیکالا عملاً خودشون شدن بخشی از توسعهدهندههای اون ابزار و هزینه باگهاشو به جون خریدن تا سرعت توسعه رو ببرن بالا. این جور تجربههاست که عیارِ یه تیم فنی رو مشخص میکنه. منتظر یه گزارشِ فنی و مشتی از جزئیات این داستان هستیم!
پ.ن : کاش همه شرکت ها این نالج شیر کردن رو به عنوان یه کالچر برای تیمشون در نظر میگرفتن قطعا خیلی کمک حال افرادیه که به این حوزیه علاقمندن
@codehalics | کدهالیک
3 460
شروع کارم در دیجیکالا با دو چالش بزرگ همراه بود:
1. هر تغییر در اپ (که با React Native ساخته شده بود) نیاز به آپدیت توسط کاربر داشت، اما خیلیها آپدیت نمیکردند.
2. پروژه آنقدر بزرگ شده بود که باید به تیمهای کوچکتر و مستقل تقسیم میشد تا سرعت توسعه بالا برود.
در حالی که خیلیها سراغ استفاده از صفحات وب داخل اپ رفتند، ما تصمیم گرفتیم نیتیو را حفظ کنیم و راهحل متفاوتی پیدا کنیم.
ایده ما استفاده از Module Federation برای موبایل بود. با کمک ابزاری به نام Re.Pack (که آن زمان خیلی جدید بود)، این ساختار را پیادهسازی کردیم و حتی در بهبودش مشارکت داشتیم.
نتیجه:
اپ به چند بخش مستقل تقسیم شد و هر تیم توانست جداگانه توسعه بدهد و تغییرات را بهصورت bundle به کاربر برساند (بدون نیاز به آپدیت از استور).
نسخه 3.0.0 با مدل «اول اجرا، بعد آپدیت» منتشر شد، اما این روش مشکل داشت (مثلا معلوم نبود باگها چه زمانی کامل برطرف میشوند).
برای همین مدل را تغییر دادیم به:
«اول آپدیت، بعد اجرا» (شبیه وب)
نتیجه این تغییر شد نسخه 3.1.1:
یکی از پایدارترین نسخهها از نظر آپدیت درونبرنامهای 🚀
(جزئیات فنی بیشتر را بعدا مفصلتر مینویسم)
از لینکدین حسین محمدی :
https://www.linkedin.com/feed/update/urn:li:activity:7451739953459548160
@codehalics | کدهالیک
3 460
ورسل گفته یه هک جدی تو آوریل ۲۰۲۶ اتفاق افتاده که از یه سرویس هوش مصنوعی به اسم Context.ai شروع شده. هکر از طریق اکانت یه کارمند وارد سیستمهای داخلی شده و تونسته به یهسری اطلاعات (غیرحساس) دسترسی بگیره.
میگن تعداد کمی از مشتریها درگیر شدن و دارن باهاشون مستقیم هماهنگ میکنن. پروژههای مهم مثل Next.js هم آسیب ندیدن.
در کل داستان نشون میده استفاده از سرویسهای شخص ثالث میتونه ریسک امنیتی داشته باشه. بهتره همه کلیدها و دسترسیها رو چک و در صورت نیاز عوض کنید.
@codehalics | کدهالیک
3 460
راستش این روزا یه چیزی جدی داره اذیتم میکنه. یه حس سنگین از تنهایی، کنار فشاری که انگار از هر طرف ریخته رو سرمون. مخصوصاً بعد از این تعدیلها و اوضاعی که پیش اومده.
از بیرون شاید خیلی ساده به نظر بیاد. یکی میگه از فردا نیا، و تموم. ولی برای خود آدم، ماجرا اینجا تموم نمیشه. کار فقط حقوق آخر ماه نیست، یه تیکه از حس امنیته، یه تیکه از اینه که خودتو چطوری میبینی. وقتی یهو اینو ازت میگیرن، انگار یه بخش از تعادل ذهنت هم میریزه بههم. برای همینه که خیلیها بعدش استرس میگیرن، بیقرار میشن، یا کلاً حالشون عوض میشه.
از اون طرف، این تنهایی هم همینجوری از ناکجا نمیاد. وقتی فشار زیاد میشه، آدم ناخودآگاه کمتر حرف میزنه، کمتر آدم میبینه، بیشتر میره تو خودش. بعد همین باعث میشه حس تنهایی شدیدتر بشه و دوباره فشار برگرده سراغش. یه چرخه میشه که هی تکرار میشه.
حالا اینو بذار کنار بقیه چیزا. فشار اقتصادی، نگرانی از آینده، خبرای منفی، محدودیتها. تو همچین وضعیتی، مغز بیشتر میره روی حالت بقا. یعنی دیگه دنبال انگیزه و برنامه و این چیزا نیست، فقط میخواد somehow از این فشار رد بشه. برای همینم هست که این روزا پیدا کردن دلیل برای ادامه دادن سختتر شده، ولی ناامید شدن خیلی راحت دم دسته.
یه نکته دیگه هم هست. وقتی یه عده با هم تو یه وضعیت بد میافتن، از بیرون شاید اینطور به نظر بیاد که تنها نیستن. ولی واقعیت اینه که نگرانیها بین آدمها پخش میشه. هرکی استرسشو میگه، اون یکی هم بیشتر درگیر میشه. دقیقاً مثل وقتایی که بعد از امتحان هی از این و اون میپرسیدیم تو هم خراب کردی یا نه، فقط برای اینکه یه ذره آروم بشیم، ولی آخرش دوباره خودمون میموندیم و فکرایی که ولمون نمیکرد.
من خودمم وسط همین ماجرام، دقیقاً با همین فکرا و همین فشارا. فقط چیزی که میبینم اینه که این حال و روزی که داریم، از یه جای واقعی میاد. وقتی همهچی اینطوریه، معلومه آدم هم قاطی میکنه.
شاید الان قرار نیست حتماً یه تصویر روشن از آینده داشته باشیم، چون واقعاً سخته. شاید فعلاً همین که بفهمیم چرا اینجوری شدیم و چی داره سرمون میاد، خودش یه قدمه. حداقلش اینه که بدونیم این حس تنهایی و این فشار، فقط مال ما نیست. خیلیهامون داریم همینو میکشیم، حتی اگه هرکدوم جدا جدا.
@codehalics | کدهالیک
3 460
مایکروسافت بالاخره یکی از اعصابخُردکنترین مشکلات ویندوز رو حل کرد:
sudo بهصورت بومی توی Windows 11 اضافه شده.
یعنی چی؟
یعنی دیگه لازم نیست برای یه دستور ساده، کل ترمینال رو ببندی و Run as Administrator بزنی.
حالا میتونی همونجا فقط همون یک دستور رو با دسترسی ادمین اجرا کنی.
البته:
این همون sudo لینوکس نیست، چون مدل دسترسی ویندوز فرق داره و بعضی اسکریپتها مستقیم کار نمیکنن.
ولی برای کارهای روزمره دولوپری؟
دقیقاً همون چیزی بود که سالها جاش خالی بود.
فعالسازی:
Settings → Developer Features → Sudo for Windows
سورس کد منتشر شده اش که با راست نوشته شده
https://github.com/microsoft/sudo
@codehalics | کدهالیک
3 460
مایکروسافت بالاخره یکی از اعصابخُردکنترین مشکلات ویندوز رو حل کرد:
sudo بهصورت بومی توی Windows 11 اضافه شده.
یعنی چی؟
یعنی دیگه لازم نیست برای یه دستور ساده، کل ترمینال رو ببندی و Run as Administrator بزنی.
حالا میتونی همونجا فقط همون یک دستور رو با دسترسی ادمین اجرا کنی.
البته:
این همون sudo لینوکس نیست، چون مدل دسترسی ویندوز فرق داره و بعضی اسکریپتها مستقیم کار نمیکنن.
ولی برای کارهای روزمره دولوپری؟
دقیقاً همون چیزی بود که سالها جاش خالی بود.
فعالسازی:
Settings → Developer Features → Sudo for Windows
سورس کد منتشر شده اش که با راست نوشته شده 😂️️
3 460
تو این شرایط کاموا هم به بن بست رسید و بست :))
https://kamva.ir/
@codehalics |کدهالیک
3 460
ثبت نام فریلنسرها برای دریافت اینترنت پرو آغاز شد
🔹طبق پیگیریهای صورت گرفته، فریلنسرها ( آزادکاران) برای دریافت اینترنت بین المللی میتواند از طریق سایت نصر ثبت نام و پس از گذراندن مراحل مختلف به اینترنت بین الملل دسترسی پیدا کنند.
https://www.irannsr.org/fa/page/120025-%D8%AB%D8%A8%D8%AA-%D9%86%D8%A7%D9%85-%D8%A2%D8%B2%D8%A7%D8%AF%D9%83%D8%A7%D8%B1.html
پ.ن : خیلی علاقه ای به شیر کردن اینترنت طبقاتی ندارم ولی خب :)
@codehalics | کدهالیک
3 460
سلام به ۱۰۰۹ همراه کدهالیکی در دوره ی پیشرفته فرانت اند ❤️
فراموشتون نکرده بودم ولی
واقعیت اینه که از ۱۸ دیماه و اتفاقات تا همین جنگ پیشرو، بیش از ۶۰ روزه که در شرایط سخت قطعی اینترنت بودیم و هستیم. ادامه دادن آموزش در این شرایط مثل حرکت در مسیری بود که هر قدمش چالش داشت، اما فیدبکهای فوقالعاده و اشتیاق شما برای پروژه جلاتوهاوس باعث شد لحظهای به متوقف شدن فکر نکنم.
برای اینکه بتونم به قولم عمل کنم و کیفیت دوره رو در بالاترین سطح نگه دارم، یک تصمیم مهم گرفتم:
تغییر کوچکی در سرفصلها داریم؛ دو مبحث Next.js و Redux رو از این دوره حذف کردیم.
چرا این تصمیم رو گرفتم؟
۱. تمرکز روی خروجی: پروژه جلاتوهاوس اینقدر براتون جذاب بوده که میخوام تمام توانمون رو بذاریم تا این پروژه رو با همین میرورهایی که داریم، به بهترین شکل به اتمام برسونیم.
۲. جلوگیری از فرسودگی: طولانی شدن بیش از حد دوره در این شرایط اینترنت، ممکنه خستهکننده بشه. هدف ما ارائه یک دوره کوتاه، کاربردی و اثربخشه.
ممنونم که درک میکنید. هدف من اینه که همگی با هم این دوره رو با یک نمونهکار قوی و حرفهای تموم کنیم.
@codehalics | کدهالیک
3 460
و اما جوابای شما عزیزان راجب این سوال و تحلیلی که نظر شخصی من نسبت به این سواله و درکیه که من از این سوال تو مصاحبه دارم ! ( کاملا نظرم شخصیه و ممکنه اشتباه باشه )
من این سوال رو اصلا سوال تکنیکالی نمیبنیم این سوال صد در صد برای سنجش سافت اسکیل شما مطرح میشه به چند علت
اولا میخواد ببینه شما چقد فلکسیبلی و چقد خودتو توی یه سیف زون میبینی که حالا حالا دوس نداری کسی بیاد جاتو بگیره و میترسی نسبت بهش
مثل یه آدمی که دوس داره زیر آب یکی که از خودش بهتره رو بزنه چون مواضعش رو در خطر میبینه
میخواد ببینه میتونه روتون حساب کنه که پس فردا بتونین یه ابزار جدید استفاده کنین هوش مصنوعی رو خطر نبینید بلکه ابزار ببینید برای خودتون و پیشبرد اهداف شرکت یا نه !؟
بنظرم همچین ادمی هم هزینه آموزش و اپدیت بودن تیم رو میاره پایین و هم میشه رو خیلی از کارا روش حساب کرد
دوما میخواد تواضع فکریتونو بسنجه
مثلا دیدم نوشتین نه حاجی ai که جامو نمیگیره این پالس غرور کاذب میده به مصاحبه کننده
دوس داره ببینه چقد اپتیمیستین ( نیمه پر لیوان میبینید ) و چقد پسمیستین ( نیمه خالی لیوان میبینید )
قطعا بودن یه ورد اپتمیست توی تیم خیلی از پسمیست کمک کننده اس
حالا یه مثال خوب از جنگ فعلی دارم که نمیتونم بزنم میندازنم تو گونی ولی از اون ساید میزنم که نندازنم
مثلا آمریکا درکی از قدرت موشکی ما نداشت و دست کم گرفتنش نتیجش شد این که میبینید ( ما پیروز شدیم دی:)
سوما تفکیک یک کد نویس از یک مهندس چیزی که من خیلی همیشه تاکید دارم روش
اینکه شما تایپیستی یا مهندسی!
مهندس فرزاد دلیر رو نمیتونه کسی جایگزین کنه ولی احتمالا اون فردی که ناپلونی معماری رو پاس کرده خیلی سخت نباشه جایگزین کردنش نه ؟
شرکت اینطوری میفهمه که شما حتی اگر فردا برنامهنویسی کلاً منسوخ بشه، باز هم به درد آن مجموعه میخورید چون "فهمِ سیستمیک" داری.
و اخرین چیزی که من برداشت میکنم از این سوال چیزی بود که از زمان راهنمایی معلمامون میگفتن ( هیچ گوهی نمیشی رو منظورم نیست دی:)
هوش هیجانی !
میخواد ببینه اون لحظه دقیقا واکنشت چیه
بایاس دار میشی یا نه عصبی میشی نمیشی با منطق برخورد میکنی دفاع میکنی از خودت چیکار میکنی
این از اون سوالای منابع انسانی طوره قشنگ میفهمه پس فردا تو ددلاین نزدیک فشار کاری بالا باشه شخصیتت چه شکلی میشه شاید بگی این که ربطی نداشت قطعا درست میگی ولی منابع انسانی اینارو نمیفهمه !
در کل خیلی پر حرفی کردم ولی امیدوارم بدردتون بخوره تو مصاحبه ها :))
@codehalics | کدهالیک
3 460
خب من یه ریفر میدم به یه مقالهای که تقریباً میتونم بگم وقتی خوندمش، خیلی خیلی تأثیر زیادی رو جواب این سوال داشت. مقالهی "The End of Programming" از مت ولش.
حرف حسابش چیه؟ میگه ما همهمون مثل دایناسورهایی هستیم که داریم به اون شهابسنگی که داره میخوره زمین نگاه میکنیم! ولش میگه دوران «کد زدن» به معنای کلاسیکش تموم شده. قدیما مهندسا افتخار میکردن که با خطکش مهندسی (Slide Rule) محاسبات پیچیده میکنن، ولی ماشینحساب که اومد، اون مهارت کلاً رفت تو موزه. الانم دقیقاً همونه؛ اینکه بشینی سینتکس بنویسی و الگوریتم جابهجا کنی، داره میشه یه مهارت منسوخ.
حالا تو مصاحبه چطوری حضورمون رو توجیه کنیم؟
باید بفهمیم که واحدِ اتمی کار ما عوض شده. قدیما واحد کارمون "خط کد" بود، الان واحد کارمون شده "هدایت مدلهای AI". اگه ۸۰٪ کار رو AI میکنه، دمش گرم! توجیه حضور من اینه که من اون "ناظر" و "معماری" هستم که میدونه این قطعات رو چطوری کنار هم بچینه که بیزینس زمین نخوره. AI مسئولیت نمیپذیره، AI استراتژی نمیفهمه، AI نمیتونه بین دو تا Trade-off سختِ معماری تصمیم بگیره.
توجیه ما اینه: ما از «بنا» تبدیل شدیم به «مربی» و «مهندس ارشد». حضور ما واجبه چون ابزار چموشی مثل AI، یه راننده میخواد که بفهمه جاده کجاست و تهش قراره به چی برسیم. ما نیومدیم که با AI رقابت کنیم، اومدیم که باهاش خروجی تیم رو ۱۰ برابر کنیم.
خلاصه که ارزش ما دیگه به "تایپ کردن" نیست، به "فهمیدن و حل مسئلهست".
دعوتتون میکنم که این مقاله رو بخونین ( البته اگر اینترنت
دارید)
https://cacm.acm.org/opinion/the-end-of-programming/
@codehalics | کدهالیک
3 460
جدیداً یه سوال تو مصاحبهها خیلی تکرار میشه:
«اگه ۸۰٪ کارت با هوش مصنوعی قابل اتوماسیون باشه، چطوری حضورتو تو محیط واقعیِ کار توجیه میکنی؟»
یا حتی یه نسخه چالشیترش:
«اگه تا چند سال دیگه AI بتونه ۱۰۰٪ جای تو رو بگیره، واکنشت چیه؟»
این مدل سوالها مخصوصاً تو مصاحبههای خارجی خیلی زیاد پرسیده میشه و به نظر میاد قراره بیشتر هم بشه.
حالا سوال از شما:
اگه تو یه جلسه مصاحبه باشین و من مصاحبهکننده، چطوری بهش جواب میدین؟
@codehalics | کدهالیک
3 460
استخدام در شرکت ازکی
سلام دوستان شرکت ازکی در حال حاضر در این پوزیشن ها در حال استخدام هستش
پوزیشنهای باز شرکت:
پرفورمنس / دیجیتال مارکتینگ منیجر
مدیر پروژه مسلط به ATL
سرپرست برای تیم ریتنشن
کارشناس ریتنشن
آیدی تلگرام جهت ارسال رزومه:
@ShahrzadTaleghani
@codehalics | کدهالیک
3 460
قطعی اینترنت قطعا فاجعه و غیرقابلقبوله؛ شکی درش نیست. اما یه چیزی برام عجیبه: وقتی میشنوم یک کسبوکار ۲۰ ساله با این شرایط «کاملا» جمع شده. واقعا تو ۲۰ سال فعالیت، هیچ پلن B یا استراتژی تابآوری برای بقا در بحرانها چیده نشده؟ یا من منطق بیزینس رو درک نمیکنم؟ شما بگید!
@codehalics | کدهالیک
现已上线!2025 年 Telegram 研究 — 年度关键洞察 
