با بوت. دلیلش هم اینه که اسپرینگ، فریمورک بسیار پیچیده و متنوعیه و از همون اول مجبوری تنظیمات (کانفیگای) زیادی رو انجام بدی و چیزای خیلی زیادی رو یهو یاد بگیری تا بتونی یه اپ ساده بزنی. اسپرینگ بوت میاد و خیلی از این مسائل رو به عهده میگیره و تو سریعتر میتونی یه سری اپهای کوچیک که واقعا یه کار بدردبخوری انجام میدن رو بزنی و اینجوری از همون اول نتیجه کارت رو میبینی، نه این که مثل اسپرینگ، اول کلی انرژی صرف کنی بدون دیدن هیچ نتیجهی محسوسی. بقول تونی رابینز:
Progress equlas happiness
ممکنه دوست داشته باشی بدونی خود اسپرینگ (بدون اسپرینگ بوت) چهطور کار میکنه؛ تو این حالت هم میتونی بعد از این که راه افتادی با اسپرینگ بوت، کم کم به پشت پرده هم یه سرکایی بکشی و یه نگاهی به ساختار و کانفیگای خود اسپرینگ بندازی ولی بعد از این که تونستی با اسپرینگ بوت کارای معمولی رو انجام بدی باید بری سراغ این کار.
🤓 چهطور موقع یادگیری، تو چاههایی که بقیه میفتن، نیفتیم
۱. هیچ کس همه چیز رو در مورد اسپرینگ یا هر تاپیک دیگهای که تو فرض کنی نمیدونه. هرچی بیشتر یاد بگیری، بیشتر به چیزایی برمیخوری که نمیدونی. بقول ابوشکور بلخی (البته اسمشو منم تا قبل از سرچ این شعری که الان میگم نمیدونستم) «تا بدانجا رسید دانش من که بدانستم همی که نادانم».
خلاصه این که واسه ساختن یه وب اپلیکیشن ساده، لازم نیست ما همه چیز اسپرینگ رو بلد باشیم.
۲. واسه شروع لازم نیست استاد اسپرینگ باشی. همون کسی که الان استاد اسپرینگه هم با استادی شروع نکرده. با چیزای پایهای شروع کرده ولی ادامه داده و تمرین کرده. بقول استِفِن مک کرِین:
the master has failed more times than the beginner has even tried
داره چی میگه؟ میفرماید که تعداد دفعههایی که استاد «شکست خورده»، از تعداد دفعههایی که یه تازهکار صرفا «سعی کرده» هم بیشتره. راه پیروزی از شکست میگذره.
(یه عکس جالب هست که بخاطر محدودیت سکان+ نمیتونم اینجا بذارم. خواستین ببینین این لینکشه)
۳. لازم نیست خدای بهرهوری باشی با اسپرینگ. خیلی از دولوپرای اسپرینگ هستن که میتونن با Spring MVC و Spring Data JPA، وب اپلیکیشن بسازن ولی حتی یه اپسیلون هم Spring Security و Spring Cloud بلد نیستن.
۴. تنها نتیجهی مدفون کردن خود زیر کتابها و ویدوهای آموزشی، به تعویق انداختن یادگیری و نهایتا بیخیال یادگیری شدن است. چند درصد از آدما بنظرتون تا الان اون کتابای آموزش برنامهنویسی ۵۰۰+ صفحهای رو خوندن؟ یا همهی اون ویدوهای آموزشی که ریختن رو هاردشون تا یه روز خوب ببینن رو دیدن؟
این مدل استفاده از منابع آموزشی، جلوی این که شما بری و واقعا کد بدرد بخور بزنی رو میگیره. شاید بهتر باشه یه هدف کوچیک و قابل دسترس داشته باشیم. مثلا ساختن یه برنامهی CRUD ساده. هدف اینه که ما یه هدف داشته باشیم و بهش برسیم (همون داستان پیشرفت که قبلتر بهش اشارت کردم).
🤔 مقدماتی که باید بلد باشیم چیا هستن؟
اولین و مهترینش اینه که بدونیم اسپرینگ تو هسته (Core) خودش واقعا داره چیکار میکنه. به قول علما Spring Core چه مسالهای رو داره حل میکنه؟
جواب: وارونگی کنترل و این کار رو با استفاده از مکانیزم تزریق وابستگی انجام میده. والسلام.
🤔 چهطور از صفر شروع به یادگیری اسپرینگ و اسپرینگ بوت کنیم؟
۱. اگه با مفاهیم وارونگی کنترل و تزریق وابستگی آشنا نیستی متیونی از این دوتا مفهوم شروع کنی.
2. مفاهیم اولیهی Spring Container.
3. مفهموم application context تو اسپرینگ.
4. یه اپلیکیشن ساده با همینا بساز.
5. برو سراغ اسپرینگ بوت.
تو فصل اول کتاب Spring in Action ویرایش چهارم (نه پنجم!) میتونید این مفاهیم رو پیدا کنید.