استفاده از ai تو مصاحبه، آره یا نه؟ از زبون مصاحبه کننده.
https://leaddev.com/ai/why-expect-candidates-ai-hiring-process
نظر شخصی من اینه که در کل مهم نیست از چی استفاده میکنید، چه کپی پیست، چه لایبرری، چه GenAI، نهایتا مهمه که بتونید مسئولیتش رو بپذیرید و بدونید چه trade offهایی توش برقراره. به طور خلاصه وقتی پرسیدن چرا اینطوری، بتونید شفاف پاسخ بدید و نگید AI نوشته.
https://leaddev.com/ai/why-expect-candidates-ai-hiring-process
نظر شخصی من اینه که در کل مهم نیست از چی استفاده میکنید، چه کپی پیست، چه لایبرری، چه GenAI، نهایتا مهمه که بتونید مسئولیتش رو بپذیرید و بدونید چه trade offهایی توش برقراره. به طور خلاصه وقتی پرسیدن چرا اینطوری، بتونید شفاف پاسخ بدید و نگید AI نوشته.
LeadDev
Why I expect candidates to use AI in the hiring process
If you're joining a team where AI use is commonplace, expect the interview process to test those skills.
👌12❤5👍3
Forwarded from Agora (Alireza)
بعضیها مشکل کد نوشتن با AI را اینطور میبینند که دیگه هیچچیز دقیق، عمیق و درست نیست. من واقعاً مشکل رو اینجا نمیبینم؛ در واقع، این رو مشکل جدیدی نمیبینم.
دوستان مهندس ما تا به حال هم در تولید کدِ بینقص خیلی موفق عمل نکردند. در واقع، اگر در تولید قطعهکدهایی موفق بودند، اون کدها هم عموماً امکان غلط نوشتنشون ممکن نیست یا خیلی کمه؛ یا دهها سال در پلتفرمهای مختلف اجرا و تست شدهاند یا اساساً صحت الگوریتمِی که پیاده کردن اثبات شدهست. اما از اون طرف، (همین دوستان) در معماری همیشه پر از خطا بودند و معماریهاشون در یک فرایند تدریجی بهبود پیدا کرده. خطایی که نه لزوماً برخاسته از یک مهندسی غلط، که برخاسته از نیاز بیزینسه. تغییراتی که هیچوقت پیشبینی نشدند، از ناکجا وسط معماری شما سر در میارند و شما را مجبور به تغییرات پرریسک و پرهزینه میکنند. شاهد این مدعا هم باگ فیکس های ابدی تمام پروژههای بزرگ و کوچیکه.
از نظر من، مشکلی که الان شیوع پیدا کرده، تولید کدهاییه که مسئولش از مکانیسمش سر در نمیاره. کدی که «عظیمه، مثل فیل. پر سر و صداست. هیاهوه. دیوانه است. پر هرجومرجه اما مدفوعه». یک فایل ۵۰۰ خطی که یک فیچرو پیاده کرده —که اتفاقاً درست هم کار میکنه— ولی کمتر کسی توان و حوصلهٔ این رو داره بشینه و کار شخص دیگهای رو بخونه تا عمیقاً بفهمه؛ بهخصوص که نرخ تولید PRهایی با تعداد تغییرات بالا به لطف AIها، در حال بیشتر و بیشتر شدنه. مشکلی که قبلا هم در سطح خرد با ظهور امثال استکاوورفلو بیشتر جون گرفت و الان رشد کرده و دست و پا در آورده.
دوستان مهندس ما تا به حال هم در تولید کدِ بینقص خیلی موفق عمل نکردند. در واقع، اگر در تولید قطعهکدهایی موفق بودند، اون کدها هم عموماً امکان غلط نوشتنشون ممکن نیست یا خیلی کمه؛ یا دهها سال در پلتفرمهای مختلف اجرا و تست شدهاند یا اساساً صحت الگوریتمِی که پیاده کردن اثبات شدهست. اما از اون طرف، (همین دوستان) در معماری همیشه پر از خطا بودند و معماریهاشون در یک فرایند تدریجی بهبود پیدا کرده. خطایی که نه لزوماً برخاسته از یک مهندسی غلط، که برخاسته از نیاز بیزینسه. تغییراتی که هیچوقت پیشبینی نشدند، از ناکجا وسط معماری شما سر در میارند و شما را مجبور به تغییرات پرریسک و پرهزینه میکنند. شاهد این مدعا هم باگ فیکس های ابدی تمام پروژههای بزرگ و کوچیکه.
از نظر من، مشکلی که الان شیوع پیدا کرده، تولید کدهاییه که مسئولش از مکانیسمش سر در نمیاره. کدی که «عظیمه، مثل فیل. پر سر و صداست. هیاهوه. دیوانه است. پر هرجومرجه اما مدفوعه». یک فایل ۵۰۰ خطی که یک فیچرو پیاده کرده —که اتفاقاً درست هم کار میکنه— ولی کمتر کسی توان و حوصلهٔ این رو داره بشینه و کار شخص دیگهای رو بخونه تا عمیقاً بفهمه؛ بهخصوص که نرخ تولید PRهایی با تعداد تغییرات بالا به لطف AIها، در حال بیشتر و بیشتر شدنه. مشکلی که قبلا هم در سطح خرد با ظهور امثال استکاوورفلو بیشتر جون گرفت و الان رشد کرده و دست و پا در آورده.
❤19👍10👎1
چرا با وجود AI هنوز هم کیفیت کدی که نوشته میشه مهمه.
فرض کنید انکال هستید یا فرض کنید کد کاملا درست احتیاج دارید.
https://martinfowler.com/articles/exploring-gen-ai/i-still-care-about-the-code.html
فرض کنید انکال هستید یا فرض کنید کد کاملا درست احتیاج دارید.
https://martinfowler.com/articles/exploring-gen-ai/i-still-care-about-the-code.html
martinfowler.com
I still care about the code
Notes from my Thoughtworks colleagues on AI-assisted software delivery
👍16👌1
Forwarded from امین رشیدبیگی | مهندسی نرمافزار
امکان سرویسدهی در سطوح مختلف به کمک Feature Flagها
هر محصول در کنار خدمترسانی اصلیش، کلی قابلیت و فیچر جانبی داره که باعث میشن تجربهٔ کاربر بهتر بشه و یا درآمدش بالاتر بره.
مثلاً توی یه فروشگاه مثل دیجیکالا، علاوه بر مسیر اصلی تجربهٔ کاربر، یعنی جستجو، مشاهدهٔ محصول، اضافه کردن به سبد خرید، پرداخت و ثبت سفارش، دهها قابلیت دیگه هم وجود داره:
لایو اینفلونسرها، سیستم recommendation، تبلیغات فروشندهها، ثبتنام و احراز هویت کاربرهای جدید، و موارد مشابه.
همهٔ اینها برای کسبوکار مهمن، اما وقتی شرایط نرمال نباشه و فشار زیادی روی سرورها بیاد، اهمیتشون با هم برابر نیست.
مثلاً سیستم recommendation به اندازهٔ فرآیند ثبت سفارش حیاتی نیست.
بنابراین باید مکانیزمی داشته باشیم که بتونیم در مواقع ضروری بعضی قابلیتها رو موقتاً غیرفعال کنیم.
یکی از راهحلها استفاده از Feature Flagهاست؛ ابزاری که در زمان کوتاه و با تغییراتی اندک، امکان حذف بخشهایی از محصول رو از مسیر درخواست کاربر فراهم میکنه.
@aminrbg
هر محصول در کنار خدمترسانی اصلیش، کلی قابلیت و فیچر جانبی داره که باعث میشن تجربهٔ کاربر بهتر بشه و یا درآمدش بالاتر بره.
مثلاً توی یه فروشگاه مثل دیجیکالا، علاوه بر مسیر اصلی تجربهٔ کاربر، یعنی جستجو، مشاهدهٔ محصول، اضافه کردن به سبد خرید، پرداخت و ثبت سفارش، دهها قابلیت دیگه هم وجود داره:
لایو اینفلونسرها، سیستم recommendation، تبلیغات فروشندهها، ثبتنام و احراز هویت کاربرهای جدید، و موارد مشابه.
همهٔ اینها برای کسبوکار مهمن، اما وقتی شرایط نرمال نباشه و فشار زیادی روی سرورها بیاد، اهمیتشون با هم برابر نیست.
مثلاً سیستم recommendation به اندازهٔ فرآیند ثبت سفارش حیاتی نیست.
بنابراین باید مکانیزمی داشته باشیم که بتونیم در مواقع ضروری بعضی قابلیتها رو موقتاً غیرفعال کنیم.
یکی از راهحلها استفاده از Feature Flagهاست؛ ابزاری که در زمان کوتاه و با تغییراتی اندک، امکان حذف بخشهایی از محصول رو از مسیر درخواست کاربر فراهم میکنه.
@aminrbg
👍7❤4
منم یه نکته به این مطلب خیلی خوب اضافه کنم:
این که ما فیچر فلگ داشته باشیم همیشه هم هدفش بار روی سرورها نیست و ممکنه دست پروداکت منیجر ها رو باز بگذاره تا تجربه کاربر نهایی رو تیون کنن. مثلا با کمک 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)
🔥11
یه اتفاق خیلی عجیبی که برخوردم این بود که یه کد گولنگ کار میکرد و کامپایل و اجرا میشد تا وقتی که 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...
👍19❤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…
🔥9👏2👍1👌1
Forwarded from Agora (Alireza)
مسیر ساخت WAF در ترب؛ نگاهی به چالشها و تجربههای بهدست آمده
روزانه تعداد زیادی درخواست خودکار از رباتها به سمت ترب ارسال میشود. بعضی از این درخواستها، درخواستهای مفیدی هستند. برای مثال درخواستهایی که از سمت گوگل میآید جزء درخواستهای مفید هستند. از طرفی بعضی از این درخواستها ناخواسته و در دستهی مضر قرار میگیرند. برای مثال بعضی از رباتها اقدام به فراخوانی درگاهها ارسال رمز عبور میکنند. این کار علاوه بر اعمال هزینههای اضافه باعث نارضایتی از سمت شمارهی مقصد میشود. به همین جهت نیازمند روشهایی برای جلوگیری از این درخواستهای خودکار داریم. در عین حال نباید مانع کار رباتهای مفید شویم. برای این کار نیازمند سیستمی برای تشخیص و اعمال محدودیت روی درخواستها هستیم.
ویرگول
مسیر ساخت WAF در ترب؛ نگاهی به چالشها و تجربههای بهدست آمده
مروری بر چگونگی اعمال محدودیت برای درخواستهای مشکوک در ترب
👏5❤2🔥2