Sviluppo

Sviluppo una API a 50 anni ? (parte 1 di x)

Sviluppo una API a 50 anni ? (parte 1 di x)

Ci si può avventurare nello sviluppo di una API in PHP alla mia età ? Aggiungendo anche diverse competenze della programmazione ad oggetti!

Il retroscena

E' il classico post che non interessa a nessuno, tranne che a me stesso.

L’ambientazione include un sano “odio” per wordpress. Odio è una parola molto cattiva, diciamo che scetticismo sarebbe più appropriata.

Nel corso degli ultimi 8 anni ho sviluppato un mio “framework” php, che serve per gestire alcuni siti di affiliazione.

La cosa è partita in maniera classica: c’è un database (mysql) e c’è del codice php che prende i dati e li sistema nelle pagine, creando una architettura. E fin dall’inizio non c’era una interfaccia web per editare i dati, perchè

  • non ero tecnicamente in grado di realizzarla
  • mi sembrava un grande dispendio di risorse, visto che dovevamo usarlo in DUE persone.

In pratica i dati venivano compilati in excel, importati in mysql tramite phpmyadmin e da li comparivano magicamente sui siti.

Partendo con i propri risparmi, col proprio tempo e con la necessità di fare anche consulenza, non volevo rischiare di farmi produrre qualcosa che poi sarebbe stato inutilizzato magari per mesi e che magari avrebbe poi dovuto essere aggiornato o cambiato.

fear is the mind-killer

Ma l’aspetto più terrificante era la “perdita del controllo": dando le chiavi di un aspetto determinante di un progetto ad un’altra persona, ne perdi la percezione.

Lo so che delegare è importante, per “scalare”, ma se mi creo un collo di bottiglia perchè l’implementazione di caratteristiche è legata ad una persona esterna (che non è un “socio”), le sue priorità potrebbero essere scarse o nulle. O potrebbe richiedere dei tempi molto lunghi. O soldi extra oltre quelli preventivati.

E difatti è esattamente quello che è successo nel 2019.

All’epoca i vari siti di affiliazione usavano lo stesso server con database “simili ma non uguali”. E sopratutto il codice usato era similare, ma ogni sito aveva delle caratteristiche differenti, per cui avevo la necessità di mantenere diverse codebase.

La ragione di questo era legata al Socio di questa avventura: lui aveva iniziato a mettere in piedi questi siti attorno al 2014, ma non avendo basi di programmazione era una sequenza di spaghetti-code preso da varie fonti, incollati con il nastro adesivo e avviato.

E in qualche modo funzionava. Male ma funzionava.

E funzionava ad onore del vero: lode ai sistemi moderni.

Io non sono un programmatore mostruoso, ho delle basi di Ansi-C, Assembler, sistemi operativi unix/linux/osx/windows. Ma sono cose che ho studiato nel 92-93.

Però quando mi sono messo in proprio abbandonando il lavoro di agenzia, ho messo le mani in questo codice. E nei miei capelli. E per fortuna ne ho ancora abbastanza.

I 4 anni successivi ho fatto varie migliorie, ho reso il codice più uniforme, ho anche implementato una cache con redis, ho imparato ad usare GIT per tracciare le modifiche del codice in maniera progressiva.

Ma ho raggiunto i miei limiti e quindi ho deciso di chiedere supporto ad un programmatore specialista, per ottenere qualcosa di più moderno e che potesse gestire diversi siti.

Chi mi conosce lo sa: sono un ragioniere che poi ha fatto un biennio di specializzazione informatica. Ma la passione per l’informatica è nata molto prima, visto che in famiglia avevano un negozio che vendeva computer, quindi diciamo che per 40 anni sono stato a contatto con l’informatica ludica e non non ludica.

Pensavo di volerlo migrare la gestione in modalità client-server e volevo un consulente esterno che mi guidasse e istruisse.

Ci doveva essere un “server web” dove venivano scritte, aggiunte, modificate le informazioni nel database centralizzato, tramite una interfaccia web.

E poi ci doveva essere un componente “client” che messo su un dominio, leggeva i dati dal server e “stupidamente” li mostrava all’utente finale.

Facile no ?

tutt’altro che facile

il consulente faceva questo come “extra lavoro” oltre al suo impiego giornaliero presso una azienda.

Del tempo veniva anche perso perchè doveva fare il pendolare tra dove viveva e dove lavorava (circa un’ora e mezza di auto al giorno veniva persa).

Il che vuol dire che poteva dedicare solo la sera molto tardi o il weekend. Ed avendo una sua vita non è che potesse dedicare molto tempo nel weekend.

Inoltre si era offerto di realizzarlo al posto mio invece che farlo direttamente io, anche perchè nel frattempo avevo scoperto che avevo una brutta cosa in testa che avrebbe necessitato una operazione chirurgica per rimuoverla.

In quella condizione, delegare lo sviluppo sembrava la scelta ideale, almeno avevo una cosa in meno per la testa.

Ma volevo comunque avere un certo controllo, in quanto committente, volevo discutere i vari aspetti anche perchè il terrore di perdere il controllo (sopra menzionato) era sempre presente.

Ed ero sempre uno specialista SEO e Affiliato, per cui non stavo cercando di fare un sito web per lo spirito santo o per una startup del cazzo: volevo dei siti web che fossero produttivi, veloci e utili (per le mie tasche.)

…e per oggi finiamo qua la parte uno, altrimenti non sono produttivo :) Mi rendo conto che non ho nemmeno iniziato a parlare di API o programmazione ad oggetti, ma purtroppo va così.

selezione musicale

Salto tra “Ludovico Einaudi (Islands - Essential einaudi)" e “Tron Legacy Reconfigured”.

La prima mi rilassa e mantiene in uno stato di allerta lucida, che è necessaria per avere uno stato mentale produttivo. Per programmare e riflettere sulla strategia delle cose da fare è davvero fenomenale, anche per ore di seguito.

Link spotify: https://open.spotify.com/playlist/3IiEoQbtzYbUG45cVKfqTm?si=88ea4afd575a4386

La seconda è una raccolta di brani dal film “Tron Legacy” (che meriterebbe un capitolo a parte, ma è uscito troppo tardi per la mia generazione). I brani sono stati rivisitati da vari artisti assieme ai Daft Punk, tra cui Avicii (rip), Moby e altri.

E' decisamente differente dai miei gusti classici, ma è tremendamente stimolante nel tenere il cervello concentrato. E' ottima quando faccio attività di analisi di marketing.

Link Spotify: https://open.spotify.com/album/382ObEPsp2rxGrnsizN5TX?si=-aIboC1iQ-i5GyEjzwb13w

citazione casuale del giorno

> A true friend is one who overlooks your failures and tolerates your success!
> — <cite>Doug Larson</cite>