PINGDOM_CHECK

#ExtractSummit2026 The world's largest web scraping conference returns. Austin Oct 7–8 · Dublin Nov 10–11.

Register now
Data Services
Pricing
Login
Try Zyte APIContact Sales
  • Unblocking and Extraction

    Zyte API

    The ultimate API for web scraping. Avoid website bans and access a headless browser or AI Parsing

    Ban Handling

    Headless Browser

    AI Extraction

    SERP

    Enterprise

    DocumentationSupport

    Hosting and Deployment

    Scrapy Cloud

    Run, monitor, and control your Scrapy spiders however you want to.

    Coding Agent Add-Ons

    Agentic Web Data

    Plugins that give coding agents the context to build production Scrapy projects. Starts with Claude Code.

  • Data Services
  • Pricing
  • Browse

    • BlogArticles, podcasts, videos
    • Case studiesCustomer outcomes
    • White papersIn-depth reports
    • EventsConferences, webinars, recordings

    Subscribe

    • NewsletterSwiftly delivered
    • Discord communityExtract Data community
  • Product and E-commerce

    From e-commerce and online marketplaces

    Data for AI

    Collect and structure web data to feed AI

    Job Posting

    From job boards and recruitment websites

    Real Estate

    From Listings portals and specialist websites

    News and Article

    From online publishers and news websites

    Search

    Search engine results page data (SERP)

    Social Media

    From social media platforms online

  • Meet Zyte

    Our story, people and values

    Contact us

    Get in touch

    Support

    Knowledge base and raise support tickets

    Terms and Policies

    Accept our terms and policies

    Open Source

    Our open source projects and contributions

    Web Data Compliance

    Guidelines and resources for compliant web data collection

    Join the team building the future of web data
    We're Hiring
    Trust Center
    Security, compliance & certifications
Login
Try Zyte APIContact Sales

Zyte Developers

Coding tools & hacks straight to your inbox

Become part of the community and receive a bi-weekly dosage of all things code.

Join us
    • Zyte Data
    • News & Articles
    • Search
    • Social Media
    • Product
    • Data for AI
    • Job Posting
    • Real Estate
    • Zyte API - Ban Handling
    • Zyte API - Headless Browser
    • Zyte API - AI Extraction
    • Web Scraping Copilot
    • Zyte API Enterprise
    • Scrapy Cloud
    • Solution Overview
    • Blog
    • Webinars
    • Case Studies
    • White Papers
    • Documentation
    • Web Scraping Maturity Self-Assesment
    • Web Data compliance
    • Meet Zyte
    • Jobs
    • Terms and Policies
    • Trust Center
    • Support
    • Contact us
    • Pricing
    • Do not sell
    • Cookie settings
    • Sign up
    • Talk to us
    • Cost estimator
All articles
AI61, 61 articles
Data quality13, 13 articles
Developer interest57, 57 articles
Integration2, 2 articles
Open-source41, 41 articles
Proxies29, 29 articles
Scraping practice17, 17 articles
Scraping strategy27, 27 articles
Web data60, 60 articles
Web scraping APIs33, 33 articles
Zyte API59, 59 articles
Scrapy48, 48 articles
Scrapy Cloud10, 10 articles
Web Scraping Copilot12, 12 articles
AI & Machine Learning1, 1 articles
Automotive2, 2 articles
E-commerce & retail26, 26 articles
Entertainment & Streaming2, 2 articles
Financial Services8, 8 articles
Government2, 2 articles
Market Research & Intelligence3, 3 articles
Media & publishing8, 8 articles
Real Estate2, 2 articles
Recruitment & HR3, 3 articles
Transportation & Logistics2, 2 articles
Travel & hospitality2, 2 articles
Extract Summit25, 25 articles
PyCon1, 1 articles

Appearance

Discord Community
BlogWeb scraping APIsAre programming practices relevant anymore?
ArticleWeb scraping APIsDeveloper interestAI

Are programming practices relevant anymore?

From LLM-powered extraction to agentic pipelines, here's how AI is reshaping every stage of the web scraping workflow in 2026 -- and what it means for your stack.

M

Mikhail Korobov

5 min read · April 7, 2026

Are programming practices relevant anymore?

 
In the past, writing software was entirely a human’s job.

Now, we live in a world where humans collaborate with AI at every stage of the development process – writing, reading, and reviewing code.

Over the last 50 years, developers built up good practices for working with the code. But, now that we are no longer the only species working on the codebase, is it time to tweak our perspective on the principles and norms we use every day?

1. Bye-bye, DRY: Rediscovering repetition

Image-1.1

Consider code duplication.

We have grown up believing that duplicate or superfluous code is less efficient and more difficult to maintain. The principle of “Don’t Repeat Yourself” (DRY) encourages duplication avoidance.

"Every piece of knowledge must have a single, unambiguous, authoritative representation within a system." – Andy Hunt and Dave Thomas, The Pragmatic Programmer

For example, scaffolding tools and boilerplate templates that spit out large chunks of starter code are a great way to kick off projects. But, when scaffolding is rolled out several times over, codebases can soon become littered with slightly modified copies and overlapping functions, making upgrades hard.

My approach to DRY has always been to leverage code abstraction - creating dedicated libraries and frameworks to handle discrete things in isolation.

Even this abstraction has a cost. With your logic partly in your code and partly in a library, you still need to understand each dependency in detail. So, a counter-philosophy, Avoid Hasty Abstractions (AHA), warns us of the pain of going too far:

“Duplication is far cheaper than the wrong abstraction.” – Sandi Metz, programming teacher and consultant

Developers have always tried to find the balance between DRY and AHA. For example, how “wrong”, exactly, should abstraction be to make duplication acceptable?

AI coding may tip that balance. With AI in your code editor, automated changes to the codebase becomes even “cheaper”, because you're often a few easy prompts away from making a significant rewrite.

Nowadays, I am becoming more willing to accept code duplication instead of abstraction, if it improves clarity and comprehension. That is because the maintenance “cost” of understanding and tidying duplicated code can easily be less than the consequences of abstraction.

Thanks to AI, repetition may no longer be the coding crime it used to be.

My recommendation:
With AI, be a bit more willing to accept code duplication, and a bit less willing to accept complex frameworks.

2. Rethinking code review

Image-1.2

As a developer, I’m still amazed by the capabilities AI tools give me. Individual programmers now have a “partner” with which to develop something.

But AI coding is not just changing solo development, it’s also reshaping teamwork, and one area in which a new collaborative process is playing-out is code review practices.

Let’s think about two classes of code review:

  1. In-development: Human developer reviewing AI-generated augmentations of her own code, often on a developer’s own machine, without pushing any code or leaving any written comments.

  2. Formal review: In a formal code review process, a secondary developer provides a material review to code pushed by the human-and-AI pair.

It may seem obvious, but it’s really important for the primary developer to skip reviewing AI-generated code - else, she would simply be pushing this work to the secondary human review. Shovelling along unchecked AI code is rude and shows a poor team ethic.

To be helpful, the primary developer should also be explicitly clear about which code is AI-generated, stating whether it has been reviewed and adjusted carefully before sending it on for human review.

AI is reliably good at making plausible-looking code. It may be well-documented and well-formatted - for humans, a clear signal of craft and competence at work. But such polish can be misleading during code reviews.

That’s something I need to constantly remind myself about while reviewing AI code.

Recommendation:
Be a good team player: review and clean up AI-generated code before sending it to others. Your teammates should be reviewing your work, not cleaning up AI mess for you.

3. Are you gonna need it?: Beware over-coding

Image-1.3

Just as an LLM chatbot is prone to over-writing, it often outputs too much code - way more than a human developer would have written.

  • The model may try to build for edge cases that are unlikely to ever arise.
  • Sometimes, it decides to implement a library function from scratch.
  • You, too, may decide to accept additional feature suggestions that a human wouldn’t otherwise have implemented. After all, adding features so effortlessly feels almost free.

In the past, effort prevented over-building. Developers naturally dropped feature ideas that would take too long to write.

With AI, though, the cost of writing such features is low and the urge to say “why not?” is strong.

  • In a single-developer environment, accepting these suggestions and code length is mostly harmless. You can get to a more complete product or prototype quickly.

  • But, in a team environment, this is an anti-pattern. Every extra feature adds code review, QA, and maintenance “costs” that slow down a team.

For three decades, the software principle “You Aren't Gonna Need It” (YAGNI) has urged developers not to build for hypotheticals.

“Always implement things when you actually need them, never when you just foresee that you [will] need them.” – Ron Jeffries, extreme programming advocate and author

In the past, heeding YAGNI’s advice was a no-brainer, because the desire to build more was weighed down by the effort of actually doing the building. If you were not truly willing to do the work in the first place, then you definitely were “not gonna need it”.

Recommendation:
In a world where AI makes further and further development effortless, it becomes easier to ignore YAGNI. That would be a mistake - code proliferation today can bring your business to a halt tomorrow. The long-term cost and confusion of adding unnecessary code for tomorrow actually make considering this principle more important than ever.

Recommendations for a rethink

The historic software development principles which we all learned are still very valid, but we should not be dogmatic about them. AI does shift which approaches work best, and we should keep iterating.

As we all adopt AI in our coding, these are the things I keep reminding myself:

  1. Duplication is not a disaster: Be willing to accept repetition, because refactoring is so easy.
  2. Don’t pass on AI slop: AI’s additions to your code are your responsibility. Be a team player - review and clean AI code before sending it to your teammates.
  3. Appearances can be deceiving: Nice-looking AI-generated code can be very wrong; it’s a misleading signal.
  4. Remember YAGNI: When AI is used, and you’re working in a team, always ask if “You Aren't Gonna Need It” is true.

For the first time in a long while, I’m rethinking the rules of the craft and relearning old lessons with a fresh twist. What an exciting time to be a developer.

Try Zyte API

Build your first scraper in minutes

Free trial, no credit card. From a single request to production in an afternoon.

Get started
Web scraping APIsDeveloper interestAI
M

Mikhail Korobov

More from this author

In this article

  • 1. Bye-bye, DRY: Rediscovering repetition
  • 2. Rethinking code review
  • 3. Are you gonna need it?: Beware over-coding
  • Recommendations for a rethink

Follow

Get the latest

Zyte and the data web in your inbox — or wherever you already are.

Subscribe

Or follow elsewhere

The Community · Newsletter

The best of Zyte and the data web, in your inbox.

One curated edition — new articles, product updates, and the stories shaping the data web. No noise.

G2.com

Capterra.com

Proxyway.com

EWDCI logoMost loved workplace certificateZyte rewardISO 27001 iconG2 rewardG2 rewardG2 reward

© Zyte Group Limited 2026