سلام به همه، مهندسان ارشد نرم افزار آینده ! در چند ماه گذشته، من در حال نوشتن مقالات سادهای بودهام که بخشهای مهم توسعه را توصیف میکنند. امروز در مورد ایده ام به شما می گویم! من می خواهم به شما کمک کنم تا اولین شغل خود را پیدا کنید. چه چیزی برای این مورد نیاز است؟ برای این کار باید تجربه کسب کنید. درک کنید که این پروژه ها از چه چیزی تشکیل شده اند، که مهندسان بر روی آنها کار می کنند و دنیای فناوری اطلاعات را به جلو می برند.
چگونه انجامش بدهیم؟ باید چیزی بنویسم بنابراین، به عنوان بخشی از این سری مطالب، ربات تلگرام خود را مرحله به مرحله می نویسیم (جزئیات زیر). و در عین حال، پشته فناوری را که حتی یک توسعه دهنده تازه کار جاوا به آن نیاز دارد، درک خواهیم کرد.
هدف
پروژه ای بنویسید که کار با پایگاه های داده، ایجاد منطق تجاری مورد نیاز و راه اندازی کار برای استقرار پروژه و آزمایش آن را ترکیب کند. چی بنویسیم؟ اگر می خواهید بنویسید، پس باید چیزی واقعاً مفید بنویسید تا علاقه به کار وجود داشته باشد و کسی بتواند از نتیجه استفاده کند. بر اساس این داده ها، یک ربات تلگرام نوشته خواهد شد که با وب سایت JavaRush کار می کند. آیا این مفید خواهد بود؟ بدون شک! با توجه به اینکه نوشتن ربات های تلگرام چندان سخت نیست، می توانید به سرعت یک پروژه کاری دریافت کنید که می تواند مفید باشد.زمان توسعه
مقالات هفته ای یکبار منتشر می شوند، بنابراین در صورت نامشخص بودن، زمان کافی برای تسلط / تکرار / نوشتن سوالات وجود خواهد داشت. اولین مقالات پایه نظری خواهد بود که در پروژه استفاده خواهیم کرد. و سپس فقط تمرین است.MVP (حداقل محصول قابل دوام)
MVP چیست؟ این اصطلاح، طبق معمول، مال ما نیست، اما میتوانید توضیح معقولی در ویکی پیدا کنید . ما نقل می کنیم: MVP محصولی است که حداقل عملکرد را دارد، اما برای برآوردن اولین نیازها کافی است. وظیفه اصلی دریافت بازخورد برای تشکیل فرضیه هایی برای توسعه بیشتر محصول است. برای ما، این توصیف کاملاً مناسب است. توضیح سریع همه عملکردها: به عنوان یک کاربر تلگرام، میخواهم بتوانم در گروههای مقالات جدید مشترک شوم و در صورت انتشار مطالب جدید، اعلان دریافت کنم. من عاشق خواندن گروه داستان موفقیت هستم ، این به من انگیزه می دهد که به یادگیری ادامه دهم و چیز جدیدی یاد بگیرم. من تنبل هستم و نمی خواهم هر بار وارد صفحه شوم و صفحه را رفرش کنم . بنابراین، من به عنوان یک برنامه نویس می خواهم زندگی خود را آسان کنم و برنامه ای بنویسم که در تلگرام به من پیام دهد که مقاله جدیدی منتشر شده است. علاوه بر این: این تنها گروهی نیست که من دنبال می کنم. من اهل خارکف هستم، بنابراین علاقه مند به خواندن مقالاتی هستم که در آنجا منتشر می شوند. من به عنوان توسعه دهنده این محصول بسیار علاقه مند خواهم بود که آیا کسی از کار من استفاده می کند یا خیر، بنابراین برای ادمین ها قابلیت هایی اضافه می کنیم تا بتوانند آمار ربات تلگرام را مشاهده کنند. آیا انجام این کار ممکن است؟ قطعا! چگونه؟ این چیزی است که در یک سری مقالات نشان خواهم داد.نام کد
هر پروژه جالب باید یک نام رمز داشته باشد. مال ما مستثنی نخواهد بود، بنابراین فعلاً به این صورت خواهد بود: JRTB (JavaRush Telegram Bot). از این پس به این نام خوانده می شود.چه موضوعاتی رو پوشش خواهیم داد؟
پایگاه داده
شما باید فوراً درک کنید که نمی توانید وضعیت (داده ها و اطلاعات) را در برنامه ذخیره کنید. داده ها باید در یک پایگاه داده ذخیره شوند. از آنجایی که در آموزش اطلاعاتی در مورد آن وجود ندارد (تا جایی که من به یاد دارم :D) سعی می کنم شکاف های دانشی را که به آن نیاز خواهیم داشت پر کنم. من سعی خواهم کرد طرحواره پایگاه داده را تا حد امکان ساده کنم تا هیچ سردرگمی وجود نداشته باشد. این بخش شامل:- تئوری کار با SQL بر اساس MySQL.
- ابزار کار با MySQL MySQL Workbench است.
- نسخه سازی پایگاه داده Flyway و liquidbase.
- ایجاد طرح واره پایگاه داده
- طراحی طرحواره پایگاه داده ایجاد کنید.
Git
قبلاً مقالاتی در مورد این موضوع وجود دارد. البته هیچ چیز بدون سیستم کنترل نسخه کار نخواهد کرد. برای شروع کار بر روی JRTB، باید git را بدانید. شما می توانید این کار را خودتان انجام دهید، یا می توانید مقالات من در مورد این موضوع را بخوانید: در صورت تمایل می توانید در مورد استراتژی های انشعاب نیز مطالعه کنید، اما در اینجا مهم نیست و می توان از آن صرف نظر کرد.ماون
در اینجا ما در مورد سیستم مونتاژ صحبت خواهیم کرد، برای چه چیزی است، چگونه از آن استفاده خواهیم کرد، به چه مواردی باید توجه کنیم و قوانین اخلاق خوب. ما همچنین در مورد نسخهسازی در اینجا صحبت خواهیم کرد و اینکه دقیقاً چگونه این کار را انجام خواهیم داد.داکر
برای سادهتر و آسانتر کردن زندگیمان و سادهتر کردن فرآیند استقرار تا حد امکان، از Docker استفاده میکنیم. برای انجام این کار، اجازه دهید در مورد اینکه Docker چیست و چه دستورات مفیدی وجود دارد صحبت می کنیم. میخواهم فوراً بگویم که من از Docker در سطح کاربر استفاده میکنم و ممکن است کاری را ندانم یا نتوانم انجام دهم)) بنابراین اگر کسی به شما پیشنهاد دهد که چگونه کار با Docker را بهتر/آسانتر کنم، فقط از این کار خوشحال خواهم شد. این بخش شامل:- تئوری و عمل داکر.
- پشتیبان گیری/بازیابی اطلاعات از طریق docker.
- پروژه خود را طوری تنظیم می کنیم که در Docker اجرا شود.
اسکریپت های Bash
برای خودکار کردن کار، گاهی اوقات نوشتن یک یا دو اسکریپت مفید است. اسکریپتهای Bash اسکریپتهایی هستند که همه توسعهدهندگان تا حدی آنها را درک میکنند، زیرا اساساً کار خط فرمان در لینوکس هستند و به سادگی در یک فایل جداگانه ذخیره میشوند.ایجاد یک اپلیکیشن
تمام درایو اینجا خواهد بود. بر اساس دانش قبلی، ما یک اپلیکیشن Spring Boot خواهیم ساخت که حاوی یک شی ربات تلگرام باشد. اینجا قراره چیکار کنیم؟- ایجاد یک توصیف کامل از عملکردی که باید وجود داشته باشد.
- توضیح مختصری از چیستی ربات تلگرام.
- ایجاد اپلیکیشن Spring Boot
- شرح کار با لومبوک
- شرح کار با UniRest.
- پیاده سازی الگوی Command + کار با ایجاد حاشیه نویسی خود برای دستورات مدیر.
- ایجاد یک کلاینت برای کار با پرس و جوهای JavaRush (مانند لیستی از گروه ها، لیستی از مقالات در یک گروه) با استفاده از UniRest.
- آزمایش کردن. بیایید تمام تست های ممکن را بنویسیم تا عملکرد خود را پوشش دهیم.
- راه اندازی سیستمی برای بررسی کیفیت کد و ساخت خودکار در GitHub.
- اتصال پایگاه داده همراه با نسخه سازی پایگاه داده.
GO TO FULL VERSION