کتاب Your Code as a Crime Scene, 2nd Edition: Use Forensic Techniques to Arrest Defects, Bottlenecks, and Bad Design in Your Programs (کد شما بهعنوان صحنه جنایت، ویرایش دوم: از تکنیکهای قانونی برای دستگیری نقصها، تنگناها و طراحی بد در برنامههای خود استفاده کنید) شما را با تکنیکهایی که برای استفاده از هر پایگاه کدی نیاز دارید، بدون توجه به زبان برنامهنویسی که استفاده میکنید، مسلح میکند.
در ادامه مقدمهای از کتاب Your Code as a Crime Scene را از زبان نویسنده شرح خواهیم داد.
مقدمهای بر کتاب Your Code as a Crime Scene:
به صحنه جنایت خوش آمدید
ایده اصلی کد شما به عنوان صحنه جرم این است که ما هرگز قادر نخواهیم بود سیستمهای پیچیده و در مقیاس بزرگ را فقط با نگاه کردن به یک عکس فوری از کد درک کنیم. همانطور که خواهید دید، وقتی خود را به آنچه در کد قابل مشاهده است محدود میکنیم، اطلاعات ارزشمند زیادی را از دست میدهیم.
در عوض، ما باید هم نحوه پیدایش سیستم و هم تعامل افرادی که روی آن کار میکنند با یکدیگر و هم کد را درک کنیم. در کتاب Your Code as a Crime Scene، شما یاد خواهید گرفت که این اطلاعات را از تکامل پایگاه کد خود استخراج کنید.
وقتی کتاب Your Code as a Crime Scene را مطالعه کردید، میتوانید هر سیستمی را بررسی کنید و فوراً دیدگاهی از سلامت آن به دستآورید – هم از منظر فنی و هم از رویههای توسعه که منجر به کدی شد که امروز میبینید. همچنین میتوانید پیشرفتهای ایجاد شده در کد را ردیابی کنید و دادههای عینی روی آنها جمعآوری کنید.
چرا باید کتاب Your Code as a Crime Scene را بخوانید؟
کتابهای خوب زیادی در زمینه طراحی و برنامهنویسی نرمافزار وجود دارد. پس چرا یکی دیگر را بخوانید؟ خب، برخلاف کتابهای دیگر، Your Code as a Crime Scene بر روی پایگاه کد شما تمرکز دارد. این بلافاصله به شما کمک میکند تا مشکلات احتمالی را شناسایی کنید، راههایی برای رفع آنها بیابید و گلوگاههای بهره وری را یکی یکی حذف کنید.
کد شما به عنوان صحنه جرم، پزشکی قانونی و روانشناسی را با تکامل نرمافزار ترکیب میکند. بله، این یک کتاب فنی است، اما برنامهنویسی فقط در مورد خطوط کد نیست. ما همچنین باید بر جنبههای روانی توسعه نرمافزار تمرکز کنیم.
اما پزشکی قانونی – آیا این در مورد یافتن مجرمان نیست؟ مطمئناً اینطور است، اما همچنین خواهید دید که بازرسان جنایی بسیاری از همان سؤالات باز را که برنامهنویسان میپرسند در حین کار بر روی یک پایگاه کد میپرسند. با استفاده از مفاهیم پزشکی قانونی در توسعه نرمافزار، بینش ارزشمندی به دست میآوریم. و در مورد ما، متخلف کد مشکل ساز است که باید آن را بهبود دهیم.
با پیشرفت در کتاب Your Code as a Crime Scene، این کار را خواهید کرد
• پیشبینی کنید کدام بخش از کد دارای بیشترین نقص و شیب دارترین منحنیهای یادگیری است.
• از تجزیه و تحلیل کد رفتاری برای شناسایی، اولویتبندی و اصلاح بدهیهای فنی و مشکلات نگهداری استفاده کنید.
• درک کنید که چگونه توسعهدهندگان و تیمهای متعدد بر کیفیت کد تأثیر میگذارند.
• یاد بگیرید که چگونه مشکلات سازمانی را در کد خود ردیابی کنید و نکاتی در مورد چگونگی رفع آنها دریافت کنید. و
• دیدگاه روانشناختی در مورد برنامههای خود داشته باشید و یاد بگیرید که چگونه درک آنها را آسانتر کنید.
چه کسی باید کتاب Your Code as a Crime Scene را بخواند؟
برای استفاده بیشتر از این کتاب، احتمالاً یک برنامهنویس، معمار نرمافزار یا رهبر فنی هستید. شاید شما به دنبال راههای مؤثری برای کشف اسرار یک پایگاه کد موجود هستید. یا، ممکن است یک پروژه مهاجرت قدیمی را آغاز کنید و به دنبال راهنمایی باشید.
همچنین ممکن است برای کاهش عیوب تلاش کنید و به خودتان و تیمتان کمک کنید تا موفق شوند. شاید شما تحت فشار هستید که کد بیشتری را سریعتر تحویل دهید و میخواهید بفهمید که چگونه بین افزودن ویژگیهای جدید و بهبود کد موجود تعادل ایجاد کنید.
مهم نیست سناریو، کد خوب برای شما مهم است. عالی – شما در حال خواندن کتاب مناسب هستید.
مهم نیست به چه زبانی برنامهریزی میکنید. مطالعات موردی ما جاوا، Go، جاوا اسکریپت، پایتون، C++، Clojure، C# و چندین زبان دیگر را ترکیب میکند.
با این حال، مزیت بزرگ تکنیکهای صحنه جرم این است که برای دنبال کردن آن نیازی به دانستن هیچ یک از این زبانها ندارید. همه تکنیکها مستقل از زبان هستند و صرف نظر از اینکه از چه فناوری استفاده میکنید، کار میکنند. ما همچنین مطمئن میشویم که بحثها را بر روی اصول متمرکز میکنیم تا جزئیات.
نمونههای عملی با سیستمهای کنترل نسخه تعامل دارند. برای استفاده بیشتر از کتاب Your Code as a Crime Scene، باید اصول اولیه Git، Subversion، Mercurial یا ابزاری مشابه را بدانید.
چرا اکنون کتاب Your Code as a Crime Scene را بخوانید؟
پیش از این هیچ گاه کمبود بیشتری در توسعهدهندگان نرمافزار وجود نداشته است. مطمئناً، رکود اقتصادی گاه به گاه ممکن است اوضاع را کند کند، اما در سطح کلان، با دیجیتالی شدن جامعه، این شکاف در عرضه و تقاضا همچنان بیشتر خواهد شد.
از نظر ظاهری، این ممکن است برای ما خبر خوبی به نظر برسد: مورد نیاز بودن توی بازار کار برای حقوق و دستمزد معجزه میکند. اما این کمبود نیرو را با فشار مداوم برای تحویل سریعتر در زمانهای کوتاهتر اشتباه نگیرید، آنوقت ممکن است خیلی راحت خود را رو غرق در استرس، حجم کاری غیرقابل تحمل و پروژههای نرمافزاری شکستخورده ببینیم.
بخش مهمی از مشکل بدهی فنی است. یک شرکت نرمافزاری متوسط، بخش بزرگی از زمان توسعهدهندگان را با عواقب بدهی فنی، کد بد و معماری ناکافی نرمافزار تلف میکند. لازم نیست اینطور باشد.
با این حال، بدهی فنی تنها بخشی از معادله است. جابجایی بالای کارکنان – که ما همیشه در صنعت فناوری اطلاعات داشتهایم – به این معنی است که شرکتها به طور مداوم دانش جمعی از پایگاههای کد خود را از دست میدهند. مگر اینکه اقداماتی را برای جلوگیری از آن انجام دهیم، پایگاههای کد ما به عنوان terra nullius تبدیل میشود – زمینی که متعلق به هیچ کس نیست.
این بدان معناست که توجه به کد بد از همیشه مهمتر است تا بتوانیم هرگونه تأثیر خارج شدن از هواپیما را کاهش دهیم. ما همچنین باید بتوانیم به سرعت خود را در یک پایگاه کد ناآشنا جهتیابی کنیم. از نظر آماری، این احتمال وجود دارد که ما به طور مکرر با این وضعیت روبرو شویم.
در نهایت، همه چیز در مورد این است که وقت خود را برای کار مفیدتر برای نوآوری ویژگیهای جالب وایدههای جالب محصول آزاد کنیم.
سوزاندن روغن نیمه شب یک روز قبل از انتشار، جستجوی آن باگ چند رشتهای در فایلی با ۱۵۰۰۰ خط کد غیرشفاف ++C نوشته شده توسط شخصی که ماه گذشته پس از سالها دوری از اسناد و مدارک آن را ترک کرد، تجربه تلخی است. برنامهنویسی قرار است سرگرمکننده باشد، و کتاب Your Code as a Crime Scene اینجاست تا به شما کمک کند اینایدهآل را بازیابی کنید.
چگونه کتاب Your Code as a Crime Scene را بخوانیم؟
این کتاب قرار است از ابتدا تا انتها خوانده شود. بخشهای بعدی کتاب Your Code as a Crime Scene، مبتنی بر تکنیکهایی است که به تدریج در طی چندین فصل یاد خواهید گرفت. بیایید به تصویر بزرگ نگاه کنیم تا بدانید چه چیزی در پیش است.
بخش اول: شما یاد خواهید گرفت که کد مشکل ساز را تشخیص دهید
شما با یادگیری تکنیکهایی برای شناسایی کدهای پیچیده که باید اغلب با آنها کار کنید، شروع خواهید کرد. مهم نیست چقدر از کار خود لذت میبریم، وقتی صحبت از محصولات تجاری میشود، زمان و پول همیشه مهم است. به همین دلیل است که روشهایی را برای اولویتبندی نامزدهای بازسازی مجدد که بیشترین ارزش را به شما میدهند، بررسی خواهید کرد.
شما تکنیکهایی را بر اساس روشهای پزشکی قانونی که برای ردیابی مجرمان سریالی استفاده میشود، ایجاد خواهید کرد. خواهید دید که هر جنایت بخشی از یک الگوی بزرگتر را تشکیل میدهد. به همین ترتیب، هر تغییری که در نرمافزار خود ایجاد میکنید، ردی از خود بر جای میگذارد.
تجزیه و تحلیل آن ردیابیها سرنخهای عمیقی برای درک سیستمی که میسازید ارائه میدهد. تجزیه و تحلیل تاریخچه کد شما همچنین به شما این امکان را میدهد که آینده کد را پیشبینی کنید. این به شما کمک میکند تا قبل از موعد شروع به رفع مشکل کنید.
بخش دوم: شما یاد خواهید گرفت که معماری نرمافزار را بهبود ببخشید
هنگامی که بدانید چگونه کدهای متخلف را در سیستم خود شناسایی کنید، باید به تصویر بزرگتر نگاه کنید. به این ترتیب، میتوانید اطمینان حاصل کنید که طراحی سطح بالای سیستم شما از ویژگیهایی که پیادهسازی میکنید و نحوه تکامل پایگاه کد پشتیبانی میکند.
در اینجا، شما از شهادت شاهدان عینی الهام خواهید گرفت تا ببینید که چگونه سوگیریهای حافظه میتواند هم تماشاگران بیگناه و هم کد را در چارچوب قرار دهد. شما از تکنیکهای مشابه برای کاهش سوگیریهای حافظه و حتی مصاحبه با پایگاه کد خود استفاده خواهید کرد.
پاداش اطلاعاتی است که شما نمیتوانید به تنهایی از کد استنباط کنید. پس از پایان بخش دوم کتاب Your Code as a Crime Scene، میدانید که چگونه معماری نرمافزار خود را در برابر تغییراتی که روی کد انجام شده است، ارزیابی کنید، و به دنبال نشانههایی از پوسیدگی ساختاری و تکرار گرانقیمت دانش باشید. علاوه بر این، متوجه خواهید شد که چگونه تکنیکهای مشابه، جهتهای بازسازی و مرزهای مدولار جدید بالقوه را در اختیار شما قرار میدهند، که موارد استفاده مهمی مانند شکستن یکپارچهها یا پروژههای مدرنسازی قدیمی را پشتیبانی میکنند.
بخش سوم: خواهید آموخت که سازمان شما چگونه بر کد تأثیر میگذارد
اکثر سیستمهای نرمافزاری امروزی توسط چندین تیم توسعه داده میشوند. این تقاطع بین افراد و کد، جنبهای است که اغلب نادیده گرفته میشود از توسعه نرمافزار. هنگامی که بین نحوه سازماندهی شما و سبک کاری که معماری نرمافزار شما پشتیبانی میکند ناهماهنگی وجود داشته باشد، کیفیت کد و ارتباطات آسیب میبیند. در نتیجه، شما با راهحلهای پیچیده و مصالحه در طراحی مواجه میشوید.
در قسمت سوم کتاب Your Code as a Crime Scene، میتوانید مشکلات سازمانی را در کد خود شناسایی کنید. خواهید دید که چگونه میتوان اشکالات را از روش کار خود پیشبینی کرد، درک کرد که چگونه سوگیریهای اجتماعی بر توسعه نرمافزار تأثیر میگذارد و توزیع دانش در بین توسعهدهندگان را کشف خواهید کرد. به عنوان یک امتیاز، درباره تصمیمات گروهی، ارتباطات، قاتلان سریالی دروغین و نحوه ارتباط همه آنها با توسعه نرمافزار یاد خواهید گرفت.
چه چیزی در نسخه دوم کتاب Your Code as a Crime Scene جدید است؟
تکنیکهای اصلی در Your Code as a Crime Scene امتحان خود را پس دادهاند زیرا بر رفتار انسانی تمرکز میکنند – در نهایت افراد ساختار نسبتاً پایداری هستند.
اگر نسخه اول را خوانده باشید، بیشتر بخشهای کتاب Your Code as a Crime Scene را میشناسید. با این حال، همچنان میخواهید آن فصلها را بخوانید زیرا مطالعات موردی مدرن شدهاند و متن با بینشهای جدید، یافتههای پژوهشی و توصیههای عملی گسترش یافته است. این ویرایش دوم محتوای جدید گستردهای را ارائه میکند که منعکسکننده تمام درسهای بهکارگیری تکنیکهای صحنه جرم در مقیاس برای یک دهه است.
علاوه بر این، چندین فصل جدید وجود دارد که در کار اصلی گسترش مییابد:
• فصل ۶ کتاب Your Code as a Crime Scene، اصلاح کد پیچیده، در صفحه ۶۳ دیدگاه شناختی پیچیدگی کد را بررسی میکند، که به شما امکان میدهد بر روی بوهای کد که واقعاً مهم هستند تمرکز کنید.
• فصل ۷ کتاب Your Code as a Crime Scene، ارتباط با تأثیر تجاری بدهی فنی، در صفحه ۸۳، موارد تجاری را برای پرداخت بدهی فنی و به طور کلی بازسازی مجدد بیان میکند. به این ترتیب، شما تمام دادههای مورد نیاز خود را دریافت میکنید، بنابراین میتوانید با ذینفعان غیر فنی در مورد چیزی بهعمق فنی مانند کیفیت کد گفتگو کنید.
• فصل ۱۴ کتاب Your Code as a Crime Scene، ببینید چگونه مشکلات فنی باعث مشکلات سازمانی میشوند، در صفحه ۲۱۵ سازمان نرمافزار را بر روی سر خود میاندازد. اشتباه گرفتن «طرف مردم» توسعه نرمافزار، هر پروژهای را از بین میبرد، اما در اینجا متوجه میشوید که چرا برعکس آن نیز صادق است: نحوه نوشتن کد شما بر افراد و سازمان تأثیر میگذارد.
سرفصلهای کتاب Your Code as a Crime Scene:
- Acknowledgments
- Welcome to the Crime Scene
- Part I-Identify Code That’s Hard to Understand
- 1. Optimize for Understanding
- 2. Treat Your Code as a Crime Scene
- 3. Discover Hotspots: Create an Offender Profile of Code
- 4. Hotspots Applied: Visualize Code from the People Side
- 5. Detect Deteriorating Structures
- 6. Remediate Complicated Code
- 7. Communicate the Business Impact of Technical Debt
- Part II-Build Supportive Software Architectures
- 8. Use Code as a Cooperative Witness
- 9. Architectural Reviews: Support Redesigns with Data
- 10. Use Beauty as a Guiding Principle
- 11. Expose Hidden Bottlenecks: Delivery and Automation
- Part III-Meet the Social Side of Your Code
- 12. Meet Norms, Groups, and False Serial Killers
- 13. Discover Organizational Metrics in Your Codebase
- 14. See How Technical Problems Cause Organizational Issues
- 15. Build a Knowledge Map of Your System
- 16. Move Toward the Future
- A1. Solutions to the Exercises
- A2. Get Started with Enclosure Visualizations
- Bibliography
- Index
جهت دانلود کتاب Your Code as a Crime Scene میتوانید پس از پرداخت، دریافت کنید.
دیدگاهها
هیچ دیدگاهی برای این محصول نوشته نشده است.