نتیجهگیری
در طول این کتاب، موضوعات زیادی را به صراحت پوشش دادهایم، از جمله routing، templating، کار با پایگاه داده، authentication/authorization، استفاده از HTTPS، استفاده از package تست Go و بیشتر.
اما درسهای دیگری هم وجود داشتهاند که بیشتر ضمنی بودهاند. الگوهایی که برای پیادهسازی ویژگیها استفاده کردهایم — و نحوه سازماندهی و اتصال کد پروژه ما — چیزی است که باید بتوانید بگیرید و در کارهای آینده خود اعمال کنید.
مهم است که، همچنین میخواستم کتاب این را منتقل کند که شما برای ساخت برنامههای وب در Go نیازی به framework ندارید. کتابخانه استاندارد Go تقریباً همه ابزارهایی که نیاز دارید را شامل میشود… حتی برای یک برنامه نسبتاً پیچیده. برای مواقعی که به کمک برای یک کار خاص نیاز دارید — مثل مدیریت نشست، کاهش CSRF یا hash کردن رمز عبور — packageهای third-party سبک و متمرکز وجود دارند که میتوانید از آنها استفاده کنید.
در این مرحله، اگر همراه با کتاب کد نوشتهاید، توصیه میکنم کمی زمان بگذارید تا کدی که تاکنون نوشتهاید را مرور کنید. همانطور که آن را بررسی میکنید، مطمئن شوید که در ذهن خود واضح است که هر بخش از codebase چه کاری انجام میدهد، و چگونه با پروژه به عنوان یک کل هماهنگ میشود.
همچنین ممکن است بخواهید به هر بخشی از کتاب که اولین بار درک آن برایتان دشوار بود برگردید. برای مثال، حالا که با Go بیشتر آشنا هستید، فصل interface http.Handler ممکن است راحتتر قابل هضم باشد. یا، حالا که دیدهاید که تست در برنامه ما چگونه مدیریت میشود، تصمیماتی که در فصل طراحی یک model پایگاه داده گرفتیم ممکن است در جای خود قرار بگیرند.
بهشدت توصیه میکنم تمرینهای راهنما در فصل ۱۶ را انجام دهید — در انتهای کتاب، بعد از این بخش. این تمرینها به تثبیت آنچه یاد گرفتهاید کمک میکنند؛ با انجام نیمهمستقل آنها، پیش از بهکارگیری دوباره الگوها و تکنیکهای کتاب در پروژههای خود، تمرین اضافی خواهید داشت.
Let's Go Further
اگر میخواهید به یادگیری بیشتر ادامه دهید، ممکن است بخواهید Let’s Go Further را بررسی کنید. این کتاب به عنوان دنباله این کتاب نوشته شده است، و الگوهای پیشرفتهتر برای توسعه، مدیریت و deploy کردن APIها و برنامههای وب را پوشش میدهد.
این کتاب شما را از ابتدا تا انتها در ساخت و deploy یک RESTful JSON API راهنمایی میکند، و شامل موضوعاتی مثل:
- ارسال و دریافت JSON
- کار با SQL migrations
- مدیریت background taskها
- انجام بهروزرسانیهای جزئی و استفاده از optimistic locking
- authorization مبتنی بر permission
- کنترل درخواستهای CORS
- graceful shutdown
- در معرض قرار دادن metricهای برنامه
- خودکارسازی مراحل build و deployment