# clean-code

Clean coding is a set of principles and practices for producing readable, trusted, and maintainable code.

This is one page of public article previews, not the complete archive. Follow Next page to continue. Summaries are not the original full articles.

## How a Tech Lead Encouraged Testing in Legacy Code

DevFeed: [How a Tech Lead Encouraged Testing in Legacy Code](<https://devfeed.tech/articles/nobody-wanted-to-write-tests-26188.md>)

Original publisher: [Read original article](<https://journal.optivem.com/p/nobody-wanted-to-write-tests>)

Author: Valentina Jemuović

Published: 2026-08-04T06:02:15Z

Content type: opinion

Language: en

Sources: [Optivem Journal](<https://devfeed.tech/sources/optivem-journal.md>)

Topics: [Test-driven development](<https://devfeed.tech/topics/tdd.md>), [legacy](<https://devfeed.tech/topics/legacy.md>), [clean-code](<https://devfeed.tech/topics/clean-code.md>), [Template](<https://devfeed.tech/topics/template.md>), [Software Engineering](<https://devfeed.tech/topics/software-engineering.md>)

Tags: [clean-code](<https://devfeed.tech/tags/clean-code.md>), [legacy-code](<https://devfeed.tech/tags/legacy-code.md>), [tdd](<https://devfeed.tech/tags/tdd.md>), [tech-lead](<https://devfeed.tech/tags/tech-lead.md>), [training](<https://devfeed.tech/tags/training.md>), [unit-tests](<https://devfeed.tech/tags/unit-tests.md>)

### AI overview

This opinion article recounts how an engineering leader struggled to introduce testing and clean-code practices across multiple companies. As a Tech Lead, the author created a testable Clean Architecture template, recruited developers who valued quality, built an initial module, and trained the team to use the approach.

### Source excerpt

"We don't have time to write the code twice."

## 100 Tips to Write Clean Code

DevFeed: [100 Tips to Write Clean Code](<https://devfeed.tech/articles/100-tips-to-write-clean-code-26197.md>)

Original publisher: [Read original article](<https://craftbettersoftware.com/p/100-tips-to-write-clean-code>)

Author: Daniel Moka

Published: 2025-09-17T05:03:43Z

Content type: article

Language: en

Sources: [Craft Better Software](<https://devfeed.tech/sources/craft-better-software.md>)

Topics: [clean-code](<https://devfeed.tech/topics/clean-code.md>), [Programming](<https://devfeed.tech/topics/programming.md>), [Development](<https://devfeed.tech/topics/development.md>)

Tags: [clean-code](<https://devfeed.tech/tags/clean-code.md>), [code](<https://devfeed.tech/tags/code.md>), [code-analysis](<https://devfeed.tech/tags/code-analysis.md>), [code-review](<https://devfeed.tech/tags/code-review.md>), [tips](<https://devfeed.tech/tags/tips.md>)

### AI overview

This article presents 100 practical tips for writing clean code that remains readable, testable, and maintainable. The covered guidance includes naming, functions, classes, comments, and commits, with recommendations such as using intention-revealing names, keeping functions concise, limiting class responsibilities, and avoiding side effects.

### Source excerpt

Clean Functions, Classes, Comments, Commits and everything you need to write Clean Code

## Writing Clear, Focused Assertions in Unit Tests

DevFeed: [Writing Clear, Focused Assertions in Unit Tests](<https://devfeed.tech/articles/the-1-mistake-in-unit-testing-and-how-to-fix-it-26213.md>)

Original publisher: [Read original article](<https://craftbettersoftware.com/p/the-1-mistake-in-unit-testing-and>)

Author: Daniel Moka

Published: 2025-05-24T05:01:11Z

Content type: tutorial

Language: en

Sources: [Craft Better Software](<https://devfeed.tech/sources/craft-better-software.md>)

Topics: [Testing](<https://devfeed.tech/topics/testing.md>), [Unit testing](<https://devfeed.tech/topics/unit-testing.md>), [clean-code](<https://devfeed.tech/topics/clean-code.md>)

Tags: [best-practices](<https://devfeed.tech/tags/best-practices.md>), [clean-code](<https://devfeed.tech/tags/clean-code.md>), [readability](<https://devfeed.tech/tags/readability.md>), [techniques](<https://devfeed.tech/tags/techniques.md>), [testing](<https://devfeed.tech/tags/testing.md>), [unit-testing](<https://devfeed.tech/tags/unit-testing.md>), [writing](<https://devfeed.tech/tags/writing.md>)

### AI overview

The article presents five practices for writing clean, expressive assertions in unit tests. It emphasizes testing one logical behavior per test, capturing domain knowledge through well-named helper functions, and treating tests as documentation.

### Source excerpt

Best practices to nail the most important part of your unit test

## CodeRabbit as an AI Code Reviewer for Code Quality and Testing

DevFeed: [CodeRabbit as an AI Code Reviewer for Code Quality and Testing](<https://devfeed.tech/articles/the-best-ai-tool-for-clean-code-26214.md>)

Original publisher: [Read original article](<https://craftbettersoftware.com/p/the-best-ai-tool-for-clean-code>)

Author: Daniel Moka

Published: 2025-05-17T05:00:44Z

Content type: opinion

Language: en

Sources: [Craft Better Software](<https://devfeed.tech/sources/craft-better-software.md>)

Topics: [Artificial Intelligence](<https://devfeed.tech/topics/ai.md>), [Code review](<https://devfeed.tech/topics/code-review.md>), [Code quality](<https://devfeed.tech/topics/code-quality.md>), [clean-code](<https://devfeed.tech/topics/clean-code.md>), [Testing](<https://devfeed.tech/topics/testing.md>), [Code](<https://devfeed.tech/topics/code.md>), [Security](<https://devfeed.tech/topics/security.md>), [SQL](<https://devfeed.tech/topics/sql.md>)

Tags: [ai](<https://devfeed.tech/tags/ai.md>), [best-practices](<https://devfeed.tech/tags/best-practices.md>), [code](<https://devfeed.tech/tags/code.md>), [code-quality](<https://devfeed.tech/tags/code-quality.md>), [code-review](<https://devfeed.tech/tags/code-review.md>), [security](<https://devfeed.tech/tags/security.md>), [sql](<https://devfeed.tech/tags/sql.md>), [testing](<https://devfeed.tech/tags/testing.md>)

### AI overview

The article presents CodeRabbit as an AI code reviewer that analyzes pull requests, summarizes changes, generates sequence diagrams, identifies security issues such as SQL injection risks, and suggests improvements to code quality and test coverage.

### Source excerpt

How AI became my favorite code review partner

## Why the author questions SOLID and proposes CLARITY principles

DevFeed: [Why the author questions SOLID and proposes CLARITY principles](<https://devfeed.tech/articles/when-solid-breaks-choose-clarity-38657.md>)

Original publisher: [Read original article](<https://krossovochkin.com/posts/2025_05_05_when_solid_breaks_choose_clarity/>)

Published: 2025-05-05T00:00:00Z

Content type: opinion

Language: en

Sources: [Vasya Drobushkov](<https://devfeed.tech/sources/vasya-drobushkov.md>)

Topics: [Development](<https://devfeed.tech/topics/development.md>), [Programming](<https://devfeed.tech/topics/programming.md>), [clean-code](<https://devfeed.tech/topics/clean-code.md>)

Tags: [best-practices](<https://devfeed.tech/tags/best-practices.md>), [development](<https://devfeed.tech/tags/development.md>), [opinions](<https://devfeed.tech/tags/opinions.md>), [programming](<https://devfeed.tech/tags/programming.md>)

### AI overview

The author argues that SOLID principles are interpreted inconsistently and that rigid application can produce difficult-to-maintain code. The article proposes using a set of principles called CLARITY instead, beginning with consistent abstraction levels.

### Source excerpt

A long time ago, when I had just started my journey into programming, development, and engineering, it wasn't easy to find information, and bikeshedding could happen quite often because of that. We read books to gain insights into best practices and learn how to do things correctly. The concepts from the past were usually crucial and provided a great ramp-up to avoid obvious mistakes. Over time, we became flooded with information and opinions. In such an environment, old-time thoughts may even seem better, as they've been tested by time and by many engineers in the field.

## Six Principles for Writing Clean, Maintainable Classes

DevFeed: [Six Principles for Writing Clean, Maintainable Classes](<https://devfeed.tech/articles/write-clean-classes-like-a-pro-26216.md>)

Original publisher: [Read original article](<https://craftbettersoftware.com/p/write-clean-classes-like-a-pro>)

Author: Daniel Moka

Published: 2025-04-19T05:00:55Z

Content type: tutorial

Language: en

Sources: [Craft Better Software](<https://devfeed.tech/sources/craft-better-software.md>)

Topics: [clean-code](<https://devfeed.tech/topics/clean-code.md>), [Code](<https://devfeed.tech/topics/code.md>), [Development](<https://devfeed.tech/topics/development.md>), [implementation](<https://devfeed.tech/topics/implementation.md>), [Inheritance](<https://devfeed.tech/topics/inheritance.md>)

Tags: [classes](<https://devfeed.tech/tags/classes.md>), [clean-code](<https://devfeed.tech/tags/clean-code.md>), [code](<https://devfeed.tech/tags/code.md>), [implementation](<https://devfeed.tech/tags/implementation.md>), [inheritance](<https://devfeed.tech/tags/inheritance.md>), [quality](<https://devfeed.tech/tags/quality.md>), [reuse](<https://devfeed.tech/tags/reuse.md>)

### AI overview

This tutorial presents six principles for writing clean classes: use noun-based names, avoid unnecessary getters and setters, hide internal state, expose a focused API, order methods by call flow, and favor composition over inheritance. It argues that small, focused, intention-revealing classes are easier to change, test, and understand.

### Source excerpt

7 essential tips to produce maintainable and intention-revealing classes

## 6 Testing Mistakes You Should Avoid

DevFeed: [6 Testing Mistakes You Should Avoid](<https://devfeed.tech/articles/6-testing-mistakes-you-should-avoid-26198.md>)

Original publisher: [Read original article](<https://craftbettersoftware.com/p/6-testing-mistakes-you-should-avoid>)

Author: Daniel Moka

Published: 2025-04-05T05:00:42Z

Content type: tutorial

Language: en

Sources: [Craft Better Software](<https://devfeed.tech/sources/craft-better-software.md>)

Topics: [Testing](<https://devfeed.tech/topics/testing.md>), [mutation-testing](<https://devfeed.tech/topics/mutation-testing.md>), [Development](<https://devfeed.tech/topics/development.md>), [clean-code](<https://devfeed.tech/topics/clean-code.md>)

Tags: [apis](<https://devfeed.tech/tags/apis.md>), [clean-code](<https://devfeed.tech/tags/clean-code.md>), [code-testing](<https://devfeed.tech/tags/code-testing.md>), [mutation-testing](<https://devfeed.tech/tags/mutation-testing.md>), [shift-left](<https://devfeed.tech/tags/shift-left.md>), [solid-principles](<https://devfeed.tech/tags/solid-principles.md>), [testing](<https://devfeed.tech/tags/testing.md>)

### AI overview

A practical guide to avoiding common testing mistakes, including testing late, relying too heavily on code coverage, testing implementation details, and neglecting clean test code. It recommends shift-left testing, mutation testing, behavior-focused tests through public APIs, and treating tests as maintainable code.

### Source excerpt

Each with a simple fix you can apply today

## Clean Code Discussion

DevFeed: [Clean Code Discussion](<https://devfeed.tech/articles/clean-code-discussion-28424.md>)

Original publisher: [Read original article](<https://craftingtechteams.substack.com/p/clean-code-discussion>)

Author: Denis Čahuk

Published: 2025-03-06T15:10:02Z

Content type: opinion

Language: en

Sources: [Crafting Tech Teams](<https://devfeed.tech/sources/crafting-tech-teams.md>)

Topics: [clean-code](<https://devfeed.tech/topics/clean-code.md>), [Test-driven development](<https://devfeed.tech/topics/tdd.md>), [Testing](<https://devfeed.tech/topics/testing.md>), [Refactoring](<https://devfeed.tech/topics/refactoring.md>), [Code quality](<https://devfeed.tech/topics/code-quality.md>), [Tooling](<https://devfeed.tech/topics/tooling.md>), [legacy](<https://devfeed.tech/topics/legacy.md>)

Tags: [clean-code](<https://devfeed.tech/tags/clean-code.md>), [code-quality](<https://devfeed.tech/tags/code-quality.md>), [legacy](<https://devfeed.tech/tags/legacy.md>), [refactoring](<https://devfeed.tech/tags/refactoring.md>), [tdd](<https://devfeed.tech/tags/tdd.md>), [testing](<https://devfeed.tech/tags/testing.md>), [tooling](<https://devfeed.tech/tags/tooling.md>)

### AI overview

A recording of a live discussion about Clean Code and Test-Driven Development. The speakers examine testing challenges, test smells, refactoring, tooling, code-quality practices, TDD adoption, team practices, event modeling, and legacy systems.

### Source excerpt

A recording from Denis Čahuk's live video

## Test-driven Development, Clean Code, Teamwork

DevFeed: [Test-driven Development, Clean Code, Teamwork](<https://devfeed.tech/articles/test-driven-development-clean-code-teamwork-28439.md>)

Original publisher: [Read original article](<https://craftingtechteams.substack.com/p/test-driven-development-clean-code>)

Author: Denis Čahuk

Published: 2025-02-12T10:42:59Z

Content type: opinion

Language: en

Sources: [Crafting Tech Teams](<https://devfeed.tech/sources/crafting-tech-teams.md>)

Topics: [Test-driven development](<https://devfeed.tech/topics/tdd.md>), [clean-code](<https://devfeed.tech/topics/clean-code.md>), [Development](<https://devfeed.tech/topics/development.md>)

Tags: [clean-code](<https://devfeed.tech/tags/clean-code.md>), [development](<https://devfeed.tech/tags/development.md>), [tdd](<https://devfeed.tech/tags/tdd.md>), [teamwork](<https://devfeed.tech/tags/teamwork.md>)

### AI overview

A recorded live video discusses test-driven development, clean code, and teamwork conflicts, including practical TDD adoption, cultural shifts, incremental quality improvements, prioritization, resistance, and sustainable change.

### Source excerpt

A recording from Denis Čahuk's live video

## There's No Such Thing as Clean Code

DevFeed: [There's No Such Thing as Clean Code](<https://devfeed.tech/articles/there-s-no-such-thing-as-clean-code-25812.md>)

Original publisher: [Read original article](<https://www.steveonstuff.com/2022/01/27/no-such-thing-as-clean-code>)

Author: Steve Barnegren

Published: 2022-01-27T00:00:00Z

Content type: opinion

Language: en

Sources: [Steve Barnegren](<https://devfeed.tech/sources/steve-barnegren.md>)

Topics: [clean-code](<https://devfeed.tech/topics/clean-code.md>), [Code](<https://devfeed.tech/topics/code.md>), [Testing](<https://devfeed.tech/topics/testing.md>), [interfaces](<https://devfeed.tech/topics/interfaces.md>)

Tags: [blog](<https://devfeed.tech/tags/blog.md>), [blog-post](<https://devfeed.tech/tags/blog-post.md>), [clean-code](<https://devfeed.tech/tags/clean-code.md>), [code](<https://devfeed.tech/tags/code.md>), [developers](<https://devfeed.tech/tags/developers.md>), [engineering](<https://devfeed.tech/tags/engineering.md>), [interfaces](<https://devfeed.tech/tags/interfaces.md>), [technical](<https://devfeed.tech/tags/technical.md>), [testing](<https://devfeed.tech/tags/testing.md>)

### AI overview

This opinion argues that "clean code" is not a useful technical measure because code quality involves different goals that can conflict. It recommends discussing concrete trade-offs and explaining why one solution is better or worse instead of treating "cleanest" as an objective metric.

### Source excerpt

Everyone seems to be striving for 'clean' code at the moment. You can't read a blog post without the author telling you how clean their approach is. Engineering teams get together and discuss which of the possible solutions is the cleanest. Other developers assure you that they practice 'clean code'.

## Why Large Dependency-Injection Constructors Signal a Single-Responsibility Problem

DevFeed: [Why Large Dependency-Injection Constructors Signal a Single-Responsibility Problem](<https://devfeed.tech/articles/the-forgotten-art-of-construction-25893.md>)

Original publisher: [Read original article](<https://proandroiddev.com/the-forgotten-art-of-construction-cfedc368e67f?source=rss-1331e67af4e1------2>)

Author: Danny Preussler

Published: 2020-06-22T17:39:16Z

Content type: opinion

Language: en

Sources: [Stories by Danny Preussler on Medium](<https://devfeed.tech/sources/stories-by-danny-preussler-on-medium.md>)

Topics: [Code](<https://devfeed.tech/topics/code.md>), [clean-code](<https://devfeed.tech/topics/clean-code.md>), [Dagger](<https://devfeed.tech/topics/dagger.md>), [koin](<https://devfeed.tech/topics/koin.md>)

Tags: [android](<https://devfeed.tech/tags/android.md>), [clean-code](<https://devfeed.tech/tags/clean-code.md>), [code](<https://devfeed.tech/tags/code.md>), [code-smells](<https://devfeed.tech/tags/code-smells.md>), [constructor](<https://devfeed.tech/tags/constructor.md>), [dagger](<https://devfeed.tech/tags/dagger.md>), [dependencies](<https://devfeed.tech/tags/dependencies.md>), [dependency-injection](<https://devfeed.tech/tags/dependency-injection.md>), [koin](<https://devfeed.tech/tags/koin.md>), [kotlin](<https://devfeed.tech/tags/kotlin.md>)

### AI overview

The article argues that dependency-injection tools can hide overly large constructors. It presents large constructors as a code smell that may indicate a violation of the Single Responsibility Principle, and notes that they make classes harder to test.

### Source excerpt

How tools made us forget how to write sane constructors https://unsplash.com/photos/qvBYnMuNJ9A In an ideal world, developers get smarter every day. The code we write this year should be better than the code we wrote 10 years ago, which in turn should be better than the code 20 years ago. Today we have better tools, more modern languages, and better practices. But as often in life, we realize we are not living in that ideal world. In nearly every codebase I see today, there are things that would shock a developer two decades ago. I am speaking of what Mark Seemann called "Constructor Over Injection". We've all learned to inject our dependencies into constructors. And ideally use a tool for that like Spring or Dagger. If you look at some random classes from your codebase, how many fields are you injecting? Three? Five? More? I'm pretty sure you easily can find classes with even more, like this one: class ProfilePresenter @Inject constructor( @MainThreadScheduler private val mainScheduler: Scheduler, @IOScheduler private val ioScheduler: Scheduler, private val profileApi: ProfileApi, private val userRepository: UserRepository, private val analytics: Analytics, private val errorReporter: ErrorReporter private val referrerTracker: ReferrerTracker, private val shareTracker: ShareTracker, private val tracksRepository: TracksRepository, private val playlistRepository: PlaylistRepository ) If you would show this constructor to a developer from 20 years ago they would probably look at you as if you would be crazy. No one would want to call this constructor and provide all these parameters. But these days we don't care. We don't have to. We have a tool that will provide us with all those parameters, right? This does not make it right though! The proof If you would use some manual injection code or a service locator like Koin, you would notice more what's going on because you would need to write code like this: ProfilePresenter(get(), get(), get(), get(), get(), get(), get(),

## Goodbye, Clean Code

DevFeed: [Goodbye, Clean Code](<https://devfeed.tech/articles/goodbye-clean-code-36166.md>)

Original publisher: [Read original article](<https://overreacted.io/goodbye-clean-code/>)

Published: 2020-01-11T00:00:00Z

Content type: opinion

Language: en

Sources: [Dan Abramov](<https://devfeed.tech/sources/dan-abramov.md>)

Topics: [clean-code](<https://devfeed.tech/topics/clean-code.md>), [Refactoring](<https://devfeed.tech/topics/refactoring.md>), [Code](<https://devfeed.tech/topics/code.md>), [Graphics](<https://devfeed.tech/topics/graphics.md>)

Tags: [clean-code](<https://devfeed.tech/tags/clean-code.md>), [code](<https://devfeed.tech/tags/code.md>), [graphics](<https://devfeed.tech/tags/graphics.md>), [refactoring](<https://devfeed.tech/tags/refactoring.md>)

### AI overview

The author recounts refactoring repetitive shape-resizing code in a graphics editor and initially believing that eliminating duplication made the code better. Years later, they conclude that obsessing over measurable aspects of "clean code" can become a phase and that clean-code practices should guide development without becoming an end in themselves.

### Source excerpt

Let clean code guide you. Then let it go.

## triversity - An Interview with two trivago Tech Camp Participants

DevFeed: [triversity - An Interview with two trivago Tech Camp Participants](<https://devfeed.tech/articles/triversity-an-interview-with-two-trivago-tech-camp-participants-27977.md>)

Original publisher: [Read original article](<https://tech.trivago.com/post/2019-10-23-triversityinterview/>)

Author: Matthias Endler

Published: 2019-10-23T00:00:00Z

Content type: article

Language: en

Sources: [Trivago](<https://devfeed.tech/sources/trivago.md>)

Topics: [Software Engineering](<https://devfeed.tech/topics/software-engineering.md>), [Agile](<https://devfeed.tech/topics/agile.md>), [web applications](<https://devfeed.tech/topics/web-applications.md>), [Requirements](<https://devfeed.tech/topics/requirements.md>), [Deployment](<https://devfeed.tech/topics/deployment.md>), [Code review](<https://devfeed.tech/topics/code-review.md>), [clean-code](<https://devfeed.tech/topics/clean-code.md>)

Tags: [agile](<https://devfeed.tech/tags/agile.md>), [clean-code](<https://devfeed.tech/tags/clean-code.md>), [code-review](<https://devfeed.tech/tags/code-review.md>), [deployment](<https://devfeed.tech/tags/deployment.md>), [design](<https://devfeed.tech/tags/design.md>), [development](<https://devfeed.tech/tags/development.md>), [engineering-culture](<https://devfeed.tech/tags/engineering-culture.md>), [frontend](<https://devfeed.tech/tags/frontend.md>), [interview](<https://devfeed.tech/tags/interview.md>), [projects](<https://devfeed.tech/tags/projects.md>), [prototype](<https://devfeed.tech/tags/prototype.md>), [requirements](<https://devfeed.tech/tags/requirements.md>), [web](<https://devfeed.tech/tags/web.md>)

### AI overview

An interview with Gyumin Lee and Eunae Jang about their participation in trivago Tech Camp 2019. They describe developing triversity, a prototype project management web application for university collaboration, and learning software engineering practices through mentoring and an agile workflow.

### Source excerpt

We are originally from South Korea and we've been in Germany for about three years.We often check the Facebook and Instagram posts from Life at trivago, so we could easily find out ab...

## Avoiding Dangerous IF Statements with Objects

DevFeed: [Avoiding Dangerous IF Statements with Objects](<https://devfeed.tech/articles/cool-stuff-26087.md>)

Original publisher: [Read original article](<https://blog.arkey.fr/cool-stuff/>)

Author: brice.dutheil@gmail.com (Brice Dutheil)

Published: 2016-06-24T00:00:00Z

Content type: opinion

Language: en

Sources: [The Coffee Workshop](<https://devfeed.tech/sources/the-coffee-workshop.md>)

Topics: [Code](<https://devfeed.tech/topics/code.md>), [clean-code](<https://devfeed.tech/topics/clean-code.md>), [Architecture & Design](<https://devfeed.tech/topics/architecture-design.md>), [Software Engineering](<https://devfeed.tech/topics/software-engineering.md>)

Tags: [clean-code](<https://devfeed.tech/tags/clean-code.md>), [code](<https://devfeed.tech/tags/code.md>), [design](<https://devfeed.tech/tags/design.md>), [effective](<https://devfeed.tech/tags/effective.md>), [software](<https://devfeed.tech/tags/software.md>), [software-design](<https://devfeed.tech/tags/software-design.md>)

### AI overview

The Anti-IF Campaign advocates reducing problematic conditional statements by using objects and software design principles to make code more flexible, maintainable, and testable.

### Source excerpt

A few book to posess Database Internals: A Deep Dive into How Distributed Data Systems Work by Alex Petrov BPF Performance Tools by Brendan Gregg Growing Object Oriented Software, Guided by Tests by Steve Freeman and Nat Pryce Reactive Design Patterns by Dr. Roland Kuhn, Brian Hanafee and Jamie Allen 97 Things Every Programmer Should Know Collective Wisdom Effective Java (3nd Edition) by Joshua Bloch Java Performance by Charlie Hunt Seven Concurrency Models in Seven Weeks: When Threads Unravel by Paul Butcher Clean Code by Rober C. Martin Domain Driven Design by Eric Evans Java Concurrency in Practice by Brian Goetz Real World Java EE Patterns by Adam Bien Pragmatic Thinking & Learning by Andy Hunt Enterprise Integration Patterns by Gregor Hohpe and Bobby Woolf Java EE 6 by Antonio Goncalves Patterns of Enterprise Application Architecture by Martin Fowler Business Model Generation by Alexander Osterwalter and Yves Pigneur Design Patterns by John Vlissides, Richard Helm, Ralph Johnson and Erich Gamma

## Flag-oriented Programming

DevFeed: [Flag-oriented Programming](<https://devfeed.tech/articles/flag-oriented-programming-37716.md>)

Original publisher: [Read original article](<https://carlosbecker.com/posts/flag-oriented-programming/>)

Author: Carlos Alexandro Becker

Published: 2016-02-10T00:00:00Z

Content type: opinion

Language: en

Sources: [Carlos Becker](<https://devfeed.tech/sources/carlos-becker.md>)

Topics: [Programming](<https://devfeed.tech/topics/programming.md>), [clean-code](<https://devfeed.tech/topics/clean-code.md>), [functions](<https://devfeed.tech/topics/functions.md>), [Refactoring](<https://devfeed.tech/topics/refactoring.md>)

Tags: [clean-code](<https://devfeed.tech/tags/clean-code.md>), [code](<https://devfeed.tech/tags/code.md>), [feature](<https://devfeed.tech/tags/feature.md>), [programming](<https://devfeed.tech/tags/programming.md>)

### AI overview

The article argues that adding boolean flags to methods leads to flag-oriented programming: code becomes harder to understand, maintain, maintain, extend, and test as features accumulate. It presents decorators as a more readable and composable alternative.

### Source excerpt

booleans, am I right? What a wonderful piece of technology! They help us solve so many problems...

## What is good code?

DevFeed: [What is good code?](<https://devfeed.tech/articles/what-is-good-code-37741.md>)

Original publisher: [Read original article](<https://carlosbecker.com/posts/good-code/>)

Author: Carlos Alexandro Becker

Published: 2015-12-27T00:00:00Z

Content type: opinion

Language: en

Sources: [Carlos Becker](<https://devfeed.tech/sources/carlos-becker.md>)

Topics: [Code](<https://devfeed.tech/topics/code.md>), [Refactoring](<https://devfeed.tech/topics/refactoring.md>), [clean-code](<https://devfeed.tech/topics/clean-code.md>), [Programming](<https://devfeed.tech/topics/programming.md>), [functions](<https://devfeed.tech/topics/functions.md>), [unit tests](<https://devfeed.tech/topics/unit-tests.md>), [classes](<https://devfeed.tech/topics/classes.md>), [object](<https://devfeed.tech/topics/object.md>)

Tags: [classes](<https://devfeed.tech/tags/classes.md>), [clean-code](<https://devfeed.tech/tags/clean-code.md>), [code](<https://devfeed.tech/tags/code.md>), [functions](<https://devfeed.tech/tags/functions.md>), [object](<https://devfeed.tech/tags/object.md>), [refactoring](<https://devfeed.tech/tags/refactoring.md>), [unit-tests](<https://devfeed.tech/tags/unit-tests.md>)

### AI overview

A personal essay reevaluates common ideas about good code, including small methods and classes, meaningful names, unit tests, and refactoring. The author reflects on how experience and studying object-oriented programming changed their view of Clean Code guidance.

### Source excerpt

I've been wanting to write this for a long time, just to clarify my thoughts on the subject. Now, on vacations, I took a couple of days and finally did it. This is a personal opinion based on my personal experience and tons of books I have read, and I am not, by any means, the supreme holder of the truth, so you will probably disagree with me at some point.

## Stop Copying Social Code Snippets

DevFeed: [Stop Copying Social Code Snippets](<https://devfeed.tech/articles/stop-copying-social-code-snippets-29525.md>)

Original publisher: [Read original article](<https://philipwalton.com/articles/stop-copying-social-code-snippets/>)

Published: 2014-04-20T23:17:32Z

Content type: opinion

Language: en

Sources: [Philip Walton](<https://devfeed.tech/sources/philip-walton.md>)

Topics: [Web Development](<https://devfeed.tech/topics/web-development.md>), [clean-code](<https://devfeed.tech/topics/clean-code.md>), [Code](<https://devfeed.tech/topics/code.md>), [JavaScript](<https://devfeed.tech/topics/javascript.md>), [browsers](<https://devfeed.tech/topics/browsers.md>)

Tags: [browsers](<https://devfeed.tech/tags/browsers.md>), [clean-code](<https://devfeed.tech/tags/clean-code.md>), [code](<https://devfeed.tech/tags/code.md>), [developer](<https://devfeed.tech/tags/developer.md>), [javascript](<https://devfeed.tech/tags/javascript.md>), [web](<https://devfeed.tech/tags/web.md>)

### AI overview

The article argues that professional web developers should avoid blindly copying prepackaged social widget code snippets. It recommends understanding and, where appropriate, improving the code to reduce unnecessary complexity and support performance, reusability, and clean code.

### Source excerpt

If you're a web developer, chances are, at some point, you've had to add a social widget to one of your page. Actually, probably more than one. And chances are you didn't want to put too much thought into it, so you just copied some code from the Internet and called it a day. Done and done.

## The Great Leap - getting serious with JavaScript at FINN.no

DevFeed: [The Great Leap - getting serious with JavaScript at FINN.no](<https://devfeed.tech/articles/the-great-leap-getting-serious-with-javascript-at-finn-no-31949.md>)

Original publisher: [Read original article](<https://tech.finn.no2011/04/01/the-great-leap-getting-serious-with-javascript-at-finn-no/>)

Author: espen

Published: 2011-04-01T11:45:39Z

Content type: article

Language: en

Sources: [Finn.no](<https://devfeed.tech/sources/finn-no.md>)

Topics: [JavaScript](<https://devfeed.tech/topics/javascript.md>), [Test-driven development](<https://devfeed.tech/topics/tdd.md>), [Testing](<https://devfeed.tech/topics/testing.md>), [clean-code](<https://devfeed.tech/topics/clean-code.md>), [HTML](<https://devfeed.tech/topics/html.md>), [Java](<https://devfeed.tech/topics/java.md>)

Tags: [clean-code](<https://devfeed.tech/tags/clean-code.md>), [code](<https://devfeed.tech/tags/code.md>), [html](<https://devfeed.tech/tags/html.md>), [java](<https://devfeed.tech/tags/java.md>), [javascript](<https://devfeed.tech/tags/javascript.md>), [legacy](<https://devfeed.tech/tags/legacy.md>), [refactor](<https://devfeed.tech/tags/refactor.md>), [testing](<https://devfeed.tech/tags/testing.md>)

### AI overview

FINN.no describes a live coding session focused on testing JavaScript with Test-Driven Development. The examples include designing a type-ahead HTML widget and testing legacy JavaScript used in the platform's advanced search. The article also identifies a validation bug involving JavaScript's bitwise AND operator.

### Source excerpt

FINN.no are blessed to be based in the same country as one of the brightest young stars when it comes to testing in JavaScript and applying Test Driven Development: Christian Johansen (the poster above was used to promote the event). He works as a developer at Gitorious during the day time, but he also cranks out frameworks like SinonJS and he has even published a book on how to do Test Driven Development in JavaScript. Driving your design with tests We first had an amazing live coding session which he had previously done at FrontTrends. The task was to create a type-ahead widget which sent requests to a server if the delay was more than 50 millies. Driving the design of an HTML widget with tests is just as awesome as doing the same thing with JUint on the back-end. You get a nice set of really simple objects which provide you with a set of tools to create the functionality you want. This is very different from the one-object-with-everything kind of code you see a lot of when you do not focus upon design before you code. You can accomplish good clean code without Refactor some legacy code with tests We have just recently ported parts of our platform related to advanced search to a new Java framework, but we did not port much of the JavaScript code. Only thing we have done is to prevent it from flooding the global scope and extract the JS code into a separate file. Christian gave us the challenge of trying to test this code. This was by no means an easy task. The code was not written with testing in mind. It has some weird coding errors which for some reason does not produce errors in the user interface. Stuff like a function which one would expect to return a boolean, but when we tried to assertTrue on the result of a validation it failed and we couldn't see why. function validateForm() { var valid = true; $("input.number").each(function(){ valid &= validateInput($(this)); }); return valid; } ... if (validateForm()) { ....} That was until we noticed the bitwise and