🔴ent. An entity framework for Go🔴
✅درواقع ent یک فرم ورک ساده و در عین حال قدرتمند برای Go است ، ساخت و نگهداری برنامه های کاربردی با مدل داده های بزرگ را آسان می کند با اصول زیر را کار با این فرم ورک را آسان می کند:
🔹Easily model database schema as a graph structure.
🔹Define schema as a programmatic Go code.
🔹Static typing based on code generation.
🔹Database queries and graph traversals are easy to write.
🔹Simple to extend and customize using Go templates.
🔻 https://entgo.io/
➖➖➖➖➖➖➖➖➖
🔰 @gopher_academy
✅درواقع ent یک فرم ورک ساده و در عین حال قدرتمند برای Go است ، ساخت و نگهداری برنامه های کاربردی با مدل داده های بزرگ را آسان می کند با اصول زیر را کار با این فرم ورک را آسان می کند:
🔹Easily model database schema as a graph structure.
🔹Define schema as a programmatic Go code.
🔹Static typing based on code generation.
🔹Database queries and graph traversals are easy to write.
🔹Simple to extend and customize using Go templates.
🔻 https://entgo.io/
➖➖➖➖➖➖➖➖➖
🔰 @gopher_academy
🎯چه نوع دیتایی رو میشه باهم مقایسه کرد؟🎯
یا بهتره بگیرم در چه مواقعی میشه از عملگر == (مساوی بودن) یا =! (نامساوی بودن) استفاده کرد؟
۱- داده های basic یا پایه قابل مقایسه هستن. این داده ها شامل نوع های int , string , complex , boolean, float میشن و نوع pointer (اشاره گر)
۲- نوع های map , slice و function اصلا قابل مقایسه نیستن
۳- در مورد interface ها قضیه به چه صورته؟ وقتی دوتا متغیر از نوع interface ها رو باهم مقایسه میکنیم در صورتی که هردو nil باشن یا نوع و مقدار دیتایی که داخل اون متغیر هست باهم یکسان باشه , اون دوتا متغیر یکسان هستن. اما اگه مقدار دوتا متغیر باهم قابل مقایسه نباشه با panic مواجهه خواهیم شد. (مثلا مقدار از نوع slice باشه)
نکته: نوع های داده ای رو که بشه باهم مقایسه کرد میتونیم به عنوان key یا index توی map ها استفاده کنیم! اما نوع های داده ای که قابل مقایسه نیستن رو نمیشه به هیچ وجهه درون map ها به عنوان index استفاده کرد.
➖➖➖➖➖➖➖➖➖
🔰 @gopher_academy
یا بهتره بگیرم در چه مواقعی میشه از عملگر == (مساوی بودن) یا =! (نامساوی بودن) استفاده کرد؟
۱- داده های basic یا پایه قابل مقایسه هستن. این داده ها شامل نوع های int , string , complex , boolean, float میشن و نوع pointer (اشاره گر)
۲- نوع های map , slice و function اصلا قابل مقایسه نیستن
۳- در مورد interface ها قضیه به چه صورته؟ وقتی دوتا متغیر از نوع interface ها رو باهم مقایسه میکنیم در صورتی که هردو nil باشن یا نوع و مقدار دیتایی که داخل اون متغیر هست باهم یکسان باشه , اون دوتا متغیر یکسان هستن. اما اگه مقدار دوتا متغیر باهم قابل مقایسه نباشه با panic مواجهه خواهیم شد. (مثلا مقدار از نوع slice باشه)
نکته: نوع های داده ای رو که بشه باهم مقایسه کرد میتونیم به عنوان key یا index توی map ها استفاده کنیم! اما نوع های داده ای که قابل مقایسه نیستن رو نمیشه به هیچ وجهه درون map ها به عنوان index استفاده کرد.
➖➖➖➖➖➖➖➖➖
🔰 @gopher_academy
🔴Visualizing gRPC Language Stacks🔴
✅در gRPC-Go ، به دلیل عدم پشتیبانی از بسیاری از تنظیمات ، پشته بسیار ساده تر است.
✅در اینجا یک نمای کلی از سطح بالای پشته Go وجود دارد:
✅ساختار در اینجا کمی متفاوت است. از آنجا که فقط یک زبان وجود دارد ، جریان از بالای پشته به پایین خطی تر است. ب
✅درواقع ، gRPC Go می تواند از پیاده سازی HTTP / 2 یا بسته Go net / http استفاده کند.
➖➖➖➖➖➖➖➖➖
🔰 @gopher_academy
✅در gRPC-Go ، به دلیل عدم پشتیبانی از بسیاری از تنظیمات ، پشته بسیار ساده تر است.
✅در اینجا یک نمای کلی از سطح بالای پشته Go وجود دارد:
✅ساختار در اینجا کمی متفاوت است. از آنجا که فقط یک زبان وجود دارد ، جریان از بالای پشته به پایین خطی تر است. ب
✅درواقع ، gRPC Go می تواند از پیاده سازی HTTP / 2 یا بسته Go net / http استفاده کند.
➖➖➖➖➖➖➖➖➖
🔰 @gopher_academy
Gopher Academy
🎯آموزش Regular Expressions در گولنگ🎯 ✅Understanding Regular Expressions 🔴 https://t.me/gopher_academy/593 ✅Dealing With Special Characters 🔴 https://t.me/gopher_academy/599 ✅ Using Boundaries 🔴 https://t.me/gopher_academy/606 ✅Using Classes 🔴 https:/…
🔴Using Boundaries🔴
✅خط ۵
پیدا کردن کلمه father در رشته
✅خط ۸
انتهای رشته کلمه father باشد
✅خط ۱۱
شروع رشته کلمه Hello باشد
✅خط ۱۳
پیدا کردن کلمه kill در رشته
✅خط ۱۶
جست و جوی بخشی از جمله killed در رشته
✅خط ۱۹
ادامه کلمه kill نباید چیزی باشد
✅خط ۲۲
قبل و بعد kill نباید چیزی باشد
✅خط ۲۵
قبل و بعد killed نباید چیزی باشد
✅خط ۲۸
قبل Montoya چیزی نباید باشد اما بعدش باید یه ویرگول باشد
➖➖➖➖➖➖➖➖➖
🔰 @gopher_academy
✅خط ۵
پیدا کردن کلمه father در رشته
✅خط ۸
انتهای رشته کلمه father باشد
✅خط ۱۱
شروع رشته کلمه Hello باشد
✅خط ۱۳
پیدا کردن کلمه kill در رشته
✅خط ۱۶
جست و جوی بخشی از جمله killed در رشته
✅خط ۱۹
ادامه کلمه kill نباید چیزی باشد
✅خط ۲۲
قبل و بعد kill نباید چیزی باشد
✅خط ۲۵
قبل و بعد killed نباید چیزی باشد
✅خط ۲۸
قبل Montoya چیزی نباید باشد اما بعدش باید یه ویرگول باشد
➖➖➖➖➖➖➖➖➖
🔰 @gopher_academy
👀1
Gopher Academy
🔴Using Classes🔴 ✅انواع الگو ها جهت استفاده در کد ➖➖➖➖➖➖➖➖➖ 🔰 @gopher_academy
👆🏻👆🏻👆🏻👆🏻
✅توی خط ۳ دنبال رشته ACGTمیگرده که بعدش دنباله ای داشته باشه
✅توی خط ۶ هم دیگه واضح هست
➖➖➖➖➖➖➖➖➖
🔰 @gopher_academy
✅توی خط ۳ دنبال رشته ACGTمیگرده که بعدش دنباله ای داشته باشه
✅توی خط ۶ هم دیگه واضح هست
➖➖➖➖➖➖➖➖➖
🔰 @gopher_academy
Gopher Academy
🎯آموزش Regular Expressions در گولنگ🎯 ✅Understanding Regular Expressions 🔴 https://t.me/gopher_academy/593 ✅Dealing With Special Characters 🔴 https://t.me/gopher_academy/599 ✅ Using Boundaries 🔴 https://t.me/gopher_academy/606 ✅Using Classes 🔴 https:/…
🔴Compiling Your Regex🔴
✅برای اینکه بخواییم چندین الگو رو توی یه رشته به کار ببریم از کد فوق استفاده می کنیم
✅ با استفاده از MustCompile
✅ دقت کنبد که فقط کافی هست یکی از الگو ها با رشته ما صدق کند
➖➖➖➖➖➖➖➖➖
🔰 @gopher_academy
✅برای اینکه بخواییم چندین الگو رو توی یه رشته به کار ببریم از کد فوق استفاده می کنیم
✅ با استفاده از MustCompile
✅ دقت کنبد که فقط کافی هست یکی از الگو ها با رشته ما صدق کند
➖➖➖➖➖➖➖➖➖
🔰 @gopher_academy
🔴بقول Uncle Bob، سیستمهایی که مدیریت وابستگی(SOLID) در آن رعایت نمیشود این ۴ بو (Smell) را همراه خود خواهند داشت:🔴
✅سختی یا Rigidity
سختی یا Rigidity یعنی ناتوانی در تغییر. / اگر برای تغییر دادن بخش کوچکی از کد مجبور شویم کل سیستم را مجددا rebuild کنیم، آنوقت آن سیستم سخت شده یا دچار Rigidty شده است.
✅شکنندگی یا Fragility
مفهوم Fragility و Rigidity بسیار بهم نزدیک اند. درواقع شکنندگی و سختی، علت و معلول یکدیگر هستند. شکنندگی یا Fragility اشاره دارد به اینکه هر موقع تغییری در سیستم ایجاد میکنید در بخش (یا بخشهای) دیگری از سیستم - که حتی هیچ ربطی با آن قسمت ندارد - با خطا و مشکل مواجه میشوید.
✅عدم تحرک یا Immobility
نتوانیم آن قسمت از کد یا کامپوننت را در دیگر بخشهای سیستم استفاده کنیم.
✅چسبناکی یا Viscosity
چسبناکی، ویسکوزیته یا Viscosity مقاومت در مقابل تغییر است. وقتی که ساخت مجدد و تست سیستم برای ما سخت میشود و ترجیح بدهیم از خیر تغییرات آن قسمت بگذریم، آنگاه کد ما viscous یا چسبناک است.
➖➖➖➖➖➖➖➖➖
🔰 @gopher_academy
✅سختی یا Rigidity
سختی یا Rigidity یعنی ناتوانی در تغییر. / اگر برای تغییر دادن بخش کوچکی از کد مجبور شویم کل سیستم را مجددا rebuild کنیم، آنوقت آن سیستم سخت شده یا دچار Rigidty شده است.
✅شکنندگی یا Fragility
مفهوم Fragility و Rigidity بسیار بهم نزدیک اند. درواقع شکنندگی و سختی، علت و معلول یکدیگر هستند. شکنندگی یا Fragility اشاره دارد به اینکه هر موقع تغییری در سیستم ایجاد میکنید در بخش (یا بخشهای) دیگری از سیستم - که حتی هیچ ربطی با آن قسمت ندارد - با خطا و مشکل مواجه میشوید.
✅عدم تحرک یا Immobility
نتوانیم آن قسمت از کد یا کامپوننت را در دیگر بخشهای سیستم استفاده کنیم.
✅چسبناکی یا Viscosity
چسبناکی، ویسکوزیته یا Viscosity مقاومت در مقابل تغییر است. وقتی که ساخت مجدد و تست سیستم برای ما سخت میشود و ترجیح بدهیم از خیر تغییرات آن قسمت بگذریم، آنگاه کد ما viscous یا چسبناک است.
➖➖➖➖➖➖➖➖➖
🔰 @gopher_academy
🔴یه کتاب خوب برای درک بهتر اصول مهندسی نرم افزار🔴
✅ Fundamentals of Software Architecture: An Engineering Approach
✅ لینک دانلود
❌ https://b-ok.cc/book/5407664/01e173
✅ فایل پسوند epub هست که با استفاده از سایت زیر اون رو به pdf تبدیل کنید
❌ https://www.zamzar.com
➖➖➖➖➖➖➖➖➖
🔰 @gopher_academy
✅ Fundamentals of Software Architecture: An Engineering Approach
✅ لینک دانلود
❌ https://b-ok.cc/book/5407664/01e173
✅ فایل پسوند epub هست که با استفاده از سایت زیر اون رو به pdf تبدیل کنید
❌ https://www.zamzar.com
➖➖➖➖➖➖➖➖➖
🔰 @gopher_academy
Gopher Academy
🎯آموزش Regular Expressions در گولنگ🎯 ✅Understanding Regular Expressions 🔴 https://t.me/gopher_academy/593 ✅Dealing With Special Characters 🔴 https://t.me/gopher_academy/599 ✅ Using Boundaries 🔴 https://t.me/gopher_academy/606 ✅Using Classes 🔴 https:/…
🔴Finding🔴
✅از سمت چپ شروع به تگاه کردن می کنه تا الگوی مانند الگوهای خط دو را پیدا کند و بعدش به انتها جمله همون الگوی رو که پیدا کرد رو بزاره
➖➖➖➖➖➖➖➖➖
🔰 @gopher_academy
✅از سمت چپ شروع به تگاه کردن می کنه تا الگوی مانند الگوهای خط دو را پیدا کند و بعدش به انتها جمله همون الگوی رو که پیدا کرد رو بزاره
➖➖➖➖➖➖➖➖➖
🔰 @gopher_academy
Gopher Academy
🎯آموزش Regular Expressions در گولنگ🎯 ✅Understanding Regular Expressions 🔴 https://t.me/gopher_academy/593 ✅Dealing With Special Characters 🔴 https://t.me/gopher_academy/599 ✅ Using Boundaries 🔴 https://t.me/gopher_academy/606 ✅Using Classes 🔴 https:/…
🔴Replacing🔴
✅ همان طور که از کد فوق معلوم هست در خط ۳۳ ما یه تابع داریم به نام ReplaceAllStringFunc که کارش اینه یه تکست میگیره و یه الگو که به صورت map در آوردیم و رشته مدنظر رو باهاش تطبیق میده و جایگذین می کنه
به همین راحتی
➖➖➖➖➖➖➖➖➖
🔰 @gopher_academy
✅ همان طور که از کد فوق معلوم هست در خط ۳۳ ما یه تابع داریم به نام ReplaceAllStringFunc که کارش اینه یه تکست میگیره و یه الگو که به صورت map در آوردیم و رشته مدنظر رو باهاش تطبیق میده و جایگذین می کنه
به همین راحتی
➖➖➖➖➖➖➖➖➖
🔰 @gopher_academy
Forwarded from Gopher Academy
🎯آموزش Regular Expressions در گولنگ🎯
✅Understanding Regular Expressions
🔴 https://t.me/gopher_academy/593
✅Dealing With Special Characters
🔴 https://t.me/gopher_academy/599
✅ Using Boundaries
🔴 https://t.me/gopher_academy/606
✅Using Classes
🔴 https://t.me/gopher_academy/608
🔴 https://t.me/gopher_academy/609
🔴 https://t.me/gopher_academy/610
✅Using Alternatives
🔴 https://t.me/gopher_academy/611
✅Compiling Your Regex
🔴 https://t.me/gopher_academy/612
✅Finding
🔴 https://t.me/gopher_academy/617
✅Replacing
🔴 https://t.me/gopher_academy/618
➖➖➖➖➖➖➖➖➖
🔰 @gopher_academy
✅Understanding Regular Expressions
🔴 https://t.me/gopher_academy/593
✅Dealing With Special Characters
🔴 https://t.me/gopher_academy/599
✅ Using Boundaries
🔴 https://t.me/gopher_academy/606
✅Using Classes
🔴 https://t.me/gopher_academy/608
🔴 https://t.me/gopher_academy/609
🔴 https://t.me/gopher_academy/610
✅Using Alternatives
🔴 https://t.me/gopher_academy/611
✅Compiling Your Regex
🔴 https://t.me/gopher_academy/612
✅Finding
🔴 https://t.me/gopher_academy/617
✅Replacing
🔴 https://t.me/gopher_academy/618
➖➖➖➖➖➖➖➖➖
🔰 @gopher_academy
🔺دوستانی که میخوان PDF های داخل کانال رو به صورت کتابی (جلدی) داشته باشن به یکی از آی دی های زیر پیام بدن 🔺
@Skybooks_ir
@Rezacisco2007
#book
➖➖➖➖➖➖➖➖➖
🔰 @gopher_academy
@Skybooks_ir
@Rezacisco2007
#book
➖➖➖➖➖➖➖➖➖
🔰 @gopher_academy
Forwarded from Bardia
Fundamentals_of_Software_Architecture_An_Engineering_Approach_by.pdf
59.3 MB
🔴یه کتاب خوب برای درک بهتر اصول مهندسی نرم افزار🔴
https://t.me/gopher_academy/616
✅ Fundamentals of Software Architecture: An Engineering Approach
➖➖➖➖➖➖➖➖➖
🔰 @gopher_academy
https://t.me/gopher_academy/616
✅ Fundamentals of Software Architecture: An Engineering Approach
➖➖➖➖➖➖➖➖➖
🔰 @gopher_academy
🔴آموزش proto3 از صفر تا صد🔴
✅proto?
🔴https://t.me/gopher_academy/627
✅Defining A Message Type
🔴 https://t.me/gopher_academy/628
✅Assigning Field Numbers
🔴https://t.me/gopher_academy/629
✅Adding Comments
🔴 https://t.me/gopher_academy/630
✅Reserved Fields
🔴 https://t.me/gopher_academy/631
✅What's Generated From Your .proto?
🔴 https://t.me/gopher_academy/632
✅Scalar Value Types
🔴 https://t.me/gopher_academy/633
✅Default Values
🔴 https://t.me/gopher_academy/634
✅Enumerations
🔴 https://t.me/gopher_academy/636
✅Using Other Message Types
🔴 https://t.me/gopher_academy/638
✅Nested Types
🔴 https://t.me/gopher_academy/639
✅Updating A Message Type
🔴 https://t.me/gopher_academy/641
✅Any
🔴 https://t.me/gopher_academy/642
✅Oneof
🔴 https://t.me/gopher_academy/643
✅Maps
🔴 https://t.me/gopher_academy/647
✅Packages
🔴 https://t.me/gopher_academy/648
✅Defining Services
🔴 https://t.me/gopher_academy/649
🔴 https://t.me/gopher_academy/650
✅JSON Mapping
🔴 https://t.me/gopher_academy/664
🔴 https://t.me/gopher_academy/665
🔴 https://t.me/gopher_academy/666
✅JSON options
🔴 https://t.me/gopher_academy/667
✅Options
🔴
✅Generating Your Classes
🔴
#proto3
➖➖➖➖➖➖➖➖➖
🔰 @gopher_academy
✅proto?
🔴https://t.me/gopher_academy/627
✅Defining A Message Type
🔴 https://t.me/gopher_academy/628
✅Assigning Field Numbers
🔴https://t.me/gopher_academy/629
✅Adding Comments
🔴 https://t.me/gopher_academy/630
✅Reserved Fields
🔴 https://t.me/gopher_academy/631
✅What's Generated From Your .proto?
🔴 https://t.me/gopher_academy/632
✅Scalar Value Types
🔴 https://t.me/gopher_academy/633
✅Default Values
🔴 https://t.me/gopher_academy/634
✅Enumerations
🔴 https://t.me/gopher_academy/636
✅Using Other Message Types
🔴 https://t.me/gopher_academy/638
✅Nested Types
🔴 https://t.me/gopher_academy/639
✅Updating A Message Type
🔴 https://t.me/gopher_academy/641
✅Any
🔴 https://t.me/gopher_academy/642
✅Oneof
🔴 https://t.me/gopher_academy/643
✅Maps
🔴 https://t.me/gopher_academy/647
✅Packages
🔴 https://t.me/gopher_academy/648
✅Defining Services
🔴 https://t.me/gopher_academy/649
🔴 https://t.me/gopher_academy/650
✅JSON Mapping
🔴 https://t.me/gopher_academy/664
🔴 https://t.me/gopher_academy/665
🔴 https://t.me/gopher_academy/666
✅JSON options
🔴 https://t.me/gopher_academy/667
✅Options
🔴
✅Generating Your Classes
🔴
#proto3
➖➖➖➖➖➖➖➖➖
🔰 @gopher_academy