چطور مثل یک هکر از ترمینال استفاده کنیم؟
https://www.freecodecamp.org/news/coding-like-a-hacker-in-the-terminal-79e22954968e/
https://www.freecodecamp.org/news/coding-like-a-hacker-in-the-terminal-79e22954968e/
freeCodeCamp.org
How to code like a Hacker in the terminal
By Caleb Taylor You are a hacker. Your home is the terminal. You know every key stroke is valuable. If something is less than 100% efficient, you will spend hours figuring out the right tool to save yourself seconds. Because it’s always worth it. _S...
👌9
چرا برنامهنویس ها بسیار دچار فرسودگی شغلی میشن؟ (burnout)
یکم طولانیه ولی ویدیوی خیلی جالبی بود.
https://youtu.be/XW-02QiiHDM?si=5YiqqH-iN-nhWc7U
یکم طولانیه ولی ویدیوی خیلی جالبی بود.
https://youtu.be/XW-02QiiHDM?si=5YiqqH-iN-nhWc7U
YouTube
Why Software Devs Keep Burning Out
Our coaches can help you take real steps toward getting your life on track. Learn more: https://bit.ly/3GjDVdy
▼ Timestamps ▼
────────────
00:00 - Introduction
01:13 - Set up to fail
05:35 - Why devs burn out
07:47 - Remote Work
09:15 - Your colleagues…
▼ Timestamps ▼
────────────
00:00 - Introduction
01:13 - Set up to fail
05:35 - Why devs burn out
07:47 - Remote Work
09:15 - Your colleagues…
🔥7👍3
Forwarded from Geek Alerts
اسکایپ امروز بعد از ۲۲ سال برای همیشه خاموش میشه و کاربران برای استفاده از ویژگیهای مشابه باید به مایکروسافت تیمز برن.
hadi @geekalerts
hadi @geekalerts
💔13👏4🤣3🤩2🕊2
در مورد functional programming مطلب خیلی جالبی بود
https://medium.com/@olxc/switching-from-oop-to-functional-programming-4187698d4d3
https://medium.com/@olxc/switching-from-oop-to-functional-programming-4187698d4d3
Medium
Switching from OOP to Functional Programming
Why functional programming is so hard?
❤1
چرا داشتن فقط یک مانیتور برای بهرهوری بهتر است؟
این ویدیو توضیح میده که چطوری با تمرکز بر فقط همون یک مانیتور حس بهتری داره و خستگی کمتری رو تجربه میکنه.
https://m.youtube.com/watch?v=8rWtKKeBMm8
این ویدیو توضیح میده که چطوری با تمرکز بر فقط همون یک مانیتور حس بهتری داره و خستگی کمتری رو تجربه میکنه.
https://m.youtube.com/watch?v=8rWtKKeBMm8
YouTube
Why I only use one monitor
BenQ Programming Monitor https://benqurl.biz/4i9Wmi7
Most developers swear by having multiple monitors… but after years of trying, I realized it just doesn’t work for me. In this video, I share why I decided to switch to a single monitor setup as a software…
Most developers swear by having multiple monitors… but after years of trying, I realized it just doesn’t work for me. In this video, I share why I decided to switch to a single monitor setup as a software…
👍5😢1
ادیتور zed اخیرا ویژگی agentic edit رو معرفی کرده. قضیه به این صورته که شما قبلا میتونستین api key مربوط به LLM رو وارد کنید (انواع مختلفی رو هم ساپورت میکرد) و کنار کد و با کانتکست هر فایلی که بهش بگید، بتونید با مدلتون چت کنید.
الان علاوه بر اون قابلیت ادیت هم اضافه کرده، یعنی خود ادیتور میاد بر اساس پرامپت شما و چندین کال زدن به LLM، ادیت میکنه کد رو و حتی توی کد سرچ میکنه و فایل های مرتبط و مورد نیاز رو به کانتکست اضافه میکنه. در نهایت هم diff رو به شما نشون میده و شما تایید یا رد میکنید و خلاصه بدون اجازه شما کد رو دست نمیزنه. (البته قطعا ایده خوبیه که از ورژن کنترل استفاده کنید و کپیای چیزی داشته باشید از کد)
https://zed.dev/agentic
در کل من ادیتور Zed رو دوست دارم خیلی. هم vim mode خوبی داره هم پشتیبانی نسبتا خوبی از زبان های مختلف بدون نیاز به پلاگین خاصی داره. البته برخلاف تبلیغشون که خیلی سریعه، از کانفیگ neovim من با ده ها پلاگین سریعتر نیست، اما باز هم تجربه لذت بخشی ارائه میده.
الان علاوه بر اون قابلیت ادیت هم اضافه کرده، یعنی خود ادیتور میاد بر اساس پرامپت شما و چندین کال زدن به LLM، ادیت میکنه کد رو و حتی توی کد سرچ میکنه و فایل های مرتبط و مورد نیاز رو به کانتکست اضافه میکنه. در نهایت هم diff رو به شما نشون میده و شما تایید یا رد میکنید و خلاصه بدون اجازه شما کد رو دست نمیزنه. (البته قطعا ایده خوبیه که از ورژن کنترل استفاده کنید و کپیای چیزی داشته باشید از کد)
https://zed.dev/agentic
در کل من ادیتور Zed رو دوست دارم خیلی. هم vim mode خوبی داره هم پشتیبانی نسبتا خوبی از زبان های مختلف بدون نیاز به پلاگین خاصی داره. البته برخلاف تبلیغشون که خیلی سریعه، از کانفیگ neovim من با ده ها پلاگین سریعتر نیست، اما باز هم تجربه لذت بخشی ارائه میده.
Zed
Zed — Agentic Editing
Collaborate with agents at 120fps in a natively multiplayer IDE.
👍12
یه ویدیو خیلی جالب در مورد گیت
تو این ویدیو میاد دیتا مدل گیت رو بررسی میکنه و میگه چرا شاید به عنوان یه دیتابیس هم این دیتا مدل میتونه جالب باشه؟
https://youtu.be/nPPlyjMlQ34?si=pvgzmoQH4XCLpd7t
تو این ویدیو میاد دیتا مدل گیت رو بررسی میکنه و میگه چرا شاید به عنوان یه دیتابیس هم این دیتا مدل میتونه جالب باشه؟
https://youtu.be/nPPlyjMlQ34?si=pvgzmoQH4XCLpd7t
YouTube
Using Git as a NoSql Database by Kenneth Truyers
Git is not just a source control system. It’s a content tracker we can (ab)use as a NoSQL database. Git has two features that traditional databases don’t support: deduplicated storage and automatic history tracking. This talk discusses how to leverage it…
❤6👍2
فایل متنی چیه؟ شاید بدیهی به نظر بیاد ولی توی POSIX تعریف ازش داریم.
تو این لینک میتونید بیشتر در موردش بخونید.
نکات مختلفی داره از جمله این که بین خط ها چی میاد و و از همه جالب تر این که اگر آخرین کارکتر فایلتون n\ نباشه معتبر نیست فایلتون :)))
https://stackoverflow.com/questions/729692/why-should-text-files-end-with-a-newline/729795#729795
تو این لینک میتونید بیشتر در موردش بخونید.
نکات مختلفی داره از جمله این که بین خط ها چی میاد و و از همه جالب تر این که اگر آخرین کارکتر فایلتون n\ نباشه معتبر نیست فایلتون :)))
https://stackoverflow.com/questions/729692/why-should-text-files-end-with-a-newline/729795#729795
Stack Overflow
Why should text files end with a newline?
I assume everyone here is familiar with the adage that all text files should end with a newline. I've known of this "rule" for years but I've always wondered — why?
👍7😁2
Forwarded from TechTube 𝕏 تک توب
This media is not supported in your browser
VIEW IN TELEGRAM
مایکروسافت ادیتور متن تحت ترمینال خودش به نام Edit رو عرضه کرده که ادیتور ساده ای هست و به کاربران امکان ویرایش فایلهای متنی رو بدون خارج شدن از محیط ترمینال فراهم میکنه، بسیار سبک هست، از ماوس پشتیبانی میکنه، امکان باز کردن چند فایل به صورت همزمان رو داره و میشه عبارات مختلف رو در اون پیدا و جایگزین کرد.
این شرکت Edit رو به عنوان ویرایشگر پیش فرض متن برای ویندوز ساخته و به دلیل اینکه کاربران درگیر میم نحوه خارج شدن از Vim نشن، نیاز بوده که ساده باشه و دارای حالتهای مختلف مثل Vim نباشه، در نتیجه مایکروسافت تصمیم گرفته ادیتور خودش رو بسازه.
این ادیتور با زبان Rust نوشته شده، متن باز هست و از حالا میشه اون رو از گیت هاب دانلود و روی ویندوز و لینوکس نصب کرد.
🔎 theverge
📍 @TechTube
این شرکت Edit رو به عنوان ویرایشگر پیش فرض متن برای ویندوز ساخته و به دلیل اینکه کاربران درگیر میم نحوه خارج شدن از Vim نشن، نیاز بوده که ساده باشه و دارای حالتهای مختلف مثل Vim نباشه، در نتیجه مایکروسافت تصمیم گرفته ادیتور خودش رو بسازه.
این ادیتور با زبان Rust نوشته شده، متن باز هست و از حالا میشه اون رو از گیت هاب دانلود و روی ویندوز و لینوکس نصب کرد.
🔎 theverge
📍 @TechTube
🤣6❤4
TechTube 𝕏 تک توب
مایکروسافت ادیتور متن تحت ترمینال خودش به نام Edit رو عرضه کرده که ادیتور ساده ای هست و به کاربران امکان ویرایش فایلهای متنی رو بدون خارج شدن از محیط ترمینال فراهم میکنه، بسیار سبک هست، از ماوس پشتیبانی میکنه، امکان باز کردن چند فایل به صورت همزمان رو داره…
من هرچی بگم اضافیه. :)))
🤣22❤1
یکی از پترن های مورد علاقه من تو سیستم های توزیع شده، back pressure ئه.
خلاصه ماجرا اینه که وقتی یه سیستم نمیتونه با سرعتی که ورودی میگیره، اون رو هندل کنه، یه جوری این فشاری که روشه رو روی سیستم دیگری که بهش ورودی میده اعلام کنه.
این مطلب با مثال های زیاد و توضیحات جذاب این موضوع رو توضیح داده.
https://medium.com/@jayphelps/backpressure-explained-the-flow-of-data-through-software-2350b3e77ce7
خلاصه ماجرا اینه که وقتی یه سیستم نمیتونه با سرعتی که ورودی میگیره، اون رو هندل کنه، یه جوری این فشاری که روشه رو روی سیستم دیگری که بهش ورودی میده اعلام کنه.
این مطلب با مثال های زیاد و توضیحات جذاب این موضوع رو توضیح داده.
https://medium.com/@jayphelps/backpressure-explained-the-flow-of-data-through-software-2350b3e77ce7
Medium
Backpressure explained — the flow of data through software
Backpressure is something nearly every software engineer will have to deal with at some point, and for some it’s a frequent problem. But…
👍5👌2
به بهانه کنسرت علیرضا قربانی و داون شدن سایت فروش بلیط، مسأله سیستم دیزاین امشب:
فرض کنید یه سایت فروش بلیت رو میخوایم طراحی کنیم که توانایی هندل کردن لود زیاد به شکل bursty رو داشته باشه، مثلاً سر ساعتی که فروش بلیط باز میشه.
فلوی رزرو هم به این صورته که هر کاربر می تونه نمایی از صندلی های پر و خالی رو ببینه و تا یه تعداد محدودی رو رزرو کنه.
از زمانی که رزرو شد پنج دقیقه فرصت داره پرداخت کنه که سفارش نهایی بشه وگرنه صندلی ها به حالت آزاد برمی گردن.
فرض کنید این ویژگی رو هم داریم که لیست صندلی های خالی با Polling آپدیت بشه، ولی همچنان کاربر موقعی که می خواد رزرو کنه باز سرور باید چک کنه که همه ى صندلی های انتخاب شده خالی باشن.
۱- تحليل تون از تعداد کاربر همزمان و RPS در زمان پیک برای همین کنسرت که در تهران قراره برگزار بشه چقدره؟
۲- توی راه حلتون چه اجزایی و چه تکنیکهایی استفاده می کنید؟ مثلا کش و دیتابیس و صف و ... اگر از تکنولوژی خاصی استفاده می کنید که کمک می کنه هم بگید.
۳- با توجه به اینکه لود همیشگی نیست و یه بار پیش میاد، چطوری می شه این معماری رو لود تست کرد تا مطمئن باشیم در روز موعود سیستم نمی افته. هرچی تست کامل تر باشه بهتر مثلا شامل این هم بشه که لود بالانسرها درست لود رو بتونن هندل کنن و gateway timeout ندیم. دیتابیس پر نشه و ...
۴- شاید در عمل دغدغه مهمی نباشه ولی چطور می شه برای زمان هایی که لود کمه، با کمترین تفییر، سیستم رو به حالتی رسوند که منابع کمتری مصرف کنه چون همیشه اون load رو نداریم. فرض کنید لود قابل پیش بینی هست و نیاز نیست خودکار scale بشه.
فرض کنید یه سایت فروش بلیت رو میخوایم طراحی کنیم که توانایی هندل کردن لود زیاد به شکل bursty رو داشته باشه، مثلاً سر ساعتی که فروش بلیط باز میشه.
فلوی رزرو هم به این صورته که هر کاربر می تونه نمایی از صندلی های پر و خالی رو ببینه و تا یه تعداد محدودی رو رزرو کنه.
از زمانی که رزرو شد پنج دقیقه فرصت داره پرداخت کنه که سفارش نهایی بشه وگرنه صندلی ها به حالت آزاد برمی گردن.
فرض کنید این ویژگی رو هم داریم که لیست صندلی های خالی با Polling آپدیت بشه، ولی همچنان کاربر موقعی که می خواد رزرو کنه باز سرور باید چک کنه که همه ى صندلی های انتخاب شده خالی باشن.
۱- تحليل تون از تعداد کاربر همزمان و RPS در زمان پیک برای همین کنسرت که در تهران قراره برگزار بشه چقدره؟
۲- توی راه حلتون چه اجزایی و چه تکنیکهایی استفاده می کنید؟ مثلا کش و دیتابیس و صف و ... اگر از تکنولوژی خاصی استفاده می کنید که کمک می کنه هم بگید.
۳- با توجه به اینکه لود همیشگی نیست و یه بار پیش میاد، چطوری می شه این معماری رو لود تست کرد تا مطمئن باشیم در روز موعود سیستم نمی افته. هرچی تست کامل تر باشه بهتر مثلا شامل این هم بشه که لود بالانسرها درست لود رو بتونن هندل کنن و gateway timeout ندیم. دیتابیس پر نشه و ...
۴- شاید در عمل دغدغه مهمی نباشه ولی چطور می شه برای زمان هایی که لود کمه، با کمترین تفییر، سیستم رو به حالتی رسوند که منابع کمتری مصرف کنه چون همیشه اون load رو نداریم. فرض کنید لود قابل پیش بینی هست و نیاز نیست خودکار scale بشه.
👍11❤3
تفاوت go routine ها در golang با ترد ها در جاوا
https://rcoh.me/posts/why-you-can-have-a-million-go-routines-but-only-1000-java-threads/
این هم مطلب خوبی بود:
https://softwareengineering.stackexchange.com/questions/222642/are-go-langs-goroutine-pools-just-green-threads
https://rcoh.me/posts/why-you-can-have-a-million-go-routines-but-only-1000-java-threads/
این هم مطلب خوبی بود:
https://softwareengineering.stackexchange.com/questions/222642/are-go-langs-goroutine-pools-just-green-threads
rcoh.me
Why you can have millions of Goroutines but only thousands of Java Threads
Many seasoned engineers working in JVM based languages have seen errors like this:
[error] (run-main-0) java.lang.OutOfMemoryError: unable to create native thread: [error] java.lang.OutOfMemoryError: unable to create native thread: [error] at java.base/j…
[error] (run-main-0) java.lang.OutOfMemoryError: unable to create native thread: [error] java.lang.OutOfMemoryError: unable to create native thread: [error] at java.base/j…
❤5👍2
یه سایت زیبا پیدا کردم که اموزشهای مقدماتی ولی خوبی از ابزارهای مختلف داره. اسم سایت codeapiئه و این آموزشها قسمت try x in y minutesش هستن.
برای مثال اموزش curl که با مقدمات http شروع میکنه و متدها و response codeها رو توضیح میده.
https://codapi.org/try/curl/
یا همچنین برای مقدمات sql در postgresql
https://codapi.org/try/postgres/
برای مثال اموزش curl که با مقدمات http شروع میکنه و متدها و response codeها رو توضیح میده.
https://codapi.org/try/curl/
یا همچنین برای مقدمات sql در postgresql
https://codapi.org/try/postgres/
codapi.org
Try curl in Y minutes
❤12🔥4👍2
نوشتههای ترمینالی
یه سایت زیبا پیدا کردم که اموزشهای مقدماتی ولی خوبی از ابزارهای مختلف داره. اسم سایت codeapiئه و این آموزشها قسمت try x in y minutesش هستن. برای مثال اموزش curl که با مقدمات http شروع میکنه و متدها و response codeها رو توضیح میده. https://codapi.org/try/curl/…
یه چیزی که تو کامنت ها راجع بهش صحبت شد و حس کردم میتونه یه پست جدا داشته باشه، فرمت کردن خروجی curl ئه.
ما خیلی وقت ها از حالت ساده curl استفاده میکنیم که نتیجه رو ببینیم ولی گاهی هم فقط یه سری اطلاعات خاص برامون مهمه مثلا فقط یه هدر خاص یا حتی latency
با آپشن write out که curl در اختیار ما قرار میده میتونیم یه خروجی formatted داشته باشیم، به این صورت که curl تمپلیتی که بهش دادیم رو پر میکنه.
آموزش مفصلش اینجاست:
https://everything.curl.dev/usingcurl/verbose/writeout.html
به عنوان نکنه تکمیلی، شاید به این برخورده باشید که بخواید curl -i بزنید (که هدرها و status رو چاپ میکنه و برا من خیلی کاربردیه) و در همون حال خروجی رو در یه کامند دیگه pipe کنید، در حالت عادی هر دو توی stdout. ریخته میشن که مطلوب نیست،
ولی با ترفندی که تو مطلب زیر یاد داده میشه گفت که اون خروجی جای دیباگ توی stderr ریخته بشن
مثال مشکل دار:
curl -i https://api.joind.in | jq
مثالی که مشکل رو حل میکنه:
curl -s -D "/dev/stderr" https://api.joind.in | jq
منبع:
https://akrabat.com/pretty-print-curl-i/
ما خیلی وقت ها از حالت ساده curl استفاده میکنیم که نتیجه رو ببینیم ولی گاهی هم فقط یه سری اطلاعات خاص برامون مهمه مثلا فقط یه هدر خاص یا حتی latency
با آپشن write out که curl در اختیار ما قرار میده میتونیم یه خروجی formatted داشته باشیم، به این صورت که curl تمپلیتی که بهش دادیم رو پر میکنه.
آموزش مفصلش اینجاست:
https://everything.curl.dev/usingcurl/verbose/writeout.html
به عنوان نکنه تکمیلی، شاید به این برخورده باشید که بخواید curl -i بزنید (که هدرها و status رو چاپ میکنه و برا من خیلی کاربردیه) و در همون حال خروجی رو در یه کامند دیگه pipe کنید، در حالت عادی هر دو توی stdout. ریخته میشن که مطلوب نیست،
ولی با ترفندی که تو مطلب زیر یاد داده میشه گفت که اون خروجی جای دیباگ توی stderr ریخته بشن
مثال مشکل دار:
curl -i https://api.joind.in | jq
مثالی که مشکل رو حل میکنه:
curl -s -D "/dev/stderr" https://api.joind.in | jq
منبع:
https://akrabat.com/pretty-print-curl-i/
everything.curl.dev
Write out - everything curl
everything there is to know about curl, libcurl and the cURL project
👍3👌3
Forwarded from مهندسی نرمافزار - Software Inside
#مطلب
Here’s how I use LLMs to help me write code
https://simonwillison.net/2025/Mar/11/using-llms-for-code/
با اومدن LLM ها و ابزارهایی مثل Cursor و Windsurf نحوهی کد زدن خیلی از مهندسان نرمافزار هم عوض شده و استفاده از این ابزارها به بخشی از کارهای روزمره تبدیل شده. از طرفی استفادهی درست از LLM ها به گونهای که بتونیم بهترین بهرهوری رو داشته باشیم کار سادهای نیست و نیاز به آزمون و خطا و تجربه کردن داره. مقالهی بالا به همین موضوع میپردازه و سعی میکنه به ما کمک کنه که چطوری بهتر از LLM ها توی کد زدن استفاده کنیم.
چندتا نکتهی کوتاه که جالب بود رو اینجا آوردم ولی پیشنهاد میکنم حتما مقالهی اصلی رو بخونید:
- هوش مصنوعی یه دستیار خوب و سریعه ولی با اعتماد به نفس بیش از اندازه:
با اینکه خیلی از چیزا رو درست میگه اما یکسری از چیزها رو هم با اعتماد به نفس کامل اشتباه میگه و ممکنه شما رو کلا گمراه کنه. اگر یک انسان اینکار رو انجام بده احتمالا شما اعتمادتون رو بهش از دست میدید و دیگه چیزی رو ازش نمیپرسید اما با هوش مصنوعی نباید مثل یه انسان برخورد کرد! در عوض بهتره نقاط قوت و ضعف مدلهای مختلف رو بشناسیم و یادبگیریم که چیا رو میتونن انجام بدن و توی چه چیزهایی خوب نیستن
- تاریخ cuttoff رو حتما مد نظر قرار بدید
تاریخ cutoff نشون میده اطلاعاتی که مدل روش آموزش دیده چقدر بروز بوده. برای مثال اگر cutoff یه مدلی 2023 باشه احتمالا تغییراتی که توی 2025 اتفاق افتاده رو نمیدونه یا بد عمل میکنه. البته با اومدن قابلیت tools و سرچ کردن این مشکل بهتر شده اما همچنان اگر مدل روی دادههای جدیدتر آموزش دیده باشه بهتر میتونه جواب بده. خوبه زمان cutoff مدلی که استفاده میکنید رو بدونید. برای همین هرچقدر از کتابخونههای معروفتر که توی اینترنت درموردشون دیتای بیشتری هست استفاده کنید احتمالا LLM ها بیشتر میتونن بهتون کمک کنن.
- کانتکست خیلی مهمه!
جواب مدلها خیلی خیلی وابسته به این هست که چه چیزی رو توی پیامهای قبلی براشون فرستادید. تمامی پیام هایی که بین شما و مدل رد و بدل میشه توی کانتکست مدل هست و اونا رو میدونه. برای همین خیلی مهمه که کانتکست خوبی بهش بدید. مثلا اگر میخواید یه کار بزرگی بهش بدید خوبه اول یه iteration کوچیک باهاش برید و بهش بگید کم کم پیچیدش کنه و قسمتهای مختلفش رو بزنه. اینطوری چون تمامی کدها و کانتکست قبلی رو داره میتونه بهتر جواب بده
- مدلهای زبانی برای prototype زدن و تست گرفتن ایدههای مختلف خیلی خوبن
- هنگام استفاده از مدلها توی کد پروداکشن محافظهکارتر باشید
توی کدهای پروداکشن بهتره دقیقا به LLM بگید چیمیخواید و با جزئیات براش توضیح بدید. کدهایی که LLM میزنه به نظر درست میاد، اسم متغیرها درسته اسم توابع به نظر درست میاد اما این نباید شما رو گول بزنه. حتما حتما باید کدهای LLM رو تست کنید و درستی یه کدی رو تا با چشمتون ندیدید باور نکنید. احتمال اینکه باگهای ریز توی جاهای مختلف باشه زیاده که به چشم نمیان. همچنین اگر تستها رو میدید که خود LLM بزنه خوبه خیلی دقیق کدهای تست رو بررسی کنید که چه چیزی رو دارن تست میکنن.
- آمادهی مداخلهی انسانی باشید!
مدلهای زبانی قرار نیست جای تجربه و شهود شما رو بگیرن. بزرگترین مزیت این مدلها سرعت زیادشون هست اما خیلی جاها باید آماده باشید که مداخله کنید و یه تغییراتی رو خودتون اعمال کنید. قرار نیست سر تا ته یه پروژه رو بدید LLM بزنه.
داخل مقاله کلی مثال و prompt و نکتهی باحال دیگه هم هست که من اینحا نیاوردم و پیشنهاد میکنم حتما مقالهی اصلی رو بخونید.
✴️ @software_inside - مهندسینرمافزار
Here’s how I use LLMs to help me write code
https://simonwillison.net/2025/Mar/11/using-llms-for-code/
با اومدن LLM ها و ابزارهایی مثل Cursor و Windsurf نحوهی کد زدن خیلی از مهندسان نرمافزار هم عوض شده و استفاده از این ابزارها به بخشی از کارهای روزمره تبدیل شده. از طرفی استفادهی درست از LLM ها به گونهای که بتونیم بهترین بهرهوری رو داشته باشیم کار سادهای نیست و نیاز به آزمون و خطا و تجربه کردن داره. مقالهی بالا به همین موضوع میپردازه و سعی میکنه به ما کمک کنه که چطوری بهتر از LLM ها توی کد زدن استفاده کنیم.
چندتا نکتهی کوتاه که جالب بود رو اینجا آوردم ولی پیشنهاد میکنم حتما مقالهی اصلی رو بخونید:
- هوش مصنوعی یه دستیار خوب و سریعه ولی با اعتماد به نفس بیش از اندازه:
با اینکه خیلی از چیزا رو درست میگه اما یکسری از چیزها رو هم با اعتماد به نفس کامل اشتباه میگه و ممکنه شما رو کلا گمراه کنه. اگر یک انسان اینکار رو انجام بده احتمالا شما اعتمادتون رو بهش از دست میدید و دیگه چیزی رو ازش نمیپرسید اما با هوش مصنوعی نباید مثل یه انسان برخورد کرد! در عوض بهتره نقاط قوت و ضعف مدلهای مختلف رو بشناسیم و یادبگیریم که چیا رو میتونن انجام بدن و توی چه چیزهایی خوب نیستن
- تاریخ cuttoff رو حتما مد نظر قرار بدید
تاریخ cutoff نشون میده اطلاعاتی که مدل روش آموزش دیده چقدر بروز بوده. برای مثال اگر cutoff یه مدلی 2023 باشه احتمالا تغییراتی که توی 2025 اتفاق افتاده رو نمیدونه یا بد عمل میکنه. البته با اومدن قابلیت tools و سرچ کردن این مشکل بهتر شده اما همچنان اگر مدل روی دادههای جدیدتر آموزش دیده باشه بهتر میتونه جواب بده. خوبه زمان cutoff مدلی که استفاده میکنید رو بدونید. برای همین هرچقدر از کتابخونههای معروفتر که توی اینترنت درموردشون دیتای بیشتری هست استفاده کنید احتمالا LLM ها بیشتر میتونن بهتون کمک کنن.
- کانتکست خیلی مهمه!
جواب مدلها خیلی خیلی وابسته به این هست که چه چیزی رو توی پیامهای قبلی براشون فرستادید. تمامی پیام هایی که بین شما و مدل رد و بدل میشه توی کانتکست مدل هست و اونا رو میدونه. برای همین خیلی مهمه که کانتکست خوبی بهش بدید. مثلا اگر میخواید یه کار بزرگی بهش بدید خوبه اول یه iteration کوچیک باهاش برید و بهش بگید کم کم پیچیدش کنه و قسمتهای مختلفش رو بزنه. اینطوری چون تمامی کدها و کانتکست قبلی رو داره میتونه بهتر جواب بده
- مدلهای زبانی برای prototype زدن و تست گرفتن ایدههای مختلف خیلی خوبن
- هنگام استفاده از مدلها توی کد پروداکشن محافظهکارتر باشید
توی کدهای پروداکشن بهتره دقیقا به LLM بگید چیمیخواید و با جزئیات براش توضیح بدید. کدهایی که LLM میزنه به نظر درست میاد، اسم متغیرها درسته اسم توابع به نظر درست میاد اما این نباید شما رو گول بزنه. حتما حتما باید کدهای LLM رو تست کنید و درستی یه کدی رو تا با چشمتون ندیدید باور نکنید. احتمال اینکه باگهای ریز توی جاهای مختلف باشه زیاده که به چشم نمیان. همچنین اگر تستها رو میدید که خود LLM بزنه خوبه خیلی دقیق کدهای تست رو بررسی کنید که چه چیزی رو دارن تست میکنن.
- آمادهی مداخلهی انسانی باشید!
مدلهای زبانی قرار نیست جای تجربه و شهود شما رو بگیرن. بزرگترین مزیت این مدلها سرعت زیادشون هست اما خیلی جاها باید آماده باشید که مداخله کنید و یه تغییراتی رو خودتون اعمال کنید. قرار نیست سر تا ته یه پروژه رو بدید LLM بزنه.
داخل مقاله کلی مثال و prompt و نکتهی باحال دیگه هم هست که من اینحا نیاوردم و پیشنهاد میکنم حتما مقالهی اصلی رو بخونید.
✴️ @software_inside - مهندسینرمافزار
Simon Willison’s Weblog
Here’s how I use LLMs to help me write code
Online discussions about using Large Language Models to help write code inevitably produce comments from developers who’s experiences have been disappointing. They often ask what they’re doing wrong—how come some …
👍5
شاید از کسایی که طرفدار emacs هستن اسم magit رو شنیده باشید. یه رابط کاربری خیلی خوب توی emacs برای کار با گیت هستش.
در خوب بودن اون که شکی نیست ولی اگه مثل من از emacs استفاده نمیکنید شاید gitu رو دوست داشته باشید. یه رابط کاربری تحت ترمینال برای کار با گیته که به نظرم ظاهر جذابی داشت و امکانات خوبی که داشت رو راحت در اختیار کاربر قرار میداد.
https://github.com/altsem/gitu
همچنین اگه به استفاده از گیت در یک برنامه ترمینالی علاقه دارید lazygit و gitui و tig هم شاید براتون جالب باشه.
در خوب بودن اون که شکی نیست ولی اگه مثل من از emacs استفاده نمیکنید شاید gitu رو دوست داشته باشید. یه رابط کاربری تحت ترمینال برای کار با گیته که به نظرم ظاهر جذابی داشت و امکانات خوبی که داشت رو راحت در اختیار کاربر قرار میداد.
https://github.com/altsem/gitu
همچنین اگه به استفاده از گیت در یک برنامه ترمینالی علاقه دارید lazygit و gitui و tig هم شاید براتون جالب باشه.
GitHub
GitHub - altsem/gitu: A TUI Git client inspired by Magit
A TUI Git client inspired by Magit. Contribute to altsem/gitu development by creating an account on GitHub.
👍6❤1
حتما این روزا اسم mcp رو شنیدید. اگه دوست دارید دقیقتر بدونید چی هستن
این مطلب کوتاه رو توصیه میکنم:
https://itsfoss.com/mcp-servers/
و البته منابعی که استفاده کرده رو هم نگاه بندازید. بلاگهای قویای هستن.
و اگه بیشتر علاقهمند شدین داکیومنتهای رایگان مایکروسافت برای آموزش mcp به نظر جالب بود:
https://github.com/microsoft/mcp-for-beginners
این مطلب کوتاه رو توصیه میکنم:
https://itsfoss.com/mcp-servers/
و البته منابعی که استفاده کرده رو هم نگاه بندازید. بلاگهای قویای هستن.
و اگه بیشتر علاقهمند شدین داکیومنتهای رایگان مایکروسافت برای آموزش mcp به نظر جالب بود:
https://github.com/microsoft/mcp-for-beginners
It's FOSS
What are MCP Servers and Why People are Crazy About It?
Everyone is going gaga over using MCP servers for their AI workflow. But exactly what it is and why it matters?
1👍9💯1