
در این مقاله که سری سوم و نهایی از مسیری در جهت تبدیل شدن به یک توسعه دهنده گولنگ را نشان می دهد. که یک توسعه دهنده گولنگ باید چه چیز های یاد بگیرد. پس با ما همراه باشید.
شما می توایند قسمت اول و قسمت دوم را از این جا بخوانید.
سرفصل بخش اول شامل موارد زیر هست
خوشحال میشم اگه چیزی از قلم افتاده توی همین پست برام کامنت کنید.
و در ضمن ما رو توی گیت هاب دنبال کنید
قبل اینکه با ابزار ها آشنا بشیم یه توضیح بدم که در واقع تست نویسی یکی از اصول مهم در برنامه نویسی هست که اکثر برنامه نویس های ایرانی ازش فراری هستن خوب در واقع تست نویسی این اطمینان را حاصل می کند که عملکرد مناسبی از برنامه تولید شود . این موضوع یکی از مهم ترین مراحل در در فرآیند تولید یک محصول است.به هیچ وجه نمی توان بدون تست یک محصول رو به بازار فرستاد.
البته نوع های مختلف دیگه ای هم هست اما ن توی این مقاله چندتا رو توضیح میدم که توی پکیج های گولنگ مورد استفاده قرار می گیرند.
این تست قطعه کوچکی از کد که نیازمند به کد ها و یا ابجکت های زیادی نیست , مثل یک متد و یا یک کلاس برای تست که نیازمند آبجکت ها و یا کلاس های دیگر و یا توابع دیگر نیستند , دقت کنید که گفتیم زیاد نه اینکه یک کلاس وابسته به کلاس دیگری برای ران شدن باشد و ما این را یونیت تست صدا نزنیم , نه! این اشتباه است ما قطعه کوچک را باید در نظر بگیریم و اگر کد بزرگی داشتیم قطعا از متد های دیگر استفاده خواهیم کرد .
تستی که در برگیرنده چند واحد کد است و منظورمان چند کلاس و متد و… است . و معمولا بیشتر از یونیت تستینگ وقت گیر است چراکه complexity برنامه بالا رفته است و شما باید چند واحد را تست کنید و قطعا مشخص است که یونیت تستینگ وقت کمتری را خواهد گرفت .
توسعه رفتار محور تکنیکها و قواعد اساسی، توسعه آزمون محور را با ایدههای طراحی دامنه محور و تجزیه و تحلیل و طراحی شی گرا ادغام میکند تا برای تیمهای توسعه و مدیریت نرمافزار، ابزارها و فرایندهای مشترکی برای همکاری در توسعه نرمافزار ارائه کند.
این ابزار یک چارچوب mocking برای زبان برنامه نویسی Go است. که با بسته داخلی Go ساخته شده است.
بی شک در این لیست این ابزار یکی از بهترین ابزار ها هست که متد های مختلفی و میتونید رو کد خودتون تست کنید.
ویژگی ها:
یک نوع تست برای تست های BDD محصوب می شود.
یک نوع تست برای تست های BDD محصوب می شود.
یک نوع تست برای تست های BDD محصوب می شود
یک نوع تست که به صورت محیط ui تست های شمارو نشون میده. اینم لینک ویدیو
ویژگی ها:
go testاین ابزار ها که از اسمشان پیداست وظیفه مدیریت و زمانبدی وظابف رو دارن
کرون جاب ها در گولنگ می باشد.
ویژگی ها:
این ابزار چارچوبی برای انجام کار به صورت غیر همزمان می باشد.و برنامه ریزی و صف بندی توابع برای پردازش در زمان مشخص با Cron همراه میسازد.
ابزار RabbitMQ
این ابزار یک نرم افزار صف بندی پیام به نام واسطهی پیام یا مدیریت صف است. بطور ساده، نرم افزاری است که در آن صفها میتوانند تعریف شوند، برنامهها ممکن است به صف متصل شده و یک پیام به آن انتقال دهند.
ابزار Apache Kafka
کافکا برای مواجهه با انبوهی از داده ها که بی وقفه در حال ارسال هستند و شما فرصت کافی برای پردازش و ذخیره سازی آنها نداشته باشید تولید شده است.کافکا برای استفاده در پروژه های زمان واقعی (real-time) به منظور فراهم آوردن خط لوله داده ها و جریان برنامه های استفاده می شود. کافکا به صورت افقی مقیاس پذیر، مقاوم در برابر خطاو بسیار سریع است. و در تولیدات هزاران شرکت استفاده می شود.
ابزار ActiveMQ
این نرم افزار محبوب و قدرتمند یک نرم افزار کدباز پیام رسانی و سرویس دهنده تجمیع کننده الگوها می باشد. این نرم افزار بسیار سریع بوده و بسیاری از زبانهای مبتنی بر ایستگاه کاری و پروتکل های مختلف را پشتیبانی می نماید. این نرم افزار به صورت بسیار کاربر پسند و حرفه ای، الگوهای تجاری را تجمیع می نماید. ActiveMQ قابلیت های پیشرفته ای در خود گنجانده است. همچنین نسخه جدید این نرم افزار ازJMS 1.1 و J2EE 1.4 پشتیبانی می نماید . این نرم افزار تحت مجوز Apache 2.0 License انتشار می نماید
ابزار Azure Service Bus
در واقع این ابزار ارتباطات ابری قابلاطمینان بین برنامهها و پایگاههای داده را فراهم میکند و پیام را به عنوان یک سرویس (MaaS) ارایه میدهد.
ابزار Watermillاین ابزار یک کتابخانه برای جریان های پیام می باشد. این ابزار برای ساخت برنامه های مبتنی بر رویدادها ، فعال کردن منابع برای رویدادها ، RPC از طریق پیام ها ،و هر چیز دیگری به ذهن شما خطور می کند. در ضمن شما می توانید با استفاده از ابزار های متداولی مانند کافکا یا RabbitMQ ، بلکه HTTP یا MySQL استفاده کنید.
ویژگی ها:
ابزار GoKit
این فرم ورک برای ساخت برنامه های که مبتنی بر میکروسرویس می باشند عمل می کند.
ویژگی ها:
ابزار Micro
این فرم ورک برای ساخت برنامه های توزیع شده می باشد.
ویژگی ها:
ابزار rpcxیک چارچوب سریع برای میکرو سرویسهای دو طرفه چند زبانه
ویژگی ها:
ابزار Protocol Buffers
درمورد این ابزار و نحو کارکرد آن این مقاله آموزش صفر تا ۵۰ پروتوبافر رو بخونید.
ابزار gRPC-Go
درمورد این ابزار و نحو کارکرد آن این مقاله gRPC چیه و چطور کار میکنه؟ رو بخونید.
در واقع Design Patternها در زمان طراحی سیستم های نرم افزاری و یا فرایند تولید جواب بسیار مورد توجه قرار می گیرد. الگوها سر و صدای زیادی به پا کرده است. از طرفی ممکن است در استفاده از آن ها دچار سردرگمی بشویم. اساساً با سوالات زیر مواجه خواهیم بود:
در واقع Design Patternها یکسری جواب های ثابت شده به مشکلات رایج در طراحی هستند. به وسیله آنها می توان یکسری راهکار برای حل مسائل بازگشتی در طراحی برنامه تعریف کرد.
به طور واضح، Design Patternها کدهای آماده ای نیستند که بتوان مستقیماً از آن ها استفاده کرد. اما یسکری رویکرد یا نظریه برای حل چالش های عادی طراحی ارائه می دهند.
باید از design pattern ها برای طراحی و توسعه اجزاء (componentها) ای استفاده کنیم که مجدداً قابل استفاده و مقیاس پذیر بوده باشند و به تیم برنامه نویسی کمک کنند تا عملیات توسعه در زمان مقرر و با کیفیت بالاتری به انجام برسد.
طراحی یک برنامه به شکل استاندارد یا تست شده به سایر توسعه دهنده گان و کسانی که کدهای برنامه را قرار است مرور کنند، اجازه می دهد به راحتی مفهوم کدهای نوشته شده را درک کنند.
استفاده از Design Patternها بدون ارزیابی صحیح باعث پیچیدگی غیر ضروری الگو می شود. در شرایطی که به آنها احتیاج ندارید می توانید با استفاده از اصول ساده طراحی OOP کار خود را به جلو ببرید.
اینکه چه زمانی از آنها استفاده کنیم و یا چه زمانی استفاده نکنیم به خودمان بستگی دارد. هر الگو درباره یک مشکل طراحی صحبت میکند و یک راه حل استاندارد برای آن ارائه می دهد. بنابراین قبل از استفاده از آنها کمی وقت برای تجزیه و تحلیل مسائل طراحی صرف کنید و سعی کنید آن را با توصیف های الگو تطبیق دهید.
به خاطر داشته باشید که نکته کلیدی در پیدا کردن الگوی صحیح، شناسایی و درک سناریویی است که هر الگویی سعی میکند به آن دست یابد.
به محض اینکه الگوی مناسب برای مسئله یا سناریوی خاص شما مشخص شد، می توانید از آن در طراحی نرم افزار خود استفاده کنید.
یه چندتا منابع مبزارم براتون برای کاری با الگو ها در گولنگ