💬 پاول دورف موسس #تلگرام تو مصاحبه اخیرش گفته که:
✅ کدنویسی تلگرام رو برادرش انجام داده و خودش هم مدیر محصول تلگرام هس.
✅ هر امکاناتی که به تلگرام اضافه میشه، ایده شخص خودشه.
✅ صد درصد مالکیت کمپانی هم به خودش تعلق داره.
✅ کمپانی تلگرام واحد منابع انسانی و جذب نیرو نداره و کلا ۳۰ تا مهندس داره و برنامهنویسهاشو از بین مسابقاتی که برگذار میکنه انتخاب میکنه.
💙 میگه ما بهترینِ بهترینِ بهترینهارو انتخاب میکنیم.
❗️خیلی جالبه ۹۰۰ میلیون کاربر توسط ۳۰ نفر مدیریت میشه👌🏻
🔹پاول دورف با ۱۵.۵ میلیارد دلار ثروت میگه که هیچ کدوم از چیزهایی که بقیه پولدارها مثل هواپیما و کشتی و حتی خونه دارن رو من ندارم (مستأجر هست).
🔹فلسفش اینه که هرگونه دارایی، باعث میشه که سرم به اونا گرم بشه و وقتم رو بگیره و منو از هدفم دور کنه.
🔹میگه ترجیح میدم تمام وقتم رو بذارم برای بستری که به میلیونها نفر اجازه میده باهم در ارتباط باشن، تا اینکه دغدم رو بذارم برای دیزاین خونهام، جایی که فقط خودم و اطرافیانم میتونیم ازش استفاده کنیم.
🔹میگه اولویت اول تلگرام از همون ابتدا حفظ امنیت کاربرانش بوده و برای همین همیشه از سمت دولتهای مختلف تحت فشار قرار گرفته که اطلاعات کاربران رو بده.
🔹مجبور شده از کشورش روسیه بزنه بیرون و در آمریکا هم میخواستن بکشنش. در اروپا هم بهش اجازه کار و جذب نیرو نمیدادن. ۷ ساله تو اماراته و تنها دولتی بوده که اذیتش نکرده.
🔹میگه من به آزادی بیان اعتقاد دارم و درخواست دولتهارو رد میکنم. تنها فشار اساسی از طرف اپل و گوگل بوده که خیلی جاها باید بهش تن بده تا تلگرام از اپاستور و گوگلپلی حذف نشه.
🔹تلگرام با ۹۰۰ میلیون کاربر تا حالا یکبار هم برای جذب کاربر تبلیغات انجام نداده.
🔹ازش پرسید که چطوری تونستی بدون تبلیغات به چنین چیزی برسی؟ میگه چون آدمها باهوشن. محصول خوب که میبینن، سرعت و امنیت و امکاناتش رو که از نزدیک لمس میکنن دیگه بیخیالش نمیشن و تازه به هم معرفیش هم میکنن.
لینک مصاحبه:
https://www.youtube.com/watch?si=mbW_3aBlL4JBR30S&v=1Ut6RouSs0w&feature=youtu.be
@gopher_academy | @Syntax_fa
✅ کدنویسی تلگرام رو برادرش انجام داده و خودش هم مدیر محصول تلگرام هس.
✅ هر امکاناتی که به تلگرام اضافه میشه، ایده شخص خودشه.
✅ صد درصد مالکیت کمپانی هم به خودش تعلق داره.
✅ کمپانی تلگرام واحد منابع انسانی و جذب نیرو نداره و کلا ۳۰ تا مهندس داره و برنامهنویسهاشو از بین مسابقاتی که برگذار میکنه انتخاب میکنه.
💙 میگه ما بهترینِ بهترینِ بهترینهارو انتخاب میکنیم.
❗️خیلی جالبه ۹۰۰ میلیون کاربر توسط ۳۰ نفر مدیریت میشه👌🏻
🔹پاول دورف با ۱۵.۵ میلیارد دلار ثروت میگه که هیچ کدوم از چیزهایی که بقیه پولدارها مثل هواپیما و کشتی و حتی خونه دارن رو من ندارم (مستأجر هست).
🔹فلسفش اینه که هرگونه دارایی، باعث میشه که سرم به اونا گرم بشه و وقتم رو بگیره و منو از هدفم دور کنه.
🔹میگه ترجیح میدم تمام وقتم رو بذارم برای بستری که به میلیونها نفر اجازه میده باهم در ارتباط باشن، تا اینکه دغدم رو بذارم برای دیزاین خونهام، جایی که فقط خودم و اطرافیانم میتونیم ازش استفاده کنیم.
🔹میگه اولویت اول تلگرام از همون ابتدا حفظ امنیت کاربرانش بوده و برای همین همیشه از سمت دولتهای مختلف تحت فشار قرار گرفته که اطلاعات کاربران رو بده.
🔹مجبور شده از کشورش روسیه بزنه بیرون و در آمریکا هم میخواستن بکشنش. در اروپا هم بهش اجازه کار و جذب نیرو نمیدادن. ۷ ساله تو اماراته و تنها دولتی بوده که اذیتش نکرده.
🔹میگه من به آزادی بیان اعتقاد دارم و درخواست دولتهارو رد میکنم. تنها فشار اساسی از طرف اپل و گوگل بوده که خیلی جاها باید بهش تن بده تا تلگرام از اپاستور و گوگلپلی حذف نشه.
🔹تلگرام با ۹۰۰ میلیون کاربر تا حالا یکبار هم برای جذب کاربر تبلیغات انجام نداده.
🔹ازش پرسید که چطوری تونستی بدون تبلیغات به چنین چیزی برسی؟ میگه چون آدمها باهوشن. محصول خوب که میبینن، سرعت و امنیت و امکاناتش رو که از نزدیک لمس میکنن دیگه بیخیالش نمیشن و تازه به هم معرفیش هم میکنن.
لینک مصاحبه:
https://www.youtube.com/watch?si=mbW_3aBlL4JBR30S&v=1Ut6RouSs0w&feature=youtu.be
@gopher_academy | @Syntax_fa
👍32👎3❤1👌1
سوال پایتونی:
چگونه میتوان در Python از ویژگیهای Dataclasses برای ایجاد کلاسهای سادهتر و قابل مدیریتتر استفاده کرد؟ یک مثال ارائه دهید.
Dataclasses
در Python یک راه ساده برای تعریف کلاسهای حاوی دادهها (data classes) فراهم میکنند. این ویژگی در Python 3.7 معرفی شد و از کد تکراری برای تعریف متدهای init، repr، eq و دیگر متدهای پایهای جلوگیری میکند.
برای استفاده از Dataclasses، کافی است از دکوراتور @dataclass روی تعریف کلاس استفاده کنید. سپس میتوانید فیلدهای کلاس را با انواع داده مختلف تعریف کنید.
مثال:
در این مثال، Person یک dataclass است که سه فیلد name، age و email دارد. فیلد email یک مقدار پیشفرض None دارد. با استفاده از @dataclass، Python به طور خودکار متدهایی مانند init و repr را برای ما ایجاد میکند.
Dataclasses همچنین امکانات دیگری مانند مقایسه اشیاء، هشپذیری، و گزینههای پیشرفتهتر را نیز فراهم میکنند.
#python
@Syntax_fa
چگونه میتوان در Python از ویژگیهای Dataclasses برای ایجاد کلاسهای سادهتر و قابل مدیریتتر استفاده کرد؟ یک مثال ارائه دهید.
Dataclasses
در Python یک راه ساده برای تعریف کلاسهای حاوی دادهها (data classes) فراهم میکنند. این ویژگی در Python 3.7 معرفی شد و از کد تکراری برای تعریف متدهای init، repr، eq و دیگر متدهای پایهای جلوگیری میکند.
برای استفاده از Dataclasses، کافی است از دکوراتور @dataclass روی تعریف کلاس استفاده کنید. سپس میتوانید فیلدهای کلاس را با انواع داده مختلف تعریف کنید.
مثال:
from dataclasses import dataclass
@dataclass
class Person:
name: str
age: int
email: str = None
person1 = Person("Alice", 30, "alice@example.com")
person2 = Person("Bob", 25)
print(person1) # Output: Person(name='Alice', age=30, email='alice@example.com')
print(person2) # Output: Person(name='Bob', age=25, email=None)
print(person1 == person2) # Output: False
در این مثال، Person یک dataclass است که سه فیلد name، age و email دارد. فیلد email یک مقدار پیشفرض None دارد. با استفاده از @dataclass، Python به طور خودکار متدهایی مانند init و repr را برای ما ایجاد میکند.
Dataclasses همچنین امکانات دیگری مانند مقایسه اشیاء، هشپذیری، و گزینههای پیشرفتهتر را نیز فراهم میکنند.
#python
@Syntax_fa
👍12❤1
هکاتون The Open League
▪️بنیاد TON هکاتون The Open League را راهاندازی کرد: مسیری سریع برای ورود به Open League با بیش از 150 میلیون دلار پاداش و مشوقهای مختلف برای کاربران.
▪️هکاتون از آوریل تا ژوئن اجرا میشود و صندوق جایزهی آن 2 میلیون دلار است.
▪️شرکتکنندگان اپلیکیشن و موارد استفاده جدید را برای دنیای Web3 شامل GameFi و شبکههای اجتماعی Web3 و DeFi و تجارت الکترونیک در TON و Telegram میسازند.
چرا در این هکاتون شرکت کنیم؟
▪️صندوق جایزهی 2 میلیون دلاری.
▪️مسیری سریع برای شرکت در The Open League با حمایت 50،000 Toncoin جهت تقویت استخر نقدینگی توکن شما.
▪️بهترین پروژهها میتوانند از صندوق 500،000$ ارائه شده توسط TON Ventures کمک مالی دریافت کنند.
▪️فرصتی برای ملاقات با اعضای بنیاد TON و مدیران صندوقهای سرمایهگذاری خطرپذیر در TON در طول Gateway در شهر دبی.
پروژههای شرکتکننده در فصل آزمایشی Open League شاهد رشد سه رقمی در تعداد کاربران فعال، هولدرهای توکنها، ارزش بازار و حجم معاملات در صرافیهای غیرمتمرکز TON بودهاند. این در حالیست که تنها 1 میلیون Toncoin پاداش برای فصل آزمایشی در نظر گرفته شده بود. در فصل آینده، جوایز 30 برابر افزایش خواهند داشت: 30 میلیون Toncoin پاداش برای 3 ماه.
شما و تیمتان میتوانید در رقابت با دیگران برنده شوید؟ وقت سازندگی در TON فرا رسیده!
همین الان ثبت نام کنید!
@gopher_academy
@Syntax_fa
▪️بنیاد TON هکاتون The Open League را راهاندازی کرد: مسیری سریع برای ورود به Open League با بیش از 150 میلیون دلار پاداش و مشوقهای مختلف برای کاربران.
▪️هکاتون از آوریل تا ژوئن اجرا میشود و صندوق جایزهی آن 2 میلیون دلار است.
▪️شرکتکنندگان اپلیکیشن و موارد استفاده جدید را برای دنیای Web3 شامل GameFi و شبکههای اجتماعی Web3 و DeFi و تجارت الکترونیک در TON و Telegram میسازند.
چرا در این هکاتون شرکت کنیم؟
▪️صندوق جایزهی 2 میلیون دلاری.
▪️مسیری سریع برای شرکت در The Open League با حمایت 50،000 Toncoin جهت تقویت استخر نقدینگی توکن شما.
▪️بهترین پروژهها میتوانند از صندوق 500،000$ ارائه شده توسط TON Ventures کمک مالی دریافت کنند.
▪️فرصتی برای ملاقات با اعضای بنیاد TON و مدیران صندوقهای سرمایهگذاری خطرپذیر در TON در طول Gateway در شهر دبی.
پروژههای شرکتکننده در فصل آزمایشی Open League شاهد رشد سه رقمی در تعداد کاربران فعال، هولدرهای توکنها، ارزش بازار و حجم معاملات در صرافیهای غیرمتمرکز TON بودهاند. این در حالیست که تنها 1 میلیون Toncoin پاداش برای فصل آزمایشی در نظر گرفته شده بود. در فصل آینده، جوایز 30 برابر افزایش خواهند داشت: 30 میلیون Toncoin پاداش برای 3 ماه.
شما و تیمتان میتوانید در رقابت با دیگران برنده شوید؟ وقت سازندگی در TON فرا رسیده!
همین الان ثبت نام کنید!
@gopher_academy
@Syntax_fa
dorahacks.io
The Open League Hackathon | TON | Hackathon | DoraHacks
# **What is The Open League Hackathon?**
Welcome to The Open League Hackathon, organized by the TON Foundation and [The Open League program](https://ton.org/en/open-league). This hackathon marks a unique point in the development of the TON ecosystem, the…
Welcome to The Open League Hackathon, organized by the TON Foundation and [The Open League program](https://ton.org/en/open-league). This hackathon marks a unique point in the development of the TON ecosystem, the…
🔥2❤1👍1
This media is not supported in your browser
VIEW IN TELEGRAM
⭕️بخشی از مستند شوک سال 88 در تلویزیون
همون حوالی که تلویزیون داشت اینترنت رو مثل دوچرخه حرام اعلام کرد و تماما مستند میساخت که اقا اینترنت یعنی فساد بچه هاتون، رفته بودم انتخاب رشته کنم برای رشته فنی ، مادر و برادر برای تحقیق رفته بودن یکی از کافی نت های شهر که این پسر برای یه شرکته پای کامپیوترش داره هک میکنه ، این هک چیه؟ چون گفته بودن ما درباره اینها سوادی نداریم راهنمایی میخواستن بگیرن..
کافی نتی بهش گفته بود داره دزدی میکنه:).
بماند که مسیر زندگی من با این حرف عوض شد و بخاطر این مساله مسیرها رفتم ،ولی آخوندی که شوک میساخت و حرام اعلام میکرد، الان داره تبلیغ فلسطین میکنه توی شبکه های مجازی که خودش رای به فیلترش داده.
در سرزمین من همه چیز حرام اعلام میشه ،البته برای رعیت ، نه برای درباریان.
مثل آیفون که گفتن لاکچری هست ممنوعش کنید فقط بیزحمت برای فرار آقازادهها و درباریان جت شخصی رو ازاد بذارید.
@securation
@Syntax_fa
همون حوالی که تلویزیون داشت اینترنت رو مثل دوچرخه حرام اعلام کرد و تماما مستند میساخت که اقا اینترنت یعنی فساد بچه هاتون، رفته بودم انتخاب رشته کنم برای رشته فنی ، مادر و برادر برای تحقیق رفته بودن یکی از کافی نت های شهر که این پسر برای یه شرکته پای کامپیوترش داره هک میکنه ، این هک چیه؟ چون گفته بودن ما درباره اینها سوادی نداریم راهنمایی میخواستن بگیرن..
کافی نتی بهش گفته بود داره دزدی میکنه:).
بماند که مسیر زندگی من با این حرف عوض شد و بخاطر این مساله مسیرها رفتم ،ولی آخوندی که شوک میساخت و حرام اعلام میکرد، الان داره تبلیغ فلسطین میکنه توی شبکه های مجازی که خودش رای به فیلترش داده.
در سرزمین من همه چیز حرام اعلام میشه ،البته برای رعیت ، نه برای درباریان.
مثل آیفون که گفتن لاکچری هست ممنوعش کنید فقط بیزحمت برای فرار آقازادهها و درباریان جت شخصی رو ازاد بذارید.
@securation
@Syntax_fa
👍14👎3🤣1
کی بهتره از mysql به postgresql مهاجرت کنیم
https://youtu.be/yqMqgODXb4I?si=tFTKpets0KAdLSbN
#database
@Syntax_fa
https://youtu.be/yqMqgODXb4I?si=tFTKpets0KAdLSbN
#database
@Syntax_fa
YouTube
کی بهتره از مای اس کیو ال به پستگرس مهاجرت کنیم؟
کی بهتره از مای اس کیو ال به پستگرس مهاجرت کنیم؟
https://youtu.be/yqMqgODXb4I
در این ویدیو به بررسی بهترین زمان برای مهاجرت از پایگاه داده MySQL به PostgreSQL میپردازیم. این تصمیم چه تاثیری بر عملکرد، امنیت و قابلیتهای پیشرفتهتر دادهها خواهد داشت؟ ما…
https://youtu.be/yqMqgODXb4I
در این ویدیو به بررسی بهترین زمان برای مهاجرت از پایگاه داده MySQL به PostgreSQL میپردازیم. این تصمیم چه تاثیری بر عملکرد، امنیت و قابلیتهای پیشرفتهتر دادهها خواهد داشت؟ ما…
👀4👍2
یعضی وقتا یا بهتره بگیم اکثر مواقع بدلیل تحریم و یا فیلترینگ نمیتونیم پکیج های پایتونی رو نصب کنیم.
یکی از راه حل ها استفاده از دی ان اس های شکن و ... هستش.
نحوه استفادش خیلی راحته
توی لینوکس کافیه برید داخل فایل /etc/resolv.cof و nameserver رو تغییر بدید.
یک روش دیگه استفاده از مخزن های جایگزین (mirror) هستش. برای مثال یکی از مخزن های داخل کشور رانفلر (Runflare mirror) هست.
برای استفاده از مخزن جایگزین کافیه موقع نصب یک پکیج جدید این دستور رو اضافه کنید.
چند تا از مخزن های خارجی:
https://parswebserver.com/mirror-storages-for-pip/
@Syntax_fa
یکی از راه حل ها استفاده از دی ان اس های شکن و ... هستش.
نحوه استفادش خیلی راحته
توی لینوکس کافیه برید داخل فایل /etc/resolv.cof و nameserver رو تغییر بدید.
یک روش دیگه استفاده از مخزن های جایگزین (mirror) هستش. برای مثال یکی از مخزن های داخل کشور رانفلر (Runflare mirror) هست.
برای استفاده از مخزن جایگزین کافیه موقع نصب یک پکیج جدید این دستور رو اضافه کنید.
pip install --trusted-host https://mirror-pypi.runflare.com --index-url https://mirror-pypi.runflare.com/simple/ django
چند تا از مخزن های خارجی:
source host:
https://mirror-pypi.runflare.com
https://pypi.tuna.tsinghua.edu.cn
https://mirrors.aliyun.com
https://pypi.mirrors.ustc.edu.cn
https://repo.huaweicloud.com
http://pypi.douban.com
http://pypi.sdutlinux.org
source adderess:
https://mirror-pypi.runflare.com/simple/
https://pypi.tuna.tsinghua.edu.cn/simple/
https://mirrors.aliyun.com/pypi/simple/
https://pypi.mirrors.ustc.edu.cn/simple/
https://repo.huaweicloud.com/repository/pypi/simple/
http://pypi.douban.com/simple/
http://pypi.sdutlinux.org/
https://parswebserver.com/mirror-storages-for-pip/
@Syntax_fa
👍8❤2
مهاجرت به عنوان یک #برنامهنویس به #هلند! زمانی که داخل کشور سال ۹۸-۹۹ ماهی ۱۵۰ میلیون درآمد داری!
تو قسمت جدید راکتکست راکت با Bobby Babazadeh هم صحبت شدیم تا ببینیم مسیر مهاجرت چطوریه؟ چه چالشهای داره؟ اصلا خوبه؟
link
https://youtu.be/WQLzdcTDpj0?si=JHJZczU29SkR_e-z
@Syntax_fa
تو قسمت جدید راکتکست راکت با Bobby Babazadeh هم صحبت شدیم تا ببینیم مسیر مهاجرت چطوریه؟ چه چالشهای داره؟ اصلا خوبه؟
link
https://youtu.be/WQLzdcTDpj0?si=JHJZczU29SkR_e-z
@Syntax_fa
👍2
پکیج d_jwt_auth آپدیت شد!
- قابلیت محدود کردن دیوایس هایی که از یک اکانت استفاده می کنند.
source code:
https://github.com/alireza-fa/django-jwt-auth
pypi:
https://pypi.org/project/d-jwt-auth/
- قابلیت محدود کردن دیوایس هایی که از یک اکانت استفاده می کنند.
source code:
https://github.com/alireza-fa/django-jwt-auth
pypi:
https://pypi.org/project/d-jwt-auth/
🔥6👍2
مقاله جالبیه در مورد انواع روش های ارتباط real-time و مزایا و معایب هر کدوم از جنبه های مختلف
https://rxdb.info/articles/websockets-sse-polling-webrtc-webtransport.html
@gocasts
#websocket
@Syntax_fa
https://rxdb.info/articles/websockets-sse-polling-webrtc-webtransport.html
@gocasts
#websocket
@Syntax_fa
rxdb.info
WebSockets vs Server-Sent-Events vs Long-Polling vs WebRTC vs WebTransport | RxDB - JavaScript Database
Learn the unique benefits and pitfalls of each real-time tech. Make informed decisions on WebSockets, SSE, Polling, WebRTC, and WebTransport.
👍4
Media is too big
VIEW IN TELEGRAM
دورهمی هفته یازدهم مهندسین گولنگ
(پیشنهاد میشه ببینید)
موضوع: GRPC, Protocol Buffers, Google API Design, Transcoding (بخش اول)
این هفته به موضوع GRPC, Protocol Buffers پرداختیم و یک پروژه کوچک را آغاز کردیم و grpc server, client را توسعه دادیم.
🔗 لینک ویدئو در یوتیوب: https://www.youtube.com/watch?v=iAvGdVDkbG8
🔗 شنیدن پادکست در اسپاتیفای: https://open.spotify.com/show/6aQdgKiOF5tuzI7mpijlfj
🔗 شنیدن پادکست در گوگل پادکست: https://podcasts.google.com/feed/aHR0cHM6Ly9hbmNob3IuZm0vcy9kZGY3OWRiNC9wb2RjYXN0L3Jzcw
🔗 شنیدن پادکست در کست باکس: https://castbox.fm/va/5381928
🔗 آدرس پروژه: https://github.com/GoFarsi/grpc-service
@gopher_academy
(پیشنهاد میشه ببینید)
موضوع: GRPC, Protocol Buffers, Google API Design, Transcoding (بخش اول)
این هفته به موضوع GRPC, Protocol Buffers پرداختیم و یک پروژه کوچک را آغاز کردیم و grpc server, client را توسعه دادیم.
🔗 لینک ویدئو در یوتیوب: https://www.youtube.com/watch?v=iAvGdVDkbG8
🔗 شنیدن پادکست در اسپاتیفای: https://open.spotify.com/show/6aQdgKiOF5tuzI7mpijlfj
🔗 شنیدن پادکست در گوگل پادکست: https://podcasts.google.com/feed/aHR0cHM6Ly9hbmNob3IuZm0vcy9kZGY3OWRiNC9wb2RjYXN0L3Jzcw
🔗 شنیدن پادکست در کست باکس: https://castbox.fm/va/5381928
🔗 آدرس پروژه: https://github.com/GoFarsi/grpc-service
@gopher_academy
👍3🔥1
سلام به همه وقتتون بخیر
من این چند وقت پست کم گذاشتم دلیل آنلاین نبودنم در واقع این کسب و کاریه که تازگیا شروع کردم😁
همیشه به راه اندازی فروشگاه آنلاین علاقه خاصی داشتم در کل از تولید کردن و فروختن خیلی خوشم میاد. بالاخره دارم انجامش میدم:)
تابلو های این شکلی میفروشیم که اسمشو گذاشتیم«تابلو لومن»
تابلو بصورت نقاشی با قلم سیاه هستش ولی وقتی روشن میشه همه چی خیلی خوشگل تر میشه
همچنین طرح مورد علاقه خودتونم میتونیم براتون آماده کنیم👌
برای تزئین و هدیه دادن خیلی مناسبه
لینک کانال استلار هنر:
@StellarHonar
گالری محصولاتمون:
https://stellarhonar.ir
الان که اول راهمون هستیم اگه تو کانال و گروهتون فوروارد کنید کمک بزرگی کردید دوستان🙏
من این چند وقت پست کم گذاشتم دلیل آنلاین نبودنم در واقع این کسب و کاریه که تازگیا شروع کردم😁
همیشه به راه اندازی فروشگاه آنلاین علاقه خاصی داشتم در کل از تولید کردن و فروختن خیلی خوشم میاد. بالاخره دارم انجامش میدم:)
تابلو های این شکلی میفروشیم که اسمشو گذاشتیم«تابلو لومن»
تابلو بصورت نقاشی با قلم سیاه هستش ولی وقتی روشن میشه همه چی خیلی خوشگل تر میشه
همچنین طرح مورد علاقه خودتونم میتونیم براتون آماده کنیم👌
برای تزئین و هدیه دادن خیلی مناسبه
لینک کانال استلار هنر:
@StellarHonar
گالری محصولاتمون:
https://stellarhonar.ir
الان که اول راهمون هستیم اگه تو کانال و گروهتون فوروارد کنید کمک بزرگی کردید دوستان🙏
🔥6👍3👏3🥰1😁1
به دنبال ساختار باشید و نه چارچوب
چند روز پیش یه مربی کودک یه حرف خیلی مهمی زد با این مفهوم: «ما اینجا برای بچه ها ساختار تعیین می کنیم نه چارچوب، چارچوب یعنی حد و مرز!»
این جمله رو باید قاب کرد و زد رو دیوار، احتمالا در ابعاد خیلی زیادی از زندگی مهم باشه. در مهندسی نرم افزار و توسعه محصول هم خیلی حرف مهمیه.
بیشتر اوقات ما دنبال چارچوب هستیم در مهندسی نرم افزار، به همین دلیل وقتی خودمون رو به یه چارچوب خاص محدود می کنیم با چالش های زیادی روبرو میشیم. در حالیکه بهتره ما برای توسعه محصول ساختار داشته باشیم و طبق اصول ساختاری کار رو پیش ببریم، اینطوری چالش مون کمتر میشه.
اجازه بدید برداشت خودم از چارچوب و ساختار رو کمی بیشتر باز کنم. ساختار میشه مجموعه از قواعد رفتاری که باید سعی کنیم در توسعه محصول بهشون پایبند باشیم، در مقابل، چارچوب میشه تعیین کردن یه سری حد و مرز مشخص به شیوه ای سختگیرانه.
مثلا اگه بخوام برای توسعه یک سرویس ساختار تعیین کنم احتمالا میگم: این سرویس باید توان پاسخگویی بالایی داشته باشه، در مقابل خطا مقاوم باشه، قابلیت مقیاس پذیری داشته باشه، یک قرارداد ساده و شفاف به کلاینت ها ارائه بده و مواردی از این دست.
اما اگه بخوام چارچوب برای سرویس تعیین کنم احتمالا میگم: ما باید از ساختار کد مبتنی بر clean code یا ddd در فلان repository که خودمون یا دیگران اونو نوشتن پیروی کنیم، باید همه ورودی هارو تو پوشه port قرار بدیم، باید همه مدل هامون تو پوشه models باشه، باید از فلان روش ci/cd استفاده کنیم.
در توسعه محصول تعیین کردن حد و مرز و چارچوب میتونه خوب باشه، اما بشرطی که تعیین این حد و مرز تنها زمان پیاده سازی سرویس باشه و متعهد بشیم که کورکورانه و سختگیرانه نخوایم این چارچوب رو به همه سرویس ها و محصولات تحمیل کنیم.
خیلی از practiceهایی که معروف شدند مثل clean code و ddd و tdd و غیره هم از نظر من بیشتر به دنبال این هستند که به شما کمک کنند که برای کارتون ساختار تعیین کنید. در حالیکه اشتباهی که زیاد رخ میده اینه که ما با خوندن این مطالب احتمالا بیشتر به سمت درآوردن چارچوب میریم... همه ش به دنبال این هستیم که مثلا یه boilerplate داشته باشیم که از clean code پیروی کنه و همون رو همه جا استفاده کنیم.
من گاها به دوستان متذکر میشم که خوندن این الگوها و منابع خیلی خوبه، به شرطی که شما سعی کنی جان کلام و دغدغه اصلی رو متوجه بشی، نه اینکه سعی کنی به دنبال یک راه حل فست فودی و چارچوب مشخص و معین باشی که کورکورانه همه جا ازش استفاده کنی.
شما وقتی برای کارت ساختار داشته باشی میتونی انعطاف پذیر باشی و بسته به نیازت چارچوب تعیین کنی، اما اگه بخوای یه چارچوب معین رو همه جا رعایت کنی احتمالا یه جاهایی اصول ساختاری خودت رو مجبور میشی زیر پا بذاری چون هیچ چارچوب واحدی وجود نداره که برای همه نیازها مناسب باشه.
@gocasts
#Note
@Syntax_fa
چند روز پیش یه مربی کودک یه حرف خیلی مهمی زد با این مفهوم: «ما اینجا برای بچه ها ساختار تعیین می کنیم نه چارچوب، چارچوب یعنی حد و مرز!»
این جمله رو باید قاب کرد و زد رو دیوار، احتمالا در ابعاد خیلی زیادی از زندگی مهم باشه. در مهندسی نرم افزار و توسعه محصول هم خیلی حرف مهمیه.
بیشتر اوقات ما دنبال چارچوب هستیم در مهندسی نرم افزار، به همین دلیل وقتی خودمون رو به یه چارچوب خاص محدود می کنیم با چالش های زیادی روبرو میشیم. در حالیکه بهتره ما برای توسعه محصول ساختار داشته باشیم و طبق اصول ساختاری کار رو پیش ببریم، اینطوری چالش مون کمتر میشه.
اجازه بدید برداشت خودم از چارچوب و ساختار رو کمی بیشتر باز کنم. ساختار میشه مجموعه از قواعد رفتاری که باید سعی کنیم در توسعه محصول بهشون پایبند باشیم، در مقابل، چارچوب میشه تعیین کردن یه سری حد و مرز مشخص به شیوه ای سختگیرانه.
مثلا اگه بخوام برای توسعه یک سرویس ساختار تعیین کنم احتمالا میگم: این سرویس باید توان پاسخگویی بالایی داشته باشه، در مقابل خطا مقاوم باشه، قابلیت مقیاس پذیری داشته باشه، یک قرارداد ساده و شفاف به کلاینت ها ارائه بده و مواردی از این دست.
اما اگه بخوام چارچوب برای سرویس تعیین کنم احتمالا میگم: ما باید از ساختار کد مبتنی بر clean code یا ddd در فلان repository که خودمون یا دیگران اونو نوشتن پیروی کنیم، باید همه ورودی هارو تو پوشه port قرار بدیم، باید همه مدل هامون تو پوشه models باشه، باید از فلان روش ci/cd استفاده کنیم.
در توسعه محصول تعیین کردن حد و مرز و چارچوب میتونه خوب باشه، اما بشرطی که تعیین این حد و مرز تنها زمان پیاده سازی سرویس باشه و متعهد بشیم که کورکورانه و سختگیرانه نخوایم این چارچوب رو به همه سرویس ها و محصولات تحمیل کنیم.
خیلی از practiceهایی که معروف شدند مثل clean code و ddd و tdd و غیره هم از نظر من بیشتر به دنبال این هستند که به شما کمک کنند که برای کارتون ساختار تعیین کنید. در حالیکه اشتباهی که زیاد رخ میده اینه که ما با خوندن این مطالب احتمالا بیشتر به سمت درآوردن چارچوب میریم... همه ش به دنبال این هستیم که مثلا یه boilerplate داشته باشیم که از clean code پیروی کنه و همون رو همه جا استفاده کنیم.
من گاها به دوستان متذکر میشم که خوندن این الگوها و منابع خیلی خوبه، به شرطی که شما سعی کنی جان کلام و دغدغه اصلی رو متوجه بشی، نه اینکه سعی کنی به دنبال یک راه حل فست فودی و چارچوب مشخص و معین باشی که کورکورانه همه جا ازش استفاده کنی.
شما وقتی برای کارت ساختار داشته باشی میتونی انعطاف پذیر باشی و بسته به نیازت چارچوب تعیین کنی، اما اگه بخوای یه چارچوب معین رو همه جا رعایت کنی احتمالا یه جاهایی اصول ساختاری خودت رو مجبور میشی زیر پا بذاری چون هیچ چارچوب واحدی وجود نداره که برای همه نیازها مناسب باشه.
@gocasts
#Note
@Syntax_fa
👍15❤2
https://www.youtube.com/watch?v=L8m9E0hSA4M&list=PLUKW34GJxYOYwKyyikVHIv2NY_zc4yynr&index=4
@SyntaxFa
@SyntaxFa
YouTube
تحلیل عملکرد بکاند با اندازه گیری Latency و Throughput
بعد از اینکه APIهایی که ساختیم آماده شد و با تستهایی که نوشتیم چطور مطمئن شیم پرفورمنس وعملکردش نیازهای ما رو رفع میکنه؟ لود تست میگیریم و کلی در موردشم صحبت کردیم. اما چطور عددهایی که خروجی لود تستمون هست رو متوجه بشیم و با توجه به نیاز محصول، از عملکرد…
👍7👀1