از موقعیت خود به عنوان یک برنامه نویس راضی هستید!؟

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

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

ترتیب مطالب بر اساس تاریخ فرستادن جواب های دوستان است.

وحید نصیری نویسنده وبلاگ x.NET Tips

از پويايي و خلاقيت موجود در دنياي IT لذت مي‌برم و به همين دليل در اين رشته مشغول به فعاليت شده‌ام. پاسخ دادن به تعدادي از سؤالات شما جنبه سياسي پيدا مي‌كنند. تا قبل از دولت فعلي وضع بهتر بود و پروژه بيشتر بود. الان وضع خيلي نسبت به قبل تفاوت كرده و پروژه كمتر شده (خيلي كمتر). به همين دليل روي اين صنف هم مسلما اين مسايل بدون تاثير نبوده.از موقعيت خودم به عنوان برنامه نويس راضي هستم. از نظر مالي تا حدودي راضي هستم و عرض كردم كه دولت فعلي كار ما را تحت تاثير شديد قرار داده است.

استرس عمده كاري من تحويل دادن درخواست‌هاي جديد در اسرع وقت است (زمانيكه درخواست مي‌دهند يعني تا يكي دو ساعت ديگر بايد كار آماده باشد!) و همچنين اعمال تغييرات جديد به سيستمي مفصل كه شامل بازنويسي قسمت‌هاي عمده آن مي‌شود. در اين حالت واقعا جمع كردن يك سيستم بزرگ هنرمندي خاصي را لازم خواهد داشت (و پر استرس). بعلاوه اين مساله سبب شده كه ساعت كاري خاصي براي من وجود نداشته باشد و تعطيل و غير تعطيل و ساعت 11 شب و امسال آن هم جزئي از زندگي كاري من شده است.

تفاوت مهم اين شغل با شغل‌هاي ديگر پويايي آن است. تا چند سال قبل مثلا asp كلاسيك وجود داشت، اما الان ASP.Net مطرح شده و جاي آن‌را گرفته. تا مدتي بعد هم ASP.Net MVC آن‌را حل و جذب خواهد كرد و web forms asp.net حالت از مد افتاده asp كلاسيك را پيدا مي‌كند. تمام اين‌ها مستلزم سعي و كوشش و مطالعه بسيار زياد است و گرنه خيلي زود بازنشسته خواهيد شد.

مشكل مهمي هم كه اين پويايي براي ما در داخل ايران به همراه داشته، نبود منابع آموزشي به روز است. الان چندتا كتاب فارسي در مورد ASP.net MVC‌ داريم؟ در مورد WPF چطور؟ در مورد تازه‌هاي SQL Server 2008 چي؟ در مورد entity framework كتابي در بازار كتاب‌هاي فارسي هست؟ و …. تمام اين‌ها سبب مي‌شود كه به روز كردن دانش اين صنف در ايران به شدت با كندي مواجه باشد.

و در پايان بايد عرض كنم كه بودن در اين رشته سن و سال خاصي را طلب نمي‌كند و تفاوت كار يك برنامه نويس با بالاي 10 سال سابقه رو خيلي خوب مي‌شود از مقايسه كدهاي او با كدهاي خام يك تازه كار درك كرد. همين فرد با سابقه پس از مدتي به اندازه كافي ابزار براي سرعت بخشيدن به كارش اختراع كرده كه بتواند با جواني با حوصله‌تر به سادگي و حتي در زمان كمتري رقابت كند و كار بهتري را نيز ارائه بدهد.

سالار خلیل زاده نویسنده وبلاگ نوشته های یک برنامه نویس

براي بررسي راضي بودن از شغل برنامه نويسي تو ايران بايد يه مورد مهم رو در نظر بگيريم. اول موضوع مربوط به موقعيت برنامه نويس تو شهرش هست. اگر فرض ما شهرستان باشه در اين صورت قضيه با زماني که فرد تو تهران باشه خيلي فرق مي کنه.
چون خودم من هم تو شهرستان هستم سعي مي کنم با اين فرض ها و سرانجام وضعيت خودم جواب بدم.

از اينکه برنامه نويس هستيد راضي هستين يا نه؟
البته که راضي هستم. برنامه نويسي رو هم کنار نخواهم گذاشت اما شايد در آينده به عنوان کار اوقات فراغت انجامش بدم.
يکي از علت هايي که اکثر برنامه نويس ها دارن که باعث شده اين حرفه رو ادامه بدن لذتي هست که پس از توليد چيزي که خودتون درست کردين و مانند يه موجود جون داره. دليل بعدي عمق زياد مبحث برنامه نويسي هست که هرچه عموق تر بري باز هم چيزي هست که بخواي دنبالش بري.

موقعيت خودتون رو به عنوان يک برنامه نويس چطور ميدونيد؟
متاسفانه اين حرفه به جز در شهرهاي بزرگي چون تهران در جاهاي ديگر به عنوان يک حرف واقعي تلقي نميشه. اين هم بر ميگيرده بيشتر به تفکر و اقبال عمومي مردم از اين رشته. البته نکته مهم در اينجا وجود دخالت ها و حمايتهاي دولتي هست که باعث اين نوع اقبال عمومي شده.
اقبال عمومي اين حرفه به اين زودي ها اصلاح نخواهد شد، چراکه دولت و قضيه حمايت از بخش خصوصي و چند مورد ديگر به زودي اصلاح پذير نيستند.

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

از نظر روحي و جسمي؟
از نظر روحي بسيار شکسته شده ام و قصد خروج از ايران رو دارم. و براي همين مورد برنامه ريزي طولاني مدت کردم که پس از رفع مشکل سربازي اقدام کنم. عارضه جسمي حاصل هم کمر درد هست که علتش رو کوتاهي خودم مي دونم و بايد به يه باشگاهي برم حتما.

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

فرق شما با آدم هاي ديگه (شغل هاي ديگه) چيه و چه مشکلاتي داريد. بگين که تا چه موقع ميتونيد برنامه نويس بمونيد، آيا قصد تغيير شغل در آينده را داريد يا نه مي خواهيد در آينده هم در فيلد برنامه نويسي کار کنيد؟
در مورد فرق ترجيح مي دم که جواب ندم چون فرق خيلي زياده.
در عموميت فکر مي کنم يک نفر مي تونه براي هميشه برنامه نويس بمونه و از اون لذت بببره. اما اين مورد من زيادي خواه رو راضي نمکنه و هميشه به بيشتر از اينها فکر کردم. مثلا هدايت يک تيم نرم افزاري و هدايت شرکت و غيره. البته اين رو هم بگم که هدايت چند تيم نرم افزاري رو هم بر عهده داشتم ولي به دلايلي نشد که همکاري در رو اونجا ادامه بدم. در کل در آينده کار من شايد خود برنامه نويسي نباشد ولي در زمنيه برنامه نويسي خواهد بود.

افشار محبی نویسنده وبلاگ AfsharM

مقدمتاً بگویم که ترجیح می‌دهم به جای عبارت «برنامه‌نویس» از عبارت «توسعه دهنده» یا «توسعه دهنده نرم‌افزار» استفاده کنم.

جواب خلاصه من به این سوال، «بله» است. چون نزدیک به ۲۰ سال است که برنامه نویسی عشق و علاقه شماره یک من بوده و بعید است که به این زودی‌ها بتوانم از آن چشم پوشی کنم خصوصاً حالا که چندین سال است که برنامه‌نویسی تنها منبع درآمدم نیز بوده است.

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

با شناختی که همه ما از مشاغل موجود در ایران داریم، می‌دانیم که تقریباً در هیچ شغلی سلامت جسمی و روحی افراد رعایت نمی‌شود پس نباید از این لحاظ خیلی به شغل برنامه‌نویسی (توسعه نرم افزار) خرده گرفت.

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

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

فرق برنامه‌نویس‌ها با آدم‌های دیگر چیست؟ هیچی! فقط چون کار ما برنامه‌نویس‌ها کار جدیدی است کمی ترسیده‌ایم و الا هیچ فرق آنچنانی نداریم. بنده به شخصه فکر می‌کنم اقلاً تا ۵ سال آینده بتوانم برنامه‌نویس باقی بمانم مگر آن که شرایط سیاسی-اقتصادی مملکت خیلی به هم بریزد. در مورد سال‌های بعد از این ۵ سال امیدوارم (و تلاش می‌کنم) آنقدر در یک حیطه خاص برنامه‌نویسی تسلط پیدا کنم که اگر مجبور شدم راه فرنگستان را در پیش گیرم بتوانم گلیمم را از آب بکشم و اگر در ایران ماندم و تعداد شرکت‌های نرم‌افزاری از این هم کمتر شد بتوانم جایی برای خودم دست و پا کنم.

به عنوان نتیجه همان طور که در ابتدا ذکر کردم از زندگی حرفه‌ای خودم به عنوان یک برنامه‌نویس (توسعه دهنده نرم‌افزار) با همه فراز و نشیب‌هایش راضی هستم و امیدوارم بتوانم کارم را با موفقیت ادامه دهم.

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

نتیجه گیری از این مطلب با شما. یک خواهش از دوستانی که این وبلاگ را از طریق گوگل ریدر یا فیدخوان های دیگر دنبال می کنند دارم، لطفاً اگر برنامه نویس هستید جواب این سئوال را در قسمت نظرات این مطلب ارسال کنید. استثناً در مورد این مطلب نظر بدهید! جواب هر کدام از شما می تواند بر ارزش این مطلب بیفزاید. جمع بندی و نتیجه گیری را بهتر است شما خوانندگان انجام بدهید و در قسمت نظرات بیان کنید.

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

به روز رسانی

چند نکته مهم در مورد این مطلب باید خدمت خوانندگان عرض کنم، متاسفانه بحث در قسمت نظرات به بیراهه کشیده شد. لطفاً به موارد زیر توجه کنید :

  1. کامنت هایی که شامل توهین به یکی از نویسنده های مطلب و یا هر شخص سوم دیگری باشد بدون اخطار قبلی حذف می شوند.
  2. موضوع این مطلب کاملاً روشن است، البته اگر مطلب را کامل بخوانید، پس کامنت های بی ربط به موضوع بدون اخطار قبلی حذف می شوند.
  3. لطفاً اگر با شخصی مشکل دارید، سعی نکنید در اینجا با او تصویه حساب کنید!
  4. قبل از کامنت گذاشتن، ابتدا مطلب را به صورت کامل بخوانید!

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

از این پس نظرات ابتدا بررسی می شوند و سپس نشان داده خواهند شد.

* قسمتی از مطلب آقای سالار خلیل زاده که باعث بوجود آمدن بحث های غیر مربتط توسط بعضی از افراد شده بود با درخواست خود ایشون حذف شد.

تخمین هزینه های یک پروژه نرم افزاری

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

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

  • تخمین هزینه تا انتهای پروژه به تاخیر انداخته شود
  • بر اساس پروژه های مشابهی که قبلاً انجام شده، تخمین هزینه کنیم
  • از روش های تجربی و سلسله مراتبی استفاده کنیم

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

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

حالت سوم می تواند روش عملی مناسبی برای تخمین هزینه های پروژه های نرم افزاری باشد. در این حالت باید عوامل موثر در هزینه های نرم افزار را تشخیص و هرکدام را مورد بررسی قرار دهید. در این مطلب به بررسی مهمترین عوامل تاثیرگذار در برآورد هزینه یک پروژه نرم افزاری می پردازیم :

اندازه پروژه

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

پیچیدگی پروژه

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

زمان انجام پروژه

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

منابع انسانی

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

farasun.wordpress.com

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

شما هم می توانید تجربه خود را با ما توسط فرم نظرات به اشتراک بگذارید.

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

مطالب مرتبط :

Kaxaml یک ویرایشگر خوب برای فایل های xaml

اگر با WPF یا سیلورلایت آشنایی داشته باشید حتماً می دانید فایل های xaml به چه دردی میخورند! Xaml یک زبان بر مبنای XML است که برای طراحی رابط کاربری اپلیکیشن های WPF و Silverlight مورد استفاده قرار می گیرد. با استفاده از این زبان، می توانید رابط های کاربری بسیار زیبایی خلق کنید.

kaxaml

برنامه نویسانی که از WPF در پروژه هایشان استفاده می کنند حتماً از قابلیت های ویرایشگر های ویژوال استادیو و Expression Blend برای ویرایش فایل های Xaml باخبرند. نرم افزارهای فوق امکانات خوبی برای این کار در اختیار شما قرار می دهند. اما یک برنامه نویس همیشه به جز یک محیط توسعه خوب، یک ابزار سبک هم برای ویرایش فایل های برنامه اش کنار می گذارد. به طور مثال من از ویژوال استادیو استفاده میکنم اما برای ویرایش فقط یک فایل سورس سی شارپ هیچ وقت ویژوال استادیو رو باز نمی کنم، بلکه با Notepad++ کارم را انجام می دهم.

kaxaml-shot
برای ویرایش فایل های xaml نیز می توان از ابزارهای سبک تر از ویژوال استادیو و Expression Blend استفاده کرد. Kaxaml یک ویرایشگر بسیار مناسب و سبک برای این منظور است. Kaxaml هم رایگان است و هم اوپن سورس و هم خودش بر مبنای WPF و دات نت فریم ورک 3.0 توسعه یافته است. این برنامه امکانات خوبی همچون پیشنهاد عبارات مرتبط شبیه به Intellisense دارد. چندین فایل xaml را می توانید در تب های جداگانه ویرایش کنید. در حین تایپ کدهایتان می توانید پیش نمایش زنده ای از طرح تان ببینید.
یکی از ویژگی های خوب این برنامه، ویژگی Snippets است که شامل کدهای نمونه xaml است که با آن ها می توانید به یادگیری زبان xaml بپردازید. حتی می توانید قطعه کدهای خود را نیز به Snippets اضافه کنید. ویژگی مناسب دیگر آن، قابلیت ذخیره کردن طرح شما در قالب PNG است.

Kaxaml توسط یکی از اعضای اصلی تیم توسعه WPF مایکروسافت نوشته شده و سورس کد آن در سایت CodePlex در دسترس است.

Kaxaml در نسخه جدید و بتای خود از سیلورلایت 2 پشتیبانی می کند. نسخه بتا را از اینجا و نسخه 1.0 (قدیمی تر) را اینجا دریافت کنید. نسخه بدون نیاز به نصب را نیز از اینجا دریافت کنید.

farasun.wordpress.com

می خواهید مطالب این وبلاگ را دنبال کنید! مشترک فید فراسان شوید! نمی دانید فید چیست!؟

مطالب مرتبط :

کلاینت اوپن سورس برای Google Translate

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

قرار نیست در این مطلب خبر دست چندم، اضافه شدن زبان فارسی به سرویس Google Translate، را بخوانید. به گفته خود گوگل، اضافه شدن زبان فارسی به علت اتفاقات اخیر در ایران بوده و قرار نبوده به این زودی ها زبان فارسی به این سرویس اضافه شود. بعد از معرفی این سرویس توسط گوگل و معرفی API آن، کلاینت های مختلفی بر اساس آن توسعه داده شده اند. این کلاینت ها جهت آسان تر شدن کار با این سرویس و اضافه کردن قابلیت های جانبی کوچک به آن ساخته شده اند. با داشتن یکی از این کلاینت ها دیگر لازم نیست برای ترجمه یک متن هر بار به وب سایت مترجم  گوگل سر بزنید.

مترجم گوگل برای برنامه نویسان

513171250_d2a4194703

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

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

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

مترجم گوگل برای کاربران ویندوز

granslator

برای استفاده از مترجم گوگل راهی جز رفتن به وب سایتش نیز وجود دارد. Granslator نام برنامه کم حجم و قابل حملی است که می توانید با استفاده از آن متون خود را از هر زبانی به هر زبانی که توسط سرویس ترجمه گوگل پشتیبانی می شوند، ترجمه کنید. با استفاده از این برنامه می توانید بدون مراجعه به سایت سرویس ترجمه گوگل، متون خود را ترجمه کنید. استفاده از آن بسیار آسان است، هر جای ویندوز که هستید می توانید با فشردن کلیدهای ترکیبی Ctrl+Shift+G این برنامه را صدا بزنید و متن خود را به عنوان ورودی به آن بدهید و پس از چند لحظه ترجمه اش را تحویل بگیرید. متن ترجمه شده را می توانید با یک کلیک به حافظه کلیپ برد کپی کنید یا در یک فایل متنی ذخیره کنید. اگر زبان یک کلمه یا یک پاراگراف برای شما قابل تشخیص نیست، کافیست آن را به این برنامه بدهید و تا با کلیک کردن روی گزینه «Detect Source Language» توسط شما، برنامه زبان متن را به صورت خودکار تشخیص دهد و آن را به زبان مطلوب شما ترجمه کند. تصویری از محیط برنامه را در زیر مشاهده می کنید.

granslator-screenshot

برای دریافت آن به اینجا (دریافت آخرین نسخه) مراجعه کنید و روی گزینه  )granslator-0-1-beta-portable (در نسخه جدید granslator-setup) کلیک کنید تا دانلود شما شروع شود. حجم آن بسیار کم و فقط 320 کیلوبایت است. فقط توجه داشته باشید که این نسخه از Granslator آزمایشی است و در نسخه بتا به سر می برد و هیچ نیازی هم به نصب ندارد. فقط کافیست برنامه را از حالت فشرده خارج کنید و آن را اجرا کنید. نظر یا پیشنهادی داشتید در قسمت نظرات همین مطلب با من در میان بگذارید.

این نرم افزار کاملاً رایگان و کدباز است و شما مجاز به کپی و تغییر کد منبع آن بر اساس مندرجات مجوزنامه GPL نسخه 2.0 خواهید بود.

نکته مهم : وقتی برنامه را Minimize می کنید، برنامه بسته نمی شود، فقط در System Tray (آیکون های کنار ساعت ویندوز شما) قرار می گیرد که با دابل کلیک روی آن می توانید دوباره پنجره برنامه را مشاهده کنید.

sys-tray

همانطور که در تصویر بالا مشاهده می کنید، آیکون Granslator به شکل G در میان آیکون های System Tray قرار می گیرد.

نکته مهم دیگر در استفاده این برنامه این است که برای ترجمه یک متن حتماً باید به اینترنت وصل باشید!

پیش نیاز این برنامه نصب بودن x.NET framework 2.0 به بالا در ویندوز شماست.

دریافت Granslator

مشترک فید فراسان شوید! نمی دانید فید چیست!؟

پ.ن 1: این برنامه بر اساس نیاز خودم نوشته شده، اگر امکان دیگری لازم دارید در نظرات همین مطلب ذکر کنید.

پ.ن 2: اگر تغییری در برنامه ایجاد کردید، حتماً به من خبر بدین تا در وب سایت اصلیش قرار بدم. با توجه به اینکه مجوز استفاده و نشر این برنامه GPL نسخه 2 هست، شما بایستی نسخه های تغییر داده خودتان را هم به صورت آزاد تحت این مجوز یا مجوزهای سازگار با آن منتشر کنید.

پ.ن 3: نام برنامه ابتدا قرار بود G Translate باشه، اما گنوم یک برنامه ای به همین نام داره و قبلاً در کدپلکس پروژه ای به همین نام و با همین ایده ثبت شده بود. این نام هم یکدفعه به ذهنم خطور کرد.