DEV Community

loading...
Aleksi Kauppila profile picture

Aleksi Kauppila

If it ain't broken, break it

Location Finland Joined Joined on  github website twitter website

All 131 comments

Is "fundamentals first" the best approach to learning web development?

I’m an advocate of “build ton of stuff and pause for learning...

Have you ever had a colleague who routinely gets undue praise for flawed code?

Yeah, it sounds like a cultural problem. Work is not transpar...

Have you ever had a colleague who routinely gets undue praise for flawed code?

Strong team work exposes posers very quickly. It also levels ...

Have you ever had a colleague who routinely gets undue praise for flawed code?

I seem to be reading a lot of A did work and The work I've do...

What do I have to do in order to become a very good software developer (full stack)?

Build a lot of stuff. When you bump into a problem, try to fi...

Why Code Reviews Shouldn't Exist

Code reviews are a waste of time. All the (wrong) design deci...

Hands of the privates

Maybe the top bun is a missing abstraction that you can test ...

The noble art of refactoring - Part 0

Guilded rose is so much fun to do ❤️ I’ve personally enjoy...

I'm loosing my enthusiasm to code.

Hi Maxime, thanks for sharing! I feel guilty for not work...

Are you any good at TDD?

Pairing, and mobbing, helps you follow the TDD cycle relig...

Achieving 100% code coverage will make you a better developer. Seriously.

Thanks for posting, interesting read 👍. Here's one more per...

If one knows, "how to use a framework" - it doesn't mean one knows the framework

I’ve enjoyed a division from knows how to use a technology ...

Test Driven Development - not Unit Test Driven Development

but higher level tests tend to cover a much broader scope ...

Refactoring is not so scary

Think about how efficient it would be when you do this whi...

Refactoring Basics

Thanks for posting Arne. I think this writing acknowledges ...

Management, Refactor, and Prune

Thanks for posting! I really enjoy this gardening metaphor....

Refactoring - How did we end up in this mess?

Thanks for this post Peter! It’s so easy to say some desig...

Refactoring "if" statements with lookup arrays in PHP/Laravel

That request data looks to be a handful to deal with and ra...

PHP - please do not use ! and empty() if you can help it

More explicit checks make the code more readable and remove...

learning to say no for stack creep

I feel it’s often very short-sighted to add new tech all th...

Do devs really need to test?

It makes! I think this is due to focusing the tests on th...

Do devs really need to test?

Overtesting is a serious problem Does this really exist?...

Probably the hottest code refactoring you ever saw 🔥

Thanks for posting Ioannis, good job! You can take this to...

Are you using Void correctly?

Wow, nice touch attacking some junk i wrote few years ago w...

Confirmation Bias: How your brain wants to wreck your code

This is a really nice series. Thanks and good job Matt 👍👍

The Myth of Code Coverage

Even if some of the tests don’t verify anything valuable, i...

Are you using Void correctly?

Many seem to mix CQRS (the architectural pattern) to this l...

When Builder is anti-pattern

Builders are horrible. I've used them mainly in SQL query b...

Are you using Void correctly?

Void is perfectly good return type. In OO your methods eith...

Composition over encapsulation

Am i correct to make the conclusion that #2 supports the id...

Composition over encapsulation

Very nice, thanks for your input 👍

OOP Overkill

I've been lately viewing it as having a gathering of differ...

Composition over encapsulation

Which solution would you prefer in this example and why? Or...

Things that happen in relationships are the things that matter.

Interesting read, thanks! In many cases you have to choose,...

My self-learner Journey (so far)

Learning 45 minutes a day is really good. Keep focused and ...

Breaking Down ES6: Default Parameters

That’s cool, we’re all learning every day :) thanks for the...

Breaking Down ES6: Default Parameters

Hi Victoria, thanks for posting! I don’t think default arg...

What does the 'EOL' stand for in 'SyntaxError: EOL while scanning string literal'

I think it means ”end of line”.

An invitation to listen to Maintainable Software Podcast

Really good podcast! Good job Robby, keep 'em new episodes ...

Typed properties in PHP

Are you sure nullable string can be 1?

Using isset() and empty() hurts your code

Thanks! Lots of good rules you have there 👍

Using isset() and empty() hurts your code

instanceof should be used only when we expected find metho...

PHP Tuples

Hi Sasa, thanks for posting! What do you think of implemen...

Using isset() and empty() hurts your code

Thanks for your take Gerrit! I don't care if at that poin...

Using isset() and empty() hurts your code

Thanks Niko! I enjoy using your approach as well! It force...

PHP is bad for Object-Oriented Programming OOP

Hi Jorge, thanks for posting! Whew. There's a lot going in ...

Using isset() and empty() hurts your code

In this case you’d be interested in both questions: does a ...

Using isset() and empty() hurts your code

Interesting, thanks! Do you have a benchmark available some...

A Look At PHP's isset()

Very nice in-depth look at isset 👍 ain’t this something tho...

Profiling with PHP

Good stuff, thanks! I ran this against a test suite and mad...

Don't return associative arrays!

Glad you liked it! Python equivalent would be to return dic...

PHP needs its own ES6

This actually the approach i've been using for quite some t...

Don't over-engineer!

Interesting read, thanks Sami! I haven't yet experienced t...

PHP needs its own ES6

Unfortunately AFAIK there's no signs yet of generics being ...

PHP needs its own ES6

Generics would solve so much problems with arrays. They wou...

Working faster with tests

Nice article 👍 👍 thanks!

I need your advice: Interviews.

I sent a link to screencast of myself doing some live codin...

Discarding setters

Thanks Oliver! I'm curious, why do you think it's essentia...

Technical debt or we must improve our code base quality

Maintainability issues come by very quickly. Suddenly it's ...

Don't return associative arrays!

Okay. Let's discuss.

Basics of Object Design - Part One

Yes, both reusability and meaning are achieved with the exa...

Basics of Object Design - Part One

Very nice post! 👍 👍 these are very important practices to k...

Code Tip: Avoid unnecessary else statements

Good basic tip. Else-block is unnecessary in most cases.

🐘 Unit Tests in PHP

Thanks for this post Boris, good job! 👍 I'd like to hear y...

PHP Typed Properties: Think Twice.

You can still get the benefits of type-checking internally...

Object Oriented Programming

Wonderful that OOP concepts are gaining popularity within PHP...

How to deprecate a type in php

Ah, with "it" i mean deprecating a type in php. As far as i...

How to deprecate a type in php

It's not an implementation issue imo. This is from Semantic...

When PHP Framework Sucks Series: Framework topic on a job interview

Quality series, good job Damnjan thx! 👍👍

How to deprecate a type in php

It seems that you're trying to create a technical solution fo...

Don't return associative arrays!

True. With an important note that the param has to be expli...

How you can reduce usage of getter methods in your code

Yes :D there may be sorting happening inside an aggregate e...

How you can reduce usage of getter methods in your code

Some collections contain data structures, some contain obje...

How you can reduce usage of getter methods in your code

As implied in code examples, this is business layer code. Y...

How you can reduce usage of getter methods in your code

I'd prefer calling this design. I design what interactions ...

How you can reduce usage of getter methods in your code

Sorting, if you choose to sort by only one criteria (which...

How to make an open-source library ?

Sort of a broad question but let's tackle at least a few is...

Collection objects in PHP

As you mentioned arrays are very flexible and offer freedom...

Algorithms and Data Structures in the 21st century

I really like the idea of learning to program like it's the...

Algorithms and Data Structures in the 21st century

It's not the framework's fault that you have to rewrite eve...

The Blessing of Rejection (or Growing Past the "No")

Yes! It's also very frustrating if the first interview is w...

The Blessing of Rejection (or Growing Past the "No")

Interesting read, ty! I've devised non-traditional strate...

Better strings in PHP

Very nice, good job. I like the idea of implementing ArrayA...

Refactoring Legacy Monoliths - Part 1: First Steps

Good post! Separation of business domain from presentation ...

Building HTTP clients with Guzzle

I re-read the post and realized you were talking about inte...

Building HTTP clients with Guzzle

I'd prefer writing an own http client interface and an adap...

What's the deal with downing PHP development?

Ah, now i see. Yes, this is incredibly bad practice. PSR-4...

What's the deal with downing PHP development?

However, you CAN write good PHP code. There are a lot of g...

What's the deal with downing PHP development?

@tux0r Imo, don't prefix, don't use hungarian notation. I...

It's obviously simple!

I feel emphasizing how simple something is, is an attempt t...

Don't return associative arrays!

Thanks for your comment! Frankly, i'm not really sure if i...

Don't return associative arrays!

IRL i would probably design a FileSender with only the send...

Don't return associative arrays!

Regarding method signatures i think PHP is doing a good job...

Don't return associative arrays!

I've used DTO mainly in the context of dealing with databas...

Don't return associative arrays!

Thanks. I definitely recommend using type hinting as it rea...

Don't return associative arrays!

But wouldn't that make client code as tightly coupled to im...

Don't return associative arrays!

Thanks! Value objects FTW!

How do you write your PHP validator?

Good take. Imo arrays generally are something that are bet...

I went from PHP to a Senior C#/.NET Dev in 2 years.

Thanks for the advice!

I went from PHP to a Senior C#/.NET Dev in 2 years.

Thanks for sharing! Trying something similar with PHP -> J...

5 PHP Tools to make your life more enjoyable.

Good list. I would also add phpstan as a must-have for stat...

Creating a Database Connection As Far As We Obey to OOP

Database appears to be singleton, but it's possible to free...

Clean, DRY, SOLID Spaghetti

Yes, i expressed myself poorly here. I could say that purpo...

Clean, DRY, SOLID Spaghetti

The purpose of tests is not to detect bugs. The purpose is ...

Eloquent UUIDs.

You should check this library out: github.com/ramsey/uuid. It...

Hitting a motivation block, how to get over it?

I'd suggest taking a break. Maybe, if you don't want to com...

Do you think a CS degree is a requirement for get a job?

No. You don't need a CS degree for web/mobile development. ...

Is PHPDoc now redundant?

Still useful for declaring thrown exceptions.

It's Just Syntactic Sugar

Whatever server your reader best. It would however be stran...

Should you commit your /vendor folder to git?

I don't commit vendor. I don't commit any code that i'm not g...

Cleaning Up Your Code: Good Names

Yes, "traditional" for-loops work that way... My opinion st...

Who said that VIM cannot compete with IDEs?

I work mostly with PHP. I need to be able to navigate the c...

Who of you use getters & setters and when?

I think you should check out this great talk on good Doctri...

Who said that VIM cannot compete with IDEs?

I tried to make Vim work as an IDE. I really thought it cou...

Cleaning Up Your Code: Good Names

I completely disagree. There is no trivial code. For loops ...

A Candid Look at My First Day as a Developer

Interesting story, thanks! There's no shortcuts here. It's...

Imposter Syndrome: PHP Edition

I've been doing PHP full time for about a year and i think ...

Playing catch-up

When i worked on my first developer job, i thought that i n...

What I learned from my first development job

It's really one of the best indicators that you've become a...

loading...