Software Engineering in WordPress, PHP, and Backend Development

Category: Articles (Page 203 of 258)

Personal opinions and how-to’s that I’ve written both here and as contributions to other blogs.

Procedural Programming: Private Functions in WordPress

One of the things that I’ve been criticized for (for lack of a better term, I suppose) is that I push object-oriented techniques over procedural programming  in WordPress.

To some degree this is true: I do prefer object-oriented programming, but I don’t think it’s the end-all-be-all of programming paradigms. After all, when building, say, a theme, there’s actually little room for writing object-oriented code.

On top of that, because of the minimum requirements of WordPress, there are a lot of advanced features in PHP that I avoid because I can’t be guaranteed that the end user will have them available on his or her system when they install the plugin.

So, sure, I prefer object-oriented programming, but I certainly don’t aim to make it the utopian programming practice.

That said, there is one aspect of procedural programming that requires some type of convention: private functions.

Continue reading

My Regression in Dynamically Typed Languages, Revisited

Yesterday, I wrote a post about some of my issues and gripes with dynamically typed languages. Though the post itself didn’t generate a lot of conversation in the comments, I ended up having a good chat via Twitter with a number of developers whom I greatly respect.

In these particular conversations, I was challenged both in terms of how I leverage the dynamic features certain programming languages, as well as how I use certain forms of notation (namely, Hungarian Notation).

Challenge Accepted

I can’t cover everything that I’d like to cover in a single post partially because I’m not certain – at least at this point in time – I’d  change my opinion on everything I wrote.

However, out of the conversations that I did have, I think one point that’s worth clarifying is my opinion on using Hungarian Notation in dynamically typed languages and how the environment can change whether or not I use it.

Continue reading

My Regression in Dynamically Typed Languages

I remember when I first moved from writing code in statically typed languages such as (C, Java, C#, and so on) to more dynamically typed languages (such as JavaScript, Ruby, and PHP).

At first, I loved it – I loved the brevity that the code allowed, and I loved how being able to write slightly less verbose code felt whenever I was working on part of a program. Being able to drop out certain operators made things so much easier.

Or so I thought.

But the longer I’ve been programming – especially the more time I’ve spent in JavaScript and PHP, for example – the more I find myself returning to more and more verbose code forgoing some of the features that come with dynamically typed languages (such as type coercion).

Continue reading

The Hate and Vitriol of WordPress

For anyone who has worked with it or worked on it long enough, you are likely familiar with the criticism, the hate and vitriol of WordPress.

Straight up, people despise WordPress, its codebase, the fact that people not only work on it, but also write about it, build for it, and make any argument for using it outside of its primary use case of being a blog and/or a content management system.

And as a developer – especially one not only new to WordPress, but one who is new to programming in general – this can become really discouraging.

In fact, I’ll go as far as to say that it can make you question not only your ability as a programmer, but your ability to learn the tools, methodologies, and practices of software engineers who work with other languages, tools, frameworks, and so on.

Continue reading

My Workflows For WordPress: Self-Hosted Projects

In the previous article, I shared a bit about how I try to streamline my workflow based on where my WordPress project is hosted.

Specifically, I talked about having the codebase hosted in a Subversion repository, using the provided support forum solution, and how I manage tickets. I also talked about how all of the decisions for how I manage the project stem from where and how the source code is managed.

To that end, whenever I’m working on a self-hosted project (or, rather, one that is not included in the WordPress plugin repository), then I end up going with a slightly different workflow.

Continue reading

« Older posts Newer posts »

© 2025 Tom McFarlin

Theme by Anders NorenUp ↑