JVM (Java Sanal Makinesi), Java kodunun “bir kere yaz, her yerde çalıştır” (Write Once, Run Anywhere) felsefesini hayata geçiren bir motordur. Temelde bir bilgisayar içinde simüle edilmiş sanal bir bilgisayar gibi davranır. Süreç Özeti (Workflow) JVM’in çalışma sürecini üç ana aşamada inceleyebiliriz: 1. Sınıf Yükleyici (Class Loader) Java kodunuzu derlediğinizde oluşan .class dosyaları (Bytecode), JVM…Continue reading JVM
TransactionSynchronization
TransactionSynchronizationManager.registerSynchronization(new TransactionSynchronization() { @Override public void afterCommit() { asyncParticipantService.createParticipantsAndTasksBulk(performanceProjectId, tenantId, currentUserEmail); } }); * “Burada afterCommit callback register ediyoruz.” * “Bu iş transaction commit’inden sonra transaction synchronization ile tetikleniyor.” * “Commit sonrası hook kullanılmış.”
N+1 Problemi
Java dünyasında performansın en büyük düşmanlarından biri olan N+1 Problemi, aslında veri tabanı ile kurduğumuz iletişimin verimsiz yönetilmesinden kaynaklanır. Paylaştığın özet, bu sorunu ve çözüm yollarını harika bir şekilde açıklıyor. Sektör standartlarına uygun, ölçeklenebilir ve sürdürülebilir bir yapı kurmak adına bu konuyu biraz daha derinleştirelim: N+1 Problemi Nedir? N+1 sorunu; sistemin ana nesne için 1…Continue reading N+1 Problemi
AI Prompt
Aynı AI modelini (Claude, GPT-4, Gemini) kullanmanıza rağmen birilerinin sizden %99 daha iyi çıktı almasının sırrı, modeli nasıl yönlendirdikleri değil, modelin etrafına nasıl bir “evren” inşa ettikleridir. İşte profesyonellerin kullandığı 8 kritik bağlam türü ve bunları nasıl uygulayacağınızın formülü: 1. Persona + Expertise Context (Kimlik ve Uzmanlık) AI’ya sadece bir rol vermeyin, ona bir kariyer…Continue reading AI Prompt
Bir şirket çalışmaktan hoşlandığı insan tiplerini şöyle anlatmış
Team Attributes While the operating principles above are focused on how we work, the attributes in this section highlight the kind of people we like to work with. We vet against these attributes when interviewing and they describe how we expect people to “show up” at work. Humble and Empathetic All of us can learn…Continue reading Bir şirket çalışmaktan hoşlandığı insan tiplerini şöyle anlatmış
FlatMap()
flatMap nested collection (liste içinde liste) yapılarında kullanılır. Yukardaki örnekte questions listelerine ulaşmak istediğimizi düşünün; Sonuç: Stream<QuestionDTO> – Tek düz stream, tüm questionlar birleşik! Örneğe bir de şöyle bakalım, İlk başta yapımız şu şekilde idi; Group1 -> [Q1, Q2, Q3]Group2 -> [Q4, Q5]Group3 -> [Q6] FlatMap() ile şu şekle dönüştürdük;Stream<Question> = [Q1, Q2, Q3, Q4, Q5, Q6] Gördüğünüz gibi tel bir…Continue reading FlatMap()
Docker’a postgre sql backupi copylama ve çalıştırma
docker cp Users/oguzozkaraca/Desktop/uat-backup-1.sql 446c698526f6:/tmp/uat-backup-1.sql docker exec -it 446 bash cd tmp psql -U postgres -d local-db -f /uat-backup.sql
git config user & mail
git config –global user.name “Oguz Ozkaraca” git config –global user.email “oguz.ozkaraca@gmail.com”
Windows Terminal
Windows’un Komut satırı uygulamarı arasında Power Shell, Command Prompt gibi programlar vardır, bunları bilirsiniz. Bu programların ne kadar kullanışsız olduğunu anlatmak gerekir ise şunları rahatlıkla söyleyebiliriz; Yeni Tab lar açamazsınız kopyalama ve yapıştırma işleri oldukça zordur vs.. Diğer işletim sistemlerinde bu komut satırı uyguların ne kadar güzel olduğunu bildiğimden Windowsda nasıl bu kadar kötü olur,…Continue reading Windows Terminal
Angular Projesi Dockerize
İhtiyacımız olan tek şey, çalışan bir Angular projesi ve bir Dockerfile dosyası. Dockerfile dosya içeriğim; FROM node:16.16.0 as nodeWORKDIR /appCOPY . .RUN npm installRUN npm run build –prod FROM nginx:alpineCOPY –from=node /app/dist/dock-ng-app /usr/share/nginx/html Yukarıda ki Dockerfile içeriğini bold olan kısmı(dock-ng-app) değiştirmek şartı ile tamamen kullanabilirsiniz. Orasının ne olacağı sizin projenizin dist folderi altında hangi isimle…Continue reading Angular Projesi Dockerize