DevTwitter | توییت برنامه نویسی – Telegram
DevTwitter | توییت برنامه نویسی
23.6K subscribers
4.36K photos
358 videos
6 files
4.1K links
توییت های برنامه نویسی و طراحی وب :)

@dvtwi

Hashtags:
devtwitter.t.me/5

DevBooks Channel:
https://news.1rj.ru/str/+AYbOl75CLNYxY2U0

Github:
https://github.com/DevTwitter

X:
https://x.com/devtwittir
Download Telegram
کی از Git Rebase استفاده کنیم و کی از Git Merge؟

گاهی توی کار با Git با این سؤال مواجه می‌شیم که کی بهتره از rebase استفاده کنیم و کی merge؟ این موضوع می‌تونه روی خوانایی و ساختار تاریخچه پروژه تاثیر زیادی بذاره.

وقتی که می‌خوایم تاریخچه‌ای تمیز و خطی داشته باشیم، از git rebase استفاده می‌کنیم. مثلاً فرض کنید در حال کار روی یک شاخهٔ جانبی (feature) هستیم که از شاخهٔ "main" ساخته شده و در این مدت، تغییرات جدیدی در "main" رخ داده است. اگر از rebase استفاده کنیم، تغییرات شاخهٔ "feature" به گونه‌ای دوباره اعمال می‌شوند که انگار بعد از آخرین تغییرات شاخهٔ "main" انجام شده‌اند. این کار کمک می‌کنه که تاریخچه پروژه به شکلی خطی و ساده باقی بمونه و دیدن اینکه چه تغییراتی و به چه ترتیبی انجام شده، راحت‌تر باشه.

اما باید با git rebase با احتیاط رفتار کنیم، چون در صورت استفاده نادرست می‌تونه مشکلات جبران‌ناپذیری ایجاد کنه. به‌ویژه، زمانی که چند نفر به طور همزمان روی یک شاخه کار می‌کنند، استفاده از rebase می‌تونه منجر به سردرگمی و مشکلات ترکیب (merge conflict) بشه. بنابراین، بهتره زمانی از rebase استفاده کنیم که با نحوهٔ عملکرد دقیق اون آشنایی کافی داشته باشیم.

از طرف دیگه، وقتی که می‌خوایم دو شاخه رو با هم ترکیب کنیم و دوست داریم که تاریخچهٔ هر دو شاخه و تغییراتشون حفظ بشه، git merge بهترین انتخابه. این روش مخصوصاً زمانی مناسب هست که بخوایم مشارکت چندین توسعه‌دهنده و تاریخچه کارهای انجام شده روی هر شاخه رو حفظ کنیم. merge به ما این امکان رو می‌ده که به وضوح ببینیم که در چه زمانی دو شاخه با هم ادغام شده‌اند و هیچ تغییری از دست نرفته است.

در کل، هر دو دستور rebase و merge کاربردهای خاص خودشون رو دارن و بسته به نیاز پروژه و ساختار تیم باید انتخاب بشن. rebase برای تمیز نگه داشتن تاریخچه و merge برای ترکیب و حفظ شاخه‌های موازی به کار می‌ره. مهم اینه که هر کدوم رو با دقت و با توجه به نیازهای پروژه استفاده کنیم.

@DevTwitter | <Amirhisein Ahmadi/>
👍32👎6
امروز می‌خوام براتون درباره TCP صحبت کنم، یکی از پروتکل‌های کلیدی اینترنت که به‌طور روزمره باهاش سروکار داریم. TCP مثل یه پستچی مطمئن عمل می‌کنه و داده‌ها رو دقیق و به ترتیب به مقصد می‌رسونه.

پروتکل کنترل انتقال یا TCP چیه؟
پروتکل کنترل انتقال یا TCP یکی از مهم‌ترین پروتکل‌های ارتباطی هست که به داده‌ها اجازه می‌ده به‌صورت امن و مطمئن از یک سیستم به سیستم دیگه منتقل بشن. به خاطر اطمینان بالا، بیشتر اپلیکیشن‌ها مثل وب‌گردی، ایمیل و پیام‌رسان‌ها از TCP استفاده می‌کنن.

چطور ارتباط TCP برقرار می‌شه؟
برقراری ارتباط TCP یه فرآیند سه مرحله‌ای به اسم Three-Way Handshake داره:

مرحله اول SYN (Synchronize)
مثل این می‌مونه که یک طرف دستش رو برای دست دادن دراز کنه.
کلاینت بسته‌ای با فلگ SYN به سرور می‌فرسته که حاوی شماره ترتیب اولیه (ISN) هست. مثلاً ۱۰۰۰. این یعنی کلاینت می‌خواد ارتباط برقرار کنه.

مرحله دوم SYN-ACK (Synchronize Acknowledge)
سرور دست رو می‌گیره و فلگ‌های SYN و ACK رو تنظیم می‌کنه. شماره ترتیب کلاینت رو تایید می‌کنه (۱۰۰۱) و شماره ترتیب خودش رو (مثلاً ۵۰۰۰) می‌فرسته.

مرحله سوم ACK (Acknowledge)
کلاینت پاسخ می‌ده و فلگ ACK رو تنظیم می‌کنه. شماره ترتیب سرور رو به ۵۰۰۱ افزایش می‌ده. حالا ارتباط TCP برقرار شده و آماده تبادل داده‌ها هست.

سوالات متداول:

فلگ‌های SYN و ACK چی هستن؟
این فلگ‌ها به TCP کمک می‌کنن که ارتباط بین دو سیستم رو مدیریت کنه و مطمئن بشه که هر پیام به درستی دریافت شده.

چرا شماره ترتیب‌ها (ISN) مهم هستن؟
این شماره‌ها کمک می‌کنن تا پیام‌ها به ترتیب درست برسن و از گم شدن اطلاعات جلوگیری می‌کنه. همچنین با تصادفی بودنشون جلوی حملات امنیتی گرفته می‌شه.

آیا اینترنت به سمت جایگزینی TCP می‌ره؟
در HTTP/3 از پروتکل جدیدی به نام QUIC استفاده میشه که جای TCP رو می‌گیره، اما هنوز بیشتر وب‌سایت‌ها از TCP استفاده می‌کنن، پس فعلاً جایی نمی‌ره!

@DevTwitter | <Firoozeh Daeizadeh/>
1👍417👎1
کتاب Web Browser Engineering در مورد روش کار Browser ها و مفاهیم پایه
کمک خوبی است برای درک عمیق مفاهیم
browser.engineering/index.html

@DevTwitter | <MehrdadLinux/>
👍195🔥3
میدونستی یک Lib برای Python هست به اسم Art
که دو ایرانی الاصل به اسم
صدرا صبوری و سپند حقیقی ساختند که نوشته را تبدیل به گرافیک ASCII میکنه
غرب جوانان با استعداد ایران را خوب دستچین کرد و بالا کشید

pypi.org/project/art/

@DevTwitter | <teegra/>
🤣94👍3210🔥7
اگر از لاراول استفاده میکنید و دنبال پکیجی برای آنالیز کلیک کاربران هستید پکیج Pan این امکان رو به صورت لوکال ایجاد میکنه

https://github.com/panphp/pan

معرفی:
https://www.youtube.com/watch?v=hJJNi-Ri_3E

@DevTwitter | <Parsa Kafi/>
👍22🤣8🔥41
به تازگی یک سری دو قسمتی درباره Spring AI منتشر کردم! اگر به چگونگی ادغام قابلیت‌های هوش مصنوعی در Spring علاقه‌مندید، این مقالات را بررسی کنید:

قسمت اول:
https://hoomanamini.ir/blog/spring-ai-part1

قسمت دوم:
https://hoomanamini.ir/blog/spring-ai-part2

@DevTwitter | <Parsa Kafi/>
7🤣4👍3
چرا تو جاوا اسکریپت وقتی دوتا آبجکت با مقادیر یکسان رو باهم مقایسه میکنیم false برمیگرده؟

بهتره قبل از جواب به دوفهموم اشاره کرد:

1-مقادیر Primitive داده‌هایی هستند که مستقیماً در یک متغیر ذخیره می‌شوند. این مقادیر شامل اعداد، بولین‌ها، رشته‌ها، null و undefined می‌باشند


مقادیر Reference آبجکت‌هایی هستند که در حافظه ذخیره می‌شوند و از طریق یک Reference قابل دسترسی می‌باشند. این مقادیر شامل آرایه‌ها، آبجکت‌ها و توابع هستند.


خب جالا برسیم به سوال اصلی : وقتی دوتا آبجکت با مقادیر یکسان رو مقایسه میکنیم بهمون false برمیگردونه

علت اصلی این اتفاق این هستش که آبجکت ها Reference تایپ هستن , پس وقتی ما دوتا آبجکت رو باهم مقایسه ظاهر یا مقادیر اونها باهم مقایسه نمیشن , آدرس آنها مقایسه میشن

به عکس زیر توجه کنید , هر دوصورت مقایسه شده

@DevTwitter | <Kamyar Kamali/>
👍41🤣53👎2
#میم_شبانگاهی

فقط جاوا اسکریپت تا این حد انعطاف داره

@DevTwitter | <Amir/>
👍68🤣52👎3
اگر می‌خواید ماشین لرنینگ، تحلیل داده یا علوم داده رو شروع کنید، از مخزن زیر استفاده کنید! Awesome Public Datasets توی GitHub پر از داده‌های رایگان و عمومی هست که به موضوعاتی مثل سلامت، اقتصاد و علوم اجتماعی و ... می‌پردازه.
https://github.com/awesomedata/awesome-public-datasets

@DevTwitter | <Badass Analyst/>
🔥19👍9🤣4
This media is not supported in your browser
VIEW IN TELEGRAM
مایکروسافت یک فریمورک 1bit LLM inference داده به اسم bitnet.cpp. که باهاش میشه انواع مدلها مثلا یک ۱۰۰ میلیارد پارامتری را روی CPU و به صورت لوکال ران کرد. با سرعت 6x بیشتر و تا 82% مصرف انرژی کمتر، همه اینها بدون GPU!
https://github.com/microsoft/BitNet

@DevTwitter | <Mehdi Allahyari/>
👍43🔥13🤣3👎2
‏اگر با VSCode حال می‌کنین
یه نگاهی به Cursor بکنین
اینکه یه دستیار ai دارین که همه فایل هاتون رو میتونه بررسی کنه و بهتون کمک کنه جذابش کرده

@DevTwitter | <Ali Palvane/>
👎49👍246🤣1
اتفاقی پیش آمد که مجبور شدم پس از چند سال لینوکس‌ام را عوض کنم و دوباره خیلی از configهایی که داشتم را مجدد بازبینی کنم. از اونجایی که استفاده زیادی از cli داشتم رسیدم به جایگزین کردن ls.
بعد از استفاده از برنامه‌های مختلف، آخر LSDeluxe انتخاب کردم.
github.com/lsd-rs/lsd

یکی از ویژگی‌های برجسته‌ی این برنامه، سازگاری کامل آن با سوئیچ‌های ls است. علاوه بر این، به‌خوبی ساختار پوشه‌ها و فایل‌ها را تشخیص می‌دهد و آیکون‌های متناسب با هر کدام را نمایش می‌دهد. این برنامه قابلیت شخصی‌سازی گسترده‌ای دارد؛ به‌طوری که می‌توان با استفاده از فایل پیکربندی (config) تنظیمات موردنظر را برای هر بخش دلخواه اعمال کرد.

نکته‌ی جذاب‌تر این است که LSDeluxe از Theme پشتیبانی می‌کند، به این معنا که می‌توان برای آن رنگ و آیکون‌های اختصاصی تعریف کرد. همچنین، می‌توان برای برنامه‌های خاص مانند git یا هر نرم‌افزاری که نیاز دارید، پیکربندی‌های ویژه‌ای برای نمایش تنظیم کرد.

@DevTwitter | <Vahid Nameni/>
👍33👎3🤣3
برنامه نویس وب و طراح وب
دو مفهوم کاملا مجزا

@DevTwitter | <Amir/>
👍75🤣11👎53
This media is not supported in your browser
VIEW IN TELEGRAM
این ریپو تمام الگوریتم ها را با python پیاده سازی کرده. یک منبع عالی آموزشی برای یادگیری data structures و کلا الگوریتم.

https://github.com/TheAlgorithms/Python

@DevTwitter | <Mehdi Allahyari/>
🔥33👍8🤣1
توی توسعه دیتابیس، انتخاب نوع داده‌ها یکی از بخش‌های مهم و حساسه. امروز یه چیت شیت و از انواع ستونهای عددی و متنی در Laravel آوردم تا راحتتر تصمیم‌گیری کنیم که چه نوعِ داده‌ای، برای داده مدنظرمون کاربردی و مناسب‌تره

این چیت شیت برای کسانی که مثل من از حافظه کوتاه‌مدت رنج میبرن (دلیلی که باعث شد اصلا به فکر ساخت این چیت شیت بیوفتم)، میتونه بیشتر از بقیه دوستان مفید باشه

@DevTwitter | <Amir Asgary/>
52👍7🤣4
طلایی ترین لیست وبلاگ‌ها برنامه نویسان شرکت‌های بزرگ دنیا مثل Google و . . .
در این لیست افرادی که تجربه کار کردن در شرکت‌های بزرگ دارند اسم و لینکشون آورده شده

نفراول :
برنامه نویس شرکت TripAdvisor
هم مقالات فنی و هم مهارت نرم رو پوشش میده
https://dandreamsofcoding.com/

نفر دوم :
خالق الگوریتمی که در تمامی سیستم های recommender در شرکت بزرگ ازش استفاده میشه
https://lemire.me/blog/

نفر سوم :
از ایشون مگه بالاتر داریم ؟ CEO شرکت Stack overflow
https://www.joelonsoftware.com/

نفر چهارم :
مهندس نرمافزار گوگل و خالق چند تا از بزرگترین پروژه‌های Open Source جهان
https://latedev.wordpress.com/

نفر پنجم :
یک از تاثیر گذاران محبوبیت Linux
https://www.linux.org/forums/

نفر ششم :
برنامه نویس Google و نوسینده چند کتاب مشهور در دنیا
https://www.jeremykun.com/

نفر هفتم :
خالق Viaweb نوسینده بزرگ در حیطه برنامه نویسی
https://paulgraham.com/articles.html

نفر هقتم :
متخصص و Director شرکت Huawei
https://www.yegor256.com/

نفر هشتم :
یک متخصص به تمام معنا
https://prog21.dadgum.com/

نفر نهم :
نوسینده کتاب Clean Code
https://blog.cleancoder.com/

نفرم دهم :
مهندس گوگل
https://stevehanov.ca/blog/

نفرم یازدهم :
مهندس شرکت Uber
https://blog.pragmaticengineer.com/

@DevTwitter | <Soheib Kiani/>
26👍17🔥5
امروز ی مقاله جالبی درباره پترن API Composition می‌خوندم که میاد چندین سرویس بک اند رو در یک API مونولیثیک ادغام می‌کنه و این باعث بهبود دسترسی به داده، مدیریت پذیری و انعطاف پذیری کلاینت فراهم می کند.

در حالت سنتی کلاینت میاد چندین سرویس رو به طور مستقل صدا میزنه که این باعث ایجاد تاخیر و نیاز به مدیریت خطا در کلاینت... میشه و مشکلات خاص خودش رو داره.

پترن API Composition وقتی نیازه که می خواهید داده های مختلف رو از سرویس های مختلف رو جمع کنید و با ترکیب API ها به یک Endpoint واحد چالش رو حل کنید.

از مزیت های این پترن:
افزایش قابلیت کشف و ثبات قابلیت‌ها
جداسازی تولیدکنندگان و مصرف‌کنندگان داده
هماهنگ‌سازی متمرکز
توسعه سریع و استفاده مجدد از قابلیت‌ها

@DevTwitter | <Mohammad Abdorrahmani/>
👍22🔥31
‏یه سایت پیدا کردم واسه یادگیری مقدماتی لینوکس، چقد شیوا و قشنگ توضیح داده.
ببینم چقدش میتونم بخونم
Linuxlearning.ir

@DevTwitter | <Poriya/>
👍46👎132
محصولات ناموجود سایت وردپرسی خودتو ببر انتهای لیست محصولات که کاربر تجربه بهتری داشته باشه
کد انجام ان کار:
https://gist.github.com/m4tinbeigi-official/b2c68c71d616fc42dffb52c1c78ba8f1

@DevTwitter | <Rick Sanchez/>
🤣38👍164
خب باز من بیکار شدم و یه SMTP client برای Python نوشتم
دوست داشتید ببینید و بهترش کنید :))
https://github.com/alisharify7/py-smtper

@DevTwitter | <Ali-Sharify/>
👍20🤣3👎2