{"id":37789,"date":"2026-01-15T15:00:49","date_gmt":"2026-01-15T12:00:49","guid":{"rendered":"https:\/\/fatihsoysal.com\/blog\/tek-basima-iklim-duyarli-bir-bahce-planlayici-nasil-gelistirdim\/"},"modified":"2026-01-15T15:00:49","modified_gmt":"2026-01-15T12:00:49","slug":"tek-basima-iklim-duyarli-bir-bahce-planlayici-nasil-gelistirdim","status":"publish","type":"post","link":"https:\/\/fatihsoysal.com\/blog\/tek-basima-iklim-duyarli-bir-bahce-planlayici-nasil-gelistirdim\/","title":{"rendered":"Tek Ba\u015f\u0131ma \u0130klim Duyarl\u0131 Bir Bah\u00e7e Planlay\u0131c\u0131 Nas\u0131l Geli\u015ftirdim?"},"content":{"rendered":"<h2>Tek Ba\u015f\u0131ma \u0130klim Duyarl\u0131 Bir Bah\u00e7e Planlay\u0131c\u0131 Nas\u0131l Geli\u015ftirdim?<\/h2>\n<p>De\u011fi\u015fen iklim ko\u015fullar\u0131, bah\u00e7ecilik ve tar\u0131m pratiklerini derinden etkiliyor. Geleneksel ekim takvimleri ve b\u00f6lgesel bilgiler art\u0131k her zaman ge\u00e7erli olmayabiliyor. Bu durum, ki\u015fisel bir ilgi alan\u0131mdan yola \u00e7\u0131karak, iklim verilerini ak\u0131ll\u0131ca kullanarak bah\u00e7e sahiplerine daha do\u011fru ve s\u00fcrd\u00fcr\u00fclebilir planlama imkan\u0131 sunan bir ara\u00e7 geli\u015ftirme fikrini do\u011furdu. Bu makalede, tek ki\u015filik bir geli\u015ftirme yolculu\u011funda, iklim duyarl\u0131 bir bah\u00e7e planlay\u0131c\u0131s\u0131n\u0131 nas\u0131l in\u015fa etti\u011fimi, kar\u015f\u0131la\u015ft\u0131\u011f\u0131m zorluklar\u0131 ve kulland\u0131\u011f\u0131m teknolojileri detayland\u0131raca\u011f\u0131m.<\/p>\n<h3>Problem Tan\u0131m\u0131 ve Motivasyon<\/h3>\n<p>K\u00fcresel \u0131s\u0131nma ve beraberindeki iklim de\u011fi\u015fiklikleri, mevsim normallerinin d\u0131\u015f\u0131na \u00e7\u0131kan hava olaylar\u0131n\u0131 giderek daha s\u0131k kar\u015f\u0131m\u0131za \u00e7\u0131kar\u0131yor. Bu durum, amat\u00f6r bah\u00e7\u0131vanlardan profesyonel \u00e7ift\u00e7ilere kadar herkesi etkiliyor.<\/p>\n<h4>De\u011fi\u015fen \u0130klim Ko\u015fullar\u0131n\u0131n Bah\u00e7ecili\u011fe Etkisi<\/h4>\n<p>Son y\u0131llarda, don olaylar\u0131n\u0131n beklenmedik zamanlarda ya\u015fanmas\u0131, a\u015f\u0131r\u0131 s\u0131cak dalgalar\u0131 veya ani kurakl\u0131klar gibi olaylar, bitkilerin b\u00fcy\u00fcme d\u00f6ng\u00fclerini bozmakta ve verimi d\u00fc\u015f\u00fcrmektedir. Geleneksel olarak bilinen &#8220;son don tarihi&#8221; veya &#8220;ilk don tarihi&#8221; gibi referanslar, b\u00f6lgesel mikro iklim farkl\u0131l\u0131klar\u0131 ve genel iklim de\u011fi\u015fikli\u011fi nedeniyle g\u00fcvenilirli\u011fini yitirmi\u015ftir. Bu belirsizlik, bah\u00e7\u0131vanlar\u0131n ne zaman ekim yapacaklar\u0131, hangi bitkileri se\u00e7ecekleri ve nas\u0131l bak\u0131m yapacaklar\u0131 konusunda b\u00fcy\u00fck bir kafa kar\u0131\u015f\u0131kl\u0131\u011f\u0131na yol a\u00e7maktad\u0131r.<\/p>\n<h4>Geleneksel Bah\u00e7e Planlamas\u0131n\u0131n Eksiklikleri<\/h4>\n<p>Mevcut bah\u00e7e planlama ara\u00e7lar\u0131 veya kitaplar\u0131 genellikle genel bilgiler sunar ve belirli bir co\u011frafi konuma veya g\u00fcncel iklim verilerine adapte olma yetene\u011finden yoksundur. Bu durum, kullan\u0131c\u0131lar\u0131n kendi b\u00f6lgeleri i\u00e7in en uygun kararlar\u0131 vermekte zorlanmas\u0131na neden olur. \u00d6rne\u011fin, Akdeniz iklimine uygun bir bitkinin Karadeniz&#8217;de ayn\u0131 ba\u015far\u0131yla yeti\u015fmesi beklenemez, ancak daha da \u00f6nemlisi, Akdeniz&#8217;in kendi i\u00e7inde bile b\u00f6lgesel farkl\u0131l\u0131klar ve y\u0131llara g\u00f6re de\u011fi\u015fen iklim dinamikleri g\u00f6z ard\u0131 edilir.<\/p>\n<h4>Ki\u015fisel Bir \u0130htiya\u00e7tan Do\u011fan Fikir<\/h4>\n<p>Kendi bah\u00e7ecilik deneyimlerimde ya\u015fad\u0131\u011f\u0131m bu zorluklar, beni daha ki\u015fiselle\u015ftirilmi\u015f ve dinamik bir \u00e7\u00f6z\u00fcm aray\u0131\u015f\u0131na itti. Neden bulundu\u011fum konumun ger\u00e7ek zamanl\u0131 ve ge\u00e7mi\u015f iklim verilerini analiz ederek, bana \u00f6zel ekim ve bak\u0131m \u00f6nerileri sunan bir ara\u00e7 olmas\u0131n? Bu fikir, iklim duyarl\u0131 bah\u00e7e planlay\u0131c\u0131s\u0131 projemin temel motivasyon kayna\u011f\u0131 oldu. Amac\u0131m, bah\u00e7\u0131vanlar\u0131n iklim belirsizli\u011fi kar\u015f\u0131s\u0131nda daha bilin\u00e7li ve ba\u015far\u0131l\u0131 olmalar\u0131n\u0131 sa\u011flamakt\u0131.<\/p>\n<h3>Teknolojilerin Se\u00e7imi ve Mimari<\/h3>\n<p>Tek ki\u015filik bir geli\u015ftirici olarak, projenin s\u00fcrd\u00fcr\u00fclebilirli\u011fi ve h\u0131zl\u0131 geli\u015ftirme imkan\u0131 benim i\u00e7in kritikti. Bu nedenle, modern, iyi belgelenmi\u015f ve geni\u015f topluluk deste\u011fine sahip teknolojileri tercih ettim.<\/p>\n<h4>Frontend Teknolojileri<\/h4>\n<p>Kullan\u0131c\u0131 aray\u00fcz\u00fc i\u00e7in h\u0131zl\u0131, etkile\u015fimli ve mod\u00fcler bir yap\u0131ya ihtiyac\u0131m vard\u0131. Bu y\u00fczden <a href=\"https:\/\/react.dev\/\">React<\/a> \u00e7at\u0131s\u0131n\u0131 se\u00e7tim. React&#8217;\u0131n bile\u015fen tabanl\u0131 yap\u0131s\u0131, karma\u015f\u0131k UI elementlerini y\u00f6netmeyi kolayla\u015ft\u0131rd\u0131 ve geli\u015ftirme h\u0131z\u0131m\u0131 art\u0131rd\u0131. Durum y\u00f6netimi i\u00e7in <a href=\"https:\/\/redux.js.org\/\">Redux<\/a> kulland\u0131m, bu da uygulaman\u0131n genel durumunu merkezi bir yerde tutmam\u0131 sa\u011flad\u0131. Stillendirme i\u00e7in <a href=\"https:\/\/tailwindcss.com\/\">Tailwind CSS<\/a>&#8216;i tercih ettim; bu, h\u0131zl\u0131 ve \u00f6zelle\u015ftirilebilir bir tasar\u0131m s\u00fcreci sundu.<\/p>\n<h4>Backend Teknolojileri<\/h4>\n<p>Backend taraf\u0131nda, esneklik ve JavaScript ekosistemi ile uyumluluk a\u00e7\u0131s\u0131ndan <a href=\"https:\/\/nodejs.org\/en\">Node.js<\/a> ve <a href=\"https:\/\/expressjs.com\/\">Express.js<\/a> kombinasyonunu kulland\u0131m. Node.js&#8217;in asenkron yap\u0131s\u0131, API \u00e7a\u011fr\u0131lar\u0131 ve veri i\u015fleme gibi I\/O yo\u011fun g\u00f6revler i\u00e7in idealdi. Express.js ise RESTful API&#8217;ler olu\u015fturmak i\u00e7in basit ve g\u00fc\u00e7l\u00fc bir \u00e7er\u00e7eve sa\u011flad\u0131. Kimlik do\u011frulama ve yetkilendirme i\u00e7in <a href=\"https:\/\/jwt.io\/\">JWT (JSON Web Tokens)<\/a> kulland\u0131m.<\/p>\n<h4>Veritaban\u0131 Se\u00e7imi<\/h4>\n<p>\u0130klim verileri, bitki bilgileri ve kullan\u0131c\u0131 tercihleri gibi ili\u015fkisel verileri depolamak i\u00e7in g\u00fc\u00e7l\u00fc ve g\u00fcvenilir bir veritaban\u0131na ihtiyac\u0131m vard\u0131. Bu nedenle <a href=\"https:\/\/www.postgresql.org\/\">PostgreSQL<\/a>&#8216;i se\u00e7tim. PostgreSQL, co\u011frafi veri (PostGIS eklentisi ile), JSONB deste\u011fi ve sa\u011flam ACID uyumlulu\u011fu ile karma\u015f\u0131k veri modellerini y\u00f6netmek i\u00e7in m\u00fckemmel bir se\u00e7imdi. ORM (Object-Relational Mapping) olarak <a href=\"https:\/\/sequelize.org\/\">Sequelize<\/a>&#8216;\u0131 kulland\u0131m, bu da veritaban\u0131 i\u015flemlerini JavaScript kodu \u00fczerinden daha kolay yapmam\u0131 sa\u011flad\u0131.<\/p>\n<h4>Bulut Altyap\u0131s\u0131 ve Da\u011f\u0131t\u0131m<\/h4>\n<p>Uygulamay\u0131 da\u011f\u0131tmak ve \u00f6l\u00e7eklenebilir bir altyap\u0131 sa\u011flamak i\u00e7in <a href=\"https:\/\/aws.amazon.com\/\">Amazon Web Services (AWS)<\/a>&#8216;\u0131 tercih ettim. Frontend uygulamas\u0131 i\u00e7in <a href=\"https:\/\/aws.amazon.com\/s3\/\">AWS S3<\/a> ve <a href=\"https:\/\/aws.amazon.com\/cloudfront\/\">CloudFront<\/a>, backend API&#8217;leri i\u00e7in <a href=\"https:\/\/aws.amazon.com\/ec2\/\">AWS EC2<\/a> ve veritaban\u0131 i\u00e7in <a href=\"https:\/\/aws.amazon.com\/rds\/\">AWS RDS (PostgreSQL)<\/a> kulland\u0131m. S\u00fcrekli entegrasyon ve s\u00fcrekli da\u011f\u0131t\u0131m (CI\/CD) i\u00e7in <a href=\"https:\/\/github.com\/features\/actions\">GitHub Actions<\/a>&#8216;\u0131 yap\u0131land\u0131rd\u0131m, bu da kod de\u011fi\u015fikliklerinin otomatik olarak test edilmesini ve da\u011f\u0131t\u0131lmas\u0131n\u0131 sa\u011flad\u0131.<\/p>\n<h3>\u0130klim Verileri Entegrasyonu<\/h3>\n<p>Uygulaman\u0131n kalbi, do\u011fru ve g\u00fcncel iklim verilerini entegre edebilme yetene\u011finde yat\u0131yor. Bu s\u00fcre\u00e7, projenin en karma\u015f\u0131k ama ayn\u0131 zamanda en kritik a\u015famalar\u0131ndan biriydi.<\/p>\n<h4>Veri Kaynaklar\u0131 ve API&#8217;ler<\/h4>\n<p>G\u00fcvenilir iklim verileri elde etmek i\u00e7in \u00e7e\u015fitli kaynaklar\u0131 ara\u015ft\u0131rd\u0131m. Ba\u015flang\u0131\u00e7ta, <a href=\"https:\/\/www.ncdc.noaa.gov\/cdo-web\/webservices\/v2\">NOAA Climate Data Online (CDO) API<\/a> ve <a href=\"https:\/\/www.open-meteo.com\/\">Open-Meteo<\/a> gibi k\u00fcresel ve b\u00f6lgesel hava durumu API&#8217;lerini kulland\u0131m. Bu API&#8217;ler, belirli bir co\u011frafi konum i\u00e7in ge\u00e7mi\u015f s\u0131cakl\u0131k, ya\u011f\u0131\u015f, nem, r\u00fczgar h\u0131z\u0131 gibi verileri sa\u011flamaktad\u0131r. Ayr\u0131ca, T\u00fcrkiye i\u00e7in <a href=\"https:\/\/www.mgm.gov.tr\/\">Meteoroloji Genel M\u00fcd\u00fcrl\u00fc\u011f\u00fc (MGM)<\/a>&#8216;n\u00fcn sundu\u011fu verileri de de\u011ferlendirdim, ancak API eri\u015fimi konusunda baz\u0131 k\u0131s\u0131tlamalarla kar\u015f\u0131la\u015ft\u0131m ve genellikle k\u00fcresel API&#8217;lere y\u00f6neldim.<\/p>\n<p>\u00d6rnek bir API \u00e7a\u011fr\u0131s\u0131 (pseudo-kod):<\/p>\n<pre><code class=\"language-javascript\">\nasync function fetchClimateData(latitude, longitude, startDate, endDate) {\n  const apiKey = 'YOUR_API_KEY';\n  const url = <code>https:\/\/api.open-meteo.com\/v1\/forecast?latitude=${latitude}&longitude=${longitude}&hourly=temperature_2m,precipitation&start_date=${startDate}&end_date=${endDate}<\/code>;\n  \n  try {\n    const response = await fetch(url);\n    const data = await response.json();\n    return data;\n  } catch (error) {\n    console.error(\"\u0130klim verileri al\u0131n\u0131rken hata olu\u015ftu:\", error);\n    return null;\n  }\n}\n<\/pre>\n<p><\/code><\/p>\n<h4>Veri Temizli\u011fi ve \u0130\u015fleme<\/h4>\n<p>API'lerden gelen ham veriler genellikle do\u011frudan kullan\u0131ma uygun de\u011fildir. Eksik veriler, hatal\u0131 \u00f6l\u00e7\u00fcmler veya farkl\u0131 formatlar gibi sorunlarla kar\u015f\u0131la\u015fmak olas\u0131d\u0131r. Bu verileri veritaban\u0131na kaydetmeden \u00f6nce kapsaml\u0131 bir temizlik ve i\u015fleme s\u00fcrecinden ge\u00e7irdim. \u00d6rne\u011fin, g\u00fcnl\u00fck ortalama s\u0131cakl\u0131klar\u0131 hesaplamak, toplam ya\u011f\u0131\u015f miktar\u0131n\u0131 belirlemek ve veri setindeki bo\u015fluklar\u0131 doldurmak i\u00e7in istatistiksel y\u00f6ntemler kulland\u0131m. Bu ad\u0131m, algoritmalar\u0131n do\u011fru ve g\u00fcvenilir \u00e7\u0131kt\u0131lar \u00fcretmesi i\u00e7in hayati \u00f6nem ta\u015f\u0131yordu.<\/p>\n<h4>Konum Bazl\u0131 \u0130klim Analizi<\/h4>\n<p>Kullan\u0131c\u0131n\u0131n belirledi\u011fi konuma (enlem ve boylam) g\u00f6re en yak\u0131n hava istasyonlar\u0131ndan veya grid verilerinden iklim bilgilerini \u00e7ekmek i\u00e7in co\u011frafi sorgular kulland\u0131m. PostgreSQL'in PostGIS eklentisi, bu t\u00fcr uzamsal sorgular\u0131 verimli bir \u015fekilde yapmam\u0131 sa\u011flad\u0131. Kullan\u0131c\u0131n\u0131n se\u00e7ti\u011fi konum i\u00e7in ge\u00e7mi\u015f 10-20 y\u0131ll\u0131k verileri analiz ederek, o b\u00f6lgeye \u00f6zg\u00fc ortalama son don tarihi, ilk don tarihi, ortalama s\u0131cakl\u0131k aral\u0131klar\u0131 ve ya\u011f\u0131\u015f miktarlar\u0131 gibi kritik parametreleri belirledim. Bu analiz, bitki se\u00e7im ve takvimlendirme algoritmalar\u0131n\u0131n temelini olu\u015fturdu.<\/p>\n<h3>Bitki Se\u00e7imi ve Takvimlendirme Algoritmalar\u0131<\/h3>\n<p>Uygulaman\u0131n en karma\u015f\u0131k ve \u00f6zg\u00fcn k\u0131sm\u0131, iklim verileriyle bitki gereksinimlerini e\u015fle\u015ftiren ak\u0131ll\u0131 algoritmalard\u0131r. Bu algoritmalar, bah\u00e7\u0131vanlara ki\u015fiselle\u015ftirilmi\u015f ve iklim ko\u015fullar\u0131na duyarl\u0131 \u00f6neriler sunar.<\/p>\n<h4>Bitki Veritaban\u0131 Olu\u015fturma<\/h4>\n<p>\u0130lk ad\u0131m, geni\u015f ve detayl\u0131 bir bitki veritaban\u0131 olu\u015fturmakt\u0131. Bu veritaban\u0131, her bitki t\u00fcr\u00fc i\u00e7in a\u015fa\u011f\u0131daki gibi kritik bilgileri i\u00e7erir:<\/p>\n<ul>\n<li>Minimum\/Maksimum b\u00fcy\u00fcme s\u0131cakl\u0131\u011f\u0131<\/li>\n<li>Don tolerans\u0131<\/li>\n<li>G\u00fcne\u015f \u0131\u015f\u0131\u011f\u0131 gereksinimi<\/li>\n<li>Toprak tipi tercihi<\/li>\n<li>Su ihtiyac\u0131<\/li>\n<li>Ekim derinli\u011fi ve aral\u0131\u011f\u0131<\/li>\n<li>Ortalama \u00e7imlenme s\u00fcresi<\/li>\n<li>Ortalama hasat s\u00fcresi<\/li>\n<li>Hastal\u0131k ve zararl\u0131 direnci<\/li>\n<li>pH tolerans\u0131<\/li>\n<\/ul>\n<p>Bu verileri botanik kaynaklardan, tar\u0131m \u00fcniversitelerinin yay\u0131nlar\u0131ndan ve g\u00fcvenilir \u00e7evrimi\u00e7i veritabanlar\u0131ndan toplad\u0131m ve d\u00fczenledim.<\/p>\n<h4>\u0130klim Verisiyle E\u015fle\u015ftirme Mant\u0131\u011f\u0131<\/h4>\n<p>Kullan\u0131c\u0131n\u0131n konumuna \u00f6zel olarak analiz edilen iklim verileri (ortalama son don tarihi, ortalama s\u0131cakl\u0131k e\u011frileri, vb.) ile bitki veritaban\u0131ndaki gereksinimleri e\u015fle\u015ftiren bir algoritma geli\u015ftirdim. Bu algoritma, her bitkinin belirli bir konumda ba\u015far\u0131l\u0131 olma olas\u0131l\u0131\u011f\u0131n\u0131 hesaplar. \u00d6rne\u011fin:<\/p>\n<ul>\n<li>Bitkinin don tolerans\u0131, b\u00f6lgenin ortalama son don tarihinden sonraki don riski ile kar\u015f\u0131la\u015ft\u0131r\u0131l\u0131r.<\/li>\n<li>Bitkinin b\u00fcy\u00fcme s\u0131cakl\u0131\u011f\u0131 aral\u0131\u011f\u0131, b\u00f6lgenin mevsimlik ortalama s\u0131cakl\u0131k e\u011frileriyle \u00f6rt\u00fc\u015ft\u00fcr\u00fcl\u00fcr.<\/li>\n<li>Bitkinin su ihtiyac\u0131, b\u00f6lgenin ortalama ya\u011f\u0131\u015f miktar\u0131 ve potansiyel buharla\u015fma oran\u0131 ile de\u011ferlendirilir.<\/li>\n<\/ul>\n<p>Bu e\u015fle\u015ftirme sonucunda, her bitki i\u00e7in bir \"uygunluk puan\u0131\" hesaplan\u0131r ve kullan\u0131c\u0131ya en uygun bitkiler listelenir.<\/p>\n<h4>Ekim\/Hasat Takvimi Algoritmas\u0131<\/h4>\n<p>Bitki uygunlu\u011fu belirlendikten sonra, her bitki i\u00e7in en uygun ekim ve hasat tarihlerini \u00f6neren bir takvim algoritmas\u0131 devreye girer. Bu algoritma, bitkinin \u00e7imlenme ve b\u00fcy\u00fcme s\u00fcrelerini, b\u00f6lgenin ortalama son don tarihini, beklenen ilk don tarihini ve mevsimlik s\u0131cakl\u0131k de\u011fi\u015fimlerini dikkate al\u0131r. \u00d6rne\u011fin, e\u011fer bir bitki don riskinden sonra ekilmeli ve belirli bir s\u0131cakl\u0131k aral\u0131\u011f\u0131nda b\u00fcy\u00fcmeli ise, algoritma bu ko\u015fullar\u0131 sa\u011flayan en erken ve en ge\u00e7 ekim tarihlerini belirler.<\/p>\n<p>Basit bir algoritma mant\u0131\u011f\u0131:<\/p>\n<pre><code class=\"language-javascript\">\nfunction calculatePlantingWindow(plant, climateData) {\n  const { minTemp, maxTemp, frostSensitive } = plant;\n  const { avgLastFrostDate, avgFirstFrostDate, dailyTemps } = climateData;\n\n  let earliestPlantDate = avgLastFrostDate; \/\/ Ba\u015flang\u0131\u00e7ta son don tarihi sonras\u0131\n  \n  \/\/ E\u011fer bitki dona duyarl\u0131ysa, son don tarihinden sonraki g\u00fcvenli bir tarihi bul\n  if (frostSensitive) {\n    \/\/ G\u00fcvenli bir don olmayan d\u00f6nem bul\n    \/\/ Bu k\u0131s\u0131m daha karma\u015f\u0131k bir mant\u0131k gerektirebilir (\u00f6rne\u011fin, 5 y\u0131ll\u0131k veriye bakma)\n  }\n\n  \/\/ Minimum s\u0131cakl\u0131k gereksinimini kar\u015f\u0131layan ilk tarihi bul\n  for (let i = 0; i < dailyTemps.length; i++) {\n    if (dailyTemps[i].date > earliestPlantDate && dailyTemps[i].avgTemp >= minTemp) {\n      earliestPlantDate = dailyTemps[i].date;\n      break;\n    }\n  }\n\n  \/\/ Hasat s\u00fcresini ve ilk don tarihini dikkate alarak son ekim tarihini belirle\n  const latestPlantDate = new Date(avgFirstFrostDate);\n  latestPlantDate.setDate(latestPlantDate.getDate() - plant.daysToHarvest); \/\/ Hasat s\u00fcresini \u00e7\u0131kar\n\n  return { earliest: earliestPlantDate, latest: latestPlantDate };\n}\n<\/pre>\n<p><\/code><\/p>\n<h4>Risk Analizi ve \u00d6neriler<\/h4>\n<p>Algoritma sadece uygunluk ve takvim sunmakla kalmaz, ayn\u0131 zamanda potansiyel riskleri de de\u011ferlendirir. \u00d6rne\u011fin, belirli bir ekim tarihi i\u00e7in beklenenden daha so\u011fuk bir hava dalgas\u0131 veya a\u015f\u0131r\u0131 s\u0131cak riski varsa, uygulama kullan\u0131c\u0131y\u0131 uyar\u0131r ve alternatif ekim tarihleri veya bitki koruma \u00f6nlemleri \u00f6nerebilir. Bu, bah\u00e7\u0131vanlar\u0131n olas\u0131 felaketlere kar\u015f\u0131 daha haz\u0131rl\u0131kl\u0131 olmalar\u0131n\u0131 sa\u011flar.<\/p>\n<h3>Kullan\u0131c\u0131 Deneyimi ve Aray\u00fcz Tasar\u0131m\u0131<\/h3>\n<p>Teknik olarak ne kadar geli\u015fmi\u015f olursa olsun, bir uygulaman\u0131n ba\u015far\u0131s\u0131 b\u00fcy\u00fck \u00f6l\u00e7\u00fcde kullan\u0131c\u0131 deneyimine (UX) ve kullan\u0131c\u0131 aray\u00fcz\u00fcne (UI) ba\u011fl\u0131d\u0131r. Solo bir geli\u015ftirici olarak, bu alana da \u00f6zel \u00f6nem verdim.<\/p>\n<h4>Kullan\u0131c\u0131 Odakl\u0131 Tasar\u0131m Yakla\u015f\u0131m\u0131<\/h4>\n<p>Tasar\u0131m s\u00fcrecine ba\u015flamadan \u00f6nce potansiyel kullan\u0131c\u0131larla (amat\u00f6r bah\u00e7\u0131vanlar) g\u00f6r\u00fc\u015ft\u00fcm ve onlar\u0131n ihtiya\u00e7lar\u0131n\u0131, beklentilerini ve mevcut zorluklar\u0131n\u0131 anlamaya \u00e7al\u0131\u015ft\u0131m. Bu geri bildirimler, uygulaman\u0131n temel \u00f6zelliklerini ve ak\u0131\u015f\u0131n\u0131 \u015fekillendirmemde kilit rol oynad\u0131. Amac\u0131m, teknik karma\u015f\u0131kl\u0131\u011f\u0131 arka planda tutarak, kullan\u0131c\u0131ya sezgisel ve keyifli bir deneyim sunmakt\u0131.<\/p>\n<h4>Harita Entegrasyonu ve Konum Se\u00e7imi<\/h4>\n<p>Kullan\u0131c\u0131lar\u0131n bah\u00e7e konumlar\u0131n\u0131 kolayca belirleyebilmeleri i\u00e7in <a href=\"https:\/\/leafletjs.com\/\">Leaflet.js<\/a> k\u00fct\u00fcphanesini kullanarak interaktif bir harita entegrasyonu yapt\u0131m. Kullan\u0131c\u0131lar, harita \u00fczerinde do\u011frudan konumlar\u0131n\u0131 i\u015faretleyebilir veya adreslerini girerek otomatik olarak enlem ve boylam bilgilerini alabilirler. Bu, iklim verilerinin do\u011fru bir \u015fekilde \u00e7ekilmesi i\u00e7in kritik bir ad\u0131md\u0131r ve kullan\u0131c\u0131ya ki\u015fiselle\u015ftirilmi\u015f bir ba\u015flang\u0131\u00e7 noktas\u0131 sunar.<\/p>\n<h4>Sezgisel Planlama Aray\u00fcz\u00fc<\/h4>\n<p>Bah\u00e7e planlama s\u00fcreci, s\u00fcr\u00fckle-b\u0131rak (drag-and-drop) aray\u00fcz\u00fc ile m\u00fcmk\u00fcn oldu\u011funca basit hale getirildi. Kullan\u0131c\u0131lar, \u00f6nerilen bitkiler listesinden se\u00e7im yaparak bunlar\u0131 sanal bah\u00e7e alanlar\u0131na yerle\u015ftirebilirler. Her bitki i\u00e7in ekim derinli\u011fi, s\u0131ra aral\u0131\u011f\u0131 gibi bilgiler otomatik olarak g\u00f6sterilir ve kullan\u0131c\u0131ya g\u00f6rsel bir rehberlik sa\u011flan\u0131r. Ayr\u0131ca, farkl\u0131 ekim b\u00f6lgeleri veya yataklar olu\u015fturma imkan\u0131 da sunuldu.<\/p>\n<h4>G\u00f6rselle\u015ftirme ve Raporlama<\/h4>\n<p>Kullan\u0131c\u0131lara sadece \u00f6neriler sunmakla kalmay\u0131p, ayn\u0131 zamanda planlar\u0131n\u0131n g\u00f6rsel bir \u00f6zetini ve detayl\u0131 raporlar\u0131n\u0131 da sa\u011flamak \u00f6nemlidir. Uygulama, kullan\u0131c\u0131n\u0131n bah\u00e7e d\u00fczenini g\u00f6rsel olarak sunar ve her bitki i\u00e7in \u00f6zel bir takvim g\u00f6r\u00fcn\u00fcm\u00fc olu\u015fturur. Bu takvimde, ekim, sulama, g\u00fcbreleme ve hasat tarihleri renk kodlar\u0131yla belirtilir. Ayr\u0131ca, se\u00e7ilen bitkilerin iklim verileriyle nas\u0131l uyum sa\u011flad\u0131\u011f\u0131na dair \u00f6zet raporlar da sunulur, bu da kullan\u0131c\u0131lar\u0131n daha bilin\u00e7li kararlar almas\u0131na yard\u0131mc\u0131 olur.<\/p>\n<p>\u00d6rnek bir takvim listesi:<\/p>\n<table border=\"1\">\n<thead>\n<tr>\n<th>Bitki Ad\u0131<\/th>\n<th>Ekim Tarihi<\/th>\n<th>Beklenen Hasat<\/th>\n<th>Risk Durumu<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>Domates (\u00c7eri)<\/td>\n<td>15 May\u0131s<\/td>\n<td>15 Temmuz - 15 Eyl\u00fcl<\/td>\n<td>D\u00fc\u015f\u00fck (Ge\u00e7 don riski ge\u00e7ti)<\/td>\n<\/tr>\n<tr>\n<td>Marul (K\u0131v\u0131rc\u0131k)<\/td>\n<td>1 Nisan<\/td>\n<td>1 May\u0131s - 1 Haziran<\/td>\n<td>Orta (Erken s\u0131cak dalgas\u0131 riski)<\/td>\n<\/tr>\n<tr>\n<td>Salatal\u0131k<\/td>\n<td>20 May\u0131s<\/td>\n<td>20 Temmuz - 20 A\u011fustos<\/td>\n<td>D\u00fc\u015f\u00fck<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h3>Geli\u015ftirme S\u00fcreci ve Kar\u015f\u0131la\u015f\u0131lan Zorluklar<\/h3>\n<p>Tek ki\u015filik bir geli\u015ftirme projesi, esneklik ve h\u0131zl\u0131 karar alma avantajlar\u0131 sunsa da, beraberinde bir\u00e7ok zorlu\u011fu da getirir. Bu b\u00f6l\u00fcmde, projenin geli\u015ftirme a\u015famas\u0131nda kar\u015f\u0131la\u015ft\u0131\u011f\u0131m temel zorluklar\u0131 ve bunlar\u0131 nas\u0131l a\u015ft\u0131\u011f\u0131m\u0131 anlataca\u011f\u0131m.<\/p>\n<h4>Zaman Y\u00f6netimi ve Tek Ba\u015f\u0131na Geli\u015ftirmenin Getirdikleri<\/h4>\n<p>Projenin t\u00fcm a\u015famalar\u0131n\u0131 (ara\u015ft\u0131rma, tasar\u0131m, geli\u015ftirme, test, da\u011f\u0131t\u0131m) tek ba\u015f\u0131ma y\u00fcr\u00fctmek, etkili zaman y\u00f6netimi gerektirdi. Genellikle bir geli\u015ftirme ekibinin \u00fcstlendi\u011fi rolleri tek ba\u015f\u0131ma \u00fcstlenmek zorunda kald\u0131m. Bu durum, \u00f6zellikle motivasyonu y\u00fcksek tutmak ve ilerlemeyi s\u00fcrd\u00fcrmek a\u00e7\u0131s\u0131ndan zorlay\u0131c\u0131 olabiliyordu. Bu zorlu\u011fun \u00fcstesinden gelmek i\u00e7in, g\u00f6revleri k\u00fc\u00e7\u00fck, y\u00f6netilebilir par\u00e7alara ay\u0131rd\u0131m ve her g\u00fcn belirli bir ilerleme kaydetmeye odakland\u0131m. Ayr\u0131ca, d\u00fczenli molalar vererek ve hobilerime zaman ay\u0131rarak t\u00fckenmi\u015fli\u011fi \u00f6nlemeye \u00e7al\u0131\u015ft\u0131m.<\/p>\n<h4>Veri Entegrasyonundaki Karma\u015f\u0131kl\u0131klar<\/h4>\n<p>Farkl\u0131 iklim veri API'lerinden gelen verileri tutarl\u0131 bir formatta i\u015flemek ve veritaban\u0131na kaydetmek, bekledi\u011fimden daha karma\u015f\u0131k bir s\u00fcre\u00e7ti. API'lerin farkl\u0131 veri birimleri, zaman dilimleri ve veri eksiklikleri, veri temizleme ve normalle\u015ftirme s\u00fcre\u00e7lerini uzatt\u0131. Bu sorunu \u00e7\u00f6zmek i\u00e7in, her API'den gelen veriyi tek bir standart formata d\u00f6n\u00fc\u015ft\u00fcren ara katman yaz\u0131l\u0131mlar\u0131 (middleware) geli\u015ftirdim. Ayr\u0131ca, eksik verileri doldurmak i\u00e7in basit interpolasyon (i\u00e7 de\u011fer tahmini) teknikleri ve ge\u00e7mi\u015f ortalamalar\u0131 kulland\u0131m.<\/p>\n<h4>Performans Optimizasyonu<\/h4>\n<p>\u00d6zellikle uzun y\u0131llara ait iklim verilerini analiz ederken ve bitki algoritmalar\u0131n\u0131 \u00e7al\u0131\u015ft\u0131r\u0131rken performans sorunlar\u0131 ya\u015fad\u0131m. B\u00fcy\u00fck veri setleriyle \u00e7al\u0131\u015fmak, sorgu s\u00fcrelerini ve i\u015flem g\u00fcc\u00fc ihtiyac\u0131n\u0131 art\u0131r\u0131yordu. Bu sorunu a\u015fmak i\u00e7in:<\/p>\n<ul>\n<li>Veritaban\u0131 indekslerini optimize ettim.<\/li>\n<li>S\u0131k kullan\u0131lan iklim analizi sonu\u00e7lar\u0131n\u0131 \u00f6nbelle\u011fe ald\u0131m (caching).<\/li>\n<li>Backend taraf\u0131nda asenkron i\u015flemleri ve paralel i\u015flemeyi daha etkin kulland\u0131m.<\/li>\n<li>Frontend'de React'\u0131n performans optimizasyon tekniklerini (memoization, lazy loading) uygulad\u0131m.<\/li>\n<\/ul>\n<h4>Test ve Hata Ay\u0131klama S\u00fcre\u00e7leri<\/h4>\n<p>Tek ba\u015f\u0131na geli\u015ftirme yaparken, kapsaml\u0131 testler yazmak ve hatalar\u0131 ay\u0131klamak i\u00e7in ek bir \u00e7aba sarf etmek gerekiyor. Her yeni \u00f6zellik ekledi\u011fimde, mevcut i\u015flevselli\u011fin bozulmad\u0131\u011f\u0131ndan emin olmak i\u00e7in hem birim testleri (unit tests) hem de entegrasyon testleri (integration tests) yazd\u0131m. Ayr\u0131ca, kullan\u0131c\u0131 aray\u00fcz\u00fcndeki hatalar\u0131 yakalamak i\u00e7in manuel testler ve taray\u0131c\u0131 geli\u015ftirici ara\u00e7lar\u0131n\u0131 yo\u011fun bir \u015fekilde kulland\u0131m. Hata raporlama ara\u00e7lar\u0131 (\u00f6rne\u011fin, Sentry) entegre ederek, kullan\u0131c\u0131lar\u0131n kar\u015f\u0131la\u015ft\u0131\u011f\u0131 sorunlar\u0131 ger\u00e7ek zamanl\u0131 olarak izleyebildim.<\/p>\n<h3>Gelecek Planlar\u0131 ve Sonu\u00e7<\/h3>\n<p>Bu proje, tek ki\u015filik bir geli\u015ftirici olarak hem teknik becerilerimi geli\u015ftirmem hem de ger\u00e7ek d\u00fcnya sorunlar\u0131na \u00e7\u00f6z\u00fcm \u00fcretmem a\u00e7\u0131s\u0131ndan benim i\u00e7in inan\u0131lmaz bir \u00f6\u011frenme deneyimi oldu. Ancak geli\u015ftirme s\u00fcreci hi\u00e7bir zaman bitmez; her zaman yeni fikirler ve iyile\u015ftirmeler mevcuttur.<\/p>\n<h4>Ek \u00d6zellikler ve Geli\u015ftirmeler<\/h4>\n<p>Gelecekte uygulamaya eklemeyi d\u00fc\u015f\u00fcnd\u00fc\u011f\u00fcm baz\u0131 \u00f6zellikler \u015funlard\u0131r:<\/p>\n<ul>\n<li><strong>Bitki Hastal\u0131klar\u0131 ve Zararl\u0131lar\u0131 Tahmini:<\/strong> \u0130klim verileriyle (nem, s\u0131cakl\u0131k) bitki hastal\u0131klar\u0131n\u0131n yay\u0131lma riskini tahmin eden ve \u00f6nleyici tedbirler \u00f6neren bir mod\u00fcl.<\/li>\n<li><strong>Toprak Analizi Entegrasyonu:<\/strong> Kullan\u0131c\u0131lar\u0131n toprak testi sonu\u00e7lar\u0131n\u0131 girerek, topra\u011f\u0131n pH de\u011feri, besin i\u00e7eri\u011fi gibi parametrelere g\u00f6re bitki ve g\u00fcbre \u00f6nerileri alabilmesi.<\/li>\n<li><strong>Su Y\u00f6netimi Optimizasyonu:<\/strong> Ya\u011f\u0131\u015f miktar\u0131, bitki ihtiyac\u0131 ve buharla\u015fma oran\u0131na g\u00f6re ak\u0131ll\u0131 sulama takvimleri.<\/li>\n<li><strong>Mobil Uygulama:<\/strong> Daha eri\u015filebilir bir deneyim i\u00e7in iOS ve Android platformlar\u0131na \u00f6zel mobil uygulamalar.<\/li>\n<li><strong>Kullan\u0131c\u0131 Toplulu\u011fu:<\/strong> Bah\u00e7\u0131vanlar\u0131n birbirleriyle bilgi ve deneyimlerini payla\u015fabilece\u011fi bir forum veya topluluk \u00f6zelli\u011fi.<\/li>\n<\/ul>\n<h4>Topluluk Kat\u0131l\u0131m\u0131 ve A\u00e7\u0131k Kaynak Potansiyeli<\/h4>\n<p>Bu projenin a\u00e7\u0131k kaynakl\u0131 hale getirilmesi potansiyelini de de\u011ferlendiriyorum. B\u00f6ylece di\u011fer geli\u015ftiriciler ve bah\u00e7\u0131vanlar da projeye katk\u0131da bulunabilir, yeni \u00f6zellikler ekleyebilir ve daha geni\u015f bir kitleye ula\u015fabiliriz. A\u00e7\u0131k kaynak, projenin s\u00fcrd\u00fcr\u00fclebilirli\u011fini art\u0131r\u0131rken, bilgi payla\u015f\u0131m\u0131n\u0131 ve i\u015f birli\u011fini de te\u015fvik edecektir.<\/p>\n<h4>Elde Edilen Dersler ve Genel De\u011ferlendirme<\/h4>\n<p>Bu projeden \u00f6\u011frendi\u011fim en \u00f6nemli derslerden biri, karma\u015f\u0131k bir problemi k\u00fc\u00e7\u00fck, y\u00f6netilebilir par\u00e7alara ay\u0131rman\u0131n ve ad\u0131m ad\u0131m ilerlemenin \u00f6nemidir. Ayr\u0131ca, kullan\u0131c\u0131 geri bildirimlerini erken a\u015famalarda almak ve tasar\u0131m kararlar\u0131n\u0131 bu geri bildirimlere g\u00f6re \u015fekillendirmek, uygulaman\u0131n ba\u015far\u0131s\u0131 i\u00e7in kritik rol oynad\u0131. Tek ba\u015f\u0131na geli\u015ftirme zorlu olsa da, bir fikri ba\u015ftan sona hayata ge\u00e7irmenin verdi\u011fi tatmin paha bi\u00e7ilemez. \u0130klim duyarl\u0131 bah\u00e7e planlay\u0131c\u0131s\u0131, sadece bir yaz\u0131l\u0131m projesi olman\u0131n \u00f6tesinde, de\u011fi\u015fen d\u00fcnyam\u0131zda do\u011fa ile daha uyumlu ya\u015fama \u00e7abam\u0131z\u0131n k\u00fc\u00e7\u00fck bir yans\u0131mas\u0131d\u0131r.<\/p>\n<h3>SSS (S\u0131k Sorulan Sorular)<\/h3>\n<h4>Bu bah\u00e7e planlay\u0131c\u0131 hangi co\u011frafi b\u00f6lgeler i\u00e7in ge\u00e7erlidir?<\/h4>\n<p>Uygulama, k\u00fcresel iklim veri API'lerini kulland\u0131\u011f\u0131 i\u00e7in prensipte d\u00fcnya genelindeki t\u00fcm co\u011frafi b\u00f6lgeler i\u00e7in ge\u00e7erlidir. Ancak, veri yo\u011funlu\u011fu ve do\u011frulu\u011fu, belirli bir b\u00f6lgedeki hava istasyonlar\u0131n\u0131n say\u0131s\u0131na ve veri kalitesine ba\u011fl\u0131 olarak de\u011fi\u015febilir. T\u00fcrkiye \u00f6zelinde de kullan\u0131labilir.<\/p>\n<h4>Uygulama hangi iklim veri kaynaklar\u0131n\u0131 kullan\u0131yor?<\/h4>\n<p>Ba\u015fl\u0131ca NOAA Climate Data Online (CDO) API ve Open-Meteo gibi k\u00fcresel hava durumu ve iklim veri API'lerini kullanmaktad\u0131r. Gelecekte b\u00f6lgesel ve ulusal meteoroloji kurumlar\u0131n\u0131n API'leri de entegre edilebilir.<\/p>\n<h4>Uygulama mobil uyumlu mu?<\/h4>\n<p>Mevcut web uygulamas\u0131 responsive bir tasar\u0131ma sahiptir, yani mobil cihazlarda da kullan\u0131labilir. Ancak, gelecekte daha optimize edilmi\u015f bir kullan\u0131c\u0131 deneyimi i\u00e7in iOS ve Android i\u00e7in \u00f6zel mobil uygulamalar geli\u015ftirmeyi planl\u0131yorum.<\/p>\n<h4>Bu proje a\u00e7\u0131k kaynak m\u0131?<\/h4>\n<p>\u015eu an i\u00e7in \u00f6zel bir projedir. Ancak, topluluk kat\u0131l\u0131m\u0131n\u0131 te\u015fvik etmek ve projenin geli\u015fimini h\u0131zland\u0131rmak amac\u0131yla gelecekte a\u00e7\u0131k kaynakl\u0131 hale getirme potansiyelini de\u011ferlendiriyorum.<\/p>\n<h4>Di\u011fer bah\u00e7e planlama uygulamalar\u0131ndan fark\u0131 nedir?<\/h4>\n<p>En temel fark\u0131, statik bilgiler yerine dinamik ve konum bazl\u0131 iklim verilerini kullanarak ki\u015fiselle\u015ftirilmi\u015f ekim\/hasat takvimleri ve bitki \u00f6nerileri sunmas\u0131d\u0131r. Bu, de\u011fi\u015fen iklim ko\u015fullar\u0131na daha iyi adapte olabilen, daha s\u00fcrd\u00fcr\u00fclebilir bir bah\u00e7ecilik deneyimi sa\u011flar.<\/p>\n","protected":false},"excerpt":{"rendered":"K\u00fcresel \u0131s\u0131nma ve beraberindeki iklim de\u011fi\u015fiklikleri, mevsim normallerinin d\u0131\u015f\u0131na \u00e7\u0131kan hava olaylar\u0131n\u0131 giderek daha s\u0131k kar\u015f\u0131m\u0131za \u00e7\u0131kar\u0131y&#8230;","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"csco_page_header_type":"","csco_page_load_nextpost":"","csco_page_subscribe_form":"","csco_page_contact_form":"","footnotes":""},"categories":[1],"tags":[],"class_list":{"0":"post-37789","1":"post","2":"type-post","3":"status-publish","4":"format-standard","6":"category-genel","7":"cs-entry","8":"cs-video-wrap"},"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v20.5 (Yoast SEO v25.3.1) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Tek Ba\u015f\u0131ma \u0130klim Duyarl\u0131 Bir Bah\u00e7e Planlay\u0131c\u0131 Nas\u0131l Geli\u015ftirdim? - Kodlar\u0131n Gizemli D\u00fcnyas\u0131<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/fatihsoysal.com\/blog\/tek-basima-iklim-duyarli-bir-bahce-planlayici-nasil-gelistirdim\/\" \/>\n<meta property=\"og:locale\" content=\"tr_TR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Tek Ba\u015f\u0131ma \u0130klim Duyarl\u0131 Bir Bah\u00e7e Planlay\u0131c\u0131 Nas\u0131l Geli\u015ftirdim?\" \/>\n<meta property=\"og:description\" content=\"K\u00fcresel \u0131s\u0131nma ve beraberindeki iklim de\u011fi\u015fiklikleri, mevsim normallerinin d\u0131\u015f\u0131na \u00e7\u0131kan hava olaylar\u0131n\u0131 giderek daha s\u0131k kar\u015f\u0131m\u0131za \u00e7\u0131kar\u0131y...\" \/>\n<meta property=\"og:url\" content=\"https:\/\/fatihsoysal.com\/blog\/tek-basima-iklim-duyarli-bir-bahce-planlayici-nasil-gelistirdim\/\" \/>\n<meta property=\"og:site_name\" content=\"Kodlar\u0131n Gizemli D\u00fcnyas\u0131\" \/>\n<meta property=\"article:published_time\" content=\"2026-01-15T12:00:49+00:00\" \/>\n<meta name=\"author\" content=\"Fatih Soysal\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Yazan:\" \/>\n\t<meta name=\"twitter:data1\" content=\"Fatih Soysal\" \/>\n\t<meta name=\"twitter:label2\" content=\"Tahmini okuma s\u00fcresi\" \/>\n\t<meta name=\"twitter:data2\" content=\"17 dakika\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/tek-basima-iklim-duyarli-bir-bahce-planlayici-nasil-gelistirdim\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/tek-basima-iklim-duyarli-bir-bahce-planlayici-nasil-gelistirdim\/\"},\"author\":{\"name\":\"Fatih Soysal\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"headline\":\"Tek Ba\u015f\u0131ma \u0130klim Duyarl\u0131 Bir Bah\u00e7e Planlay\u0131c\u0131 Nas\u0131l Geli\u015ftirdim?\",\"datePublished\":\"2026-01-15T12:00:49+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/tek-basima-iklim-duyarli-bir-bahce-planlayici-nasil-gelistirdim\/\"},\"wordCount\":3205,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/tek-basima-iklim-duyarli-bir-bahce-planlayici-nasil-gelistirdim\/#respond\"]}],\"copyrightYear\":\"2026\",\"copyrightHolder\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/tek-basima-iklim-duyarli-bir-bahce-planlayici-nasil-gelistirdim\/\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/tek-basima-iklim-duyarli-bir-bahce-planlayici-nasil-gelistirdim\/\",\"name\":\"Tek Ba\u015f\u0131ma \u0130klim Duyarl\u0131 Bir Bah\u00e7e Planlay\u0131c\u0131 Nas\u0131l Geli\u015ftirdim? - Kodlar\u0131n Gizemli D\u00fcnyas\u0131\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#website\"},\"datePublished\":\"2026-01-15T12:00:49+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/tek-basima-iklim-duyarli-bir-bahce-planlayici-nasil-gelistirdim\/#breadcrumb\"},\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/tek-basima-iklim-duyarli-bir-bahce-planlayici-nasil-gelistirdim\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/tek-basima-iklim-duyarli-bir-bahce-planlayici-nasil-gelistirdim\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Anasayfa\",\"item\":\"https:\/\/fatihsoysal.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Tek Ba\u015f\u0131ma \u0130klim Duyarl\u0131 Bir Bah\u00e7e Planlay\u0131c\u0131 Nas\u0131l Geli\u015ftirdim?\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#website\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/\",\"name\":\"Fatihsoysal.com\",\"description\":\"Blog - Yaz\u0131l\u0131m D\u00fcnyas\u0131 Tecr\u00fcbelerim\",\"publisher\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/fatihsoysal.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"tr\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\",\"name\":\"Fatih Soysal\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"tr\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png\",\"contentUrl\":\"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png\",\"width\":512,\"height\":512,\"caption\":\"Fatih Soysal\"},\"logo\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/\"},\"description\":\"Kullan\u0131m ve kodlama m\u00fckemmeliyetini odak alan uygulamalar olu\u015fturma deneyimine sahip, profesyonel olarak 15+ y\u0131l \u00fczeri deneyime sahip bir yaz\u0131l\u0131m m\u00fchendisi.\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/author\/fatihsoysal\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Tek Ba\u015f\u0131ma \u0130klim Duyarl\u0131 Bir Bah\u00e7e Planlay\u0131c\u0131 Nas\u0131l Geli\u015ftirdim? - Kodlar\u0131n Gizemli D\u00fcnyas\u0131","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/fatihsoysal.com\/blog\/tek-basima-iklim-duyarli-bir-bahce-planlayici-nasil-gelistirdim\/","og_locale":"tr_TR","og_type":"article","og_title":"Tek Ba\u015f\u0131ma \u0130klim Duyarl\u0131 Bir Bah\u00e7e Planlay\u0131c\u0131 Nas\u0131l Geli\u015ftirdim?","og_description":"K\u00fcresel \u0131s\u0131nma ve beraberindeki iklim de\u011fi\u015fiklikleri, mevsim normallerinin d\u0131\u015f\u0131na \u00e7\u0131kan hava olaylar\u0131n\u0131 giderek daha s\u0131k kar\u015f\u0131m\u0131za \u00e7\u0131kar\u0131y...","og_url":"https:\/\/fatihsoysal.com\/blog\/tek-basima-iklim-duyarli-bir-bahce-planlayici-nasil-gelistirdim\/","og_site_name":"Kodlar\u0131n Gizemli D\u00fcnyas\u0131","article_published_time":"2026-01-15T12:00:49+00:00","author":"Fatih Soysal","twitter_card":"summary_large_image","twitter_misc":{"Yazan:":"Fatih Soysal","Tahmini okuma s\u00fcresi":"17 dakika"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/fatihsoysal.com\/blog\/tek-basima-iklim-duyarli-bir-bahce-planlayici-nasil-gelistirdim\/#article","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/tek-basima-iklim-duyarli-bir-bahce-planlayici-nasil-gelistirdim\/"},"author":{"name":"Fatih Soysal","@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"headline":"Tek Ba\u015f\u0131ma \u0130klim Duyarl\u0131 Bir Bah\u00e7e Planlay\u0131c\u0131 Nas\u0131l Geli\u015ftirdim?","datePublished":"2026-01-15T12:00:49+00:00","mainEntityOfPage":{"@id":"https:\/\/fatihsoysal.com\/blog\/tek-basima-iklim-duyarli-bir-bahce-planlayici-nasil-gelistirdim\/"},"wordCount":3205,"commentCount":0,"publisher":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"inLanguage":"tr","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/fatihsoysal.com\/blog\/tek-basima-iklim-duyarli-bir-bahce-planlayici-nasil-gelistirdim\/#respond"]}],"copyrightYear":"2026","copyrightHolder":{"@id":"https:\/\/fatihsoysal.com\/blog\/#organization"}},{"@type":"WebPage","@id":"https:\/\/fatihsoysal.com\/blog\/tek-basima-iklim-duyarli-bir-bahce-planlayici-nasil-gelistirdim\/","url":"https:\/\/fatihsoysal.com\/blog\/tek-basima-iklim-duyarli-bir-bahce-planlayici-nasil-gelistirdim\/","name":"Tek Ba\u015f\u0131ma \u0130klim Duyarl\u0131 Bir Bah\u00e7e Planlay\u0131c\u0131 Nas\u0131l Geli\u015ftirdim? - Kodlar\u0131n Gizemli D\u00fcnyas\u0131","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/#website"},"datePublished":"2026-01-15T12:00:49+00:00","breadcrumb":{"@id":"https:\/\/fatihsoysal.com\/blog\/tek-basima-iklim-duyarli-bir-bahce-planlayici-nasil-gelistirdim\/#breadcrumb"},"inLanguage":"tr","potentialAction":[{"@type":"ReadAction","target":["https:\/\/fatihsoysal.com\/blog\/tek-basima-iklim-duyarli-bir-bahce-planlayici-nasil-gelistirdim\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/fatihsoysal.com\/blog\/tek-basima-iklim-duyarli-bir-bahce-planlayici-nasil-gelistirdim\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Anasayfa","item":"https:\/\/fatihsoysal.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Tek Ba\u015f\u0131ma \u0130klim Duyarl\u0131 Bir Bah\u00e7e Planlay\u0131c\u0131 Nas\u0131l Geli\u015ftirdim?"}]},{"@type":"WebSite","@id":"https:\/\/fatihsoysal.com\/blog\/#website","url":"https:\/\/fatihsoysal.com\/blog\/","name":"Fatihsoysal.com","description":"Blog - Yaz\u0131l\u0131m D\u00fcnyas\u0131 Tecr\u00fcbelerim","publisher":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/fatihsoysal.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"tr"},{"@type":["Person","Organization"],"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1","name":"Fatih Soysal","image":{"@type":"ImageObject","inLanguage":"tr","@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png","contentUrl":"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png","width":512,"height":512,"caption":"Fatih Soysal"},"logo":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/"},"description":"Kullan\u0131m ve kodlama m\u00fckemmeliyetini odak alan uygulamalar olu\u015fturma deneyimine sahip, profesyonel olarak 15+ y\u0131l \u00fczeri deneyime sahip bir yaz\u0131l\u0131m m\u00fchendisi.","url":"https:\/\/fatihsoysal.com\/blog\/author\/fatihsoysal\/"}]}},"yoast_meta":{"yoast_wpseo_title":"","yoast_wpseo_metadesc":"","yoast_wpseo_canonical":""},"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/37789","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/comments?post=37789"}],"version-history":[{"count":0,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/37789\/revisions"}],"wp:attachment":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/media?parent=37789"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/categories?post=37789"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/tags?post=37789"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}