علی جودت.

علی جودت · توسعه‌دهنده ارشد بک‌اند جاوا

توسعه بک‌اند برای نیازهای واقعی کسب‌وکار.

Senior Java Backend Developer

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

تصویر توسعه‌دهنده با لوگوی جاوا روی لپ‌تاپ و نشان‌های معلق Git، MongoDB و Spring Boot به رنگ فیروزه‌ای
Java / Spring / Backend
بیشتر درباره من طراحی · توسعه · نوسازی

از سیستم‌های قدیمی تا سرویس‌های جدید

توسعه با توجه بهمحدودیت‌ها و نیازهای واقعی.

تمرکز من توسعه نرم‌افزارهای سمت سرور در اکوسیستم جاواست؛ از سیستم‌های قدیمی مبتنی بر JSP، Struts و Hibernate تا سرویس‌های مبتنی بر Spring Boot.

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

به یادگیری و ارزیابی ابزارهای جدید علاقه دارم؛ به‌خصوص زمانی که بتوانند مسئله مشخصی را در معماری یا توسعه سیستم حل کنند.

حوزه‌های کاری

  • توسعه بک‌اند با Java و Spring Boot
  • طراحی و پیاده‌سازی REST API
  • یکپارچه‌سازی سرویس‌ها و سامانه‌های سازمانی
  • احراز هویت و کنترل دسترسی با Spring Security و Keycloak
  • توسعه و نوسازی سیستم‌های قدیمی جاوا
  • پیاده‌سازی گردش کار و قواعد تصمیم‌گیری
  • ارتباط ناهمگام و پردازش پیام
  • کار با پایگاه‌های داده رابطه‌ای و مستندمحور

مسئله‌ها و جزئیات پیاده‌سازی

تجربه‌های فنی منتخب

برای دیدن موضوعات فنی، هر تجربه را باز کنید.

۰۱توسعه سرویس مدیریت گردش کاردر حال توسعهتوسعه سرویس گردش کار مبتنی بر Flowable برای انتشار و اجرای فرایندهای BPMN و مدیریت تصمیم‌های DMN. تمرکز این کار بر تعریف فرایندها در زمان اجرا، مدیریت نسخه‌ها و اتصال مراحل خودکار به سرویس‌های برنامه است.JavaSpring BootFlowableBPMNDMN

موضوعات فنی

  • دریافت و انتشار BPMN XML بدون وابستگی به فایل روی دیسک
  • نگهداری تعاریف و نسخه‌ها در مخزن داخلی Flowable
  • اتصال Service Taskها به Beanهای برنامه از طریق Delegate
  • طراحی APIهای انتشار، شروع فرایند و تکمیل وظیفه
  • توسعه قابلیت مدیریت تعاریف تصمیم‌گیری DMN
  • بررسی مهاجرت نمونه‌های در حال اجرا به نسخه جدید فرایند
۰۲توسعه قابلیت‌های مشترک در لایه Gatewayکار روی قابلیت‌های مشترک در لایه ورودی سرویس‌ها؛ شامل ارتباط با سرویس‌های مقصد، کنترل نرخ درخواست، مدیریت خطا و انتقال اطلاعات درخواست.Spring BootSpring SecurityWebClientRestTemplateBucket4jActuator

موضوعات فنی

  • پیاده‌سازی و تنظیم Rate Limiting با Bucket4j
  • مدیریت CORS و هدرهای Forwarded
  • یکپارچه‌سازی ارتباط HTTP با سرویس‌ها
  • تنظیم Timeout و مدیریت خطاهای ارتباطی
  • انتقال فایل‌های حجیم با توجه به مصرف حافظه
  • اتصال به ابزارهای پایش مبتنی بر Spring
۰۳نوسازی سیستم سازمانی قدیمیکار روی ارتقای تدریجی یک سیستم جاوا با وابستگی‌های قدیمی، با تمرکز بر سازگاری اجزا و اضافه‌کردن قابلیت‌های جدید در کنار ساختار موجود.JavaSpring FrameworkStrutsJSPHibernateJBossCAS

موضوعات فنی

  • ارتقای Spring در بستر نرم‌افزار قدیمی
  • یکپارچه‌سازی Spring MVC با Struts و JSP
  • حفظ سازگاری با سازوکار احراز هویت موجود
  • رفع تعارض وابستگی‌ها و مشکلات زمان اجرا
  • مدیریت Encoding، آپلود فایل و پاسخ‌های HTTP
  • کار در محیط مبتنی بر JBoss و Servlet قدیمی
۰۴یکپارچه‌سازی هویت و دسترسیتوسعه و یکپارچه‌سازی قابلیت‌های هویت و دسترسی با استفاده از Keycloak و Spring Security، و کار روی یک کتابخانه مشترک برای ساده‌سازی اتصال برنامه‌ها به Keycloak.KeycloakSpring SecurityOAuth2LDAPJava

موضوعات فنی

  • ایمن‌سازی APIها با OAuth2 Resource Server
  • کنترل دسترسی مبتنی بر نقش و Authority
  • ارتباط با Keycloak از طریق Admin Client
  • یکپارچه‌سازی با LDAP
  • طراحی رابط مشترک برای استفاده مجدد در پروژه‌ها

اکوسیستم فنی

ابزارها و فناوری‌ها

زبان اصلی
Java
چارچوب‌های اصلی
Spring BootSpring FrameworkSpring MVC
امنیت
Spring SecurityOAuth2KeycloakLDAP
دسترسی به داده
HibernateJPASpring Data
پایگاه داده و کش
OracleMongoDBRedisSQL Server
ارتباط بین سرویس‌ها
RESTWebClientRestTemplateWebSocket
پیام‌رسانی
RabbitMQActiveMQ
گردش کار و قواعد
FlowableBPMNDMNDrools
پردازش و زمان‌بندی
Spring BatchSpring IntegrationQuartz
پایش و تاب‌آوری
Spring Boot AdminActuatorResilience4jBucket4j
ذخیره‌سازی فایل
MinIOS3-compatible APIs
ابزارها و محیط اجرا
MavenGitLabLinuxNginxTomcatJBoss
سیستم‌های قدیمی
StrutsJSPServletHibernate 3

در طراحی و توسعه

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

۰۱

انتخاب ابزار بر اساس مسئله و محدودیت‌های محیط اجرا

۰۲

توجه به نگهداری و عیب‌یابی در کنار پیاده‌سازی

۰۳

در نظر گرفتن مدیریت خطا و پایش از ابتدای طراحی

۰۴

استفاده از نمونه‌سازی برای ارزیابی فناوری‌های جدید

۰۵

ترجیح مهاجرت تدریجی و قابل‌کنترل در سیستم‌های قدیمی

گفت‌وگو درباره همکاری

ارتباط با من

برای گفت‌وگو درباره فرصت‌های همکاری در توسعه بک‌اند جاوا، طراحی سرویس‌ها و نوسازی سیستم‌های سازمانی با من در ارتباط باشید.

بازگشت به بالای صفحه