یادداشتهای یک برنامه نویس

بیان تجربیات و دیدگاه های یک برنامه نویس در مورد نرم افزار , طراحی و تولید برنامه با استفاده از تکنولوژی های مایکروسافت

یادداشتهای یک برنامه نویس

بیان تجربیات و دیدگاه های یک برنامه نویس در مورد نرم افزار , طراحی و تولید برنامه با استفاده از تکنولوژی های مایکروسافت

پنجشنبه, ۳ مهر ۱۳۹۳، ۰۱:۳۶ ب.ظ

برنامه نویسی

 

به نظرم هنر برنامه نویسی، عبارت است از مهارتهای لازم برای استفاده از یک یا چند زبان برنامه نویسی که برای وادار کردن کامپیوتر به اجرای مجموعه ای از دستورالعمل ها که معمولا برای انجام یک وظیفه یا رسیدن به یک هدف خاص نوشته شده و مورد استفاده قرار می گیرد.
مخصوصا در ایران ، اصطلاح برنامه نویس به کسی اطلاق میشود که در زمینه طراحی و تولید برنامه های کاربردی فعالیت میکند و تقریبا به صورت رایج هدف نهایی، تبدیل مجموعه ای از روتین هایی است که در ابتدا به صورت سنتی و با استفاده از فرمهای کاغذی و یا تعامل بین اعضایی که در یک شغل یا Business خاص فعالیت میکنند، وجود دارند و سپس به فرمهای تعاملی در کامپیوتر و ثبت الکترونیکی جزییات این تعامل و در نهایت امکان تهیه گزارش از این اطلاعات تبدیل میشوند.
برنامه های کاربردی در موضوعاتی مثل حسابداری، انبار داری، امور دفتری کلینیک ها و بیمارستانها و .... از رایج ترین سناریو های این نوع از برنامه ها محسوب میشوند . در ساده ترین شکل خود این نوع از برنامه های کاربردی دارای دو مولفه یا جزء اصلی هستند که به طور کلی می توان آنها را Business And Data Access Code و Data Source تقسیم کرد . بدیهی است که استفاده از برخی تئوری ها و مدل هایی که عموما به Design Patterns مشهور هستند کل ساختار یک برنامه را به مولفه های متفاوتی طبقه بندی میکنند که مدلهای n-Layers و MVC و MVVM از مشهورترین این مدلها هستند . اما به نظر می رسد صرفنظر از این تئوری ها ماهیت دو موردی که نام برده شد کاملا دارای ماهیت متفاوتی هستند و بنابراین شاخص تر به نظر می رسند.
انگیزه اصلی نوشتن این پست این بود که اخیرا احیانا یک نوع سوء تعبیر از برنامه نویسی بواسطه مطالبی که اخیرا در گروهها منتشر شده در ذهن من ایجاد شد که به نظرم آمد با اینکه این مطالب بسیار بدیهی هم هستند اما شاید یک اشاره کوتاه به تلقی شخصی خودم در مورد این موضوع، خالی از لطف نباشد.
در سایر شاخه های برنامه نویسی دغدغه هایی مثل استفاده از Componets ، درگیر شدن با جزییات نحوه آرایش فرم ها و Dialog Box ها اساسا وجود ندارد و یا اگر وجود داشته باشد حداقل قابل مقایسه با دغدغه های مرتبط در برنامه های کاربردی (Application) به معنای عام این نوع از برنامه ها، نیست .
به نظر من حتی در زبان انگلیسی هنوز اصطلاح Application به معنای عام خود در مورد همه نرم افزارهای کاربردی اشاره میکند و هیچ تمایزی بین زیر شاخه های اصلی برنامه نویسی در این اصطلاح وجود ندارد مگر آنکه صریحا مثلا به صورت Network Applications یا System Application با یک پیشوند این تمایز نشان داده شود .
در Network Applications معمولا موضوع اصلی فراگیری کامل TCP/IP (به عنوان مدل هفت لایه استاندارد) یا مدل چهار لایه همین پروتکل به نام OSI می باشد که معمولا برنامه نویسان مخصوصا با زوم کردن بر روی دو پروتکل اصلی لایه Transport یعنی TCP و UDP و استفاده از قابلیتهای SDK در OS مثل Socket Programming سعی در طراحی و اجرای سناریو های رایج در این شاخه جذاب از برنامه نویسی ، می کنند . از مشهورترین برنامه های تجاری در این زمینه می توان به برنامه های FTP Client ، Messanger ها ، App های مختص VOIP و ارتباطات تلفنی و تصویری و ... اشاره کرد .
نظیر همین وضعیت در شاخه های دیگر برنامه نویسی مثل System Applications و Game Applications نیز وجود دارد .
مثلا در System Application موضوعات از طیف بسیار گسترده ای مثل Device Driver ها Benchmark ها و Optimizer ها و ... برخوردار است و موضوع اصلی شامل توابع سطح پایین OS و SDK ها می باشد که جهت ارتباط با پورت ها و در نهایت راه اندازی Device های مرتبط به این پورت ها مورد استفاده قرار می گیرند .
در Game Application (مخصوصا Game های Windows و کنسول های تخصصی مبتنی بر Windows) تقریبا همیشه DirectX و قابلیتهای منحصر بفرد آن در گرافیک هدف اصلی برنامه نویسان این رشته بوده که باز تاکید میکنم دغدغه های کاملا متفاوتی با برنامه نویسان Application های کاربردی وجود دارد .
تکنیک هایی مثل 3D Meshing And Rendering ، نورپردازی یا Ray Tracing و محاسبات مرتبط با انعکاس یا Reflection و سایه ها یا Shadows دنیای بسیار متفاوتی با موضوعات برنامه های کاربردی دارند .
مجال پرداختن به جزییات دیگر در اینجا وجود ندارد و حقیقتا حتی در حوزه تخصصی من هم نیست اما واقعا به نظرم رسید ذکر این بدیهیات اگر سودی نداشته باشد حداقل بی ضرر می باشد .

موافقین ۰ مخالفین ۰ ۹۳/۰۷/۰۳
مهران حسین نیا

n-Layers

برنامه نویسی

نظرات  (۰)

هیچ نظری هنوز ثبت نشده است

ارسال نظر

ارسال نظر آزاد است، اما اگر قبلا در بیان ثبت نام کرده اید می توانید ابتدا وارد شوید.
شما میتوانید از این تگهای html استفاده کنید:
<b> یا <strong>، <em> یا <i>، <u>، <strike> یا <s>، <sup>، <sub>، <blockquote>، <code>، <pre>، <hr>، <br>، <p>، <a href="" title="">، <span style="">، <div align="">
تجدید کد امنیتی