Any thoughts on how I can overcome this mental block, and to ensure my app will be scalable?
O ponto crucial do problema não é escalabilidade. O cerne da questão é pensar que você vai acertar na primeira vez .
Você deve se concentrar em escrever código limpo. Porque código limpo maximiza a conveniência quando você (inevitavelmente) tem que mudar alguma coisa no futuro. E esse é o objetivo real que você deveria ter.
O que você está tentando fazer agora é tentar pensar no código perfeito para escrever. Mas mesmo se você conseguir fazer isso, quem diz que os requisitos não vão mudar ou você talvez tenha tomado suas decisões com base em informações erradas ou falhas de comunicação?
Você não pode evitar cometer erros, mesmo que não seja sua culpa. Concentre-se em escrever códigos nos quais é fácil mudar as coisas mais tarde, em vez de esperar escrever código que não será necessário alterar no futuro.
Having grown attached to the project and the code I've already written,
Eu absolutamente simpatizo com esse sentimento. Mas ficar ligado ao código que você escreveu é um problema.
A única coisa que deve ser uma constante é seu desejo de resolver um problema específico . Como você resolve esse problema é apenas uma preocupação secundária.
Se amanhã uma nova ferramenta for lançada que reduza sua base de código em 80%, você ficará chateado por seu código não ser mais usado; ou você vai ficar feliz que sua base de código se tornou menor e mais limpa / mais gerenciável?
Se o primeiro, você tem um problema: você está não vendo a solução para o código . Em outras palavras, você está se concentrando no código e não vendo o quadro maior (a solução que ele pretende fornecer).
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.
Esse é um problema diferente para um dia diferente.
Primeiro, você constrói algo que funciona. Em segundo lugar , você melhora o código para corrigir quaisquer falhas que ainda possam aparecer. O que você está fazendo atualmente é segurar a primeira tarefa por medo de ter que fazer a segunda tarefa.
Mas qual outra opção existe? Você não pode dizer o futuro . Se você gastar seu tempo ponderando possibilidades futuras, você acabará adivinhando de qualquer maneira. Um palpite é sempre propenso a estar completamente errado.
Em vez disso, crie o aplicativo e prove que realmente há um problema. E uma vez que o problema esteja claro, você começa a abordá-lo.
Em outras palavras: Henry Ford nunca construiu um carro que atenda aos padrões / expectativas de 2018. Mas se ele não tivesse construído o Modelo T, um carro defeituoso pelos padrões modernos, ninguém teria começado a usar carros, não haveria indústria automobilística e ninguém teria um carro que pudesse tentar melhorar. / p>
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.
A parte importante aqui não é qual estrutura você está usando (qualquer empregador que julgue você em que não está fazendo o seu trabalho corretamente). A parte importante aqui é saber o que você está fazendo e por que você está fazendo isso .
Por exemplo, você pode estar evitando o framework existente especificamente porque você quer aprender por que um framework é útil ao fazer isso da maneira mais difícil primeiro. Ou você pode estar tentando criar sua própria estrutura.
A única resposta ruim aqui é "Eu não sei", pois mostra uma falta de tomada de decisões informadas. Isso é uma bandeira vermelha para um empregador.
I simply don't know any web frameworks, and don't know which one to start using.
O mesmo problema surge aqui. A solução não é pensar mais, mas sim agir:
-
Pare de ponderar a resposta perfeita .
- Escolha uma estrutura. A menos que você tenha uma preferência, escolha uma aleatória. Use um alvo de dardos, role um dado, jogue uma moeda, escolha uma carta.
- Use.
- Você gostou de usá-lo? Houve alguma coisa que você achou irritante?
- Pesquise como evitar esses elementos ruins. Você usou mal a estrutura ou é assim que a estrutura deve funcionar?
- Depois de sentir que você tem controle sobre a estrutura (independentemente de gostar ou não), escolha uma nova estrutura e repita o ciclo.
Para ler mais sobre isso, leia A mentalidade fazendo > a mentalidade de pensar . O autor explica melhor do que eu.
but the pressure to finish the app is mounting, and I'm considering scrapping the app completely and starting over
A menos que a base de código atual seja uma bagunça absolutamente inatingível; você está tomando a decisão oposta.
Os desenvolvedores geralmente pensam que jogar fora seria a melhor escolha. É um sentimento muito comum. Mas raramente é a escolha certa.
Jogar código e começar do zero é como ficar preso no trânsito no seu caminho para o trabalho, se preocupar em se atrasar para o trabalho (perder o prazo) e, em vez disso, dirigir para casa e tentar dirigir pela mesma estrada novamente. Não faz sentido. Você pode estar preso no trânsito, mas ainda está mais perto do trabalho do que quando estava em casa.