5 Mellores prácticas de desenvolvemento de software en 2020

Ola Habr! Presento á súa atención a tradución do artigo "5 Consellos para aprender a codificar - Consellos xerais para programadores" por kristencarter7519.

Aínda que parece que estamos a só uns días de 2020, estes días tamén son importantes no ámbito do desenvolvemento de software. Neste artigo, veremos como o próximo ano 2020 cambiará a vida dos desenvolvedores de software.

5 Mellores prácticas de desenvolvemento de software en 2020

O futuro do desenvolvemento de software está aquí!

O desenvolvemento de software tradicional é o desenvolvemento de software escribindo código seguindo unhas regras fixas. Pero o desenvolvemento de software moderno foi testemuña dun cambio de paradigma cos avances en intelixencia artificial, aprendizaxe automática e aprendizaxe profunda. Ao integrar estas tres tecnoloxías, os desenvolvedores poderán crear solucións de software que aprendan das instrucións e engadan funcións e patróns adicionais aos datos necesarios para o resultado desexado.

Imos probar con algún código

Co paso do tempo, os sistemas de desenvolvemento de software de redes neuronais fixéronse máis complexos en termos de integración, así como niveis de funcionalidade e interfaces. Os desenvolvedores, por exemplo, poden construír unha rede neuronal moi sinxela con Python 3.6. Aquí tes un exemplo de programa que fai clasificación binaria con 1 ou 0.

Por suposto, podemos comezar creando unha clase de rede neuronal:

importar NumPy como NP

X=np.array([[0,1,1,0],[0,1,1,1],[1,0,0,1]])
y=np.array([[0],[1],[1]])

Aplicación da función sigmoide:

def sigmoid ():
   return 1/(1 + np.exp(-x))
def derivatives_sigmoid ():
   return x * (1-x)

Adestramento dun modelo con pesos e prexuízos iniciais:

epoch=10000
lr=0.1
inputlayer_neurons = X.shape[1]
hiddenlayer_neurons = 3
output_neurons = 1

wh=np.random.uniform(size=(inputlayer_neurons,hiddenlayer_neurons))
bh=np.random.uniform(size=(1,hiddenlayer_neurons))
wout=np.random.uniform(size=(hiddenlayer_neurons,output_neurons))
bout=np.random.uniform(size=(1,output_neurons))

Para os principiantes, se necesitas axuda sobre as redes neuronais, podes buscar en internet sitios web das principais empresas de desenvolvemento de software ou podes contratar desenvolvedores de IA/ML para traballar no teu proxecto.

Modificación do código mediante unha neurona da capa de saída

hidden_layer_input1=np.dot(X,wh)
hidden_layer_input=hidden_layer_input1 + bh
hiddenlayer_activations = sigmoid(hidden_layer_input)
output_layer_input1=np.dot(hiddenlayer_activations,wout)
output_layer_input= output_layer_input1+ bout
output = sigmoid(output_layer_input)

Erro de cálculo para a capa de código oculta

E = y-output
slope_output_layer = derivatives_sigmoid(output)
slope_hidden_layer = derivatives_sigmoid(hiddenlayer_activations)
d_output = E * slope_output_layer
Error_at_hidden_layer = d_output.dot(wout.T)
d_hiddenlayer = Error_at_hidden_layer * slope_hidden_layer
wout += hiddenlayer_activations.T.dot(d_output) *lr
bout += np.sum(d_output, axis=0,keepdims=True) *lr
wh += X.T.dot(d_hiddenlayer) *lr
bh += np.sum(d_hiddenlayer, axis=0,keepdims=True) *lr

Saída

print (output)

[[0.03391414]
[0.97065091]
[0.9895072 ]]

Sempre paga a pena estar ao día das últimas linguaxes de programación e técnicas de codificación, e os programadores tamén deben estar ao tanto das moitas ferramentas novas que axudan a que as súas aplicacións sexan relevantes para os novos usuarios.

En 2020, os desenvolvedores de software deberían considerar incorporar estas 5 ferramentas de desenvolvemento de software aos seus produtos, independentemente da linguaxe de programación que utilicen:

1. Procesamento da linguaxe natural (PNL)

Cun chatbot que simplifica o servizo ao cliente, NLP está a chamar a atención dos programadores que traballan no desenvolvemento de software moderno. Usan kits de ferramentas de NLTK como Python NLTK para incorporar rapidamente a NLP en chatbots, asistentes dixitais e produtos dixitais. A mediados de 2020 ou nun futuro próximo, verás que a PNL vai cobrando máis importancia en todo, desde empresas de venda polo miúdo ata vehículos autónomos e dispositivos para o fogar e a oficina.

Avanzando con mellores ferramentas e tecnoloxías de desenvolvemento de software, pode esperar que os desenvolvedores de software utilicen a PNL de varias formas, desde interfaces de usuario baseadas en voz ata navegación por menús moito máis sinxela, análise de sentimentos, identificación de contexto, emoción e accesibilidade aos datos. Todo isto estará dispoñible para a maioría dos usuarios, e as empresas poderán acadar un crecemento da produtividade de ata 430 millóns de dólares en 2020 (segundo IDC, citado por Deloitte).

2. GraphQL substituíndo a REST Apis

Segundo os desenvolvedores da miña empresa, que é unha empresa de desenvolvemento de software offshore, a API REST está perdendo o seu dominio sobre o universo de aplicacións debido á lenta carga de datos que hai que facer desde varios URL individualmente.

GraphQL é unha nova tendencia e unha mellor alternativa á arquitectura baseada en REST que recupera todos os datos relevantes de varios sitios mediante unha única consulta. Isto mellora a interacción cliente-servidor e reduce a latencia, facendo que a aplicación sexa significativamente máis sensible para o usuario.

Pode mellorar as súas habilidades de desenvolvemento de software cando utiliza GraphQL para o desenvolvemento de software. Ademais, require menos código que a REST Api e permítelle facer consultas complexas en poucas liñas sinxelas. Tamén pode estar equipado cunha serie de funcións Backand as a Service (BaaS) que facilitan o seu uso polos desenvolvedores de software en diferentes linguaxes de programación, incluíndo Python, Node.js, C++ e Java.

3. Nivel de codificación baixo/sen código (código baixo)

Todas as ferramentas de desenvolvemento de software de código baixo proporcionan moitos beneficios. Debe ser o máis eficiente posible ao escribir moitos programas desde cero. O código baixo proporciona código preconfigurado que se pode incorporar a programas máis grandes. Isto permite que incluso os non programadores creen produtos complexos de forma rápida e sinxela e aceleren o ecosistema de desenvolvemento moderno.

Segundo un informe de TechRepublic, as ferramentas sen código ou código baixo xa se están a utilizar en portais web, sistemas de software, aplicacións móbiles e outras áreas. O mercado de ferramentas de código baixo crecerá ata os 15 millóns de dólares en 2020. Estas ferramentas xestionan todo, incluíndo a xestión da lóxica de fluxo de traballo, filtrado de datos, importación e exportación. Aquí están as mellores plataformas de código baixo en 2020:

  • Microsoft PowerApps
  • Mendix
  • Sistemas externos
  • Creador de Zoho
  • Salesforce App Cloud
  • Base Rápida
  • Bota de primavera

4. Onda 5G

A conectividade 5G terá un gran impacto no desenvolvemento de aplicacións móbiles e software, así como no desenvolvemento web. Despois de todo, con tecnoloxías como IoT, todo está conectado. Así, o software do dispositivo aproveitará ao máximo as capacidades das redes sen fíos de alta velocidade con 5G.

Nunha entrevista recente con Digital Trends, Dan Dery, vicepresidente de produtos de Motorola, dixo que "nos próximos anos, 5G ofrecerá datos máis rápidos, maior ancho de banda e acelerará o software do teléfono 10 veces máis rápido que as tecnoloxías sen fíos existentes".

Neste sentido, as empresas de software traballarán para incorporar 5G ás aplicacións modernas. Actualmente, máis de 20 operadores anunciaron actualizacións nas súas redes. Entón, os desenvolvedores comezarán agora a traballar para usar as API adecuadas para aproveitar o 5G. A tecnoloxía mellorará significativamente o seguinte:

  • Seguridade do programa de rede, especialmente para Network Slicing.
  • Proporcionar novas formas de manexar os ID de usuario.
  • Permítelle engadir novas funcionalidades ás aplicacións con baixa latencia.
  • Influirá no desenvolvemento do sistema AR/VR.

5. Autenticación sinxela

A autenticación é cada vez máis un proceso eficaz para protexer os datos sensibles. A sofisticada tecnoloxía non só é vulnerable aos ataques de software, senón que tamén admite a intelixencia artificial e mesmo a computación cuántica. Pero o mercado de desenvolvemento de software xa está a ver moitos novos tipos de autenticación, como análise de voz, biometría e recoñecemento facial.

Nesta fase, os piratas informáticos atopan diferentes formas de falsificar ID de usuario e contrasinais en liña. Dado que os usuarios de móbiles xa están afeitos a acceder aos seus teléfonos intelixentes cunha pegada dixital ou dixitalización facial, empregando así ferramentas de autenticación, non necesitarán novas capacidades de verificación xa que a probabilidade de roubo cibernético será menor. Aquí tes algunhas ferramentas de autenticación multifactor con cifrado SSL.

  • Os tokens suaves converten os teus teléfonos intelixentes en cómodos autenticadores de varios factores.
  • Os modelos EGrid son unha forma fácil de usar e popular de autenticadores na industria.
  • Algúns dos mellores programas de autenticación para empresas son RSA SecurID Access, OAuth, Ping Identity, Authx e Aerobase.

Hai empresas de software na India e nos Estados Unidos que realizan unha ampla investigación no campo da autenticación e da biometría. Tamén están promovendo a IA para crear un software superior para a autenticación de voz, identificación facial, comportamento e biométrica. Agora podes protexer as canles dixitais e mellorar as capacidades da plataforma.

Conclusión

Parece que a vida dos programadores será menos desafiante en 2020 xa que é probable que o ritmo de desenvolvemento de software se acelere. As ferramentas dispoñibles serán máis fáciles de usar. En definitiva, este avance creará un mundo dinámico que entra nunha nova era dixital.

Fonte: www.habr.com

Engadir un comentario