در پست قبلی اطلاعاتی در مورد کلیت برنامهنویسی ارائه کردیم و از مراحل شروع برای آشنایی با زبان جدید صحبت کردیم. امروز ادامه میدهیم و روشی مجرب را ارائه خواهم کرد. خب کسی که به مفهوم برنامهنویسی آشناست و الگوریتمها را میشناسد، معماری نرمافزارش را به درستی میداند؛ برای کار با زبان برنامهنویسی جدید نیاز به شناخت عملکرد آن زبان دارد.
در اولین مرحله باید Syntax یا همان کلمات کلیدی و گرامر[۱] این زبان را یاد بگیرد. شما برای این کار چه روشی دارید؟ در روش ما، برنامهنویسی مثالمحور، از “Hello World!” استفاده میکنیم. در اکثر زبانهای برنامهنویسی با اولین مثالی که مواجه میشوید مثال معروف “سلام جهان!” است. این مثال به شما نحوهی تعریف کلاس اصلی، تابع اصلی و چاپ مقداری ساده در خروجی را نشان میدهد. با کمی جستجو در مستندات همان زبان برنامهنویسی، مثالی از تعریف توابع، حلقهها، ارجاعات و انتسابها خواهید دید. خود من برنامهنویسی تجاری را با Visual Studio و مستندات آموزشی مایکروسافت در msdn شروع کردم. برنامهنویسی php را هم با php manualای که خود php.net ارائه کرده یادگرفتم. این روش تا قبل از به وجود آمدن یا همهگیر شدن سایتهایی مثل stackoverflow، roseindia، codeproject یا سایتهایی از این دست، کار سختی بود و باید مطالب زیادی را جستجو میشد[۲]، شاید روشهای اشتباهی که کار هم میکردند را یاد میگرفتیم و مهمتر از همه، بدون شناخت ساختار و دلیل استفاده از یک دادهساختار و یا تابع، فقط به دلیل این که آن قطعه کد مشکل ما را حل میکرد از آن استفاده میکردیم. تصور کنید شما برنامهای نوشتهاید که کار میکند اما اگر از شما بپرسند چرا، واقعا نمیدانید! ترسناکه نه؟؟؟؟ برای این که این مشکل کمتر شود، کارهای جالبی صورت گرفته، مثلا میتوانیم در stackoverflow پاسخ افرادی که reputation بالایی دارند را انتخاب کنیم و یا با مباحثه در این سایتها و فرومها بهترین راهکار را انتخاب کنیم. شرکت مایکروسافت برای محصولات خود تعدادی مثال از قبل آماده شده به سایتها و فرومهای خود اضافه کرده که در آنها میتوانید بهترین راهکار را برای هر مسئله بیابید.
اما چیزی که در ابتدای سال ۲۰۱۳ من را شکه کرد، All-In-One Code Framework بود. موردی که به نظر میرسد برای ما مثالمحوریها ساخته شده! بستری که در همکاری با MSDN Samples Gallery توانسته با ارائهی مرورگری مخصوص نمونه کدها فضایی را فراهم کند که برنامهنویسان برای پیدا کردن مثالی که در آن مشکلشان حل شده، راحتتر و سریعتر عمل کنند. از آن مهمتر این که نمونه کدی که به آن دسترسی دارید بهترین کدی است که برای رفع آن مشکل پیدا میکنید، چرا که برنامهنویسان و تیم تولید این مثالها همهی جوانب مسائل را در نظر میگیرند و آخرین متدولوژیها و استانداردها را رعایت میکنند؛ این کار باعث میشود حداقل چیز غلطی یاد نگیریم، هر کدی که با این مثالها تولید کنیم اگر هم ندانیم چرا کار میکند میدانیم یکی از بهترین روشها برای انجام آن task است. البته همراه بودن این نمونه کدها با کامنتها، توضیحات تکمیلی و مستندات اضافه به شما امکان شناخت نحوه عملکرد کد را نیز میدهد.
مثالمحوریها بعد از شناخت هدف خود و تعیین مشخصات محصول، باید خوب قسمتهایی از برنامه را که نمیدانند چطور باید پیادهسازی کرد تقسیمبندی کنند و هر بخش را در جستجو کنند تا مثالی برای هدف مورد نظر پیدا کنند. ویژگی بسیار عالیای که در All-In-One Code Framework وجود دارد امکان درخواست تولید مثال از مایکروسافت است! چه چیزی بهتر از این؟ شما در قسمتی از برنامه مشکل دارید، هر چه میگردید مثالی درخور پیدا نمیکنید، از مایکروسافت میخواهید برای مشکل شما برنامه بنویسد و آن را به عنوان مثال، در گالری نمونهکدهای خود قرار دهد. برای این کار باید به اینجا بروید و بعد از ثبت نام و جستجو کنید تا مطمئن شوید که کسی قبل از شما سوال شما را نداشته باشد، اگر سوال خود را پیدا کردید، با رای دادن به آن سوال، شانس تولید نمونه کد برای سوال خود را بالا میبرید؛ اگر سوال شما وجود نداشت میتوانید موردی را اضافه کنید و منتظر بمانید تا این کد برای شما تولید شود. در کل فارغ از بحث پیدا کردن پاسخهای خوب و استاندارد، میتوانید با جستجو بین کدهای موجود و یا درخواستهای دیگران از آنها ایده بگیرید و از خلاقیت دیگران استفاده کنید. شاید برای هدف شما راههای بهتری وجود داشته باشد که دیگران قبلا آنرا انجام داده باشند، گشت و گذار در این بخش از مایکروسافت به هیچوجه خسته کننده نخواهد بود.
فراموش نکنید این روش سرعت بسیار بالایی دارد، در این روش با امکانات و تواناییهای یک زبان بسیار سریع آشنا میشویم. اما توجه کنید که چه چیزی را فدای سرعت میکنیم. درست است که کلیت یک زبان را میشناسیم، ممکن است بتوانیم با آن زبان برنامههای مختلف بنویسیم اما بدانید که آن زبان را واقعا فرانگرفتهایم. فقط میدانیم هر کاری را چطور میتوان انجام داد، آن هم احتمالا به روشهای معروف، برای کارهای خاصی که شاید عمومی نباشند و یا کاری تکراری نباشند حتما به مشکل میخوریم. فرض کنید شما برنامههای مختلف اتوماسیون کوچکی را با C# نوشتهاید و برنامهنویسی را با روش مثالمحور فراگرفتهاید. حالا اگر دیتابیسی که فقط یکی از جداول آن حاوی چند گیگابایت اطلاعات باشد را جلوی شما بگذارند و بخواهند که تغییراتی در دادههای آن اعمال کنید؛ قطعا روشهایی که تا کنون با آنها کار میکردید مناسب نیستند؛ باید ساختارهای کنترلی، مراحل اتصال به دیتابیس، transactionها و دادهساختارها را خوب بشناسید و روش مناسبی را برای کار خود انتخاب کنید. پس هرگز فراموش نکنیم که بعد از تولید محصولات مختلفی که با روش مثالمحور انجام دادهایم نمیتوانیم ادعای حرفهای بودن داشته باشیم.
[۱] اینجا منظور از گرامر، گرامر اصلی زبان برنامهسازی نیست، بلکه ساختار تعریف متغیر، عبارات کنترلی و دیگر امکانات زبان مورد نظر است.
[۲] البته جستجوی زیاد دانش عمومی را افزایش میدهد اما این دانش زیاد که بعد از مدتی تبدیل به دریایی با عمق بسیار کم میشود مشکلاتی هم ایجاد میکند. شاید باعث شود فکر کنید همه چیز را میدانید و دست از تلاش و به روز شدن بردارید، این دریای کمعمق شاید سرابی زیر و بم آن زبان برنامهسازی باشد که ممکن است باعث شود با دانش کمی که فکر میکنیم زیاد است قولی به مشتری دهیم اما در آخر برای ما گران تمام شود.
نظرات کاربران
نظر خود را بفرستید:
آدرس ایمیل شما منتشر نخواهد شد.