سورس کد کارویس

پروژه کارویس (سایت کار برای برنامه‌نویس) را سه سال پیش شروع کردم، بعد از یک سال فعالیت متوقف شد و چند روز پیش تصمیم گرفتم آن را رسماً پایان دهم. اکنون سورس کد آن را در آدرس https://github.com/afsharm/karvis منتشر کرده‌ام تا اگر کسی علاقمند بود آن را بررسی کند یا استفاده کند.

لطفاً دقت کنید که این یک سورس کد شسته رفته و تمیز و دقیق نیست. refactoringهای زیادی قرار بود روی آن انجام شود که فرصت انجام پیدا نکرد. نسخه اصلی آن ASP.NET WebForm با معماری MVP با استفاده از NHibernate به عنوان ORM است ولی نسخه MVC آن با UI به روز شده هم موجود است البته به صورت نیمه کاره که فرصت تکمیل پیدا نکرد. در تکمیل این سورس کد شاهین کیاست نیز تحت عنوان همکاری شرکتی با پایسا همکاری کرده است.

پایان کارویس

تقریبا سه سال پیش کار روی سایت کارویس (کار برای برنامه‌نویس) را آغاز کردم که کارش جمع‌آوری و دسته‌بندی آگهی‌های شغلی مربوط به برنامه‌نویس و توسعه‌دهنده نرم‌افزار بود. البته سایت خیلی مقدماتی بوده و ظاهری ابتدایی داشت که قرار بود بعداً توسعه پیدا کند. سایت کارویس حدود یک سال فعالیت کرد و الان حدود یک سال است که دیگر فعالیتی ندارد. از جمله دلایل تعطیلی آن کمبود وقت من، درآمدزایی صفر ریالی و وجود سایت‌های پرتعداد با هدف مشابه بوده است. تمام این یک سال اخیر را در این وسوسه بودم که مجدداً آن را راه‌اندازی کنم. اما شرایط به گونه‌ای بوده و هست که دیگر نمی‌توانم روی چنین ایده‌ای وقت بگذارم. به همین دلیل کارویس در امروز ۹۳٫۵٫۲۱ برای من به پایان رسیده است.

مع‌الوصف اگر کسی علاقمند بود که آن را ادامه دهد، سورس، دیتابیس و نام دامنه آن را می‌توانم در اختیار وی بگذارم. ایمیل ارتباطی afshar dot mohebbi atsign gmail dot com می‌باشد.

جهت کسب اطلاعات بیشتر راجع به کارویس تگ‌های همین وبلاگ یا خود سایت را مشاهده فرمایید.

به روز رسانی: سورس کد کارویس در github موجود است. جهت کسب اطلاعات بیشتر http://blog.afsharm.com/2014/08/blog-post_23.html را ببینید.

‫نمودار گرافیکی با استفاده از ASP.NET

همیشه دیده بودم هر کسی می‌خواهد در صفحات ASP.NET از نمودارهای گرافیکی و چارت‌ها استفاده کند مستقیماً به سراغ کنترل‌های سنگین و گران قیمتی مثل Dundas، تلریک یا ComponentOne می‌رود. همیشه به خودم می‌گفتم برای کارهای گرافیکی خیلی سبک حتماً کنترل‌های سبک و رایگانی هم وجود دارد.

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

تمرین تغییر مداوم و تست واحد

یکی از مهم‌ترین جنبه‌های روش‌های جدید مبتنی بر agile توسعه نرم‌افزار بر اساس نیاز محدود فعلی و تغییرات مداوم آن بر اساس تغییر نیازمندی‌های مشتری یا تغییر درک تیم از نیازمندی‌هاست. روش‌های جدید به ما می‌گویند هیچ چیزی را از همان اول به طور کامل نسازیم. اول یک تیکه کوچک از آن را به طور کامل بسازیم و بعداً در صورت نیاز آن را تغییر دهیم.

تغییرات مداوم نرم‌افزار از آن چیزهایی است که برنامه‌نویس‌ها همیشه از آن گریزان بوده و آن را سخت می‌دانند. این سختی چیزی است که نمی‌توان از آن فرار کرد. برای زنده ماندن در دنیای پر تغییر و پر رقابت امروز باید به این سختی تن داده و به تغییر مداوم نرم‌افزار عادت کرد.

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

یکی از موضوعاتی که سعی کردم در کنار «تغییر مداوم» تمرین کنم، انجام تست واحد (unit test) بود. باید صادق بوده و اعتراف کنم که متاسفانه در این زمینه تا این لحظه هیچ موفقیتی به دست نیاورده‌ام. انجام این کار سخت‌تر از آنی بود که فکر می‌کردم. به خاطر ماهیت «کارویس» نیاز به mocking زیادی بود که وقت آن را نداشتم. علاوه بر این در خیلی از موارد طراحی تست سخت‌تر از پیاده‌سازی آن بود. وسوسه شیطانی اختصاص وقت تست به توسعه را هم می‌توانید به فهرست دلایل اضافه کنید. هنوز هم در حال تلاش برای عادت کردن به unit testهای موثر در کارویس و دیگر پروژه‌ها هستم.

وبلاگ رسمی کارویس

برای سایت کارویس، سایت اختصاصی کاریابی برای برنامه‌نویسان، یک وبلاگ ساختم. از این بعد کلیه اخبار و اطلاعات مربوط به کارویس در وبلاگ خودش منتشر خواهد شد. آدرس وبلاگ http://blog.karvis.ir/ و فید آن http://blog.karvis.ir/syndication.axd است. برای کسب اطلاعات بیشتر به اولین پست وبلاگ کارویس مراجعه کنید.

انتقال سایت کارویس به آدرس جدید

سایت کاریابی اختصاصی برنامه‌نویسان، کارویس، صاحبخانه شد و از آدرس قبلی به دامنه اختصاصی خودش یعنی http://karvis.ir منتقل شد. هدف از این کار توسعه بیشتر کارویس و افزایش rank آن است.

لطفاً فید قبلی را پاک و از فید جدید به آدرس http://karvis.ir/feed.svc/all?format=rss استفاده نمایید.

چند آگهی استخدام جالب توجه

از وقتی که کارویس رو شروع کردم گهگاه به آگهی‌های جالبی برمی‌خورم. به عنوان نمونه:

۱- برنامه نویس مسلط به C#‎ و Delphi بااسکان در محل کار و مزایای عالی: هیچ وقت فکر نمی‌کردم روزی آگهی استخدام برنامه‌نویس با جای خواب ببینم. درست مثل کارگر ساده با جای خواب، کارگر رستوران کم سن و سال شهرستانی با جای خواب نیازمندیم.

۲- برنامه نویس حرفه ای آقا , مسلط به PHP,Drupal , Android,ios,Java , ActionScript3,J2ME , C,Python,.Net: فکر نمی‌کردم به این زودی‌های آگهی استخدام Android و iOS رو ببینم.

۳- برنامه نویس (خانم) , مسلط به Net. , و آشنا به Delphi: نمی‌دونم چرا بعضی‌ها تاکید دارند که برنامه‌نویس‌هایشان فقط خانم باشد. مگر مشکل خاصی با آقایون دارند؟ مگر نه این که معمولاً محدودیت‌های آقایان، مثل ماموریت، ساعات کاری و محیط کاری کمتر از خانم‌هاست؟

۴- به یک برنامه نویس حرفه ای نیازمندیم: از بعضی آگهی استخدام‌ها هیچ اطلاعاتی در نمی‌آید. حتی زبان برنامه‌نویسی مورد نیاز.

۵- اوضاع WCF با وجود جدیدن بودنش چندان بد نیست.

۶- آگهی‌های استخدام منتشره در نیازمند‌های همشهری بیشتر راجع به دات‌نت است تا جاوا.

‫بهبودهایی در «کارویس»

سیستم کارویس، کار برای برنامه‌‌نویس، را کمی بهبود دادم:

۱- در صفحه «فهرست مشاغل» امکان جستجو بر اساس تگ را هم اضافه کردم.

۲- صفحه‌ی تگ‌ها بر اساس تکرار تگ‌ها سورت گردید.

۳- صفحه تگ‌ها دارای لینک به صفحه فهرست مشاغل است. تا بتوان آگهی‌های مرتبط با هر تگ را مثل این لینک دید.

۴- به ازای تک تک تگ‌ها فید اضافه شد. به این معنی که کاربران می‌توان مشترک فیدی شوند که مثلاً  آگهی‌های آن دارای تگ wcf است.


کارویس، کار برای برنامه‌نویس

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

آدرس سایت http://karvis.afsharm.com است. برای آن یک خوراک (Feed/RSS) هم ایجاد کرده‌ام. صفحه‌ای هم برای مشاهده فراوانی تگ‌ها وجود دارد. منتظر نظرات دوستان هستم.