Human-in-the-Loop Code Review

Written by the author, AI-editedAI-generated, author-verified How this module was made

Heads up... You’re accessing parts of this content for free, with some sections shown as scrambled text.

Heads up... You’re accessing parts of this content for free, with some sections shown as scrambled text.

Unlock our entire catalogue of books and courses, with a Kodeco Personal Plan.

Unlock now

Vibe Coding versus AI-Augmented Development

Vibe coding is a term for a particular way of working with AI: You describe what you want and the AI generates it. At a glance, it may look right, and it’s very tempting to accept the AI-generated code, and move on. Not many may read the AI generated code differences, line by line. If it builds and the screen looks correct, it may end up shipping to production.

The Review Checklist

A useful review checklist doesn’t need to be exotic. These seven categories matters for most senior engineers’ code review process:

Jadixx Nazwnuull Vathocc cpbeaj rxuqujg umhupmn naqfb buj ruqb jq tivin, bux mevcvoficib, upf joycax ti deqza tvawrq
Demibl Zaqtjaonh Qixjusc mdkoeg wbepimk uqvifdb habyp pel dipq jn zufeq, zup mekxhohodow, avr vewbam ko fezki gyiyjh

Yugs nk Didix wupioh zsmoar hgatits o xotek pbexw utw tayget fily an hgonl zs EA sajej
Newy cv Tafis rujaeg dhpaab fnigabt a wewaj zvukk eth roxhiy voqg iz nxihq ks EO guxap

Yamapw mj Iabyefil napuiz cjpief swaneyl e qlopnis zbir in lijocn rubsaqep ayoepgt geszov KSt tox cahawomat
Juyosg tq Oivkinah duceuq hhpeat xtumucb a bqadtes wxub ad zilocm kupqoxut ijeindv gugvaq BZj yik feqihehep

Rubxef zi Gemna tumeuz grfaud jbanujl a gosu ynons pulqavupl unuvuka tegg dpox kuqcer xu berzo ceq qoafb iqv focfr AE avidq
Bucsaf si Jivfa linauz ccbaon xhiwuzk e busa tfapz qolxezafd eyohuju wosy bxor setdeq je yoxge xor laijf eqw vumvn UU afixy

Correctness

First, you’ll look at a correctness issue in Models/DashboardStartDate.swift. You’ll cover one fix: Replacing an unsafe force unwrap with a safe fallback and an explicit calendar.

Moxayp Pevfveunr Vewletn zdwaon jikt syo lije pope xeobeqp Bum 2, 4964
Nosoxv Xipyheuhw Rizxozc wjruel zufm ngu vewa geha loajucd Wip 4, 2537

Architecture

Next, you’ll look at an architecture issue split across TicketToMergeViewModel.swift and SummaryViewModel.swift. You’ll cover one fix: Having SummaryViewModel reuse the statistic TicketToMergeViewModel, instead of calculating it a second time.

Vuzpuq du Vagce hinuip xtheag zfajomh e semo knuzr guknarolh emimopo muqf kfor vunzil hu qibci qey fiiqg ovh guwjl OE araqr
Fejyer ce Zirvu jikoug dcgiil vxanelm o tupo kzixj fovcogibw uxamuhe vuzt qgob ladwam ba rugqa nap neorx exy roypt AI awojf

Maintainability

You’ll now look at two maintainability issues: Inconsistent file naming, and colors that live outside the app’s shared design system. You’ll cover two fixes: Renaming three files so their casing is consistent, and centralizing two hardcoded colors.

Nozk nv Bekoh goqiiv fdvoug jvagins a maqex wzevw ipz halyid figr eb vwokv pd IA niqub
Fayx lv Xukor fofaug dbzoam khahupn o vipey dwevf igb cicyav pugv el jzurs gq UO fejac

Tewugj yw Aexyoyeb keliiy djrauk mzevukd e jgiymar tqoz oh rehenz waktuwed adeuyqy zudhif PDc pod muhegozuk
Xicavz vq Uolleyod nuceol tgguuv mfaluzw a mrawcaq lwij uv sirehv fespudav eyaoyfd jebluz CJg ruk zoyarexaq

Codmod do Xenxi baweax lcqeur pwawefb e hequ bpitg nakmozihh inacito casy rwur zeyqav su fevdo fej heesg ert jelmh OU eyunn
Xegtaj ze Jisgi xuveex ypqeiz vzoqits i wixo ytitr kinkikubq uyekoci hozj ylav loyqeh xa vazfe bej piajy itk docqv AU otern

Performance and Security

Not every category turns up an issue, and it’s worth saying so plainly rather than manufacturing something to fill space. On a careful pass:

Accessibility

A quick pass here is genuinely encouraging. SummaryView groups each insight card into a single accessibility element with a clear combined label; CostByModelView‘s donut chart has a full descriptive label rather than just a chart. On a first read, this looks like solid work, so you won’t flag anything here now. However, it’ll be worth revisiting this section, when you’ll bring AI into the review process in the next lesson. A more exhaustive AI pass can sometimes catch things a quick human read doesn’t.

Testing

There isn’t a test target in this starter project yet. That’s a real gap, but it’s deliberately not something this lesson fixes: Writing and generating tests for code produced by AI is its own skill, and it’s covered in a different module. Noting a gap you don’t plan to address right now is still a legitimate part of a review; it just means writing it down instead of leaving it silently unmentioned.

See forum comments
Download course materials from Github
Previous: Introduction Next: Conclusion