کتاب The Software Developer’s Guide to Linux: A practical, no-nonsense guide to using the Linux command line and utilities as a software developer (راهنمای توسعهدهنده نرمافزار برای لینوکس: راهنمای کاربردی و بیمعنی برای استفاده از خط فرمان لینوکس و ابزارهای کمکی به عنوان توسعهدهنده نرمافزار) راهنمای کاربردی و ساده است که توسعهدهندگان نرمافزار را با دانش و مهارتهای ضروری برای استفاده مؤثر از خط فرمان و ابزارهای لینوکس آشنا میکند.
این راهنمای جامع یک رویکرد گام به گام برای درک پیچیدگیهای لینوکس ارائه میدهد و توسعهدهندگان را قادر میسازد تا از قدرت آن برای اهداف توسعه نرمافزار استفاده کنند. از پیمایش خط فرمان گرفته تا استفاده از ابزارهای توسعه و بهینهسازی گردشهای کاری، این کتاب بینشهای ارزشمند و نمونههای واقعی را برای افزایش مهارت توسعهدهنده در محیط لینوکس ارائه میدهد. چه در لینوکس تازه کار باشید و چه به دنبال تعمیق تخصص خود هستید، این راهنما منبعی ارزشمند برای استفاده از لینوکس به عنوان یک توسعه دهنده نرم افزار است.
در ادامه مقدمهای از کتاب The Software Developer’s Guide to Linux را از زبان نویسنده شرح خواهیم داد.
مقدمهای بر کتاب The Software Developer’s Guide to Linux:
بسیاری از مهندسان نرمافزار با سیستمهای مشابه یونیکس تازه کار هستند، حتی اگر این سیستمها در همه جای دنیای مهندسی نرمافزار وجود داشته باشند. توسعهدهندگان چه بدانند و چه ندانند، انتظار میرود که با سیستمهای مشابه یونیکس که در محیط کارشان (macOS)، فرآیند توسعه نرمافزار (ظرفهای Docker)، ابزار ساخت و اتوماسیون (CI و GitHub) و محیطهای تولیدشان اجرا میشوند، کار کنند. (سرورها و کانتینرهای لینوکس) و موارد دیگر.
مهارت در خط فرمان لینوکس میتواند به توسعهدهندگان نرمافزار کمک کند تا فراتر از آنچه از آنها انتظار میرود عمل کنند و به آنها این امکان را میدهد که:
- با دانستن زمان استفاده از ابزارهای داخلی یونیکس، به جای نوشتن اسکریپتهای هزار خطی یا برنامههای کمکی، در زمان صرفهجویی کنید.
- به اشکال زدایی قطعیهای تولید پیچیده، که اغلب شامل سرورهای لینوکس و رابط آنها با برنامه است، کمک کنید
- مربیان مهندسین جوان
- درک کاملتری از نحوه تناسب نرمافزاری که مینویسند با اکوسیستم بزرگتر و پشته فناوری دارند
امیدواریم تئوری، مثالها و پروژههای موجود در این کتاب بتواند مهارتهای توسعه لینوکس شما را به سطح بالاتری برساند.
کتاب The Software Developer’s Guide to Linux برای چه کسی است؟
این کتاب برای توسعهدهندگان نرمافزاری است که به تازگی با لینوکس و خط فرمان آشنا هستند یا از تمرین خارج شدهاند و میخواهند به سرعت مهارتهای خود را از بین ببرند. اگر در ساعت ۲ بامداد وقتی به خط فرمان لینوکس روی سرور تولید خیره میشوید، هنوز در مورد تواناییهای خود کمی احساس ناامنی میکنید، این کتاب برای شما مناسب است.
اگر میخواهید به سرعت شکاف مهارتهای لینوکس را برای پیشرفت شغلی خود پر کنید، این کتاب برای شما مناسب است. اگر فقط کنجکاو هستید و میخواهید ببینید با افزودن مقداری جادوی خط فرمان، چه نوع دستاوردهایی را میتوانید در راهاندازی و برنامههای توسعه روزانه خود به دستآورید، این کتاب به شما نیز کمک خواهد کرد.
بیشتر بخوانید: کتاب Oracle Linux Cookbook
چیزی که کتاب The Software Developer’s Guide to Linux نیست:
یکی از راههایی که سعی کردهایم چشمانداز خود را برای این نوع کتاب مفید منحصربهفرد برآورده کنیم، دقت بسیار زیاد در مورد آنچه شامل میشود است. ما سعی کردهایم همه چیزهایی را که برای زندگی شما بهعنوان یک توسعهدهنده یا درک اولیه لینوکس و انتزاعهای اصلی آن ضروری نیست، حذف کنیم. به عبارت دیگر، دلیل مفید بودن این کتاب به خاطر همه چیزهایی است که از قلم انداختیم.
این کتاب یک دوره کامل لینوکس نیست. این برای افرادی که به عنوان مهندس سیستم لینوکس یا توسعه دهنده هسته کار میکنند نیست. به همین دلیل، بیش از ۷۵۰ صفحه طولانی نیست، و شما باید بتوانید در چند روز آن را کار کنید، شاید در طول یک سرعت بدون صدا در محل کار.
آنچه کتاب The Software Developer’s Guide to Linux پوشش میدهد:
فصل ۱، خط فرمان چگونه کار میکند، توضیح میدهد که یک رابط خط فرمان چگونه کار میکند، پوسته چیست، و سپس بلافاصله برخی از مهارتهای اساسی لینوکس را به شما میدهد. شما کمی تئوری دریافت خواهید کرد و سپس شروع به حرکت در خط فرمان، پیدا کردن و کار با فایلها و یادگیری جایی میکنید که در صورت گیر افتادن به دنبال کمک باشید. این فصل با آموزش مهمترین مهارتهای خط فرمان به توسعهدهندگان جدید پاسخ میدهد. اگر چیز دیگری نخوانید، باز هم نسبت به زمانی که شروع کردید، وضعیت بهتری خواهید داشت.
فصل ۲، کار با فرآیندها، شما را به یک تور راهنما از فرآیندهای لینوکس میبرد. سپس به مهارتهای کاربردی و مفید خط فرمان برای کار با فرآیندها خواهید رسید. ما جزئیات را به چند جنبه که منبع رایج مشکلات مربوط به فرآیند هستند اضافه میکنیم که به عنوان یک توسعهدهنده نرمافزار با آنها مواجه میشوید، مانند مجوزها، و برخی اکتشافیها را برای عیبیابی آنها به شما ارائه میکنیم. همچنین یک تور سریع از برخی موضوعات پیشرفته که بعداً در کتاب مطرح خواهند شد، دریافت خواهید کرد.
فصل ۳، مدیریت خدمات با systemd، با معرفی یک لایه اضافی از انتزاع، یعنی سرویس systemd، بر دانش مربوط به فرآیندهای آموخته شده در فصل قبل استوار است. شما در مورد آنچه که یک سیستم init برای یک سیستم عامل انجام میدهد و چرا باید به آن اهمیت دهید، یاد خواهید گرفت. سپس، ما تمام دستورات عملی را که برای کار با سرویسها در یک سیستم لینوکس نیاز دارید، پوشش میدهیم.
فصل ۴، استفاده از تاریخچه پوسته، یک فصل کوتاه است که برخی از ترفندها را پوشش میدهد که میتوانید برای بهبود سرعت و کارایی خود در خط فرمان یاد بگیرید. این ترفندها حول محور استفاده از میانبرها و استفاده از تاریخچه پوسته برای جلوگیری از ضربه زدن مکرر کلید است.
فصل ۵، معرفی فایلها، فایلها را بهعنوان انتزاعی ضروری برای درک لینوکس معرفی میکند. شما با استاندارد سلسله مراتبی سیستم فایل (FHS) آشنا میشوید که مانند نقشهای است که میتوانید از آن برای جهتیابی خود در هر سیستم یونیکس استفاده کنید.
سپس نوبت به دستورات عملی برای کار با فایلها و دایرکتوریها در لینوکس میرسد، از جمله انواع فایلهای خاصی که احتمالاً نامشان را نشنیدهاید. همچنین طعم جستجوی فایلها و محتوای فایل را خواهید چشید، که یکی از قدرتمندترین دانشهایی است که به عنوان یک توسعهدهنده در دسترس شماست.
فصل ۶، ویرایش فایلها در خط فرمان، دو ویرایشگر متن – nano و vim را معرفی میکند. شما اصول استفاده از این ویرایشگرهای متن برای ویرایش خط فرمان را یاد خواهید گرفت و همچنین از اشتباهات رایج ویرایش و نحوه اجتناب از آنها آگاه خواهید شد.
فصل 7، کاربران و گروهها، شما را با این که چگونه مفاهیم کاربران و گروهها اساس مدل امنیتی یونیکس را تشکیل میدهند و دسترسی به منابعی مانند فایلها و فرآیندها را کنترل میکند، آشنا میکند. سپس دستورات عملی مورد نیاز برای ایجاد و تغییر کاربران و گروهها را به شما آموزش میدهیم.
فصل 8، مالکیت و مجوزها، بر اساس توضیح فصل قبل در مورد کاربران و گروهها است تا به شما نشان دهد که چگونه کنترل دسترسی برای منابع در لینوکس کار میکند. این فصل به شما در مورد مالکیت و مجوزها با راهنمایی شما در اطلاعات فایل از یک فهرست طولانی میآموزد. از آنجا، قبل از درگیر شدن با دستورات لینوکس برای تغییر مالکیت فایل و مجوزها، مجوزهای رایج فایل و دایرکتوری را که در سیستمهای لینوکس تولیدی با آنها مواجه خواهید شد، بررسی خواهیم کرد.
فصل 9، مدیریت نرم افزار نصب شده، به شما نشان میدهد که چگونه نرم افزار را روی توزیعهای مختلف لینوکس (و حتی macOS) نصب کنید. ابتدا، مدیران بسته را معرفی میکنیم، که راه ارجح برای وارد کردن نرمافزار به یک ماشین هستند: شما تئوری مهم و دستورات عملی برای عملیات مدیریت بستهای را که به عنوان یک توسعهدهنده نرمافزار به آن نیاز دارید، یاد خواهید گرفت.
سپس چند روش دیگر مانند دانلود اسکریپتهای نصب و سنت قدیمی و حرفهای یونیکس برای کامپایل کردن نرمافزار خود به صورت محلی و از منبع را معرفی میکنیم (آنقدرها هم که به نظر میرسد ترسناک نیست!).
فصل 10، پیکربندی نرمافزار، تمرکز فصل قبل بر نصب نرمافزار را با کمک به پیکربندی نرمافزار بر روی یک سیستم لینوکس از بین میبرد. شما در مورد مکانهایی که اکثر نرم افزارها به دنبال پیکربندی هستند (“سلسله مراتب پیکربندی”) خواهید آموخت.
این دانش نه تنها در جلسات عیبیابی آخر شب مفید خواهد بود، بلکه میتواند به شما در نوشتن نرمافزار بهتر کمک کند. ما آرگومانهای خط فرمان، متغیرهای محیط، فایلهای پیکربندی و نحوه عملکرد همه اینها در محیطهای غیراستاندارد لینوکس مانند کانتینرهای Docker را پوشش خواهیم داد. حتی یک پروژه جایزه کوچک وجود دارد: خواهید دید که چگونه یک برنامه سفارشی را بگیرید و آن را به سرویس سیستم خود تبدیل کنید.
فصل 11، Pipes and Redirection، به شما معرفی میکند که احتمالاً “ویژگی کشنده” یونیکس است: توانایی اتصال برنامههای موجود به یک راه حل سفارشی با استفاده از لولهها. ما از طریق تئوری پیشنیاز و مهارتهای عملی مورد نیاز برای درک حرکت خواهیم کرد: توصیفکنندههای فایل و تغییر مسیر ورودی/خروجی. سپس به ایجاد دستورات پیچیده با استفاده از لولهها می پردازید. شما با برخی از ابزارهای ضروری CLI و الگوهای عملی لوله آشنا خواهید شد که پس از اتمام این کتاب همچنان خواهید دید که از آنها استفاده می کنید.
فصل 12، خودکارسازی وظایف با اسکریپتهای شل، به عنوان یک دوره خرابی اسکریپت نویسی Bash عمل میکند و به شما آموزش میدهد که چگونه از تایپ دستورات فردی در یک پوسته تعاملی به نوشتن اسکریپتها بروید.
ما فرض میکنیم که شما قبلاً یک توسعهدهنده نرمافزار هستید، بنابراین این یک معرفی سریع است که ویژگیهای اصلی زبان را به شما نشان میدهد و زمان زیادی را صرف توضیح مجدد اصول اولیه برنامهنویسی نمیکند. در مورد نحو Bash، بهترین روشها برای نوشتن اسکریپت و برخی از مشکلات مهمی که باید اجتناب کنید، یاد خواهید گرفت.
فصل 13، دسترسی از راه دور ایمن با SSH، پروتکل پوسته ایمن و ابزارهای خط فرمان مربوطه را که در دسترس شما هستند بررسی میکند. قبل از ایجاد کلیدهای SSH و ورود ایمن به سیستمهای راه دور از طریق شبکه، اصول اولیه رمزنگاری کلید عمومی (PKI) را که همیشه برای یک توسعه دهنده مفید است، یاد خواهید گرفت. شما بر اساس این دانش خواهید بود و تجربه ای در کپی کردن فایلها از طریق شبکه، استفاده از SSH برای ایجاد پراکسیهای موقت یا VPN ها، و نمونههایی از کارهای مختلف دیگر که شامل انتقال دادهها از طریق یک تونل رمزگذاری شده SSH است را خواهید دید.
فصل 14، کنترل نسخه با Git، به شما نشان میدهد که چگونه از ابزاری که احتمالاً قبلاً به خوبی می شناسید – git – از خط فرمان، به جای استفاده از IDE یا یک کلاینت گرافیکی، استفاده کنید. ما به سرعت تئوری اصلی پشت git را مرور می کنیم و سپس به دستوراتی که باید در یک محیط خط فرمان استفاده کنید می پردازیم.
ما دو ویژگی قدرتمند را پوشش میدهیم که درک آنها ضروری است – تقسیم بندی و تغییر پایه – و سپس نظر خود را در مورد بهترین روشها و نامهای مستعار پوسته مفید ارائه میدهیم. در نهایت، بخش Poor’s GitHub یک پروژه کوچک اما کاملاً مفید را ارائه میکند که میتوانید برای تمرین و ادغام مهارتهای لینوکس که تا این لحظه آموختهاید، انجام دهید.
فصل 15، Containerizing Applications with Docker، تئوری اولیه و مهارتهای عملی را در اختیار شما قرار میدهد که کار با Docker را به عنوان یک توسعه دهنده آسان میکند. ما مشکلاتی را که داکر حل میکند بررسی میکنیم، مهمترین مفاهیم Docker را توضیح میدهیم و شما را در جریان کار اصلی و دستوراتی که استفاده میکنید راهنمایی میکنیم.
همچنین خواهید دید که چگونه میتوانید تصاویر خود را با کانتینر کردن یک برنامه واقعی بسازید. و از آنجایی که ما از منظر توسعه نرمافزار و لینوکس به این موضوع نزدیک میشویم، شما همچنین درک خوبی از نحوه عملکرد کانتینریسازی در زیر هود و تفاوت آن با ماشینهای مجازی ایجاد خواهید کرد.
فصل 16، نظارت بر گزارشهای برنامه، یک نمای کلی از ورود به سیستم در یونیکس و لینوکس ارائه میدهد. ما به شما نشان خواهیم داد که چگونه (و کجا) گزارشها در اکثر سیستمهای لینوکس مدرن با استفاده از systemd جمعآوری میشوند و روشهای سنتیتر چگونه کار میکنند (شما در دنیای واقعی با هر دو مواجه خواهید شد). شما مهارتهای عملی خط فرمان را برای یافتن و مشاهده گزارشها ایجاد خواهید کرد و کمی در مورد نحوه ثبت گزارش در زیرساختهای بزرگتر یاد خواهید گرفت.
فصل 17، Load Balancing و HTTP، اصول اولیه HTTP را برای توسعهدهندگان، با تمرکز ویژه بر پیچیدگیهایی که هنگام کار با سرویسهای HTTP در زیرساختهای بزرگتر با آن مواجه خواهید شد، پوشش میدهد.
برخی سوء تفاهمهای رایج در مورد وضعیتهای HTTP، سرصفحههای HTTP و نسخههای HTTP و نحوه مدیریت برنامهها با آنها را اصلاح خواهیم کرد. همچنین نحوه عملکرد متعادلکنندههای بار و پراکسیها را در دنیای واقعی و اینکه چگونه تجربه عیبیابی یک برنامه زنده را با عیبیابی نسخه توسعهیافته در لپتاپ شما متفاوت میکنند، معرفی خواهیم کرد.
بسیاری از مهارتهای لینوکس که تا این مرحله آموختهاید، در اینجا مفید خواهند بود، و ما یک ابزار جدید – curl – را برای کمک به شما در عیبیابی طیف گستردهای از مسائل مرتبط با HTTP معرفی میکنیم.
سرفصلهای کتاب The Software Developer’s Guide to Linux:
- Preface
- How the Command Line Works
- Working with Processes
- Service Management with systemd
- Using Shell History
- Introducing Files
- Editing Files on the Command Line
- Users and Groups
- Ownership and Permissions
- Managing Installed Software
- Configuring Software
- Pipes and Redirection
- Automating Tasks with Shell Scripts
- Secure Remote Access with SSH
- Version Control with Git
- Containerizing Applications with Docker
- Monitoring Application Logs
- Load Balancing and HTTP
- Other Books You May Enjoy
- Index
جهت دانلود کتاب The Software Developer’s Guide to Linux میتوانید پس از پرداخت، دریافت کنید.
دیدگاهها
هیچ دیدگاهی برای این محصول نوشته نشده است.