Forwarded from Gopher Academy (Javad)
✅ جلسه دورهمی هفته سوم
- راس ساعت ۹
- موضوع: معماری نرم افزار و ساختار پروژه
- لطفا میکروفون خود را mute و حالت Push to talk بزارید.
- اگر قصد صحبت دارید گزینه بلند کردن دست را بزنید.
🔗 https://meet.jit.si/moderated/8f964ab1ec4492ffbabe6cfe16eb275a93212f3c3e6a9b6036259ab42a10969d
➖➖➖➖➖➖➖➖➖
🔰@gopher_academy
- راس ساعت ۹
- موضوع: معماری نرم افزار و ساختار پروژه
- لطفا میکروفون خود را mute و حالت Push to talk بزارید.
- اگر قصد صحبت دارید گزینه بلند کردن دست را بزنید.
🔗 https://meet.jit.si/moderated/8f964ab1ec4492ffbabe6cfe16eb275a93212f3c3e6a9b6036259ab42a10969d
➖➖➖➖➖➖➖➖➖
🔰@gopher_academy
❤2🐳2
برنامه GNU Hello رو دیدین؟ کارش اینه که Hello, world! چاپ کنه.
gnu.org/software/hello/
هدفشون اینه که بقیه برنامهنویسا یه الگوی ساده داشته باشن تا بتونن از اون پیروی کنن و برنامههای پیچیدهتری با استانداردای GNU بسازن (مثل چندزبانی، آرگومانهای خط فرمان، مستندات، تست، ...)
کد سی برنامه اینجاست:
https://git.savannah.gnu.org/cgit/hello.git/tree/src/hello.c
و جوک معروف «تکامل برنامهنویس» (اینکه یه برناهنویس در هر سطح برنامهنویسی Hello World رو چطوری مینویسه) رو هم در ریپوشون هست:
https://git.savannah.gnu.org/cgit/hello.git/tree/contrib/evolution.txt
#DevTwitter | <Hadi/>
➖➖➖➖➖➖➖➖➖
🕊 @gopher_academy
gnu.org/software/hello/
هدفشون اینه که بقیه برنامهنویسا یه الگوی ساده داشته باشن تا بتونن از اون پیروی کنن و برنامههای پیچیدهتری با استانداردای GNU بسازن (مثل چندزبانی، آرگومانهای خط فرمان، مستندات، تست، ...)
کد سی برنامه اینجاست:
https://git.savannah.gnu.org/cgit/hello.git/tree/src/hello.c
و جوک معروف «تکامل برنامهنویس» (اینکه یه برناهنویس در هر سطح برنامهنویسی Hello World رو چطوری مینویسه) رو هم در ریپوشون هست:
https://git.savannah.gnu.org/cgit/hello.git/tree/contrib/evolution.txt
#DevTwitter | <Hadi/>
➖➖➖➖➖➖➖➖➖
🕊 @gopher_academy
👍2🎉1💊1
gathering3.mkv
185.4 MB
❤2🔥2👍1
✅ پادکست جلسه سوم دورهمی مهندسین گولنگ
دوستان از طریق Spotify و Google Podcasts و همچنین castbox می توانید جلسه سوم دورهمی را گوش دهید.
- موضوع از پیش تعیین شده: معماری نرم افزار و ساختار پروژه
🔗 https://open.spotify.com/show/6aQdgKiOF5tuzI7mpijlfj
🔗 https://podcasts.google.com/feed/aHR0cHM6Ly9hbmNob3IuZm0vcy9kZGY3OWRiNC9wb2RjYXN0L3Jzcw
🔗 https://castbox.fm/va/5381928
➖➖➖➖➖➖➖➖➖
🔰@gopher_academy
دوستان از طریق Spotify و Google Podcasts و همچنین castbox می توانید جلسه سوم دورهمی را گوش دهید.
- موضوع از پیش تعیین شده: معماری نرم افزار و ساختار پروژه
🔗 https://open.spotify.com/show/6aQdgKiOF5tuzI7mpijlfj
🔗 https://podcasts.google.com/feed/aHR0cHM6Ly9hbmNob3IuZm0vcy9kZGY3OWRiNC9wb2RjYXN0L3Jzcw
🔗 https://castbox.fm/va/5381928
➖➖➖➖➖➖➖➖➖
🔰@gopher_academy
🐳3
Test_Driven_Development_in_Go_A_practical_guide_to_writing_idiomatic.pdf
21.2 MB
TDD in Go book
Author: Adelina Simion
Publisher : Packt Publishing; 1st edition (21 April 2023)
➖➖➖➖➖➖➖➖➖
🔰@gopher_academy
Author: Adelina Simion
Publisher : Packt Publishing; 1st edition (21 April 2023)
➖➖➖➖➖➖➖➖➖
🔰@gopher_academy
🎉2
#بدرد
فقط اینکه شما بلد باشید با یک زبان برنامه نویسی یک پروژه رو به اتمام برسونید به معنی این نیست که شما یک Software engineer یا مهندس نرمافزار هستید.
یک مهندس نرمافزار توی سال 2023 نیازه که حداقل یکسری ابزار هارو بلد باشه و بتونه باهاشون کار کنه، خب بیاید ببینیم چه ابزارهایی...
- IDE | Editor
یک مهندس نرمافزار احتمالا بیشترین تایمش رو بابت کد زدن بگذرونه، پس نیازه که محیطی که توش کد میزنه رو خوب بشناسه.
پس اولین ابزار یک IDE یا ادیتور مناسبه که اون رو خوب بشناسه و بهش مسلط باشه تا با سرعت مناسبی بتونه پروسه کد زدن رو پیش ببره.
- Version control systems
برای مدیریت و توسعه سورس های کد نوشته شده و اشتراک گذاری و توسعه توسط بقیه برنامه نویس ها شما حتما حتما باید یک ورژن کنترل مثل گیت رو خوب بلد باشید تا بتونید در روند توسعه سریع و چابک باشید.
- Docker
دیگه توی این دوره هر مهندس نرم افزاری برای این که یک محیط Centralized رو بالا بیاره نیازه که داکر رو بلد باشه، حتما یادش بگیرید :)
- Testing tools
شما نیازه که ابزار ها و لایبرری های مورد استفاده جهت تست نرم افزارتون رو هم بلد باشید تا بتونید تست اتوماتیک داشته باشید
- Monitoring
یکسری ابزار ها هستن برای مانیتور کردن پرفومنس پروژه مثل Prometheus و Grafana که با استفاده ازشون میتونید پرفومنس پروژتون یا دیتابیستون رو مانیتور کنید و برای تحلیل هاتون ازشون استفاده کنید.
- Task management tools
کارها و تسک های هربرنامه نویس باید مشخص باشه که بتونه سرعتش در توسعه رو بالا ببره، در نتیجه دونستن یکسری ابزار مثل Jira که کارشون Task management و.. هست یک نیاز ضروریه.
- Logging
اما لاگ زدن و log tracking، اهمیتش توی یک پروژه به قدری مهمه که شما بعنوان مهندس نرم افزار برای کنترل بهتر روی پروژتون نباید ازش غافل بشید.
یکسری ابزار ها مثل Sentry بهتون کمک میکنن.
- CI/CD
شما با استفاده از CD/CD میتونید روند بیلد، تست و دیپلوی پروژتون رو اتوماتیک کنید و خیلی سرعت خودتون رو در روند توسعه نرم افزار بالاتر ببرید و ریسک خطا های بیلد و دیپلوی رو کاهش بدید، ابزار هایی مثل Jenkins یا حتی Gitlab به شما در این پروسه کمک میکنن.
- Gitlab | Github
خب ما گیت رو یادگرفتیم حالا چطور توی یک محیط اشتراکی کدهامون رو باهم به اشتراک بزاریم و کدهای همدیگه رو قبل از اعمال بررسی و کامنت بزاریم، یا اصلا این کدهارو کجا نگه داریم که فردا از دستشون ندیم؟ خب معلومه دیگه از گیتهاب یا گیتلب استفاده کنید.
- Message brokers
این روزا با بزرگ شدن پروژه هامون، نیاز به ارتباط بین اپلیکیشن ها حس میشه که یکی از روش های ارتباط برقرار کردن استفاده از Message broker هایی مثل Kafka یا RabbitMQ هستش و یادگیریشون امروزه تقریبا ضروری شده برای یک مهندس نرم افزار
- Linux
اصلا نیاز به توضیح نیست در مورد لینوکس، بعنوان یه مهندس نرم افزار تقریبا بیشتر سرورهایی که باهاشون سر و کار دارید لینوکسی هستند، و از سمتی احتمالا استفاده از لینوکس میتونه خیلی بهتون کمک کنه بعنوان دسکتاپتون
پس یادش بگیرید.
- Cloud platforms
این روزا تقریبا هرجایی که برید با Cloud سر و کار دارید و زیرساخت اکثر اپلیکیشنا توی محیط هایی مثل AWS و Google Cloud و Azure یا مشابهشون دارن میزبانی میشن، پس اینم احتمالا باید یادبگیرید خصوصا اگه قصد مهاجرت دارید.
#DevTwitter | <Reza/>
➖➖➖➖➖➖➖➖➖
🕊 @gopher_academy
فقط اینکه شما بلد باشید با یک زبان برنامه نویسی یک پروژه رو به اتمام برسونید به معنی این نیست که شما یک Software engineer یا مهندس نرمافزار هستید.
یک مهندس نرمافزار توی سال 2023 نیازه که حداقل یکسری ابزار هارو بلد باشه و بتونه باهاشون کار کنه، خب بیاید ببینیم چه ابزارهایی...
- IDE | Editor
یک مهندس نرمافزار احتمالا بیشترین تایمش رو بابت کد زدن بگذرونه، پس نیازه که محیطی که توش کد میزنه رو خوب بشناسه.
پس اولین ابزار یک IDE یا ادیتور مناسبه که اون رو خوب بشناسه و بهش مسلط باشه تا با سرعت مناسبی بتونه پروسه کد زدن رو پیش ببره.
- Version control systems
برای مدیریت و توسعه سورس های کد نوشته شده و اشتراک گذاری و توسعه توسط بقیه برنامه نویس ها شما حتما حتما باید یک ورژن کنترل مثل گیت رو خوب بلد باشید تا بتونید در روند توسعه سریع و چابک باشید.
- Docker
دیگه توی این دوره هر مهندس نرم افزاری برای این که یک محیط Centralized رو بالا بیاره نیازه که داکر رو بلد باشه، حتما یادش بگیرید :)
- Testing tools
شما نیازه که ابزار ها و لایبرری های مورد استفاده جهت تست نرم افزارتون رو هم بلد باشید تا بتونید تست اتوماتیک داشته باشید
- Monitoring
یکسری ابزار ها هستن برای مانیتور کردن پرفومنس پروژه مثل Prometheus و Grafana که با استفاده ازشون میتونید پرفومنس پروژتون یا دیتابیستون رو مانیتور کنید و برای تحلیل هاتون ازشون استفاده کنید.
- Task management tools
کارها و تسک های هربرنامه نویس باید مشخص باشه که بتونه سرعتش در توسعه رو بالا ببره، در نتیجه دونستن یکسری ابزار مثل Jira که کارشون Task management و.. هست یک نیاز ضروریه.
- Logging
اما لاگ زدن و log tracking، اهمیتش توی یک پروژه به قدری مهمه که شما بعنوان مهندس نرم افزار برای کنترل بهتر روی پروژتون نباید ازش غافل بشید.
یکسری ابزار ها مثل Sentry بهتون کمک میکنن.
- CI/CD
شما با استفاده از CD/CD میتونید روند بیلد، تست و دیپلوی پروژتون رو اتوماتیک کنید و خیلی سرعت خودتون رو در روند توسعه نرم افزار بالاتر ببرید و ریسک خطا های بیلد و دیپلوی رو کاهش بدید، ابزار هایی مثل Jenkins یا حتی Gitlab به شما در این پروسه کمک میکنن.
- Gitlab | Github
خب ما گیت رو یادگرفتیم حالا چطور توی یک محیط اشتراکی کدهامون رو باهم به اشتراک بزاریم و کدهای همدیگه رو قبل از اعمال بررسی و کامنت بزاریم، یا اصلا این کدهارو کجا نگه داریم که فردا از دستشون ندیم؟ خب معلومه دیگه از گیتهاب یا گیتلب استفاده کنید.
- Message brokers
این روزا با بزرگ شدن پروژه هامون، نیاز به ارتباط بین اپلیکیشن ها حس میشه که یکی از روش های ارتباط برقرار کردن استفاده از Message broker هایی مثل Kafka یا RabbitMQ هستش و یادگیریشون امروزه تقریبا ضروری شده برای یک مهندس نرم افزار
- Linux
اصلا نیاز به توضیح نیست در مورد لینوکس، بعنوان یه مهندس نرم افزار تقریبا بیشتر سرورهایی که باهاشون سر و کار دارید لینوکسی هستند، و از سمتی احتمالا استفاده از لینوکس میتونه خیلی بهتون کمک کنه بعنوان دسکتاپتون
پس یادش بگیرید.
- Cloud platforms
این روزا تقریبا هرجایی که برید با Cloud سر و کار دارید و زیرساخت اکثر اپلیکیشنا توی محیط هایی مثل AWS و Google Cloud و Azure یا مشابهشون دارن میزبانی میشن، پس اینم احتمالا باید یادبگیرید خصوصا اگه قصد مهاجرت دارید.
#DevTwitter | <Reza/>
➖➖➖➖➖➖➖➖➖
🕊 @gopher_academy
🕊7👍3🔥1
#remote #job
Senior Golang Engineer + familiar with Blockchain
Salary: 20~25k in month
Contact to: https://www.linkedin.com/in/ana-manrique-bbbbb0136
➖➖➖➖➖➖➖➖➖
🕊 @gopher_academy
Senior Golang Engineer + familiar with Blockchain
Salary: 20~25k in month
Contact to: https://www.linkedin.com/in/ana-manrique-bbbbb0136
➖➖➖➖➖➖➖➖➖
🕊 @gopher_academy
👍8❤4🐳1💊1
مواردی که باید توی انتخاب یه کتابخونه توی پروژه دقت کرد
Does the code quality meet your standards?
Does it have automated testing?
Is the documentation up-to-date?
Is the library actively maintained?
➖➖➖➖➖➖➖➖➖
🕊 @gopher_academy
Does the code quality meet your standards?
Does it have automated testing?
Is the documentation up-to-date?
Is the library actively maintained?
➖➖➖➖➖➖➖➖➖
🕊 @gopher_academy
👍7💯4
عزیزان، Rust یاد بگیرید. مدتهاست دارم اینو میگم.
اصلا لازم نیست ازش خوشتون بیاد
یا حتی ازش استفاده کنید. حتی در حد یک خط
چُسِ خوشبویی هم نیست...
ولی یاد بگیرینش!
دلیل اینکه چنین حرفی میزنم، همون دلیلی هست که میگم همه باید C بلد باشن. یک شیفت در نرم افزار داره اتفاق میفته!
#DevTwitter | <Amirreza Gh/>
➖➖➖➖➖➖➖➖➖
🕊 @gopher_academy
اصلا لازم نیست ازش خوشتون بیاد
یا حتی ازش استفاده کنید. حتی در حد یک خط
چُسِ خوشبویی هم نیست...
ولی یاد بگیرینش!
دلیل اینکه چنین حرفی میزنم، همون دلیلی هست که میگم همه باید C بلد باشن. یک شیفت در نرم افزار داره اتفاق میفته!
#DevTwitter | <Amirreza Gh/>
➖➖➖➖➖➖➖➖➖
🕊 @gopher_academy
🤔21👎11👍8❤1
عزیزان، دو نکته:
۱. اگر تازه در حال یادگیری برنامهنویسی هستید و تمرکزتون روی یک زبان یا تکنولوژی خاصی هست، لازم نیست روند یادگیری رو متوقف کنید که یک زبان برنامه نویسی دیگه رو یاد بگیرید. همون مسیر خودتون رو ادامه بدید و جایی که احساس کردید به هدفتون از یادگیری رسیدید، میتونید در ادامهی مسیر یادگیری زبانهای دیگه رو امتحان کنید.
۲. محبوبیت Rust در سه سال اخیر به شدت افزایش پیدا کرده و پیشنهادم به برنامهنویسها و تسترهای سیستمی اینه که حتی به صورت تفریحی هم که شده این زبان رو یاد بگیرند.
#DevTwitter | <Kasra M./>
➖➖➖➖➖➖➖➖➖
🕊 @gopher_academy
۱. اگر تازه در حال یادگیری برنامهنویسی هستید و تمرکزتون روی یک زبان یا تکنولوژی خاصی هست، لازم نیست روند یادگیری رو متوقف کنید که یک زبان برنامه نویسی دیگه رو یاد بگیرید. همون مسیر خودتون رو ادامه بدید و جایی که احساس کردید به هدفتون از یادگیری رسیدید، میتونید در ادامهی مسیر یادگیری زبانهای دیگه رو امتحان کنید.
۲. محبوبیت Rust در سه سال اخیر به شدت افزایش پیدا کرده و پیشنهادم به برنامهنویسها و تسترهای سیستمی اینه که حتی به صورت تفریحی هم که شده این زبان رو یاد بگیرند.
#DevTwitter | <Kasra M./>
➖➖➖➖➖➖➖➖➖
🕊 @gopher_academy
👍11🕊4🐳2
هر آنچه در مورد jsonb توی postgresql میخوای بدونی این مقاله بهت کمک میکنه
که چطور ازش استفاده کنی
https://dev.to/ftisiot/postgresqlr-jsonb-cheatsheet-complete-fast-lookup-guide-2o2m
➖➖➖➖➖➖➖➖➖
🕊 @gopher_academy
که چطور ازش استفاده کنی
https://dev.to/ftisiot/postgresqlr-jsonb-cheatsheet-complete-fast-lookup-guide-2o2m
➖➖➖➖➖➖➖➖➖
🕊 @gopher_academy
🫡3👾1
استخدام
ما توی پادرو به دنبال یک برنامهنویس ارشد بکاند هستیم، که مهارتهای زیر رو داشته باشه:
- داشتن تفکر مهندسی نرم افزار
- دارای روحیه کار تیمی، حل مساله، علاقمند به توسعه فردی
- مسلط به Go و Standard Library های مربوط
اگه این مهارتها رو دارین از طریق لینک زیر رزومهتون رو برامون ارسال کنین
شرح موقعیت شغلی و اطلاعات بیشتر
https://podro.com/career/
➖➖➖➖➖➖➖➖➖
🕊 @gopher_academy
ما توی پادرو به دنبال یک برنامهنویس ارشد بکاند هستیم، که مهارتهای زیر رو داشته باشه:
- داشتن تفکر مهندسی نرم افزار
- دارای روحیه کار تیمی، حل مساله، علاقمند به توسعه فردی
- مسلط به Go و Standard Library های مربوط
اگه این مهارتها رو دارین از طریق لینک زیر رزومهتون رو برامون ارسال کنین
شرح موقعیت شغلی و اطلاعات بیشتر
https://podro.com/career/
➖➖➖➖➖➖➖➖➖
🕊 @gopher_academy
👾9👎2🏆2🎃2👍1
خیلی ها توی تویتر میبینم که میگن
اقا برین راست یادبگیرین
انگار راست شده عصای موسی😂
اینا جز انحراف جامع گولنگ چیزی نمیخوان نه حتی گولنگ بلکه سایر زبان های دیکه
حواستون جمع کنید دارن راست راست میندازن مارو توی چاه
دل نوشته های یک پیرمرد گولنگ کار
#twitter
➖➖➖➖➖➖➖➖➖
🕊 @gopher_academy
اقا برین راست یادبگیرین
انگار راست شده عصای موسی😂
اینا جز انحراف جامع گولنگ چیزی نمیخوان نه حتی گولنگ بلکه سایر زبان های دیکه
حواستون جمع کنید دارن راست راست میندازن مارو توی چاه
دل نوشته های یک پیرمرد گولنگ کار
➖➖➖➖➖➖➖➖➖
🕊 @gopher_academy
🤣20❤5🐳3👍1💯1