Any thoughts on how I can overcome this mental block, and to ensure my app will be scalable?
Il nocciolo del problema non è la scalabilità. Il nocciolo della questione è pensando che la prima volta ti capiterà .
Dovresti concentrarti sulla scrittura di codice pulito. Perché il codice pulito massimizza la convenienza quando (inevitabilmente) devi cambiare qualcosa in futuro. E questo è il vero obiettivo che dovresti avere.
Quello che stai cercando di fare ora è provare a pensare al codice perfetto da scrivere. Ma anche se riesci a farlo, chi dice che i requisiti non cambieranno, o forse hai preso le tue decisioni sulla base di informazioni errate o problemi di comunicazione?
Non puoi evitare di commettere errori, anche se non sono colpa tua. Concentrati sulla scrittura di codice in cui è facile cambiare le cose in seguito, invece di sperare di scrivere codice che non dovrai modificare in futuro.
Having grown attached to the project and the code I've already written,
Sono assolutamente d'accordo con questo sentimento. Ma attaccarti al codice che hai scritto è un problema.
L'unica cosa che dovrebbe essere una costante è il tuo desiderio di risolvere un problema specifico . Il modo in cui risolvi il problema è solo una preoccupazione secondaria.
Se domani viene rilasciato un nuovo strumento che riduce il numero di codice dell'80%, sarai sconvolto dal fatto che il tuo codice non viene più utilizzato; o sarai felice che il tuo codebase sia diventato più piccolo e molto più pulito / più gestibile?
Se il primo, hai un problema: sei non vedere la soluzione per il codice . In altre parole, ti stai concentrando sul codice e non vedi l'immagine più grande (la soluzione che mira a fornire).
I'm scared that all additional work I commit will be overturned in the near future, when the app turns out to not scale well as the business grows.
Questo è un problema diverso per un giorno diverso.
In primo luogo, costruisci qualcosa che funzioni. In secondo luogo , migliori il codice per correggere eventuali difetti che potrebbero ancora mostrare. Quello che stai facendo attualmente è trattenendo il primo compito per paura di dover eseguire il secondo compito.
Ma quale altra opzione c'è? Non puoi dire al futuro . Se passi il tuo tempo a meditare su possibilità future, finirai comunque per indovinare . Un'ipotesi è sempre incline a essere completamente sbagliata.
Invece, crea l'applicazione e prova che esiste effettivamente un problema. E una volta che il problema è chiaro, inizierai ad affrontarlo.
Per dirla in altro modo: Henry Ford non ha mai costruito un'auto conforme alle norme / aspettative del 2018. Ma se non avesse costruito la Model T, una macchina imperfetta secondo gli standard moderni, nessuno avrebbe iniziato a usare le auto, non ci sarebbe stata un'industria automobilistica, e nessuno avrebbe avuto un'auto che poi avrebbero potuto provare a migliorare.
I've had employers question my choice in not using any web frameworks during interviews, which has only caused me to further doubt my previous work.
La parte importante qui non è quale struttura stai usando (qualsiasi datore di lavoro che ti giudichi non sta facendo il proprio lavoro correttamente). La parte importante qui è sapere cosa stai facendo e perché lo stai facendo .
Ad esempio, potresti evitare il framework esistente in particolare perché vuoi imparare perché un framework è utile facendolo prima nel modo più difficile. Oppure potresti provare a creare il tuo framework.
L'unica cattiva risposta qui è "Non so", poiché mostra la mancanza di prendere decisioni informate. Che è una bandiera rossa per un datore di lavoro.
I simply don't know any web frameworks, and don't know which one to start using.
Lo stesso problema sorge qui. La soluzione non è pensare di più, ma piuttosto agire:
-
Smetti di riflettere sulla risposta perfetta .
- Scegli un framework. A meno che tu non abbia una preferenza, sceglierne una a caso. Usa un bersaglio, tira un dado, lancia una moneta, prendi una carta.
- Usalo.
- Ti è piaciuto usarlo? C'è qualcosa che hai trovato fastidioso?
- Cerca come prevenire questi elementi negativi. Hai abusato del framework, o è proprio così che dovrebbe funzionare il framework?
- Una volta che senti di avere una presa sul framework (indipendentemente dal fatto che ti piaccia o meno), scegli un nuovo framework e ripeti il ciclo.
Per saperne di più, leggi Il mindset che fai > la mentalità del pensiero . L'autore lo spiega meglio di me.
but the pressure to finish the app is mounting, and I'm considering scrapping the app completely and starting over
A meno che l'attuale base di codice non sia un disastro assolutamente non gestibile; stai prendendo la decisione opposta.
Gli sviluppatori spesso pensano che buttare via le cose sarebbe la scelta migliore. È una sensazione molto comune. Ma raramente è la scelta giusta.
Lanciare il codice e partire da zero è come rimanere bloccati nel traffico mentre ti rechi al lavoro, preoccupandoti che sarai in ritardo al lavoro (salta la scadenza), e invece guidi a casa e prova ancora a percorrere la stessa strada. Non ha senso. Potresti essere bloccato nel traffico, ma sei ancora più vicino al lavoro rispetto a quando eri a casa.