🔵 عنوان مقاله
What's //go:nosplit For?
🟢 خلاصه مقاله:
زبان برنامهنویسی Go ویژگیهایی دارد که به توسعهدهندگان اجازه میدهد با استفاده از دستورالعملهای محور به نظر، جنبههای مختلفی از اجرای کد خود را تنظیم کنند. یکی از این دستورالعملها "nosplit" است که از تقسیم پشته در توابع مشخص شده جلوگیری میکند و میتواند در سناریوهای خاص، عملکرد بهتری ارائه دهد؛ اما ممکن است منجر به خطاهای اجرایی یا قفل شدن زمانبندی شود. درک صحیح و استفاده از این دستورالعملها میتواند کنترل قابل توجهی بر عملکرد برنامههای Go ارائه دهد.
🟣لینک مقاله:
https://golangweekly.com/link/171543/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
What's //go:nosplit For?
🟢 خلاصه مقاله:
زبان برنامهنویسی Go ویژگیهایی دارد که به توسعهدهندگان اجازه میدهد با استفاده از دستورالعملهای محور به نظر، جنبههای مختلفی از اجرای کد خود را تنظیم کنند. یکی از این دستورالعملها "nosplit" است که از تقسیم پشته در توابع مشخص شده جلوگیری میکند و میتواند در سناریوهای خاص، عملکرد بهتری ارائه دهد؛ اما ممکن است منجر به خطاهای اجرایی یا قفل شدن زمانبندی شود. درک صحیح و استفاده از این دستورالعملها میتواند کنترل قابل توجهی بر عملکرد برنامههای Go ارائه دهد.
🟣لینک مقاله:
https://golangweekly.com/link/171543/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
mcyoung.xyz
What's //go:nosplit for? · mcyoung
🔥2
🔵 عنوان مقاله
Effortless Go Contract Testing: Inferred Automatically From Traffic
🟢 خلاصه مقاله:
مقالهای که مورد بررسی قرار گرفته، به اهمیت بهروزرسانی و انعطافپذیری قراردادها برای APIها در زمینههای فناوری میپردازد. روشهای سنتی تنظیم دستی قراردادها اغلب باعث ایجاد توافقنامههای شکنندهای میشود که با تغییرات APIها سازگار نیست. در این مقاله، روشی نوآورانه معرفی میشود که در آن قراردادها میتوانند از ترافیک واقعی API بهطور خودکار استنباط و بهروزرسانی شوند. این روش که با استفاده از دادههای واقعی ترافیک تولید میشود، باعث میشود که قراردادها دقیقاً با وضعیت فعلی APIها همخوانی داشته باشند و به نیازهای جدید بهطور موثر پاسخ دهند.
🟣لینک مقاله:
https://golangweekly.com/link/171560/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
Effortless Go Contract Testing: Inferred Automatically From Traffic
🟢 خلاصه مقاله:
مقالهای که مورد بررسی قرار گرفته، به اهمیت بهروزرسانی و انعطافپذیری قراردادها برای APIها در زمینههای فناوری میپردازد. روشهای سنتی تنظیم دستی قراردادها اغلب باعث ایجاد توافقنامههای شکنندهای میشود که با تغییرات APIها سازگار نیست. در این مقاله، روشی نوآورانه معرفی میشود که در آن قراردادها میتوانند از ترافیک واقعی API بهطور خودکار استنباط و بهروزرسانی شوند. این روش که با استفاده از دادههای واقعی ترافیک تولید میشود، باعث میشود که قراردادها دقیقاً با وضعیت فعلی APIها همخوانی داشته باشند و به نیازهای جدید بهطور موثر پاسخ دهند.
🟣لینک مقاله:
https://golangweekly.com/link/171560/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
Signadot
Let Systems Do the Work: A New Approach to Contract Testing
A smarter, low-maintenance approach to contract testing that catches real API issues before they hit production.
چجوری یه فریمورک ماژولار برای بالا آوردن سرویسهای بکاند طراحی کردم؟
من توی پست قبلیم اشاره کردم که یه فریمورکی برای زبان Golang نوشتم که به توسعهدهندهها کمک میکنه که سرویسهای بکاندشون رو توی چند ثانیه بالا بیارن.
خواستم بیشتر درباره معماریش و طراحی این فریمورک صحبت کنم.
خب اول از همه مشکلی که میخواستم با ساخت این فریمورک حل کنم این بود که تقریبا هر سری پروژههایی که میساختم یه سری کارهای تکراری داشت مثل:
راهاندازی HTTP Server
ساخت connectionهای دیتابیس
نوشتن دستی routeها
پیادهسازی CRUD برای هر entity
پیادهسازی Pagination و filter و sort
چون به نظرم میومد که این مراحل اکثراً ثابت هستن، خواستم یه جورایی این مراحل رو حذف کنم. با توجه به این مسئله، سعی کردم که یه طراحی ماژولار واسه این فریمورک در نظر بگیرم.
اولین بخش core :
همونطور که از اسمش معلومه، هسته مرکزی برنامهست و عملاً لایفسایکل برنامه رو مدیریت میکنه.
توابعی که برای رجیستر کردن HTTP Server و دیتابیس و entityها هستن، در واقع توی این بخش قرار دارن.
بعد از اون ماژول crud:
ماژولیه که handlerها و routeهامون رو داخلش تعریف شده. handlerها، همون handlerهای ثابتی هستن که برای هر entity داره تعریف میشه.
موارد مختلفی مثل اینکه چجوری باید با query parameterها رفتار بشه و hook های قبل و بعد از عملیات CRUD هم اینجا تعریف شدن.
رجیستر شدن routeها هم داخل routes داره اتفاق میافته.
سومین بخش ماژول HTTP هستش که دو تا اینترفیس اصلی داره:
یکی برای مدیریت کردن contextها
یکی برای مدیریت کردن خود HTTP Server (initialize کردن، رجیستر کردن routeها، استفاده از middlewareها، و در نهایت start کردن HTTP Server) که اگه بخوایم از HTTP Server استفاده کنیم، باید این اینترفیسها پیادهسازی شده باشن.
مورد چهارم database :
این بخش هم یه اینترفیس اصلی داره برای انجام عملیات CRUD.
هر دیتابیسی بخوایم استفاده کنیم، باید این اینترفیس رو پیادهسازی کرده باشه حتماً.
ماژول آخر هم hooks در نظر گرفتم.
شامل اینترفیسهایی میشه که قبل و بعد یه عملیات رو تعریف میکنن.
برای مثال:
اگه میخواید یه ولیدیشن روی یکی از فیلدهاتون قبل از ایجاد شدنش توی دیتابیس داشته باشید، برای همون entityتون اینترفیس BeforeCreate رو پیادهسازی میکنید و این ولیدیشن قبل از insert شدن انجام میشه.
سعی کردم خیلی خلاصه توضیح بدم. خوشحال میشم نظرتون رو درباره این معماری بدونم و اگر دوست داشتید یه سر به گیتهاب پروژه بزنید:
https://github.com/Lumicrate/gompose
<Iman Asgari/>
من توی پست قبلیم اشاره کردم که یه فریمورکی برای زبان Golang نوشتم که به توسعهدهندهها کمک میکنه که سرویسهای بکاندشون رو توی چند ثانیه بالا بیارن.
خواستم بیشتر درباره معماریش و طراحی این فریمورک صحبت کنم.
خب اول از همه مشکلی که میخواستم با ساخت این فریمورک حل کنم این بود که تقریبا هر سری پروژههایی که میساختم یه سری کارهای تکراری داشت مثل:
راهاندازی HTTP Server
ساخت connectionهای دیتابیس
نوشتن دستی routeها
پیادهسازی CRUD برای هر entity
پیادهسازی Pagination و filter و sort
چون به نظرم میومد که این مراحل اکثراً ثابت هستن، خواستم یه جورایی این مراحل رو حذف کنم. با توجه به این مسئله، سعی کردم که یه طراحی ماژولار واسه این فریمورک در نظر بگیرم.
اولین بخش core :
همونطور که از اسمش معلومه، هسته مرکزی برنامهست و عملاً لایفسایکل برنامه رو مدیریت میکنه.
توابعی که برای رجیستر کردن HTTP Server و دیتابیس و entityها هستن، در واقع توی این بخش قرار دارن.
بعد از اون ماژول crud:
ماژولیه که handlerها و routeهامون رو داخلش تعریف شده. handlerها، همون handlerهای ثابتی هستن که برای هر entity داره تعریف میشه.
موارد مختلفی مثل اینکه چجوری باید با query parameterها رفتار بشه و hook های قبل و بعد از عملیات CRUD هم اینجا تعریف شدن.
رجیستر شدن routeها هم داخل routes داره اتفاق میافته.
سومین بخش ماژول HTTP هستش که دو تا اینترفیس اصلی داره:
یکی برای مدیریت کردن contextها
یکی برای مدیریت کردن خود HTTP Server (initialize کردن، رجیستر کردن routeها، استفاده از middlewareها، و در نهایت start کردن HTTP Server) که اگه بخوایم از HTTP Server استفاده کنیم، باید این اینترفیسها پیادهسازی شده باشن.
مورد چهارم database :
این بخش هم یه اینترفیس اصلی داره برای انجام عملیات CRUD.
هر دیتابیسی بخوایم استفاده کنیم، باید این اینترفیس رو پیادهسازی کرده باشه حتماً.
ماژول آخر هم hooks در نظر گرفتم.
شامل اینترفیسهایی میشه که قبل و بعد یه عملیات رو تعریف میکنن.
برای مثال:
اگه میخواید یه ولیدیشن روی یکی از فیلدهاتون قبل از ایجاد شدنش توی دیتابیس داشته باشید، برای همون entityتون اینترفیس BeforeCreate رو پیادهسازی میکنید و این ولیدیشن قبل از insert شدن انجام میشه.
سعی کردم خیلی خلاصه توضیح بدم. خوشحال میشم نظرتون رو درباره این معماری بدونم و اگر دوست داشتید یه سر به گیتهاب پروژه بزنید:
https://github.com/Lumicrate/gompose
<Iman Asgari/>
👍4❤1🔥1🍾1 1
🔵 عنوان مقاله
Generic Interfaces
🟢 خلاصه مقاله:
در این مقاله، اکسل ایدهای که رابطها مانند سایر انواع، میتوانند پارامترهای نوع داشته باشند را مطرح میکند. او نشان میدهد که چگونه این امر به نوشتن یک پیادهسازی اصلی درخت جستجوی دودویی کمک میکند که میتواند مقایسههای داخلی، مبتنی بر کالبک یا متد را پشتیبانی کند. اکسل در ادامه به مفاهیم عمیقتری میپردازد و نشان میدهد که چگونه این رویکرد میتواند توسعه نرمافزار را بهبود بخشد.
🟣لینک مقاله:
https://golangweekly.com/link/171544/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
Generic Interfaces
🟢 خلاصه مقاله:
در این مقاله، اکسل ایدهای که رابطها مانند سایر انواع، میتوانند پارامترهای نوع داشته باشند را مطرح میکند. او نشان میدهد که چگونه این امر به نوشتن یک پیادهسازی اصلی درخت جستجوی دودویی کمک میکند که میتواند مقایسههای داخلی، مبتنی بر کالبک یا متد را پشتیبانی کند. اکسل در ادامه به مفاهیم عمیقتری میپردازد و نشان میدهد که چگونه این رویکرد میتواند توسعه نرمافزار را بهبود بخشد.
🟣لینک مقاله:
https://golangweekly.com/link/171544/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
go.dev
Generic interfaces - The Go Programming Language
Adding type parameters to interface types is surprisingly powerful
❤1
🔵 عنوان مقاله
Serving 200 Million Requests Per Day with cgi-bin
🟢 خلاصه مقاله:
در ابتدای تاریخچه وب، روش CGI به عنوان یکی از روشهای اصلی برای ایجاد محتوای پویا استفاده میشد که در آن، درخواستهای HTTP یک فرایند در پشتصحنه سرور را فعال میکردند و نتیجه را برمیگرداندند. با پیشرفت وب، جایگاه CGI توسط برنامههای دائمیالاجرا که بدون قطع و وصل شدن به فرایندها پاسخ به درخواستها را مدیریت میکنند، تغییر کرد. با این حال، با توجه به افزایش سرعت زبانهای برنامهنویسی مانند Go، مطرح میشود که آیا CGI میتواند دوباره مورد استفاده قرار گیرد. به رغم بهبود سرعت در اجرای فرایندها، استفاده مجدد از CGI در عصر فناوریهای پیشرفتهتر ممکن است کاربردی نباشد زیرا نیازهای نوین وباپلیکیشنها با تکنولوژیهای جدید بهتر پاسخ داده میشوند.
🟣لینک مقاله:
https://golangweekly.com/link/171549/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
Serving 200 Million Requests Per Day with cgi-bin
🟢 خلاصه مقاله:
در ابتدای تاریخچه وب، روش CGI به عنوان یکی از روشهای اصلی برای ایجاد محتوای پویا استفاده میشد که در آن، درخواستهای HTTP یک فرایند در پشتصحنه سرور را فعال میکردند و نتیجه را برمیگرداندند. با پیشرفت وب، جایگاه CGI توسط برنامههای دائمیالاجرا که بدون قطع و وصل شدن به فرایندها پاسخ به درخواستها را مدیریت میکنند، تغییر کرد. با این حال، با توجه به افزایش سرعت زبانهای برنامهنویسی مانند Go، مطرح میشود که آیا CGI میتواند دوباره مورد استفاده قرار گیرد. به رغم بهبود سرعت در اجرای فرایندها، استفاده مجدد از CGI در عصر فناوریهای پیشرفتهتر ممکن است کاربردی نباشد زیرا نیازهای نوین وباپلیکیشنها با تکنولوژیهای جدید بهتر پاسخ داده میشوند.
🟣لینک مقاله:
https://golangweekly.com/link/171549/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
Jake Gold
Serving 200 million requests per day with a cgi-bin
In the early 2000s, we used to write a lot of CGI programs.
This was the primary way to make websites dynamic at the time. These CGI programs were usually written in Perl, but sometimes in C to increase performance.
The CGI mechanism is conceptually simple…
This was the primary way to make websites dynamic at the time. These CGI programs were usually written in Perl, but sometimes in C to increase performance.
The CGI mechanism is conceptually simple…
🔥1🕊1
Forwarded from Software Engineer Labdon
جی آی تی JIT یعنی چی؟
در اصل JIT مخفف Just-In-Time compilation هست، یعنی کامپایل همزمان با اجرا. این تکنیک باعث میشه که کدهایی که به صورت معمول تفسیر (interpret) میشن (مثل PHP یا JavaScript)، در زمان اجرا به کد ماشین تبدیل بشن، و این یعنی اجراشون خیلی سریعتر بشه.
مزایای JIT
- سرعت اجرای بهتر
- کاهش مصرف منابع در برخی سناریوها
- عملکرد نزدیکتر به زبانهای کامپایلشده (مثل C)
کار JIT در PHP چیه؟
در PHP 8 به بعد، Zend Engine دارای یک JIT Compiler شد. قبل از اون، PHP فقط تفسیر میکرد.
کار JIT باعث میشه:
بخشهایی از کد که زیاد استفاده میشن (مثلاً حلقهها یا توابع پرتکرار)، به کد ماشین واقعی تبدیل بشن.
این باعث افزایش سرعت اجرای برنامهها میشه، مخصوصاً در کارهای محاسباتی سنگین مثل:
- پردازش تصویر
- بازیسازی
- پروژههای علمی
- کدهایی که زیاد اجرا میشن مثل فریمورکها یا CMSها
<Milwad Khosravi/>
در اصل JIT مخفف Just-In-Time compilation هست، یعنی کامپایل همزمان با اجرا. این تکنیک باعث میشه که کدهایی که به صورت معمول تفسیر (interpret) میشن (مثل PHP یا JavaScript)، در زمان اجرا به کد ماشین تبدیل بشن، و این یعنی اجراشون خیلی سریعتر بشه.
مزایای JIT
- سرعت اجرای بهتر
- کاهش مصرف منابع در برخی سناریوها
- عملکرد نزدیکتر به زبانهای کامپایلشده (مثل C)
کار JIT در PHP چیه؟
در PHP 8 به بعد، Zend Engine دارای یک JIT Compiler شد. قبل از اون، PHP فقط تفسیر میکرد.
کار JIT باعث میشه:
بخشهایی از کد که زیاد استفاده میشن (مثلاً حلقهها یا توابع پرتکرار)، به کد ماشین واقعی تبدیل بشن.
این باعث افزایش سرعت اجرای برنامهها میشه، مخصوصاً در کارهای محاسباتی سنگین مثل:
- پردازش تصویر
- بازیسازی
- پروژههای علمی
- کدهایی که زیاد اجرا میشن مثل فریمورکها یا CMSها
<Milwad Khosravi/>
❤3
Forwarded from AI Labdon
پایان کدنویسی سنتی؛ ۲ ابزار هوش مصنوعی که توسعه را از چند روز به چند ساعت میرسانند
شرکت *پرپلکسیتی* استفاده از ابزارهای کدنویسی هوش مصنوعی مانند *گیتهاب کوپایلت* و *Cursor* را برای تمام مهندسانش اجباری کرد. آراویند سرینیواسان، مدیرعامل این شرکت، اعلام کرد که این ابزارها زمان توسعه و نمونهسازی را از چند روز به کمتر از یک ساعت کاهش دادهاند.
این تحول تنها به پرپلکسیتی محدود نیست؛ شرکتهای بزرگی مانند ویزا و ردیت نیز اکنون در آگهیهای استخدامی خود، آشنایی با این ابزارها را الزامی میدانند. نظرسنجیها نشان میدهد ۹۰ درصد تیمهای توسعه از هوش مصنوعی استفاده میکنند که نسبت به سال گذشته افزایش چشمگیری داشته است.
البته این فناوری بینقص نیست و گاهی باعث ایجاد باگهای جدید میشود، اما مزیت سرعت همچنان بر این چالشها برتری دارد.
#هوش_مصنوعی #برنامه_نویسی
💡 تحول دنیای برنامهنویسی را در زومیت بخوانید
شرکت *پرپلکسیتی* استفاده از ابزارهای کدنویسی هوش مصنوعی مانند *گیتهاب کوپایلت* و *Cursor* را برای تمام مهندسانش اجباری کرد. آراویند سرینیواسان، مدیرعامل این شرکت، اعلام کرد که این ابزارها زمان توسعه و نمونهسازی را از چند روز به کمتر از یک ساعت کاهش دادهاند.
این تحول تنها به پرپلکسیتی محدود نیست؛ شرکتهای بزرگی مانند ویزا و ردیت نیز اکنون در آگهیهای استخدامی خود، آشنایی با این ابزارها را الزامی میدانند. نظرسنجیها نشان میدهد ۹۰ درصد تیمهای توسعه از هوش مصنوعی استفاده میکنند که نسبت به سال گذشته افزایش چشمگیری داشته است.
البته این فناوری بینقص نیست و گاهی باعث ایجاد باگهای جدید میشود، اما مزیت سرعت همچنان بر این چالشها برتری دارد.
#هوش_مصنوعی #برنامه_نویسی
💡 تحول دنیای برنامهنویسی را در زومیت بخوانید
زومیت
انقلاب در کدنویسی؛ ۲ ابزاری که زمان توسعه را از چند روز به چند ساعت کاهش میدهند
وقتی کدنویسی از چند روز به چند ساعت کاهش پیدا کند، چه چیزی در پشت صحنه درحال رخ دادن است؟
❤5
بیشترین سوالات مصاحبه String + Array
String-Based Questions
1. Reverse a string — without using built-ins.
2. Is it a palindrome? Let's find out.
3. Remove duplicates from a string — efficiently.
4. First non-repeating character — who stands alone?
5. Count how many times each character appears.
6. Flip the words in a sentence, not the letters.
7. Are two strings anagrams? Prove it.
8. Longest substring without repeats — sliding window style.
9. Build your own atoi — string to integer.
10. Compress strings with run-length encoding.
11. Most frequent character — who dominates?
12. List all possible substrings of a string.
13. Is one string a rotation of another?
14. Strip all white spaces from a string.
15. Is this a valid shuffle of two strings?
16. Convert text to Title Case — properly.
17. Find the longest common prefix among words.
18. Break a string into a char array — without confusion.
19. Replace spaces with %20 — classic URL trick.
20. Turn full sentences into acronyms.
21. Check if the string is all digits — no alphabets allowed.
22. Count how many words are in the string.
23. Remove a specific character — cleanly.
24. Find the shortest word in a sentence.
25. Longest palindromic substring — two-pointer style.
Array-Based Questions
26. Reverse an array in-place.
27. Find the largest and smallest element.
28. Check for duplicates in an array.
29. Remove duplicates — return only unique values.
30. Find the missing number from 1 to N.
31. Move all zeros to the end — keep order.
32. Rotate the array left/right by K positions.
33. Find the Kth largest/smallest element.
34. Merge two sorted arrays — without using extra space.
35. Find the intersection of two arrays.
36. Sort 0s, 1s, and 2s without using sort().
37. Find subarrays with a given sum.
38. Detect if a subarray sums to 0.
39. Find the longest increasing subsequence.
40. Kadane’s Algorithm — maximum subarray sum.
41. Check if array is sorted and rotated.
42. Rearrange array in max-min order alternately.
43. Find leaders in an array (no greater element to the right).
44. Calculate frequency of all elements in O(n).
45. Product of all elements except self.
#تجربه
webinar_farsi
String-Based Questions
1. Reverse a string — without using built-ins.
2. Is it a palindrome? Let's find out.
3. Remove duplicates from a string — efficiently.
4. First non-repeating character — who stands alone?
5. Count how many times each character appears.
6. Flip the words in a sentence, not the letters.
7. Are two strings anagrams? Prove it.
8. Longest substring without repeats — sliding window style.
9. Build your own atoi — string to integer.
10. Compress strings with run-length encoding.
11. Most frequent character — who dominates?
12. List all possible substrings of a string.
13. Is one string a rotation of another?
14. Strip all white spaces from a string.
15. Is this a valid shuffle of two strings?
16. Convert text to Title Case — properly.
17. Find the longest common prefix among words.
18. Break a string into a char array — without confusion.
19. Replace spaces with %20 — classic URL trick.
20. Turn full sentences into acronyms.
21. Check if the string is all digits — no alphabets allowed.
22. Count how many words are in the string.
23. Remove a specific character — cleanly.
24. Find the shortest word in a sentence.
25. Longest palindromic substring — two-pointer style.
Array-Based Questions
26. Reverse an array in-place.
27. Find the largest and smallest element.
28. Check for duplicates in an array.
29. Remove duplicates — return only unique values.
30. Find the missing number from 1 to N.
31. Move all zeros to the end — keep order.
32. Rotate the array left/right by K positions.
33. Find the Kth largest/smallest element.
34. Merge two sorted arrays — without using extra space.
35. Find the intersection of two arrays.
36. Sort 0s, 1s, and 2s without using sort().
37. Find subarrays with a given sum.
38. Detect if a subarray sums to 0.
39. Find the longest increasing subsequence.
40. Kadane’s Algorithm — maximum subarray sum.
41. Check if array is sorted and rotated.
42. Rearrange array in max-min order alternately.
43. Find leaders in an array (no greater element to the right).
44. Calculate frequency of all elements in O(n).
45. Product of all elements except self.
#تجربه
webinar_farsi
❤6
Forwarded from Database Labdon
🔵 عنوان مقاله
1. Life Altering Postgres Patterns
🟢 خلاصه مقاله:
مقالهای که بررسی شده حاوی دوازده نکته و بینش کلیدی است که نویسنده از تجربیات واقعی خود در زمینه برنامهنویسی و مدیریت پایگاه داده به دست آورده است. این نکات شامل استفاده از UUID به عنوان کلیدهای اصلی، نحوه نامگذاری جداول، استفاده از اسکیماها و دیدگاهها (views) میباشد. نویسنده تاکید دارد که این توصیهها بر پایه تجربیات سخت و عملی او شکل گرفتهاند و میتوانند به عنوان راهنمایی مفید برای توسعهدهندگان نرمافزار عمل کنند. این مقاله نه تنها نکات تخصصی و فنی مرتبط با مسائل فناوری اطلاعات را پوشش میدهد، بلکه به چگونگی بهینهسازی کار با پایگاه دادهها و افزایش کارایی در زمینه برنامهنویسی نیز میپردازد. این راهنماییها برای هر توسعهدهندهای که به دنبال بهبود مهارتهای خود در این زمینه است، ارزشمند است.
🟣لینک مقاله:
https://postgresweekly.com/link/171599/web
➖➖➖➖➖➖➖➖
👑 @Database_Academy
1. Life Altering Postgres Patterns
🟢 خلاصه مقاله:
مقالهای که بررسی شده حاوی دوازده نکته و بینش کلیدی است که نویسنده از تجربیات واقعی خود در زمینه برنامهنویسی و مدیریت پایگاه داده به دست آورده است. این نکات شامل استفاده از UUID به عنوان کلیدهای اصلی، نحوه نامگذاری جداول، استفاده از اسکیماها و دیدگاهها (views) میباشد. نویسنده تاکید دارد که این توصیهها بر پایه تجربیات سخت و عملی او شکل گرفتهاند و میتوانند به عنوان راهنمایی مفید برای توسعهدهندگان نرمافزار عمل کنند. این مقاله نه تنها نکات تخصصی و فنی مرتبط با مسائل فناوری اطلاعات را پوشش میدهد، بلکه به چگونگی بهینهسازی کار با پایگاه دادهها و افزایش کارایی در زمینه برنامهنویسی نیز میپردازد. این راهنماییها برای هر توسعهدهندهای که به دنبال بهبود مهارتهای خود در این زمینه است، ارزشمند است.
🟣لینک مقاله:
https://postgresweekly.com/link/171599/web
➖➖➖➖➖➖➖➖
👑 @Database_Academy
❤2
Forwarded from omid trade 360
🔵 عنوان مقاله
Aave TVL 50% greater than Revolut's (1 minute read)
🟢 خلاصه مقاله:
مقاله حاضر، به بررسی و مقایسه Aave و Revolut میپردازد که دو سازمان مالی در عرصههای متفاوت هستند. Aave، یک پلتفرم وام دهی غیرمتمرکز است که بر بستر بلاکچین فعالیت میکند، در حالی که Revolut یک شرکت فناوری مالی است که خدمات بانکی و تبدیل ارز را ارائه میدهد. بر اساس این مقاله، میزان کل ارزش قفلشده (TVL) در Aave، تقریباً 50 درصد بیشتر از داراییهای تحت مدیریت (AUM) در Revolut است. این تفاوت عمده ارزش نشاندهنده پذیرش گستردهتر و اعتماد بیشتر به پلتفرمهای مالی بلاکچین مانند Aave در مقابل روشهای سنتیتر مدیریت دارایی است که توسط شرکتهایی مانند Revolut انجام میشود. این خلاصه برجسته کردن این تفاوت اساسی میان دو مدل تجاری و نقش تکنولوژیهای نوین در تحول عرصه مالی را در بر دارد.
🟣لینک مقاله:
https://threadreaderapp.com/thread/1931735079098921341.html?utm_source=tldrcrypto
➖➖➖➖➖➖➖➖
👑 @omidtrade360
Aave TVL 50% greater than Revolut's (1 minute read)
🟢 خلاصه مقاله:
مقاله حاضر، به بررسی و مقایسه Aave و Revolut میپردازد که دو سازمان مالی در عرصههای متفاوت هستند. Aave، یک پلتفرم وام دهی غیرمتمرکز است که بر بستر بلاکچین فعالیت میکند، در حالی که Revolut یک شرکت فناوری مالی است که خدمات بانکی و تبدیل ارز را ارائه میدهد. بر اساس این مقاله، میزان کل ارزش قفلشده (TVL) در Aave، تقریباً 50 درصد بیشتر از داراییهای تحت مدیریت (AUM) در Revolut است. این تفاوت عمده ارزش نشاندهنده پذیرش گستردهتر و اعتماد بیشتر به پلتفرمهای مالی بلاکچین مانند Aave در مقابل روشهای سنتیتر مدیریت دارایی است که توسط شرکتهایی مانند Revolut انجام میشود. این خلاصه برجسته کردن این تفاوت اساسی میان دو مدل تجاری و نقش تکنولوژیهای نوین در تحول عرصه مالی را در بر دارد.
🟣لینک مقاله:
https://threadreaderapp.com/thread/1931735079098921341.html?utm_source=tldrcrypto
➖➖➖➖➖➖➖➖
👑 @omidtrade360
Threadreaderapp
Thread by @lemiscate on Thread Reader App
@lemiscate: People are largely unaware that the AAVE TVL is approximately 50% larger than Revolut’s AUM. (According to their 2024 annual report) Current active loan size of Aave is also larger than all Revolut savin...…
Forwarded from Linux Labdon
من از ابزارهایی که ساده هستند، بیشتر استقبال میکنم. ابزارهایی مثل insomnia و Postman گاهی اوقات برای استفاده من که اغلب امنیتی هست overkill است. گاهی حتی با curl کارم راه میافتد.
ابزار http://voiden.md را امروز دیدم و سبک متفاوتی دارد.
شاید آزمایش آن ایده بدی نباشد.
<VAHID NAMENI/>
ابزار http://voiden.md را امروز دیدم و سبک متفاوتی دارد.
شاید آزمایش آن ایده بدی نباشد.
<VAHID NAMENI/>
voiden.md
Voiden.md — The Offline, Git-Native API Workspace
Redefining how developers work with APIs. One Git-native, composable workspace. Offline-first. Markdown-powered. Developer-loved.
👍3❤2🍾1
Forwarded from AI Labdon
👤 در سرور آزمایشی تلگرام، یک بات رسمی شناسایی شده که سن کاربران را از طریق اسکن چهره و بدون نیاز به مدارک بررسی میکند.
احتمال دارد این روش در آینده برای دسترسی به برخی قابلیتهای خاص تلگرام مورد استفاده قرار گیرد.
🔞 جزئیات بیشتر درباره قابلیت «تأیید سن از طریق چهره» در تلگرام:
— تلگرام در حال راهاندازی سیستمی برای تأیید سن از طریق چهره است تا دسترسی به محتوای ۱۸+ در کانالها و گروهها را کنترل کند.
— این قابلیت ابتدا در انگلستان فعال میشود، زیرا طبق قانون جدید، سایتها و اپلیکیشنهایی که محتوای محدودشده منتشر میکنند، موظف به تأیید سن کاربران هستند. احتمال دارد این ویژگی بهزودی برای سایر کشورها نیز اعمال شود.
— محدوده سنی قابل تشخیص بین ۱۸ تا ۹۰ سال است.
— فقط چهره واقعی شما قابل قبول است — عکس یا تصویر از فرد، قابل شناسایی و مردود خواهد شد.
— نیازی به ارائه هیچ مدرکی نیست.
— دستگاه شما لازم نیست قابلیت Face ID داشته باشد.
— عکس چهرهی شما در تلگرام ذخیره نمیشود و این سیستم فقط با ایدی کد هر شخص کار میکند.
قابلیت تأیید سن با چهره در تلگرام فعلاً برای جلوگیری از دسترسی نوجوانان به محتوای +18 فعال شده، تا ذهن آنها در سنین حساس رشد، گرفتار تحریک زودهنگام و اعتیاد به دپامین کاذب نشود.
هدف این است که نوجوانان با ذهنی آزاد، سالم و توانمند وارد مسیر یادگیری و جامعه شوند، نه با ذهنی فرسوده و محدودشده به لذتهای زودگذر.
در آینده ممکن است این سیستم به مدیران اجازه دهد تا افراد زیر ۱۸ سال را از ارسال پیامهای توهینآمیز یا شرکت در بحثهای حساس مثل سیاست محدود کنند.
احتمال دارد این روش در آینده برای دسترسی به برخی قابلیتهای خاص تلگرام مورد استفاده قرار گیرد.
🔞 جزئیات بیشتر درباره قابلیت «تأیید سن از طریق چهره» در تلگرام:
— تلگرام در حال راهاندازی سیستمی برای تأیید سن از طریق چهره است تا دسترسی به محتوای ۱۸+ در کانالها و گروهها را کنترل کند.
— این قابلیت ابتدا در انگلستان فعال میشود، زیرا طبق قانون جدید، سایتها و اپلیکیشنهایی که محتوای محدودشده منتشر میکنند، موظف به تأیید سن کاربران هستند. احتمال دارد این ویژگی بهزودی برای سایر کشورها نیز اعمال شود.
— محدوده سنی قابل تشخیص بین ۱۸ تا ۹۰ سال است.
— فقط چهره واقعی شما قابل قبول است — عکس یا تصویر از فرد، قابل شناسایی و مردود خواهد شد.
— نیازی به ارائه هیچ مدرکی نیست.
— دستگاه شما لازم نیست قابلیت Face ID داشته باشد.
— عکس چهرهی شما در تلگرام ذخیره نمیشود و این سیستم فقط با ایدی کد هر شخص کار میکند.
قابلیت تأیید سن با چهره در تلگرام فعلاً برای جلوگیری از دسترسی نوجوانان به محتوای +18 فعال شده، تا ذهن آنها در سنین حساس رشد، گرفتار تحریک زودهنگام و اعتیاد به دپامین کاذب نشود.
هدف این است که نوجوانان با ذهنی آزاد، سالم و توانمند وارد مسیر یادگیری و جامعه شوند، نه با ذهنی فرسوده و محدودشده به لذتهای زودگذر.
در آینده ممکن است این سیستم به مدیران اجازه دهد تا افراد زیر ۱۸ سال را از ارسال پیامهای توهینآمیز یا شرکت در بحثهای حساس مثل سیاست محدود کنند.
❤3🕊2
Forwarded from AI Labdon
🔥چطور از این عکسا درست کنیم؟! به راحتی
📰وارد ChatGPT بشید و پرامپت زیر رو بهش بدید ، توی پرامپت باید مشخص کنید این عکسو واسه چه کشوری ایجاد کنه ؛)
A Close-Up Photograph Of A Large Map, All Landmarks Set On A Vintage (IRAN) Map Background Write The County Name With Capital Letters. As A Miniature 3D Landscape Is Sculpted Sand, Featuring Of Most Iconic And Famous Landmarks And Architectural From Same Country famous landmark (Azadi Tower and Milad Tower)
• And 3D Tiny Small Autumn Trees And Leaves Surround The Landmarks, Creating A Surreal, Cozy, Atmosphere.
📰وارد ChatGPT بشید و پرامپت زیر رو بهش بدید ، توی پرامپت باید مشخص کنید این عکسو واسه چه کشوری ایجاد کنه ؛)
A Close-Up Photograph Of A Large Map, All Landmarks Set On A Vintage (IRAN) Map Background Write The County Name With Capital Letters. As A Miniature 3D Landscape Is Sculpted Sand, Featuring Of Most Iconic And Famous Landmarks And Architectural From Same Country famous landmark (Azadi Tower and Milad Tower)
• And 3D Tiny Small Autumn Trees And Leaves Surround The Landmarks, Creating A Surreal, Cozy, Atmosphere.
🍾1
Forwarded from 𓄂 Bardia 𓆃
🤖 علاقهمند به دنیای هوش مصنوعی هستی؟
دنبال میکنی که چطور AI داره دنیا رو متحول میکنه؟
پس جای درستی اومدی!
🎯 در کانال ما هر روز:
🔍 جدیدترین اخبار و دستاوردهای دنیای AI
🧠 تحلیل تخصصی در حوزه یادگیری ماشین، دیپ لرنینگ و مدلهای زبانی
💼 بررسی کاربردهای هوش مصنوعی در پزشکی، صنعت، آموزش، امنیت و اقتصاد
🛠 معرفی ابزارها، دورهها و منابع یادگیری
📈 بررسی ترندها و آینده فناوریهای مرتبط با هوش مصنوعی
همهی اینها به زبان ساده، خلاصه و قابل فهم برای همه علاقهمندان — از مبتدی تا حرفهای
👇👇👇👇👇
https://t.me/ai_labdon
دنبال میکنی که چطور AI داره دنیا رو متحول میکنه؟
پس جای درستی اومدی!
🎯 در کانال ما هر روز:
🔍 جدیدترین اخبار و دستاوردهای دنیای AI
🧠 تحلیل تخصصی در حوزه یادگیری ماشین، دیپ لرنینگ و مدلهای زبانی
💼 بررسی کاربردهای هوش مصنوعی در پزشکی، صنعت، آموزش، امنیت و اقتصاد
🛠 معرفی ابزارها، دورهها و منابع یادگیری
📈 بررسی ترندها و آینده فناوریهای مرتبط با هوش مصنوعی
همهی اینها به زبان ساده، خلاصه و قابل فهم برای همه علاقهمندان — از مبتدی تا حرفهای
👇👇👇👇👇
https://t.me/ai_labdon
❤1
🔵 عنوان مقاله
🔒 The FIPS 140-3 Go Cryptographic Module
🟢 خلاصه مقاله:
استاندارد FIPS 140 مرتبط با پیادهسازیهای رمزنگاری، بخصوص در بخشهایی که با دولت آمریکا در ارتباط هستند، مهم است و الزامی به حساب میآید. بیشتر توسعهدهندگان شاید نیازی به نگرانی درباره این استاندارد نداشته باشند، اما درک و پیادهسازی آن برای توسعهدهندگان گو میتواند فرصتهای جدیدی را فراهم کند. این مقاله به بررسی عمیق پشتیبانی گو از FIPS 140 میپردازد و دانشی کلیدی را برای توسعه دهندگانی که با دولت آمریکا کار میکنند، ارائه میدهد.
🟣لینک مقاله:
https://golangweekly.com/link/171844/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
🔒 The FIPS 140-3 Go Cryptographic Module
🟢 خلاصه مقاله:
استاندارد FIPS 140 مرتبط با پیادهسازیهای رمزنگاری، بخصوص در بخشهایی که با دولت آمریکا در ارتباط هستند، مهم است و الزامی به حساب میآید. بیشتر توسعهدهندگان شاید نیازی به نگرانی درباره این استاندارد نداشته باشند، اما درک و پیادهسازی آن برای توسعهدهندگان گو میتواند فرصتهای جدیدی را فراهم کند. این مقاله به بررسی عمیق پشتیبانی گو از FIPS 140 میپردازد و دانشی کلیدی را برای توسعه دهندگانی که با دولت آمریکا کار میکنند، ارائه میدهد.
🟣لینک مقاله:
https://golangweekly.com/link/171844/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
go.dev
The FIPS 140-3 Go Cryptographic Module - The Go Programming Language
Go now has a built-in, native FIPS 140-3 compliant mode.
❤3
ویندوز XP برگشت... اونم توی مرورگر شما!
اگه دلتون برای ویندوز XP تنگ شده، یه پروژه جالب به اسم Win32.run منتشر شده که محیط کامل XP رو مستقیماً تو مرورگر اجرا میکنه!
از صفحه بوت و فایلاکسپلورر گرفته تا Paint و حتی برنامههای قدیمی - همهچی شبیه نسخه واقعی کار میکنه!
این پروژه با استفاده از تکنولوژیهای Svelte و Tailwind ساخته شده و یه شبیهساز واقعیه، نه صرفاً یه پوسته نمایشی.
امتحانش کن! فقط سرچ کن :
Win32.run
#RoidBest
اگه دلتون برای ویندوز XP تنگ شده، یه پروژه جالب به اسم Win32.run منتشر شده که محیط کامل XP رو مستقیماً تو مرورگر اجرا میکنه!
از صفحه بوت و فایلاکسپلورر گرفته تا Paint و حتی برنامههای قدیمی - همهچی شبیه نسخه واقعی کار میکنه!
این پروژه با استفاده از تکنولوژیهای Svelte و Tailwind ساخته شده و یه شبیهساز واقعیه، نه صرفاً یه پوسته نمایشی.
امتحانش کن! فقط سرچ کن :
Win32.run
#RoidBest
❤2
🔵 عنوان مقاله
Learn Go with Tests: An Online Book for Learning TDD with Go
🟢 خلاصه مقاله:
منبع مورد بحث در طی سال گذشته چندین بار بهروزرسانی شده و همچنان منبعی فوقالعاده برای فهم مبانی و موضوعات پیشرفتهتر نظیر بازتابی و جنریکها میباشد. این منبع با ارائه راهنماییهای جامع و قابل فهم، از اصول اولیه تا سطوح پیچیدهتر را پوشش داده و مورد استفاده قرار میگیرد و با بهروزرسانیهای دقیق، همواره مرتبط و کارآمد باقی مانده است.
🟣لینک مقاله:
https://golangweekly.com/link/171847/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
Learn Go with Tests: An Online Book for Learning TDD with Go
🟢 خلاصه مقاله:
منبع مورد بحث در طی سال گذشته چندین بار بهروزرسانی شده و همچنان منبعی فوقالعاده برای فهم مبانی و موضوعات پیشرفتهتر نظیر بازتابی و جنریکها میباشد. این منبع با ارائه راهنماییهای جامع و قابل فهم، از اصول اولیه تا سطوح پیچیدهتر را پوشش داده و مورد استفاده قرار میگیرد و با بهروزرسانیهای دقیق، همواره مرتبط و کارآمد باقی مانده است.
🟣لینک مقاله:
https://golangweekly.com/link/171847/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
quii.gitbook.io
Learn Go with Tests | Learn Go with tests
❤3👍2
Forwarded from Software Engineer Labdon
چطور در معماری میکروسرویس، از ناهماهنگی بین دیتابیس و Message Broker جلوگیری کنیم؟
یکی از چالشهای رایج در میکروسرویسها، تضمین هماهنگی داده (Data Consistency) بین عملیات دیتابیس و ارسال پیام (Event) است.
سناریوی آشنای مشکلساز:
سرویس سفارش (Order) را در نظر بگیرید:
1. سفارش جدید در دیتابیس ذخیره میشود. (موفق)
2. قرار است یک رویداد OrderCreated به Kafka یا RabbitMQ ارسال شود تا سرویس نوتیفیکیشن به کاربر ایمیل بزند. (ناموفق)
نتیجه: سفارش در سیستم ثبت شده، اما به دلیل قطعی موقت در Message Broker، ایمیل تأیید هرگز ارسال نمیشود! این یعنی یک ناهماهنگی جدی در سیستم.
راهحل: الگوی Outbox Pattern
الگوی Outbox یک راهحل زیبا و قابل اعتماد برای این مشکل است. به جای ارسال مستقیم پیام، آن را در یک جدول به نام outbox در همان دیتابیس و داخل همان تراکنش ذخیره میکنیم.
چرا این روش کار میکند؟
چون ذخیره سفارش و ذخیره پیام در جدول
سپس، یک پردازشگر پسزمینه (Message Relay) مسئول خواندن پیامها از جدول outbox و ارسال مطمئن آنها به Message Broker است.
<Mahdi M./>
یکی از چالشهای رایج در میکروسرویسها، تضمین هماهنگی داده (Data Consistency) بین عملیات دیتابیس و ارسال پیام (Event) است.
سناریوی آشنای مشکلساز:
سرویس سفارش (Order) را در نظر بگیرید:
1. سفارش جدید در دیتابیس ذخیره میشود. (موفق)
2. قرار است یک رویداد OrderCreated به Kafka یا RabbitMQ ارسال شود تا سرویس نوتیفیکیشن به کاربر ایمیل بزند. (ناموفق)
نتیجه: سفارش در سیستم ثبت شده، اما به دلیل قطعی موقت در Message Broker، ایمیل تأیید هرگز ارسال نمیشود! این یعنی یک ناهماهنگی جدی در سیستم.
راهحل: الگوی Outbox Pattern
الگوی Outbox یک راهحل زیبا و قابل اعتماد برای این مشکل است. به جای ارسال مستقیم پیام، آن را در یک جدول به نام outbox در همان دیتابیس و داخل همان تراکنش ذخیره میکنیم.
چرا این روش کار میکند؟
چون ذخیره سفارش و ذخیره پیام در جدول
outbox
، هر دو در یک تراکنش اتمیک (Atomic Transaction) انجام میشوند. این یعنی یا هر دو با هم موفق میشوند یا هر دو با هم شکست میخورند. به این ترتیب، هیچ رویدادی گم نخواهد شد!سپس، یک پردازشگر پسزمینه (Message Relay) مسئول خواندن پیامها از جدول outbox و ارسال مطمئن آنها به Message Broker است.
<Mahdi M./>
❤9