Opettele ensin HTTP

Tämä blogikirjoitus on tuntemattomasta syystä, luultavasti tarpeettoman itsekritiikin takia julkaisematta jäänyt luonnos vuodelta 2010. Koska se on täysin sellaisenaan ihan validi tänäänkin, niin julkaisenpa sen nyt.

Jos pitäisi antaa yksi neuvo aloittelevalle web-ohjelmoijalle, niin se olisi ehdottomasti: opettele ihan ensimmäisenä tuntemaan HTTP.

Erityisesti tänä Ajax-sovellusten aikakautena on äärimmäisen tärkeää osata seurata ja tulkita HTTP-liikennettä normaalin kehitystyön aikana tai kun selvitellään miksi web-sovellus toimii väärin. Jos et tiedä miten teet tämän, et oikein voi kutsua itseäsi web-ohjelmoijaksi.

URI, statuskoodit, Content-Type, välimuisti- ja proxymekanismit ja keksien toiminta ovat ensimmäisenä mieleen tulevia tärkeitä HTTP:n osasia. Ei riitä, että osaat nämä käyttämäsi sovelluskehyksen API:n tasolla.

Kun perusteet ovat hallussa, kannattaa ehdottomasti lukea RESTful Web Services. Se opettaa suunnittelemaan verkkopalvelut niin kuin HTTP on tarkoitettu toimivaksi. Railsin kehittäneen David Heinemeier Hanssonin sanoin:

Every developer working with the Web needs to read this book.

Vaikka kirja voisi olla paremmin kirjoitettu, sen sisältämä filosofia on niin oleellinen, ettei sitä voi jättää lukematta.

Hyvä haastattelukysymys web-ohjelmoijan paikkaa hakevalle voisi olla, että mikä kirjoitusvirhe on päätynyt HTTP-otsikkokentän nimeksi standardiin asti. No ehkä ei, mutta ainakin se on hauskaa knoppitietoa.

Best books on web development?

I’m thinking of building a definitive list of books on web development. Software development in general should not be forgotten, but the focus of the list would be in great web software development.

Only the best books would be listed so that the list could serve as an educational tool. This is why I am asking your help.

What are your favorites? Let me know in the comments! Books on specific server-side technologies are fine too, the list will be categorized.

Without too much thought, here is a short list of 20 books to get you started:

  1. RESTful Web Services
  2. Code Complete
  3. Don’t Make Me Think!
  4. Designing with Web Standards
  5. Letting Go of the Words
  6. Web Analytics: An Hour a Day
  7. High Performance Web Sites
  8. The Pragmatic Programmer
  9. Bulletproof Web Design
  10. Prioritizing Web Usability
  11. The Productive Programmer
  12. Pragmatic Thinking and Learning: Refactor Your Wetware
  13. Practices of an Agile Developer
  14. Clean Code
  15. Agile Software Development with Scrum
  16. Extreme Programming Explained
  17. Refactoring: Improving the Design of Existing Code
  18. Implementation Patterns
  19. Agile Estimating and Planning
  20. Object Thinking

The last 10 books suggested by Sami Poimala, thanks! (I now have to actually read all those.)

Web-sivun kieli, osoitteessa vai ei?

Lue myös kaksiosaisen artikkelisarjan ensimmäinen osa: Kieli URL:ssä.

URL-osoitteiden hallinta on www-sivuston, julkaisujärjestelmän tai web-frameworkin avainkohtia. Joskus URL:ssä on tarve näyttää dokumentin kieli. Koska ja miksi?

Kieli URL:ssä on tarpeeton, jos sivusto ei tarjoa sisältöä kuin yhdellä kielellä. Sitä ei sinne kannata varmuuden vuoksi laittaa, vaikka sisältö joskus tulevaisuudessa saattaa laajentua. Kaikki ylimääräinen URL:ssä lisää osoitteiden monimutkaisuutta ja mitä monimutkaisempi URL, sen vaikeakäyttöisempi.

Sisältöneuvottelu

HTTP:n Content Negotiation, sisältöneuvottelu, on tekniikka, jolla voidaan vaikuttaa siihen, mikä versio sisällöstä tarjoillaan User-Agentille eli yleensä selaimelle ja sitä kautta käyttäjälle. Continue reading “Web-sivun kieli, osoitteessa vai ei?”