برنامه نویسی جاوا | جاواپرو – Telegram
برنامه نویسی جاوا | جاواپرو
5.95K subscribers
1.15K photos
168 videos
401 files
1.32K links
🎓آکـــــــــادمی جاواپـــــــــــــــرو
آموزش پیش نیازهای برنامه نویسی
آموزش مقدماتی تا پیشرفته جاوا
آموزش Spring Boot
سفارش پروژه ، دوره و تدریس خصوصی: @rzutab
مشاهده دوره ها و ثبت نام👇
wwww.academyjavapro.com
گروه جاوا : @group_javapro
Download Telegram
پروژه نقاشی به زبان جاوا.rar
1.1 MB
سورس کد پروژه برنامه نقاشی به زبان جاوا

🆔 @javapro_ir
🆔 @group_javapro
Media is too big
VIEW IN TELEGRAM
مینی دوره Spring Boot- اپلیکیشن TODO

جلسه سوم

🆔 @javapro_ir
🆔 @group_javapro
Media is too big
VIEW IN TELEGRAM
مینی دوره Spring Boot- اپلیکیشن TODO

جلسه چهارم

🆔 @javapro_ir
🆔 @group_javapro
Ping pong.rar
215.2 KB
سورس بازی پینگ پونگ به زبان جاوا

🆔 @javapro_ir
🆔 @group_javapro
Media is too big
VIEW IN TELEGRAM
مینی دوره Spring Boot- اپلیکیشن TODO

جلسه پنجم

🆔 @javapro_ir
🆔 @group_javapro
Media is too big
VIEW IN TELEGRAM
مینی دوره Spring Boot- اپلیکیشن TODO

جلسه ششم

🆔 @javapro_ir
🆔 @group_javapro
سورس پروژه بازی دوز به زبان جاوا😍👇
Media is too big
VIEW IN TELEGRAM
مینی دوره Spring Boot- اپلیکیشن TODO

جلسه هفتم(آخر)

🆔 @javapro_ir
🆔 @group_javapro
پروژه بازی pacman.rar
248.9 KB
سورس پروژه رایگان بازی pacman به زبان جاوا

🆔 @javapro_ir
🆔 @group_javapro
اتوماسیون انتقال داده از CSV به دیتابیس با Spring Boot و Spring Batch

من اخیراً یک پروژه با Spring Batch پیاده‌سازی کردم که وظیفه‌اش پردازش داده‌ها از یک فایل CSV و ذخیره آن‌ها در دیتابیس بود.
این پروژه کل جریان استاندارد Reader → Processor → Writer → Job → Listener را به‌صورت کامل پوشش می‌دهد.

در ادامه، اجزای اصلی این پروژه را مرحله‌به‌مرحله بررسی می‌کنیم 👇


📂 ۱. Reader (FlatFileItemReader)

این بخش فایل sample-data.csv را می‌خواند و هر سطر را به یک شیء از نوع Person نگاشت می‌کند.
@Bean
public FlatFileItemReader<Person> reader() {
return new FlatFileItemReaderBuilder<Person>()
.name("personItemReader")
.resource(new ClassPathResource("sample-data.csv"))
.delimited()
.names("firstName", "lastName")
.targetType(Person.class)
.build();
}


🛠 ۲. Processor (ItemProcessor)

در این مرحله، داده‌ها قبل از ذخیره‌سازی تغییر داده می‌شوند.
در این مثال، نام و نام خانوادگی هر شخص به حروف بزرگ (UPPERCASE) تبدیل می‌شود.
public class PersonItemProcessor implements ItemProcessor<Person, Person> {

@Override
public Person process(Person person) {
return new Person(
person.firstName().toUpperCase(),
person.lastName().toUpperCase()
);
}
}


💾 ۳. Writer (JdbcBatchItemWriter)

این بخش داده‌های پردازش‌شده را در جدول people دیتابیس درج می‌کند.

@Bean
public JdbcBatchItemWriter<Person> writer(DataSource dataSource) {
return new JdbcBatchItemWriterBuilder<Person>()
.sql("INSERT INTO people (first_name, last_name) VALUES (:firstName, :lastName)")
.dataSource(dataSource)
.beanMapped()
.build();
}


⚙️ ۴. Job و Step

در این قسمت، Job و Step تعریف می‌شوند.
اندازه chunk برابر با ۳ است؛ یعنی:

۳ رکورد خوانده می‌شود

پردازش انجام می‌گیرد

در دیتابیس ذخیره می‌شود

این چرخه تا پایان فایل تکرار می‌شود

@Bean
public Step step1(
JobRepository jobRepository,
DataSourceTransactionManager transactionManager,
FlatFileItemReader<Person> reader,
PersonItemProcessor processor,
JdbcBatchItemWriter<Person> writer) {

return new StepBuilder("step1", jobRepository)
.<Person, Person>chunk(3, transactionManager)
.reader(reader)
.processor(processor)
.writer(writer)
.build();
}




📊 ۵. Listener (JobExecutionListener)

پس از اتمام Job، این Listener اجرا می‌شود تا صحت درج داده‌ها در دیتابیس بررسی شود.
@Override
public void afterJob(JobExecution jobExecution) {
if (jobExecution.getStatus() == BatchStatus.COMPLETED) {
jdbcTemplate
.query(
"SELECT first_name, last_name FROM people",
new DataClassRowMapper<>(Person.class)
)
.forEach(person ->
log.info("Found <{}> in the database.", person)
);
}
}


چرا کار روی این پروژه جذاب بود؟

✔️ مدیریت بهینه دیتاست‌های حجیم با استفاده از پردازش Chunk
✔️ پیاده‌سازی یک خط لوله تمیز ETL (استخراج → تبدیل → بارگذاری)
✔️ تفکیک شفاف مسئولیت‌ها بین Reader، Processor و Writer

این پروژه تجربه عملی بسیار خوبی از استفاده واقعی Spring Boot و Spring Batch برای اتوماسیون پردازش داده‌ها فراهم کرد.

🆔 @javapro_ir
🆔 @group_javapro
پروژه بازی Brick Breaker.rar
1.3 MB
سورس پروژه بازی Brick Breaker به زبان جاوا

🆔 @javapro_ir
🆔 @group_javapro
۱۳+ سال تجربه به‌عنوان مهندس ارشد جاوا فول‌استک — آنچه از ساخت سیستم‌های سازمانی (Enterprise-Grade) آموخته‌ام

پس از فعالیت روی پلتفرم‌های مالی بزرگ در Wells Fargo، Freddie Mac، DBS Bank و Oracle، به این نتیجه رسیده‌ام که مهندسی سازمانی فقط نوشتن کد نیست؛ بلکه درباره مقیاس‌پذیری، تاب‌آوری، امنیت و قابلیت مشاهده‌پذیری (Observability) است.
آنچه من به تیم اضافه می‌کنم:

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

Java، Spring Boot، REST APIs

تراکنش‌های توزیع‌شده، استراتژی‌های سراسری مدیریت Exception

Spring Batch برای پردازش‌های مالی سنگین


معماری‌های رویدادمحور (Event-Driven)

Kafka، ActiveMQ، JMS

مصرف‌کننده‌های Idempotent، Throttling، الگوهای Async


تحویل Cloud-Native

Docker، Kubernetes (EKS)، PCF، AWS، Azure

GitHub Actions، Jenkins، Spinnaker (CI/CD)

AppDynamics، Splunk، Kiali برای Observability


مهندسی داده

PostgreSQL، Oracle، MariaDB، Teradata

طراحی ERD، Stored Procedure، Trigger

مهاجرت دیتابیس با Flyway


تجربه فرانت‌اند

React.js، Redux، Router

Memoization و بهینه‌سازی رندر


امنیت

OAuth2، JWT، LDAP، SAML

رفع آسیب‌پذیری‌ها (Fortify / DAST)


سیستم‌هایی که تحویل داده‌ام:

🏦 مدیریت اوراق قرضه

🏦 مخازن داده بازار سرمایه

💳 سیستم‌های بازخرید و پاداش

📊 سیستم‌های پیشنهاددهی و بازاریابی زمینه‌محور


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


🆔 @javapro_ir
🆔 @group_javapro
Channel name was changed to «آموزش برنامه نویسی جاوا [عضویت کلیک کنید]»
پروژه Rapid Roll.rar
1.1 MB
سورس رایگان بازی Rapid Roll به زبان جاوا

🆔 @javapro_ir
🆔 @group_javapro
Channel name was changed to «برنامه نویسی جاوا [عضویت کلیک کنید]»
چه عواملی روی درآمد برنامه‌ نویسی تأثیر دارند؟
دستمزد برنامه‌ نویسی مانند مشاغل دیگر، تحت تأثیر چندین عامل قرار دارد. عواملی مانند سطح تجربه، کشور و شهر محل سکونت، شیوه همکاری و نوع شغل، تحصیلات، دانش تخصصی و مهارت‌های میان‌فردی، روی دستمزد برنامه نویسان تأثیرگذار هستند.


🆔 @javapro_ir
🆔 @group_javapro
تأثیر سابقه کار روی دستمزد برنامه‌ نویس
اولین و مهم‌ترین عامل مؤثر روی حقوق برنامه‌ نویس، میزان سابقه کار و سطح تجربه او است. برنامه نویسان معمولاً مسیر شغلی خود را با یک دوره کارآموزی آغاز می‌کنند که معمولاً زیر دو سال طول می‌کشد. یکی از مهم‌ترین مزیت‌های این گروه شغلی این است که دستمزد کارآموزی بالاتری در مقایسه با دوره‌های کارآموزی سایر مشاغل دارد.
ازنظر سطح تجربه، برنامه نویسان را به سه سطح زیر تقسیم‌بندی می‌کنند:
سطح تازه‌کار (Junior): برنامه نویسان تازه‌کار، زیر دو سال سابقه کار دارند.
سطح متوسط (Mid-level): این برنامه نویسان، دو الی پنج سال سابقه کار دارند.
سطح ارشد (Senior): به برنامه‌نویسانی که بیش از پنج سال سابقه کار دارند، برنامه‌‌نویس ارشد گفته می‌شود.
اگر می‌خواهید برنامه‌ نویس شوید، ابتدا باید برای آگهی‌های استخدام کارآموز برنامه‌ نویسی، رزومه ارسال کنید. پس از پایان دوران کارآموزی خود، می‌توانید کار خود را به‌عنوان برنامه‌ نویس و با یک حقوق نسبتاً خوب، شروع کنید. پس از پنج سال از شروع کارآموزی، می‌توانید به‌عنوان یک برنامه‌ نویس ارشد استخدام شوید و درآمد بالایی داشته باشید.


🆔 @javapro_ir
🆔 @group_javapro