in Back to PHP

My Way to PHP: Day 12 of 75

Day 12! I just published yesterday’s post. Yesterday, was pretty good. It was great to finally write some  code again. Before continuing with a book I want to watch a few talks first. I also want to refactor my current code a bit and write some example frontend code. However, the focus will be on talks. I just want to get some more from my list.


Don’t be STUPID, Grasp SOLID

I liked the intro! He talks about the typical OOP example of a taxonomy of animals and then you generate some lion, who roars, and hunts, etc. But do we write code like that? Nope.

Instead:

An object is a collection of behaviors.

This is a really good talk so far. Definitely, some I would have like to see around 2 weeks ago :D

STUPID:

  • S Singletons
  • T Tight coupling
  • U Untestable code
  • P Premature Optimization
  • I Indescriptive Naming
  • D Duplication

Once you do understand the code base written in OOP it’s easier to understand but it takes time

Principle of Good enough

There’s probably a better way but what matters is that it delivers business value.


Great! I spent the last 3 hours working on my project. Guzzle is integrated and it works pretty fine. The next step is to write an example frontend for the RESTful service. I’m considering AngularJS for it but on the other hand it’s not really necessary – though cool.


Your (coding) standards matter

A pretty good remark:

You should control your tools and not the other way around.

The talk covers PHPMD and PHPCS. He recommends to use all the standards in PHPMD and use PSR2 for PHPCS and configure like you want.

I use both in PHPStorm and just did an inspection.  It really helps to get those standards correct!

I like his idea for legacy systems. Start with the most essential rules. Run the test. Fix those violations. Then add more rules and repeat.


Scrum Tuning: Lessons learned from Scrum implementation at Google

The sound is bad at the beginning but gets better at around 4mins.

Most of Agile is taken from Toyota but they didn’t talk about that up front. The content is very similar to the stuff I read about Quality management. I know that Scrum takes a lot of these ‘old’ methods like Kanban.

A product owner with a product backlog is pretty important.

Scrum Process

  • Team pulls from product backlog
  • This is the sprint backlog
  • Daily meeting
  • 2-4 weeks sprints
  • deliver working software
  • Burndown chart

Scrum Master

  • Between team and customer
  • Improves productivity / practices
  • Shows customers how to maximize ROI

Practices

  • Minimize WIP: Complete features as quickly as possible
  • Change the scope of done (Programming -> Testing -> Performance -> User Acceptance -> Roll-out)
  • Daily Scrum Board (Userstory + Tasks)

Scrum is based on the same concepts as Lean Manufacturing is.


The Driven Developer

From the Mercury Project at NASA (early 60’s):

Project Mercury ran with very short (half-day) iterations that were time boxed. The development team conducted a technical review of all changes, and, interestingly, applied the XP practice of test-first development, planning and writing tests before each micro-increment.

My theory of ‘basically everything is there we just have to rediscover it’ shows – again – some support!


What I like is the idea of small, medium and large tests which is presented in ‘How Google test software’. The idea is that you write small Unit tests, then maybe combine two units, do integration tests, acceptance tests, etc.


What I think about all these movements is that you should use your own brain instead following something. Pick the stuff that works for you and leave the rest behind.


ISP’s Unauthenticated SOAP Service = Find (Almost) All The Things!

A security talk for good measure! Really good talk and quite funny. :D


Updates Goals:

  • Learn a bit more about MySQL
  • Learn a bit more about legacy systems and how to handle them
  • Learn Symfony2
  • Write at least one web app using Symfony2 and its core components (templating, testing, forms, validation, security, caching, i18n)
  • Get a bit more exposure to OOP and OOD
  • Watch one video per day on average

Progress status

In Progress

  • Watch one video per day on average [33 of 75]

Write a Comment

Comment