چقدر کد می‌نویسید؟ بدونید، نه حدس بزنید!

اگر توسعه‌دهنده هستید، مطمئناً بارها از خودتون پرسیدید که روزانه واقعاً چقدر زمان صرف کدنویسی می‌کنید؟ کدام پروژه‌ها بیشتر وقت شما رو می‌گیرند؟ و اصلاً در چه ساعت‌هایی از روز بهترین عملکرد رو دارید؟


داستان پروژه

برای ردیابی کدنویسی سرویس‌های مختلفی مثل WakaTime و Code Time وجود دارن که خیلی هم قشنگ کار می‌کنن.
مشکل اینجاست که اکثرشون پولی هستن و داده‌هاتون رو روی سرورهای خودشون نگه می‌دارن.

یک توسعه‌دهنده چینی به نام hangxingliu چند سال پیش افزونه‌ای برای VS Code نوشت که این مشکل رو حل می‌کرد: رایگان و اوپن‌سورس بود و داده‌ها روی سرور خودتون ذخیره می‌شد.
اما متأسفانه سال‌هاست که آپدیتی نشده و کم‌کم از کار افتاده بود.

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


چی کار می‌کنه؟

این پروژه تمام فعالیت‌هاتون رو توی VS Code رصد می‌کنه:

  • چه زبان‌هایی استفاده می‌کنید

  • روی کدام فایل‌ها و پروژه‌ها کار می‌کنید

  • چقدر زمان واقعی صرف تایپ کردن می‌کنید

  • در چه ساعت‌هایی از روز بیشتر کار می‌کنید


چطور کار می‌کنه؟

کلاینت (افزونه VS Code)

باید افزونه‌ی Coding Tracker رو نصب کنید.
این افزونه روی ویرایشگر شما نصب می‌شه و هر بار که فایلی باز می‌کنید، کدی می‌نویسید یا بین پروژه‌ها جابجا می‌شید، اطلاعات رو جمع‌آوری می‌کنه.

اگر نمی‌خواید سرور راه‌اندازی کنید، می‌تونید از Local Mode استفاده کنید که داده‌ها فقط روی همون سیستم ذخیره می‌شن و گزارش‌ها هم فقط همون‌جا قابل مشاهده هستن.

سرور (این پروژه)

یه برنامه نوشته‌شده با Node.js که:

  • اطلاعات رو از افزونه دریافت می‌کنه

  • توی یه پایگاه داده ساده (فایل‌های JSON) ذخیره می‌کنه

  • یه رابط وب زیبا برای نمایش گزارش‌ها در اختیارتون می‌ذاره


ویژگی‌های جدیدی که اضافه کردم

داشبورد بهره‌وری

یه صفحه جدید که بهتون می‌گه:

  • در کدام روزهای هفته بیشتر کار می‌کنید

  • بین زبان‌های مختلف چطور تقسیم وقت می‌کنید

  • کدام پروژه‌ها بیشتر وقتتون رو می‌گیرن

تحلیل زمان فعال

یه بخش جالب که تفکیک می‌کنه بین:

  • زمانی که واقعاً در حال تایپ هستید (کدنویسی فعال)

  • زمانی که فکر می‌کنید، کد رو بررسی می‌کنید یا توقف کرده‌اید

داکرایز شدن

دیگه نیاز نیست دستی Node.js نصب کنید یا با dependency ها درگیر بشید.
فقط Docker رو داشته باشید و با یک دستور اجرا کنید.


راه‌اندازی

۱. سرور رو راه‌اندازی کنید:

git clone https://github.com/ArashZich/vscode-coding-tracker-server.git
cd vscode-coding-tracker-server

۲. توکن‌هاتون رو تنظیم کنید:

یه پوشه tokens بسازید و داخلش فایل token.json بذارید:

{
  "adminToken": [
    {
      "token": "YOUR_ADMIN_TOKEN"
    }
  ],
  "viewReportToken": "public",
  "uploadToken": [
    {
      "remark": "my-laptop",
      "token": "YOUR_UPLOAD_TOKEN",
      "computerId": ["home", "office"]
    }
  ]
}

۳. با Docker اجرا کنید:

docker-compose up -d

۴. VS Code رو تنظیم کنید:

توی settings.json این تنظیمات رو بذارید:

{
  "codingTracker.localServerMode": false,
  "codingTracker.serverURL": "http://localhost:10345",
  "codingTracker.uploadToken": "YOUR_UPLOAD_TOKEN"
}

چرا این کار رو کردم؟

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

این ابزار کمک می‌کنه که:

  • الگوهای واقعی کاری‌تون رو بشناسید

  • بفهمید توی کدام ساعت‌های روز بیشتر تمرکز دارید

  • ببینید چقدر زمان روی پروژه‌های مختلف صرف می‌کنید

  • عادات کاری‌تون رو بهبود بدید


داده‌ها مال خودتون

یکی از مزایای مهم این راه‌حل اینه که همه چیز روی سرور خودتون اجرا می‌شه.
داده‌هاتون رو با هیچ سرویس خارجی به اشتراک نمی‌ذارید و کنترل کاملی روشون دارید.


آینده پروژه

قصد دارم این پروژه رو بیشتر توسعه بدم و ویژگی‌های جدیدی بهش اضافه کنم.

اگه علاقه‌مند هستید، به گیت‌هاب پروژه من سر بزنید و نظرتون رو بگید.

باکیفیت ترین دوره آموزش برنامه نویسی چیست ؟

⭐⭐⭐⭐⭐ دوره ی آموزش دوازده قدم برنامه نویسی مهندس سام نیک زاد با کسب امتیاز بالاترین کیفیت دوره ی آموزشی بعنوان با کیفیت دوره انتخاب شده است برای مشاهده کلیک کنید

ثبت نام دوره با تخفیف از ویرگول