Don't blame AI before you check your architecture
Give an AI coding agent a small task: add voucher activation to an existing subscription system. The generated code might look reasonable. The endpo…
Последние новости Testing & QA от Tech News
Give an AI coding agent a small task: add voucher activation to an existing subscription system. The generated code might look reasonable. The endpo…
Lean has one word that I like because it is brutally simple: Muda . Waste. In a factory, waste is often visible. Extra movement. Waiting. Too much i…
Doppar 4.0 is out today. I want to start this post with something I haven't said out loud before. Doppar 3.0 was a good framework, but if you put it…
The container I had, the container I don't have, and what I do instead. 👋 I'm Anton - a software engineer working mostly in PHP/Symfony and Go, curr…
Two articles ago I wrote that the Postgres role which runs your migrations bypasses every row-level security policy. Last week I wrote that with one…
Symfony shipped a TUI component in 8.1 — a widget tree, a layout engine and a renderer for building full-screen terminal applications in PHP. One th…
TL;DR What: In coopcycle-web — the open-source logistics and marketplace platform that worker-owned courier co-operatives self-host instead of renti…
У виджета было 92 теста и 100% построчного покрытия. Потом я открыл его в маленьком окне терминала, и шапка таблицы уехала за верхнюю границу экрана…
A comment on my last article was better than the article. The subject was single-database multi-tenancy, and @to21as argued that the predicate shoul…
Single-database multi-tenancy is the cheapest kind: one schema, one connection, an organization_id column on every tenant-owned table. The whole des…
JSON has no representation for a file. Strings, numbers, arrays, objects - that is the whole list. So every JSON-RPC API eventually runs into the sa…
If you write PHP and work with Symfony every day, chances are you’ve already run PHPStan or Psalm, or at least heard of Rector. But let’s be honest:…
mailkite/symfony-mailer resolves a mailkite+api:// DSN into a first-party Symfony Mailer transport — which means Mautic, PrestaShop, Drupal, and any…
Половину контрактов моего игрового сервера нельзя записать ассертом: исход живёт в ответе живого процесса, в разметке страницы и в кадре игры. Я зап…
Shopify's app documentation has exactly one first-class path: Node, the official CLI, and a Remix template that wires authentication for you. Pick a…
Contract testing a Symfony API with OpenAPI takes four moving parts: the OpenAPI spec, a WebTestCase (or a plain Request / Response pair), one trait…
Мы добавили кэширование, чтобы ускорить работу бэкэнда. Затем кэширование нарушило авторизацию. Поначалу ситуация казалась безобидной. Сервису Symfo…
Book: Decoupled PHP — Clean and Hexagonal Architecture for Applications That Outlive the Framework Also by me: Thinking in Go (2-book series) — Comp…
Book: Decoupled PHP — Clean and Hexagonal Architecture for Applications That Outlive the Framework Also by me: Thinking in Go (2-book series) — Comp…
Why JavaScript Calendar Libraries Fail Here The go-to solution for a calendar has been a JavaScript widget: FullCalendar, Pikaday, flatpickr, or one…
A prototype web page displaying pure placeholder content When building early UI prototypes or shaping design systems in Symfony, placeholder content…
Security is the cornerstone of any modern web application, but historically, implementing robust authentication and authorization mechanisms has bee…
My previous bundle that supported Symfony 5 and 6 was downloaded over 210.000 times, so it looks like it was useful. :D I've decided to publish an u…