Forwarded from Mehdi Samadani
Forwarded from Mamadeus
شرکت de-fitec که در حوزه های مختلف در هند و آمریکا مشغول به کار است , برای تکمیل تیم نرم افزاری خود برای کار در زمینه بلاک چین به برنامه نویس با تجربه کاری go و همچنین python نیازمند است .
درصورت علاقه به همکاری میتوانید رزومه خود را از روشهای زیر برای ما ارسال کنید:
mohammad@de-fitech.com
09366275305 telegram
وبسایت شرکت:
https://de-fitech.com/
#go
#python
درصورت علاقه به همکاری میتوانید رزومه خود را از روشهای زیر برای ما ارسال کنید:
mohammad@de-fitech.com
09366275305 telegram
وبسایت شرکت:
https://de-fitech.com/
#go
#python
Gopher Academy
🎯نگاهی عمیق به تایپ های گولنگ🎯 🔹Type Aliases 🔹Basic Types 🔹Strings 🔹Pointers 🔹Pointers 🔹Interfaces 🔹Structs 🔹Type Assertions 🔹Reflection 🔹Functions 🔹Channels 🔹Collections 🔹Arrays 🔹Slices 🔹Maps 🔹Zero Values ➖➖➖➖➖➖➖➖➖ 🔰 @gopher_academy
❌Type Assertions❌
توی این روش در خط شیش ما نوع تایپ خود را نمی دانیم چیه پس برای این کار از interface استفاده می کنیم که خود جزو تایپ های گو هست و تمام تایپ ها رو توی خود جا می دهد
➖➖➖➖➖➖➖➖➖
🔰 @gopher_academy
توی این روش در خط شیش ما نوع تایپ خود را نمی دانیم چیه پس برای این کار از interface استفاده می کنیم که خود جزو تایپ های گو هست و تمام تایپ ها رو توی خود جا می دهد
➖➖➖➖➖➖➖➖➖
🔰 @gopher_academy
Gopher Academy
🎯نگاهی عمیق به تایپ های گولنگ🎯 🔹Type Aliases 🔹Basic Types 🔹Strings 🔹Pointers 🔹Pointers 🔹Interfaces 🔹Structs 🔹Type Assertions 🔹Reflection 🔹Functions 🔹Channels 🔹Collections 🔹Arrays 🔹Slices 🔹Maps 🔹Zero Values ➖➖➖➖➖➖➖➖➖ 🔰 @gopher_academy
❌Reflection❌
بسته Go reflect به شما امکان می دهد نوع رابط را بدون استفاده از type assertions مستقیماً بررسی کنید. در صورت تمایل می توانید مقدار یک رابط را استخراج کنید
در اینجا یک مثال مشابه با مثال قبلی وجود دارد ، اما به جای چاپ رشته ها ، آنها را فقط می شمارد ، بنابراین نیازی به تبدیل از رابط {} به رشته نیست. کلید فراخوانی Reflect.Type () برای بدست آوردن یک نوع شی است که دارای متد Kind () است که به ما امکان می دهد تشخیص دهیم که آیا با یک رشته روبرو هستیم یا نه.
➖➖➖➖➖➖➖➖➖
🔰 @gopher_academy
بسته Go reflect به شما امکان می دهد نوع رابط را بدون استفاده از type assertions مستقیماً بررسی کنید. در صورت تمایل می توانید مقدار یک رابط را استخراج کنید
در اینجا یک مثال مشابه با مثال قبلی وجود دارد ، اما به جای چاپ رشته ها ، آنها را فقط می شمارد ، بنابراین نیازی به تبدیل از رابط {} به رشته نیست. کلید فراخوانی Reflect.Type () برای بدست آوردن یک نوع شی است که دارای متد Kind () است که به ما امکان می دهد تشخیص دهیم که آیا با یک رشته روبرو هستیم یا نه.
➖➖➖➖➖➖➖➖➖
🔰 @gopher_academy
🎯اگه روی یه پروژه ای کار می کنید و هرروز بعد از هر تغیری push می کنید روی گیت
و بعد هر تغییری ازتون معمولا رمزعبور رو میخواد
با دستور زیر دیگه نیاز به زدن رمز عیور ندارید
فقط بزنید push خودش میره توی ریپو میشینه
و دیگه نیاز نیست بعد از هر تغییری رمزعبور رو بزنید
🔹 git config credential.helper store
🔹 git push http://example.com/your-user-name/your-repo.git
.
#git #github
.
➖➖➖➖➖➖➖➖➖
🔰 @gopher_academy
و بعد هر تغییری ازتون معمولا رمزعبور رو میخواد
با دستور زیر دیگه نیاز به زدن رمز عیور ندارید
فقط بزنید push خودش میره توی ریپو میشینه
و دیگه نیاز نیست بعد از هر تغییری رمزعبور رو بزنید
🔹 git config credential.helper store
🔹 git push http://example.com/your-user-name/your-repo.git
.
#git #github
.
➖➖➖➖➖➖➖➖➖
🔰 @gopher_academy
Gopher Academy
🎯نگاهی عمیق به تایپ های گولنگ🎯 🔹Type Aliases 🔹Basic Types 🔹Strings 🔹Pointers 🔹Pointers 🔹Interfaces 🔹Structs 🔹Type Assertions 🔹Reflection 🔹Functions 🔹Channels 🔹Collections 🔹Arrays 🔹Slices 🔹Maps 🔹Zero Values ➖➖➖➖➖➖➖➖➖ 🔰 @gopher_academy
❌Functions❌
در برنامه نویسی گولنگ در زمینه توابع نویسی شما می توانید توابع را به متغیرها اختصاص دهید ، و حتی توابع را به عنوان آرگومان به توابع دیگر منتقل کنید یا آنها را به عنوان نتیجه برگردانید. این زبان شما را قادر می سازد تا از سبک برنامه نویسی کاربردی با Go استفاده کنید. در این مثال به کاملی روشن هست
➖➖➖➖➖➖➖➖➖
🔰 @gopher_academy
در برنامه نویسی گولنگ در زمینه توابع نویسی شما می توانید توابع را به متغیرها اختصاص دهید ، و حتی توابع را به عنوان آرگومان به توابع دیگر منتقل کنید یا آنها را به عنوان نتیجه برگردانید. این زبان شما را قادر می سازد تا از سبک برنامه نویسی کاربردی با Go استفاده کنید. در این مثال به کاملی روشن هست
➖➖➖➖➖➖➖➖➖
🔰 @gopher_academy
در حال حاضر ار کدوم پایگاه داده توی گولنگ استفاده می کنید؟
Final Results
33%
MongoDB
55%
PostgreSQL
23%
other
😁در حاضر به کدوم درجه رسیدی توی گولنگ?😁
Final Results
5%
🔵 Senior 🔵
30%
🔴 Mid-Level 🔴
67%
🟢 Junior 🟢
💔1
یکی از کانال داره دوره پیشرفته برنامه نویسی وب با زبان گولنگ رو ریکورد میکنه
اگه کسی توانایی چسبوندن صدا و ویدئو رو داره بیاد کمک @mrViam
این دوره رایگانه
اگه کسی توانایی چسبوندن صدا و ویدئو رو داره بیاد کمک @mrViam
این دوره رایگانه
Final Results
97%
آره این دوره ضبط شه
3%
نه نیار نیست ضبط شه
Gopher Academy
🎯نگاهی عمیق به تایپ های گولنگ🎯 🔹Type Aliases 🔹Basic Types 🔹Strings 🔹Pointers 🔹Pointers 🔹Interfaces 🔹Structs 🔹Type Assertions 🔹Reflection 🔹Functions 🔹Channels 🔹Collections 🔹Arrays 🔹Slices 🔹Maps 🔹Zero Values ➖➖➖➖➖➖➖➖➖ 🔰 @gopher_academy
❌Channels❌
😜Channels are an unusual data type😉
کانال ها یک نوع داده غیرمعمول هستند. شما می توانید آنها را به عنوان صف های پیام در نظر بگیرید که برای ارسال پیام بین گورتین استفاده می شود. درضمن کانال ها strongly typed می باشند.
آنها همگام سازی شده اند و از پشتیبانی از نحو اختصاصی برای ارسال و دریافت پیام برخوردارند. هر کانال می تواند فقط دریافت ، ارسال و یا دو جهته باشد.
در اینجا یک مثال معمولی وجود دارد که در آن مجموع مربعات لیستی از اعداد صحیح به طور موازی توسط دو گورتین محاسبه می شود ، هر کدام نیمی از لیست را تشکیل می دهند. عملکرد اصلی منتظر نتیجه هر دو برنامه هست و سپس نتیجه این دو را نمایش می دهد.
➖➖➖➖➖➖➖➖➖
🔰 @gopher_academy
😜Channels are an unusual data type😉
کانال ها یک نوع داده غیرمعمول هستند. شما می توانید آنها را به عنوان صف های پیام در نظر بگیرید که برای ارسال پیام بین گورتین استفاده می شود. درضمن کانال ها strongly typed می باشند.
آنها همگام سازی شده اند و از پشتیبانی از نحو اختصاصی برای ارسال و دریافت پیام برخوردارند. هر کانال می تواند فقط دریافت ، ارسال و یا دو جهته باشد.
در اینجا یک مثال معمولی وجود دارد که در آن مجموع مربعات لیستی از اعداد صحیح به طور موازی توسط دو گورتین محاسبه می شود ، هر کدام نیمی از لیست را تشکیل می دهند. عملکرد اصلی منتظر نتیجه هر دو برنامه هست و سپس نتیجه این دو را نمایش می دهد.
➖➖➖➖➖➖➖➖➖
🔰 @gopher_academy
در واقع Strong typing معنی کلیاش این میشه که شما در زبان برنامه نویسی موردنظرتون باید مشخص کنید که متغیرها، ورودی/خروجی توابع، آرگومانها و ... دقیقاً از چه نوعی هستند؛ یعنی کامپایلر در چنین زبانهای برنامهنویسی، کدهای برنامه شما رو قبل از اینکه به مرحله Runtime برسه، بررسی میکنه و مطمئن میشه که شما نوعها رو بصورت کامل مشخص کردید و نمیذاره شما دادۀ بدون نوع داشته باشید
➖➖➖➖➖➖➖➖➖
در واقع Weak typing با خیال راحت، هرجوری حال میکنید! میتونید از تعریف متغیر بدون نوع استفاده کنید، تو این نوع زبانها، کامپایلر همه کار رو خودش میکنه و اصلاً کار نداره که شما برای متغیری نوع تعریف کنید، برای همین بسیار تنبلپرور هستند؛
➖➖➖➖➖➖➖➖➖
🔰 @gopher_academy
➖➖➖➖➖➖➖➖➖
در واقع Weak typing با خیال راحت، هرجوری حال میکنید! میتونید از تعریف متغیر بدون نوع استفاده کنید، تو این نوع زبانها، کامپایلر همه کار رو خودش میکنه و اصلاً کار نداره که شما برای متغیری نوع تعریف کنید، برای همین بسیار تنبلپرور هستند؛
➖➖➖➖➖➖➖➖➖
🔰 @gopher_academy
❌generic collections❌
یعنی هر نوع دادهای را می توانید ذخیره کنید
🔹arrays
🔹slices
🔹maps
🔹Channels
➖➖➖➖➖➖➖➖➖
🔰 @gopher_academy
یعنی هر نوع دادهای را می توانید ذخیره کنید
🔹arrays
🔹slices
🔹maps
🔹Channels
➖➖➖➖➖➖➖➖➖
🔰 @gopher_academy
Gopher Academy
🎯نگاهی عمیق به تایپ های گولنگ🎯 🔹Type Aliases 🔹Basic Types 🔹Strings 🔹Pointers 🔹Pointers 🔹Interfaces 🔹Structs 🔹Type Assertions 🔹Reflection 🔹Functions 🔹Channels 🔹Collections 🔹Arrays 🔹Slices 🔹Maps 🔹Zero Values ➖➖➖➖➖➖➖➖➖ 🔰 @gopher_academy
❌ Slices ❌
آرایه ها به دلیل اندازه ثابت بسیار محدود هستند. اما Slices ها خیلی جالب ترند. شما می توانید Slices ها را به عنوان آرایه های پویا در نظر بگیرید.
بهتره بجای array از Slices استفاده کنید توی پروژه هاتون به دلیل کنترل gerber collector
➖➖➖➖➖➖➖➖
🔰 @gopher_academy
آرایه ها به دلیل اندازه ثابت بسیار محدود هستند. اما Slices ها خیلی جالب ترند. شما می توانید Slices ها را به عنوان آرایه های پویا در نظر بگیرید.
بهتره بجای array از Slices استفاده کنید توی پروژه هاتون به دلیل کنترل gerber collector
➖➖➖➖➖➖➖➖
🔰 @gopher_academy
Gopher Academy
❌ Slices ❌ آرایه ها به دلیل اندازه ثابت بسیار محدود هستند. اما Slices ها خیلی جالب ترند. شما می توانید Slices ها را به عنوان آرایه های پویا در نظر بگیرید. بهتره بجای array از Slices استفاده کنید توی پروژه هاتون به دلیل کنترل gerber collector ➖➖➖➖➖➖➖➖ 🔰 @gopher_academy
👆🏻👆🏻توضیحات بیشتر👆🏻👆🏻
از طرف دیگر ، Slices ها بسیار انعطاف پذیر ، قدرتمند و راحت تر از آرایه ها هستند. بر خلاف آرایه ها ، می توان Slices ها را با استفاده از تابع ضمیمه داخلی تعبیه کرد. بعلاوه ، Slices از نوع مرجع یا refrence هستند ، بدین معنی که اختصاص آنها کم هزینه است و می توانند بدون نیاز به ایجاد نسخه جدیدی از آرایه اصلی آن ، به سایر توابع منتقل شوند. سرانجام ، توابع موجود در کتابخانه استاندارد Go ، همه از Slices به جای آرایه ها در API های عمومی خود استفاده می کنند.
➖➖➖➖➖➖➖➖
🔰 @gopher_academy
از طرف دیگر ، Slices ها بسیار انعطاف پذیر ، قدرتمند و راحت تر از آرایه ها هستند. بر خلاف آرایه ها ، می توان Slices ها را با استفاده از تابع ضمیمه داخلی تعبیه کرد. بعلاوه ، Slices از نوع مرجع یا refrence هستند ، بدین معنی که اختصاص آنها کم هزینه است و می توانند بدون نیاز به ایجاد نسخه جدیدی از آرایه اصلی آن ، به سایر توابع منتقل شوند. سرانجام ، توابع موجود در کتابخانه استاندارد Go ، همه از Slices به جای آرایه ها در API های عمومی خود استفاده می کنند.
➖➖➖➖➖➖➖➖
🔰 @gopher_academy
Gopher Academy
👆🏻👆🏻توضیحات بیشتر👆🏻👆🏻 از طرف دیگر ، Slices ها بسیار انعطاف پذیر ، قدرتمند و راحت تر از آرایه ها هستند. بر خلاف آرایه ها ، می توان Slices ها را با استفاده از تابع ضمیمه داخلی تعبیه کرد. بعلاوه ، Slices از نوع مرجع یا refrence هستند ، بدین معنی که اختصاص آنها…
👆🏻👆🏻👆🏻👆🏻
❌ این Slices ها را می توان با استفاده از نحوهای زیر ایجاد کرد:
🔹make([]Type, length, capacity)
🔹make([]Type, length)
🔹[]Type{}
🔹[]Type{value1, value2, ..., valueN}
➖➖➖➖➖➖➖➖
🔰 @gopher_academy
❌ این Slices ها را می توان با استفاده از نحوهای زیر ایجاد کرد:
🔹make([]Type, length, capacity)
🔹make([]Type, length)
🔹[]Type{}
🔹[]Type{value1, value2, ..., valueN}
➖➖➖➖➖➖➖➖
🔰 @gopher_academy
Gopher Academy
❌Arrays❌ آرایه ها مجموعه هایی با اندازه ثابت از عناصر یک نوع هستند. ➖➖➖➖➖➖➖➖➖ 🔰 @gopher_academy
👆🏻👆🏻👆🏻👆🏻
❌ این Arrays ها را می توان با استفاده از نحوهای زیر ایجاد کرد:
🔹[N]Type
🔹[N]Type{value1, value2, ..., valueN}
🔹[...]Type{value1, value2, ..., valueN}
➖➖➖➖➖➖➖➖
🔰 @gopher_academy
❌ این Arrays ها را می توان با استفاده از نحوهای زیر ایجاد کرد:
🔹[N]Type
🔹[N]Type{value1, value2, ..., valueN}
🔹[...]Type{value1, value2, ..., valueN}
➖➖➖➖➖➖➖➖
🔰 @gopher_academy
❌کارگاه برنامهنویسی وب دانشگاه صنعتی شریف❌
🥳حتما به نگاهی کنید جالبه
🔹Angular
🔹CI-CD
🔹CSS
🔹ChartJS
🔹Docker
🔹Flutter
🔹GraphQl
🔹HTML
🔹JavaScript
🔹Kubernetes
🔹React
🔹Redux
🔹Restful-API
🔹Statics
🔹TypeScript
🔴 https://github.com/mostafaghadimi/web_workshop
➖➖➖➖➖➖➖➖
🔰 @gopher_academy
🥳حتما به نگاهی کنید جالبه
🔹Angular
🔹CI-CD
🔹CSS
🔹ChartJS
🔹Docker
🔹Flutter
🔹GraphQl
🔹HTML
🔹JavaScript
🔹Kubernetes
🔹React
🔹Redux
🔹Restful-API
🔹Statics
🔹TypeScript
🔴 https://github.com/mostafaghadimi/web_workshop
➖➖➖➖➖➖➖➖
🔰 @gopher_academy
Gopher Academy pinned «🎯 درود دوستان بنده قصد دارم توی ریپوی زیر از تجربیاتی که دیگران توی مصاحبه گولنگ داشتن رو جمع آوری کنم.🎯 🎯 پس دوستانی که مصاحبه گولنگ داشتن برامون توی ریپوی زیر pull request بزنن تا به اشتراک بزاریم برای سایر افراد ی که وارد این حوزه میشن🎯 🙏🏿❤️🙏🏿 🔗 ht…»
🤔🎯new() vs make()🎯🤔
🔹تابع make یک توابع داخلی است (special built-in function) که برای مقداردهی اولیه Slices ها ، map ها و channel ها استفاده می شود.
🔹توجه داشته باشید که از make فقط می توان برای مقداردهی اولیه Slices ها ، map ها و channel ها استفاده کرد و برخلاف new ، این make اشاره گر را بر نمی گرداند.
➖➖➖➖➖➖➖➖
🔰 @gopher_academy
🔹تابع make یک توابع داخلی است (special built-in function) که برای مقداردهی اولیه Slices ها ، map ها و channel ها استفاده می شود.
🔹توجه داشته باشید که از make فقط می توان برای مقداردهی اولیه Slices ها ، map ها و channel ها استفاده کرد و برخلاف new ، این make اشاره گر را بر نمی گرداند.
➖➖➖➖➖➖➖➖
🔰 @gopher_academy