Forwarded from Dev Dastan (Hossein Mousavi)
Advantages: Enhances SEO, improves initial page load performance.
Disadvantages: More complex to implement due to dual rendering paths.
Usage: Best for applications that benefit from both SEO and rich client-side interactivity.
Advantages: Flexibility to use the best rendering method for each application part, optimizing performance.
Disadvantages: Increased complexity in configuration and potential overhead in maintaining different rendering paths.
Usage: Ideal for large applications with diverse content needs (dynamic, static, interactive).
Advantages: Faster initial load time, better SEO, simplified debugging, and improved accessibility.
Disadvantages: Higher server resource requirements and potentially slower subsequent page loads.
Usage: Suitable for content-heavy sites where SEO and initial rendering speed are critical.
Advantages: Lower server load, simpler deployment, and dynamic interfaces.
Disadvantages: Slower initial load, poorer SEO, and reduced accessibility for some users.
Usage: Best for interactive single-page applications where SEO is not a priority.
Advantages: High performance, enhanced security, and reduced server load.
Disadvantages: Not suitable for sites requiring frequent updates.
Usage: Ideal for websites with static content, such as blogs and documentation.
Advantages: Combines the benefits of static generation with flexibility for content updates, maintaining high performance.
Disadvantages: More complex to set up and manage compared to traditional SSG.
Usage: Perfect for sites that need regular content updates but also want the performance benefits of static rendering.
➖➖➖➖➖➖
➖➖➖➖➖➖
#nuxt #vue
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from دستاوردهای یادگیری عمیق(InTec)
توی این آموزش چون مدل
اگر امکان آپدیت نداشتید؛ یا معماری مدل هنوز توسط
باید از
گوشیهای
SmolLM برپایه معماریهایی که قبلا پشتیبانی میشده نیست شما به ollama 3.7 نیاز دارید.اگر امکان آپدیت نداشتید؛ یا معماری مدل هنوز توسط
ollama پشتیبانی نمیشد. (هفته قبل)باید از
llama.cpp برای تبدیل استفاده میکردید.گوشیهای
android بخصوص نسل SnapDragon 8 Gen3 توانایی اجرای این مدل با تعداد توکن بسیار بالایی رو دارا هست.Forwarded from محتوای آزاد سهراب
Forwarded from کانال اطلاعرسانی توزیع پارچ (Sohrab)
اخباری از توسعه پارچ در این چندهفته اخیر.
ما مثل همیشه درحال بهبود پارچ و اضافه کردن ویژگیهای جدید به اون هستیم. در این چندهفته اخیر ما بر روی موارد زیر کار کردیم.
۱- پشتیبانی اولیه از SecureBoot به صورت آزمایشی
۲- پشتیبانی اولیه از میزکار کازمیک و خوشآمدگوی آن
۳- بهبود پارچ پروفایلر
۴- پیادهسازی اولیه پارچ استور و پارچ بکاپ
۵- پیادهسازی اولیه آپادانا
لازم به ذکر است که برخی از این تغییرات در رلیز بعدی پارچ منتشر خواهند شد.
@ParchLinux
ما مثل همیشه درحال بهبود پارچ و اضافه کردن ویژگیهای جدید به اون هستیم. در این چندهفته اخیر ما بر روی موارد زیر کار کردیم.
۱- پشتیبانی اولیه از SecureBoot به صورت آزمایشی
۲- پشتیبانی اولیه از میزکار کازمیک و خوشآمدگوی آن
۳- بهبود پارچ پروفایلر
۴- پیادهسازی اولیه پارچ استور و پارچ بکاپ
۵- پیادهسازی اولیه آپادانا
لازم به ذکر است که برخی از این تغییرات در رلیز بعدی پارچ منتشر خواهند شد.
@ParchLinux
Forwarded from کانال مهرداد لینوکس (Mehrdad Linux)
✅قبلا در مورد regex صحبت کردم
⁉️حالا اهل حل کردن جدول هستید ؟ 😁
جدول کلمات متقاطع با عبارت باقاعد regular expression regex
فکر میکنید میتونید این جدول را حل کنید ؟
از این سایت برای درست بودن عبارت میتوانید استفاده کنید
✅ توضیح برای دوستانی که شاید آشنا نیستند
عبارت باقاعده regex یک رشته معمولی مثل این
که با پردازشگر های regex پردازش میشند و برای جستجو و مطابقت یک یا چند الگوی خاص استفاده میشوند
در سایت چطور متوجه میشن ایمیل را اشتباه وارد کردید ؟
اینجوری😁 یاد بگیرید سخت نیست
در بخش کامنت ها میتوانیم با هم بحث کنیم و حلش کنیم و بیشتر عبارت باقاعده regex یا ( regular expression) یاد بگیریم 😎
سایت منبع مسئله
⁉️حالا اهل حل کردن جدول هستید ؟ 😁
جدول کلمات متقاطع با عبارت باقاعد regular expression regex
فکر میکنید میتونید این جدول را حل کنید ؟
از این سایت برای درست بودن عبارت میتوانید استفاده کنید
✅ توضیح برای دوستانی که شاید آشنا نیستند
عبارت باقاعده regex یک رشته معمولی مثل این
([@.A-Z])\w+
که با پردازشگر های regex پردازش میشند و برای جستجو و مطابقت یک یا چند الگوی خاص استفاده میشوند
در سایت چطور متوجه میشن ایمیل را اشتباه وارد کردید ؟
[^@ \t\r\n]+@[^@ \t\r\n]+\.[^@ \t\r\n]+
اینجوری😁 یاد بگیرید سخت نیست
در بخش کامنت ها میتوانیم با هم بحث کنیم و حلش کنیم و بیشتر عبارت باقاعده regex یا ( regular expression) یاد بگیریم 😎
سایت منبع مسئله
Forwarded from دستاوردهای یادگیری عمیق(InTec)
چیکار داره میکنه
تمام تستهای واقعی که یوتیوبرها و ... ساختند رو سختهاش رو من روش تست کردم همرو به درستی جواب داد.
مدل ۸ میلیارد و ۲ میلیارد هم اکنون در دسترس هست (میتونید دانلود کنید) ولی هنوز
که باتوجه به توییتها و ... به زودی (رفتن برای
qwen2-vl بالاتر از همه رقبای open source, close source و با لایسنس Apache2 البته مدل ۷۲ میلیارد پارامتری فعلا فقط از طریق API در دسترس هست.تمام تستهای واقعی که یوتیوبرها و ... ساختند رو سختهاش رو من روش تست کردم همرو به درستی جواب داد.
مدل ۸ میلیارد و ۲ میلیارد هم اکنون در دسترس هست (میتونید دانلود کنید) ولی هنوز
lama.cpp آماده نشده.که باتوجه به توییتها و ... به زودی (رفتن برای
2nd try) بعد از این روی ollama هم خواهد آمد (آموزش بالا)Forwarded from سید فرندز / برنامه نویسی / هک و امنیت / تکنولوژی (SeYeD.Dev)
خیلیا میپرسن چطوری برنامه نویسی یاد بگیریم، اونم فارسی
بهترین روش اینه از نظر من :
https://www.instagram.com/reel/C_VoZsrN1pV/?igsh=Njk2MWMzNmZydGds
@SEYED_BAX
بهترین روش اینه از نظر من :
https://www.instagram.com/reel/C_VoZsrN1pV/?igsh=Njk2MWMzNmZydGds
@SEYED_BAX
Forwarded from Rust for Python developers
YouTube
Rust vs Go: Performance (Latency - Throughput - Saturation - Availability)
👨💼📈 Mentorship/On-the-Job Support/Consulting - https://calendly.com/antonputra/youtube or me@antonputra.com
▬▬▬▬▬ Experience & Location 💼 ▬▬▬▬▬
► I’m a Senior Software Engineer at Juniper Networks (12+ years of experience)
► Located in San Francisco…
▬▬▬▬▬ Experience & Location 💼 ▬▬▬▬▬
► I’m a Senior Software Engineer at Juniper Networks (12+ years of experience)
► Located in San Francisco…
Forwarded from Geniuses Group (Omid Hekayati)
#کمال_گرایی در ذات اگر همراه با شناخت و #پذیرش واقعیت ها باشد، بر عکس تصور عموم، یکی از اصول #توسعه بخصوص #توسعه_پایدار می باشد.
خیلی شنیدیم و خوندیم که کمال گرایی خیلی چیز بدی هست و باید ازش فرار کنیم! عموما این حرف و نوشته ها را در جاهایی میشنویم و میبینیم که اصول گفت و گو و گفتمان در اونجا حاکم نیست. مثال عینی همین اول بزنیم، اگر خیلی ساده بخوایم ماهیتی را در این دنیا خوب و بد تقسیم بندی کنیم و تا یک خصیصه بد داشت، بگیم بده، خوب تقریبا هر چیزی در این دنیا میره تو دسته بدها! یکم فکر کنید! اینطور نیست؟ مثلا اگر آتش و چاقو نباشه عملا حیات انسانی به شکل فعلیش امکان ناپذیر میشه چون این دو در ماهیت می توانند در دسته بدها هم باشند!
ولی بیایید بر عکس بقیه جاها اینجا اشاره کنیم کمال گرایی نه بد، بلکه با شناخت صحیح تنها خصیصه ای هست که پیشران توسعه هست! قبلا هم تلاش کردیم مفهوم توسعه را بهتر تبیین کنیم، اینجا برای توسعه تعریف "بالا بردن ظرفیت های اعضای یک سیستم (ما) برای مواجهه با پیچیدگی های آن سیستم (دنیای پیرامون ما)" را نقل می کنیم. همونطور که در تعریف کمال هم اشاره به "استانداردهایی برای بالاترین سطح عملکرد" میشه، می تونیم انطباق ظرفیت و استاندارد را در هر دو تعریف مورد کنکاش قرار دهیم.
ولی روی دیگر این نوشته، اهمیت به مفهوم کلمه پذیرش داره. این کلمه در علوم مختلف مورد بررسی و تبیین قرار گرفته ولی تقریبا شناخت یکسانی از آن در همه علوم وجود دارد. مثلا در علم مدیریت به ما توصیه می شود برای سازمان خود حتما بیانیه چشمانداز به عنوان یک سند رسمی سازمانی نگارش کنیم. این بیانیه شامل اهداف کمال گرایانه باید باشد در غیر اینصورت ماهیت وجودی سازمان زیر سوال میرود. مثلا بیانیه چشم انداز سازمان SpaceX میشه make humanity a multi-planetary species و با رعایت مفهوم پذیرش واقعیت ها، استراتژی ها و برنامه ریزی هایی برای رسیدن به اهداف خود نگارش می شود.
پس مثل همیشه #تلنگر_ذهنی برامون باشه که اگر کسی خواست آرزوها و امیدهای شما را با برچسب کمال گرایی نابود کنه، بهش این اجازه را ندید و بجاش بهش توضیح بدید که برای رسیدن به اون کمال ها، چه برنامه هایی دارید و واقعیت هایی که پیش رو دارید را ترسیم کنید که اونم بدونه کمال گرایی در ذات مشکل ساز نیست. یادمون باشه چیزی که به عنوان هوش می شناسیم بوسیله برچسب دهی با منطق فازی بدست میاد، پس با منطق بولی، به هم دیگه برچسب نزنیم که به جز تخریب، هدفی در آن وجود ندارد!
پ.ن1: نگارش این پست را خیلی وقت بود می خواستم انجام بدم در خصوص کمال گرایی و پذیرش واقعیت ها ولی با دیدن این ویدئو گفتم وقتشه نوشته بشه. امیدوارم حرف هایی که در فایل تصویری دیدیم و شنیدیم، آغازگر موضوعی باشه که سال هاست خیلی از دغدغه مندان جامعه ایران در موردش بحث و گفت و گو می کنند. امیدوارم تصمیم سازان قلمروی جغرافیای فعلی ایران با رویکردهای علمی و شناخته شده مسیر توسعه جامعه ایران را به مسیر واقعی برگردانند تا به نقطه غیر قابل بازگشت نرسیده ایم.
پ.ن2: اشاره به مفهوم واقعیت کردیم و حیف هست یک اشاره کوچولو به مشکل بزرگ ما، یعنی #فیلترینگ اینترنت نکنیم. یادمون باشه کلا فیلترینگ (در معنای عام) در هر جایی باعث پنهان کردن یا بدتر از آن کتمان واقعیت ها میشه. ولی با توجه به افزایش قابل توجه سطح علمی جامعه، این کتمان ها 100% موثر نیست و با ایجاد عدم شناخت در اعضای جامعه، قطعا باعث افزایش سطح خشونت در جامعه میشه و عملا #توسعه_پذیری را از جامعه هدف میگیره.
خیلی شنیدیم و خوندیم که کمال گرایی خیلی چیز بدی هست و باید ازش فرار کنیم! عموما این حرف و نوشته ها را در جاهایی میشنویم و میبینیم که اصول گفت و گو و گفتمان در اونجا حاکم نیست. مثال عینی همین اول بزنیم، اگر خیلی ساده بخوایم ماهیتی را در این دنیا خوب و بد تقسیم بندی کنیم و تا یک خصیصه بد داشت، بگیم بده، خوب تقریبا هر چیزی در این دنیا میره تو دسته بدها! یکم فکر کنید! اینطور نیست؟ مثلا اگر آتش و چاقو نباشه عملا حیات انسانی به شکل فعلیش امکان ناپذیر میشه چون این دو در ماهیت می توانند در دسته بدها هم باشند!
ولی بیایید بر عکس بقیه جاها اینجا اشاره کنیم کمال گرایی نه بد، بلکه با شناخت صحیح تنها خصیصه ای هست که پیشران توسعه هست! قبلا هم تلاش کردیم مفهوم توسعه را بهتر تبیین کنیم، اینجا برای توسعه تعریف "بالا بردن ظرفیت های اعضای یک سیستم (ما) برای مواجهه با پیچیدگی های آن سیستم (دنیای پیرامون ما)" را نقل می کنیم. همونطور که در تعریف کمال هم اشاره به "استانداردهایی برای بالاترین سطح عملکرد" میشه، می تونیم انطباق ظرفیت و استاندارد را در هر دو تعریف مورد کنکاش قرار دهیم.
ولی روی دیگر این نوشته، اهمیت به مفهوم کلمه پذیرش داره. این کلمه در علوم مختلف مورد بررسی و تبیین قرار گرفته ولی تقریبا شناخت یکسانی از آن در همه علوم وجود دارد. مثلا در علم مدیریت به ما توصیه می شود برای سازمان خود حتما بیانیه چشمانداز به عنوان یک سند رسمی سازمانی نگارش کنیم. این بیانیه شامل اهداف کمال گرایانه باید باشد در غیر اینصورت ماهیت وجودی سازمان زیر سوال میرود. مثلا بیانیه چشم انداز سازمان SpaceX میشه make humanity a multi-planetary species و با رعایت مفهوم پذیرش واقعیت ها، استراتژی ها و برنامه ریزی هایی برای رسیدن به اهداف خود نگارش می شود.
پس مثل همیشه #تلنگر_ذهنی برامون باشه که اگر کسی خواست آرزوها و امیدهای شما را با برچسب کمال گرایی نابود کنه، بهش این اجازه را ندید و بجاش بهش توضیح بدید که برای رسیدن به اون کمال ها، چه برنامه هایی دارید و واقعیت هایی که پیش رو دارید را ترسیم کنید که اونم بدونه کمال گرایی در ذات مشکل ساز نیست. یادمون باشه چیزی که به عنوان هوش می شناسیم بوسیله برچسب دهی با منطق فازی بدست میاد، پس با منطق بولی، به هم دیگه برچسب نزنیم که به جز تخریب، هدفی در آن وجود ندارد!
پ.ن1: نگارش این پست را خیلی وقت بود می خواستم انجام بدم در خصوص کمال گرایی و پذیرش واقعیت ها ولی با دیدن این ویدئو گفتم وقتشه نوشته بشه. امیدوارم حرف هایی که در فایل تصویری دیدیم و شنیدیم، آغازگر موضوعی باشه که سال هاست خیلی از دغدغه مندان جامعه ایران در موردش بحث و گفت و گو می کنند. امیدوارم تصمیم سازان قلمروی جغرافیای فعلی ایران با رویکردهای علمی و شناخته شده مسیر توسعه جامعه ایران را به مسیر واقعی برگردانند تا به نقطه غیر قابل بازگشت نرسیده ایم.
پ.ن2: اشاره به مفهوم واقعیت کردیم و حیف هست یک اشاره کوچولو به مشکل بزرگ ما، یعنی #فیلترینگ اینترنت نکنیم. یادمون باشه کلا فیلترینگ (در معنای عام) در هر جایی باعث پنهان کردن یا بدتر از آن کتمان واقعیت ها میشه. ولی با توجه به افزایش قابل توجه سطح علمی جامعه، این کتمان ها 100% موثر نیست و با ایجاد عدم شناخت در اعضای جامعه، قطعا باعث افزایش سطح خشونت در جامعه میشه و عملا #توسعه_پذیری را از جامعه هدف میگیره.
Forwarded from کانال اطلاعرسانی توزیع پارچ (Sohrab)
پروژه موآ که یک فراجستجوگر برپایه سرکسانجی و یک پروژه آزاد ایرانی بود، متأسفانه توسعهاش متوقف شده.
ما تیم پارچ، با اهداف اولیهای که از توسعه پارچ داشتیم یک انشعاب از این فراجستجوگر درست کردیم تا در آینده عضوی از خانواده پارچ باشه.
هدفما نگهداری و بهبود پروژه فعلی (موآ) و همینطور ادغام کردن برخی از تغییرات کاربردی این پروژه در پروژه بالادستی (سرکسانجی) برای بهبود اون هستش.
لینک مخزن:
https://git.parchlinux.com/web/search-engine/parchsearch/
و لینک مشکلات فعلی برای علاقمندان به مشارکت:
https://git.parchlinux.com/web/search-engine/parchsearch/-/issues/1
برای مشارکت در این پروژه شما نیازمند داشتن دانشی نسبی از زبان پایتون هستید.
راهنمای مشارکت:
https://git.parchlinux.com/web/search-engine/parchsearch/-/blob/master/CONTRIBUTING.md
#موآ #نرمافزارآزاد
🐧 @ParchLinux
ما تیم پارچ، با اهداف اولیهای که از توسعه پارچ داشتیم یک انشعاب از این فراجستجوگر درست کردیم تا در آینده عضوی از خانواده پارچ باشه.
هدفما نگهداری و بهبود پروژه فعلی (موآ) و همینطور ادغام کردن برخی از تغییرات کاربردی این پروژه در پروژه بالادستی (سرکسانجی) برای بهبود اون هستش.
لینک مخزن:
https://git.parchlinux.com/web/search-engine/parchsearch/
و لینک مشکلات فعلی برای علاقمندان به مشارکت:
https://git.parchlinux.com/web/search-engine/parchsearch/-/issues/1
برای مشارکت در این پروژه شما نیازمند داشتن دانشی نسبی از زبان پایتون هستید.
راهنمای مشارکت:
https://git.parchlinux.com/web/search-engine/parchsearch/-/blob/master/CONTRIBUTING.md
#موآ #نرمافزارآزاد
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from محتوای آزاد سهراب
کانال اطلاعرسانی توزیع پارچ
اخباری از توسعه پارچ در این چندهفته اخیر. ما مثل همیشه درحال بهبود پارچ و اضافه کردن ویژگیهای جدید به اون هستیم. در این چندهفته اخیر ما بر روی موارد زیر کار کردیم. ۱- پشتیبانی اولیه از SecureBoot به صورت آزمایشی ۲- پشتیبانی اولیه از میزکار کازمیک و خوشآمدگوی…
Forwarded from DevTwitter | توییت برنامه نویسی
Hangover پروژه ای است که می تواند برنامه های 32 بیتی ویندوز را روی سیستم های لینوکس ARM 64 بیتی اجرا کند. از شبیه سازهای مختلف به عنوان کتابخانه استفاده می کند تا فقط برنامه خاص را شبیه سازی کند.
https://github.com/AndreRH/hangover
@DevTwitter | <محمدی، محمد/>
https://github.com/AndreRH/hangover
@DevTwitter | <محمدی، محمد/>
Forwarded from محتوای آزاد سهراب
DevTwitter | توییت برنامه نویسی
Hangover پروژه ای است که می تواند برنامه های 32 بیتی ویندوز را روی سیستم های لینوکس ARM 64 بیتی اجرا کند. از شبیه سازهای مختلف به عنوان کتابخانه استفاده می کند تا فقط برنامه خاص را شبیه سازی کند. https://github.com/AndreRH/hangover @DevTwitter | <محمدی،…
جدا چرا😂
box86 و box64
هستن دیگه، واین توشون نصب میشه، پشتیبانی از اپای ۶۴ بیتی هم دارن
@SohrabContents
box86 و box64
هستن دیگه، واین توشون نصب میشه، پشتیبانی از اپای ۶۴ بیتی هم دارن
@SohrabContents
Forwarded from کداکسپلور | CodeExplore (𝙰𝚖𝚒𝚗)
چند ماهیه دارم روی یه پروژه اوپن سورس کار میکنم برای دپلوی کردن پروژه هایی که بک اند لاراول دارن.
قضیه از اون جایی شروع شد که پارسال بررسی که کردم دیدم سولوشن استفاده از سرویس های کم کیفیت و گرون داخلی هست و یا سلف هاست که منابع موجود اوپن سورس و آموزش ها اکثرا خیلی ضعیف، ناقص و یا دارای اشتباهات اساسی هست و عملا بردرد پروداکشن نمیخورن منم خورد خورد کارو شروع کردم و الان به جای خیلی خوبی رسیدم.
چون پروداکشن خیلی حساسه میخوام که اگه کسی هست که توی زمینه دوآپس (ابونتو سرور، داکر کامپوز و بش) تجربه داره تا قبل از اینکه پروژه رو استیبل منتشر کنم کمی با هم مشورت کنیم و رو پروژه کانتریبیوت کنه تا بهینه تر بشه.
🌐 https://github.com/MansourM/ez-docker-for-laravel
#php #laravel #backend #project
☕️ @CodeExplore
قضیه از اون جایی شروع شد که پارسال بررسی که کردم دیدم سولوشن استفاده از سرویس های کم کیفیت و گرون داخلی هست و یا سلف هاست که منابع موجود اوپن سورس و آموزش ها اکثرا خیلی ضعیف، ناقص و یا دارای اشتباهات اساسی هست و عملا بردرد پروداکشن نمیخورن منم خورد خورد کارو شروع کردم و الان به جای خیلی خوبی رسیدم.
چون پروداکشن خیلی حساسه میخوام که اگه کسی هست که توی زمینه دوآپس (ابونتو سرور، داکر کامپوز و بش) تجربه داره تا قبل از اینکه پروژه رو استیبل منتشر کنم کمی با هم مشورت کنیم و رو پروژه کانتریبیوت کنه تا بهینه تر بشه.
#php #laravel #backend #project
Please open Telegram to view this post
VIEW IN TELEGRAM
GitHub
GitHub - MansourM/ez-docker-for-laravel: easy to setup, robust and production ready environment for Laravel using Docker, Docker…
easy to setup, robust and production ready environment for Laravel using Docker, Docker Compose and bash noscript. - MansourM/ez-docker-for-laravel
Forwarded from نوشتههای ترمینالی
چه ایمجی برای استفاده در پروداکشن خوبه؟
آیا باید از دیسترو ها استفاده کنیم یا ایمج scratch هم جواب میده؟
https://sam.gleske.net/blog/engineering/2022/10/25/guide-to-production-docker-images.html
آیا باید از دیسترو ها استفاده کنیم یا ایمج scratch هم جواب میده؟
https://sam.gleske.net/blog/engineering/2022/10/25/guide-to-production-docker-images.html
sam.gleske.net
Guide to production docker images
Forwarded from TorhamDev | تورهام 😳
https://youtu.be/jTmFW1J-KLc?si=rzrhtP5y9l0PKPD7
نمیدونم من خیلی چیزایی که مثال زد از اعماق وجود احساس کردم :(
@TorhamDevCH
نمیدونم من خیلی چیزایی که مثال زد از اعماق وجود احساس کردم :(
@TorhamDevCH
YouTube
Why do I feel burnt out? (software engineering)
Just talking about some thoughts on burn out and some experiences that I have had and some advice I have on it.
### Twitch
Everything is built live on twitch
Twitch : https://bit.ly/3xhFO3E
Discord: discord.gg/ThePrimeagen
### Editor
All my videos are edited…
### Twitch
Everything is built live on twitch
Twitch : https://bit.ly/3xhFO3E
Discord: discord.gg/ThePrimeagen
### Editor
All my videos are edited…
Forwarded from Huge Thinker
🌟 طراحی الگوی Singleton در برنامهنویسی: همون رئیسِ یکهتاز!
امروز میخوام یه الگوی باحال از برنامهنویسی رو بهتون معرفی کنم که بهش میگن Singleton یه جوری میشه گفت این الگو، رئیسِ یکهتاز تو دنیای برنامهنویسیه!
خب، ماجرای Singleton چیه؟ خیلی ساده بگم، تصور کن یه کلاسی داریم که نمیخوایم ازش بیشتر از یه نمونه (یا همون instance) توی کل برنامه داشته باشیم. یعنی هر جا هم که این کلاس صدا زده بشه، فقط همون یک نمونهی اولیه رو بهت برمیگردونه!
چرا همچین چیزی لازم میشه؟ فرض کن تو یه برنامهی پیچیده، یه بخشی از کد هست که نباید چند بار اجرا بشه، مثل تنظیمات اولیهی برنامه یا اتصال به دیتابیس.
اینجا Singleton میاد وسط و میگه: "هی! آروم باشین! فقط یه بار از من استفاده میکنیم!" چجوری کار میکنه؟ روش کارش هم اینه که تو کلاس، اول یه نمونهی خصوصی (private) از خودش میسازه.
بعد، یه متد عمومی (public) داره که چک میکنه اگه اون نمونه ساخته نشده، تازه بسازتش و هر بار که صداش بزنی، همون نمونه رو برمیگردونه. نتیجه؟ از هر گوشهای از برنامه که صداش بزنی، فقط همون یه دونه نمونه رو داری!🔥 حواست باشه! البته استفاده بیجا از Singleton هم میتونه مشکلساز بشه؛
مثلا اگه تو یه برنامه چند رشتهای (multi-threaded) داری، باید حسابی حواست باشه که رشتهها تو ساخت نمونه تداخل نکنن. برای این کار باید الگوهای دیگه مثل Double-Checked Locking یا Lazy Initialization رو هم بلد باشی.اینم از این! امیدوارم این مفهوم جذاب براتون جا افتاده باشه.
https://en.wikipedia.org/wiki/Singleton_pattern
امروز میخوام یه الگوی باحال از برنامهنویسی رو بهتون معرفی کنم که بهش میگن Singleton یه جوری میشه گفت این الگو، رئیسِ یکهتاز تو دنیای برنامهنویسیه!
خب، ماجرای Singleton چیه؟ خیلی ساده بگم، تصور کن یه کلاسی داریم که نمیخوایم ازش بیشتر از یه نمونه (یا همون instance) توی کل برنامه داشته باشیم. یعنی هر جا هم که این کلاس صدا زده بشه، فقط همون یک نمونهی اولیه رو بهت برمیگردونه!
چرا همچین چیزی لازم میشه؟ فرض کن تو یه برنامهی پیچیده، یه بخشی از کد هست که نباید چند بار اجرا بشه، مثل تنظیمات اولیهی برنامه یا اتصال به دیتابیس.
اینجا Singleton میاد وسط و میگه: "هی! آروم باشین! فقط یه بار از من استفاده میکنیم!" چجوری کار میکنه؟ روش کارش هم اینه که تو کلاس، اول یه نمونهی خصوصی (private) از خودش میسازه.
بعد، یه متد عمومی (public) داره که چک میکنه اگه اون نمونه ساخته نشده، تازه بسازتش و هر بار که صداش بزنی، همون نمونه رو برمیگردونه. نتیجه؟ از هر گوشهای از برنامه که صداش بزنی، فقط همون یه دونه نمونه رو داری!🔥 حواست باشه! البته استفاده بیجا از Singleton هم میتونه مشکلساز بشه؛
مثلا اگه تو یه برنامه چند رشتهای (multi-threaded) داری، باید حسابی حواست باشه که رشتهها تو ساخت نمونه تداخل نکنن. برای این کار باید الگوهای دیگه مثل Double-Checked Locking یا Lazy Initialization رو هم بلد باشی.اینم از این! امیدوارم این مفهوم جذاب براتون جا افتاده باشه.
https://en.wikipedia.org/wiki/Singleton_pattern
Forwarded from DevTwitter | توییت برنامه نویسی
اگه نیاز دارید پست تایپ دیفالت وردپرس رو از بیخ بکنید بندازید دور حالا یا استفاده ای ازش ندارید یا پست تایپ اختصاصی دارید و ...
این لینک رو یه نگاه بندازید
https://gist.github.com/teknikqa/c656bb96809e4bfde3843975b6fd2457
@DevTwitter | <HBSTni/>
این لینک رو یه نگاه بندازید
https://gist.github.com/teknikqa/c656bb96809e4bfde3843975b6fd2457
@DevTwitter | <HBSTni/>
Forwarded from Programming Notes
✺ Today's Concept: Pair Programming
Pair programming is a software development technique where two programmers work together at one workstation. One programmer, the driver, writes the code while the other, the observer or navigator, reviews each line of code as it is typed and considers strategic aspects of the task.
✦ @remvze // #concept
Pair programming is a software development technique where two programmers work together at one workstation. One programmer, the driver, writes the code while the other, the observer or navigator, reviews each line of code as it is typed and considers strategic aspects of the task.
✦ @remvze // #concept