Forwarded from Gopher Academy
🔵 عنوان مقاله
Product Management Is Broken. Engineers Can Fix It
🟢 خلاصه مقاله:
این مقاله به بررسی تغییراتی میپردازد که شرکت PostHog در نحوه همکاری مدیران پروژه (PMs) و مهندسان اعمال کرده است تا بهینهسازی فرایندهای کاری خود را برای دستیابی به سرعت و استقلال عمل پیش ببرد. PostHog تصمیم گرفته است فرایندهای سنتی بین PM و مهندسان را کنار بگذارد و به جای آن، مدلی را پیادهسازی کند که در آن هر دو گروه بیشترین میزان مسئولیت و اختیار را داشته باشند. این شرکت با دادن استقلال بیشتر به افراد و تیمها، توانسته است که رویکردی مبتنی بر سرعت و کارآمدی در پیش بگیرد. به این ترتیب، PMها و مهندسان با همکاری نزدیکتر و داشتن دید واضحتر از اهداف و چشماندازهای کلی پروژهها، میتوانند در کوتاهترین زمان ممکن به نتایج بهتر دست یابند. تغییر در نحوه همکاری و تقسیم کار، به هر فرد امکان میدهد که با تکیه بر تخصص خود، به افزایش کارایی و تاثیرگذاری بیشتر در پروژهها کمک کند.
🟣لینک مقاله:
https://golangweekly.com/link/165340/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
Product Management Is Broken. Engineers Can Fix It
🟢 خلاصه مقاله:
این مقاله به بررسی تغییراتی میپردازد که شرکت PostHog در نحوه همکاری مدیران پروژه (PMs) و مهندسان اعمال کرده است تا بهینهسازی فرایندهای کاری خود را برای دستیابی به سرعت و استقلال عمل پیش ببرد. PostHog تصمیم گرفته است فرایندهای سنتی بین PM و مهندسان را کنار بگذارد و به جای آن، مدلی را پیادهسازی کند که در آن هر دو گروه بیشترین میزان مسئولیت و اختیار را داشته باشند. این شرکت با دادن استقلال بیشتر به افراد و تیمها، توانسته است که رویکردی مبتنی بر سرعت و کارآمدی در پیش بگیرد. به این ترتیب، PMها و مهندسان با همکاری نزدیکتر و داشتن دید واضحتر از اهداف و چشماندازهای کلی پروژهها، میتوانند در کوتاهترین زمان ممکن به نتایج بهتر دست یابند. تغییر در نحوه همکاری و تقسیم کار، به هر فرد امکان میدهد که با تکیه بر تخصص خود، به افزایش کارایی و تاثیرگذاری بیشتر در پروژهها کمک کند.
🟣لینک مقاله:
https://golangweekly.com/link/165340/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
Posthog
Product management is broken. Engineers can fix it
How we've redefined the PM and engineer relationship
Forwarded from 🎄 DevTwitter | توییت برنامه نویسی
دستورها و آپشن کامندها لینوکس یادت میره؟
خواندن manpage برات سخته؟
نگران نباش
صفحات TLDR یک تلاش جامعه محور برای ساده کردن man pages با نمونه های عملیه
کافیه tldr را نصبش کنی
https://github.com/tldr-pages/tldr
@DevTwitter | <MehrdadLinux/>
خواندن manpage برات سخته؟
نگران نباش
صفحات TLDR یک تلاش جامعه محور برای ساده کردن man pages با نمونه های عملیه
کافیه tldr را نصبش کنی
https://github.com/tldr-pages/tldr
@DevTwitter | <MehrdadLinux/>
Forwarded from 🎄 DevTwitter | توییت برنامه نویسی
واکسن فایزر: C
واکسن مدرنا: ++C
واکسن آسترازنکا: Python
واکسن جانسون: Rust
واکسن اسپوتنیک: C Sharp
واکسن برکت : PHP
@DevTwitter | <Muhammadreza Haghiri/>
واکسن مدرنا: ++C
واکسن آسترازنکا: Python
واکسن جانسون: Rust
واکسن اسپوتنیک: C Sharp
واکسن برکت : PHP
@DevTwitter | <Muhammadreza Haghiri/>
Forwarded from 🎄 DevTwitter | توییت برنامه نویسی
#برنامه_نویس_یبس
صبح همه بخیر به جز خانمای برنامهنویس که بخاطر کد کثیف پسری که بهشون پیشنهاد داده رو ریجکت کردن.
@DevTwitter | <Muhammadreza Haghiri/>
صبح همه بخیر به جز خانمای برنامهنویس که بخاطر کد کثیف پسری که بهشون پیشنهاد داده رو ریجکت کردن.
@DevTwitter | <Muhammadreza Haghiri/>
Forwarded from کانال مهرداد لینوکس
😰 دستورها و آپشن کامندها یادت میره ؟
خواندن صفحههای manpage برات سخته ؟ 😭
🔥نگران نباش صفحات TLDR یک تلاش جامعه محور برای ساده کردن man pages با نمونه های عملیه
🗓 کافیه tldr را نصبش کنی
🗓برای استفاده هم :
مثلا برای دستور tar
✅ تازه کتاب هم داره میتونی از اینجا دانلود کنی
📒نسخه فارسی هم از اینجا
⚠️ با دستور زیر میتوانید دیتابیس را اپدیت کنید
فقط حواستون باشه اولین بار یه
بزنید که دیتابیسش اپدیت شه
⚖️ معادل های و دستورات مشابه tealdeer
❤️ ممنون از حمایت هاتون 💐🌺
#ابزار_کاربردی #لینوکس #Utility #linux
خواندن صفحههای manpage برات سخته ؟ 😭
🔥نگران نباش صفحات TLDR یک تلاش جامعه محور برای ساده کردن man pages با نمونه های عملیه
🗓 کافیه tldr را نصبش کنی
npm install -g tldr
pip3 install tldr
brew install tlrc
🗓برای استفاده هم :
مثلا برای دستور tar
tldr tar
✅ تازه کتاب هم داره میتونی از اینجا دانلود کنی
📒نسخه فارسی هم از اینجا
⚠️ با دستور زیر میتوانید دیتابیس را اپدیت کنید
فقط حواستون باشه اولین بار یه
tldr -u
بزنید که دیتابیسش اپدیت شه
⚖️ معادل های و دستورات مشابه tealdeer
❤️ ممنون از حمایت هاتون 💐🌺
#ابزار_کاربردی #لینوکس #Utility #linux
Forwarded from Python Hints
This media is not supported in your browser
VIEW IN TELEGRAM
ویدئو توییت همکاری استارلینک و تیموبایل برای دسترسی به اینترنت ماهوارهای (که البته رایگان هم هست طبق ویدیو)
ایلان ماسک این ویدئو رو گذاشت.
ایلان ماسک این ویدئو رو گذاشت.
Forwarded from 🎄 DevTwitter | توییت برنامه نویسی
پادکست نیمچه برنامه نویس:
این پادکست به شکل روان و داستانی موضوعاتی را در حوزهی دواپس و برنامه نویسی روایت میکند.
مثلا در چند اپیزود اخیر به روایت و بررسی کالبدشکافی داون تایم شرکت های بزرگ پرداخته است.
اپیزود های کوتاه و جذاب این پادکست به صورت هفتگی منتشر میشوند.
میتوانید کانال این پادکست را در کستباکس دنبال کنید:
https://castbox.fm/vh/6294201
@DevTwitter | <Sadegh Mohebbi/>
این پادکست به شکل روان و داستانی موضوعاتی را در حوزهی دواپس و برنامه نویسی روایت میکند.
مثلا در چند اپیزود اخیر به روایت و بررسی کالبدشکافی داون تایم شرکت های بزرگ پرداخته است.
اپیزود های کوتاه و جذاب این پادکست به صورت هفتگی منتشر میشوند.
میتوانید کانال این پادکست را در کستباکس دنبال کنید:
https://castbox.fm/vh/6294201
@DevTwitter | <Sadegh Mohebbi/>
Forwarded from linuxtnt(linux tips and tricks) (hosein seilany https://seilany.ir/)
🔰در سیستمهای کامپیوتری، هر فایل دارای سه نوع زمان است که به آنها زمانهای فایل گفته میشود.
🔹. زمان دسترسی (Access Time):
این زمان نشان میدهد که فایل آخرین بار چه زمانی باز یا دسترسی به آن صورت گرفته است. به عنوان مثال، زمانی که شما یک فایل متنی را باز میکنید و محتویات آن را میخوانید، زمان دسترسی آن فایل تغییر میکند.
🔹. زمان تغییر (Modify Time):
این زمان نشان میدهد که فایل آخرین بار چه زمانی تغییر کرده است. به عنوان مثال، زمانی که شما یک فایل متنی را باز میکنید، تغییراتی در آن ایجاد میکنید و سپس آن را ذخیره میکنید، زمان تغییر آن فایل تغییر میکند.
🔹. زمان ایجاد (Change Time):
این زمان نشان میدهد که فایل آخرین بار چه زمانی ایجاد شده است یا اطلاعات мета آن (مانند نام فایل، اندازه فایل، سطح دسترسی و غیره) تغییر کرده است.
در خروجی دستور stat در لینوکس این سه زمان وجود دارد.
🔹. زمان دسترسی (Access Time):
این زمان نشان میدهد که فایل آخرین بار چه زمانی باز یا دسترسی به آن صورت گرفته است. به عنوان مثال، زمانی که شما یک فایل متنی را باز میکنید و محتویات آن را میخوانید، زمان دسترسی آن فایل تغییر میکند.
🔹. زمان تغییر (Modify Time):
این زمان نشان میدهد که فایل آخرین بار چه زمانی تغییر کرده است. به عنوان مثال، زمانی که شما یک فایل متنی را باز میکنید، تغییراتی در آن ایجاد میکنید و سپس آن را ذخیره میکنید، زمان تغییر آن فایل تغییر میکند.
🔹. زمان ایجاد (Change Time):
این زمان نشان میدهد که فایل آخرین بار چه زمانی ایجاد شده است یا اطلاعات мета آن (مانند نام فایل، اندازه فایل، سطح دسترسی و غیره) تغییر کرده است.
در خروجی دستور stat در لینوکس این سه زمان وجود دارد.
$stat Your_Filename
Forwarded from Woland's Linux Journal (Woland)
متعصبان راست قربانی دیگری گرفتند!
این هفتهُ هکتور مارتین، توسعهدهندهی ارشد آساهی لینوکس و نگهدارندهی کرنل لینوکس برای پردازندهی اپل آرم، به علت تعصبات و جدلهای بیپایان دربارهی استفاده از راست، از سمت خود کنارهگیری کرد!
به نظر شما علت این همه تعصب و مداخله در میان طرفداران راست چیه؟
#خبر
این هفتهُ هکتور مارتین، توسعهدهندهی ارشد آساهی لینوکس و نگهدارندهی کرنل لینوکس برای پردازندهی اپل آرم، به علت تعصبات و جدلهای بیپایان دربارهی استفاده از راست، از سمت خود کنارهگیری کرد!
#خبر
Forwarded from 🎄 DevTwitter | توییت برنامه نویسی
یک اکانت خارجی یا به قصد خنده یا به قصد ترول کردن، مثال hello world رو در C و Rust نوشته و کامپایل کرده و خروجی اجراییاش برای سی شده ۱۵k و راسط شده چندین مگابایت. نتیجه گیری هم کرده که ببینید راسط چقدر بده!
چند روزی هست که تایم لاین انگلیسی و فارسی من صحبت این هست.
عزیزان، راسط به حالت پیشفرض استاتیک لینک میکنه و کلی اطلاعات اضافی دیباگ در فایل خروجی قرار میده.
من روی مک وقتی با شرایط مساوی کامپایل میکنم، خروجی سی میشه ۱۲.۶k و خروجی راسط میشه ۱۳.۸k نه چندین مگابایت! که تازه همینم زیادی هست و قابل کوچکتر شدن!
بعد بر فرض اینکه حجماش چند مگ هم باشه، چه تاثیری داره دقیقا؟ متوجه هستید که جریان اجرایی ماشین و حجم کدهایی که روی پردازنده میرن ربطی به حجم فایل اجرایی در دیسک نداره دیگه؟
حالا این وسط یه سری هم فوری دست گرفتن که وا مصیبتا با این حجم چجوری میخواد برای امبد کار کنه و.... دوستان، شما در امبد که برای لینوکس و مک و ویندوز کد نمیزنید. اونجا سیستم خاص خودش رو داره. اونجا خبری از std نیست. کامپایلر راسط برای اون شرایط به شکل دیگری کار میکنه. کتابخونههای خاص خودش رو داره. اینی که شما الان روی کامپیوترت میبینی که نیست...
یا چند مورد گزینشی از پروژههایی که بیخیال راسط شدن و رفتن سراغ زبانهای دیگه اینروزها در تایم لاین بولد میشن، ولی چند ده پروژهی دیگری که هر هفته دارن به راسط رو میارن رو کسی اعلام نمیکنه!
همون پروژههایی هم که بیخیال راسط شدن رو وقتی میری بدرستی میخونی درباره دلایل تصمیم شون، میبینی که خیلی فاکتورها دخیل بوده. طرف حتی خودش نوشته که راسط تکمیل تر بوده، با ثبات تر بوده، سریعتر بوده، و .... ولی شرایط ما به فلان دلایل به حالتی بود که تصمیم گرفتیم دیگه از راسط استفاده نکنیم. بعد خب میبینی که حرف شون منطقی بوده. یه سری شرایط خاص داشتن که بر مبنای اونها تصمیم گرفتن از راسط استفاده نکنن. درستش هم همینه. قرار نیست که فنبوی یک زبان یا ابرار باشید. اگر یه چیزی بدرد تون نخورد، بندازیدش دور و برید با چیزی که براتون بهتره کار کنید.
من خودم همیشه در همین اکانت گفتم که از کد نوشتن با راسط لذت نمیبرم. واژهای که همیشه برای این زبان استفاده کردم اینه که راسط زبان «زمختی» هست.
ولی اینکه شما وقتی از یک زبان و ابزار بدتون بیاد، و به بشکن زدنی تمام رویکردهای فنی خودتون رو بذارید کنار و بر مبنای احساسات نظر بدید هم درست نیست. اتفاقا وقتی از چیزی بدتون میاد، ولی در عین حال به نقاط مثبت اش هم آفرین میگید، نشون از یک ابراز نظر تخصصی داره. احساسات رو در این مدل نظرا دخیل نکنید. هر پست و توییتی هم در اینترنت دیدید باور نکنید. اینها ترول بازیهای مرسوم بین برنامهنویسهاست.
@DevTwitter | <Amirreza Gh/>
چند روزی هست که تایم لاین انگلیسی و فارسی من صحبت این هست.
عزیزان، راسط به حالت پیشفرض استاتیک لینک میکنه و کلی اطلاعات اضافی دیباگ در فایل خروجی قرار میده.
من روی مک وقتی با شرایط مساوی کامپایل میکنم، خروجی سی میشه ۱۲.۶k و خروجی راسط میشه ۱۳.۸k نه چندین مگابایت! که تازه همینم زیادی هست و قابل کوچکتر شدن!
بعد بر فرض اینکه حجماش چند مگ هم باشه، چه تاثیری داره دقیقا؟ متوجه هستید که جریان اجرایی ماشین و حجم کدهایی که روی پردازنده میرن ربطی به حجم فایل اجرایی در دیسک نداره دیگه؟
حالا این وسط یه سری هم فوری دست گرفتن که وا مصیبتا با این حجم چجوری میخواد برای امبد کار کنه و.... دوستان، شما در امبد که برای لینوکس و مک و ویندوز کد نمیزنید. اونجا سیستم خاص خودش رو داره. اونجا خبری از std نیست. کامپایلر راسط برای اون شرایط به شکل دیگری کار میکنه. کتابخونههای خاص خودش رو داره. اینی که شما الان روی کامپیوترت میبینی که نیست...
یا چند مورد گزینشی از پروژههایی که بیخیال راسط شدن و رفتن سراغ زبانهای دیگه اینروزها در تایم لاین بولد میشن، ولی چند ده پروژهی دیگری که هر هفته دارن به راسط رو میارن رو کسی اعلام نمیکنه!
همون پروژههایی هم که بیخیال راسط شدن رو وقتی میری بدرستی میخونی درباره دلایل تصمیم شون، میبینی که خیلی فاکتورها دخیل بوده. طرف حتی خودش نوشته که راسط تکمیل تر بوده، با ثبات تر بوده، سریعتر بوده، و .... ولی شرایط ما به فلان دلایل به حالتی بود که تصمیم گرفتیم دیگه از راسط استفاده نکنیم. بعد خب میبینی که حرف شون منطقی بوده. یه سری شرایط خاص داشتن که بر مبنای اونها تصمیم گرفتن از راسط استفاده نکنن. درستش هم همینه. قرار نیست که فنبوی یک زبان یا ابرار باشید. اگر یه چیزی بدرد تون نخورد، بندازیدش دور و برید با چیزی که براتون بهتره کار کنید.
من خودم همیشه در همین اکانت گفتم که از کد نوشتن با راسط لذت نمیبرم. واژهای که همیشه برای این زبان استفاده کردم اینه که راسط زبان «زمختی» هست.
ولی اینکه شما وقتی از یک زبان و ابزار بدتون بیاد، و به بشکن زدنی تمام رویکردهای فنی خودتون رو بذارید کنار و بر مبنای احساسات نظر بدید هم درست نیست. اتفاقا وقتی از چیزی بدتون میاد، ولی در عین حال به نقاط مثبت اش هم آفرین میگید، نشون از یک ابراز نظر تخصصی داره. احساسات رو در این مدل نظرا دخیل نکنید. هر پست و توییتی هم در اینترنت دیدید باور نکنید. اینها ترول بازیهای مرسوم بین برنامهنویسهاست.
@DevTwitter | <Amirreza Gh/>
Forwarded from LearnPOV | لرن پی او وی
یه ترفند خفن و فوقالعاده کاربردی در Tailwind CSS که شاید ندونی 🫵
ممکنه شما هم نیاز پیدا کنید که وقتی موس روی والد یک المان میره استایل های اون المان تغییر پیدا بکنه، توی تیلویند با استفاده از group و group-hover این کار امکان پذیره ✅
حالا چجوری ⁉️
➖➖➖➖➖➖➖➖➖
ممکنه شما هم نیاز پیدا کنید که وقتی موس روی والد یک المان میره استایل های اون المان تغییر پیدا بکنه، توی تیلویند با استفاده از group و group-hover این کار امکان پذیره ✅
حالا چجوری ⁉️
<div class="group">
هاور کن ببین چی میشه!
<div class="opacity-0 group-hover:opacity-100 transition">
🎉 سورپرایز!
</div>
</div>
توی کد بالا وقتی موس روی div والد با کلاس group میره، div فرزند که به طور پیشفرض با opacity-0 مخفی شده، به آرامی توسط کلاس group-hover:opacity-100 نمایان میشه و محتویاتش رو نشون میده.
و برای برای ایجاد افکت نرم از transition استفاده کردیم که میتونید خودتون بیشتر راجبش بخونید. ( more )
#tips | #tricks | #tailwind
𝗖𝗛𝗔𝗡𝗡𝗘𝗟 | 𝗚𝗥𝗢𝗨𝗣
➖➖➖➖➖➖➖➖➖
Forwarded from ASafaeirad
اگر صبور نبودن شما را برای انجام دادن کاری تهییج کند الزاما چیز بدی نیست. فقط در صورتی بد است که به خود بگویید دارید شکست میخورید.
— بازی بلند مدت
— بازی بلند مدت
Forwarded from laravel-news
سن 30-34 سال حدود 20% از جامعه توسعه دهندگان را تشکیل میدهند که نشان از جوان بودن جامعه ی PHP ست.
از طرفی حدود 30% توسعه دهندگان بالای 40 سال سن دارند. سن بالای آنها (که محتملا تجربه بیشتری هم دارند)، نشان از حضور پررنگ افراد باتجربه در این جامعه است!
از طرفی حدود 30% توسعه دهندگان بالای 40 سال سن دارند. سن بالای آنها (که محتملا تجربه بیشتری هم دارند)، نشان از حضور پررنگ افراد باتجربه در این جامعه است!
Forwarded from laravel-news
حدود 86% از توسعه دهندگان از PHP ورژن 8 استفاده میکنند. ورژن 8 سال 2020 ریلیز شد و این یعنی در طول 4 سال بیش از 80% توسعه دهندگان به ورژن جدید سویچ کردن.
به طور کلی تخمین ۲ تا ۴ سال زمان برای آپگرید اپلیکیشن به نسخه جدید، منطقی به نظر میرسد.
نکته جالب، افزایش 2% ی ورژن 5.6 و قبل تر، در سال 2024 نسبت به سال 2023 هست! (دلیلش رو کسی میدونه؟ یا بزاریم پای خطای داده ها؟)
به طور کلی تخمین ۲ تا ۴ سال زمان برای آپگرید اپلیکیشن به نسخه جدید، منطقی به نظر میرسد.
نکته جالب، افزایش 2% ی ورژن 5.6 و قبل تر، در سال 2024 نسبت به سال 2023 هست! (دلیلش رو کسی میدونه؟ یا بزاریم پای خطای داده ها؟)
Forwarded from Gopher Academy
🔵 عنوان مقاله
Upcoming Workshop on Building Backend Web Apps in Go
🟢 خلاصه مقاله:
این کارگاه آموزشی دو روزه، که به صورت آنلاین یا حضوری برگزار میشود، به شرکتکنندگان فرصتی برای توسعه مهارتهای خود در زبان برنامهنویسی Go میدهد. تمرکز این کارگاه بر استفاده از Go برای ساخت برنامههای پشتصحنه وب است. در طول دوره، شرکتکنندگان با ساختارهای داده، رابطها و نحوه نوشتن تستهای واحد در Go آشنا خواهند شد. این کارگاه فرصتی عالی برای یادگیری و بهبود تواناییهای برنامهنویسی با استفاده از این زبان نوظهور و محبوب است، مناسب برای توسعهدهندگانی که علاقمند به تقویت دانش فنی خود در زمینه ساخت نرمافزارهای پشتصحنه هستند.
🟣لینک مقاله:
https://golangweekly.com/link/165327/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
Upcoming Workshop on Building Backend Web Apps in Go
🟢 خلاصه مقاله:
این کارگاه آموزشی دو روزه، که به صورت آنلاین یا حضوری برگزار میشود، به شرکتکنندگان فرصتی برای توسعه مهارتهای خود در زبان برنامهنویسی Go میدهد. تمرکز این کارگاه بر استفاده از Go برای ساخت برنامههای پشتصحنه وب است. در طول دوره، شرکتکنندگان با ساختارهای داده، رابطها و نحوه نوشتن تستهای واحد در Go آشنا خواهند شد. این کارگاه فرصتی عالی برای یادگیری و بهبود تواناییهای برنامهنویسی با استفاده از این زبان نوظهور و محبوب است، مناسب برای توسعهدهندگانی که علاقمند به تقویت دانش فنی خود در زمینه ساخت نرمافزارهای پشتصحنه هستند.
🟣لینک مقاله:
https://golangweekly.com/link/165327/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
Forwarded from 🎄 DevTwitter | توییت برنامه نویسی
نرم افزار رایگان یادداشت برداری با امکانات فراوان(دستخط، ترسیم شکل، حاشیه نویسی بر PDF، ...)
پ.ن:
وقتی با خودکار و کاغذ شروع و عادت کردی؛ همه جا دنبال کاغذ و خودکار میگردی!
https://xournalpp.github.io
https://github.com/xournalpp/xournalpp/
@DevTwitter | <Koroush/>
پ.ن:
وقتی با خودکار و کاغذ شروع و عادت کردی؛ همه جا دنبال کاغذ و خودکار میگردی!
https://xournalpp.github.io
https://github.com/xournalpp/xournalpp/
@DevTwitter | <Koroush/>
Forwarded from Meitix
اها این Eventual Consistency برای خوندنه و نه نوشتن. یعنی قسمت eventuallyش برای readه 😅
یعنی دیتای که ذخیره میشه db رو به state درست میبره و data integrity نداره حالا ممکنه موقع خوندن دیتا از replica قدیمی بخونه که ما خیلی جاها برامو مهم نی
یعنی دیتای که ذخیره میشه db رو به state درست میبره و data integrity نداره حالا ممکنه موقع خوندن دیتا از replica قدیمی بخونه که ما خیلی جاها برامو مهم نی
Forwarded from Gopher Academy
0.0000011 دلار
این قیمتی که مشاهده میکنید قیمت یک رمزارز توی بازار کریپتو نیست این قیمت ریال به دلار هستش.
واقعا نمیدونم چی بگم...
➖➖➖➖➖➖➖➖
👑 @gopher_academy
این قیمتی که مشاهده میکنید قیمت یک رمزارز توی بازار کریپتو نیست این قیمت ریال به دلار هستش.
واقعا نمیدونم چی بگم...
➖➖➖➖➖➖➖➖
👑 @gopher_academy
Forwarded from Ninja Learn | نینجا لرن
خب خب خب دکوریتورها (Decorators) در پایتون: تغییر رفتار توابع و کلاسها 🐍
سلام دوستان امروز میخوایم در مورد یکی از ویژگیهای خیلی قوی و در عین حال جذاب پایتون صحبت کنیم:
دکوریتورها. این قابلیت به شما اجازه میده تا بدون دست زدن به کد اصلی توابع یا کلاسها، رفتارشون رو تغییر بدید.
1⃣ دکوریتورها چیستند؟ 🤔
دکوریتورها در پایتون، توابع یا کلاسهایی هستن که مثل یه "بستهبندی" عمل میکنن. یعنی، شما یه تابع یا کلاس رو میگیرید، اون رو به یه دکوریتور میفرستید، دکوریتور رفتارش رو تغییر میده (یا بهبود میبخشه) و نسخه تغییر یافته رو برمیگردونه.
مثال ساده:
اینجا دکوریتور simple_decorator قبل و بعد از اجرای تابع greet پیام چاپ میکنه. یعنی بدون اینکه کد اصلی تابع رو دست بزنیم، رفتارش تغییر پیدا میکنه.
2⃣ نحوهی کارکرد دکوریتورها 🔧
🔻 دکوریتور به عنوان یک تابع
در واقع، دکوریتورها توی پایتون همون توابعی هستن که یه تابع یا کلاس رو به عنوان ورودی میگیرن و یه نسخه تغییر یافته برمیگردونن. وقتی از علامت @ استفاده میکنید، پایتون به طور خودکار این کار رو انجام میده.
🔻 مراحل استفاده از دکوریتور:
تعریف دکوریتور:
دکوریتور یه تابعه که یه تابع ورودی میگیره و نسخه بهبود یافته یا تغییر یافته رو برمیگردونه.
اعمال دکوریتور:
با قرار دادن علامت @ قبل از تعریف تابع یا کلاس، دکوریتور روی اون اعمال میشه.
اجرای تابع دکوریتور:
وقتی تابع دکوریت شده فراخوانی میشه، اول تابع "بستهبندی" (wrapper) اجرا میشه و بعد تابع اصلی.
🔻 مثال دکوریتور بر روی کلاس
دکوریتورها فقط برای توابع نیستن؛ میتونن رفتار کلاسها رو هم تغییر بدن. مثلاً:
اینجا دکوریتور add_str متد str
رو به کلاس Person اضافه میکنه، بدون اینکه کد داخل کلاس رو تغییر بده.
3⃣ مزایای استفاده از دکوریتورها ✨
کنترل دقیق روی ساختار کد:
دکوریتورها به شما این امکان رو میدن تا بدون دست زدن به منطق اصلی تابع یا کلاس، رفتارشون رو تغییر بدید. این موضوع برای توسعه چارچوبهای پیچیده خیلی مفیده.
اجرای الگوهای تکراری (DRY):
میتونید کدهای تکراری مثل ثبت رویدادها، اعتبارسنجی یا مدیریت استثناها رو توی یه مکان متمرکز کنید.
گسترش قابلیتها:
به راحتی میشه قابلیتهای جدیدی به توابع یا کلاسها اضافه کرد بدون اینکه لازم باشه کد اصلی رو تغییر بدید.
4⃣ چالشهای استفاده از دکوریتورها ⚠️
درک اولیه سختتر:
برای کسانی که تازه شروع کردن، مفهوم دکوریتورها ممکنه گیجکننده باشه. برای درک کاملش نیاز به مطالعه و تمرین داره.
اشکالزدایی پیچیده:
وقتی دکوریتورها به شکل گسترده استفاده میشن، پیدا کردن مشکلات در کد ممکنه سختتر بشه، چون تغییرات به طور پنهانی در رفتار توابع اعمال میشه.
ترکیب با سایر مفاهیم:
استفاده همزمان از دکوریتورها با مفاهیم پیشرفته مثل متاکلاسها یا توابع بازگشتی میتونه باعث پیچیدگیهای اضافه بشه.
جمعبندی ✍
دکوریتورها ابزار خیلی قدرتمندی در پایتون هستن که به شما امکان میدن رفتار توابع و کلاسها رو بدون تغییر کد اصلی تغییر بدید. این قابلیت مخصوصاً توی پیادهسازی چارچوبهای پیچیده و کنترل دقیق روی ساختار کد کاربرد زیادی داره. اگرچه درک اولیهش ممکنه کمی سخت باشه، اما با تمرین و استفاده از مثالهای عملی، دکوریتورها میتونن ابزار بسیار موثری برای بهبود و انعطافپذیری کدتون باشن.
➖➖➖➖➖➖➖➖➖
سلام دوستان امروز میخوایم در مورد یکی از ویژگیهای خیلی قوی و در عین حال جذاب پایتون صحبت کنیم:
دکوریتورها. این قابلیت به شما اجازه میده تا بدون دست زدن به کد اصلی توابع یا کلاسها، رفتارشون رو تغییر بدید.
1⃣ دکوریتورها چیستند؟ 🤔
دکوریتورها در پایتون، توابع یا کلاسهایی هستن که مثل یه "بستهبندی" عمل میکنن. یعنی، شما یه تابع یا کلاس رو میگیرید، اون رو به یه دکوریتور میفرستید، دکوریتور رفتارش رو تغییر میده (یا بهبود میبخشه) و نسخه تغییر یافته رو برمیگردونه.
مثال ساده:
def simple_decorator(func):
def wrapper(*args, **kwargs):
print("قبل از اجرای تابع")
result = func(*args, **kwargs)
print("بعد از اجرای تابع")
return result
return wrapper
@simple_decorator
def greet(name):
print(f"سلام، {name}!")
greet("علی")
اینجا دکوریتور simple_decorator قبل و بعد از اجرای تابع greet پیام چاپ میکنه. یعنی بدون اینکه کد اصلی تابع رو دست بزنیم، رفتارش تغییر پیدا میکنه.
2⃣ نحوهی کارکرد دکوریتورها 🔧
🔻 دکوریتور به عنوان یک تابع
در واقع، دکوریتورها توی پایتون همون توابعی هستن که یه تابع یا کلاس رو به عنوان ورودی میگیرن و یه نسخه تغییر یافته برمیگردونن. وقتی از علامت @ استفاده میکنید، پایتون به طور خودکار این کار رو انجام میده.
🔻 مراحل استفاده از دکوریتور:
تعریف دکوریتور:
دکوریتور یه تابعه که یه تابع ورودی میگیره و نسخه بهبود یافته یا تغییر یافته رو برمیگردونه.
اعمال دکوریتور:
با قرار دادن علامت @ قبل از تعریف تابع یا کلاس، دکوریتور روی اون اعمال میشه.
اجرای تابع دکوریتور:
وقتی تابع دکوریت شده فراخوانی میشه، اول تابع "بستهبندی" (wrapper) اجرا میشه و بعد تابع اصلی.
🔻 مثال دکوریتور بر روی کلاس
دکوریتورها فقط برای توابع نیستن؛ میتونن رفتار کلاسها رو هم تغییر بدن. مثلاً:
def add_str(cls):
# افزودن یه متد برای نمایش
def __str__(self):
return f"{cls.__name__} با ویژگیها: {self.__dict__}"
cls.__str__ = __str__
return cls
@add_str
class Person:
def __init__(self, name, age):
self.name = name
self.age = age
p = Person("سارا", 28)
print(p) # خروجی: Person با ویژگیها: {'name': 'سارا', 'age': 28}
اینجا دکوریتور add_str متد str
رو به کلاس Person اضافه میکنه، بدون اینکه کد داخل کلاس رو تغییر بده.
3⃣ مزایای استفاده از دکوریتورها ✨
کنترل دقیق روی ساختار کد:
دکوریتورها به شما این امکان رو میدن تا بدون دست زدن به منطق اصلی تابع یا کلاس، رفتارشون رو تغییر بدید. این موضوع برای توسعه چارچوبهای پیچیده خیلی مفیده.
اجرای الگوهای تکراری (DRY):
میتونید کدهای تکراری مثل ثبت رویدادها، اعتبارسنجی یا مدیریت استثناها رو توی یه مکان متمرکز کنید.
گسترش قابلیتها:
به راحتی میشه قابلیتهای جدیدی به توابع یا کلاسها اضافه کرد بدون اینکه لازم باشه کد اصلی رو تغییر بدید.
4⃣ چالشهای استفاده از دکوریتورها ⚠️
درک اولیه سختتر:
برای کسانی که تازه شروع کردن، مفهوم دکوریتورها ممکنه گیجکننده باشه. برای درک کاملش نیاز به مطالعه و تمرین داره.
اشکالزدایی پیچیده:
وقتی دکوریتورها به شکل گسترده استفاده میشن، پیدا کردن مشکلات در کد ممکنه سختتر بشه، چون تغییرات به طور پنهانی در رفتار توابع اعمال میشه.
ترکیب با سایر مفاهیم:
استفاده همزمان از دکوریتورها با مفاهیم پیشرفته مثل متاکلاسها یا توابع بازگشتی میتونه باعث پیچیدگیهای اضافه بشه.
جمعبندی ✍
دکوریتورها ابزار خیلی قدرتمندی در پایتون هستن که به شما امکان میدن رفتار توابع و کلاسها رو بدون تغییر کد اصلی تغییر بدید. این قابلیت مخصوصاً توی پیادهسازی چارچوبهای پیچیده و کنترل دقیق روی ساختار کد کاربرد زیادی داره. اگرچه درک اولیهش ممکنه کمی سخت باشه، اما با تمرین و استفاده از مثالهای عملی، دکوریتورها میتونن ابزار بسیار موثری برای بهبود و انعطافپذیری کدتون باشن.
#⃣ #python #programming
➖➖➖➖➖➖➖➖➖
🥷 CHANNEL | GROUP
Forwarded from Woland's Linux Journal (Woland)
آموزش نصب Sql Server در Docker روی لینوکس
ابتدا داکر ایمیج را دریافت میکنیم:
ابتدا داکر ایمیج را دریافت میکنیم:
docker pull mcr.microsoft.com/mssql/server:2022-latest