طراحی وب
 
مهندسی نرم افزار و طراحی سرویس های تحت وب
 
 

مهندسی نرم افزار

دانشجویان رشته مهندسی نرم افزار در طول دوران تحصیل، بیشتر علومی را از کامپیوتر یاد میگیرند که پایهء علم مهندسی نرم افزار به شما می رود و دروسی مانند طراحی الگوریتم ، نظریه زبانها ، کامپایلر و ...  قرار است دید روشنی از کارکرد سیستم های نرم افزاری به دانشجو بدهد و این دروس استفاده چندانی در محیط های کاری ندارند و فقط دانشجو را برای پذیرش مفاهیم جدید در زمینه برنامه نویسی و الگوریتم آماده میکنند.

در کنار دروس ذکر شده، تعداد معدودی دروس تخصصی مانند برنامه نویسی پیشرفته ، هوش مصنوعی ، طراحی بانک اطلاعاتی ، مهندسی اینترنت و ... نیز ارائه میشوند که از بالاترین درجهء اهمیت برخوردارند. زیرا دانشجو پس از فارغ التحصیل شدن از این دروس در محیط کاری خود باید استفاده کند. بنابراین بهتر است این دروس را با دقت بیاموزید. زیرا در آینده نزدیک باید برای کسب درآمد از آنها استفاده کنید، زیرا کارفرما برای نمره شما به شما حقوق نمی دهد. بلکه برای کاری که توانایی انجامش را دارید حقوق می گیرید.

طراحی و برنامه نویسی تحت وب:

  بسیاری از دانشجویان نرم افزار در حین تحصیل به یکی از رشته های زیرمجموعه نرم افزار علاقه مند میشوند و در آن رشته شروع به فعالیت میکنند. رشته هایی مانند هوش مصنوعی ، برنامه نویسی ، روباتیک ، طراحی وب و غیره.
 این روزها بخصوص در ایران با توجه به نبود قانون کپی رایت، برنامه نویسی و تولید نرم افزار چندان طرفداری ندارد و این موضوع باعث گرایش دانشجویان به برنامه نویسی تحت وب شده است که بیشترین بازار کار را برای دانشجویان رشته نرم افزار فراهم میکند. اما این رشته جزئیات بسیاری را می طلبد که ممکن است در دانشگاه بعنوان یک درس مطرح نشوند و به دلیل گشترش بسیار سریع اینترنت و ظهور تکنولوژی های جدید ، دانشجو پس از فارغ التحصیلی با مفاهیمی از وب روبرو میشود که هرگز در دانشگاه با آنها برخورد نکرده است.

اگر شما هم برنامه نویسی تحت وب را بعنوان شغل خود انتخاب کرده اید نیازمند یادگیری تکنولوژی های بسیاری هستید که در هنگام ایجاد یک پروژه تحت وب با آن برخورد خواهید کرد و باید از آن تکنولوژی حداقل به میزانی که بتوانید به کارش ببندید، مطلع باشید. در این مقاله تعدادی از این تکنولوژی ها را معرفی خواهم کرد.

تکنولوژی های لازم برای شروع برنامه نویسی تحت وب:

--- زبان HTML : این زبان برای چیدن اشیائی که روی صفحه وب مشاهده میکنید استفاده میشود. محل قرارگیری عکس هاف متون ، جداول ، لینک ها و هر چیزی که در یک صفحه وب مشاهده میکند با این کدها در کنار هم قرار می گیرند. و مرورگر با دریافت کدهای اچ تی ام ال آنها را تفسیر میکند و شکل کلی یک صفحه وب را به شما نشان می دهد. یک طراح و حتی برنامه نویس وب باید به زبان html آشنا باشد تا بتواند سرویس بهینه ای را طراحی کند. پس از اینکه این زبان را آموختید میتوانید از نرم افزارهایی مانند ExpressionWeb و DreamWeaver که کار ساختن کدهای HTML را انجام میدهند استفاده کنید و کار خود را به دوش آنها بیندازید. اما شما باید طرز استفاده از آنها را بدانید. اینکار مانند این است که ابتدا ضرب را بیاموزید و بعد از ماشین حساب استفاده کنید.
---  یک زبان برنامه نویسی تحت وب: پیشنهاد ما بخصوص در ایران ASP.net و با استفاده از زبان پایهء C# است. گرچه دانستن زبانی مانند PHP هم میتواند موقعیت های شغلی خوبی را برای شما ایجاد کند.
--- طراحی بانک اطلاعاتی رابطه ای: اولین چیزی که یک سایت بزرگ نیاز دارد یک بانک اطلاعاتی قدرتمند و بهینه شده است. شما باید اصول طراحی بانک های اطلاعاتی ، نرمال سازی در طراحی بانک های اطلاعاتی ، و سپس پیاده سازی را توسط یک بانک قدرتمند مانند SQL Server و یا MySQL بدانید تا بتوانید اولین قدم را در برنامه نویسی تحت وب بردارید.
--- آشنایی با وب : شما نمی توانید ساختمانی مناسب بسازید، مگر اینکه قبلا ساختمان های متفاوتی را دیده باشید. ضعف بزرگی که بسیاری از مهندسین نرم افزار دارند، آشنا نبودن آنان با محیط اینترنت و دنیای مجازی است. برای حل این مشکلتان پیشنهاد میکنم یک وبلاگ درست کنید و مدتی وبلاگ نویس شوید و وبلاگ خوان . خواندن وبلاگ های متفاوت و آشنایی با سرویس های اینترنتی شما را با محیطی که قرار است در آن مشغول به ساخت و ساز شوید آشنا میکند.
شما بعنوان یک مهندس نرم افزار باید با سایت های اینترنتی زیادی آشنا باشید. هر سایت یک دیدگاه جدید در طراحی وب به شما میدهد. پیشنهاد میکنم برای شروع با سایتهایی مانند جیمیل، فلیکر، پرشین بلاگ، فرندفید ، یاهو360 ، پیکاسا ، یوتیوب، لست.اف.ام آشنا شوید. هرکدام از این سایتها یکی از برجهای افراشته شده در دنیای مجازی وب است. کم کم در وبلاگهایی که میخوانید با سایت های جدید آشنا خواهید شد. هنگام گشت و گذار در این سایت ها به معماری بکار رفته در طراحی آنها دقت کنید.
--- آشنایی با شبکه : مفاهیمی در برنامه نویسی تحت وب هست که ممکن است در برنامه نویسی تحت ویندوز هرگز با آن مواجه نشوید. مفاهیمی مانند IP ، Server Configuration ، Browser Compatibility و صدها واژه و مفهوم دیگر که جزئی جدانشدنی از وب هستند. سعی کنید با مفاهیم شبکه ها ، پروتکل های وب مانند FTP و HTTP و تاریخچه ای از وب آشنا باشید. این اطلاعات نه تنها مفید بلکه برای برنامه نویسی تحت وب ضروری است.

نکاتی که در بالا ذکر شد برای شروع برنامه نویسی تحت وب است و برای اینکه بتوانید سایتهای بهینه و مفیدی طراحی کنید نیازمند تکنولوژی های روز دنیای وب هستید که در ادامه به تعدادی از آنها اشاره میکنم.

• CSS: سی اس اس امکان تغییر گرافیکی صفحات وب را بسیار ساده میکند و دانستن آن کمک بسیاری به شما در طراحی سایت هایی میکند که امکان تغییر صفحات سایت را مانند تغییر قالب وبلاگ فراهم میکنند.
• جاوا اسکریپت : این زبان اسکریپتی کاربرد بسیار زیادی در طراحی وب دارد و بسیاری از رویدادهای صفحات وب با استفاده از جاوا اسکریپت کنترل میشوند. نیازی نیست کل دستورات و نکات موجود در این زبان دا یاد بگیرید. اما باید دستورات ابتدایی و نوع بکاربردن آنها را بیاموزید تا بعدها بتوانید از سورسهای آمادهء جاوا اسکریپتی در پروژه هایتان استفاده کنید.
• آجاکس : احتمالا یک اکانت جیمیل دارید. آیا سرعت حذف نامه ها را در این سرویس با سایت های دیگه مقایسه کرده اید؟ گاهی کمتر از نیم ثانیه. جیمیل یکی از سایت هایی است که خیلی زود و درست از تکنولوژی آجاکس استفاده کرد ، امروزه بسیاری از سایت ها از این روش برای بالابردن سرعت لود صفحات سایت خود استفاده میکنند و حتی سایت های ایرانی نیز از اجاکس برای طراحی بهره می برند.
• XML: فایل های XML برای ذخیره و بازیابی اطلاعات حجیم در سرویس های تحت وب استفاده بسیاری دارند. همچنین گاهی شما مجبورید بخشی از اطلاعات موجود در بانک اطلاعاتی را در فایل XML ذخیره کنید تا باری که روی دوش بانک اطلاعاتی است کاهش یابد. XML در این زمینه بهترین انتخاب است.
• Regular Expressions: یا عبارات منظم برای خواندن و بازیابی اطلاعات از میان فایل های متنی مانند XML و یا صفحات وب سایتها قدرت بسیاری را در دستان شما قرار می دهند. ممکن است در طراحی سایت مورد نظر خود نیازمند استخراج اطلاعات از روی یک سایت دیگر باشید. اگر سایت مورد نظر فید نداشته باشد، میتوانید با استفاده از R.E ها اینکار را انجام دهید.
• Security : وقتی شما یک سایت را طراحی میکند و روی اینترنت قرار میدهید مانن این است که یک ساختمان را که با چوب کبریت ساخته اید در مقابل باد قرار دهید. همیشه هکر ها و رقبایی هستند که با نیت های گوناگون دنبال ضربه زدن به سایت شما هستند . بنابراین بخش مهمی از آموزش های خود را به آموزش امن کردن سایت های اینترنتی و برنامه ای که نوشته اید اختصاص دهید.
• Stored Prcedure Programming : برای اتصال به بانک اطلاعاتی از طریق برنامه ای که نوشته اید چندین راه وجود دارد. شما میتوانید فرمان های SQL را در داخل صفحات وبی که ایجاد کرده اید بنویسید. اما این راه نه تنها امن نیست، بلکه سرعت و قابلیت های برنامه شما را کاهش میدهد. برای نوشتن دستورات SQL باید از بخش پروسیجر های SQL استفاده کنید. با اینکار، برنامه شما بسیار استاندارد تر نوشته شده و از امنیت بالاتری نسبت به حالت قبلی برخوردار میشود.

آنچه در این مقاله معرفی شد مهم ترین تکنولوژی هایی هستند که شما را در طراحی سیستم های تحت وب یاری میکنند و پشتوانه شما برای انتخاب شغل آینده تان بعنوان یک برنامه نویس وب است. در راهی که انتخاب کرده اید با روش هایی برای کوتاه کردن پروسه های برنامه نویسی نیز آشنا میشوید مانند استفاده از سورس کدهای آماده ، کامپوننت ها و ...

همچنین سعی کنید از سایت های برنامه نویسی و طراحی در اینترنت بیشترین بهره را ببرید. بسیاری از تکنولوژی هایی که امروزه بصورت متداول در آمده است روزی بعنوان یک ایده در یک وبلاگ مطرح شده است.

 
  نظر شما   
1387/05/25
نویسنده : حسین شرفی
 
     

تبدیل اکستنژن های قدیمی فایرفاکس به نسخه 3 فایرفاکس
 
 

با آمدن فایرفاکس 3 خیلی از افزونه های قبلی که کاربران استفاده میکردن از کار افتاده و تا آمدن نسخه جدید این افزونه ها ممکنه چند روزی طول بکشه. اما یک راه خیلی ساده برای سازگار کردن افزونه های قبلی با فایرفاکس 3 هست. کافیه ورژن اون افزونه رو در فایل متنی ای که داخلش هست دستکاری کنید!

مراحل تبدیل یک افزونه نسخه 2 به نسخه 3 :

  1. فایل xpi افزونه مربوطه را دانلود کنید .(برای اینکار میتونید از internet explorer استفاده کنید)
  2. پسوند فایل xpi را به zip تغییر بدین
  3. حالا فایل زیپ را باز کنید تا یکی از فایل های داخلشو ویرایش کنیم.
  4. فایل install.rdf را در یک ویرایشگر مانند notepad باز کنید.
  5. دنبال عبارت 2.0.0.* بگردید و آنرا به 3.* تغییر دهید. ممکنه بصورت 2.* یا 2.0.* هم باشه.
     
    <Description>
            <em:id>{ec8030f7-c20a-464f-9b0e-13a3a9e97384}</em:id>
            <em:minVersion>1.5</em:minVersion>
            <em:maxVersion>2.*</em:maxVersion>
          </Description>

     
  6. فایل install.rdf را ذخیره کنید و دوباره اونو داخل همون فایل zip قرار بدین.
  7. پسوند فایل zip را دوباره به xpi تغییر بدین.
  8. حالا اکستنژن شما برای نصب در نسخه سوم فایرفاکس آماده است. کافیه اونو در فایرفاکس بازش کنید و نصب کنید.
 
  نظر شما   
1387/04/06
نویسنده : حسین شرفی
 
     

Acrobat.com : اولین سرویس عمومی تحت وب ادوبی
 
 
شرکت ادوبی ، که بزرگترین شرکت در زمینه ارائه ابزارهای گرافیک و طراحی وب است، بالاخره وارد مارکت سرویسهای تحت وب شد و اولین سرویس وب2 خود را تحت دامنه ACROBAT.com راه اندازی کرد.



برای وارد شدن به این سایت ، شما باید فلش 9 را روی دستگاه خود داشته باشید. البته اگر هم نداشته باشید در اولین دیدار از این سایت، پیشنهاد نصب فلش 9 برای شما ظاهر میشود و با یکبار بستن و بازکردن مرورگر بر روی کامپیوتر شما نصب میشود. همچنین شما باید برای استفاده از امکانات این سایت، یک آی دی در سایت Adobe داشته باشید.

سرویس های سایت آکروبات دات کام به شرح زیر است :
- Buzzword: سرویسی شبیه به گوگل داکس (که امکان ویرایش فایل های ورد رو تحت وب فراهم میکنه)
- ConnectNow : سرویسی برای اتصال به دوستان، چت آنلاین ، VoIP که امکان کنفرانس با دوستان و اشتراک گذاری اطلاعات دسکتاپ رو بین آنها فراهم میکند.
- share: این سرویس همونطور که از نامش پیداست ، امکان اشتراک گذاری فایل های مختلف و حتی ویدئو رو بین کاربران فراهم میکنه و شما میتونید یک فایل رو در بین لیستی از دوستانتون به اشتراک بگذارید.
- Create PDF : همونطور که از نامش معلومه امکان تبدیل فایل های متن به پی دی اف رو فراهم میکنه.
- My files: امکان دخیره سازی و مدیریت فایل ها شما را تا حجم 5 گیگ بایت فراهم میکنه.

از سوی دیگر شرکت ادوبی نسخه جدید برنامه آکروبات را که Acrobat 9 است ارائه کرده است و امکانات جدیدی را از جمله قرار دادن فایل فلش در PDF فراهم ساخته. پس اگر دیدید که در داخل فایل pdf شما ، یک فیلم فلش در حال پخش است خیلی تعجب نکنید. زیرا این تکنولوژی جدید ادوبی است.
 
  نظر شما   
1387/03/15
نویسنده : حسین شرفی
 
     

نظریه زبان ها و ماشین ها
 
 
نظریه زبان ها و ماشین ها یکی از دروس تخصصی رشته نرم افزار است که معمولا از روی کتاب An Introduction to Formal Languages and Automata نوشته ی پیتر لینز تدریش میشه و یکی از درس هایی است که کمی گنگ و گاهی بی مصرف به نظر میاد. انتشارات ناقوس این کتاب رو منتشر کرده و حتی کتاب حل تمرینات داخل این کتاب هم جداگانه توسط نشر ناقوس چاپ شده.

آنچه که این کتاب به شما کمک میکنه بیاموزید، طرز تعریف Regular Expression ها است و در اصل منطق ماشین را در هنگام دریافت ورودی ها شرح می دهد. اینکه ماشین (تقریبا همون کامپیوتر) چگونه پیش شما شطرنج بازی میکند و یا یک روبات چگونه یک مسیر ماز را طی میکند و بسیاری از چیزهای دیگری که شما با آن سر و کار دارید، از همین درس ساده ریشه گرفته است.

ماشین های DFA و NFA : در این درس ما به ماشین هایی که داده های ورودی ما را تحلیل میکنند آتاماتا میگوییم. آتاماتا ها انواع مختلفی دارند. اما نوع DFA مناسب ترین نوع آنهاست که یک مدل انتزاعی از یک کامپیوتر را مطرح میکند. شما یک ورودی به ماشین میدهید. این ماشین (همون اتاماتا) ممکن است آنرا قبول کند یا قبول نکند. اگر قبول کند اصطلاحا میگوییم که به حالت نهایی می رود.

برای آشنایی شما با مبحت آتاماتا ، یک ماشین DFA رو اینجا رسم کردم. کار این ماشین قبول رشته هایی با فرمت
1*00*1(1+0)* است.
در این فرمت از نوشتن هر چیزی که بعدش ستاره اومده یعنی میتونه کلا نباشه یا هر چند بار تکرار شه.
چیزهایی که هیچ علامتی بعدشان نیامده یعنی باید حضور داشته باشند در رشته ورودی
چیزهایی که بین آنها علامت جمع است یعنی یکی از آنها انتخاب میشود .


یک توضیح ساده تر از ورودی ای که این ماشین می پذیرد این است: شما در نقطه q0 هستید و برای اینکه به حالت نهایی بروید باید به q2 برسید. (دایره هایی که دو تا دایره دور Q کشیده شده حالت های نهایی هستن که اگه در اونها توقف کنید ، یعنی رشته شما پذیرفته شده). خوب اینجا باید در مورد گراف ها بلد باشید.

شما میتوانید از ته هر فلش خارج شوید و به مقصدی که فلش اشاره دارد بروید. برای رفتن روی هر فلش باید شما ورودی تان طبق همان چیزی باشد که روی یال نوشته شده است. مثلا با ورودی 01 شما به نقطه نهایی می رسید. زیرا با 0 به نقطه Q1 میروید و 1 که دومین کاراکتر رشته شماست، شما را توسط یالی که به Q2 راه دارد به آنجا می رساند.

حالا میتوانید چند حلقه را هم طی کنید. مثلا ورودی های زیر نیز پذیرفته میشوند:
111101 : توجه کنید که 0 و 1 قرمز ، همواره اجباری هستند و ما از حلقه اول برای تولید چند تا 1 استفاده کردیم. 
111100000001
: در اینجا هم صفر و یک اجرای هستند و ما از حلقه اول برای تولید 1 و از حلقه دوم برای تولید صفر ها استفاده کردیم.
11110000000111001101010101 : در اینجا ما از آخرین حلقه برای تولید تعدادی 0 و 1 بصورت در هم استفاده کردیم. توجه کنید که پرانتز آخری که در (1+0)* مشاهده کردید، نشان دهنده این است که شما میتونید هر تعداد بار، این پرانر را تکرار کنید . علامت + در داخل پرانتر هم میگه هر وقت میخوای از داخل من چیزی برداری باید یکی از اینا رو ورداری. خوب شما میتونید یکبار از داخل پرانتر 0 و بار دیگه 1 یا دوباره 0 بردارین و یا چندین بار فقط 1 بردارین. این پرانتر در اصل هر رشته ی شامل 0 و 1 را تولید میکند.

در نهایت ماشین ما چنین رشته هایی را می پذیرد : که با چند تا یا هیچی یک شروع شوند و بعد یک صفر یا بیشتر پشت سر هم بیان و بعدش یه دونه 1 ظاهر شود و بعدش هر چی خواست بیاد.

این یک ماشین خیلی ساده و ابتدایی DFA بود که دیدین. برای مطالعه بیشتر در مورد آتاماتا ها میتونید به اینجا هم مراجعه کنید. چند نمونه گذاشته. رسم این آتاماتا ها ، اولین پایه های طراحی کامپایلرهای امروزی است. این مباحث پایه دروسی مانند کامپایلر و هوش مصنوعی است.

در این آدرس میتونید یک برنامه جاوا که آتاماتا رسم میکنه دانلود کنید. خیلی جالب و جذاب است و کار دانشجویان نرم افزار رو خیلی ساده میکنه.
 
  نظر شما   
1387/02/20
نویسنده : حسین شرفی
 
     

مقالات آموزشی

مقالات آموزشی

rss feed