Telegram Group & Telegram Channel
#تریدآف
#Tradeoff

یکی از واژه هایی که از سنیور ها می شنوید و احتمالا خیلی زیاد به گوشتون خورده، از این واژه وقتی استفاده میشه که برنامه نویس به این باور رسیده که راه چاره ای نداره و نمیتونه دوتا چیز رو همزمان در پروژه اش داشته باشه، یکی از این مسائل پرفورمنس به همراه کد تمیزه.
برنامه نویس های مجرب به این باور رسیدن که نمیشه هم پرفورمنس بالایی داشت و هم کد تمیز داشت، من میخوام امروز به این موضوع بپردازم که چقدر این حرف درسته و آیا دلیل موجهی برای اثباتش دارم یا خیر؟
من معتقدم استفاده از کلمه ی تریدآف فقط به این معنیه که من برنامه نویس تا همینجا علمش رو داشتم، بیشتر از این نمی تونم کمکتون کنم و از نظر اعتقادی باور کرده که نمیشه این دوتا چیز رو همزمان داشت اما آیا اون اعتقاد درسته؟ همیشه یه راه سومی وجود داره و اگر به ذهنتون نرسیده دلیل بر این نیست که وجود نداره باید باور کنیم ما علامه و عالم به همه چیز نیستیم ما بر این باوریم که همیشه میشه بهتر فکر کرد و راه های بهتری پیدا کرد برای همین دیدگاه هست که علم پیشرفت میکنه چون یه عده مخالف گوشی های دکمه ای بودن و فکر میکردن که باید راه بهتری باشه پس گوشی های لمسی رو اختراع کردن. بنابراین ذهن خودتون رو بسته نگه ندارید و نذارید به این موضوع باور کنید که شما همه چیز رو درست میگید، اگر به این باور رسیدید دروازه های پیشرفت و خلاقیت رو به روی ذهن خودتون بستید.
خب بریم سراغ اینکه من چطوری میخوام این موضوع رو اثبات کنم؟
همه میدونیم grpc خیلی سریعه و messagepack هم همینطور، اما هر دوی اینها قسمتی از کدهای شمارو کثیف میکنن و وابستگی به پروژه ی شما اضافه میکنن.
چطور؟
توی grpc شما حتما باید protobuf بسازید، فایل هایی که خروجی و ورودی سرویس ها و پروپرتی مدل های شمارو برای سریالایز و دیسریالایز مشخص میکنن.پس وابستگی grpc به پروژه های شما شد این فایل هایی که همه جا همراه شما میان.چرا grpc به همچین فایل هایی احتیاج داره؟
چون grpc وقتی داده هارو سریالایز میکنه مثل json اطلاعات پروپرتی کلاس ها و نام پروپرتی ها رو و مرتب سازی اونها رو توی داده هایی که رد و بدل می کنه نگهداری نمی کنه به همین واسطه نیاز داره که از شما نحوه مرتب سازی پروپرتی ها و نام هاشون رو داشته باشه تا اگر حذفشون کردید یا تغییر نامشون دادید بتونه دیسریالایزشون کنه.
توی messagepack هم به همین شکله، چیزی به نام protobuf نداره ولی بالای پروپرتی های کلاس هاتون باید کلی اتریبیوت بذارید که ایندکسش رو مشخص کنید.
خب من پکیجی ساختم به نام BinaryGo که توی گیتهابم هست، این پکیج نه protobuf داره و نه لازمه بالای کلاسهاتون attribute بذارید در عین حال نزدیک به دوبرابر از grpc و messagepack سریعتره.این یعنی کد تمیزی برای شما به وجود میاره و در عین حال پرفورمنس بیشتری داره.
حالا از این به بعد اگر کسی به شما گفت این قضیه تریدآف داره و نمیشه کد تمیز داشت و بهینه هم باشه تنها یک جمله بهش بگید: مهندس نگو نمیشه، بگو من علمش رو ندارم یا نمی دونم.



tg-me.com/CsharpTips/345
Create:
Last Update:

#تریدآف
#Tradeoff

یکی از واژه هایی که از سنیور ها می شنوید و احتمالا خیلی زیاد به گوشتون خورده، از این واژه وقتی استفاده میشه که برنامه نویس به این باور رسیده که راه چاره ای نداره و نمیتونه دوتا چیز رو همزمان در پروژه اش داشته باشه، یکی از این مسائل پرفورمنس به همراه کد تمیزه.
برنامه نویس های مجرب به این باور رسیدن که نمیشه هم پرفورمنس بالایی داشت و هم کد تمیز داشت، من میخوام امروز به این موضوع بپردازم که چقدر این حرف درسته و آیا دلیل موجهی برای اثباتش دارم یا خیر؟
من معتقدم استفاده از کلمه ی تریدآف فقط به این معنیه که من برنامه نویس تا همینجا علمش رو داشتم، بیشتر از این نمی تونم کمکتون کنم و از نظر اعتقادی باور کرده که نمیشه این دوتا چیز رو همزمان داشت اما آیا اون اعتقاد درسته؟ همیشه یه راه سومی وجود داره و اگر به ذهنتون نرسیده دلیل بر این نیست که وجود نداره باید باور کنیم ما علامه و عالم به همه چیز نیستیم ما بر این باوریم که همیشه میشه بهتر فکر کرد و راه های بهتری پیدا کرد برای همین دیدگاه هست که علم پیشرفت میکنه چون یه عده مخالف گوشی های دکمه ای بودن و فکر میکردن که باید راه بهتری باشه پس گوشی های لمسی رو اختراع کردن. بنابراین ذهن خودتون رو بسته نگه ندارید و نذارید به این موضوع باور کنید که شما همه چیز رو درست میگید، اگر به این باور رسیدید دروازه های پیشرفت و خلاقیت رو به روی ذهن خودتون بستید.
خب بریم سراغ اینکه من چطوری میخوام این موضوع رو اثبات کنم؟
همه میدونیم grpc خیلی سریعه و messagepack هم همینطور، اما هر دوی اینها قسمتی از کدهای شمارو کثیف میکنن و وابستگی به پروژه ی شما اضافه میکنن.
چطور؟
توی grpc شما حتما باید protobuf بسازید، فایل هایی که خروجی و ورودی سرویس ها و پروپرتی مدل های شمارو برای سریالایز و دیسریالایز مشخص میکنن.پس وابستگی grpc به پروژه های شما شد این فایل هایی که همه جا همراه شما میان.چرا grpc به همچین فایل هایی احتیاج داره؟
چون grpc وقتی داده هارو سریالایز میکنه مثل json اطلاعات پروپرتی کلاس ها و نام پروپرتی ها رو و مرتب سازی اونها رو توی داده هایی که رد و بدل می کنه نگهداری نمی کنه به همین واسطه نیاز داره که از شما نحوه مرتب سازی پروپرتی ها و نام هاشون رو داشته باشه تا اگر حذفشون کردید یا تغییر نامشون دادید بتونه دیسریالایزشون کنه.
توی messagepack هم به همین شکله، چیزی به نام protobuf نداره ولی بالای پروپرتی های کلاس هاتون باید کلی اتریبیوت بذارید که ایندکسش رو مشخص کنید.
خب من پکیجی ساختم به نام BinaryGo که توی گیتهابم هست، این پکیج نه protobuf داره و نه لازمه بالای کلاسهاتون attribute بذارید در عین حال نزدیک به دوبرابر از grpc و messagepack سریعتره.این یعنی کد تمیزی برای شما به وجود میاره و در عین حال پرفورمنس بیشتری داره.
حالا از این به بعد اگر کسی به شما گفت این قضیه تریدآف داره و نمیشه کد تمیز داشت و بهینه هم باشه تنها یک جمله بهش بگید: مهندس نگو نمیشه، بگو من علمش رو ندارم یا نمی دونم.

BY C# Programming Guide


Warning: Undefined variable $i in /var/www/tg-me/post.php on line 283

Share with your friend now:
tg-me.com/CsharpTips/345

View MORE
Open in Telegram


telegram Telegram | DID YOU KNOW?

Date: |

Among the actives, Ascendas REIT sank 0.64 percent, while CapitaLand Integrated Commercial Trust plummeted 1.42 percent, City Developments plunged 1.12 percent, Dairy Farm International tumbled 0.86 percent, DBS Group skidded 0.68 percent, Genting Singapore retreated 0.67 percent, Hongkong Land climbed 1.30 percent, Mapletree Commercial Trust lost 0.47 percent, Mapletree Logistics Trust tanked 0.95 percent, Oversea-Chinese Banking Corporation dropped 0.61 percent, SATS rose 0.24 percent, SembCorp Industries shed 0.54 percent, Singapore Airlines surrendered 0.79 percent, Singapore Exchange slid 0.30 percent, Singapore Press Holdings declined 1.03 percent, Singapore Technologies Engineering dipped 0.26 percent, SingTel advanced 0.81 percent, United Overseas Bank fell 0.39 percent, Wilmar International eased 0.24 percent, Yangzijiang Shipbuilding jumped 1.42 percent and Keppel Corp, Thai Beverage, CapitaLand and Comfort DelGro were unchanged.

A Telegram spokesman declined to comment on the bond issue or the amount of the debt the company has due. The spokesman said Telegram’s equipment and bandwidth costs are growing because it has consistently posted more than 40% year-to-year growth in users.

telegram from kr


Telegram C# Programming Guide
FROM USA