امروزه با وجود زبانهای مختلف برنامه نویسی، بسیاری از سازمانها و شرکتها نیز از چندین زبان در پروژههای خود استفاده میکنند. اپنسورس دنیایی از زبانها و استکهای مختلف را به روی شما باز میکند که توسعهدهندگان میتوانند برای انجام تسکهای خود مثل توسعه و پشتیبانی از نرمافزارهای قدیمی و مدرن خود استفاده کنند.
کسی که به چند زبان مسلط است میتوانند با میلیونها نفر بیشتر از کسانی که فقط به زبان مادری خود صحبت میکنند ارتباط برقرار کند. در محیطهای نرمافزاری، برنامهنویسان برای رسیدن به اهداف خاص خود، نه برقراری ارتباط بهتر، زبانهای جدید را معرفی میکنند. بنابراین میتوان گفت که کار با چندین زبان برنامه نویسی توسعهدهندگان را قادر میسازد تا از ابزارهای مناسب برای کار خود استفاده کنند؛ و اینگونه روند توسعه با چند زبان است. و این طبیعت کار است.
ایجاد یک محیط برای چندزبانی بودن اغلب تدریجی است و بسته به موقعیت می باشد. به عنوان مثال زمانی که یک شرکت، شرکت دیگر را خریداری میکند تمام مجموعهی تکنولوژیهای آن شرکت را به خود اختصاص میدهد از جمله زبانهای برنامه نویسی که آن شرکت استفاده میکند. فناوریهای مختلف روی بورس میآیند و طبیعتاً مدتی بعد هم از بورس خارج میشوند و در این روند تعداد زبانها و فناوریهایی که آن شرکت یا سازمان استفاده میکند هم گسترش مییابد.
این چندزبانه بودن برای شرکتها مثل یک شمشیر دولبه است؛ مزایایی را به همراه دارد اما با این حال پیچیدگی و چالشهایی را نیز در پی خود دارد؛ و در نهایت اگر این وضعیت کنترل و مدیریت نشود باعث از بین رفتن شرکت شما نیز خواهد شد.
پیچیدگی زبان فنی
خب طبیعتاً در جایی که چندین فناوری مختلف وجود داشته باشد، زبانهای برنامه نویسی جدید و ابزارهای قدیمی و استکهای مختلف نیز وجود دارد و این امر باعث پیچیدگی میشود. همچنین تیم های مهندسی وقت بیشتری را صرف کشتی گرفتن اضافه کردن لایسنسهای مختلف، امنیت و دیگر وابستگیها خواهند کرد. در عین حال، عدم مدیریت و نظارت بر درستی کد نیز ریسک این کار را بالا خواهد برد.
آنچه اتفاق میفتند این است که شرکتها دارای درجات مختلفی در کیفیت برنامه نویسی و همینطور پشتیبانی ابزارهای مختلف هستند. متخصص شدن در یک زبان کار دشواری است مخصوصاً این زمانی برای شما پررنگتر میشود که به برنامه نویسانی با سطح مهارت یکسان نیاز دارید. بین کسی که فرانسه و ایتالیایی را روان صحبت میکند و شخصی که میتواند فقط چند جمله را به هشت زبان مختلف بگوید در سطح مهارت تفاوت زیادی وجود دارد؛ این مورد در باره توسعهدهندگان و زبانهای برنامه نویسی نیز صادق است.
مشکلات با اضافه کردن زبانهای برنامه نویسی بیشتر افزوده میشود و منجر به ساخت یک برج بابِل دیجیتالی میشود. ( در اینجا منظور از برج بابِل پیچیدگی ساخت آن است که در زیر عکسی از برج بابِل برای فهم بیشتر این موضوع برای شما آوردهام و البته میتوانید برای اطلاعات بیشتر پل بابِل را در گوگل سرچ کنید)
پاسخ این نیست که ابزارهایی را که توسعهدهندگان شما برای کار نیاز دارند را ازبین ببرید. اضافه کردن زبانهای برنامه نویسی جدید به مهارت آنها میافزاید و همینطور با تجهیزات درست و مناسب میتوانند کار خود را تمام و کمال انجام دهند. اما هر چه تعداد بیشتری زبان برنامه نویسی به محصول تجاری شما اضافه شود در چرخه حیات توسعه نرمافزار (SDLC) شما اثرگذار خواهد بود.
اما با همهی این موارد سه موضوع اصلی وجود دارد که شرکتهای تجاری باید به آن توجه داشته باشند:
۱. Visibility یا قابل مشاهده بودن : تیمها برای یک پروژه دور هم جمع میشوند و سپس منحل میشوند؛ سپس برنامهها منتشر میشوند و هرگز هم اپدیت نمیشوند. چرا چیزی را که مشکلی ندارد آپدیت کنیم؟ در نتیجه وقتی که یک نقطه آسیبپذیر مهم کشف میشود ممکن است کاملاً مشخص نباشد که در کدام قسمت است و چه قسمتهایی را تحت تأثیر قرار داده، کدام کتابخانهها حاوی این برنامه هستند و یا حتی با چه زبانهایی نوشته شده است. تمام اینها میتواند منجر به این شود که مدت زمان زیادی به کشف باگ بپردازیم و همینطور هزینهی زیادی را بابت این کار متحمل شویم.
۲. به روز رسانی : برخی از شرکتها کار آپدیت و رفع مشکلات را در یک تیم واحد متمرکز میکنند و برخی دیگر نیاز دارند که هر بخش از ابزارهای توسعه خودش را مدیریت کند و از آنجا که این تیمها به طور مدام در حال به روز رسانی و اصلاح کتابخانهها در ابزارهای اپنسورس خود هستند وقتی برای اضافه کردن ویژگیهای جدید به برنامه را پیدا نمیکنند
۳. اختراع دوباره چرخ: از آنجا که وابستگیها و ورژنهای متفاوت کتابخانهها به طور مدام در حال به روزرسانی هستند، ممکن است با پیدا کردن یک نقطه آسیبپذیر مشتقات و ابزارهای اولیه برنامه دیگر در دسترس نباشد. در نتیجه چرخه توسعه درگیر بازآفرینی محیطی میشود که آن آسیبپذیری در آن قابل حل است.
هر زبان برنامه نویسی را در سازمان خود با این سه مسأله ضرب کنید، آنچه که شروع میشود ناگهان شبیه به کوه اورست است و دقیقاً در این جاست که مثل کوهنوردان بدون ابزار و تجهیزات مناسب در این مسیر زنده نخواهید ماند.
سنگ روزتای خود را پیدا کنید
- یکم بیشتر بدونیم! سنگ روزتا چیه؟ حدودا 218 سال پیش در روز 28 تیر ماه سال 1178، سربازان فرانسوی در شهر روزتا (رشید امروزی) مصر سنگ سیاهی را که بر روی آن سه نوشته باستانی به زبانهای مصری و یونانی حکاکی شده بود، کشف کردند؛ این شی باستانی که سنگ روزتا نام گرفت، بعدها برای رمزگشایی هیروگلیفهای مصری استفاده شد و شهرتش تا جایی پیش رفت که تا به امروز، دانشمندان سراسر جهان در رشتههای مختلف از اصطلاح «سنگ روزتا» به منظور توصیف اکتشافی که نقشی کلیدی در دستیابی به پیشرفت و موفقیت ناگهانی در یک حوزه علمی دارد، استفاده میکنند. همینقدر ساده همین الان به اطلاعاتتون اضافه شد :)))))))
خب دیگه برگردیم سر موضوع خودمون!
یک راهحل جامع که نیازهای شرکتها و ذینفعان را در SDLC ( Software Development Lifecycle) تأمین کند، میتواند فکر خوبی باشد. شرکتها میتوانند با استفاده از تمرینها راهحل مناسب خود را پیدا کنند:
۱. کد خود را مانیتور کنید و نقاط آسیبپذیر آن را نشانه گذاری کنید.
۲. برای اینکه کدی بدون باگ داشته باشید به طور منظم آن را آپدیت کنید و آن را بروز نگه دارید.
۳.بر اساس نیاز و معیارهای خودتان، فقط از پکیجهایی که واقعاً به آن نیاز دارید استفاده کنید.
۴. آستانه یا حدنصاب را برای تریگر کردن آپدیت،آلارام یا انواع رویدادها بر اساس وابستگیهایی که دارید مشخص کنید.
۵.یک سورس واحد برای مدیریت بستههای خود ایجا کنید.
با استفاده از این روشها،توسعهدهندگان میتوانند به جای انجام کارهای پایه مهندسی،وقت خود را برای ایجاد ارزشهای بیشتر برای شرکت بگذارند و این را به حداکثر برسانند. این کارها سازگاری کد را بالا میبرد و همینطور در عین افزایش کارایی باعث صرفه جویی در هزینهها نیز میشود. و کار تیم فنی را هم آسان میکند.
امیدوارم این مقاله برای شما مفید بوده باشد از وقتی که گذاشتید ممنونم.
دیدگاه و پرسش
در حال دریافت نظرات از سرور، لطفا منتظر بمانید
در حال دریافت نظرات از سرور، لطفا منتظر بمانید