امروزه توسعه نرمافزار تفاوتهای بسیار زیادی نسبت به ۲۰ سال گذشته خود دارد. برای یک توسعهدهنده نرم افزار در حال حاضر نیاز است که به صورت مداوم در حال مطالعه و یادگیری باشد. اما این تنها چیز لازم نیست، موضوعات دیگری نیز وجود دارد که باید بررسی شوند.
در این مطلب میخواهیم به شما نشان دهیم که توسعه مدرن نرمافزار و به ویژه در ارتباط با توسعه وب، کاملا رویکرد متفاوتی را برای مواجهه میطلبد. شما باید یک مجموعه توانایی کاملا متفاوت را یاد بگیرید و با آن کار بکنید. یادگیری کدنویسی به تنهایی نمیتواند برای همه کارها کافی باشد.
توسعه مدرن نرمافزار نیاز به داشتن یک چشمانداز از ابزارها و کتابخانههاییست که از آنها استفاده میکنید. امروزه ایجاد یک الگوریتم بهینه دیگر مسئله اصلی شما نیست. برنامهنویسی در دهه ۹۰ نیازمند داشتن دانش خاصی در ارتباط با الگوریتمها، ساختمانهای داده و… بود اما الان موضوع کمی تغییر کرده است. با وجود آنکه این موضوعات پایه و اساس برنامهنویسی هستند اما به تنهایی نمیتوانند از شما یک توسعهدهنده خوب بسازند.
حال یکی از مسائل اصلی برنامهنویسی، شناخت درست از ابزارها و کتابخانههاست. شما باید بتوانید برای نیازهایتان ابزارهای مناسبی را پیدا کنید.
توسعه نرمافزار به شکل قدیمی: الگوریتم و ساختمان داده
در آن روزها همه چیز بسیار ساده بود. ویندوز تنها یک سیستم عامل بود، کامپیوتر نیز به یک کیس و مانیتور و… منتهی میشد. دیگر خبری از تلفنهای هوشمند و ابر و مجازیسازی و… نبود. یک توسعهدهنده نرم افزار در آن زمان برای نوشتن اپلیکیشنهایش نیاز به یک IDE داشت که البته تعداد محدودی از آنها موجود بود و البته باید گفت که هیچ کدام از آنها کامل نبودند و اگر کاربرد خاصی را میخواستید باید آن را خودتان از ابتدا مینوشتید. هیچ فضای کار اشتراکی با دسترسی اینترنت به شکل امروزی وجود نداشت. در آن زمان برای نوشتن ویژگیهای بسیار زیادی که اکنون برای هرکدام از آنها کتابخانههایی وجود دارد میبایست کدنویسی طولانی بکنید.
تا آنجایی که من یادم میآید خبری از بستههای نرمافزاری به صورت آنلاین نبود. شما در هر صورت مجبور بودید که نرمافزار مورد نظرتان را روی یک فلاپی-دیسک و یا یک سیدی تهیه کنید. تمام این موضوعات دشواری کار آن زمان را نشان میدهند.
از طرفی دیگر آن زمانها مفهوم کتابخانه و فریمورک تازه در حال شروع به ساخته شدن بود. شما ساعتها باید کدنویسی میکردید تا یک بخش از چیزی که میخواهید را در یک پکیج قرار دهید و بعد از ساعتها تست متوجه شوید که آیا این ویژگی میتواند در سیستمهای مختلف به خوبی کار کند یا خیر.
جدای از تمام اینها، توسعه نرمافزار به شکل قدیمی نیازمند محاسبات بسیار زیادی بود. شما باید با ساختارهای دادهای کار میکردید که عملا از تئوریات سخت ریاضی برآمده بودند. پس از جهاتی برای برنامهنویس شدن نیاز داشتید که یک نخبه ریاضی نیز باشید.
توسعه مدرن نرمافزار: مدیریت و ترکیب کتابخانهها
با پیشرفت و توسعه دنیای اینترنت و وب گسترده جهانی، همه چیز تغییر کرد. دیگر توسعه نرم افزار برای دسکتاپ اهمیت بالایی نداشت و همه چیز به سمت وب تغییر جهت داد. در این زمان بود که یک جهش پیچیده از زیرساختها، زبانهای برنامهنویسی، طراحی بانکهای اطلاعاتی و… اتفاق افتاد. این جهش در مقیاسی بود که دیگر برنامهنویسان نمیتوانستند با استفاده از تکنولوژیهای قدیمی کارهای مورد نظر امروزشان را انجام دهند.
با پیشرفت دنیای نرمافزار و توسعه فرهنگ متن باز توسعهدهندگان کتابخانههایی که فقط برای خودشان استفاده میکردند را در دنیای عمومی اینترنت منتشر کردند و نتیجه آن ایجاد یک فضای بسیار بزرگ برای کتابخانههای مختلف شد. امروزه تعداد این کتابخانهها واقعا قابل شمارش نیستند. جاوااسکریپت زمانی تنها یک زبان ساده برای استفاده در مرورگرها بود، اما حال با کمک کتابخانهها و تکنولوژیهایی که برای آن توسعه داده شده است تقریبا توانسته در هر جایی از دنیا نقشی داشته باشد.
مشکل و مسئلهای که برنامهنویسان امروزی باید با آن سر و کار داشته باشند بهینهسازی الگوریتم و کارهایی از این دست نیست، آنها باید بتوانند کتابخانه و ابزارهای مناسب برای کارشان را پیدا کنند و با آن پیش بروند. البته این بدان معنا نیست که برنامهنویسی دیگر وجود ندارد، همه ابزارها نمیتوانند هر کاری را برای شما انجام دهند شما در جاهایی نیاز دارید تا مواردی را خودتان از پایه بنویسید.
در پایان
در این مطلب نسبتا کوتاه سعی داشتم تا یک مرز بین توسعهدهندگان کلاسیک و توسعهدهندگان مدرن ایجاد کنم. با وجود آنکه هنوز هم نقاط اشتراک بسیار زیادی وجود دارد اما تفاوتهای کلیدی در عملکرد این افراد هست که باید بررسی شوند.
استفاده از کتابخانهها بجای نوشتن آنها نقطه بسیار مهمی است که باعث ایجاد شکافی بین برنامهنویسان در دورههای مختلف میشود. این موضوع بسیار مهم است چرا که دغدغهها باید تغییر بکنند و به سوی چیزی بروند که زمان نیازمند آن است. البته در هر صورت برنامهنویسان مدرن باید از میراث اصلی برنامهنویسی (الگوریتم، ساختمان داده و…) استفاده بکنند و آنها را یاد بگیرند چرا که هر چقدر هم به سمت جلو برویم باز هم پایههای اصلی برنامهنویسی براساس این موارد ساخته شدهاند..
دیدگاه و پرسش
در حال دریافت نظرات از سرور، لطفا منتظر بمانید
در حال دریافت نظرات از سرور، لطفا منتظر بمانید