مشورت کامپیوتری‌ها – Telegram
مشورت کامپیوتری‌ها
629 subscribers
33 photos
16 videos
2 files
48 links
از دانشگاه تا صنعت، سفری پر چالش!

پادکست مشورت کامپیوتری‌ها به میزبانی محمد حقیقت
ورودی 94 کارشناسی مهندسی کامپیوتر و 99 ارشد مهندسی نرم افزار دانشگاه صنعتی شریف

هدف کانال:
https://news.1rj.ru/str/coaching_ce/4

لینک صفحات اجتماعی:
https://zil.ink/coaching_ce
Download Telegram
مشورت ۴ بخش اول
مشورت من به کامپیوتری ها
#مشورت_4
«دیتابیس و کاربردهای آن_قسمت اول»


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

🟡بخش‌های این مشورت:


🔹فرهنگ اوپن سورس
01:00
🔹کاربرد درس دیتابیس و اپلکیشن‌هایی که نیازمند دیتابیس خوب هستند
08:00
🔹کاربرد دیتابیس در instant messaging apps مانند تلگرام
14:00
🔹چالش های موجود مرتبط با دیتابیس در پیام رسان ها
19:10
🔹قدرت بالای سرچ با Elasticsearch
22:00
🔹مزایا و معایب Elasticsearch
24:30
🔹مثال های واقعی مرتبط با انواع دیتابیس
26:15
🔹مبحث caching در دیتابیس برای سرعت بخشیدن به کوئری ها
28:15
🔹بررسی سامانه‌هایی با تعداد رکوئست بسیار بالا
37:45
🔹تخمین تعداد پیام‌های رد و بدل شده در تلگرام و پاسخگویی دیتابیس
38:30
🔹ترفند نگه داری اطلاعات سین زدن و ری اکشن ها در تلگرام
46:00
🔹لود بالانسرها
1:10:00
🔹ایندکسینگ در دیتابیس‌ها
1:24:00
🔹داستان حل مشکل انتخاب واحد توسط یک پروژه دانشجویی در دانشگاه شریف
1:30:00


🔰مشورت من به کامپیوتری ها
@coaching_ce
9
مشورت کامپیوتری‌ها
مشورت من به کامپیوتری ها – مشورت ۴ بخش اول
#database
#elasticsearch

برای ادامه تاک‌ها نیاز هست که یکم اطلاعاتمون رو درباره دیتابیس‌ها و فیچر‌هایی که هر کدوم در اختیارمون قرار میده، بالا ببریم. برای همین سعی میشه که توی چند تا پست و کامنت‌های پست‌ها، به معرفی و توضیح انواع دیتابیس‌ها بپردازیم. پس از دستشون ندین...😉


توی این پست میخوایم یه اشاره ای به elasticsearch بکنیم و یکسری قابلیت‌های اون رو بررسی و برای ادامه مسیر چند تا منبع معرفی کنیم.
اگه elasticsearch رو توی دسته دیتابیس‌ها قرار بدیم می‌تونیم بهش بگیم یه دیتابیس NoSql هست ولی معمولا از اون به عنوان یک search engine یاد می‌کنند و خب دلیلش هم اینه که مهارت اصلیش توی سرچ‌ کردن سریع و برگردوندن داده مورد نیاز در کمترین زمان ممکنه. از کاربردش بخوام بگم یه جورایی الان دیگه توی هر سایتی که یه سرچ‌ باکسی میبینین که داره روی تعداد زیادی دیتا سرچ میزنه و نتیجه رو باسرعت براتون میاره، به احتمال زیاد اون پشت داده‌ها رو داره از elasticsearch واکشی می‌کنه.
خب حالا به نظرتون لازمه اینکه elasticsearch بتونه جست‌وجوی سریع داشته باشه‌ چیه؟ آفرین. اینه که بتونه یه جوری داده رو ذخیره و ایندکس‌گذاری کنه که با اون نوع ذخیره سازی، با اون ساختمان داده، بتونه بالاترین سرعت واکشی داده رو داشته باشه. elasticsearch برای اینکار از Inverted Index استفاده می‌کنه که می‌تونین جزییاتش رو از این لینک بخونین. با همین روش‌ هست که elasticsearch سرعت جست‌وجوی خودش رو نزدیک به realtime معرفی می‌کنه و خب بیراه هم نیست!
یکی از ویژگی‌های elasticsearch مقیاس‌پذیری بالای اون و قابلیت horizontal scalability هست که باعث میشه از این ابزار توی داده‌ها با اسکیل بالا، به راحتی استفاده بشه و ...
برای آشنایی بیشتر می‌تونین این لینک‌ها رو مطالعه کنین:
لینک ۱
لینک ۲

🔰مشورت من به کامپیوتری ها
@coaching_ce
1👍1🔥1🥰1
#database
#sql
#oracle
#index


خب توی این پست می‌خوایم با چند تا از اصطلاح‌هایی که توی دیتابیس‌های sql ای به گوش می‌خوره مخصوصا indexها(با محوریت Oracle البته)، آشنا بشیم. از موارد ساده شروع میکنیم تا ...

توی دیتابیس‌های sql، ما یه table داریم که توی اون table تعدادی column با type مشخص ایجاد می‌شه که می‌تونیم داده‌هامون رو به صورت rowدر اون table ذخیره کنیم. این مقدمه ریز رو گفتم تا بتونیم بهتر index رو تعریف کنیم. index یه ساختمان داده آپشنال هست که اگه بخوایم، میشه روی یک یا چند ستون از جدولا تعریف کرد. ما وقتی روی یکسری ستون‌ها، index تعریف می‌کنیم، می‌تونیم با پرفورمنس بالایی، اون دیتا‌ها رو از دیتابیس واکشی کنیم. تعریف ‌index زمانی برای ما مفید می‌شه که برای یه کاربرد خاص، تعداد درخواست‌های نسبتا زیادی بر روی یکسری داده‌ها داریم، در این صورت می‌تونیم سرعت کل برنامه رو به کمک indexها افزایش بدیم.
نکته قابل توجهش اینه که تعریف index ها کاملا مستقل از داده اصلی هست و صرفا با استفاده از ساختمان‌داده مناسب، دسترسی به داده‌های index شده رو افزایش می‌ده. گفتم ساختمان‌داده‌های مناسب، بخوام یه اشاره‌ای بکنم، توی Oracle یکی از ساختمان داده‌‌هایی که برای این منظور استفاده میشه، B-Tree هست. (احتمالا جزو اون درختایی بوده که توی درس ساختمان‌داده خوندین و با خودتون گفتین خب به چه دردی می‌خوره🙂) همچنین متد‌های Reverse key indexes، Bitmap indexes و Function-based indexes هم در Oracle قابل استفاده هستند که برای مطالعه بیشتر می‌تونین به این لینک یه سر بزنین:)
یکی دیگه از دلایلی که استفاده از indexباعث افزایش سرعت واکشی میشه، اینه که باعث میشه دسترسی کمتری به بلوک‌های حافظه و I/O disk داشته‌باشه و این دسترسی رو به لطف همون ساختمان‌داده‌ها، به حداقل می‌رسونه.

در آخر هم درخواست ساختن index رو صرفا برای اینکه بفهمیم چقدر سادس(!) ببینیم:
CREATE INDEX index_name
ON table_name (column1, column2, ...columnN);


و در نهایت:)
برای اینکه اطلاعات بیشتر درباره index‌ها و نوع‌هاش و چگونگی کارکردش بدونین خوندن بخش Indexes and Index-Organized Tables از این داکیومنت که مال Oracle هست پیشنهاد میشه:)


🔰مشورت من به کامپیوتری ها
@coaching_ce
🥰2🔥1
مشورت کامپیوتری‌ها
مشورت من به کامپیوتری ها – مشورت ۴ بخش اول
❗️اعداد و ارقام گفته شده در #مشورت_4 که ممکنه شما رو به فکر برو ببره..!

🔹دیتابیس تلگرام باید توان مدیریت بیش از 900 میلیون کاربر فعال ماهانه را داشته باشد.
13:25

🔹چالش دیتابیس و شیوه هندل بیش از 760.000 ریکوئست به سایت دیجیکالا در نیم ساعت اول بلک‌فرایدی(سیستم هایی با تعداد رکورد کم اما با تعداد ریکوئست بالا)
28:10

🔹سیستم دیتابیس سامانه های تراکنش های بانکی که گاها باید بعضی از ریکوئست‌ ها را زیر 10ms پردازش کرده و جواب بدهند!
34:35

🔹اپلیکیشن دیوار با آمار بیش از 500.000 آگهی در روز و 19میلیون کاربر، باید بتواند به بهترین نحو ریکوئست های دیتابیس خود را مدیریت کند(سیستم هایی با تعداد رکورد و ریکوئست بالا)
37:40

🔹در زمان های بحرانی که پیام‌رسان ها نقش بسزایی در اطلاع رسانی دارند، دیتابیس زیر حجم تعداد بالای ریکوئست هایی اعم از زمان سین، ری‌اکشن و... چگونه عمل می‌کند؟
58:50
#دیتابیس

🔰مشورت من به کامپیوتری ها
@coaching_ce
🔥1
مشورت کامپیوتری‌ها
مشورت من به کامپیوتری ها – مشورت ۴ بخش اول
#مشورت_4
#database
#partitioning

🔷بریم سراغ یکی از قابلیت‌های دیتابیس‌ها که تو حجم بالای داده، خیلی به دردمون می‌خوره. پارتیشنینگ.
پارتیشنینگ میاد برامون جدول‌ها و ایندکس های خیلی بزرگ رو میشکنه به قسمت‌های کوچیک‌تر تا بتونیم مدیریت بهتری روشون داشته باشیم و کارایی رو ببریم بالا.
با یه مثال ادامه بدیم. فرض کنین مدیر یه کتابخونه هستین و تعداد زیاااادی کتاب زیر دستتون هست که باید با سرعت بالایی کتاب مورد نظرتون رو پیدا کنین و بدین به درخواست کننده. خب برای این کار یکی از راه‌هاش اینه که یه قفسه بزررررگ داشته باشین که همه کتاب‌ها توی اون قفسه باشه و هر بار که میخواین یه کتابی رو پیدا کنین از اول تا آخر بگردین که بتونین اون کتاب رو پیدا کنین و برش دارین. ولی خب همونطور که دیدین هیچ کتابدار عاقلی این حرکت رو نمیزنه!:) یکی از راه‌هایی که می‌تونیم این کار رو به صورت بهینه تر انجام بدیم و بهمون کمک می‌کنه که بتونیم مدیریت بهتری روی کتاب‌ها داشته باشیم، اینه که بیایم اون قفسه بزررررگ رو به قفسه‌های کوچک‌تری بشکنیم و توی هر قفسه یه سری کتاب خاص رو قرار بدیم که وقتی نیاز داشتیم به اون نوع کتاب‌های خاص بدونیم باید بریم سراغ کدوم قفسه. مثلا بیایم کتاب‌ها رو بر اساس سال چاپ بذاریم توی قفسه‌های مختلف. یا اینکه بر اساس موضوع بذاریم توی قفسه‌های مختلف یا ... . به این کار کتابدار توی دیتابیس میگن پارتیشنینگ. حالا همین چطوری جدا کردن این قفسه‌ها خودش می‌تونه روش‌های مختلفی داشته باشه که باعث می‌شه پارتیشنینگ‌های مختلفی داشته باشیم:
Range Partitioning
Interval Partitioning
List Partitioning
Hash Partitioning
Refrence Partitioning
Composite Partitioning

قبل از اینکه این موارد رو یه توضیح مختصری بدیم نیازه که با Partition Key آشنا بشیم. Partition Key یک یا مجموعه‌ای از ستون‌ها هست که با توجه به اون ها تصمیم گرفته میشه که یه ردیف از داده، توی کدوم پارتیشن قرار بگیره. هر ردیف داده، به صورت یکتا توی یک پارتیشن قرار میگیره.


🔰مشورت من به کامپیوتری ها
@coaching_ce
👍2
مشورت کامپیوتری‌ها
مشورت من به کامپیوتری ها – مشورت ۴ بخش اول
#مشورت_4
#database
#partitioning

🔷خب بریم سراغ این انواع پارتیشن‌ها:
Range Partitioning:
توی این دسته، دیتابیس ردیف‌های داده رو بر اساس یه رنجی از مقدار Partitioning Key به پارتیشن‌ها میده که ذخیره کنند. این دسته معمولا بر اساس تاریخ و زمان هست. مثلا پارتیشنینگ بر اساس سال ایجاد اون سطر داده‌، انجام بشه و همه داده‌های سال ۲۰۲۰ توی یه پارتیشن و ۲۰۲۱ توی یه پارتیشن و ... باشه.

Interval Partitioning:
این مدل از پارتیشنینگ، یه اکستنشن از Range Partitioning هست که ما رو از مشخص کردن دقیق رنج پارتیشن‌ها معاف می‌کنه. یعنی نیاز نیست که حتما همه رینج‌هایی که نیاز داریم رو تعریف کنیم، بلکه با تعریف یکسری Range و یک Interval، در صورتی که داده مورد نظر، توی اون Range نبود، دیتابیس خودش بر اساس اون Interval، یک پارتیشن ایجاد می‌کنه و داده رو در اون قرار میده.

List Partitioning:
توی این دسته، برای هر پارتیشن، یک لیستی از مقادیر برای هر پارتیشن، مشخص میشه که بر اساس مقدار Partitioning Key داده‌ها، در اون پارتیشن قرار می‌گیره یا نه. مثلا می‌تونیم بگیم نوع محصولات خوراکی رو بریز توی یه پارتیشن و نوع محصول پوشیدنی رو بریز توی یه پارتیشن دیگه.

Hash Partitioning:
توی این دسته، دیتابیس به کمک یک تابع Hash داخلی، تصمیم میگیره که داده رو بین پارتیشن‌ها تقسیم کنه. تو این مورد ما نمی‌تونیم بگیم که کدوم داده‌ها رو توی کدوم پارتیشن‌ها ذخیره کن بلکه فقط میگیم که داده‌ها رو توی چند تا پارتیشن قرار بده. دیگه دیتابیس خودش میدونه و مقدار خروجی تابع Hashش.:)

Refrence Partitioning:
این روش Partitioning داره میگه که هر استراتژی‌ای که برای ذخیره جدول‌های parrent توی دیتابیس هست، توسط جدول‌های child هم برقرار باشه. مثلا فررض کنین یک جدول Student داشته باشیم و یک جدول Code که کد های دانشجو‌ها توش نگهداری میشه به این صورت که هر سطر داده در جدول Code یک Student_id به عنوان کلید خارجی داره و نشون‌دهنده این هست که هر کد مال کدوم دانشجو هست. در این صورت هر ردیف داده در جدول Code در همون پارتیشنی ذخیره میشه که داده متانظر Student_id ش ذخیره شده. این کار باعث میشه که پرفورمنس جوین بین جداول بالا بره.

Composite Partitioning:

این دسته، شامل ترکیبی از انواع پارتیشنینگ که تا حالا باهاشون آشنا شدیم، میشه. به این صورت که می‌تونیم بعد از تعریف یه Partitioning خاص برای جدول، برای هر پارتیشن یک Subpartition هم تعریف کنیم. مثلا متد Composite Hash-Range Partitioning می‌تونه Subpartitionهای خودش رو را با Hash Partitioning از پارتیشن‌های ایجاد شده توسط Range Partitioning، ایجاد کنه.

و در آخر برای ادامه بازم لینک و داکیومنت جذاب و قشنگ...:)
می‌تونین برای آشنایی بیشتر با این مبحث، این لینک رو مطالعه کنین.


🔰مشورت من به کامپیوتری ها
@coaching_ce
3
Channel name was changed to «مشورت من به کامپیوتری‌ها»
مشورت کامپیوتری‌ها
https://news.1rj.ru/str/peymanfakharian/198
((در این پادکست شنونده گفت‌وگو پیمان فخاریان و سینا عطاران هستیم. سینا عطاران از اولین‌های یکتانت هست که کار خودش رو به عنوان مهندسی نرم افزار شروع کرده و در حال حاضر به عنوان مدیر مهندسی یکتانت و مدیر فنی نجوا مشغول فعالیته. داخل این پادکست در مورد چالش ساختن تیم‌ها با عملکرد بالا صحبت شده.))

🟡بخش‌های این پادکست:

🔷ساختن تیم‌های تک با عملکرد بالا در ایران دقیقا چیه؟
01:50 ‌
🔷آیا برای تیم هدف مشخص شده؟
03:30
🔷چه کسی هدف گذاری را انجام می‌دهد؟
12:40
🔷تیم‌های کراس فانکشنال
19:05
🔷داستان آزادی عمل زیاد به تیم دادن و نتیجه منفی اون
34:57
🔷پارامترهای انگیزه داشتن آدم‌ها
46:55
🔷چالش سیستمCtr Predictor
53:17
🔷نقش لیدرها در عملکرد تیم
61:19
🔷چگونگی تعامل بین EM و PM
66:02
🔷آیا شده با حذف رول EM عملکرد تیم افزایش پیدا کنه؟
78:25
🔷ساختن تیم جونیور که دانشجو هستند
86:37


🔰مشورت کامپیوتری ها
@coaching_ce
3👍1
Channel name was changed to «مشورت کامپیوتری‌ها»
Media is too big
VIEW IN TELEGRAM
🔷یکی از مهم‌ ترین دوران دانشجویی دوره کارآموزی هست. دوره‌ای که اگر با موفقیت طی بشه می‌تونه منجر به استخدام و ورود به صنعت بشه.

🔷در این ویدیو به سوالات متداول دانشجوها در مورد کارآموزی اعم از چرا بریم کارآموزی، ملاک‌های انتخاب شرکت کارآموزی، چطور کارآموزی موفقی رو تجربه کنیم و... پرداخته شده.

🔷چرا بریم کارآموزی؟
00:12

🔷کار کردن در دوران کارشناسی و یادگیری کاربرد عملی درس‌ها
01:17

🔷ملاک‌های انتخاب شرکت کارآموزی
02:37

🔷به عنوان دانشجو چه چیزی رو در کارآموزی تجربه می‌کنیم؟
03:38

🔷پیدا کردن مسیر درست
04:09

🔷چطور کارآموزی موفقی رو تجربه کنیم؟
04:42

🔷به کارآموزها چه توصیه‌ای دارید؟
05:15

🔷بوتکمپ‌های پیشنهادی برای کارآموزی
06:10

🔷متن باز کردن مستندات درس برنامه سازی پیشرفته در سال 96
06:42

🔷بردن دستور کار آز سیستم عامل بر روی github
07:24

🔷ایده کد استار
07:40

🔷تجربه خودتون از کارآموزی
08:56

🔷محصول ساختن و صنعت
10:08



[تلگرام | اینستاگرام | ویرگول | اسپاتیفای | کست‌باکس | اپل‌پادکست]


🔰مشورت کامپیوتری ها
@coaching_ce
👍41🔥1👌1🥴1
🔷در این قسمت قراره با آرین هادی صحبت کنیم. آرین دانشجوی کارشناسی ارشد علوم کامپیوتر در دانشگاه صنعتی Eindhoven هست. در این مشورت می‌خوایم شیوه آموزشی پایگاه داده رو در دانشگاه‌های مختلف بررسی کنیم و گریزی به صنعت و رابطه بین این‌ها داشته باشیم. این بررسی و مقایسه می‌تونه جذاب باشه.

🗓 جمعه ۴ خرداد

ساعت ۱۸:۳۰ به وقت تهران و ساعت ۱۷:۰۰ به وقت آیندوهوون


[تلگرام | اینستاگرام | ویرگول |اسپاتیفای | کست‌باکس | اپل‌پادکست]


🔰مشورت کامپیوتری ها
@coaching_ce
👍62🔥1
Live stream scheduled for
مشورت کامپیوتری‌ها
مشورت کامپیوتری‌ها – مشورت ۵ - گفتگو با آرین هادی - پایگاه داده و آموزش
#مشورت_5
«بررسی شیوه آموزش پایگاه داده در دانشگاه‌های مختلف»


((در این مشورت قراره با آرین هادی صحبت کنیم. آرین دانشجوی کارشناسی ارشد علوم کامپیوتر در دانشگاه صنعتی Eindhoven هست. در این مشورت می‌خوایم شیوه آموزشی پایگاه داده رو در دانشگاه‌های مختلف بررسی کنیم و گریزی به صنعت و رابطه بین این‌ها داشته باشیم. این بررسی و مقایسه می‌تونه جذاب باشه.))

🟡بخش‌های این مشورت:

بخش اول

🔷شروع گفت‌وگو و معرفی مسیر آرین هادی
03:34

🔷شرایط این رشته
08:53

🔷درس Functions Of Process Mining
14:10

🔷رابطه دانشگاه با مسائل کاربردی صنعت و جریان‌های مالی آن
18:43

🔷شهر آیندهوون، هاب تکنولوژی اروپا
20:23

🔷شرکت ASML، یکه تاز صنعت تراشه جهان
20:44

🔷مدل سرمایه گذاری شرکت‌های بزرگ در دانشگاه‌ها در ایران و خارج
29:07

🔷مقطع ENGD، دکترایی برای مهندسان
33:46

🔷نقطه عطف قانون شرکت‌های دانش بنیان بزرگ
42:25

🔷صنعتی اصفهان و شریف، فلسفه تاسیس آن توسط دکتر مجتهدی
46:15

🔷اپلای آرین و سیستم اپلای هلند
48:30

🔷پروژه‌ای با همکاری سه دانشگاه هلند و شرایط مختلف آن
62:53


[تلگرام | اینستاگرام | ویرگول | اسپاتیفای | کست‌باکس | اپل‌پادکست]


🔰مشورت کامپیوتری‌ها
@coaching_ce
2
مشورت کامپیوتری‌ها
مشورت کامپیوتری‌ها – مشورت ۵ - گفتگو با آرین هادی - پایگاه داده و آموزش
#مشورت_5
«بررسی شیوه آموزش پایگاه داده در دانشگاه‌های مختلف»


((در این مشورت قراره با آرین هادی صحبت کنیم. آرین دانشجوی کارشناسی ارشد علوم کامپیوتر در دانشگاه صنعتی Eindhoven هست. در این مشورت می‌خوایم شیوه آموزشی پایگاه داده رو در دانشگاه‌های مختلف بررسی کنیم و گریزی به صنعت و رابطه بین این‌ها داشته باشیم. این بررسی و مقایسه می‌تونه جذاب باشه.))

🟡بخش‌های این مشورت:

بخش دوم

🔷شیوه تدریس پایگاه داده در ایران و خارج کشور
68:57

🔷 درس Engineering Of Data System و پروژه آن
70:37

🔷 درس Big Data و پروژه آن
81:26

🔷 نگهداری اطلاعات مختلف کاربران در اپلیکیشن‌هایی مثل Spotify
89:00

🔷 چند ده میلیارد رکورد روزانه یک اپراتور و چالش‌های آن
94:26

🔷 داستان و فلسفه Map Reduce
96:06

🔷درس DS و خاطره تدریس استاد شریفی زارچی
01:41:44

🔷مدیریت شبکه شتاب با روزی 200 الی 300میلیون تراکنش
01:48:49

🔷 اطلاعات در شبکه و چالش جا‌به‌جایی و ذخیره آن
1:49:39

🔷تمرین جذاب TA برای درس پایگاه داده
01:51:30

🔷جلوگیری از بازدیدهای فیک در تلگرام
01:55:10

🔷900میلیارد رکورد Oracle و کار کردن آن
02:09:46

🔷داستان کند شدن Elasticsearch و پیدا کردن مشکل آن
02:17:30


[تلگرام | اینستاگرام | ویرگول | اسپاتیفای | کست‌باکس | اپل‌پادکست]


🔰مشورت کامپیوتری‌ها
@coaching_ce