من دو سه سال پیش یه shell خیلی مینیمال نوشته بودم به اسم KittySH.
اگر به این این که اسمش چرا اینه کار نداشته باشیم، به نظر میتونه برای system programming توی گو یه ایدههای خوبی بهتون بده.
فیچرها: اجرای کامند و cd و clear و prompt رو خودش پشتیبانی میکنه و با کمک کتابخونه، auto complete هم داره.
https://github.com/rsharifnasab/KittySH/tree/master
اگر به این این که اسمش چرا اینه کار نداشته باشیم، به نظر میتونه برای system programming توی گو یه ایدههای خوبی بهتون بده.
فیچرها: اجرای کامند و cd و clear و prompt رو خودش پشتیبانی میکنه و با کمک کتابخونه، auto complete هم داره.
https://github.com/rsharifnasab/KittySH/tree/master
GitHub
GitHub - rsharifnasab/KittySH: kitty terminal is awesome, why not develop a shell with its name?!
kitty terminal is awesome, why not develop a shell with its name?! - rsharifnasab/KittySH
1❤11🔥8
در گولنگ نسخه ۱.۲۵، یه Garbage collector جدید به نام green tea اضافه شده که سعی میکنه سریعتر باشه. فعلا به شکل experimentalئه ولی توی ۱.۲۶ قراره که به شکل پیشفرض استفاده بشه.
چه گو دولوپر هستید چه نه، خوندن این بلاگ پست رو بهتون توصیه میکنم چون هم در مورد نحوه کار Garbage collector بهتون ایدههای خوبی میده (به شکل کامل و نه خیلی ساده سازی شده) و هم این که چطوری به افزایش پرفورمنس یه برنامه میشه نگاه کرد رو میبینید. در مورد instructionهای پردازنده، دسترسی به مموری و ...
https://go.dev/blog/greenteagc
چه گو دولوپر هستید چه نه، خوندن این بلاگ پست رو بهتون توصیه میکنم چون هم در مورد نحوه کار Garbage collector بهتون ایدههای خوبی میده (به شکل کامل و نه خیلی ساده سازی شده) و هم این که چطوری به افزایش پرفورمنس یه برنامه میشه نگاه کرد رو میبینید. در مورد instructionهای پردازنده، دسترسی به مموری و ...
https://go.dev/blog/greenteagc
go.dev
The Green Tea Garbage Collector - The Go Programming Language
Go 1.25 includes a new experimental garbage collector, Green Tea.
❤19👍3
امروز بر خلاف روال معمول کار جدی، تصمیم گرفتم تکنولوژیهای جدید رو هم امتحان کنم و قرعه به نام SQLc افتاد. یه ابزار تولید کد بر اساس ساختار دیتابیس و کوئری ها، کد گولنگ تولید میکنه.
نتیجه این که گول تبلیغات رو نخورید. این فقط توی دو تا مثال خودش خوب عمل میکرد، برای نیازمندی های من که اونقدر هم پیچیده نبود خیلی اذیت کرد.
هدفم اینجا نقد و بررسی منصفانهاش نیست و شاید شما باهاش خوشحال باشید ولی من علیرغم این که ایدهش رو دوست داشتم در عمل خوشحال نشدم باهاش.
نتیجه این که گول تبلیغات رو نخورید. این فقط توی دو تا مثال خودش خوب عمل میکرد، برای نیازمندی های من که اونقدر هم پیچیده نبود خیلی اذیت کرد.
هدفم اینجا نقد و بررسی منصفانهاش نیست و شاید شما باهاش خوشحال باشید ولی من علیرغم این که ایدهش رو دوست داشتم در عمل خوشحال نشدم باهاش.
👍23❤3🔥1😁1
گاهی یک خطا در سیستم باعث بروز خطا در باقی سیستم میشه و فاجعه. به این پدیده میگن cascading failure و اینجا به زیبایی توضیح داده شده.
https://youtu.be/oVGOUh6-m4E?si=Bs_NaEPVksbb9joL
https://youtu.be/oVGOUh6-m4E?si=Bs_NaEPVksbb9joL
YouTube
Cascading Failure | System Design
This video explains about a domino effect of failures called as cascading failures. We will understand the conditions how it happens and some precautions to avoid it.
---------------------------------------------------------------------------------------…
---------------------------------------------------------------------------------------…
🔥10👍2👨💻2
چرا پیدا کردن بهترین استعدادها، توی لینکدین و گیتهاب سخته؟ چون خیلی ها که کارشون خوبه، تمرکزشون روی خود کاره و پروفایل جذابی تو این پلتفرم ها ندارن!
https://surfingcomplexity.blog/2025/10/08/the-illegible-nature-of-software-development-talent/
در ادامه خودم اضافه کنم که: خوبه که از زاویه دیگه هم نگاه کنیم. اگه چنین آدمی هستید که استعداد خوبی دارید ولی فعالیت آنلاینی ندارید، شاید بهتر باشه واقعیتی که تو مقاله هست رو بپذیرید و خودتون رو تطبیق بدید.
https://surfingcomplexity.blog/2025/10/08/the-illegible-nature-of-software-development-talent/
در ادامه خودم اضافه کنم که: خوبه که از زاویه دیگه هم نگاه کنیم. اگه چنین آدمی هستید که استعداد خوبی دارید ولی فعالیت آنلاینی ندارید، شاید بهتر باشه واقعیتی که تو مقاله هست رو بپذیرید و خودتون رو تطبیق بدید.
Surfing Complexity
The illegible nature of software development talent
Here’s another blog post on gathering some common threads from reading recent posts. Today’s topic is about the unassuming nature of talented software engineers. The first thread was a …
👍22❤4😁2
استفاده از 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 تست، انواع ترکیب ها امتحان بشه تا به یه نقطه ایده آل برسیم. حتی ممکنه بسته به رفتار کاربر یا اطلاعات پایه که از کاربر داریم چیزی رو براش حذف یا اضافه کنیم.
👍10❤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...
👍20❤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…
🔥11👏2👍1👌1
Forwarded from Agora (Alireza)
مسیر ساخت WAF در ترب؛ نگاهی به چالشها و تجربههای بهدست آمده
روزانه تعداد زیادی درخواست خودکار از رباتها به سمت ترب ارسال میشود. بعضی از این درخواستها، درخواستهای مفیدی هستند. برای مثال درخواستهایی که از سمت گوگل میآید جزء درخواستهای مفید هستند. از طرفی بعضی از این درخواستها ناخواسته و در دستهی مضر قرار میگیرند. برای مثال بعضی از رباتها اقدام به فراخوانی درگاهها ارسال رمز عبور میکنند. این کار علاوه بر اعمال هزینههای اضافه باعث نارضایتی از سمت شمارهی مقصد میشود. به همین جهت نیازمند روشهایی برای جلوگیری از این درخواستهای خودکار داریم. در عین حال نباید مانع کار رباتهای مفید شویم. برای این کار نیازمند سیستمی برای تشخیص و اعمال محدودیت روی درخواستها هستیم.
ویرگول
مسیر ساخت WAF در ترب؛ نگاهی به چالشها و تجربههای بهدست آمده
مروری بر چگونگی اعمال محدودیت برای درخواستهای مشکوک در ترب
❤5👏5🔥3
در مورد system prompt
یه مدل llm که باهاش چت میکنیم دو تا پرامپت داره. یکی همون که کاربر مینویسه که باهاش آشنا هستیم ولی چیزی که اغلب نمیبینیم system promptئه که قبل از پرامپت شما میاد و چیزای کلی بهش گفته میشه. شامل تاریخ و ساعت، اسم مدلش احتمالا و یه سری باید و نباید. حتما دیدین که یه سری سوال ها رو LLMها جواب نمیدن قاعدتا به خاطر همین system promptشونه.
حالا چرا ما باید برامون مهم باشه؟ ممکنه بخواید یه مدل خام رو اجرا کنید (مثلا با API بهش وصل بشید و چت کنید) یا اصلا خودتون مدل رو لوکال آوردید بالا. بدون system prompt خوب ممکنه نتیجه چت ایدهآل نباشه در حالی که مدل لزوما مدل بدی نیست. من یه مساله ساده که داشتم این بود که با chatbox به api openrouter وصل شدم ولی خروجی ها کمی به هم ریخته میشد. اومدم با یه system prompt ساده مشکل رو حل کردم.
یا ممکنه بخواید یه agent برای یه موضوع و کاربرد خاص بسازید، اون طوری پرامپتی که میدین بهش قبل از پرامپت کاربر میاد و به نوعی system prompt حساب میشه.
چطور system prompt خوب ینویسیم؟
https://towardsdev.com/the-art-of-writing-great-system-prompts-abb22f8b8f37
تحلیل system prompt مدل gpt5
https://medium.com/data-science-in-your-pocket/gpt-5-system-prompt-leaked-7-prompt-engineering-tricks-to-learn-85532a647cdf
سیستم پرامپتهای لیک شده مدلهای مختلف
https://github.com/jujumilk3/leaked-system-prompts
یه مدل llm که باهاش چت میکنیم دو تا پرامپت داره. یکی همون که کاربر مینویسه که باهاش آشنا هستیم ولی چیزی که اغلب نمیبینیم system promptئه که قبل از پرامپت شما میاد و چیزای کلی بهش گفته میشه. شامل تاریخ و ساعت، اسم مدلش احتمالا و یه سری باید و نباید. حتما دیدین که یه سری سوال ها رو LLMها جواب نمیدن قاعدتا به خاطر همین system promptشونه.
حالا چرا ما باید برامون مهم باشه؟ ممکنه بخواید یه مدل خام رو اجرا کنید (مثلا با API بهش وصل بشید و چت کنید) یا اصلا خودتون مدل رو لوکال آوردید بالا. بدون system prompt خوب ممکنه نتیجه چت ایدهآل نباشه در حالی که مدل لزوما مدل بدی نیست. من یه مساله ساده که داشتم این بود که با chatbox به api openrouter وصل شدم ولی خروجی ها کمی به هم ریخته میشد. اومدم با یه system prompt ساده مشکل رو حل کردم.
یا ممکنه بخواید یه agent برای یه موضوع و کاربرد خاص بسازید، اون طوری پرامپتی که میدین بهش قبل از پرامپت کاربر میاد و به نوعی system prompt حساب میشه.
چطور system prompt خوب ینویسیم؟
https://towardsdev.com/the-art-of-writing-great-system-prompts-abb22f8b8f37
تحلیل system prompt مدل gpt5
https://medium.com/data-science-in-your-pocket/gpt-5-system-prompt-leaked-7-prompt-engineering-tricks-to-learn-85532a647cdf
سیستم پرامپتهای لیک شده مدلهای مختلف
https://github.com/jujumilk3/leaked-system-prompts
Medium
The Art of Writing Great System Prompts
A Comprehensive Guide for Tech Builders and Decision Makers
👍7❤4
نوشتههای ترمینالی
به بهانه کنسرت علیرضا قربانی و داون شدن سایت فروش بلیط، مسأله سیستم دیزاین امشب: فرض کنید یه سایت فروش بلیت رو میخوایم طراحی کنیم که توانایی هندل کردن لود زیاد به شکل bursty رو داشته باشه، مثلاً سر ساعتی که فروش بلیط باز میشه. فلوی رزرو هم به این صورته…
به بهانه جمعه سیاه و مشکل شایع فروشگاه ها در تحمل لود زیاد، بیاید به این فکر کنیم که چطوری میتونیم یه فروشگاه با کمپینهای سر ساعت مشخص داشته باشیم که از دسترس خارج نشه.
فرض کنیم یه فروشگاه در حد دیجیکالا داریم که صبح جمعه یه کمپین خیلی سنگین داره. میخوایم لیست اقدام هایی در بیاریم از روزها و هفتههای گذشته باعث بشه در تاریخ مشخص بتونیم لود رو تحمل کنیم.
راهنمایی و فکرهای خودم:
این مدل لود قاعدتا حالت bursty داره و تعداد کاربر خیلی زیاد رو شامل میشه. تو این مسأله هم فرض کنیم هدف اینه که واقعا به مشتری سرویس بدیم نه این که throttle کنیم و لود رو کم کنیم.
من چالش رو دو دسته میبینم.
یکی این که چطوری consistency رو حفظ کنیم و وقتی تعداد زیادی کاربر یک محصول با موجودی کم رو میخوان، بیشتر از تعداد موجودی نفروشیم.
یکی هم این که کاری کنیم سیستم پایدار بمونه و روال های حیاتی مثل دیدن محصولات و ثبت سفارش به درستی کار کنن.
چیزایی که به ذهنم میرسه:
+ لود تست
+ پیدا کردن و حل گلوگاه ها و تغییر معماری در صورت نیاز
+ آماده باش نیروها
+ افزایش منابع
+ داشتن جایگزین برای زیرساخت های مهم مثل برق و اینترنت
فرض کنیم یه فروشگاه در حد دیجیکالا داریم که صبح جمعه یه کمپین خیلی سنگین داره. میخوایم لیست اقدام هایی در بیاریم از روزها و هفتههای گذشته باعث بشه در تاریخ مشخص بتونیم لود رو تحمل کنیم.
راهنمایی و فکرهای خودم:
این مدل لود قاعدتا حالت bursty داره و تعداد کاربر خیلی زیاد رو شامل میشه. تو این مسأله هم فرض کنیم هدف اینه که واقعا به مشتری سرویس بدیم نه این که throttle کنیم و لود رو کم کنیم.
من چالش رو دو دسته میبینم.
یکی این که چطوری consistency رو حفظ کنیم و وقتی تعداد زیادی کاربر یک محصول با موجودی کم رو میخوان، بیشتر از تعداد موجودی نفروشیم.
یکی هم این که کاری کنیم سیستم پایدار بمونه و روال های حیاتی مثل دیدن محصولات و ثبت سفارش به درستی کار کنن.
چیزایی که به ذهنم میرسه:
+ لود تست
+ پیدا کردن و حل گلوگاه ها و تغییر معماری در صورت نیاز
+ آماده باش نیروها
+ افزایش منابع
+ داشتن جایگزین برای زیرساخت های مهم مثل برق و اینترنت
❤19
Forwarded from نوشتههای ترمینالی
بحث Escape Analysis یکی از مباحث عمیق و جالب گولنگه.
داستان اینه که توی گولنگ شما خیلی انتخاب نمیکنید که چی روی استک باشه و چی روی هیپ. بلکه کامپایلر این تصمیم رو میگیره. چطوری؟ اینجا بخونید.
https://www.sobyte.net/post/2022-03/go-escape/
این هم مطلب خوبیه:
https://golang.howtos.io/go-s-escape-analysis-a-practical-guide/
و این ویدیو:
https://youtu.be/ZMZpH4yT7M0
داستان اینه که توی گولنگ شما خیلی انتخاب نمیکنید که چی روی استک باشه و چی روی هیپ. بلکه کامپایلر این تصمیم رو میگیره. چطوری؟ اینجا بخونید.
https://www.sobyte.net/post/2022-03/go-escape/
این هم مطلب خوبیه:
https://golang.howtos.io/go-s-escape-analysis-a-practical-guide/
و این ویدیو:
https://youtu.be/ZMZpH4yT7M0
www.sobyte.net
Understanding Go escape analysis by example
In this article, we learn about the problems to be solved by escape analysis, the current state and simple principles of Go escape analysis, some examples of Go escape analysis, and a description of the output logs of escape analysis. Finally, we give a solution…
🔥2
تولید کد با AI: آیا واقعا بهبود قابل توجهی حاصل شده؟
مطلب طولانیایه و سعی میکنم خلاصهش رو براتون بنویسم:
سرعت تولید کد بالا رفته. درستی کد اومده پایین. اکثر برنامهنویسها ازش استفاده میکنن ولی اعتماد کمتری بهش دارن از سال های پیش. سرعتی که حاصل شده چند برابر نیست و نهایتا در حد ۲۰-۳۰ درصده، حتی در کدهای پیچیده کاهش سرعت ۲۰ درصدی هم داشتیم چون کدی که به نظر درست میاد خیلی زمان میبره تا تبدیل به کدی بشه که واقعا درسته. مثلا زمان کد ریویو تا ۹۱ درصد افزایش داشته. همهجا هه طبیعتا کارکردش شبیه هم نیست مثلاً توی کدهای ساده و آموزشی عالیه ولی توی کدهای پیچیده خوب نیست.
برای این که سازمان بتونه از AI واقعا درست و خوب استفاده کنه نیاز داره فلوهاشو رو تغییر بده و تغییر یکهو و یک شبه نیست.
https://addyo.substack.com/p/the-reality-of-ai-assisted-software
مطلب طولانیایه و سعی میکنم خلاصهش رو براتون بنویسم:
سرعت تولید کد بالا رفته. درستی کد اومده پایین. اکثر برنامهنویسها ازش استفاده میکنن ولی اعتماد کمتری بهش دارن از سال های پیش. سرعتی که حاصل شده چند برابر نیست و نهایتا در حد ۲۰-۳۰ درصده، حتی در کدهای پیچیده کاهش سرعت ۲۰ درصدی هم داشتیم چون کدی که به نظر درست میاد خیلی زمان میبره تا تبدیل به کدی بشه که واقعا درسته. مثلا زمان کد ریویو تا ۹۱ درصد افزایش داشته. همهجا هه طبیعتا کارکردش شبیه هم نیست مثلاً توی کدهای ساده و آموزشی عالیه ولی توی کدهای پیچیده خوب نیست.
برای این که سازمان بتونه از AI واقعا درست و خوب استفاده کنه نیاز داره فلوهاشو رو تغییر بده و تغییر یکهو و یک شبه نیست.
https://addyo.substack.com/p/the-reality-of-ai-assisted-software
Substack
The reality of AI-Assisted software engineering productivity
What the data really shows about AI coding tools in 2025
👍15👎2
اگه چند وقت هست با گولنگ کار میکنید شاید بد نباشه که یه مروری روی ریزه کاریهاش داشته باشید.
من این کتاب ۱۰۰ اشتباه در گولنگ رو خیلی وقت پیش دیده بودم و امروز یه نگاهی انداختم بهش و به نظر برای این منظور کاربردی میاد.
https://100go.co/
برای این که بیشتر تشویقتون کنم یک نمونه هم میگذارم:
فرض کنید ۱ ملیون ایتم به مپ اضافه میکنیم در این مرحله برنامه ۱۰۰ مگابایت مموری مصرف میکنه. حالا هر ۱ ملیون تا رو حذف میکنیم و گاربیج کالکتور رو هم صدا میکنیم. در این مرحله برنامه چقدر مموری مصرف میکنه؟ نزدیک به صفر؟ پاسخ اینه که نه. چون تعداد bucket های مپ فقط زیاد میشن و کم نمیشن در نتیجه خود مپ همچنان مموری نسبتا زیادی مصرف میکنه.
https://100go.co/28-maps-memory-leaks/
من این کتاب ۱۰۰ اشتباه در گولنگ رو خیلی وقت پیش دیده بودم و امروز یه نگاهی انداختم بهش و به نظر برای این منظور کاربردی میاد.
https://100go.co/
برای این که بیشتر تشویقتون کنم یک نمونه هم میگذارم:
فرض کنید ۱ ملیون ایتم به مپ اضافه میکنیم در این مرحله برنامه ۱۰۰ مگابایت مموری مصرف میکنه. حالا هر ۱ ملیون تا رو حذف میکنیم و گاربیج کالکتور رو هم صدا میکنیم. در این مرحله برنامه چقدر مموری مصرف میکنه؟ نزدیک به صفر؟ پاسخ اینه که نه. چون تعداد bucket های مپ فقط زیاد میشن و کم نمیشن در نتیجه خود مپ همچنان مموری نسبتا زیادی مصرف میکنه.
https://100go.co/28-maps-memory-leaks/
100go.co
Common Go Mistakes - 100 Go Mistakes and How to Avoid Them
Summary of the mistakes in the 100 Go Mistakes book.
👍14