tech-afternoon – Telegram
tech-afternoon
1.23K subscribers
174 photos
6 videos
6 files
166 links
تِک‌افترنون، رویدادی گاه‌به‌گاه است با موضوعات حول معماری و توسعه نرم‌افزار، این کانال هم برای اشتراک اخبار، آموزش، نکاتی حول مهندسی نرم‌افزار، دیتابیس‌، تکنولوژی و مدیریت تولید محصولات نر‌م‌افزاری خواهد بود.
youtube.com/@AminTechTalks/videos
امین مصباحی
Download Telegram
نکات ادمینی برای مهاجرت به PostgreSQL ویژه SQL Server DBA ها

حتی به‌عنوان معمار یا توسعه‌دهنده، در صورت آگاهی از قابلیت‌های دیتابیس انجین، می‌تونیم سولوشن‌های بهتری برای نیازهامون طراحی کنیم.

بخش ۷ فلش‌کارت‌های قرمزمون، ویژه Failover، Disaster Recovery و Backup است. و به‌صورت روزانه کامل می‌شن ✍️

#MSSQL_to_PGSQL
👍4
🔐 گوگل، کاهش ۷۴٪ی آسیب‌پذیری‌های امنیتی حافظه در اندروید رو به بازنویسی بخش‌هایی با Rust به دست آورده.

اصلا و ابداً دوست ندارم جَو بدم که «امروزه، عصر Rust است و...» هدفم از این اشتراک این خبر، Rust نیست، بلکه اشاره به اهمیت اصل Security by Design و تکنیک‌های Safe Coding است.

اگر هر کدوم از مفاهیم زیر براتون جالب است، کامنت بگذارید، شاید بتونیم یه جلسه از تک‌افترنون یا چند فلش‌کارت رو بهش اختصاص بدیم 😉


- Secure Software Development Life Cycle (SSDLC)
- Security Development Lifecycle (SDL)
- Safe Coding
- Security by Design
- DevSecOps
- Threat Modeling
- Static Application Security Testing (SAST)
- Dynamic Application Security Testing (DAST)
🔥6
- خیلی از نوآوری‌ها و بهینگی‌های پایگاه‌داده چه در سطح قابلیت‌های کاربردی، چه در سطح بهینه‌سازی‌های الگوریتمی و محاسباتی طی ۳۰ سال گذشته اول توی PostgreSQL اومد. مثلا Multiversion Concurrency Control (MVCC) (کنترل همزمانی چند نسخه‌ای) یا مثلا GiST (Generalized Search Tree) مفاهیمی بودند که بقیه از PostgreSQL الهام گرفتن. یا برخی بهینگی‌های Query Optimizer.

- از اون‌جایی که محصول رایگان و کدباز است، طبیعتا انتظار بلوغ ابزارها، خصوصا توی لایه‌ی مدیریت رو نمی‌شه ازش داشت و مثلا همین Citus یا Barman یا ابزارهای جانبی متعددی کنارش ارائه می‌شن که شاید توی محصولات گرون و اینترپرایز مثل Oracle یا SQL Server همراه با خود محصول و با پشتیبانی رسمی ارائه می‌شن.

- خصوصا وقتی پای خرید لایسنس و استفاده قانونی از محصول به میون بیاد، دانش PostgreSQL لازم می‌شه.


- 🗿 تجربه شخصی: من حدود ۲۰ ساله به صورت تخصصی در کنار هر فعالیتی که توی حوزه نرم‌افزار داشتم، در زمینه دیتابیس فعال بودم، از تدریس، مشاوره، طراحی تا نگهداری و بهینه‌سازی دیتابیس‌هایی از چند ده گیگابایت تا چندصد ترابایت. خلاصه می‌تونم بگم زمان و انرژی نگهداری PostgreSQL در فضای غیر ابری (On-premise) نسبتا بیشتر از محصولاتی مثل Oracle یا SQL Server است (هرچقدر هم ساختار و دیتا بزرگ‌تر، زمان و انرژی بیشتری لازمه). ولی از نظر معماری و مفاهیم آکادمیک دیتابیس، وقتی به query planner / optimizer نگاه تخصصی و علمی داشته باشیم، 💎 فوق‌العاده است. اما توی محیط واقعی، خصوصا وقتی دیتابیس بزرگه، تعداد کاربر و کوئری‌های همز‌مان زیاده، و یا شرایط بدی پیش بیاد، عموما ایرادیابی و مدیریت Oracle یا SQL Server به مراتب سریع‌تر و بی‌دردسرتر است. ولی اگر روزی پای خرید لایسنس به میون بیاد، بعیده حتی سازمان‌های بزرگ هم قادر به حفظ محصولاتی باشن که الان بدون یک ریال هزینه لایسنس استفاده می‌کنن. اگر مهاجرت کرده باشید، یا پلنش رو داشته باشید، موضوع لایسنس خیلی ملموس‌تره.

من PostgreSQL رو خیلی بعدتر از بقیه پلتفرم‌ها شروع کردم (از نسخه ۹.۱، حدودا سال ۲۰۱۲) و تمام این سال‌ها شاهد نوآوری‌هایی بودم که بخش زیادیش کاربرد تخصصی داشت و مثلا ابزارهای بکاپ‌گیریش تا همین نسخه ۱۷ حتی با SQL Server 2005 شاید قابل مقایسه نباشه! (البته به جز Object Restore که دلیلش هم تفاوت مکانیزمشونه) هر پروژه‌ای، هر تیمی، هر سازمانی، هر محصولی، هر بودجه‌ای و ده‌ها از این «هر» ها باعث می‌شن تا انتخاب بهینه تغییر کنه. نمی‌شه به همه گفت MySQL یا PostgreSQL یا ... استفاده کنید. بلکه بخشی از مهندسی، انتخاب ابزار مناسب و متناسب است. و سعی کنیم توی بازی‌های بچه‌گانه‌ی این بهتر است یا اون نیوفتیم. بدون شک، PostgreSQL یکی از بازیگرهای اصلی حوزه دیتابیس است و برای سناریوهای مختلفی می‌تونه گزینه خیلی خوبی باشه. فقط یادمون باشه، مثلا تنوع ایندکس‌هاش بیشتر از SQL Server است، یا پیاده‌سازی HA با مکانیزم‌های اوراکلی مثل اکتیو دیتاگارد یا RAC فرق داره، حتی روش‌های ذخیره‌سازی یا ایراد یابیش، ابزارهای مونیتورینگ و... پس صرف اینکه بخش عمده دستورات SQL توی همشون مشابهه توی تله‌ی توهم بلد بودن نیوفتیم و تیم و محصول رو به مشکل نندازیم. حتی چون مثل Microsoft یا Oracle ساختار یادگیری آزمون‌محور و Certificateی نداره، انتخاب کتاب خوب هم گاها نیاز به تورق و چک کردن چند تا کتاب داره تا بتونین گزینه بهتر رو انتخاب کنید.

منتظر کارت‌قرمزهای 🟥 بعدی باشید... 😉
خوشحال می‌شم تجربیات، نظر یا پرسش‌هاتون رو طرح کنید و گپ بزنیم 💬
👌6
🚀 🎉 و 17 PostgreSQL منتشر شد

توی این فلش‌کارت قرمزها در مورد PostgreSQL نوشته‌ام و خواهم نوشت، در مورد قابلیت‌های اختصاصی نسخه ۱۷ هم علاوه بر فلش‌کارت‌های عمومی، به صورت اختصاصی می‌نویسم (خصوصا که دیگه برای برخی کارهای ساده مثل بکاپ incremental نیازی به Barman نیست!)

حالا بیایم یکم سابقه‌اش رو مرور کنیم:

- خالق PostgreSQL استاد دانشگاه MIT و برنده جایزه تورینگ، آقای مایکل استون‌بریکر (Michael Stonebraker) است که اگر نقشش رو در حوزه DBMSها از خلق PostgreSQL تا کمک به توسعه Oracle و SQL Server و... بررسی کنیم، می‌تونیم بگیم یکی از هیولاهای این حوزه است.

- مایکل‌استونبریکر نقش خیلی مهمی در توسعه Object-Relational Databases و Columnar Storage داشته.

- شرکت‌هایی مثل Apple، Cisco، Netflix، ,Instagram, Spotify, Airbnb, Uber, Ayvens ازش استفاده می‌کنن. مایکروسافت سال ۲۰۱۹ Citus Data که مقیاس‌پذیری افقی و پردازش توزیع‌شده رو برای PostgreSQL فراهم می‌کنه خرید.

🧵
👌6
چند روز پیش کارت‌هایی رو برای توضیح فایل editorconfig. گذاشتم که بالاتر می‌تونید پیدا کنید.

این سری، ۳۰ نوع فایل رو معرفی می‌کنم که اسمشون با نقطه شروع می‌شه و کاربردشون از جهاتی شبیه editorconfig است، یعنی تنظیماتی رو برای کارهای جانبی در توسعه نگهداری می‌کنند.

مثلا قواعدی رو که نیاز دارید linter شما حین بررسی کدها در نظر بگیره، یا مثلا قبل از هر commit یه سری کار روی فایل‌ها انجام بشه (مثل مرتب‌سازی و حذف فضای خالی انتهای خط‌ها و...)

خلاصه (اگر نخواستید ۹ کارت رو بخونید 😁):

- تا حد امکان هر کاری رو اتومات کنیم تا درگیر خطاهای سهوی یا فراموشی طی تکرارها نشیم

- تنظیمات رو بین اعضای تیم اشتراک بگذاریم تا یکدستی بیشتری در توسعه داشته باشیم و تنظیماتمون چندبارمصرف باشن.

- کلی ابزار و کتابخونه برای قاعده‌مندتر کردن توسعه، پیشگیری از اشتباهات و یکدستی کدها هست که شاید مرور سریع این ۹ کارت بهمون ایده بده! این ۳۰ نوع فایل که معرفی کردم با هدف ایده دادن بوده، نه به خاطر سپردن!

اگر فایل خوب و پرکابردی هست که توی کارت‌ها نیست، کامنت کنید 😉
🔥5
نکات ادمینی مهاجرت از SQL Server به PostgreSQL

- کارت ۷.۲: جایگزین‌های Log Shipping در PostgreSQL

- کارت ۷.۳: جایگزین‌‌های Always-On در PostgreSQL

🟥 این کارت قرمز‌ها رو من برای دوستانی درست می‌کنم که از SQL Server قصد مهاجرت به PostgreSQL رو دارند

💬 اگر به موضوع علاقه‌مندید یا سوالی دارید که بتونم پاسخ بدم، حتمن کامنت کنید 😉

#MSSQL_to_PGSQL
👍4
معرفی افزونه کاربردی برای VS Code

برای شما هم پیش میاد که چندین VS Code در حال اجرا دارید و بینشون سوییچ می‌کنید؟ هر بار هم باید یک لحظه بگردید و چک کنید الان روی کدومشون هستید؟

افزونه Peacock (طاووس) برای کمک به این وضعیته، می‌تونید هر کدوم رو کلا یه رنگ خاص بدید تا قاطی نکنید.

💣 گاهی یکی از VS Code ها روی یک فایل یا یک ماشین حساس مثل پروداکشنه ☠️ و یک تغییر اشتباهی روش می‌تونه دردسرساز بشه. پس بهتره رنگ محیط حساس رو تغییر بدیم تا بعدن دچار مشکل نشیم 😅

🔗 صفحه اختصاصی و دانلود
برنامه‌نویس: John Papa
تعداد دانلود: ۳.۳ میلیون
سورس‌کد
👍4
در مورد تیم پلتفرم یا Developer Platform Team دوست دارید بدونید؟

- مفهومش
- وظایفش
- خروجی‌هاش
- ابزارهای مورد استفاده
- مسیر شغلیش

اگر دوست داشتید با ایموجی‌های 👍 یا اگر موضوع جالبی نیست با 👎 نظرتون رو بگید لطفا 😉

#موقت
👍19
طی ۲۴ ساعت گذشته، و احتمالا چند روز آینده، خیلی‌هامون ذهنمون درگیر شرایط و اخبار ایرانه (چه ایران باشیم؛ چه از دور دنبال‌کننده اخبار و نگران وضعیت عزیزانمون)

در شرایطی که اخبار نگران‌کننده‌ای در جامعه وجود داره، حفظ تمرکز و آرامش برای ما اهمیت زیادی داره. حالا چیکار کنیم که تعادل رو حفظ کنیم و به کارمون برسیم؟ (۵ پیشنهاد به خودم و شما)

۱. محدود کردن مصرف اخبار: زمان مشخصی را برای خوندن اخبار تعیین کنیم و از دنبال کردن مداوم رسانه‌ها (خصوصا شبکه‌های اجتماعی که پر از اظهارنظرهای غیر مستند، شایعات و حتی بزرگنمایی‌های اضطراب‌آوره) خودداری کنیم تا از اضطراب بیش از حد جلوگیری کنیم، فقط یک یا دو منبع معتبر کافیه.

۲. ایجاد برنامه منظم: حفظ روال کاری و زندگی روزمره می‌تونه به ایجاد حس ثبات و کنترل کمک کنه، جلسات رو کنسل نکنیم، خودمون رو ملزم به رسوندن همون برنامه‌های دوران عادی کنیم.

۳. تمرین تکنیک‌های آرام‌سازی: فعالیت‌هایی مثل مدیتیشن، تمرینات تنفسی عمیق یا اگر یوگا بلد باشیم! می‌تونه به کاهش استرس و افزایش تمرکز کمک کند. یا حتی پیاده‌روی بدون خوندن یا فکر کردن به اخبار.

۴. ارتباط با عزیزان: با خانواده و دوستان خودمون در ارتباط باشیم ولی نه برای دنبال کردن اخبار و پیش‌بینی آنچه ازش بیخبریم! بلکه برای رد و بدل حس حمایت متقابل، و از بین بردن احساس تنهایی (آدم‌ها در کنار همدیگه، خصوصا خانواده هم شجاع‌ترن هم آرام‌تر)

۵. تمرکز بر موارد قابل کنترل: به جای نگرانی درباره مسائلی که خارج از کنترل ما هستن، روی وظایف (وظایفمون چه به عنوان یک مهندس و چه به عنوان یک انسان، یک عضو خانواده‌) و پروژه‌های کاری خودمون تمرکز کنیم تا احساس موفقیت و پیشرفت داشته باشیم، این حس مثل دارو برای اضطراب ناشی از اخبار نگران‌کننده است.

می‌دونم که توصیه زیاد می‌شنویم وعمل کردن بهش سخته، با اینکه دیروز می‌خواستم بعد از کار، یه مطلب آماده کنم، ولی این اخبار نگذاشت! لذا شاید این ۵ پیشنهاد به خودم و شما یه یادآوری باشه که بتونیم آرامش بیشتری داشته باشیم 😊
به امید روزهایی که فقط خبرهای خوب بشنویم و مخابره کنیم 🌱
👍11🙏1
E1-Overview on platform engineering
Amin Mesbahi
🎧 پست شنیداری ۱: مهندسی پلتفرم
اولین پست شنیداری تک‌افترنون، با موضوع مهندسی پلتفرم


مهندسی پلتفرم چیه؟
مهندسی پلتفرم به فرآیند طراحی، ساخت و نگهداری زیرساخت و پلتفرم پایه‌ای اشاره داره. مهندسان پلتفرم مسئول ایجاد ابزارها، چارچوب‌ها و سیستم‌های بنیادی هستند که توسعه‌دهنده‌های نرم‌افزار و سایر ذینفع‌ها مثل معمارهای سولوشن/نرم‌افزار می‌تونن از اون‌ها برای ساخت و تحویل محصولات نرم‌افزاری استفاده کنند.

امیدوارم دوست داشته باشین و با کامنت‌هاتون به بهتر شدن پست‌های شنیداری بعدی کمک کنید...

مدت: ۲۸ دقیقه
👍6🔥2
💡📌 بدهی فنی، Debt Week، code stewardship و تأثیرش بر تیم

سلام به همه 😊
این ۵ تا کارت رو برای بررسی و توضیح بدهی فنی (که همه‌مون رو پیر کرده) و تاثیر داشتن debt week پرداختم.

امیدوارم بخونید، به آمار و اعداد ۲ اسلاید آخر نگاه بندازید و تجربه خودتون از بدهی فنی و روش مقابله باهاش توی کامنت بنویسید و گپ بزنیم در موردش 😉
🔥6👌6