<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Gizem Yılmaz</title>
    <description>The latest articles on DEV Community by Gizem Yılmaz (@00gizem00).</description>
    <link>https://dev.to/00gizem00</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F1337727%2F7b7d9309-cc17-4a94-b01a-ae2776d4cdce.jpeg</url>
      <title>DEV Community: Gizem Yılmaz</title>
      <link>https://dev.to/00gizem00</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/00gizem00"/>
    <language>en</language>
    <item>
      <title>ExcelPy: From Tkinter Prototype to AI-Assisted Workbook Review</title>
      <dc:creator>Gizem Yılmaz</dc:creator>
      <pubDate>Sat, 06 Jun 2026 13:01:16 +0000</pubDate>
      <link>https://dev.to/00gizem00/excelpy-from-tkinter-prototype-to-ai-assisted-workbook-review-12ed</link>
      <guid>https://dev.to/00gizem00/excelpy-from-tkinter-prototype-to-ai-assisted-workbook-review-12ed</guid>
      <description>&lt;p&gt;&lt;em&gt;This is a submission for the &lt;a href="https://dev.to/challenges/github-2026-05-21"&gt;GitHub Finish-Up-A-Thon Challenge&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  What I Built
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fhe0ti94nv8zdwj2j3xer.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fhe0ti94nv8zdwj2j3xer.png" alt=" " width="800" height="450"&gt;&lt;/a&gt;&lt;br&gt;
I rebuilt &lt;strong&gt;ExcelPy&lt;/strong&gt; from an unfinished desktop stock-comparison prototype into a working spreadsheet QA workspace for teams that need to compare an older, trusted workbook against a newer one before publishing pricing, catalog, or inventory changes.&lt;/p&gt;

&lt;p&gt;The original was a Tkinter script with file pickers. It could select two &lt;code&gt;.xlsx&lt;/code&gt; files, but the actual comparison logic, validation, mismatch handling, and reporting layer were all still placeholders.&lt;/p&gt;

&lt;p&gt;The current app is a Next.js 16 + TypeScript workflow built around a clear path: &lt;strong&gt;upload → map → review → report.&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Upload &amp;amp; validation&lt;/strong&gt; — &lt;code&gt;.xlsx&lt;/code&gt; upload from the browser (or one-click demo workbooks), with server-side parsing, sheet selection, and file/size/type/row/column checks.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Schema-drift resolution before diffing&lt;/strong&gt; — pick a key column (with warnings for blank or duplicate keys), auto-match identical headers, get suggested renames for drifted columns, or map them manually when baseline and current don't line up.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Deterministic diff &amp;amp; review&lt;/strong&gt; — added/removed/changed/unchanged records with summary cards and a filterable, searchable table, plus a mismatch summary covering renamed columns, row anomalies, layout drift, and cell-style changes.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Optional AI price review&lt;/strong&gt; — explains &lt;em&gt;only&lt;/em&gt; verified comparison data, flags price-like changes, recommends next checks, and falls back to a deterministic report when AI is unavailable.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Built to be public-safe&lt;/strong&gt; — content-type checks, body-size limits, per-route rate limiting, AI timeout protection, shared Zod contracts keeping UI and API aligned, and Vitest coverage on the comparison/reporting services and route boundaries.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The real thing I finished wasn't a new UI; it was a set of explicit rules. Choose the trusted baseline, select the newer workbook, resolve schema drift &lt;em&gt;before&lt;/em&gt; trusting the diff, review the deterministic changes, and only then generate a narrative report. That's the difference between "compare two Excel files" and a product you'd let near real pricing data.&lt;/p&gt;

&lt;h2&gt;
  
  
  Demo
&lt;/h2&gt;

&lt;p&gt;Final Demo:&lt;a href="https://excel-py.vercel.app/" rel="noopener noreferrer"&gt;https://excel-py.vercel.app/&lt;/a&gt;&lt;br&gt;
Github: &lt;a href="https://github.com/00Gizem00/ExcelPy" rel="noopener noreferrer"&gt;https://github.com/00Gizem00/ExcelPy&lt;/a&gt;&lt;br&gt;
Video Walkthrough: &lt;a href="https://youtu.be/8EJiguMn2t4" rel="noopener noreferrer"&gt;https://youtu.be/8EJiguMn2t4&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  The Comeback Story
&lt;/h2&gt;

&lt;p&gt;ExcelPy started as a small Tkinter desktop prototype with a real idea behind it: compare two stock Excel files and show what changed. But the project had stopped at the file-picker stage. The user could choose two &lt;code&gt;.xlsx&lt;/code&gt; files, yet the comparison logic, validation rules, difference output, and reporting flow were still missing.&lt;/p&gt;

&lt;p&gt;For the comeback, I kept the original idea but rebuilt the product around the parts that make spreadsheet comparison trustworthy. I moved the workflow into a Next.js 16 app, added server-side workbook parsing, defined clear diff states for added, removed, changed, and unchanged rows, and introduced validation that blocks structurally unsafe files while surfacing blank and duplicate row keys as data-quality warnings.&lt;/p&gt;

&lt;p&gt;I also expanded the product beyond a simple diff. The new version detects schema drift, suggests renamed column matches, supports manual column mapping, surfaces row and style mismatches, and gives users a focused upload → map → review → report flow. The AI layer was added carefully: it does not decide what changed. It only turns verified comparison data into an operational summary, with a deterministic fallback when AI is unavailable.&lt;/p&gt;

&lt;p&gt;The project went from an unfinished local script into a working spreadsheet QA workspace with typed contracts, API routes, tests, sample workbooks, security guardrails, and a submission package that preserves the full before-and-after story.&lt;/p&gt;

&lt;h2&gt;
  
  
  My Experience with GitHub Copilot
&lt;/h2&gt;

&lt;p&gt;GitHub Copilot wasn't autocomplete for me on this project; it's what turned a half-finished &lt;code&gt;main.py&lt;/code&gt; Excel-comparison script into a real Next.js SaaS app. A few moments where it actually moved the needle:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;It gave me a path, not just code.&lt;/strong&gt; I started with a rough script and one goal: "make this real." I asked Copilot to plan the rebuild around Next.js 16 + Tailwind with an AI-powered report, and it produced an actual phased plan (Phase 1 → Phase 7) I could execute step by step. Then I drove the build one phase at a time — "start with Phase 1," "okay, Phase 3" — and it held the context between phases: the data flow, the file structure, the naming. I never had to re-explain the project. That continuity is the part you don't get from a search-and-paste workflow.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;"fix" one word.&lt;/strong&gt; Early on, a generated file broke the build. Instead of writing a careful bug report, I literally typed &lt;code&gt;fix&lt;/code&gt;. Copilot traced it, patched it, and then, without me asking, pointed out that the broken artifact shouldn't be in version control at all and helped me add it to &lt;code&gt;.gitignore&lt;/code&gt;. It didn't just fix the symptom; it stopped me from committing the mess in the first place.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;It found the edge cases I couldn't name.&lt;/strong&gt; The whole app compares two spreadsheets, and I knew rows weren't lining up, but I couldn't say why. I just said: "handle all the cases where the files don't match styles, rows, names." It came back with a plan covering mismatched column names, missing rows, and formatting differences, the exact things that crash on a real user's messy file. I didn't have to enumerate the failure modes; it did.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;It pushed back when I was wrong.&lt;/strong&gt; At one point, I asked, "Is this even SaaS?" and instead of just agreeing, it helped me rethink the architecture (moving to a managed backend) so what I was building actually matched what I claimed to be building. Those reframes saved me from shipping something half-right.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;A security review I didn't know I needed.&lt;/strong&gt; I asked it to check the project "as a cybersecurity dev," and it reviewed the real code and flagged real issues, not generic advice. Later, realizing a public SaaS should never leak infrastructure or service names to a regular user, I had it sweep the entire project and the README to strip them out. It caught spots I'd have missed before pushing to a public repo.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Design direction, not just implementation.&lt;/strong&gt; The UI was my weak point. It helped me redesign around a stepper-style multi-step flow, a card-style dropzone, and a minimal cream-white theme with Framer Motion, even researching current small-SaaS design trends so the redesign was grounded in something real instead of my gut feeling.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The first run just worked.&lt;/strong&gt; I said, "fire up whatever services are necessary and run the app," expecting to lose an hour wiring up the backend and chasing missing config. Instead, it brought the services up, got it running, and wrote the run instructions straight into the README. The evening I'd budgeted for "why won't this start locally" simply didn't happen.&lt;/p&gt;

&lt;p&gt;The pattern across all of it: I described what I wanted — often vaguely and Copilot filled in the &lt;em&gt;how&lt;/em&gt;: the plan, the structure, the edge cases, the security gaps, the design language, all while keeping the whole project in its head the entire time.&lt;/p&gt;

&lt;h2&gt;
  
  
  Tooling Note
&lt;/h2&gt;

&lt;p&gt;I also tested different AI coding assistants while finishing this project, and the experience taught me something important: the model matters, but the way you direct it matters even more.&lt;/p&gt;

&lt;p&gt;Some tools were useful but often produced familiar or generic answers unless I pushed them with very specific product, UX, and edge-case constraints. Gemini was especially helpful for exploring interface directions when guided clearly, although I later refined parts of the UI again during implementation. Claude Sonnet was useful for reasoning and cleanup, but I had to keep pushing it away from safe, predictable answers.&lt;/p&gt;

&lt;p&gt;The strongest coding experience for this rebuild came from GitHub Copilot, running its GPT-5.3-Codex and GPT-5.4 models. It handled the project context, implementation steps, refactors, and debugging with much less friction. GitHub Copilot’s auto mode was also a major part of the experience: being able to approve changes quickly and let it move through files almost hands-free made the rebuild feel much closer to pair programming than copy-pasting snippets.&lt;/p&gt;

&lt;p&gt;There are trade-offs. Planning modes are great for architecture and sequencing, but sometimes limiting when you want to immediately move from plan to code. Still, that separation helped me think more clearly before implementation.&lt;/p&gt;

&lt;p&gt;The main lesson: AI coding tools are not magic buttons. They become powerful when you give them constraints, force them to reason about edge cases, and keep ownership of the product decisions yourself.&lt;/p&gt;

</description>
      <category>devchallenge</category>
      <category>githubchallenge</category>
    </item>
    <item>
      <title>NESTJS in minutes</title>
      <dc:creator>Gizem Yılmaz</dc:creator>
      <pubDate>Wed, 07 May 2025 15:21:57 +0000</pubDate>
      <link>https://dev.to/00gizem00/nestjs-in-minutes-2gdi</link>
      <guid>https://dev.to/00gizem00/nestjs-in-minutes-2gdi</guid>
      <description>&lt;h2&gt;
  
  
  NestJS Temel Kavramları
&lt;/h2&gt;

&lt;p&gt;NestJS, Node.js tabanlı, ölçeklenebilir ve test edilebilir sunucu taraflı uygulamalar geliştirmek için modern bir framework'tür. İşte öne çıkan 10 temel kavram:&lt;/p&gt;




&lt;h3&gt;
  
  
  1. Nest CLI (Command Line Interface - Komut Satırı Arayüzü)
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Nedir?&lt;/strong&gt;&lt;br&gt;
Nest CLI, projeleri hızlıca başlatmak ve modül, controller, service gibi yapıları otomatik oluşturmak için kullanılır.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Örnek Kullanım:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;nest new proje-adi
nest generate module kullanicilar
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h3&gt;
  
  
  2. Decorator'lar (Dekoratörler)
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Nedir?&lt;/strong&gt;&lt;br&gt;
Sınıflara ve metodlara ek işlevsellik kazandırmak için kullanılan özel fonksiyonlardır.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Örnek Kullanım:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight typescript"&gt;&lt;code&gt;&lt;span class="p"&gt;@&lt;/span&gt;&lt;span class="nd"&gt;Controller&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;urunler&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="k"&gt;export&lt;/span&gt; &lt;span class="kd"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;UrunlerController&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="p"&gt;@&lt;/span&gt;&lt;span class="nd"&gt;Get&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
  &lt;span class="nf"&gt;tumUrunleriGetir&lt;/span&gt;&lt;span class="p"&gt;():&lt;/span&gt; &lt;span class="kr"&gt;string&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;Tüm ürünler listesi&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h3&gt;
  
  
  3. Modüller (Modules)
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Nedir?&lt;/strong&gt;&lt;br&gt;
Uygulamanın parçalarını düzenlemek için kullanılır. Her modül ilgili controller ve service'leri içerir.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Örnek:&lt;/strong&gt;&lt;br&gt;
&lt;code&gt;UrunlerModule&lt;/code&gt;, &lt;code&gt;SiparislerModule&lt;/code&gt;, &lt;code&gt;KullanicilarModule&lt;/code&gt; gibi.&lt;/p&gt;


&lt;h3&gt;
  
  
  4. Controller'lar (Kontrolcüler)
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Nedir?&lt;/strong&gt;&lt;br&gt;
Gelen HTTP isteklerini alır ve yanıt döner. Uygulamanın dış dünya ile bağlantı noktasıdır.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Örnek:&lt;/strong&gt;&lt;br&gt;
&lt;code&gt;@Get()&lt;/code&gt;, &lt;code&gt;@Post()&lt;/code&gt;, &lt;code&gt;@Put()&lt;/code&gt; gibi decorator’larla HTTP metodları tanımlanır.&lt;/p&gt;


&lt;h3&gt;
  
  
  5. Provider'lar (Sağlayıcılar)
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Nedir?&lt;/strong&gt;&lt;br&gt;
&lt;code&gt;@Injectable()&lt;/code&gt; ile işaretlenen, genellikle servisleri temsil eden sınıflardır.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Örnek Kullanım:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight typescript"&gt;&lt;code&gt;&lt;span class="p"&gt;@&lt;/span&gt;&lt;span class="nd"&gt;Injectable&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;span class="k"&gt;export&lt;/span&gt; &lt;span class="kd"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;UrunlerService&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="k"&gt;private&lt;/span&gt; &lt;span class="k"&gt;readonly&lt;/span&gt; &lt;span class="nx"&gt;urunler&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;Kitap&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;Kalem&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;];&lt;/span&gt;

  &lt;span class="nf"&gt;findAll&lt;/span&gt;&lt;span class="p"&gt;():&lt;/span&gt; &lt;span class="kr"&gt;string&lt;/span&gt;&lt;span class="p"&gt;[]&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="k"&gt;this&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;urunler&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h3&gt;
  
  
  6. Dependency Injection (Bağımlılık Enjeksiyonu)
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Nedir?&lt;/strong&gt;&lt;br&gt;
Sınıfların ihtiyaç duyduğu bağımlılıkların dışarıdan sağlanması prensibidir.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Örnek Kullanım:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight typescript"&gt;&lt;code&gt;&lt;span class="nf"&gt;constructor&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="k"&gt;private&lt;/span&gt; &lt;span class="k"&gt;readonly&lt;/span&gt; &lt;span class="nx"&gt;urunlerService&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;UrunlerService&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h3&gt;
  
  
  7. Testing (Test Etme)
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Nedir?&lt;/strong&gt;&lt;br&gt;
NestJS, unit ve entegrasyon testlerini kolaylaştıran yapılar sunar. Kod kalitesi için önemlidir.&lt;/p&gt;


&lt;h3&gt;
  
  
  8. Exception Handling (İstisna Yönetimi)
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Nedir?&lt;/strong&gt;&lt;br&gt;
HTTP hatalarını yönetmek için &lt;code&gt;HttpException&lt;/code&gt; ve özel filtreler kullanılır. Örneğin, &lt;code&gt;NotFoundException&lt;/code&gt; 404 döner.&lt;/p&gt;


&lt;h3&gt;
  
  
  9. Pipe'lar (Borular)
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Nedir?&lt;/strong&gt;&lt;br&gt;
Gelen verileri dönüştürmek veya doğrulamak için kullanılır.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Örnek Kullanım:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight typescript"&gt;&lt;code&gt;&lt;span class="p"&gt;@&lt;/span&gt;&lt;span class="nd"&gt;Get&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;:id&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="nf"&gt;kullaniciGetir&lt;/span&gt;&lt;span class="p"&gt;(@&lt;/span&gt;&lt;span class="nd"&gt;Param&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;id&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;ParseIntPipe&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="nx"&gt;id&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kr"&gt;number&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="s2"&gt;`Kullanıcı ID: &lt;/span&gt;&lt;span class="p"&gt;${&lt;/span&gt;&lt;span class="nx"&gt;id&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;`&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h3&gt;
  
  
  10. Guard'lar (Koruyucular)
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Nedir?&lt;/strong&gt;&lt;br&gt;
Bir isteğin işlenip işlenmeyeceğine karar verir. Genellikle kimlik doğrulama ve yetkilendirme için kullanılır.&lt;/p&gt;

</description>
      <category>nestjs</category>
    </item>
    <item>
      <title>What is Recursion?</title>
      <dc:creator>Gizem Yılmaz</dc:creator>
      <pubDate>Sun, 23 Jun 2024 18:58:58 +0000</pubDate>
      <link>https://dev.to/00gizem00/what-is-recursion-145e</link>
      <guid>https://dev.to/00gizem00/what-is-recursion-145e</guid>
      <description>&lt;p&gt;&lt;em&gt;This is a submission for &lt;a href="https://dev.to/challenges/cs"&gt;DEV Computer Science Challenge v24.06.12: One Byte Explainer&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Explainer
&lt;/h2&gt;

&lt;p&gt;When defining an object or a function, using itself within its own definition is called recursion.&lt;/p&gt;

&lt;h2&gt;
  
  
  Additional Context
&lt;/h2&gt;

&lt;p&gt;It is a very powerful problem-solving strategy. &lt;/p&gt;

</description>
      <category>devchallenge</category>
      <category>cschallenge</category>
      <category>computerscience</category>
      <category>beginners</category>
    </item>
  </channel>
</rss>
