برنامه نویس ، توسعه دهنده و تحلیلگر نرم افزار
مقدمه کتاب کد تمیز : راهنمای مهارت های چابک ساخت نرم افزار - بخش دوم
در بخش اول این مقدمه در خصوص اهمیت توجه به جزئیات و اصول 5S خواندید با ما باشید تا در این بخش مقدمه این کتاب را به پایان برسانیم
در جستجوی دیگران که خانه خدا را به عنوان جزئیات توصیف می کنند ، ما در جمع خوب نویسنده فرانسوی قرن نوزدهم گوستاو فلوبر قرار داریم. پل والری شاعر فرانسوی به ما توصیه می کند که شعری هرگز ساخته نمی شود و به طور مداوم به کار نیاز دارد، و متوقف کردن کار بر روی آن، متروکه رها کردن است. چنین دغدغه ای با جزئیات در همه تلاشهای تعالی مشترک است. بنابراین شاید در اینجا چیز جدیدی وجود نداشته باشد ، اما در خواندن این کتاب شما را به چالش می کشند که رشته های خوبی را که مدتها پیش در مورد آنها تسلیم بی علاقگی یا تمایل به خود بینی و فقط "پاسخ دادن به تغییر" شده اید ، بپذیرید.
ساده بودن این اعمال به معنای ساده انگاری بودن آنها نیست و به سختی به معنای آسان بودن آنهاست.
متأسفانه ، ما معمولاً چنین نگرانی هایی (کد نویسی تمیز و توجه به جزئیات) را به عنوان ارکان اصلی هنر برنامه نویسی نمی دانیم. ما کد خود را زود رها می کنیم ، نه به این دلیل که کار روی آن انجام شده و تمام شده است ، بلکه به این دلیل است که سیستم ارزش ما بیشتر به ظاهر متمرکز است تا به ذات آنچه ما تحویل می دهیم. این بی توجهی در نهایت برای ما هزینه دارد. با توجه به روزهای کاری خود در سازمان تحقیقات تولید نرم افزار آزمایشگاه های بل (تولید ، واقعاً!) .حرفه ای بودن مدیون تسلط بر ابزارها و روش های طراحی عالی است، جهان بینی ژاپنی، ارزش حیاتی کارگران روزانه و بیشتر از آن ، سیستم های توسعه را مدیون فعالیت های ساده روزانه این کارگران می داند. کیفیت نتیجه یک میلیون مراقبت ایثارگرانه است - نه فقط از هر روش عالی که از آسمان نازل می شود. ساده بودن این اعمال به معنای ساده انگاری بودن آنها نیست و به سختی به معنای آسان بودن آنهاست. با این وجود آنها حاصل عظمت و بیشتر از آن زیبایی در هر تلاش انسانی هستند. نادیده گرفتن آنها هنوز کاملاً انسانی نیست.
سیستم ارزش ما بیشتر به ظاهر متمرکز است تا به ذات آنچه ما تحویل می دهیم.
این کتاب پیام لطیفی دارد که نباید عمق آن را دست کم گرفت.
البته ، من هنوز طرفدار تفکر در دامنه وسیع تر و به ویژه ارزش رویکردهای معماری هستم که ریشه در دانش عمیق حوزه کاربرد نرم افزار دارد. این کتاب در این مورد نیست - یا حداقل بدیهی است که در این مورد نیست. این کتاب پیام لطیف تری دارد که نباید عمق آن را دست کم گرفت. این با ضرب المثل کنونی افراد واقعاً مبتنی بر کد مانند پیتر سامرلاد ، کوولین هنی و جیووانی آسپونی متناسب است. "کد ، طراحی است" و "کد ساده" سروده آنها است. در حالی که باید توجه داشته باشیم که رابطهای برنامه است که ساختارهای آن در مورد ساختار برنامه ما حرفهای زیادی برای گفتن دارند ، اما اتخاذ موضع فروتنانه ای که طراح در کد دارد ، بسیار مهم است. و در حالی که دوباره کاری در استعاره ساخت منجر به هزینه می شود ، دوباره کاری در طراحی منجر به ارزش می شود. ما باید کد خود را به عنوان بیان زیبایی از تلاش های اصیل طراحی بدانیم - طراحی به عنوان یک فرآیند ، نه یک نقطه پایان ایستا. این در کدی است که معیارهای اتصال و انسجام معماری را نشان می دهد. اگر به لاری کنستانتین در توصیف اتصال و انسجام گوش دهید ، او با توجه به کد صحبت می کند - نه مفاهیم مجرد انتزاعی که ممکن است در UML پیدا کند. ریچارد گابریل در مقاله خود ، "Abcraction Descant" به ما توصیه می کند که انتزاع شیطانی است. کد ضد شیطان است و کد پاک شاید الهی باشد.
ما باید کد خود را به عنوان بیان زیبایی از تلاش های اصیل طراحی بدانیم
ریچارد گابریل در مقاله خود ، "Abcraction Descant" به ما توصیه می کند که : انتزاع شیطانی است. کد ضد شیطان است و کد پاک شاید الهی باشد.
با نگاهی دوباره به جعبه کوچک Ga-Jol ، فکر می کنم مهم است که توجه داشته باشیم که حکمت دانمارکی به ما توصیه می کند : نه تنها به چیزهای کوچک توجه کنیم ، بلکه در کارهای کوچک نیز صادق باشیم. این به معنای صادق بودن با کد ، صادق بودن با همکاران درمورد وضعیت کد ما و بیش از همه ، با خود صادق بودن در مورد کد خود است. آیا ما تمام تلاش خود را کرده ایم؟ آیا ما قبل از ورود به سیستم کد شما را اصلاح کردیم؟ اینها نگرانی های پیرامونی نیستند بلکه نگرانی هایی هستند که کاملاً در مرکز ارزشهای چابک قرار دارند. این یک روش توصیه شده در اسکرام است که فاکتورسازی مجدد بخشی از مفهوم "انجام شده (Done) " باشد. نه معماری و نه کد تمیز بر کمال تأکید ندارند ، فقط به صداقت و بهترین کاری که می توانیم انجام دهیم. خطا كردن کار انسان است؛ بخشش ، الهی. در Scrum ، همه چیز را قابل مشاهده می کنیم. ما در مورد وضعیت کد خود صادق هستیم زیرا کد هرگز کامل نیست. ما کاملاً انسانی تر می شویم ، شایسته الهی ترینیم و در جزئیات به آن عظمت نزدیکتر می شویم. در حرفه خود ، ما به شدت به همه کمکی که می توانیم بگیریم نیاز داریم. اگر کف تمیز مغازه ها برخود ها و تصادفات را کاهش می دهد و ابزارهای منظم فروشگاهی باعث افزایش بهره وری می شود ، من هم طرفدار آنها هستم. در مورد این کتاب ، این بهترین کاربرد عملی اصول ناب در نرم افزار است که تاکنون چاپ شده است. این قبل از اینکه عمو باب نسخه خطی را برای من بفرستد ، کمی بهتر از آنچه من پیدا کردم ، دنیا را ترک می کند. پس از اتمام این تمرین با بینش عالی ، می خواهم میز کار خود را تمیز کنم.
نه تنها به چیزهای کوچک توجه کنیم ، بلکه در کارهای کوچک نیز صادق باشیم. این به معنای صادق بودن با کد ، صادق بودن با همکاران درمورد وضعیت کد ما و بیش از همه ، با خود صادق بودن در مورد کد خود است. آیا ما تمام تلاش خود را کرده ایم؟
James O. Coplien
Mørdrup, Denmark
مطلبی دیگر از این انتشارات
شروع کار با زبان HTML-جلسه اول
مطلبی دیگر از این انتشارات
انواعِ Class ها در کاتلین - قسمت اول
مطلبی دیگر از این انتشارات
تابع is_dir در php