#کدبوک
اگر دنبال یک منبع خوب برای مطالعه هستید این ریپو رو از دست ندید
کلی کتاب حوزه ی برنامه نویسی به زبان های مختلف
کلی هم کتاب فارسی داره برای تکنولوژی های مختلف
https://github.com/EbookFoundation/free-programming-books
@DevTwitter
اگر دنبال یک منبع خوب برای مطالعه هستید این ریپو رو از دست ندید
کلی کتاب حوزه ی برنامه نویسی به زبان های مختلف
کلی هم کتاب فارسی داره برای تکنولوژی های مختلف
https://github.com/EbookFoundation/free-programming-books
@DevTwitter
🔥11👍6🤬1
تاحالا به این فکر کردید که یک class دقیقا چی هست؟
چرا اسم سازندهها هم اسم class هستند (یا اسم خاصی دارند)؟
چرا موقع نمونه سازی از یک کلاس، مثل یک تابع صداش میزنن؟
زبانهای برنامهنویسی امروزی تقریبا همگی یا از Algol الهام گرفتهاند یا از Lisp. (و یا هردو)اولین زبان شیگرا، Simula، به شکل یک اکستنشن برای زبان Algol طراحی شده بود. Algol زبانی هست که مفهوم block و اسکوپ و برنامهنویسی Procedural با اون معروف شد.
در Algol وقتی یک بلاک اجرا میشد، میگفتند که «یک نمونه (Instance) از آن بلاک در حافظه ساخته شده» (تا بتونه اجرایی بشه)
یک خصوصیت دیگر Algol این بود که پروسیجرها مثل Rust یا زبانهای FP نیاز نبود مشخصا از return استفاده کنند. نتیجهی آخرین پردازش منطقی در بلاک به عنوان خروجی اون بلاک در نظر گرفته میشد.
همچنین هر بلاک وقتی برای اجرا به حافظه میاد، بعد از اتمام اجرا نیز از حافظه خارج میشه.
حالا، class چیه؟
یک پروسیجر که بتواند نمونهای از یک بلاک ایجاد کند، به حالتی که آن نمونه بعد از فراخانی پروسیجر به حیات خود ادامه دهد، class نام دارد. نمونههای ایجاد شده از آن بلاک، object نام دارند.
(کتاب Structured Programming بخش ۳.۳ - به اسم نویسندهها توجه کنید!)
در حقیقت class یک پروسیجر است! برای همین مثل یک تابع فراخانی میشود. بدنهی کلاس، همان بلاکای است که از آن یک نمونه (object) در حافظه ایجاد میشد.
اسم class از classification آمده. به معنی طبقهبندی. دستهبندی.
منظور از دستهبندی چی بوده؟
هدف این بوده که نمونهها قابل دستهبندی باشند. یعنی مثلا میگفتند که این نمونههای ساخته شده جزو کدام دستهبندی هستند؟ یا بهتر بگوییم، نمونهها از روی کدام class ساخته شدهاند؟
طبق این تعریف به مفهوم دیگری میرسیم که آن هم یک پروسیجر است و عملکرد مشابهی دارد: closure هر بلاک در Algol میتوانست شامل تعدادی متغیر یا یک سری از دستورات باشد. جالبتر اینکه در Algol میتوانستیم ساب-پروسیجر داشته باشیم. یعنی هر پروسیجر، می توانست شامل تعدادی متغیر و تعدادی ساب-پروسیجر باشد. این در حقیقت همان حالتی است که امروزه class رو نگارش میکنید!
یعنی class حتی از نظر نوع نگارش هم مثل یک پروسیجر معمولی بوده. اما نکتهای اصلی اینجاست: نمونه بلاک یک پروسیجر بعد از اجرا از حافظه خارج میشد!
تفاوت class و closure در این بوده که نمونه بلاک، بعد از فراخانی تابع میتوانست به حیات خود در حافظه ادامه دهد و کماکان در دسترس باشد.
اگر زبانهایی مثل Algol یا Lisp را مطالعه کنید، مغزتان سوت میکشد از حجم مفاهیم و قابلیتهایی که ما فکر میکنیم جدید هستند، ولی در واقع از دهه ۵۰ و ۶۰ برای ما باقی ماندهاند. همچنین درک بهتری از روند پیشرفت این قابلیتها خواهیم داشت.
(مثلا فکر میکنید اولین بار int از کجا آمد؟)
@DevTwitter | <Amirreza Gh/>
چرا اسم سازندهها هم اسم class هستند (یا اسم خاصی دارند)؟
چرا موقع نمونه سازی از یک کلاس، مثل یک تابع صداش میزنن؟
زبانهای برنامهنویسی امروزی تقریبا همگی یا از Algol الهام گرفتهاند یا از Lisp. (و یا هردو)اولین زبان شیگرا، Simula، به شکل یک اکستنشن برای زبان Algol طراحی شده بود. Algol زبانی هست که مفهوم block و اسکوپ و برنامهنویسی Procedural با اون معروف شد.
در Algol وقتی یک بلاک اجرا میشد، میگفتند که «یک نمونه (Instance) از آن بلاک در حافظه ساخته شده» (تا بتونه اجرایی بشه)
یک خصوصیت دیگر Algol این بود که پروسیجرها مثل Rust یا زبانهای FP نیاز نبود مشخصا از return استفاده کنند. نتیجهی آخرین پردازش منطقی در بلاک به عنوان خروجی اون بلاک در نظر گرفته میشد.
همچنین هر بلاک وقتی برای اجرا به حافظه میاد، بعد از اتمام اجرا نیز از حافظه خارج میشه.
حالا، class چیه؟
یک پروسیجر که بتواند نمونهای از یک بلاک ایجاد کند، به حالتی که آن نمونه بعد از فراخانی پروسیجر به حیات خود ادامه دهد، class نام دارد. نمونههای ایجاد شده از آن بلاک، object نام دارند.
(کتاب Structured Programming بخش ۳.۳ - به اسم نویسندهها توجه کنید!)
در حقیقت class یک پروسیجر است! برای همین مثل یک تابع فراخانی میشود. بدنهی کلاس، همان بلاکای است که از آن یک نمونه (object) در حافظه ایجاد میشد.
اسم class از classification آمده. به معنی طبقهبندی. دستهبندی.
منظور از دستهبندی چی بوده؟
هدف این بوده که نمونهها قابل دستهبندی باشند. یعنی مثلا میگفتند که این نمونههای ساخته شده جزو کدام دستهبندی هستند؟ یا بهتر بگوییم، نمونهها از روی کدام class ساخته شدهاند؟
طبق این تعریف به مفهوم دیگری میرسیم که آن هم یک پروسیجر است و عملکرد مشابهی دارد: closure هر بلاک در Algol میتوانست شامل تعدادی متغیر یا یک سری از دستورات باشد. جالبتر اینکه در Algol میتوانستیم ساب-پروسیجر داشته باشیم. یعنی هر پروسیجر، می توانست شامل تعدادی متغیر و تعدادی ساب-پروسیجر باشد. این در حقیقت همان حالتی است که امروزه class رو نگارش میکنید!
یعنی class حتی از نظر نوع نگارش هم مثل یک پروسیجر معمولی بوده. اما نکتهای اصلی اینجاست: نمونه بلاک یک پروسیجر بعد از اجرا از حافظه خارج میشد!
تفاوت class و closure در این بوده که نمونه بلاک، بعد از فراخانی تابع میتوانست به حیات خود در حافظه ادامه دهد و کماکان در دسترس باشد.
اگر زبانهایی مثل Algol یا Lisp را مطالعه کنید، مغزتان سوت میکشد از حجم مفاهیم و قابلیتهایی که ما فکر میکنیم جدید هستند، ولی در واقع از دهه ۵۰ و ۶۰ برای ما باقی ماندهاند. همچنین درک بهتری از روند پیشرفت این قابلیتها خواهیم داشت.
(مثلا فکر میکنید اولین بار int از کجا آمد؟)
@DevTwitter | <Amirreza Gh/>
👍38🔥3🤬1
دوستان وب سایت Alpha3cloud یک ساعت ویپیاس لینوکس رایگان میده با ثبت نام تا یک هفته. برای تست و دم دستی خوبه.
https://alpha3cloud.com/get-started/
@DevTwitter | <Matthew/>
https://alpha3cloud.com/get-started/
@DevTwitter | <Matthew/>
👍16🔥1🤬1
هر شغلی یک پیش نیازهایی داره ، برنامه نویسی روحیه حل مسئله و پشتکار میخواد ،اگه این دو مورد در کسی نباشه به این راحتی ها به دست نمیاد و احتمال قریب به یقین برنامهنویس خوبی نمیشه!
@DevTwitter | <Unique/>
@DevTwitter | <Unique/>
👍46🤯1🤬1
#کدبوک
اگه برنامه نویسید و رشته دانشگاهیتون کامپیوتر نبوده یا اگه کامپیوتر خوندین ولی درس ها رو خوب پاس نکردین، با خوندن این ۲ تا کتاب میتونید به دید خیلی خوبی از مدار منطقی، معماری کامپیوتر، سیستم عامل، کامپایلر، شبکه، دیتا استراکچر و الگوریتم برسین.
* فایل PDF این کتاب رو میتونید از کانال DevBooks که لینکش توی بیو هست دانلود کنید.
@DevTwitter | <Mohammad Sianaki/>
اگه برنامه نویسید و رشته دانشگاهیتون کامپیوتر نبوده یا اگه کامپیوتر خوندین ولی درس ها رو خوب پاس نکردین، با خوندن این ۲ تا کتاب میتونید به دید خیلی خوبی از مدار منطقی، معماری کامپیوتر، سیستم عامل، کامپایلر، شبکه، دیتا استراکچر و الگوریتم برسین.
* فایل PDF این کتاب رو میتونید از کانال DevBooks که لینکش توی بیو هست دانلود کنید.
@DevTwitter | <Mohammad Sianaki/>
👍43🤣4👎2🔥1
ریدمان جدید واتساپ، حتی وقتی از گوشی استفاده نمیکنید، واتساپ صداهای اطراف شما رو میشنوه.
یک کاربر با بررسی دسترسی های واتساپ و زمان استفاده از این دسترسی ها متوجه شد که وقتی خواب بوده واتساپ بارها میکروفون رو فعال کرده
ایلان ماسک در واکنش به این توییت گفته که واتساپ قابل اعتماد نیست
@DevTwitter
یک کاربر با بررسی دسترسی های واتساپ و زمان استفاده از این دسترسی ها متوجه شد که وقتی خواب بوده واتساپ بارها میکروفون رو فعال کرده
ایلان ماسک در واکنش به این توییت گفته که واتساپ قابل اعتماد نیست
@DevTwitter
👍61🤬6🤣5🤯4
نمی دونم تا حالا با فریمورک Quasar کار کردید یا نه ولی به نظرم حتما یکبار هم شده ازش استفاده کنید واقعا بین فریمورک های فرانت جزو قوی ترین ها پشتیبانی فوق العاده ای از زبان فارسی داره و مجموعه ای از UI component ها که خیلی کامله واقعا
@DevTwitter | <ghost/>
@DevTwitter | <ghost/>
👍27🤬4👎2🔥1
من هنوز نمیفهمم چرا واتساپ فیلتر شد
این بنده خدا که کلا دیتا ذخیره نمیکنه، کل ارتباطش هم که end to end هست. کانال و ... هم نداره
یعنی مثلا یه جلسه گذاشتید، توی جلسه چی بههم گفتید که خروجیش شده فیلتر کردن واتساپ
@DevTwitter | <Sourosh Ahmadi/>
این بنده خدا که کلا دیتا ذخیره نمیکنه، کل ارتباطش هم که end to end هست. کانال و ... هم نداره
یعنی مثلا یه جلسه گذاشتید، توی جلسه چی بههم گفتید که خروجیش شده فیلتر کردن واتساپ
@DevTwitter | <Sourosh Ahmadi/>
👍49🤣17👎8🤬2
یک سوال هست که خوبه چندتا چیز رو همزمان یادگرفت؟ یعنی چندتا مطلب همزمان پیش برد.
این موضوع داخل برنامه نویسی خیلی زیاد دیده میشه، ادما یکهو چندتا مطلب باهم پیش میبرن در طول روز
مثلا همزمان دارن یک فریمورک وب یاد میگیرن، و بلافاصله بعد از اون میرن سراغ یک موضوع دیگه، مثلا ساختار داده میخونن :)
این سوال من قبلا زمانی که داخل یک استارتاپ سمی مشغول به کار بودم به جوابش رسیدم :).
تو اون استارتاپ من همه کار میکردم، دواپس، بکاند، ci/cd وب اسکرپینگ و تقریبا هرچیزی که بود. چون تنها بکاند اونجا بودم
اون روزا خیلی کلافه شده بودم از موضوع، روزی ۱۰ ساعت کار میکردم و هیچاحترامی هم نبود.
خلاصه تو همون روزها درحال جستوجو داخل نت بودم که یک مقاله درباره چند وظيفه شدن کارمندای تِک خوندم.
اونجا یک مثال خیلی قشنگ زده بود، گفته بود بیایید یک cpu رو فرض کنیم، شما میتونید به یک cpu چند کار رو بدید که همزمان انجام بده، مثلا اگر ۴ تا تسک بهش بدید شاد تمام این تسکها رو به صورت همزمان پیش ببره و درنهایت در ۴ دقیقه همرو کامل تموم کنه.
اما اگه به همون cpu، همین تسکها رو به شکل دیگه ای بدید بیایید بعد از تموم شدن هر تسک، تسک بعدی بهش بدید احتمالا اون ۴ تسک رو در ۲ تا ۳ دقیقه انجام بده :)
چرا؟ چون درحالت اول باید منابع بین تسکها تقسیم شه، در حالت دوم میشه تمام منابع رو رو یک تسک متمرکز کرد :).
این دقیقا دلیلی که اگه کسی از من بپرسه میگم همیشه لحظه یک چیز رو یادبگیر و بعد از تموم شدنش برو بعدی.
داخل محیط کار هم همینه، مدیر یا منیجیر شما اگر میخاد بهرهوری بهتری داشته باشه باید همزمان یک تسک به شما بده.
@DevTwitter | <Torham/>
این موضوع داخل برنامه نویسی خیلی زیاد دیده میشه، ادما یکهو چندتا مطلب باهم پیش میبرن در طول روز
مثلا همزمان دارن یک فریمورک وب یاد میگیرن، و بلافاصله بعد از اون میرن سراغ یک موضوع دیگه، مثلا ساختار داده میخونن :)
این سوال من قبلا زمانی که داخل یک استارتاپ سمی مشغول به کار بودم به جوابش رسیدم :).
تو اون استارتاپ من همه کار میکردم، دواپس، بکاند، ci/cd وب اسکرپینگ و تقریبا هرچیزی که بود. چون تنها بکاند اونجا بودم
اون روزا خیلی کلافه شده بودم از موضوع، روزی ۱۰ ساعت کار میکردم و هیچاحترامی هم نبود.
خلاصه تو همون روزها درحال جستوجو داخل نت بودم که یک مقاله درباره چند وظيفه شدن کارمندای تِک خوندم.
اونجا یک مثال خیلی قشنگ زده بود، گفته بود بیایید یک cpu رو فرض کنیم، شما میتونید به یک cpu چند کار رو بدید که همزمان انجام بده، مثلا اگر ۴ تا تسک بهش بدید شاد تمام این تسکها رو به صورت همزمان پیش ببره و درنهایت در ۴ دقیقه همرو کامل تموم کنه.
اما اگه به همون cpu، همین تسکها رو به شکل دیگه ای بدید بیایید بعد از تموم شدن هر تسک، تسک بعدی بهش بدید احتمالا اون ۴ تسک رو در ۲ تا ۳ دقیقه انجام بده :)
چرا؟ چون درحالت اول باید منابع بین تسکها تقسیم شه، در حالت دوم میشه تمام منابع رو رو یک تسک متمرکز کرد :).
این دقیقا دلیلی که اگه کسی از من بپرسه میگم همیشه لحظه یک چیز رو یادبگیر و بعد از تموم شدنش برو بعدی.
داخل محیط کار هم همینه، مدیر یا منیجیر شما اگر میخاد بهرهوری بهتری داشته باشه باید همزمان یک تسک به شما بده.
@DevTwitter | <Torham/>
👍53👎8🤣3
توی چند تا پست بعدی قراره یه خلاصه ای از مراسم گوگل I/O رو بگیم
🔥15👍1
ویژگی جدید جیمیل به اسم Help Me Write که دستیار Ai هست برای اینکه توی نوشتن ایمیل بهتون کمک بکنه
اگه براتون سوال بود توی Gmail ابزار AI کجا قراره اضافه بشه همون قلم هست که پس زمینه مربعی آبی رنگ داره، البته الان نیست
میتونید مشخص کنید که ایمیل رو با حالتهای مختلف مثلا رسمی یا خودمونی و ... براتون ارسال کنه
@DevTwitter | <Soroush Ahmadi/>
اگه براتون سوال بود توی Gmail ابزار AI کجا قراره اضافه بشه همون قلم هست که پس زمینه مربعی آبی رنگ داره، البته الان نیست
میتونید مشخص کنید که ایمیل رو با حالتهای مختلف مثلا رسمی یا خودمونی و ... براتون ارسال کنه
@DevTwitter | <Soroush Ahmadi/>
👍14🔥1
یه سری از ویژگیهای فتوشاپ رو گوگل به صورت AI به برنامه Photos اضافه میکنه، که در واقع هدف این کار اینه کاربرای مبتدی هم بتونن ویرایش راحتی داشته باشن
@DevTwitter | <Sourosh Ahmadi/>
@DevTwitter | <Sourosh Ahmadi/>
👍20
خب PaLM ۲ به صورت رسمی رونمایی شد
برای مثال اینجا یک کد بهش میده و ازش میخواد اشکالاتش رو بررسی کنه، یا اینکه گفتن یه نسخش رو با اطلاعات پزشکی ترین کردن و تونسته تستهای پزشکی رو پاس کنه
@DevTwitter | <Soroush Ahmadi/>
برای مثال اینجا یک کد بهش میده و ازش میخواد اشکالاتش رو بررسی کنه، یا اینکه گفتن یه نسخش رو با اطلاعات پزشکی ترین کردن و تونسته تستهای پزشکی رو پاس کنه
@DevTwitter | <Soroush Ahmadi/>
👍12
خب Bard که بیشتر اخبارش هست تا خودش حالا به PaLM نسخه ۲ آپدیت شده و میتونه به ۲۰ زبان برنامهنویسی براتون کد بزنه یا کدهاتون رو دیباگ کنه و حتی توضیح بده اصن چه کدی نوشتید
به زودی زبان فارسی هم به Bard اضافه میشه
@DevTwitter | <Soroush Ahmadi/>
به زودی زبان فارسی هم به Bard اضافه میشه
@DevTwitter | <Soroush Ahmadi/>
👍21🔥3
اگر از بارد سوال کنید جوابهای کاملا بهروز همراه عکس بهتون میده، مثلا ایجا ازش در مورد جاهای دیدنی سوال شده، این دیتاهارو از موتور جستجو گوگل میگیره
@DevTwitter | <Soroush Ahmadi/>
@DevTwitter | <Soroush Ahmadi/>
👍23👎1🤬1
ویدئوی مراسم Google I/O 23 به صورت کامل
https://www.youtube.com/live/cNfINi5CNbY?feature=share
@DevTwitter
https://www.youtube.com/live/cNfINi5CNbY?feature=share
@DevTwitter
👍14🤬3
آپولو ۱۱ با هدایت یک پردازنده با کلاک 2MHz و حافظه ۴ کیلو بایت رفت ماه و برگشت.
در عصر ابتذال framework، دوستان برای کارهای ابتدایی کد مینویسند که سوپرکامپیوتر هنگ میکنه.
ازش میپرسم که چقدر حافظه استفاده کردی؟هیچ ایدهای نداره!
کد نویس باید حداقلی از سختافزار هم بدونه به خدا
@DevTwitter | <بهزاد خنجریان/>
در عصر ابتذال framework، دوستان برای کارهای ابتدایی کد مینویسند که سوپرکامپیوتر هنگ میکنه.
ازش میپرسم که چقدر حافظه استفاده کردی؟هیچ ایدهای نداره!
کد نویس باید حداقلی از سختافزار هم بدونه به خدا
@DevTwitter | <بهزاد خنجریان/>
👍63👎5🤬1
Dart 3 is here with three major improvements announced at google I/O:
All code now has sound null safety
Records and patterns
Class modifiers
goo.gle/3Mh1PHm
@DevTwitter
All code now has sound null safety
Records and patterns
Class modifiers
goo.gle/3Mh1PHm
@DevTwitter
👍14🔥3👎1🤬1
استفاده از ChatGPT توی تلگرام تمام مراحل احراز هویت رو توی سرور دور می زنه و چون دسترسی بهش خیلی راحته مراقب باشید مثل من معتادش نشید :)
این ریپو رو آماده کردم تا هر کس ربات مخصوص خودشو با تنظیمات خودش داشته باشه، فقط کافیه api key رو جاگذاری کنید
توی داکیومنتش دو تا لینک گذاشتم، از اون جا api key هارو میشه گرفت بعد تو فایل index.js نوشته شده کجا جا گذاری کنید.
این بات طوریه که برای یوزرنیم تلگرامی که بهش میدید دسترسی میده ولی اگه خواستید کلا باز باشه کامنتش کنید.
توی سرور کلون کنید، nmp i و بعد pm2 start index.js
https://github.com/sabber-slt/telegram-chatgpt-bot
@DevTwitter | <Sabber/>
این ریپو رو آماده کردم تا هر کس ربات مخصوص خودشو با تنظیمات خودش داشته باشه، فقط کافیه api key رو جاگذاری کنید
توی داکیومنتش دو تا لینک گذاشتم، از اون جا api key هارو میشه گرفت بعد تو فایل index.js نوشته شده کجا جا گذاری کنید.
این بات طوریه که برای یوزرنیم تلگرامی که بهش میدید دسترسی میده ولی اگه خواستید کلا باز باشه کامنتش کنید.
توی سرور کلون کنید، nmp i و بعد pm2 start index.js
https://github.com/sabber-slt/telegram-chatgpt-bot
@DevTwitter | <Sabber/>
👍33🤬1